摘 要: 基于紅外光通信的基本原理,設(shè)計了一種利用C8051F120單片機、紅外發(fā)光管和接收管器件的紅外光通信裝置。測試表明,該裝置可以實現(xiàn)定向傳輸語音信號的功能,傳輸距離達2 m,且可利用中繼提升該裝置的傳輸性能。
關(guān)鍵詞: 紅外線通信; 設(shè)計方法; C8051F120單片機; 紅外接收管
中圖分類號: TN974?34 文獻標(biāo)識碼: A 文章編號: 1004?373X(2015)13?0033?03
Abstract: Based on fundamental principle of infrared communication, an infrared communication device was designed, in which C8051F120 microcomputer, infrared luminotron and receiving tube were adopted. Test results show that the device can realize the function of voice signal directional transmission, and transmission distance is 2 m. The transmission performance of the device can be improved by relay device.
Keywords: infrared communication; design method; C8051F120 microcomputer; infrared receiving tube
0 引 言
紅外線通信是利用紅外線來傳輸信號的通信方式,它具有體積小、功耗低、功能強、成本低等特點,在彩電、音響、空調(diào)、玩具及其他小型電器裝置上得到了廣泛的應(yīng)用。在工業(yè)設(shè)備中,采用紅外線通信技術(shù),可在超/特高壓、輻射、有毒氣體、粉塵等惡劣環(huán)境下可靠通信,并能有效地隔離電氣干擾[1]。
本文設(shè)計了一種利用單片機、紅外發(fā)光管和接收管器件實現(xiàn)定向傳輸語音信號功能的新裝置,其傳輸距離為2 m。該裝置還可采用數(shù)字信道進行溫度數(shù)據(jù)的發(fā)送,加上中繼后還可達到使數(shù)據(jù)轉(zhuǎn)90°并增加2 m通信距離的指標(biāo)。
1 系統(tǒng)設(shè)計
本文設(shè)計的通信系統(tǒng)的發(fā)射部分包括紅外發(fā)射電路和單片機;接收部分包括紅外接收管和單片機。
1.1 硬件電路設(shè)計
為方便及靈活起見,本文采用數(shù)字直接收發(fā)設(shè)計方案。發(fā)射端的語音信號經(jīng)過單片機的A/D由模擬信號轉(zhuǎn)換為數(shù)字信號,經(jīng)過紅外發(fā)射管發(fā)送出紅外線信號,這些信號經(jīng)過紅外線管接收,串口通信進入單片機內(nèi)部的D/A進行輸出,顯示在屏幕上,完成傳輸語音信號的功能。
在實際電路設(shè)計中對發(fā)射電路進行了一些改動,電路中的合成調(diào)制部分用兩個與非門74LS00代替了與門74HC08,為加大發(fā)射距離,用兩個三極管組成射隨器代替了原先的一個三極管,并加上凹面鏡及紅外線濾波,增大了發(fā)射距離,如圖1所示。
接收部分采用了丙類功放三級放大,如圖2所示,用LM393比較器對輸入信號進行比較后輸出高低電平,比較的門限通過滑動變阻器進行改變,使波形整形為0 V和5 V的TTL電平,便于單片機接收,提高準(zhǔn)確性。
同時采用74LS123(雙可重觸發(fā)單穩(wěn)態(tài)觸發(fā)器)芯片來實現(xiàn)不能接收信號時的指示。當(dāng)10號引腳接收到一個正脈沖時,在A接地和清零端接高電平給它47 μF的電容和100 kΩ的電阻,使Tw為2 s,當(dāng)10號引腳收到一個向上的脈沖時,Q將保持2.5 s的低電平,之后恢復(fù)高電平。實現(xiàn)功能:接收裝置不能接收到信號時,用一個紅色的LED燈指示,能接收到信號時,LED發(fā)光二極管不發(fā)光。
1.2 系統(tǒng)軟件設(shè)計
核心處理芯片采用C8051F120單片機,是Silicon Lab公司的8051內(nèi)核混合信號微控制器,也是目前最快的8051單片機,能達到100 MIPS,16×16硬件乘法,12位ADC和12位DAC,支持JTAG調(diào)試,且對于串口通信,此單片機除了常用的8位串口外,還具有9位串口傳輸功能,可滿足后續(xù)溫度實時傳輸?shù)臄U展需求。
對語音信號的處理采用C8051F120內(nèi)置的A/D與D/A模塊,該模塊具有12位高速采樣功能,對語音信號的采樣速率達到8 Kb/s,波特率為11 500 b/s。針對實時傳輸語音信號和溫度數(shù)據(jù),在串口的8位中嵌入了1位溫度的數(shù)據(jù),即發(fā)送語音和溫度數(shù)據(jù)在傳輸中相互鑲嵌。用軟件實現(xiàn)了相關(guān)功能。
接收端單片機串口通信輸入UART1,8位數(shù)據(jù)位,無校驗位,波特率為115 200 b/s,采用TFT液晶顯示屏實時顯示。
該裝置啟動后首先進行系統(tǒng)初始化,然后分別檢查定時器2和定時器3的工作狀態(tài),如果沒有溢出,則啟動ADC模塊、溫度傳感器模塊和DAC模塊工作;如果定時器溢出,則重新初始化裝置。接收部分,首先循環(huán)檢查是否接收到溫度標(biāo)志,接收到后進行溫度信息轉(zhuǎn)換并顯示,系統(tǒng)的整體工作流程如圖3所示。
1.3 關(guān)鍵代碼
1.3.1 系統(tǒng)初始化
void SYSCLK_Init ()
{unsigned int i; //delay counter
uchar SFRPAGE_save = SFRPAGE;
//ave the current SFRPAGE
SFRPAGE = CONFIG_PAGE;
//Switch to the necessary SFRPAGE
WDTCN = 0xde;
//Disable watchdog timer
WDTCN = 0xad;
OSCXCN=0x67; //start external oscillator with 22.118 4 MHz crystal
for (i=0; i<3000; i++);
//Wait for osc. to start up
while (!(OSCXCN 0x80));
//Wait for crystal osc. to settle
CLKSEL = 0x01; //切換至外部振蕩器
SFRPAGE=SFRPAGE_save; //Restore the SFRPAGE}
1.3.2 A/D控制
void Timer2_Init()
{uchar SFRPAGE_SAVE=SFRPAGE;
SFRPAGE=TMR2_PAGE;
TMR2CF=0X08; //定時器計時時鐘=sys
RCAP2H=TMR2H=(63324)/256;
RCAP2L=TMR2L=(63324)%256;
TMR2CN=0X04; //定時器允許并運行
ET2=1; //定時器2的使能中斷
SFRPAGE=SFRPAGE_SAVE;}
1.3.3 A/D中斷控制
void ADC0_ISR (void) interrupt 15
{if(AD0INT==1)
{AD0INT = 0; //clear ADC conversion completeindicator
result=ADC0>>4; //read ADC value
SFRPAGE=DAC0_PAGE;
DAC0H=result;
SFRPAGE=ADC0_PAGE;
AD0BUSY=1; //中斷服務(wù)后ADC就關(guān)閉了,再次啟動
ADCflag=1;
}
}
1.3.4 溫度讀取
int ReadTemperature(void)
{ //uchar x,y;
uchar a=0;
uchar b=0;
int t=0;
float tt=0;
Init_DS18B20();
WriteOneChar(0xCC); //跳過讀序號列號的操作
WriteOneChar(0x44); //啟動溫度轉(zhuǎn)換
delay(125);
Init_DS18B20();
WriteOneChar(0xCC); //跳過讀序號列號的操作
WriteOneChar(0xBE);
//讀取溫度寄存器等(共可讀9個寄存器)前兩個就是溫度
a=ReadOneChar(); //低位
b=ReadOneChar(); //高位
t=b;
t<<=8;
t=t|a;
tt=t*0.0625;
t= tt*10+0.5;
delay(200);
return(t);
}
2 系統(tǒng)測試
該裝置設(shè)計完成后,結(jié)合單片機語音發(fā)送過程進行系統(tǒng)新測試,接收端采用串口助手調(diào)試,接上接收端單片機后,觀察顯示屏數(shù)據(jù)并與串口助手?jǐn)?shù)據(jù)進行比較,統(tǒng)計結(jié)果誤差,得到語音信號傳輸失真情況。測試儀器有低頻毫伏表、數(shù)字示波器和數(shù)字萬用表。對上述測試過程重復(fù)測試多次,觀察語音信號傳輸失真數(shù)據(jù)情況和裝置工作的穩(wěn)定性。
2.1 測試內(nèi)容
2.1.1 收發(fā)距離
將發(fā)射接收連接好進行發(fā)射距離的測試,最遠距離可達到2.5 m,同時接收端信號準(zhǔn)確。
裝置啟動時,設(shè)置收發(fā)的準(zhǔn)確距離為1.5 m。
首先,在發(fā)射端進行改進。發(fā)射管前放置一個手電筒內(nèi)部拆下來的凹面鏡,并增加一個紅外發(fā)射管,即用2個紅外管發(fā)射信號,凹面鏡將紅外光會聚后發(fā)送出去,可最大程度地匯聚能量,提高發(fā)射距離。準(zhǔn)確距離為2 m。
其次,在接收端進行改進。在接收端前放置一個紅色的凸透鏡,可濾除部分雜光,凸透鏡起到會聚功能,增大接收信號的幅度,抑制噪聲,其準(zhǔn)確距離為2.4 m。
2.1.2 接收信號
發(fā)射語音時,無明顯失真。當(dāng)發(fā)射的語音信號改為800 Hz,1.5 V的單音信號時,在8 Ω負載上,接收裝置的電壓有效值為3 V,減小發(fā)射端輸入信號為0 V時,用低頻毫伏表測量此時噪聲電壓為20~30 mV。
2.1.3 中繼
中繼接收發(fā)射失真并不嚴(yán)重,降低功耗方面,初次采用運放,中繼轉(zhuǎn)發(fā)電流為90 mA,采用三極管三級放大電路級聯(lián)后,轉(zhuǎn)發(fā)電流為39 mA。
2.1.4 其他功能
不能收到發(fā)射端的信號時,紅色LED會亮,延時2 s。數(shù)字語音信號可同時傳輸,延時3.5 s,溫度誤差小于 2 ℃。
2.2 測試結(jié)果分析
2.2.1 測試結(jié)果
電壓有效值、溫度有效值以及加中繼后接收端電壓的有效值和溫度的有效值見表1~表4。
2.2.2 測試結(jié)論
根據(jù)上述測試數(shù)據(jù),可以得出以下結(jié)論:
(1) 8 Ω負載測量數(shù)據(jù)滿足設(shè)計要求;
(2) 溫度延時設(shè)置為3.5 s,溫度誤差在2 ℃以內(nèi);
(3) 加中繼后8 Ω負載測量數(shù)據(jù)滿足要求,溫度誤差在2 ℃以內(nèi);
綜上所述,本裝置達到了設(shè)計要求。
3 結(jié) 語
本系統(tǒng)可用于不適合工作人員接近的工業(yè)場所的無線數(shù)據(jù)采集。紅外線作為無線傳輸?shù)男诺烙泻芏鄡?yōu)點,其傳輸角度小(30°錐角以內(nèi))、距離短,數(shù)據(jù)直線傳輸、保密性強、傳輸速率較高,最重要的是無需申請頻率使用權(quán),成本低廉,特別適于傳輸大容量的文件和多媒體數(shù)據(jù)[2],可以大大提高管理效率。
參考文獻
[1] 杜留鋒,雷進輝.基于單片機的紅外線數(shù)據(jù)通信系統(tǒng)設(shè)計[J].科技信息,2009(28):116?117.
[2] 王寧,李慧,王二萍,等.基于紅外通信的多路控制系統(tǒng)的簡單設(shè)計[J].現(xiàn)代電子技術(shù),2014,37(5):70?71.
[3] [美]斯托林斯.無線通信與網(wǎng)絡(luò)[M].何軍,譯.北京:清華大學(xué)出版社,2004.
[4] 陳粵初,竇振中,吳悌遠.單片機應(yīng)用系統(tǒng)設(shè)計與實踐[M].北京:北京航空航天大學(xué)出版社,1991.
[5] 付輝,陽璐,尚治國,等.紅外光通信裝置[J].電子世界,2013(18):116?117.
[6] 王憶鋒.2013年的中國紅外技術(shù)(上)[J].紅外技術(shù),2014(1):10?21.