a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

新聞中心

EEPW首頁 > 測試測量 > 設計應用 > 基于USB2.0的紅外數據傳輸系統的設計與實現

基于USB2.0的紅外數據傳輸系統的設計與實現

作者: 時間:2012-02-29 來源:網絡 收藏

關鍵字: 數據傳輸

本文引用地址:http://www.j9360.com/article/194429.htm

1引言

隨著測試技術和無線通信技術的發展和應用,測試儀器向微型化、低功耗發展,數據傳輸成本低廉,簡單易用,在很多小型設備中得到廣泛應用。為避免接口插拔造成儀器損壞,實現測試儀器與PC機間的無線數據傳輸,減少不必要的線纜連接,這里設計一種基于2.0的,該系統具有低功耗、控制簡單、實施方便,傳輸可靠性高等特點。

2系統硬件設計

2.1主要器件選型

Cypress公司的CY7C68013器件包含2.0的集成微控制器。它內部集成有1個增強型的8051、1個智能USB串行接口引擎、1個USB數據收發器、2個UART、3個8位I/O口、16位地址線、8.5KBRAM和4KBFIFO等。增強型的8051內核完全與標準8051兼容、而性能可達到標準8051的3倍以上。每條指令占4個時鐘周期,在48MHz晶振下工作時,單指令周期為83.3ns,執行速度遠快于標準的8051單片機。EZ-USBFX2支持3種接口模式,即GPIF控制器模式、從屬FIFO模式和端口模式。GPIF控制器模式和從屬FIFO模式與外圍設備是8位或16位數據并行傳輸,根據本系統需要,選擇串行通信的端口模式。

由于USB傳輸的數據是基帶二進制信號,而紅外收發器傳輸的數據是3/16歸零碼,因此選用編解碼器HSDL-7001實現CY7C68013器件與紅外收發器之間的數據轉換。為了實現系統的小體積,選用TFBS4652型紅外收發器,該收發器是最小的紅外收發器之一(6.8mmX2.8mmX1.6mm),質量僅為0.05g。最大傳輸速率達115.2Kbit/s(SIR),發光二極管的工作電壓范圍為2.4~3.6V,溫度為-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所示。

1.jpg

2.3紅外編解碼電路

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

2.jpg

OSCOUT、OSCIN為晶振接口,低電平時選擇內部時鐘。TXD引腳接收CY7C68013單片機串行端口發送的數據,經編碼調制后,以脈沖的方式傳輸到IR_TXD端口。紅外光脈沖數據轉變來的電平脈沖信號,經IR_RX端口進入HSDL-7001,經內部解調后,通過RX引腳將數據發送到CY7C68013單片機的串行端口。引腳A0、A1、A2用于改變HSDL-7001的波特率選擇,以匹配外同設備與PC機之間數據的傳輸。

本系統選用外部晶體振蕩器,選用頻率為1.8432MHz有源晶振,在數據編碼過程,HSDL-7001接收TXD傳送的串行數據,在TXD的每個下降沿開始,IRRXD延遲7CYCLES的時間(16CYCLES為一個晶振周期),然后輸出1個正脈沖,脈寬為3CYCLES,如果TXD0一直為低電平,則每個晶振周期內,IRRXD都會輸出1個寬度為3CYCLES的正脈沖。如果TXDO為高電平,則IRTXD輸出低電平,如圖3所示。

3.jpg

解碼過程相反,編碼過程看作是把TXD脈沖變窄的過程,而解碼過程則看作是把脈沖拉寬的過程。解碼過程中,當IRRXD傳送1個寬度為3CYCLES的負脈沖,RXD就輸出1個寬度為16CYCLES的負脈沖,如圖4所示。

4.jpg

3系統軟件設計

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

3.1USB固件設計

USB數據傳輸有4種方式:塊傳輸、中斷傳輸、同步傳輸和控制傳輸。當需要快速精確大批量傳輸數據時,一般采用塊傳輸方式。設計中主要考慮本系統要求高速持續傳輸大容量的數據,并且對數據的完整性要求較高,故采用塊傳輸方式。

固件程序的編寫采用Keil公司的KeilC51編譯器(V6.10)。它為8051微控制器的軟件開發提供C語言環境,同時保留匯編代碼高效、快速的特點,相對于傳統的匯編開發環境更加靈活、高效和易于使用。將代碼在KeilC51環境中進行編譯。編譯通過后,將固件代碼下載到USB單片機中,就可實現與外圍設備的數據傳輸。

在整個固件程序中,EZ-USBFX2設備上電或復位后,首先初始化所有內部狀態變量,隨后調用任務初始化函數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.0接口技術與紅外傳輸技術結合,實現了測試儀與PC機之間的無線數據傳輸,達到了設計應用要求。

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



評論


相關推薦

技術專區

關閉