弹上通信系统的LabVIEW与单片机的通信技术
摘要:结合某型信息化弹药弹上电子器件通信问题研究,以C8051F340单片机为例,介绍了单片机与LabVIEW进行USB通信的3种方法。针对LabVIEW,实现USB通信的方式有:利用CIN(代码接口节点),调用DLL(动态链接库),通过VISA(虚拟仪器软件架构)。对这3种方式进行详细的介绍和比较,并给出结论。
关键词:信息化弹药;LabVIEW;USB;C8051F340;DLL;VISA
引言
某型信息化弹药通过对目标的基准弹道与飞行中的攻击弹道进行比较后,给出有限次不连续的修正量来修正攻击弹道,以减少弹着点误差,提高弹丸对付高速机动飞行目标的命中精度,或提高远程打击精度。该信息化弹药的基本结构就是在常规炮弹上加装弹道修正模块,弹道修正模块主要由微控制器根据基准弹道修正攻击弹道参数来提高命中率。
在传感器及信号调理电路的基础上,选用高速单片机、快速的数据传输总线以及LabVIEW应用程序,可快速开发一个简单实用的信息化弹药弹道控制通信系统模型。本通信系统模型用USB总线,在PC机与USB设备间实现上下位机之间的通信,在软件方面通常要完成以下设计:USB设备固件编程、USB设备驱动编程和PC机应用程序设计。下位机弹道修正模块用Silicon Labs公司的全速USB Flash微控制器C8051F340,上位机PC采用LabVIEW编写应用程序。与C8051F340进行USB通信主要有3种方式:利用CIN调用开发USB设备的外部代码;调用DLL对USB设备进行操作;通过VISA访问USB设备。下面分别进行介绍和比较。
1 利用CIN调用开发USB设备外部代码
CIN(Code Interface Node,代码接口节点)是LabVIEW中通过参数传递来调用C/C++代码的节点,可以利用USB设备生产厂家提供的C/ C++代码,将代码集成并作为一个单独的VI发布,实现数据的高效处理。这种实现方法相当于在LabVIEW下利用CIN对USB设备编写驱动程序。以C8051F340端口1IN批量传输为例。规定使用端口1IN批量传输且最大包长度为128字节,假设端点1IN的缓冲区地址为0x7E00~0x7E8F。主机通过不断发送IN令牌请求USB执行IN传输,C8051F340会通过将端点字节计数寄存器(N1CNT)加载,以示数据准备完毕,同时将一个IN数据包装入端点的IN FIFO并将INPRDY位(EINCSR L.O)位置1。利用CIN调用USB设备的外部代码的一般步骤如下:
①创建CIN节点。CIN节点位于“函数选板”一“互连接口”一“库与可执行库文件”子选板下。根据设备的参数需要增加外部代码的输入/输出端口。
②创建C源文件。右击CIN并选择创建C8051F340UsbInl.c文件选项,对打开的程序修改如下:
评论