我們知道,在紅外通信中(例如電視機、電風扇、DVD等家電的遙控器),其載波頻率通常為38KHz。也有一些系統(tǒng)使用32KHz,36KHz,40KHz,56KHz等載波頻率,但是比較少見。我們可以用T0或T1腳產(chǎn)生38KHz的波特率,然后把串口TXD送出的信號也疊加到上面(調(diào)制),這樣就形成線外信號的載波傳輸,調(diào)制后再通過紅外發(fā)光二極管發(fā)送出去。接收則使用3端紅外接收模塊。紅外接收模塊的載波頻率固定為38KHz,集成了紅外線的接收、放大、解調(diào)等功能,解調(diào)后的數(shù)據(jù)直接輸入UART的RXD引腳。通信的波特率設置為2400bps(38KHz的載波頻率不適于更高的波特率)。
為了避免發(fā)射時造成對本機的干擾,我們采用了半雙工的通信方式。所謂半雙工通信,指的是主機與從機可以進行雙向通信,但是不能同時進行,在同一時間內(nèi),要么是主機發(fā)射,從機接收;要么是從機發(fā)射,主機接收。事實上,一般紅外線接收模塊的接收載波中心頻率雖然是38KHz,但其接收頻率實際上是非常寬的,從30KHz到60KHz它都可以正確接收和解調(diào)。所以主機和從機使用不同的載波頻率以實現(xiàn)全雙工通信也是比較困難的,除非使用選頻特性比較好的紅外線接收電路。在紅外線傳輸過程中采用的是負邏輯,即有紅外線表示邏輯0,無紅外線表示邏輯1。而紅外接收模塊平時為高電平,接收到紅外信號就變?yōu)榈碗娖健?
如何增加傳送距離呢?有兩個方法:其中一個方法是采用高靈敏度的紅外接收電路,但是其成本比較高,且比較容易受到干擾。另一個方法是提高發(fā)射功率(指峰值功率,不一定需要提高平均功率),這可以通過減小連接到發(fā)射器的電阻R來實現(xiàn),通??梢詼p小到10Ω。但是需要注意的是,在這種情況下,為了降低功耗和對其他紅外設備的干擾,紅外線載波的占空比需要降低。一般選擇30%左右的占空比,,也就是DATCLK的高電平時間應為18uS左右,而低電平時間應為8uS左右(38KHz載波頻率)
二. PC紅外接收原理
1. RS232標準簡介
現(xiàn)在的PC中,一般已經(jīng)集成了紅外通信端口,但由于其通信協(xié)議比較復雜,與單片機接口不便。為簡便起見,我們采用在PC的COM口(RS232端口)上擴展一個紅外接收電路來實現(xiàn)。在此,首先對RS232標準作一個簡單介紹。
RS232是EIA(電子工業(yè)聯(lián)合會)制定的一個串行通信推薦標準,用于DTE與DCE的連接(典型的DTE是PC,典型的DCE是調(diào)制解調(diào)器),有效傳輸距離15米,如果采用4~20mA的電流環(huán)則可達到1公里以上的通信距離。RS232中,共規(guī)定了25條信號線(包括數(shù)據(jù)線、控制線、狀態(tài)線等),但是在實際應用中不一定要用到全部的信號線。在早期的PC中,通常配置有一個25針的串行口和一個9針的串行口;而現(xiàn)在生產(chǎn)的PC中,兩個串行口一律采用9針的DB9插座。9針串行口的信號線定義如表1所示:
2. 紅外接收擴展電路
這里我們認為DTE是PC,那么就可以從表1中看到,PC的輸出腳有3個:TXD、DRT和RTS。TXD是串行數(shù)據(jù)發(fā)送端口,波特率從110bps到115200bps(需硬件支持)。DTE用DTR以告訴DCE已經(jīng)準備好接收數(shù)據(jù),并用RTS向DCE請求發(fā)送數(shù)據(jù),這兩個信號主要用于硬件流量控制。在紅外接收擴展電路中,不需要進行流量控制,而是利用DTR和RTS為接收電路提供電源。我們知道,標準的RS232電平是負邏輯:+3V~+15V表示邏輯0;-3V~-15V表示邏輯1。這樣,只要使能DTR和RTS,這兩個引腳就可以輸出+15V左右的電平,從而給紅外接收電路供電。根據(jù)這樣的設計思路,紅外接收擴展電路如圖1:
上圖中,D1、D2和D4起隔離作用,R1主要用來保護PC串口,C1和C2用來濾波,U1是三端穩(wěn)壓器,為紅外接收模塊提供+5V工作電源。U2是三端集成紅外接收模塊,一般接收中心頻率為38KHz,可以完成從紅外接收、濾波到解調(diào)的全部過程。LED作為指示燈,當接收到紅外信號時,LED會閃亮。此電路的關鍵之處在于DTR、RTS和TXD三個引腳的接法:DTR和RTS為電源供應腳,可提供+15V左右的電源,前提是需要在PC監(jiān)控程序中使能。TXD引腳為接收提供負電源。TXD腳是數(shù)據(jù)發(fā)送腳,為什么可以提供負電源呢?這正是本電路的巧妙之所在。我們知道,RS232協(xié)議標準中,當不發(fā)送數(shù)據(jù)時,TXD腳輸出低電平,即-15V左右。在紅外接收擴展電路中,只具有紅外接收功能,而無發(fā)送功能,因此正好可以利用TXD腳為接收提供低電平。當沒有接收到紅外信號時,紅外接收模塊的1腳輸出高電平,三極管Q1截止,TXD通過D4把RXD腳下拉到低電平;而當接收到紅外信號時,紅外接收模塊輸出低電平,三極管Q1導通,這時RXD腳變?yōu)楦唠娖健?