LABVIEW通过动态链接库实现对CY7C68013的控制
2016-11-14胡之冉
胡之冉
(苏州百得科技有限公司,江苏 苏州 215021)
LABVIEW通过动态链接库实现对CY7C68013的控制
胡之冉
(苏州百得科技有限公司,江苏 苏州 215021)
USB接口为主机与外设之间的数据传输提供了一种高效方便的双向数据通道。已被广泛的应用在工业控制与数据采集等领域。本文采用CY7C68013芯片组成的最小系统实现了一个基于USB的控制系统。
LABVIEW软件; USB接口;动态链接库
USB作为电脑与外设传递数据的一种常见接口,具有热插拔,较快的数据传输率等优点得到了广泛的应用。在工业控制应用中,采用基于USB接口的摄像头及数据采集卡等硬件来构建便携式测试系统已经成为了一种趋势。本文采用USB专用芯片,通过芯片生产商提供的API函数库,实现了一个USB控制系统,提高了开发效率。
1 系统的构成
USB的通讯协议比较复杂,在工程应用中往往采用现成的USB专用芯片,通过芯片生产商提供的API函数库及固件程序框架来实现USB硬件通信功能。本文采用CY7C68013芯片组成的最小系统来实现USB通信控制系统,系统中使用该芯片的输入输出端口B作为外围电路的控制端口。系统采用美国国家仪器的LabVIEW软件开发上位应用程序,采用构建动态链接库的方式来实现上位应用程序与USB固件程序的数据通信。通过上位应用程序向USB控制设备发出指令,将控制信号发送到CY7C68013的B端口实现控制外围设备。
2 系统软件设计
USB通信系统软件通常由USB固件程序、驱动程序及上位应用软件三个部分组成。上位应用程序通过驱动程序将数据传递给USB固件程序,由固件程序解析数据完成操作。
2.1 动态库软件的实现
动态链接库是一个包含由多个程序同时使用代码和数据的模块,不可以独立执行。本文中使用VC6.0集成开发环境来生成动态链接库,通过向导生成的源代码包含了动态链接库基本的框架,用户只需编写硬件相关的代码即可。发送数据函数如下:
USBDLL_API void USBCMD(char data)
{
ept->Target = TGT_DEVICE;
ept->ReqType = REQ_VENDOR;
ept->Direction = DIR_TO_DEVICE;
ept->ReqCode = 0xA1;
ept->Value = 0;
ept->Index = 0;
PUCHAR buf=new UCHAR[2];
ZeroMemory(buf, 2);
LONG buflen = 2;
buf[0]=0xA1;
buf[1]=data;
ept->XferData(buf,buflen);
}
2.2 固件软件的编写
Cypress公司官网上提供的开发工具包已经包含了固件程序框架,本文基于原厂提供的框架经过修改完成最终的程序。
(1)在periph.c文件中添加用户自定义命令
BOOL DR_CMD1(void)
{
EP0BUF[0]=0xA1;
EP0BCH=0;
EP0BCL=2;
EZUSB_Delay(10);
IOB=EP0BUF[1];
EP0CS |= bmHSNAK;return(1);
}
(2)在lp.h文件的头部添加用户指令常量
#define SC_CMD1 0xa1
(3)修改cydown.c文件的指令解析函数
void SetupCommand(void)
{
void*dscr_ptr;
switch(SETUPDAT[1])
{
……..
case SC_CMD1:
DR_CMD1();
break;
……..
}
}
2.3 上位软件的实现
LabVIEW是美国NI公司推出的基于图形化的编程软件,采用框图编程方法,由类似仪表的控件界面及类似流程的框图代码组成。系统源代码程序框图如图1,程序框图中使用函数调用结点来调用编译好的动态链接库函数。
图1 LabVIEW框图源代码
3 结束语
本文实现了一个由CY7C68013芯片组成的USB最小控制系统。文中使用的动态连接库编程的方式提高了代码的重用性能,为满足不同上层软件开发提供了方便。
以本文所介绍的代码为基础,经过适当修改可以进一步实现虚拟示波器等更为具体的测控系统,具有一定应用空间。
[1]邓焱,王磊. LabVIEW7.1测试技术与仪器应用. 机械工业出版社,2004,08,01.
[2]雷振山. LabVIEW 7 Express 实用技术教程. 中国铁道出版社,2004, 04.
(P-02)
LABVIEW achieves CY7C68013 control via dynamic link library
TP273
1009-797X(2016)02-0093-02
A
10.13520/j.cnki.rpte.2016.02.035
胡之冉(1976-),男,工程硕士,研究方向为自动化控制,从事制造工程方面的工作。
2015-11-24