单片机以其高可靠性、高性能价格比而广泛应用于各个领域。很多读者朋友也从单机应用逐渐转向多机或联网。多机间通信一般采用有线或无线技术。本文介绍的是作者设计制作的一套数字式多通道遥控系统,可模拟海上防卫作战炮兵打靶训练,生动有趣,适于业余制作及多种应用。
本系统可以对四艘舰艇模型中的任一艘的航速。航向进行遥控及对四艘舰模的编队进行统一控制。遥控系统采用键控调频通信,在单舰和多舰编队控制上采用码分多址方式实现了一点对多点遥控。电路设计以8031单片机为核心,应用其串行口构成集散式通信系统,利用串行口的输出信号进行键控调频,发送控制命令或数据,控制过程通过管理遥控台面板上的角度旋转及各种控制开关实现,各艘舰模的工作情况可在显示器上显示出来。
一、多机通信原理
系统采用一台主机(发射机)和四台从机(接收机)构成,主机和从机均采用8031单片机,信息传送是单工的,即主机发送的信息只可被从机接收。多机通信中,要保证主机与从机间可靠通信,必须保证通信接口具有识别功能,而MCS-51单片机串行口特殊功能寄存器SCON中的SM2就是为满足这一要求而设计的多机通信控制位。其多机通信控制原理如下:当主、从机的串行口均以方式2或方式3工作时,发送和接收数据都是11位组成一帧数据,其中第9位为可编程控制位。发送时,数据由主机的TXD输出,附加的第9位数据为SCON中的TB8,TB8可由软件置为“0”或“1”以区别发送的是数据还是地址,为“0”时是数据帧,为“1”时是地址帧。接收时,数据由从机的RXD输入,若此时SM2=1表示置多机通信功能位,此时仅当从机接收到的第9位数据为“1”时,数据才装入SBUF,并置RI=1,向CPU发出中断请求;若接收到的第9位数据为0,则不产生中断标志,信息被抛弃。若SM2=0,则无论是接收到地址帧还是数据帧都产生RI=1的中断标志,接收的数据装入SBUF中。应用这一特点,即可方便地实现多个MCS-51单片机应用系统的串行通信。
二、硬件系统
主机即发射机部分以8031单片机为核心器件外挂32K×8位EPROM(27C256),以键盘/显示接口芯片8279为核心器件构成航速控制单元电路,完成单舰或编队时的航速设置。以ADC0808为核心器件,构成航向控制单元电路,通过改变角度传感器中的滑动变阻器得到连续变化的电压经A/D转换后结果被CPU读入以完成航向的设置,对应的角度值可在刻度上表示出来。遥控发射系统同时配有一把锁,完成单舰或编队操作设置。被控对象“暂停”由暂停键来控制。显示单元由5个双LED和5个发光二极管LD组成,用于指示当前被操作的舰模及其航速。调频发射机采用调频发射模块来完成键控调频。发射机整机框图见图1。

从机即接收机分别安装在四台靶机上,根据主机(发射机)发来的控制信息对相应的推进电机转速和航机角度进行调整。推进电机带动靶机螺旋桨转动,舵机带动舵面偏转,从而调整靶机前进的方向和速度,系统由电池供电,推进电机和舵机均采用直流电机,因而不能直接利用数字信号进行控制。传统方法是将数字信号经D/A转换获得模拟电压,通过线性放大器驱动直流电机。要实现对一艘舰模上的2台电机的实时控制,必须通过两路D/A转换,功耗大,电路复杂。
本电路利用单片机控制系统产生两路PWM信号,分别控制开关放大器和脉宽比较器,实现对推进电机转速和舵机角度的调整,电路简单、功耗大大降低。接收机系统框图见图2。其中接收模块完成信号的解调、整形,得到电路能够识别的“0”、“1”信息,该信号由单片机串行口输入。单片机控制系统完成指令信息的判别和处理,并产生两路PWM信号,分别控制推进电机和舵机的驱动电路,实现对转速和角度的调整。

针对本系统的具体情况,PWM信号是利用单片机扩展8253可编程计数器产生的,8253具有3个完全独立的16位减法计数器,根据8253工作方式的特点,设定计数器0作于方式2(频率发生器方式),其输出作为计数器1、2的门控信号,计数器1、2均工作于方式1(单脉冲发生器方式),分别产生PWM信号(信号周期由计数器0决定)。
本遥控系统经实际使用证明,具有抗干扰性强、控制可靠、操作灵活等特点,可根据实际情况应用到其它需要多通道遥控的场合。 (曾雪梅 刘公望)