内江瓷蛋医疗科技有限公司

USB通信技術(shù)在自動(dòng)測試系統中的應用

當前位置:首頁(yè) >> 儀器儀表技術(shù)文章

USB通信技術(shù)在自動(dòng)測試系統中的應用

1 引言

自動(dòng)測試系統ATS(Automatic TEST System)集成測試所需的全部激勵與測量設備,計算機高效完成各種模式的激勵及響應信號的采集、存儲與分析,對被測單元進(jìn)行自動(dòng)狀態(tài)監測、性能測試和故障診斷?偩(xiàn)是ATS的重要組成部分,是計算機與測試硬件內部及外設傳遞信息的公共通路,其性能參數直接影響ATS整體的功能實(shí)現和性能指標。

通用串行總線(xiàn)USB(Universal Serial Bus)主要用于PC與外圍USB設備互聯(lián)。其物理連接是一種分層的菊花鏈結構,最多支持5 Hub層及127個(gè)外設。該結構獨立性強?垢蓴_性強、傳輸速率高、占用資源有限、使用靈活、支持熱插拔,因此USB技術(shù)逐漸成為現代ATS數據傳輸的發(fā)展趨勢。

這里通過(guò)Cypress公司的USB單片機CY7C68013A的PE和GPIF接口實(shí)現計算機與測試控制器件FPGA和緩沖FIFO的高速數據通信,完成ATS測試指令信號和數據的下載,自檢和反饋數據的上傳功能,實(shí)現測試技術(shù)的智能化。重點(diǎn)從USB硬件和固件代碼設計闡述在測試系統數據傳輸過(guò)程中 USB技術(shù)的應用。

2 USB接口通信工作流程

USB具有靈活的1二作流程,如圖1所示。

圖1中,USB設備的工作流程從設備連接→上電→復位→分配地址→配置操作→執行固件代碼,6大工作狀態(tài),這些狀態(tài)在USB主機的控制下實(shí)現狀態(tài)間的轉換和總線(xiàn)的訪(fǎng)問(wèn)。USB設備隨時(shí)根據總線(xiàn)活動(dòng)情況判斷是否進(jìn)入或退出掛起狀態(tài),節省USB系統的功耗。

從圖1分析可知,USB通信包括USB系統應用軟件、設備及總線(xiàn)驅動(dòng)程序和USB固件3層。應用軟件設計由2部分組成:動(dòng)態(tài)鏈接庫和應用程序。動(dòng)態(tài)鏈接庫負責與內核態(tài)的USB功能驅動(dòng)程序通信并接收應用程序對USB設備I/O的各種操作請求,應用程序調用Win32 APl函數DeviceToCon-trol向設備發(fā)出命令;USB設備驅動(dòng)程序通過(guò)總線(xiàn)驅動(dòng)程序發(fā)出輸入輸出請求(IRP),實(shí)現對USB設備信息的發(fā)送和接收;總線(xiàn)驅動(dòng)程序負責總線(xiàn)檢測、電源管理和USB事務(wù)處理,固件程序實(shí)現FX2器件的初始化設置,設備請求處理,電源管理和外圍通信功能,是整個(gè)通信架構的核心。在測試系統中,通過(guò)固件代碼建立數據物理通道并實(shí)現通信協(xié)議,用戶(hù)可通過(guò)測試軟件對USB設備進(jìn)行功能控制,實(shí)現數據的有效通信和測試任務(wù)高效、可靠地完成。

3 測試系統USB硬件電路原理

CY7C68013A(簡(jiǎn)稱(chēng)68013A)集成USB2.0收發(fā)器、串行接口引擎(SIE)、增強8051內核和可編程外圍接口,提供一個(gè)高效的USB2.0解決方案,它可配置為3種數據通信模式:端口、GPIF和Slave FIFO模式。本設計利用GPIF方式快速、靈活等特點(diǎn),有效地解決了端口方式下USB2.0設備數據傳輸速度瓶頸,大大提高了數據的傳輸速率。FX2專(zhuān)門(mén)為GPIF提供外圍接口信號,如8/16位數據線(xiàn)、CTL、Ready信號及地址線(xiàn)。從通用性、低功耗等方面考慮,將68013A的PA,PB,PD和 PE 4個(gè)I/O端口,6個(gè)CTL[5:0]和6個(gè)RDY[5:0]與FIFO或FPGA相連實(shí)現數據通信和握手、控制等功能。

圖2為GPIF方式硬件連接框圖,其中IFCLK是雙向時(shí)鐘信號,當配置為輸出時(shí),IFCLK被FX2驅動(dòng)為30 MHz/48MHz:當配置為輸入時(shí),時(shí)鐘范圍為5~48 MHz;GPIFADR(9)信號為外部設備提供地址線(xiàn),在總線(xiàn)上地址值是自增的;FD[15:0]是USB主機通過(guò)FX2和外部設備進(jìn)行數據傳輸的數據線(xiàn),可配置成8位或16位;CTL[5:0]為外設控制信號,如讀寫(xiě)選通、使能等;RDY[5:0]為外設狀態(tài)檢測信號,如外部FIFO的空、滿(mǎn)等。

整個(gè)系統的工作原理:主機通過(guò)應用軟件設置將相應的測試指令和數據經(jīng)USB總線(xiàn)下載到68013A內部FIFO中,按照同件代碼配置相關(guān)寄存器、端口和中斷,實(shí)現與FIFO和FPGA的數據通信。外部使用兩片FIFO匹配數據傳輸速率,由外部控制信號RD(或RD2)/WR(或WR2)來(lái)控制數據的讀/寫(xiě)。為防止數據的空讀或寫(xiě)溢出,用標志端EF和HF標明FIFO狀態(tài)。這種內外FIFO雙緩沖設計為大容量、高速數據傳輸提供更大的緩沖空間和時(shí)序匹配。 FPGA從FIFO1接收數據的同時(shí),按照從PE口收到的Status[7:0]指令,判斷所接收數據的類(lèi)型和職能,將數據傳輸到相應的測試調理和輸出電路,執行相應操作,判斷被測試對象的工作情況;如從PE端口收到的是自檢命令,則將測試數據回采,判斷系統自身工作情況。被測試對象反饋的信號和測試采集的數據,自檢數據經(jīng)FPGA數據融合處理,從FIFO2傳到68013A的GPIF接收端口,所有CY7C68013A的內部數據和端口操作全部由固件程序描述。

4 固件程序設計

68013A固件負責處理主機各種USB設備請求,控制68013A與外圍電路FPGA進(jìn)行數據傳輸,協(xié)調主機和FPGA 之間的通信。設計利用Cypress公司生產(chǎn)的EZ-USB固件程序框架,其中包括初始化、處理USB設備請求、中斷和USB電源管理等任務(wù),固件的編譯在KeilμVision2的集成開(kāi)發(fā)環(huán)境中進(jìn)行。68013A固件設計流程如圖3所示。該設計主要包括5個(gè)部分:fw.c(框架源文件)、 periph.c(用戶(hù)任務(wù)調度函數文件)、dscr.a(chǎn)51(描述符表)、USBJmpTb.OBJ(中斷跳轉表)、Ezusb.lib(EZ_USB 庫文件)。用戶(hù)僅需對dscr.a(chǎn)51和pe-riph.c修改文件中部分代碼即可完成USB設備的各種功能。periph.c文件通過(guò)調用任務(wù)分配、標準設備請求和中斷處理等函數來(lái)處理USB事件。其中主要修改TD_Init()和TD_Poll()兩個(gè)任務(wù)分配函數。TD_Init()函數用于負責初始化端點(diǎn)狀態(tài)變量,配置外圍I/O接口及設置端口初始值。TD_Poll()主要是初始化功能寄存器,并對設備進(jìn)行重新列舉,完成主機對設備的配置任務(wù);執行過(guò)程中響應中斷,對中斷作相應處理并控制外圍電路。

5 GPIF waveforms設計及測試分析

利用GPIF Designer編輯GPlF waveform波形文件,然后轉換生成GPIF.c文件,作為固件的一部分,加入keil c工程進(jìn)行編譯。每個(gè)GPIF波形描述符都由7段組成:state0~state6(簡(jiǎn)稱(chēng)S0~S6)。執行完S0-S6的動(dòng)作后,都進(jìn)入idle狀態(tài) (S7),以準備啟動(dòng)下一次GPIF動(dòng)作。每個(gè)state可定義為非決定態(tài)(NDP)或決定態(tài)(DP)。當state為NDP時(shí)只是簡(jiǎn)單地延時(shí);為DP 時(shí),它將根據RDY[0:5]上的輸入信號狀態(tài)及內部FIFO的可編程標志和內部自定義的Ready標志,將這些信號進(jìn)行邏輯處理,并根據邏輯結果在選擇即將執行的state。每個(gè)state執行時(shí)可指定CTL[0:5]輸出狀態(tài)。從而控制外圍時(shí)序電路。圖4和圖5分別是GPIF波形編輯文件和測試結果。圖5中下載了開(kāi)關(guān)量,模擬量和數字量信號,各1路,4C6600為START發(fā)送握手標志。

6 結束語(yǔ)

充分利用CY7C68013A的GPIF通信方式,實(shí)現計算機和測試系統硬件之間控制信號和測試數據高速、可靠的傳輸;通過(guò)適當修改硬件測試接口,即可利用新開(kāi)發(fā)固件和應用軟件實(shí)現通用化測試目的,具有較高的實(shí)用價(jià)值;谠撛O計方案的某型號自動(dòng)測試系統已成功應用于航天測試領(lǐng)域。

發(fā)布人:2010/1/4 10:24:00796 發(fā)布時(shí)間:2010/1/4 10:24:00 此新聞已被瀏覽:796次