《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > USB通信技術(shù)在自動(dòng)測(cè)試系統(tǒng)中的應(yīng)用
USB通信技術(shù)在自動(dòng)測(cè)試系統(tǒng)中的應(yīng)用
摘要: 自動(dòng)測(cè)試系統(tǒng)ATS(Automatic Test System)集成測(cè)試所需的全部激勵(lì)與測(cè)量設(shè)備,,計(jì)算機(jī)高效完成各種模式的激勵(lì)及響應(yīng)信號(hào)的采集,、存儲(chǔ)與分析,對(duì)被測(cè)單元進(jìn)行自動(dòng)狀態(tài)監(jiān)測(cè)、性能測(cè)試和故障診斷,??偩€是ATS的重要組成部分,,是計(jì)算機(jī)與測(cè)試硬件內(nèi)部及外設(shè)傳遞信息的公共通路,,其性能參數(shù)直接影響ATS整體的功能實(shí)現(xiàn)和性能指標(biāo)。
Abstract:
Key words :

1 引言

自動(dòng)測(cè)試系統(tǒng)ATS(Automatic Test System)集成測(cè)試所需的全部激勵(lì)與測(cè)量設(shè)備,,計(jì)算機(jī)高效完成各種模式的激勵(lì)及響應(yīng)信號(hào)的采集,、存儲(chǔ)與分析,對(duì)被測(cè)單元進(jìn)行自動(dòng)狀態(tài)監(jiān)測(cè),、性能測(cè)試和故障診斷,。總線是ATS的重要組成部分,,是計(jì)算機(jī)與測(cè)試硬件內(nèi)部及外設(shè)傳遞信息的公共通路,,其性能參數(shù)直接影響ATS整體的功能實(shí)現(xiàn)和性能指標(biāo)。
通用串行總線USB(Universal Serial Bus)主要用于PC與外圍USB設(shè)備互聯(lián),。其物理連接是一種分層的菊花鏈結(jié)構(gòu),,最多支持5 Hub層及127個(gè)外設(shè)。該結(jié)構(gòu)獨(dú)立性強(qiáng),??垢蓴_性強(qiáng)、傳輸速率高,、占用資源有限,、使用靈活、支持熱插拔,,因此USB技術(shù)逐漸成為現(xiàn)代ATS數(shù)據(jù)傳輸?shù)陌l(fā)展趨勢(shì),。
這里通過Cypress公司的USB單片機(jī)CY7C68013A的PE和GPIF接口實(shí)現(xiàn)計(jì)算機(jī)與測(cè)試控制器件FPGA和緩沖FIFO的高速數(shù)據(jù)通信,,完成ATS測(cè)試指令信號(hào)和數(shù)據(jù)的下載,自檢和反饋數(shù)據(jù)的上傳功能,,實(shí)現(xiàn)測(cè)試技術(shù)的智能化,。重點(diǎn)從USB硬件和固件代碼設(shè)計(jì)闡述在測(cè)試系統(tǒng)數(shù)據(jù)傳輸過程中USB技術(shù)的應(yīng)用。

2 USB接口通信工作流程

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



圖1中,USB設(shè)備的工作流程從設(shè)備連接→上電→復(fù)位→分配地址→配置操作→執(zhí)行固件代碼,,6大工作狀態(tài),這些狀態(tài)在USB主機(jī)的控制下實(shí)現(xiàn)狀態(tài)間的轉(zhuǎn)換和總線的訪問,。USB設(shè)備隨時(shí)根據(jù)總線活動(dòng)情況判斷是否進(jìn)入或退出掛起狀態(tài),,節(jié)省USB系統(tǒng)的功耗。
從圖1分析可知,,USB通信包括USB系統(tǒng)應(yīng)用軟件,、設(shè)備及總線驅(qū)動(dòng)程序和USB固件3層。應(yīng)用軟件設(shè)計(jì)由2部分組成:動(dòng)態(tài)鏈接庫(kù)和應(yīng)用程序,。動(dòng)態(tài)鏈接庫(kù)負(fù)責(zé)與內(nèi)核態(tài)的USB功能驅(qū)動(dòng)程序通信并接收應(yīng)用程序?qū)SB設(shè)備I/O的各種操作請(qǐng)求,,應(yīng)用程序調(diào)用Win32 APl函數(shù)DeviceToCon-trol向設(shè)備發(fā)出命令;USB設(shè)備驅(qū)動(dòng)程序通過總線驅(qū)動(dòng)程序發(fā)出輸入輸出請(qǐng)求(IRP),,實(shí)現(xiàn)對(duì)USB設(shè)備信息的發(fā)送和接收,;總線驅(qū)動(dòng)程序負(fù)責(zé)總線檢測(cè)、電源管理和USB事務(wù)處理,,固件程序?qū)崿F(xiàn)FX2器件的初始化設(shè)置,,設(shè)備請(qǐng)求處理,電源管理和外圍通信功能,,是整個(gè)通信架構(gòu)的核心,。在測(cè)試系統(tǒng)中,通過固件代碼建立數(shù)據(jù)物理通道并實(shí)現(xiàn)通信協(xié)議,,用戶可通過測(cè)試軟件對(duì)USB設(shè)備進(jìn)行功能控制,,實(shí)現(xiàn)數(shù)據(jù)的有效通信和測(cè)試任務(wù)高效、可靠地完成,。

3 測(cè)試系統(tǒng)USB硬件電路原理

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

 

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

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

 



4 固件程序設(shè)計(jì)

68013A固件負(fù)責(zé)處理主機(jī)各種USB設(shè)備請(qǐng)求,,控制68013A與外圍電路FPGA進(jìn)行數(shù)據(jù)傳輸,協(xié)調(diào)主機(jī)和FPGA 之間的通信,。設(shè)計(jì)利用Cypress公司生產(chǎn)的EZ-USB固件程序框架,其中包括初始化,、處理USB設(shè)備請(qǐng)求,、中斷和USB電源管理等任務(wù),固件的編譯在KeilμVision2的集成開發(fā)環(huán)境中進(jìn)行,。68013A固件設(shè)計(jì)流程如圖3所示,。該設(shè)計(jì)主要包括5個(gè)部分:fw.c(框架源文件)、 periph.c(用戶任務(wù)調(diào)度函數(shù)文件),、dscr.a(chǎn)51(描述符表),、USBJmpTb.OBJ(中斷跳轉(zhuǎn)表)、Ezusb.lib(EZ_USB 庫(kù)文件),。用戶僅需對(duì)dscr.a(chǎn)51和pe-riph.c修改文件中部分代碼即可完成USB設(shè)備的各種功能,。periph.c文件通過調(diào)用任務(wù)分配、標(biāo)準(zhǔn)設(shè)備請(qǐng)求和中斷處理等函數(shù)來(lái)處理USB事件,。其中主要修改TD_Init()和TD_Poll()兩個(gè)任務(wù)分配函數(shù),。

 

TD_Init()函數(shù)用于負(fù)責(zé)初始化端點(diǎn)狀態(tài)變量,配置外圍I/O接口及設(shè)置端口初始值,。TD_Poll()主要是初始化功能寄存器,,并對(duì)設(shè)備進(jìn)行重新列舉,完成主機(jī)對(duì)設(shè)備的配置任務(wù),;執(zhí)行過程中響應(yīng)中斷,,對(duì)中斷作相應(yīng)處理并控制外圍電路。

5 GPIF waveforms設(shè)計(jì)及測(cè)試分析


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

 




6 結(jié)束語(yǔ)

充分利用CY7C68013A的GPIF通信方式,實(shí)現(xiàn)計(jì)算機(jī)和測(cè)試系統(tǒng)硬件之間控制信號(hào)和測(cè)試數(shù)據(jù)高速,、可靠的傳輸,;通過適當(dāng)修改硬件測(cè)試接口,即可利用新開發(fā)固件和應(yīng)用軟件實(shí)現(xiàn)通用化測(cè)試目的,,具有較高的實(shí)用價(jià)值,。基于該設(shè)計(jì)方案的某型號(hào)自動(dòng)測(cè)試系統(tǒng)已成功應(yīng)用于航天測(cè)試領(lǐng)域,。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。