龔國(guó)友
(成都電子機(jī)械高等專科學(xué)校 通信工程系,成都 610071)
在現(xiàn)代教學(xué)工作和演講中,教室和演講廳基本都采用PPT等多媒體方式進(jìn)行講解與演示,使課程或演講內(nèi)容豐富、講解生動(dòng)。但是在演講過程中因?yàn)槭褂糜?jì)算機(jī)鼠標(biāo),使得演講人操作不便,影響效果。計(jì)算機(jī)遙控鼠標(biāo)或無線電子教鞭油然而生,本設(shè)計(jì)是基于單片機(jī)技術(shù)的紅外線PC遙控器,即利用單片機(jī)設(shè)計(jì)一個(gè)功能簡(jiǎn)單的嵌入式USB外設(shè)[1],將其與PC機(jī)連接,通過USB接口實(shí)現(xiàn)PC機(jī)與外設(shè)之間的相互通信。
在紅外無線電子教鞭和遙控鼠標(biāo)技術(shù)方面,國(guó)內(nèi)外已經(jīng)有各種較成熟的技術(shù),包括2.4 GHz無線電、27 MHz無線電、藍(lán)牙無線等各種無線鼠標(biāo)。但紅外線無線遙控鼠標(biāo)還是比較少,筆者所研制的紅外線無線遙控器就是基于紅外的數(shù)據(jù)傳送與單片機(jī)相結(jié)合的產(chǎn)物。
實(shí)現(xiàn)計(jì)算機(jī)鼠標(biāo)的所有功能:1)遙控器控鍵為:左鍵、右鍵、上下左右移動(dòng)鍵、前后翻頁等功能鍵;2)遙控距離大于15 m,方向360°。
設(shè)計(jì)方案由發(fā)射電路和接收電路2部分組成,發(fā)射電路部分用紅外發(fā)射芯片編碼,接收部分用單片機(jī)解碼(見圖1),并用 PDIUSBD12芯片[2]功能實(shí)現(xiàn)USB接口與PC的通信。
接收電路選取STC89C52,它有64 kB的存儲(chǔ)容量,對(duì)于固件程序已經(jīng)足夠使用了,而且這款單片機(jī)支持在線編程,這給程序的下載和使用帶來方便,程序設(shè)計(jì)采用C語言進(jìn)行編程,軟件仿真平臺(tái)采用Keil C51。
為降低系統(tǒng)的成本,選用USB接口芯片PDIUSBD12,PHILIPS公司推出的PDIUSBD12是一款性價(jià)比很高的USB器件,它通常用作微控制器系統(tǒng)中實(shí)現(xiàn)與微控制器進(jìn)行通信的高速通用并行接口,而且還支持本地的DMA傳輸(Direct Memory Access,直接存儲(chǔ)器存取,是一種快速傳送數(shù)據(jù)的機(jī)制)。

圖1 原理方框圖
紅外線的光譜位于紅色光之外,波長(zhǎng)是0.76~1.5 μm,比紅光的波長(zhǎng)還長(zhǎng)。紅外遙控是利用紅外線進(jìn)行傳遞信息的一種控制方式,紅外遙控具有抗干擾、電路簡(jiǎn)單、容易編碼和解碼、功耗小、成本低的優(yōu)點(diǎn)。紅外遙控系統(tǒng)的主要部分為調(diào)制、發(fā)射和接收。
紅外遙控以調(diào)制的方式發(fā)射數(shù)據(jù),即把數(shù)據(jù)和一定頻率的載波進(jìn)行“與”操作,這樣既可以提高發(fā)射效率又可以降低電源功耗。調(diào)制載波頻率一般在30~60 kHz之間,大多數(shù)使用的是38 kHz、占空比1/3的方波,由發(fā)射端所使用的455 kHz晶振決定。在發(fā)射端要對(duì)晶振進(jìn)行整數(shù)分頻,分頻系數(shù)一般取12,所以455 kHz÷12≈37.9 kHz≈38 kHz。
一幀完整的發(fā)射碼有引導(dǎo)碼、用戶編碼和鍵數(shù)據(jù)碼3部分組成。引導(dǎo)碼由一個(gè)4.5 ms高電平脈沖及4.5 ms的低電平脈沖組成;8位用戶編碼,被連續(xù)發(fā)送2次;8位的鍵數(shù)據(jù)碼也被連續(xù)發(fā)送2次,第1次發(fā)送的是鍵數(shù)據(jù)碼的原碼,第2次發(fā)送的是鍵數(shù)據(jù)碼的反碼。
“1”和“0”的區(qū)分取決于脈沖之間的時(shí)間,稱之為脈沖位置調(diào)制方式(PPM)。引導(dǎo)碼及位“0”和位“1”的波形見圖2。

圖2 紅外線編解碼方式
紅外接收電路通常被廠家集成在一個(gè)元件中,成為一體化紅外接收頭。內(nèi)部電路包括紅外監(jiān)測(cè)二極管、放大器、限副器、帶通濾波器、積分電路、比較器等。紅外監(jiān)測(cè)二極管監(jiān)測(cè)到紅外信號(hào),然后把信號(hào)送到放大器和限幅器,限幅器把脈沖幅度控制在一定的水平,而不論紅外發(fā)射器和接收器的距離遠(yuǎn)近。交流信號(hào)進(jìn)入帶通濾波器,帶通濾波器可以通過30~60 kHz的載波頻率,通過解調(diào)電路和積分電路進(jìn)入比較器,比較器輸出高低電平,還原出發(fā)射端的信號(hào)波形。注意輸出的高低電平和發(fā)射端是反相的,以提高接收的靈敏度。
電路原理圖見圖3。

圖3 電路原理圖
1)串行接口引擎
PSIE實(shí)現(xiàn)了全部的USB協(xié)議層,且完全由硬件實(shí)現(xiàn)而不需要固件的參與。該模塊的功能包括:同步模式的識(shí)別,并行/串行的轉(zhuǎn)換,位填充/解除填充,CRC校驗(yàn)/產(chǎn)生,PID校驗(yàn)/產(chǎn)生,地址識(shí)別和握手評(píng)估/產(chǎn)生。
2)SoftConnect技術(shù)
SoftConnect與USB的連接是通過1.5 kΩ上拉電阻將D+設(shè)置為高電平實(shí)現(xiàn)的。1.5 kΩ上拉電阻集成在PDIUSBD12片內(nèi),默認(rèn)狀態(tài)下不與電源相連,其連接的建立是通過外部/系統(tǒng)微控制器發(fā)送命令實(shí)現(xiàn)的。
3)GoodLink技術(shù)
GoodLink技術(shù)可以提供良好的USB連接指示。在枚舉過程中,LED指示燈根據(jù)通信狀況間歇閃爍。配置完成并裝安驅(qū)動(dòng)程序后指示燈將一直亮[3]。
單片機(jī)最小系統(tǒng)主要包括其供電系統(tǒng)、時(shí)鐘電路和復(fù)位電路。將PDIUSBD12的8根DATA引腳和單片機(jī)的P0口相連。由于單片機(jī)的P0口在作為普通I/O口使用時(shí)不能輸出高電平,需要接上拉電阻。從PDIUSBD12芯片資料可以看出,DATA的驅(qū)動(dòng)能力為2 mA,所以接了上拉電阻后,DATA口為0時(shí)電流不能超過2 mA。這里用的是5 V的電源,當(dāng)電流為2 mA時(shí),電阻為2.5 kΩ。因此選擇上拉電阻大于2.5 kΩ就可以了。因?yàn)閿?shù)據(jù)總線上只有PDIUSBD12這個(gè)器件,所以片選信號(hào)CS_N直接接地,該芯片一直處于選中狀態(tài)。SUSPEND引腳是雙向的,當(dāng)芯片處于掛起狀態(tài)時(shí),其輸出為高,當(dāng)發(fā)送遠(yuǎn)程喚醒命令時(shí),需要通過外部電路將其電位拉低。由于可以通過程序來檢查芯片是否掛起,所以在硬件連接上不需要用到這個(gè)引腳,直接接地即可。DMA中斷請(qǐng)求信號(hào),這里沒有用到DMA功能,所以該引腳懸空即可。DMACK_N和EOT_N分別是DMA應(yīng)答和DMA傳輸完成,這里沒有使用DMA功能,直接用1 kΩ的上拉電阻將其置為高電平。EOT_N還兼做Vbus檢查用,必須要接高電平,芯片才會(huì)進(jìn)入正常的工作狀態(tài)。RESET_N是復(fù)位引腳,由于芯片內(nèi)部已經(jīng)有內(nèi)置的上電復(fù)位電路,所以不需要連接額外的上電復(fù)位電路,直接將該引腳通過1 kΩ的電路上拉到高電平。
由計(jì)算機(jī)輔助軟件Protel 99生成的PCB文件并加工成PCB板,焊接上元件調(diào)試檢查無誤后的最終電路板如圖4所示。
用一條USB連接線把接收模塊和電腦連接起來,電腦自動(dòng)檢測(cè)到接收模塊并自動(dòng)加載驅(qū)動(dòng)程序。使用遙控器按著翻頁鍵就可以實(shí)現(xiàn)PPT、Word、PDF等文件的翻頁功能,按向下鍵就可以控制鼠標(biāo)向下移動(dòng),實(shí)現(xiàn)了設(shè)計(jì)的所有要求,演講者可以將該遙控器當(dāng)電子教鞭使用,不必一直站在電腦面前按鼠標(biāo)了。

圖4 電路板照片
單片機(jī)和PHILIPS公司的PDIUSBD12芯片為外設(shè)的核心,基于USB規(guī)范開發(fā)和紅外編碼解碼,設(shè)計(jì)了USB接口的紅外無線遙控鼠標(biāo)(或稱電子教鞭),樣品經(jīng)過教師在實(shí)際教學(xué)中試用,完全達(dá)到了設(shè)計(jì)要求,成功地實(shí)現(xiàn)了紅外無線控制單片機(jī)實(shí)現(xiàn)紅外無線遙控器的功能。
[1]陳逸.USB大全[M].北京:中國(guó)電力出版社,2001.
[2]馬春雷,申宇皓,劉于端.基于PDIUSBD12芯片的USB接口的研究與開發(fā)[J].微計(jì)算機(jī)信息,2005(13):140-142.
[3]任衛(wèi)華,葉明.基于PDIUSBD12芯片的USB接口實(shí)現(xiàn)方案[J].國(guó)外電子元器件,2005(6):25-27.
[4]徐愛鈞,彭秀華.Keil Cx51 V7.0單片機(jī)高級(jí)語言編程與Vision2應(yīng)用實(shí)踐[M].北京:電子工業(yè)出版社,2004.
[5]周立功.PDIUSBD12USB固件編程與驅(qū)動(dòng)開發(fā)[M].北京:北京航空航天大學(xué)出版社,2003.
[6]馬軍,李玉林.基于PDIUSBD12芯片的USB接口設(shè)計(jì)[J].微計(jì)算機(jī)信息,2006(2):285-287,181.
[7]黃煌,姜義成,林力.基于PDIUSBD 12的USB接口設(shè)計(jì)及應(yīng)用[J].微計(jì)算機(jī)信息,2007(11):292-293,183.
[8]王立錦,于富強(qiáng).單片機(jī)控制系統(tǒng)的紅外線遙控器接口[J].電子技術(shù),1998(10):36-38.