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