通信与网络中的基于通信与网络中的基于CY7C68013A的的USB通信程序开发设计通信程序开发设计
摘要:USB总线(Universal Setial Bus通用串行总线)是用来连接外围设备与计算机的新式接口,文中给出了利用
CY7C68013芯片上所集成的I2C控制器来控制USB设备上数据传输的实现方法。该方法同时利用NI公司的
LabVIEW来对上位机进行编程,而对USB设备则采用控制传输方式,这样同时保证了传输速度和数据的正确
性。 0 引言 CY7C68013中集成有增强的8051微控制器及I2C兼容控制器,其传输速率可达100 kHz或
400kHz。LabVIEW是一种以图形化语言为基础设计虚拟仪器的软件,LabVIEW采用图形模式的结构框图来构建
程序代码,LabVIEW程序
摘要:USB总线(Universal Setial Bus通用串行总线)是用来连接外围设备与计算机的新式接口,文中给出了利用
CY7C68013芯片上所集成的I2C控制器来控制USB设备上数据传输的实现方法。该方法同时利用NI公司的LabVIEW来对上位
机进行编程,而对USB设备则采用控制传输方式,这样同时保证了传输速度和数据的正确性。
0 引言引言
CY7C68013中集成有增强的8051微控制器及I2C兼容控制器,其传输速率可达100 kHz或400kHz。LabVIEW是一种以图
形化语言为基础设计虚拟仪器的软件,LabVIEW采用图形模式的结构框图来构建程序代码,LabVIEW程序由数据流驱动,数
据流控制着程序的执行顺序。LabVIEW功能强大,它带有可扩展函数库和子程序库的通用程序设计系统,它的VISA(Virtual
InstrumentSoftware Architecture)是一个用来与各种仪器总线进行通讯的高级应用编程接口(API),且不受平台、总线和环境的
限制。
I2C (Inter-Integrated Circuit)总线是由飞利浦公司开发的两线式串行总线,主要用于连接微控制器及其外围设备。它由数
据线SDA和时钟SCL构成,用于发送和接收数据。其最主要的优点是简单和有效。
一般情况下,一个完整的USB通信系统的软件通常需要上位机程序、驱动程序和固件程序三个部分。
1 上位机程序开发上位机程序开发
采用NI公司的LabvIEW实现上位机程序开发,开发时可采用控制传输方式。控制传输中使用函数“VISA打开”来打开指定的
USB设备,而“VISA USB控制输出”函数则用来完成定义请求0xBl,它可将“写入缓冲区”中的数据写入FPGA寄存器。使用函
数“VISA USB控制输入”来完成自定义请求0xB2,并将FPGA寄存器中的数据读回到“读取缓冲区”中。其程序框图如图1所示。
波形设置上位机程序时,可利用子VI产生弹出窗口的功能来实现程序通道的设置,而通过事件结构、case结构、循环结
构则可实现任意波形产生的子VI;通过case结构可实现六种基本波形设置的子VI设计。
2 驱动程序开发驱动程序开发
设计时可采用NI公司的VISA来开发驱动程序。当进行USB通信时,VISA提供两类函数供LabVIEW调用,即USB INSTR
设备与USB RAW设备。 USB INSTR设备是符合USBTMC协议的USB设备,使用USB INSTR类函数控制时,其通信无需配
置NI-VISA;而USB RAW设备则是指除了明确符合USBTMC规格的仪器之外的任何USB设备,通信时都要配置NI-VISA。配
置NI-VISA的详细步骤和过程可参考NI*****上免费提供的文档《使用NI-VISA控制USB设备》。
3 固件程序开发固件程序开发
构成建构所需要修改的文件大约有五个。其中Fw.c为USB固件程序的主文件,为了实现控制传输,需要修改该文件:其
一是要声明用来响应自定义设备请求的两个函数,其二是设置自定义设备请求的响应部分。
Periph.c首先要设置初始化函数TD_Init(void),并应设置与EPOBUF有关的寄存器、CPU的时钟频率以及与I2C相关的寄
存器:其次还要定义用来响应自定义设备请求的函数。
Fx2.h头文件中要定义自定义请求。
评论0
最新资源