利用CY7C68013A的USB通信程序开发与设计

发布时间:2024-01-25  

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头文件中要定义自定义请求。

Dscr.a51中则需要设置的是设备描述符和配置描述符,还有接口描述符。而控制传输需要的O端点不需要设置。

Syncdly.h中要设置初始化函数TD_Init(void)的寄存器。

本文所介绍的实例中要用到的I2C总线的读写函数如下:

首先是:EZUSB_WriteI2C(BYTE addr,BYTE length,BYTE xdata*dat),其中addr用于指定I2C设备地址;length为传送数据长度;*dat为发送数据缓冲区的起始地址:该函数可用于向EZ-USB I2C接口写一串数据。在所有提供的数据被发送之前,该函数立即返回。如果当前正在发送或接收数据,则发回FALSE,且数据不被发送。如果端口不忙,数据则进入队列,并返回TRUE。

第二个函数是EZUSB_ReadI2C(BYTE addr,BYTE length,BYTE xdata*dat),其中的addr指定I2C设备地址;length为传送数据长度;*dat为接收数据缓冲区起始地址;该函数用于从EZ-USB I2C接口读一串数据。在所有被请求的数据读入缓冲区之前,该函数立即返回。用户需要不断的询问I2C的状态,以确定数据何时有效。如果当前正在发送或接收数据,则调用该函数时返回FALSE,数据也不被读出,当I2C端口不忙时,则读取数据队列并返回TRUE。

下面给出自定义请求的响应程序代码:



4 结束语

主要介绍了基于EZ-USBFX2通信的组成部分和设计过程,本设计用NI的LabVIEW作为测试系统信号源的设置数据传输部分,并通过UCY7C-68013芯片程序较好地达到了配置信号源的目的。该通信过程现已通过了NI公司的VISAInteractive Control的软件测试。事实上,该USB芯片除了配置作用外,还可以利用其他资源方便地实现测试系统的测试数据传输,从而达到充分利用资源的目的。

文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>