《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 模擬設(shè)計 > 設(shè)計應(yīng)用 > 基于USB2.0的紅外數(shù)據(jù)傳輸系統(tǒng)的設(shè)計與實(shí)現(xiàn)
基于USB2.0的紅外數(shù)據(jù)傳輸系統(tǒng)的設(shè)計與實(shí)現(xiàn)
摘要: 隨著測試技術(shù)和無線通信技術(shù)的發(fā)展和應(yīng)用,測試儀器向微型化,、低功耗發(fā)展,,紅外數(shù)據(jù)傳輸成本低廉,簡單易用,,在很多小型設(shè)備中得到廣泛應(yīng)用,。為避免接口插拔造成儀器損壞,實(shí)現(xiàn)測試儀器與PC機(jī)間的無線數(shù)據(jù)傳輸,,減少不必要的線纜連接,,這里設(shè)計一種基于USB2.0的紅外數(shù)據(jù)傳輸系統(tǒng),,該系統(tǒng)具有低功耗、控制簡單,、實(shí)施方便,,傳輸可靠性高等特點(diǎn)。
Abstract:
Key words :

  1引言

  隨著測試技術(shù)和無線通信技術(shù)的發(fā)展和應(yīng)用,,測試儀器向微型化,、低功耗發(fā)展,紅外數(shù)據(jù)傳輸成本低廉,,簡單易用,,在很多小型設(shè)備中得到廣泛應(yīng)用。為避免接口插拔造成儀器損壞,,實(shí)現(xiàn)測試儀器與PC機(jī)間的無線數(shù)據(jù)傳輸,,減少不必要的線纜連接,這里設(shè)計一種基于USB2.0的紅外數(shù)據(jù)傳輸系統(tǒng),,該系統(tǒng)具有低功耗,、控制簡單、實(shí)施方便,,傳輸可靠性高等特點(diǎn),。

  2系統(tǒng)硬件設(shè)計

  2.1主要器件選型

  Cypress公司的CY7C68013器件包含USB2.0的集成微控制器。它內(nèi)部集成有1個增強(qiáng)型的8051,、1個智能USB串行接口引擎,、1個USB數(shù)據(jù)收發(fā)器、2個UART,、3個8位I/O口,、16位地址線、8.5KBRAM和4KBFIFO等,。增強(qiáng)型的8051內(nèi)核完全與標(biāo)準(zhǔn)8051兼容,、而性能可達(dá)到標(biāo)準(zhǔn)8051的3倍以上。每條指令占4個時鐘周期,,在48MHz晶振下工作時,,單指令周期為83.3ns,執(zhí)行速度遠(yuǎn)快于標(biāo)準(zhǔn)的8051單片機(jī),。EZ-USBFX2支持3種接口模式,,即GPIF控制器模式、從屬FIFO模式和端口模式,。GPIF控制器模式和從屬FIFO模式與外圍設(shè)備是8位或16位數(shù)據(jù)并行傳輸,,根據(jù)本系統(tǒng)需要,選擇串行通信的端口模式,。
由于USB傳輸?shù)臄?shù)據(jù)是基帶二進(jìn)制信號,,而紅外收發(fā)器傳輸?shù)臄?shù)據(jù)是3/16歸零碼,,因此選用編解碼器HSDL-7001實(shí)現(xiàn)CY7C68013器件與紅外收發(fā)器之間的數(shù)據(jù)轉(zhuǎn)換。為了實(shí)現(xiàn)系統(tǒng)的小體積,,選用TFBS4652型紅外收發(fā)器,,該收發(fā)器是最小的紅外收發(fā)器之一(6.8mmX2.8mmX1.6mm),質(zhì)量僅為0.05g,。最大傳輸速率達(dá)115.2Kbit/s(SIR),,發(fā)光二極管的工作電壓范圍為2.4~3.6V,溫度為-25~85℃,。此外,,該收發(fā)器還具有發(fā)送接收的使能控制端,當(dāng)系統(tǒng)不工作時,,可將此端口置低,,這樣收發(fā)器就處于關(guān)閉狀態(tài),降低系統(tǒng)消耗,。

  2.2系統(tǒng)設(shè)計組成

  本傳輸系統(tǒng)主要由USB2.0接口電路(包括接口器件CY7C68013,、電源轉(zhuǎn)換、串行E2PROM),、紅外編碼解電路和紅外收發(fā)器3部分組成,。當(dāng)需將外圍設(shè)備中存儲的數(shù)據(jù)讀取到PC機(jī)時,PC機(jī)向USB2.0接口器件CY7C68013發(fā)送讀取數(shù)據(jù)的請求命令,,CY7C68013接收到請求命令后,把與外圍設(shè)備通信的校驗(yàn)碼通過串行通信接口發(fā)送至紅外編解碼HSDL-7001,,然后將接口器件發(fā)送出的串行二進(jìn)制數(shù)據(jù)編碼成3/16歸零碼的脈沖,,3/16歸零碼數(shù)據(jù)通過串行數(shù)據(jù)線傳送至紅外收發(fā)器,此時接口器件開啟紅外收發(fā)電器的收發(fā)使能端,,紅外收發(fā)器以紅外光信號的形式發(fā)射3/16歸零碼脈沖數(shù)據(jù),,完成命令的發(fā)送;當(dāng)外圍設(shè)備連接的紅外收發(fā)器接收到發(fā)送的3/16歸零碼數(shù)據(jù)命令后,,將其送至外圍設(shè)備,,外圍設(shè)備收到命令后響應(yīng)發(fā)送數(shù)據(jù),即完成一次從PC機(jī)到外圍設(shè)備的數(shù)據(jù)通信,。其具體實(shí)現(xiàn)原理如圖1所示,。

實(shí)現(xiàn)原理

  2.3紅外編解碼電路

  圖2為紅外編解碼電路,主要用到紅外編解碼器HSDL-7001,,該器件遵循IrDA1.0通信協(xié)議物理層規(guī)范,,接口與SIR收發(fā)器相兼容,可與標(biāo)準(zhǔn)的16550UART連接,,具有內(nèi)部或外部2種時鐘模式,,工作電壓范圍為2.7~5.5V,,可發(fā)送/接收1.63μs或3/16脈沖數(shù)據(jù)形式。其中16XCLK為16倍波特率的時鐘輸入端,,只在外部晶振時使用,。

紅外編解碼電路

  OSCOUT、OSCIN為晶振接口,,低電平時選擇內(nèi)部時鐘,。TXD引腳接收CY7C68013單片機(jī)串行端口發(fā)送的數(shù)據(jù),經(jīng)編碼調(diào)制后,,以脈沖的方式傳輸?shù)絀R_TXD端口,。紅外光脈沖數(shù)據(jù)轉(zhuǎn)變來的電平脈沖信號,經(jīng)IR_RX端口進(jìn)入HSDL-7001,,經(jīng)內(nèi)部解調(diào)后,,通過RX引腳將數(shù)據(jù)發(fā)送到CY7C68013單片機(jī)的串行端口。引腳A0,、A1,、A2用于改變HSDL-7001的波特率選擇,以匹配外同設(shè)備與PC機(jī)之間數(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脈沖變窄的過程,,而解碼過程則看作是把脈沖拉寬的過程。解碼過程中,,當(dāng)IRRXD傳送1個寬度為3CYCLES的負(fù)脈沖,,RXD就輸出1個寬度為16CYCLES的負(fù)脈沖,如圖4所示。

 解碼過程

  3系統(tǒng)軟件設(shè)計

  系統(tǒng)軟件包括固件程序,、USB設(shè)備驅(qū)動程序和應(yīng)用程序,。整個軟件包括系統(tǒng)初始化、采樣控制,、數(shù)據(jù)傳輸和波形顯示等部分,。USB設(shè)備端固件及外圍電路的底層控制程序主要采用C51編寫,計算機(jī)端客戶應(yīng)用程序采用VisualBasic和VisualC++混合編程,。

 

   3.1USB固件設(shè)計

  USB數(shù)據(jù)傳輸有4種方式:塊傳輸,、中斷傳輸、同步傳輸和控制傳輸,。當(dāng)需要快速精確大批量傳輸數(shù)據(jù)時,,一般采用塊傳輸方式。設(shè)計中主要考慮本系統(tǒng)要求高速持續(xù)傳輸大容量的數(shù)據(jù),,并且對數(shù)據(jù)的完整性要求較高,,故采用塊傳輸方式。
固件程序的編寫采用Keil公司的KeilC51編譯器(V6.10),。它為8051微控制器的軟件開發(fā)提供C語言環(huán)境,,同時保留匯編代碼高效、快速的特點(diǎn),,相對于傳統(tǒng)的匯編開發(fā)環(huán)境更加靈活,、高效和易于使用。將代碼在KeilC51環(huán)境中進(jìn)行編譯,。編譯通過后,,將固件代碼下載到USB單片機(jī)中,就可實(shí)現(xiàn)與外圍設(shè)備的數(shù)據(jù)傳輸,。

  在整個固件程序中,,EZ-USBFX2設(shè)備上電或復(fù)位后,首先初始化所有內(nèi)部狀態(tài)變量,,隨后調(diào)用任務(wù)初始化函數(shù)TD_Init(),開啟中斷,,此時固件程序不斷檢測控制端口0是否收到SETUP包,。一旦收到,固件程序就開始調(diào)用用戶函數(shù)TD_Poll(),,其中用戶需要完成的功能代碼在TD_Poll()函數(shù)中,。調(diào)用完成后,重復(fù)檢測端口O是否收到SETUP包,,若有,,繼續(xù)執(zhí)行設(shè)備請求,調(diào)用TD_Poll()函數(shù),;否則檢測USB核是否有USB掛起信號,。若有則調(diào)用用戶函數(shù)TD_Suspend(),,其返回值為真時,檢測USB核是否有重新開始事件,,沒有時,,設(shè)備進(jìn)入掛起狀態(tài),反之,,調(diào)用TD_Resume()進(jìn)行下一次循環(huán),;當(dāng)。TD_Suspend()函數(shù)返回值為假時,,直接轉(zhuǎn)入下次循環(huán),。

  此外,固件程序框架中還定義許多中斷處理函數(shù),,當(dāng)用到時可在相應(yīng)的位置加入用戶編寫的代碼,,這樣既清晰又便于理解,就可在無需改變整個程序的前提下,,僅通過改變相應(yīng)的模塊,,來實(shí)現(xiàn)用戶設(shè)置的功能,本系統(tǒng)采用串口中斷處理函數(shù)實(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ū)動程序進(jìn)而完成硬件操作,。從系統(tǒng)的角度來說,在USB設(shè)備插入主機(jī)后,,主機(jī)檢測到USB設(shè)備,,讀取設(shè)備描述符,然后主機(jī)根據(jù)設(shè)備描述符中提供的廠商ID和產(chǎn)品ID等,,啟用相應(yīng)USB設(shè)備驅(qū)動程序,,讀取USB設(shè)備中的配置描述符、接口描述符和端點(diǎn)描述符,,根據(jù)需要選擇恰當(dāng)?shù)呐渲?、接口和端點(diǎn),確定傳輸方式,。這一過程完成后,,PC機(jī)與USB設(shè)備之間就可傳輸數(shù)據(jù)。

  3.3應(yīng)用程序設(shè)計

  應(yīng)用程序是測試系統(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)具有低功耗,、控制簡單、實(shí)施方便等特點(diǎn),,系統(tǒng)將USB2.O接口技術(shù)與紅外傳輸技術(shù)結(jié)合,,實(shí)現(xiàn)了測試儀與PC機(jī)之間的無線數(shù)據(jù)傳輸,達(dá)到了設(shè)計應(yīng)用要求,。

  為了保證傳輸數(shù)據(jù)的正確性,,避免其他光波對傳輸數(shù)據(jù)的干擾,系統(tǒng)殼體安裝紅外濾光片:一方面,,消除或減少散射輻射或背景輻射的有害影響:另一方面,,分出具有特定波長區(qū)的紅外波長。經(jīng)多次試驗(yàn)證明,,該系統(tǒng)能夠可靠穩(wěn)定傳輸數(shù)據(jù),,具有很好的實(shí)用性。

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