摘 要: 介绍了一种雷达模拟器的硬件研制方案,该方案以STC的单片机为核心,使用A/D转换采集电位器电压的方式,模拟TUNE、GAIN等旋钮的数值;通过旋转编码器模拟EBL、VRM的数值,利用RS-485总线实现数据的传输,并在PC机显示。该方案的研制对其他模拟器的开发及大型船舶操纵模拟器的研制具有广泛的参考价值。
关键词: 单片机;雷达模拟器;RS-485
随着雷达技术的发展,自动雷达标绘仪ARPA(Automatic Radar Plotting Aid),由于可以直接显示目标船的多方面信息,因而得到了广泛的应用。特别是在航海船员培训中,雷达模拟器发挥了重要的作用,是培训中不可或缺的重要组成部分。雷达模拟器主要是利用计算机仿真技术,模拟在能见度不良的情况下船舶的操纵和避碰,使学员应对复杂海况,做出正确的判断。为此,国际海事组织(IMO)将雷达与ARPA培训作为船舶驾驶员必须参加的强制性专业培训项目。由此可见,雷达模拟器的研究和开发具有重要意义[1]。
本文提出了一种以单片机为核心的雷达模拟器的硬件研制方案。该方案以STC的单片机为核心,使用A/D转换采集电位器电压的方式,模拟TUNE、GAIN等旋钮的数值;通过旋转编码器模拟EBL、VRM的数值,采用适合远距离传输的RS-485通信方式进行数据的传输,并最终在PC机显示出来。本方案对其他模拟器的开发及大型船舶操纵模拟器的研制具有广泛的参考价值。
1 硬件设计[2]
本雷达模拟器硬件总体设计框图如图1所示。
STC12C5A60S2是宏晶科技生产的单时钟/机器周期为1 T、高速、低功耗、超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度比传统8051快8~12倍。STC12C5A60S2内部集成了MAX810专用复位电路、2路PWM、8路高速A/D转换(250 KB/s),是本雷达模拟器的控制核心。
本雷达模拟器使用5个电位器,其中4个电位器分别接到单片机的P1.4~P1.7口,实现雷达模拟器相应功能的调节及控制。1个电位器用来调节整个雷达模拟器控制面板背景灯的亮度。
该雷达模拟器使用2个旋转编码器,其A、B端分别接到单片机的中断口和一个普通I/O口。接C1、C5电容的作用是为了滤波,防止杂波干扰影响编码器的使用。旋转编码器部分的原理图如图2所示。
4×4矩阵键盘的识别是将矩阵键盘的8根线连接到单片机的某一组I/O口上,在本模拟器中选用的是单片机的P0.2口。通过对单片机的控制就可以检测出矩阵键盘的按键情况。矩阵键盘的接线如图3所示。
PC机与单片机之间的通信方式有并行和串行两种。串口通信就是串口按bit发送和接收字节。在串口通信中,RS-232只适合于传输距离不太远的场合。为了解决这个问题,本雷达模拟器采用的是RS-485总线方式通信。RS-485通信可大大提高通信的可靠性和传输距离[3]。
整个雷达模拟器由电源、单片机最小系统、电位器、旋转编码器、矩阵键盘、串口通信等主要部分组成,其原理图如图4所示。本雷达模拟器作为大型船舶操纵模拟器的一个部分。
2 软件设计[4]
STC系列单片机沿用的是51单片机的内核,故其程序可用C语言编写。首先,对单片机的全部参数进行初始化。给P2赋值0xfe,也就是P2.0为低电平,其他为高电平,这时如果P2.4、P2.5、P2.6、P2.7有按键按下时就会出现低电平,从而可判断哪个按键按下;然后分别依次将P2.1、P2.2、P2.3设置为低电平,以相同方法判断是否有按键按下。经过4次检测之后,将键盘的按键情况进行保存。
开始判断电位器1是否有转动,如果没有,直接进入判断电位器2的状态;如果有,则利用该STC单片机P1口自带的A/D转换功能,将电位器1的电压值进行模数转换,再将转换后的数值传送到单片机。为了模拟TUNE、GAIN等旋钮的功能,可将电位器的变化范围分为16个档位。同时为了避免由于电压的不稳定导致档位交界处的频繁变化,需要在档位交界处设置一定的空位。单片机根据转换后的数值判断好电位器的档位以后,再将档位的信息保存到单片机。按照判断电位器1是否有转动的方法依次判断电位器2、3、4的状态,并且将这些信息存入单片机。
旋转编码器有一个中心有轴的光电码盘,其上有环形通、暗的刻线,由光电发射和接收器件读取,获得的4组正弦波信号组合成A、B、C、D信号,每个正弦波相差90°相位差(相对于一个周波为360°),将C、D信号反向,叠加在A、B两相上,可增强稳定信号。每转输出一个Z相脉冲以代表零位参考位。由于A、B两相相差90°,可通过比较A相在前还是B相在前,以判别编码器的正转与反转,通过零位脉冲,可获得编码器的零位参考位。
在整个程序执行过程中,一旦旋转编码器有转动,单片机将会自动进入中断,处理该中断响应。首先判断两个旋转编码器中哪一个发生了旋转,然后再判断这个旋转编码器是正转还是反转,并将结果进行存储。中断响应结束,则退出中断,从原来断点处继续执行剩余的程序。中断服务子程序流程如图5所示。
最后,将程序运行之后的结果以协议规定的相应格式保存好。利用RS-485将保存好的数据传送给上位机,以此循环。其主程序流程如图6所示。
本文介绍的基于RS-485总线的雷达模拟器既可以满足远距离传输的需要,同时又可以实现多路共用,所以既可以单独使用,也可以作为大型船舶操纵模拟器的一个模块使用[5]。该雷达模拟器的硬件研制方案对其他模拟器的开发及大型船舶操纵模拟器的研制具有广泛的参考价值。
参考文献
[1] 靳玉杰.雷达模拟器中的单片机应用[D].武汉:武汉理工大学,2004.
[2] 王逢仅.大型船舶操纵模拟器控制台的结构与设计[D].大连:大连海事大学,2003.
[3] 郑敏杰,杨神化.基于RS-485总线的红外报警器设计[J].信息化纵横,2009(8):27-34.
[4] 张毅刚,彭喜源.MCS-51单片机应用设计[M].哈尔滨:哈尔滨工业大学出版社,2001.
[5] 胡玮,魏伟.RS232与RS485串行接口转换电路及其编程实现[J].实验科学与技术,2010(2):69-71.