基于USB2.0的紅外數(shù)據(jù)傳輸系統(tǒng)的設(shè)計與實現(xiàn)
關(guān)鍵字:USB2.0 紅外 數(shù)據(jù)傳輸
本文引用地址:http://www.ex-cimer.com/article/194429.htm1引言
隨著測試技術(shù)和無線通信技術(shù)的發(fā)展和應用,測試儀器向微型化、低功耗發(fā)展,紅外數(shù)據(jù)傳輸成本低廉,簡單易用,在很多小型設(shè)備中得到廣泛應用。為避免接口插拔造成儀器損壞,實現(xiàn)測試儀器與PC機間的無線數(shù)據(jù)傳輸,減少不必要的線纜連接,這里設(shè)計一種基于USB2.0的紅外數(shù)據(jù)傳輸系統(tǒng),該系統(tǒng)具有低功耗、控制簡單、實施方便,傳輸可靠性高等特點。
2系統(tǒng)硬件設(shè)計
2.1主要器件選型
Cypress公司的CY7C68013器件包含USB2.0的集成微控制器。它內(nèi)部集成有1個增強型的8051、1個智能USB串行接口引擎、1個USB數(shù)據(jù)收發(fā)器、2個UART、3個8位I/O口、16位地址線、8.5KBRAM和4KBFIFO等。增強型的8051內(nèi)核完全與標準8051兼容、而性能可達到標準8051的3倍以上。每條指令占4個時鐘周期,在48MHz晶振下工作時,單指令周期為83.3ns,執(zhí)行速度遠快于標準的8051單片機。EZ-USBFX2支持3種接口模式,即GPIF控制器模式、從屬FIFO模式和端口模式。GPIF控制器模式和從屬FIFO模式與外圍設(shè)備是8位或16位數(shù)據(jù)并行傳輸,根據(jù)本系統(tǒng)需要,選擇串行通信的端口模式。
由于USB傳輸?shù)臄?shù)據(jù)是基帶二進制信號,而紅外收發(fā)器傳輸?shù)臄?shù)據(jù)是3/16歸零碼,因此選用編解碼器HSDL-7001實現(xiàn)CY7C68013器件與紅外收發(fā)器之間的數(shù)據(jù)轉(zhuǎn)換。為了實現(xiàn)系統(tǒng)的小體積,選用TFBS4652型紅外收發(fā)器,該收發(fā)器是最小的紅外收發(fā)器之一(6.8mmX2.8mmX1.6mm),質(zhì)量僅為0.05g。最大傳輸速率達115.2Kbit/s(SIR),發(fā)光二極管的工作電壓范圍為2.4~3.6V,溫度為-25~85℃。此外,該收發(fā)器還具有發(fā)送接收的使能控制端,當系統(tǒng)不工作時,可將此端口置低,這樣收發(fā)器就處于關(guān)閉狀態(tài),降低系統(tǒng)消耗。
2.2系統(tǒng)設(shè)計組成
本傳輸系統(tǒng)主要由USB2.0接口電路(包括接口器件CY7C68013、電源轉(zhuǎn)換、串行E2PROM)、紅外編碼解電路和紅外收發(fā)器3部分組成。當需將外圍設(shè)備中存儲的數(shù)據(jù)讀取到PC機時,PC機向USB2.0接口器件CY7C68013發(fā)送讀取數(shù)據(jù)的請求命令,CY7C68013接收到請求命令后,把與外圍設(shè)備通信的校驗碼通過串行通信接口發(fā)送至紅外編解碼HSDL-7001,然后將接口器件發(fā)送出的串行二進制數(shù)據(jù)編碼成3/16歸零碼的脈沖,3/16歸零碼數(shù)據(jù)通過串行數(shù)據(jù)線傳送至紅外收發(fā)器,此時接口器件開啟紅外收發(fā)電器的收發(fā)使能端,紅外收發(fā)器以紅外光信號的形式發(fā)射3/16歸零碼脈沖數(shù)據(jù),完成命令的發(fā)送;當外圍設(shè)備連接的紅外收發(fā)器接收到發(fā)送的3/16歸零碼數(shù)據(jù)命令后,將其送至外圍設(shè)備,外圍設(shè)備收到命令后響應發(fā)送數(shù)據(jù),即完成一次從PC機到外圍設(shè)備的數(shù)據(jù)通信。其具體實現(xiàn)原理如圖1所示。
2.3紅外編解碼電路
圖2為紅外編解碼電路,主要用到紅外編解碼器HSDL-7001,該器件遵循IrDA1.0通信協(xié)議物理層規(guī)范,接口與SIR收發(fā)器相兼容,可與標準的16550UART連接,具有內(nèi)部或外部2種時鐘模式,工作電壓范圍為2.7~5.5V,可發(fā)送/接收1.63μs或3/16脈沖數(shù)據(jù)形式。其中16XCLK為16倍波特率的時鐘輸入端,只在外部晶振時使用。
OSCOUT、OSCIN為晶振接口,低電平時選擇內(nèi)部時鐘。TXD引腳接收CY7C68013單片機串行端口發(fā)送的數(shù)據(jù),經(jīng)編碼調(diào)制后,以脈沖的方式傳輸?shù)絀R_TXD端口。紅外光脈沖數(shù)據(jù)轉(zhuǎn)變來的電平脈沖信號,經(jīng)IR_RX端口進入HSDL-7001,經(jīng)內(nèi)部解調(diào)后,通過RX引腳將數(shù)據(jù)發(fā)送到CY7C68013單片機的串行端口。引腳A0、A1、A2用于改變HSDL-7001的波特率選擇,以匹配外同設(shè)備與PC機之間數(shù)據(jù)的傳輸。
本系統(tǒng)選用外部晶體振蕩器,選用頻率為1.8432MHz有源晶振,在數(shù)據(jù)編碼過程,HSDL-7001接收TXD傳送的串行數(shù)據(jù),在TXD的每個下降沿開始,IRRXD延遲7CYCLES的時間(16CYCLES為一個晶振周期),然后輸出1個正脈沖,脈寬為3CYCLES,如果TXD0一直為低電平,則每個晶振周期內(nèi),IRRXD都會輸出1個寬度為3CYCLES的正脈沖。如果TXDO為高電平,則IRTXD輸出低電平,如圖3所示。
解碼過程相反,編碼過程看作是把TXD脈沖變窄的過程,而解碼過程則看作是把脈沖拉寬的過程。解碼過程中,當IRRXD傳送1個寬度為3CYCLES的負脈沖,RXD就輸出1個寬度為16CYCLES的負脈沖,如圖4所示。
3系統(tǒng)軟件設(shè)計
系統(tǒng)軟件包括固件程序、USB設(shè)備驅(qū)動程序和應用程序。整個軟件包括系統(tǒng)初始化、采樣控制、數(shù)據(jù)傳輸和波形顯示等部分。USB設(shè)備端固件及外圍電路的底層控制程序主要采用C51編寫,計算機端客戶應用程序采用VisualBasic和VisualC++混合編程。
3.1USB固件設(shè)計
USB數(shù)據(jù)傳輸有4種方式:塊傳輸、中斷傳輸、同步傳輸和控制傳輸。當需要快速精確大批量傳輸數(shù)據(jù)時,一般采用塊傳輸方式。設(shè)計中主要考慮本系統(tǒng)要求高速持續(xù)傳輸大容量的數(shù)據(jù),并且對數(shù)據(jù)的完整性要求較高,故采用塊傳輸方式。
固件程序的編寫采用Keil公司的KeilC51編譯器(V6.10)。它為8051微控制器的軟件開發(fā)提供C語言環(huán)境,同時保留匯編代碼高效、快速的特點,相對于傳統(tǒng)的匯編開發(fā)環(huán)境更加靈活、高效和易于使用。將代碼在KeilC51環(huán)境中進行編譯。編譯通過后,將固件代碼下載到USB單片機中,就可實現(xiàn)與外圍設(shè)備的數(shù)據(jù)傳輸。
在整個固件程序中,EZ-USBFX2設(shè)備上電或復位后,首先初始化所有內(nèi)部狀態(tài)變量,隨后調(diào)用任務初始化函數(shù)TD_Init(),開啟中斷,此時固件程序不斷檢測控制端口0是否收到SETUP包。一旦收到,固件程序就開始調(diào)用用戶函數(shù)TD_Poll(),其中用戶需要完成的功能代碼在TD_Poll()函數(shù)中。調(diào)用完成后,重復檢測端口O是否收到SETUP包,若有,繼續(xù)執(zhí)行設(shè)備請求,調(diào)用TD_Poll()函數(shù);否則檢測USB核是否有USB掛起信號。若有則調(diào)用用戶函數(shù)TD_Suspend(),其返回值為真時,檢測USB核是否有重新開始事件,沒有時,設(shè)備進入掛起狀態(tài),反之,調(diào)用TD_Resume()進行下一次循環(huán);當。TD_Suspend()函數(shù)返回值為假時,直接轉(zhuǎn)入下次循環(huán)。
此外,固件程序框架中還定義許多中斷處理函數(shù),當用到時可在相應的位置加入用戶編寫的代碼,這樣既清晰又便于理解,就可在無需改變整個程序的前提下,僅通過改變相應的模塊,來實現(xiàn)用戶設(shè)置的功能,本系統(tǒng)采用串口中斷處理函數(shù)實現(xiàn)紅外傳輸數(shù)據(jù)的接收。
3.2驅(qū)動程序設(shè)計
USB系統(tǒng)驅(qū)動程序采用分層結(jié)構(gòu)模型(WDM),該模型定義分層的驅(qū)動程序,USB設(shè)備驅(qū)動程序不直接與硬件對話,而是通過USB驅(qū)動程序接口將USB請求快速提交到總線驅(qū)動程序進而完成硬件操作。從系統(tǒng)的角度來說,在USB設(shè)備插入主機后,主機檢測到USB設(shè)備,讀取設(shè)備描述符,然后主機根據(jù)設(shè)備描述符中提供的廠商ID和產(chǎn)品ID等,啟用相應USB設(shè)備驅(qū)動程序,讀取USB設(shè)備中的配置描述符、接口描述符和端點描述符,根據(jù)需要選擇恰當?shù)呐渲?、接口和端點,確定傳輸方式。這一過程完成后,PC機與USB設(shè)備之間就可傳輸數(shù)據(jù)。
3.3應用程序設(shè)計
應用程序是測試系統(tǒng)軟件的核心,其對USB設(shè)備的操作功能為:開啟或關(guān)閉USB設(shè)備,檢測USB設(shè)備,設(shè)置USB數(shù)據(jù)傳輸管道。設(shè)置數(shù)據(jù)端口的初始狀態(tài),通過USB接口回傳數(shù)據(jù)、存儲、顯示并分析數(shù)據(jù)。
4結(jié)論
本文設(shè)計的數(shù)據(jù)傳輸系統(tǒng)具有低功耗、控制簡單、實施方便等特點,系統(tǒng)將USB2.0接口技術(shù)與紅外傳輸技術(shù)結(jié)合,實現(xiàn)了測試儀與PC機之間的無線數(shù)據(jù)傳輸,達到了設(shè)計應用要求。
為了保證傳輸數(shù)據(jù)的正確性,避免其他光波對傳輸數(shù)據(jù)的干擾,系統(tǒng)殼體安裝紅外濾光片:一方面,消除或減少散射輻射或背景輻射的有害影響:另一方面,分出具有特定波長區(qū)的紅外波長。經(jīng)多次試驗證明,該系統(tǒng)能夠可靠穩(wěn)定傳輸數(shù)據(jù),具有很好的實用性。
評論