基于CY7C68013A的USB通信程序開(kāi)發(fā)設計
Fx2.h頭文件中要定義自定義請求。
Dscr.a(chǎn)51中則需要設置的是設備描述符和配置描述符,還有接口描述符。而控制傳輸需要的O端點(diǎn)不需要設置。
Syncdly.h中要設置初始化函數TD_Init(void)的寄存器。
本文所介紹的實(shí)例中要用到的I2C總線(xiàn)的讀寫(xiě)函數如下:
首先是:EZUSB_WriteI2C(BYTE addr,BYTE length,BYTE xdata*dat),其中addr用于指定I2C設備地址;length為傳送數據長(cháng)度;*dat為發(fā)送數據緩沖區的起始地址:該函數可用于向EZ-USB I2C接口寫(xiě)一串數據。在所有提供的數據被發(fā)送之前,該函數立即返回。如果當前正在發(fā)送或接收數據,則發(fā)回FALSE,且數據不被發(fā)送。如果端口不忙,數據則進(jìn)入隊列,并返回TRUE。
第二個(gè)函數是EZUSB_ReadI2C(BYTE addr,BYTE length,BYTE xdata*dat),其中的addr指定I2C設備地址;length為傳送數據長(cháng)度;*dat為接收數據緩沖區起始地址;該函數用于從EZ-USB I2C接口讀一串數據。在所有被請求的數據讀入緩沖區之前,該函數立即返回。用戶(hù)需要不斷的詢(xún)問(wèn)I2C的狀態(tài),以確定數據何時(shí)有效。如果當前正在發(fā)送或接收數據,則調用該函數時(shí)返回FALSE,數據也不被讀出,當I2C端口不忙時(shí),則讀取數據隊列并返回TRUE。
下面給出自定義請求的響應程序代碼:

4 結束語(yǔ)
主要介紹了基于EZ-USBFX2通信的組成部分和設計過(guò)程,本設計用NI的LabVIEW作為測試系統信號源的設置數據傳輸部分,并通過(guò)UCY7C-68013芯片程序較好地達到了配置信號源的目的。該通信過(guò)程現已通過(guò)了NI公司的VISAInteractive Control的軟件測試。事實(shí)上,該USB芯片除了配置作用外,還可以利用其他資源方便地實(shí)現測試系統的測試數據傳輸,從而達到充分利用資源的目的。
評論