1 引言 隨著測試技術和無線通信技術的發展和應用,測試儀器向微型化、低功耗發展,紅外數據傳輸成本低廉,簡單易用,在很多小型設備中得到廣泛應用。為避免接口插拔造成儀器損壞,實現測試儀器與PC機間的無線數據傳輸,減少不必要的線纜連接,這里設計一種基于USB2.0的紅外數據傳輸系統,該系統具有低功耗、控制簡單、實施方便,傳輸可靠性高等特點。 2 系統硬件設計 2.1 主要器件選型 Cypress公司的CY7C68013器件包含USB2.0的集成微控制器。它內部集成有1個增強型的8051、1個智能USB串行接口引擎、1個 USB數據收發器、2個UART、3個8位I/O口、16位地址線、8.5 KB RAM和4 KB FIFO等。增強型的8051內核完全與標準8051兼容、而性能可達到標準8051的3倍以上。每條指令占4個時鐘周期,在48 MHz晶振下工作時,單指令周期為83.3 ns,執行速度遠快于標準的8051單片機。EZ-USB FX2支持3種接口模式,即GPIF控制器模式、從屬FIFO模式和端口模式。GPIF控制器模式和從屬FIFO模式與外圍設備是8位或16位數據并行傳輸,根據本系統需要,選擇串行通信的端口模式。 由于USB傳輸的數據是基帶二進制信號,而紅外收發器傳輸的數據是3/16歸零碼,因此選用編解碼器HSDL-7001實現CY7C68013器件與紅外收發器之間的數據轉換。為了實現系統的小體積,選用TFBS4652型紅外收發器,該收發器是最小的紅外收發器之一(6.8 mmX2.8 mmX1.6 mm),質量僅為0.05 g。最大傳輸速率達115.2 Kbit/s(SIR),發光二極管的工作電壓范圍為2.4~3.6 V,溫度為-25~85℃。此外,該收發器還具有發送接收的使能控制端,當系統不工作時,可將此端口置低,這樣收發器就處于關閉狀態,降低系統消耗。 2.2 系統設計組成 本傳輸系統主要由USB2.0接口電路(包括接口器件CY7C68013、電源轉換、串行E2PROM)、紅外編碼解電路和紅外收發器3部分組成。當需將外圍設備中存儲的數據讀取到PC機時,PC機向USB2.0接口器件CY7C68013發送讀取數據的請求命令,CY7C68013接收到請求命令后,把與外圍設備通信的校驗碼通過串行通信接口發送至紅外編解碼HSDL-7001,然后將接口器件發送出的串行二進制數據編碼成3/16歸零碼的脈沖,3/16歸零碼數據通過串行數據線傳送至紅外收發器,此時接口器件開啟紅外收發電器的收發使能端,紅外收發器以紅外光信號的形式發射3/16歸零碼脈沖數據,完成命令的發送;當外圍設備連接的紅外收發器接收到發送的3/16歸零碼數據命令后,將其送至外圍設備,外圍設備收到命令后響應發送數據,即完成一次從PC機到外圍設備的數據通信。其具體實現原理如圖1所示。 ![]() 2.3 紅外編解碼電路 圖2為紅外編解碼電路,主要用到紅外編解碼器HSDL-7001,該器件遵循IrDA1.0通信協議物理層規范,接口與SIR收發器相兼容,可與標準的 16550 UART連接,具有內部或外部2種時鐘模式,工作電壓范圍為2.7~5.5 V,可發送/接收1.63μs或3/16脈沖數據形式。其中16XCLK為16倍波特率的時鐘輸入端,只在外部晶振時使用。 ![]() OSCOUT、OSCIN為晶振接口,低電平時選擇內部時鐘。TXD引腳接收CY7C68013單片機串行端口發送的數據,經編碼調制后,以脈沖的方式傳輸到IR_TXD端口。紅外光脈沖數據轉變來的電平脈沖信號,經IR_RX端口進入HSDL-7001,經內部解調后,通過RX引腳將數據發送到 CY7C68013單片機的串行端口。引腳A0、A1、A2用于改變HSDL-7001的波特率選擇,以匹配外同設備與PC機之間數據的傳輸。 本系統選用外部晶體振蕩器,選用頻率為1.843 2 MHz有源晶振,在數據編碼過程,HSDL-7001接收TXD傳送的串行數據,在TXD的每個下降沿開始,IRRXD延遲7CYCLES的時間 (16CYCLES為一個晶振周期),然后輸出1個正脈沖,脈寬為3CYCLES,如果TXD0一直為低電平,則每個晶振周期內,IRRXD都會輸出1個寬度為3CYCLES的正脈沖。如果TXDO為高電平,則IRTXD輸出低電平,如圖3所示。 ![]() 解碼過程相反,編碼過程看作是把TXD脈沖變窄的過程,而解碼過程則看作是把脈沖拉寬的過程。解碼過程中,當IRRXD傳送1個寬度為3CYCLES的負脈沖,RXD就輸出1個寬度為16CYCLES的負脈沖,如圖4所示。 ![]() 3 系統軟件設計 系統軟件包括固件程序、USB設備驅動程序和應用程序。整個軟件包括系統初始化、采樣控制、數據傳輸和波形顯示等部分。USB設備端固件及外圍電路的底層控制程序主要采用C51編寫,計算機端客戶應用程序采用Visual Basic和Visual C++混合編程。 3.1 USB固件設計 USB數據傳輸有4種方式:塊傳輸、中斷傳輸、同步傳輸和控制傳輸。當需要快速精確大批量傳輸數據時,一般采用塊傳輸方式。設計中主要考慮本系統要求高速持續傳輸大容量的數據,并且對數據的完整性要求較高,故采用塊傳輸方式。 固件程序的編寫采用Keil公司的Keil C51編譯器(V6.10)。它為8051微控制器的軟件開發提供C語言環境,同時保留匯編代碼高效、快速的特點,相對于傳統的匯編開發環境更加靈活、高效和易于使用。將代碼在Keil C51環境中進行編譯。編譯通過后,將固件代碼下載到USB單片機中,就可實現與外圍設備的數據傳輸。 在整個固件程序中,EZ-USB FX2設備上電或復位后,首先初始化所有內部狀態變量,隨后調用任務初始化函數TD_Init(),開啟中斷,此時固件程序不斷檢測控制端口0是否收到 SETUP包。一旦收到,固件程序就開始調用用戶函數TD_Poll(),其中用戶需要完成的功能代碼在TD_Poll()函數中。調用完成后,重復檢測端口O是否收到SETUP包,若有,繼續執行設備請求,調用TD_Poll()函數;否則檢測USB核是否有USB掛起信號。若有則調用用戶函數 TD_Suspend(),其返回值為真時,檢測USB核是否有重新開始事件,沒有時,設備進入掛起狀態,反之,調用TD_Resume()進行下一次循環;當。TD_Suspend()函數返回值為假時,直接轉入下次循環。 此外,固件程序框架中還定義許多中斷處理函數,當用到時可在相應的位置加入用戶編寫的代碼,這樣既清晰又便于理解,就可在無需改變整個程序的前提下,僅通過改變相應的模塊,來實現用戶設置的功能,本系統采用串口中斷處理函數實現紅外傳輸數據的接收。 3.2 驅動程序設計 USB系統驅動程序采用分層結構模型(WDM),該模型定義分層的驅動程序,USB設備驅動程序不直接與硬件對話,而是通過USB驅動程序接口將USB請求快速提交到總線驅動程序進而完成硬件操作。從系統的角度來說,在USB設備插入主機后,主機檢測到USB設備,讀取設備描述符,然后主機根據設備描述符中提供的廠商ID和產品ID等,啟用相應USB設備驅動程序,讀取USB設備中的配置描述符、接口描述符和端點描述符,根據需要選擇恰當的配置、接口和端點,確定傳輸方式。這一過程完成后,PC機與USB設備之間就可傳輸數據。 3. 3 應用程序設計 應用程序是測試系統軟件的核心,其對USB設備的操作功能為:開啟或關閉USB設備,檢測USB設備,設置USB數據傳輸管道。設置數據端口的初始狀態,通過USB接口回傳數據、存儲、顯示并分析數據。 4 結論 本文設計的數據傳輸系統具有低功耗、控制簡單、實施方便等特點,系統將USB2.O接口技術與紅外傳輸技術結合,實現了測試儀與PC機之間的無線數據傳輸,達到了設計應用要求。 為了保證傳輸數據的正確性,避免其他光波對傳輸數據的干擾,系統殼體安裝紅外濾光片:一方面,消除或減少散射輻射或背景輻射的有害影響:另一方面,分出具有特定波長區的紅外波長。經多次試驗證明,該系統能夠可靠穩定傳輸數據,具有很好的實用性。 參考文獻 1. 周立功.USB2.0與OTG規范及開發指南[M].北京:北京航空航天大學出版社,2004. 2. 錢峰.EZ-USB FX2單片機原理、編程及應用[M].北京:北京航空航天大學出版社,2005. 3. IR.3/16 encode/decode IC technical data[EB/OL].2009.http://www.21ic.com. 4. Cypress 公司.EZ-USB FX2 technical reference manual[EB/OL].2001.http://www.cypress.com/?doc ID=4385. 5. 張秀艷,林小波.基于USB單片機的紅外數據傳輸裝置設計[J].儀表技術與傳感器,2008(4):48-49. 6. 嚴后選,張天宏,孫健國.近距離紅外無線數據通信技術研究[J].應用基礎與工程科學學報,2004,12(4):410-414. 7. 李秀娟.四通道紅外監控無線報警系統的設計[J].電子設計工程,2007,15(12):3-6. 8. 柳蘭,何娜,黃智偉.基于USB接口的數據采集與控制系統設計[J].電子設計工程,2009,17(6):38-40. 9. 王文英,李華.基于USB2.0接口的瀝青拌和站數據采集系統設計[J].電子設計工程,2009,17(4):52-54. 作者: 張君怡 王海明 裴東興 (中北大學儀器科學與動態測試教育部重點實驗室,山西,太原,030051) 來源:電子設計工程 2009(12) |