基于MSP430f2111的工业红外遥控装置设计

2019-07-24 10:33王一帆
智富时代 2019年6期

王一帆

【摘 要】随着现代工业的迅猛发展,很多设备已经不能单单依靠就地操作的方式进行操作了,而红外遥控技术虽然广泛应用于日常生活,但在工业设备中使用的情况却比较少见。考虑到工业环境的多方面使用需求,本设计使用了以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.