0 引言
CY7C68013中集成有增強的8051微控制器及I2C兼容控制器,其傳輸速率可達100 kHz或400kHz。LabVIEW是一種以圖形化語言為基礎設計虛擬儀器的軟件,LabVIEW采用圖形模式的結構框圖來構建程序代碼,LabVIEW程序由數據流驅動,數據流控制著程序的執(zhí)行順序。LabVIEW功能強大,它帶有可擴展函數庫和子程序庫的通用程序設計系統(tǒng),它的VISA(VIRtual INStrumentSoftware Architecture)是一個用來與各種儀器總線進行通訊的高級應用編程接口(API),且不受平臺、總線和環(huán)境的限制。
I2C (Inter-Integrated Circuit)總線是由飛利浦公司開發(fā)的兩線式串行總線,主要用于連接微控制器及其外圍設備。它由數據線SDA和時鐘SCL構成,用于發(fā)送和接收數據。其最主要的優(yōu)點是簡單和有效。
一般情況下,一個完整的USB通信系統(tǒng)的軟件通常需要上位機程序、驅動程序和固件程序三個部分。
1 上位機程序開發(fā)
采用NI公司的LabvIEW實現上位機程序開發(fā),開發(fā)時可采用控制傳輸方式。控制傳輸中使用函數“VISA打開”來打開指定的USB設備,而“VISA USB控制輸出”函數則用來完成定義請求0xBl,它可將“寫入緩沖區(qū)”中的數據寫入FPGA寄存器。使用函數“VISA USB控制輸入”來完成自定義請求0xB2,并將FPGA寄存器中的數據讀回到“讀取緩沖區(qū)”中。其程序框圖如圖1所示。
波形設置上位機程序時,可利用子VI產生彈出窗口的功能來實現程序通道的設置,而通過事件結構、case結構、循環(huán)結構則可實現任意波形產生的子VI;通過case結構可實現六種基本波形設置的子VI設計。
2 驅動程序開發(fā)
設計時可采用NI公司的VISA來開發(fā)驅動程序。當進行USB通信時,VISA提供兩類函數供LabVIEW調用,即USB INSTR設備與USB RAW設備。? USB INSTR設備是符合USBTMC協(xié)議的USB設備,使用USB INSTR類函數控制時,其通信無需配置NI-VISA;而USB RAW設備則是指除了明確符合USBTMC規(guī)格的儀器之外的任何USB設備,通信時都要配置NI-VISA。配置NI-VISA的詳細步驟和過程可參考NI*****上免費提供的文檔《使用NI-VISA控制USB設備》。
3 固件程序開發(fā)
構成建構所需要修改的文件大約有五個。其中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為發(fā)送數據緩沖區(qū)的起始地址:該函數可用于向EZ-USB I2C接口寫一串數據。在所有提供的數據被發(fā)送之前,該函數立即返回。如果當前正在發(fā)送或接收數據,則發(fā)回FALSE,且數據不被發(fā)送。如果端口不忙,數據則進入隊列,并返回TRUE。
第二個函數是EZUSB_ReadI2C(BYTE addr,BYTE length,BYTE xdata*dat),其中的addr指定I2C設備地址;length為傳送數據長度;*dat為接收數據緩沖區(qū)起始地址;該函數用于從EZ-USB I2C接口讀一串數據。在所有被請求的數據讀入緩沖區(qū)之前,該函數立即返回。用戶需要不斷的詢問I2C的狀態(tài),以確定數據何時有效。如果當前正在發(fā)送或接收數據,則調用該函數時返回FALSE,數據也不被讀出,當I2C端口不忙時,則讀取數據隊列并返回TRUE。
下面給出自定義請求的響應程序代碼:
4 結束語
主要介紹了基于EZ-USBFX2通信的組成部分和設計過程,本設計用NI的LabVIEW作為測試系統(tǒng)信號源的設置數據傳輸部分,并通過UCY7C-68013芯片程序較好地達到了配置信號源的目的。該通信過程現已通過了NI公司的VISAInteractive Control的軟件測試。事實上,該USB芯片除了配置作用外,還可以利用其他資源方便地實現測試系統(tǒng)的測試數據傳輸,從而達到充分利用資源的目的。
CY7C68013中集成有增強的8051微控制器及I2C兼容控制器,其傳輸速率可達100 kHz或400kHz。LabVIEW是一種以圖形化語言為基礎設計虛擬儀器的軟件,LabVIEW采用圖形模式的結構框圖來構建程序代碼,LabVIEW程序由數據流驅動,數據流控制著程序的執(zhí)行順序。LabVIEW功能強大,它帶有可擴展函數庫和子程序庫的通用程序設計系統(tǒng),它的VISA(VIRtual INStrumentSoftware Architecture)是一個用來與各種儀器總線進行通訊的高級應用編程接口(API),且不受平臺、總線和環(huán)境的限制。
I2C (Inter-Integrated Circuit)總線是由飛利浦公司開發(fā)的兩線式串行總線,主要用于連接微控制器及其外圍設備。它由數據線SDA和時鐘SCL構成,用于發(fā)送和接收數據。其最主要的優(yōu)點是簡單和有效。
一般情況下,一個完整的USB通信系統(tǒng)的軟件通常需要上位機程序、驅動程序和固件程序三個部分。
1 上位機程序開發(fā)
采用NI公司的LabvIEW實現上位機程序開發(fā),開發(fā)時可采用控制傳輸方式。控制傳輸中使用函數“VISA打開”來打開指定的USB設備,而“VISA USB控制輸出”函數則用來完成定義請求0xBl,它可將“寫入緩沖區(qū)”中的數據寫入FPGA寄存器。使用函數“VISA USB控制輸入”來完成自定義請求0xB2,并將FPGA寄存器中的數據讀回到“讀取緩沖區(qū)”中。其程序框圖如圖1所示。
波形設置上位機程序時,可利用子VI產生彈出窗口的功能來實現程序通道的設置,而通過事件結構、case結構、循環(huán)結構則可實現任意波形產生的子VI;通過case結構可實現六種基本波形設置的子VI設計。
2 驅動程序開發(fā)
設計時可采用NI公司的VISA來開發(fā)驅動程序。當進行USB通信時,VISA提供兩類函數供LabVIEW調用,即USB INSTR設備與USB RAW設備。? USB INSTR設備是符合USBTMC協(xié)議的USB設備,使用USB INSTR類函數控制時,其通信無需配置NI-VISA;而USB RAW設備則是指除了明確符合USBTMC規(guī)格的儀器之外的任何USB設備,通信時都要配置NI-VISA。配置NI-VISA的詳細步驟和過程可參考NI*****上免費提供的文檔《使用NI-VISA控制USB設備》。
3 固件程序開發(fā)
構成建構所需要修改的文件大約有五個。其中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為發(fā)送數據緩沖區(qū)的起始地址:該函數可用于向EZ-USB I2C接口寫一串數據。在所有提供的數據被發(fā)送之前,該函數立即返回。如果當前正在發(fā)送或接收數據,則發(fā)回FALSE,且數據不被發(fā)送。如果端口不忙,數據則進入隊列,并返回TRUE。
第二個函數是EZUSB_ReadI2C(BYTE addr,BYTE length,BYTE xdata*dat),其中的addr指定I2C設備地址;length為傳送數據長度;*dat為接收數據緩沖區(qū)起始地址;該函數用于從EZ-USB I2C接口讀一串數據。在所有被請求的數據讀入緩沖區(qū)之前,該函數立即返回。用戶需要不斷的詢問I2C的狀態(tài),以確定數據何時有效。如果當前正在發(fā)送或接收數據,則調用該函數時返回FALSE,數據也不被讀出,當I2C端口不忙時,則讀取數據隊列并返回TRUE。
下面給出自定義請求的響應程序代碼:
4 結束語
主要介紹了基于EZ-USBFX2通信的組成部分和設計過程,本設計用NI的LabVIEW作為測試系統(tǒng)信號源的設置數據傳輸部分,并通過UCY7C-68013芯片程序較好地達到了配置信號源的目的。該通信過程現已通過了NI公司的VISAInteractive Control的軟件測試。事實上,該USB芯片除了配置作用外,還可以利用其他資源方便地實現測試系統(tǒng)的測試數據傳輸,從而達到充分利用資源的目的。
評論
查看更多