王一帆
【摘 要】隨著現(xiàn)代工業(yè)的迅猛發(fā)展,很多設備已經(jīng)不能單單依靠就地操作的方式進行操作了,而紅外遙控技術雖然廣泛應用于日常生活,但在工業(yè)設備中使用的情況卻比較少見??紤]到工業(yè)環(huán)境的多方面使用需求,本設計使用了以MSP430單片機為核心的控制系統(tǒng),基于NEC通訊協(xié)議和PWM波的調制完成了紅外遙控裝置的設計,并使用Protues進行仿真實驗驗證了方案的可行性。
設計方案成本較低且具備優(yōu)良的低功耗特性和信息傳遞準確性,可以廣泛適用于多種工業(yè)環(huán)境,也可以完成對多個設備進行遙控的要求,增加了工業(yè)環(huán)境控制手段的多樣性,同時遠距離的控制方式也在一定程度上保證了工業(yè)現(xiàn)場操作人員的安全性。
【關鍵詞】紅外遙控;MSP430;PWM
一、引言
紅外遙控裝置由于其結構簡單、成本低廉、制作方便、抗干擾能力強等一系列優(yōu)點,成為目前使用最廣泛的一種通信和遙控手段。[i]在日常生活中,紅外遙控的技術已經(jīng)相當成熟,包括電視遙控器、空調遙控器等的使用。但由于工業(yè)環(huán)境復雜,對工業(yè)用紅外遙控裝置就有了比日常生活中所使用的遙控器高得多的要求。
二、紅外遙控裝置設計
本設計在硬件的設計上采用了MSP430f2111單片機作為自制紅外遙控裝置的信號發(fā)生裝置,采用HS0038一體化紅外接收頭作為紅外信號接收裝置。MSP430系列單片機擁有卓越的低功耗性能,而MSP430f2111單片機和HS0038一體化紅外接收頭的成本也很低廉,本設計采用了上述硬件進行硬件設計并在Protues中搭建硬件仿真電路用來進行仿真實驗。
Proteus是基于SPICE3F5仿真引擎的混合電路仿真軟件,不僅能夠仿真模擬、數(shù)字電路以及模數(shù)混合電路,更具特色的是它能夠仿真基于單片機的電子系統(tǒng)。[ii]通過Protues搭建自制紅外遙控裝置的硬件電路,然后將程序錄入相應單片機進行仿真實驗。
由于硬件設計中采用的HS0038一體化紅外接收頭可以接收的紅外信號頻率為38KHz,因此在發(fā)送端必須發(fā)送38KHz的紅外信號。
發(fā)送紅外信號的第一步是先確認按鍵信息與紅外信息的轉換協(xié)議,這樣才可以保證信息傳遞的準確性。本設計采用了目前廣泛使用的NEC通訊協(xié)議。單片機將按鍵信息轉換為引導碼、地址碼和數(shù)據(jù)碼,其中引導碼是為了確認接收到的信息為紅外信息,地址碼也可以叫做用戶碼,是為了實現(xiàn)紅外信號的加密,數(shù)據(jù)碼則代表具體的按鍵信息。為了進一步的確保信息傳遞的準確性,將地址碼和數(shù)據(jù)碼取反,分別加在地址碼和數(shù)據(jù)碼的后面,一般情況下,并不對這兩個反碼進行處理,而在本設計中,為了進一步確保工業(yè)環(huán)境下信息傳遞的準確性,會增加反碼的解碼并與原碼進行對比,如果不同則認為該信息無效。
如下為按照NEC協(xié)議將按鍵信息轉換為編碼信息的程序(部分):
void Red_data(uchar c) //發(fā)送地址、數(shù)據(jù)碼子程序
{
uchar i;
for (i=0;i<8;i++)
{ RED_H; //置高
delay_us(560); //置高0.56ms
RED_L; //置低
if(c&0x01) //判斷數(shù)據(jù)碼第一位的高低
{delay_us(1685); } //若為1,置低1.685ms
Else //若為0,置低0.565ms
{delay_us(565); }
c >>= 1; //數(shù)據(jù)碼右移1位
}
}
按照協(xié)議將按鍵信息轉換成編碼信息之后,然后就需要通過單片機完成38KHzPWM波的調制。選取1MHz作為系統(tǒng)時鐘源,通過計算:1MHz/38kHz≈26,38KHz的一個周期約為26個系統(tǒng)的時鐘周期。當增計數(shù)模式下采用輸出模式7,計數(shù)器增加到TACCR1時復位,增加到TACCR0時置位。通過上述原理使用單片機發(fā)生占空比為1/3的PWM波,通過計算26/3≈9,設置計數(shù)器加到9復位,再增加到26時置位,
如下為PWM波生成的程序(部分):
void PWM_open() //打開PWM波P1.2端口輸出子程序
{
P1SEL |= BIT2; //P1.2功能選擇為外圍模塊功能
P1DIR |= BIT2; //P1.2端口為輸出端口
P1OUT &= ~BIT2; //P1.2端口置0
TACTL |= TASSEL_2+ID_3+MC_1 ; //SMCLK做時鐘源,8分頻,增加計數(shù)模式
TACCR0 = 26; //CCR0為計數(shù)器,當計數(shù)到26時
TACCTL1 = OUTMOD_7; //復位/置位
TACCR1 = 9; //CCR1,設置占空比
}
三、Protues仿真
完成PWM的發(fā)生之后,就可以對程序進行整合,系統(tǒng)開啟自動進入低功耗模式,當有按鍵按下時,打開PWM波的發(fā)送,再根據(jù)按鍵發(fā)送對應的編碼信息,發(fā)送完后關閉PWM波的發(fā)送,最后將按鍵中斷標志位清0,系統(tǒng)又進入低功耗模式。在完成軟件編程之后將軟件帶入Protues中進行仿真,仿真結果如圖1所示:
圖1所傳輸?shù)男畔⒅械?6位為數(shù)據(jù)位和數(shù)據(jù)位的反碼,所以傳送的數(shù)據(jù)為00011000。用戶可以根據(jù)需求自己定義按鍵的編碼,只需在接收端識別相應的編碼即可得到具體的按鍵信息,不同的設備設置相同的用戶碼即可以實現(xiàn)一對多的控制要求。Protues的仿真實驗成功驗證了自制工業(yè)遙控裝置的可行性。
注釋:
[i]任晉婷.基于單片機的紅外遙控系統(tǒng)設計[J].電子世界,2013(24):36-37.
[ii]董普松.Protues在單片機系統(tǒng)設計中的應用[J].現(xiàn)代電子技術,2008(14):153-154.