新闻中心

EEPW首页 > 测试测量 > 设计应用 > 基于NI-VISA与LabVIEW的 USB接口应用设计

基于NI-VISA与LabVIEW的 USB接口应用设计

作者:时间:2017-01-12来源:网络收藏


3.1 系统的工作原理
根据USB协议,任何传输都是由主机(host)开始的,单片机的前台工作就是等待。主机Pc首先要发送令牌包给USB,D12接收到令牌包就给单片机发中断,单片机进入中断服务程序。首先读D12的中断寄存器,判断LJSB令牌包的类型,然后执行相应的操作,因此,USB单片机程序主要就是中断服务程序的编写。在USB单片机程序中要完成对各种令牌包的响应,主要是对端口的编程。

3.2软件部分的设计

系统的固件程序从功能上分为两部分,整个编程在Keil C环境下完成。

(1)温度传感器DSl8B20的读取程序时

Dsl8B20单线通信功能是分时实现的。它有很严格的时序要求,对它的操作必须按协议进行,即初始化→发ROM操作命令→发存储器操作命令→数据处理。

(2)MCU和USB接口的通信程序

本程序使用D12的端点1和端点2进行上位计算机与MCU P89C52之间的命令和数据的传输。端点1和端点2设置成模式0(非同步方式)。其中端点1以中断传输和应答端点2以批量方式进行数据的传输。端点1接收上位机发送过来的读指令,端点2返回读成功数据。

系统的固件程序编写以分层结构展开。它足一种积木式结构,如图3所示。

①硬件提取层:单片机的I/O口、数据总线等硬件接口进行操作。

②PDIUSBDl2命令接口:对D12器件进行操作的模块子程序集

③中断服务程序:当D12向单片机发出中断请求时,读取D12中断传输来的数据,并设定事件标志"EPPFIAGS"和Setup包数据缓冲区"CONROL_XFER"传输给主循环程序。

④标准设备请求处理程序:对USB的标准设备请求进行处理。

⑤厂商请求处理程序:对用户添加的厂商请求进行处理。

⑥主程序:出USB数据传输请求,处理总线事件和调用用户自定义功能子程序

以NI-VISA为驱动的主机LabVIEW应用程序的设计,NI-VISA采用3.2版本,LabVIEW采用7.1版本。

整个应用程序的主要框架使用了WHILE循环来进行不断的查询。在程序的编写过程中,采用了类似Windows程序中的事件驱动机制,LabVIEW提供了这样的结构--事件结构。各个消息的产生利用了各种界面控件并由Case选择结构给出,程序结构图如图4所示。

为了便于说明USB操作次序,把图4中事件结构展发USB驱动应用程序的捷径。
在图5中,USB RAW设备通信采用端点l以中断传输方式接收上位机操作命令,协议可以自己约定。端点2以批量传输方式给上位机发回温度数据。其中端点数"130"是对应十六进制数"0082"的十进制数,此数表示端点2批量输入;而端点数"1"则是对应十六进制数"0001"的十进制数,此数表示端点1中断输出。

因为NI-VISA3.2版本不支持USB属性"中断输出"(interrupt out),因此为了实现USB端点1的中断输出问题,这里把USB属性"批量输出"(bulk out pipe)和"VI Write"节点组合在一起,来实现端点1中断输出。从NI-VISA3.3起,可以直接利用"中断输出"(interrupt out)属性来实现。

结 语

经实践证明,采用基于NI-VISA驱动的USB接口应用系统的设计非常容易,开发难度低,对开发者的要求不高;开发出的系统稳定可靠,即使对Windows编程不熟悉的人也可以开发USB出应用系统。它提供了另一种开发USB驱动应用程序的捷径。

参考文献:

[1].80C51datasheethttp://www.dzsc.com/datasheet/80C51_103447.html.
[2].ROMdatasheethttp://www.dzsc.com/datasheet/ROM_1188413.html.
[3].DS18B20datasheethttp://www.dzsc.com/datasheet/DS18B20_819975.html.
[4].P89C52X2datasheethttp://www.dzsc.com/datasheet/P89C52X2_538908.html.


上一页 1 2 下一页

关键词: NI-VISALabVIEWUSB接

评论


相关推荐

技术专区

关闭