基于USB2.0的紅外數據傳輸系統的設計與實現
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單片機中,就可實現與外圍設備的數據傳輸。
評論