基于CY7C68013A的USB通信程序開發(fā)設(shè)計
Fx2.h頭文件中要定義自定義請求。
Dscr.a(chǎn)51中則需要設(shè)置的是設(shè)備描述符和配置描述符,還有接口描述符。而控制傳輸需要的O端點(diǎn)不需要設(shè)置。
Syncdly.h中要設(shè)置初始化函數(shù)TD_Init(void)的寄存器。
本文所介紹的實(shí)例中要用到的I2C總線的讀寫函數(shù)如下:
首先是:EZUSB_WriteI2C(BYTE addr,BYTE length,BYTE xdata*dat),其中addr用于指定I2C設(shè)備地址;length為傳送數(shù)據(jù)長度;*dat為發(fā)送數(shù)據(jù)緩沖區(qū)的起始地址:該函數(shù)可用于向EZ-USB I2C接口寫一串?dāng)?shù)據(jù)。在所有提供的數(shù)據(jù)被發(fā)送之前,該函數(shù)立即返回。如果當(dāng)前正在發(fā)送或接收數(shù)據(jù),則發(fā)回FALSE,且數(shù)據(jù)不被發(fā)送。如果端口不忙,數(shù)據(jù)則進(jìn)入隊列,并返回TRUE。
第二個函數(shù)是EZUSB_ReadI2C(BYTE addr,BYTE length,BYTE xdata*dat),其中的addr指定I2C設(shè)備地址;length為傳送數(shù)據(jù)長度;*dat為接收數(shù)據(jù)緩沖區(qū)起始地址;該函數(shù)用于從EZ-USB I2C接口讀一串?dāng)?shù)據(jù)。在所有被請求的數(shù)據(jù)讀入緩沖區(qū)之前,該函數(shù)立即返回。用戶需要不斷的詢問I2C的狀態(tài),以確定數(shù)據(jù)何時有效。如果當(dāng)前正在發(fā)送或接收數(shù)據(jù),則調(diào)用該函數(shù)時返回FALSE,數(shù)據(jù)也不被讀出,當(dāng)I2C端口不忙時,則讀取數(shù)據(jù)隊列并返回TRUE。
下面給出自定義請求的響應(yīng)程序代碼:
本文引用地址:http://www.ex-cimer.com/article/157237.htm
4 結(jié)束語
主要介紹了基于EZ-USBFX2通信的組成部分和設(shè)計過程,本設(shè)計用NI的LabVIEW作為測試系統(tǒng)信號源的設(shè)置數(shù)據(jù)傳輸部分,并通過UCY7C-68013芯片程序較好地達(dá)到了配置信號源的目的。該通信過程現(xiàn)已通過了NI公司的VISAInteractive Control的軟件測試。事實(shí)上,該USB芯片除了配置作用外,還可以利用其他資源方便地實(shí)現(xiàn)測試系統(tǒng)的測試數(shù)據(jù)傳輸,從而達(dá)到充分利用資源的目的。
評論