使用CY7C68013A开发和设计USB通信程序

使用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接口发送数据以读取数据字符串

深圳市相信过程科技有限公司❤舒先生❤欢迎您的咨询