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