基于USB2.0的紅外數(shù)據(jù)傳輸系統(tǒng)的設(shè)計與實現(xiàn)
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.843 2 MHz有源晶振,在數(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的負脈沖,RXD就輸出1個寬度為16CYCLES的負脈沖,如圖4所示。
3 系統(tǒng)軟件設(shè)計
系統(tǒng)軟件包括固件程序、USB設(shè)備驅(qū)動程序和應(yīng)用程序。整個軟件包括系統(tǒng)初始化、采樣控制、數(shù)據(jù)傳輸和波形顯示等部分。USB設(shè)備端固件及外圍電路的底層控制程序主要采用C51編寫,計算機端客戶應(yīng)用程序采用Visual Basic和Visual C++混合編程。
3.1 USB固件設(shè)計
USB數(shù)據(jù)傳輸有4種方式:塊傳輸、中斷傳輸、同步傳輸和控制傳輸。當(dāng)需要快速精確大批量傳輸數(shù)據(jù)時,一般采用塊傳輸方式。設(shè)計中主要考慮本系統(tǒng)要求高速持續(xù)傳輸大容量的數(shù)據(jù),并且對數(shù)據(jù)的完整性要求較高,故采用塊傳輸方式。
固件程序的編寫采用Keil公司的Keil C51編譯器(V6.10)。它為8051微控制器的軟件開發(fā)提供C語言環(huán)境,同時保留匯編代碼高效、快速的特點,相對于傳統(tǒng)的匯編開發(fā)環(huán)境更加靈活、高效和易于使用。將代碼在Keil C51環(huán)境中進行編譯。編譯通過后,將固件代碼下載到USB單片機中,就可實現(xiàn)與外圍設(shè)備的數(shù)據(jù)傳輸。
評論