基于USB2.0的紅外數(shù)據(jù)傳輸系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
OSCOUT、OSCIN為晶振接口,低電平時(shí)選擇內(nèi)部時(shí)鐘。TXD引腳接收CY7C68013單片機(jī)串行端口發(fā)送的數(shù)據(jù),經(jīng)編碼調(diào)制后,以脈沖的方式傳輸?shù)絀R_TXD端口。紅外光脈沖數(shù)據(jù)轉(zhuǎn)變來(lái)的電平脈沖信號(hào),經(jīng)IR_RX端口進(jìn)入HSDL-7001,經(jīng)內(nèi)部解調(diào)后,通過(guò)RX引腳將數(shù)據(jù)發(fā)送到CY7C68013單片機(jī)的串行端口。引腳A0、A1、A2用于改變HSDL-7001的波特率選擇,以匹配外同設(shè)備與PC機(jī)之間數(shù)據(jù)的傳輸。
本系統(tǒng)選用外部晶體振蕩器,選用頻率為1.843 2 MHz有源晶振,在數(shù)據(jù)編碼過(guò)程,HSDL-7001接收TXD傳送的串行數(shù)據(jù),在TXD的每個(gè)下降沿開(kāi)始,IRRXD延遲7CYCLES的時(shí)間(16CYCLES為一個(gè)晶振周期),然后輸出1個(gè)正脈沖,脈寬為3CYCLES,如果TXD0一直為低電平,則每個(gè)晶振周期內(nèi),IRRXD都會(huì)輸出1個(gè)寬度為3CYCLES的正脈沖。如果TXDO為高電平,則IRTXD輸出低電平,如圖3所示。
解碼過(guò)程相反,編碼過(guò)程看作是把TXD脈沖變窄的過(guò)程,而解碼過(guò)程則看作是把脈沖拉寬的過(guò)程。解碼過(guò)程中,當(dāng)IRRXD傳送1個(gè)寬度為3CYCLES的負(fù)脈沖,RXD就輸出1個(gè)寬度為16CYCLES的負(fù)脈沖,如圖4所示。
3 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)軟件包括固件程序、USB設(shè)備驅(qū)動(dòng)程序和應(yīng)用程序。整個(gè)軟件包括系統(tǒng)初始化、采樣控制、數(shù)據(jù)傳輸和波形顯示等部分。USB設(shè)備端固件及外圍電路的底層控制程序主要采用C51編寫(xiě),計(jì)算機(jī)端客戶應(yīng)用程序采用Visual Basic和Visual C++混合編程。
3.1 USB固件設(shè)計(jì)
USB數(shù)據(jù)傳輸有4種方式:塊傳輸、中斷傳輸、同步傳輸和控制傳輸。當(dāng)需要快速精確大批量傳輸數(shù)據(jù)時(shí),一般采用塊傳輸方式。設(shè)計(jì)中主要考慮本系統(tǒng)要求高速持續(xù)傳輸大容量的數(shù)據(jù),并且對(duì)數(shù)據(jù)的完整性要求較高,故采用塊傳輸方式。
固件程序的編寫(xiě)采用Keil公司的Keil C51編譯器(V6.10)。它為8051微控制器的軟件開(kāi)發(fā)提供C語(yǔ)言環(huán)境,同時(shí)保留匯編代碼高效、快速的特點(diǎn),相對(duì)于傳統(tǒng)的匯編開(kāi)發(fā)環(huán)境更加靈活、高效和易于使用。將代碼在Keil C51環(huán)境中進(jìn)行編譯。編譯通過(guò)后,將固件代碼下載到USB單片機(jī)中,就可實(shí)現(xiàn)與外圍設(shè)備的數(shù)據(jù)傳輸。
評(píng)論