基于單片機的主從紅外通信系統設計
接收電路工作原理為:當接收到載波頻率為38KHz的脈沖調制信號時(shí),首先,HS0038B內的紅外敏感元件將脈沖調制紅外光信號轉換成電信號,再由前置放大器和自動(dòng)增益控制電路進(jìn)行放大處理,然后通過(guò)帶通濾波器進(jìn)行濾波,濾波后的信號由解調電路進(jìn)行解調,最后由輸出電路進(jìn)行反向放大并輸出低電平;未接收到載波信號時(shí),電路則輸出高電平。這樣就可以將斷斷續續的紅外光信號解調成一定周期的連續方波信號,并通過(guò)單片機的串口輸入單片機,由單片機處理后便可以恢復出原始數據信號。
主從式紅外通信中主機紅外接收、發(fā)送電路與從機的電路完全相同,紅外線(xiàn)的載波頻率也相同。在紅外通信系統中,若采用不同載波頻率來(lái)區分主機及從機之間的通信可以通過(guò)改善紅外發(fā)射和接收電路的頻率特性,但是這樣會(huì )大大提高硬件成本,本系統通過(guò)配置適當的通信協(xié)議來(lái)降低硬件成本。為了避免發(fā)射時(shí)造成對本機的干擾,系統采用異步半雙工通信模式,在同一時(shí)間內可以是主機發(fā)送,從機接收;也可以是從機發(fā)射,主機接收。主機及從機通信流程如下:
主機通信過(guò)程為:(1) 上電初始化,完成UART的工作模式、波特率的設置(系統波特率為2400bps);CCU模塊PWM工作模式、PWM頻率設定。CCU模塊工作在對稱(chēng)的、非反向的PWM模式,頻率38KHz,占空比50%;(2) 等待數據發(fā)送控制信號到來(lái);(3) 若接收到發(fā)送控制信號,則立即通過(guò)紅外串行發(fā)送16字節數據;(4) 通過(guò)紅外接口接收從機返回的16字節數據;(5) 比較接收到的16字節與發(fā)送到16字節數據,若一致則發(fā)送下一個(gè)數據,否則重發(fā)該數據。
從機通信過(guò)程為:(1) 上電初始化,完成UART的工作模式、波特率設置;CCU模塊PWM工作模式、PWM頻率設定;(2) 通過(guò)紅外接口從主機接收16字節數據;(3) 判斷是否為重發(fā)數據,若是則覆蓋前次接收到的數據。
主機和從機通信過(guò)程包括的函數主要有系統初始化函數UART_Init(),向串口發(fā)送數據函數UART_SendByte()、 串口接收紅外信號數據 UART_RcvByte( )等。部分函數程序代碼如下:
UART_SendByte(unit8 dat) //向串口發(fā)送數據
{ SBUF = dat; //發(fā)送數據
while(TI = =0; // 等待發(fā)送完畢
TI = 0;
}
unit8 UART_RcvByte() //接收串口數據
{if(RI = =0) return(0); //若沒(méi)有接收到數據,則返回0
*dat = SBUF;
RI = 0;
return(1);
}
4、結束語(yǔ)
紅外通信可用于許多需短距離及非接觸式傳輸數據的場(chǎng)合。本文設計的主從式紅外通信接口具有硬件電路簡(jiǎn)單、成本低、通信可靠等特點(diǎn),實(shí)現了主機及從機雙方非接觸式的數據傳輸。適當修改通信軟件就可以讓系統用于紅外抄表、遙控、遙測等許多場(chǎng)合。
評論