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ì)。
這里通過(guò)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ù)傳輸過(guò)程中 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)換和總線的訪問(wè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)程序通過(guò)總線驅(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)中,通過(guò)固件代碼建立數(shù)據(jù)物理通道并實(shí)現(xiàn)通信協(xié)議,用戶可通過(guò)測(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ī)通過(guò)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ī)通過(guò)應(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ù)和端口操作全部由固件程序描述。