使用CY7C68013A开发和设计USB通信程序
0简介CY7C68013集成了增强的8051微控制器和I2C兼容控制器,其传输速率可以达到100 kHz或400 kHz。
LabVIEW是用于基于图形语言设计虚拟仪器的软件。
LabVIEW使用图形框图构造程序代码。
LabVIEW程序由数据流驱动,数据流控制程序的执行顺序。
LabVIEW功能强大。
它具有带有可扩展功能库和子例程库的通用编程系统。
它的VISA(虚拟仪器软件体系结构)是用于与各种仪器总线进行通信的高级应用程序编程接口(API)。
受平台,公交车和环境的限制。
I2C(内部集成电路)总线是飞利浦开发的两线式串行总线。
它主要用于连接微控制器及其外围设备。
它由数据线SDA和时钟SCL组成,用于发送和接收数据。
它的主要优点是简单和有效。
通常情况下,完整的USB通信系统软件通常需要三个部分:上位机程序,驱动程序和固件程序。
1上位机程序的开发采用NI公司的LabvIEW来实现上位机程序的开发,在开发过程中可以采用控制传递的方法。
在控制传输中,功能“ VISA Open”被打开。
用于打开指定的USB设备,“ VISA USB Control Output”(VISA USB控制输出)功能用于完成定义请求0xB1,该请求可以将数据写到“写缓冲器”中。
进入FPGA寄存器。
使用功能“ VISA USB控制输入”以完成定制请求0xB2,并将FPGA寄存器中的数据读回到“读缓冲器”。
其流程图如图1所示。
当用波形设置上位机程序时,可以使用subVI的功能生成弹出窗口,实现程序通道的设置,并通过事件结构,案例结构,循环结构,可以实现任意波形生成的子VI;通过用于基本波形设置的条件结构SubVI设计,可以实现六种子VI。
在设计驱动程序时,可以使用NI的VISA开发2个驱动程序。
在执行USB通信时,VISA提供了两种类型的供LabVIEW调用的功能,即USB INSTR设备和USB RAW设备。
& nbsp; USB INSTR设备是符合USBTMC协议的USB设备。
使用USB INSTR功能进行控制时,无需使用NI-VISA进行通讯配置。
和USB RAW设备是指除明显符合USBTMC规范的乐器以外的任何USB设备。
NI-VISA必须配置用于通讯。
有关配置NI-VISA的详细步骤和过程,请参见免费文档“使用NI-VISA控制USB设备”。
在NI *****上。
3对于固件程序的开发和构建,大约需要修改五个文件。
Fw.c是USB固件程序的主文件。
为了实现控制传输,需要修改文件:一个是声明两个函数以响应定制设备的请求,另一个是设置定制设备请求的响应部分。
佩里普c首先,设置初始化函数TD_Init(void),并设置与EPOBUF相关的寄存器,CPU的时钟频率以及与I2C相关的寄存器:其次,定义用于响应用户定义的请求的函数设备。
Fx2。
自定义请求应在h头文件中定义。
DSCR。
在a51中,需要设置的是设备描述符,配置描述符以及接口描述符。
不需要设置控制传输所需的O端点。
同步地。
在h中设置初始化函数TD_Init(void)的寄存器。
本文介绍的示例中将使用的I2C总线读写功能如下:首先:EZUSB_WriteI2C(BYTE addr,BYTE长度,BYTE xdata * dat),其中addr用于指定I2C设备的地址。
length是传输数据的长度; * dat是发送数据缓冲区的起始地址:此功能可用于将数据字符串写入EZ-USB I2C接口。
在发送所有提供的数据之前,该函数将立即返回。
如果当前正在发送或接收数据,则将FALSE发送回,并且不会发送数据。
如果端口不忙,则数据进入队列并返回TRUE。
第二个函数是EZUSB_ReadI2C(BYTE地址,BYTE长度,BYTE xdata * dat),其中addr指定I2C设备的地址。
length是要传输的数据的长度; * dat是接收数据缓冲区的起始地址;此功能用于从EZ -USB I2C接口发送数据以读取数据字符串