测定方向基准的仪器。船舶用罗经以确定航向和观测物标方位。罗经分为磁罗经和陀螺罗经两种。航海船舶通常都装有两种罗经。磁罗经是利用磁针指北的特性而制成。指南针即是原始型式的磁罗经,是中国古代四大发明之一。用于航海的指南针又称罗盘。中国明代水罗盘用八干、十二支、四维卦位名称标出24个方位。铁船出现后,磁经产生了自差。19世纪以后,先后提出消除自差的方法,至20世纪初,性能稳定、轴针摩擦更小的液体罗经制成,已用于大部分船舶。罗经差还有磁差,是由于地磁极与地极不一致而存在于磁北和真北之间的夹角,即磁偏角。海图上的罗经花均标注有本地磁差和年变化率,使用磁罗经时可据以修正读数。航行船舶上的陀螺罗经会因船舶运动而产生很多误差,如速度差、冲击误差、摇摆误差、纬度误差等;由于安装原因又有基线误差等。因此,均需采用相应措施加以消除或校正。本文研制了用于电罗经数字化的转换器。
1 电罗经转换器的技术要求和总体设计
转换器(convertor)是指将一种信号转换成另一种信号的装置。信号是信息存在的形式或载体。在自动化仪表设备和自动控制系统中,常将一种信号转换成另一种与标准量或参考量比较后的信号,以便将两类仪表联接起来,因此,转换器常常是两个仪表(或装置)间的中间环节。各种类型的转换器的出现,大大扩大了各类仪表(装置)的使用范围,使自动控制系统具有更多的灵活性和更广的适应性。各类转换器的基本作用是将信息转换成便于传输和处理的形式,要求转换过程中信息不发生畸变、失真、延迟等。
模拟电罗经的输出信号为具有一定传向比的交流同步电机或者步进电机驱动信号,通过驱动外接带有指针和齿轮的自整角机或者步进电机来指示航向。电罗经数字化转换器就是要把电罗经输出的电机驱动信号转换为符合船用标准NMEA0183的数字通信信号,其技术指标主要有: (1)交流同步罗经输出的励磁电压为交流50~120 V,相电压为交流20~90 V,频率为50/60/400 Hz;步进罗经输出的相电压为24~100 V,连接方式有共正型和共负型。(2)传向比可以为360、180、90、45、36之一。(3)输出数字通信信号符合NMEA0183的HDT语句,波特率为4 800 b/s(低速)或者38 400 b/s(高速)。
根据电罗经数字化转换器的技术要求,可以设计其总体框图如图1所示。图1由电源电路、RS422通信电路、解调电路、MCU模块和人机界面电路组成。电源电路从电罗经输出电气信号中获取电能,转换为+5 V和+3.3 V直流电源;解调电路把电罗经信号转换为TTL电平的脉冲编码信号,送入MCU中,MCU软件计算出船舶的航向方位;MCU软件把航向方位数据打包成NMEA0183格式后,通过连接MCU的UART接口的RS422电路输出;人机界面电路包括4位8段数码管、4个面板按键和1个外接电位器,用于设定工作参数和显示航向数据。
2 转换器的硬件设计
从图1可以看出,其硬件设计的关键就是选择好MCU和简化外围电路。本设计选择AVR单片机ATmega48为控制芯片,选择SP490为RS422通信芯片;选择2片CAT4016为数码管驱动芯片,每片驱动2位,串连后驱动4位数码管。由于CAT4016采用了均流驱动技术,数码管中每段驱动电流相等,可以保证1英寸以上大型数码管挂墙时亮度均匀。这样可以把ATmega48的I/O和外设按表1所示分配。


从图1和表1可以看出,RS422通信电路和人机界面电路比较成熟,可以分别参考文献[3]和[4].下面主要介绍解码电路和电源电路。
2.1 转换器的解调电路设计
转换器的解调电路把一定传向比的电罗经高压电气信号转换为TTL电平的编码信号,设计电路如图2所示。图中,S1、S2、S3为交流同步电机或者步进电机驱动信号;Com为步进电机的公共端;I1和I2为交流同步电机的励磁信号。由于S1、S2和S3的转换电路一样,为了减小篇幅,图2中只画出了一组转换电路。
图2中,S1、S2和S3信号经过π型RC滤波和限流后驱动光耦,经过光电隔离和施密特反相器后得到S1P、S2P、S3P、S1N、S2N和S3N共6个信号,分别代表交流S1、S2和S3信号的正负半周的相位状态,这6个信号的组合就表示航向方位在原有基础上的改变量,相当于步进电机在3相脉冲驱动下的正转或者反转拍数,单片机的解码程序根据这6个信号的变化、传向比和变比前的航向方位就可以计算出目前的航向方位。交流同步电机励磁信号I1和I2经过类似变换后得到具有TTL电平的I信号,单片机据此判断外接电罗经的类型。图2中的LED兼有工作指示和反向保护的作用。

2.2 转换器的电源电路设计
从上述转换器的工作原理和器件选择可以看出,该转换器的总功耗在3 W以内,因此可以从其输入的电罗经信号获得电能,不需另外接电源,这将给转换器的现场应用带来方便。综合考虑交流同步电罗经和步进电罗经的输出信号范围可知,整流后的电压范围约为直流22~170 V,这比一般的开关电源的输入电压范围要宽许多,需要特殊设计。
图3是设计的转换器的电源电路,该电路采用了第3代TinySwitch-Ш系列开关电源专用芯片TNY280PN,并在整流后的直流电压端设计了充电电路使该芯片在22 V的低输入电压时也能良好工作。该电路采用六相整流电路结构,兼容不同的交流同步罗经、共正型和共负型的步进罗经信号输入。整流后的直流脉动信号经过π型LC滤波后变为比较平稳的直流电压信号,再经过以TNY280PN为控制器的开关电源,得到+5 V的系统工作电压,该电压经过LDO稳压器SPX1117-3.3变为专供ATmega48所用的+3.3 V电压。该电路采用了由三极管Q1和Q2、稳压管VR2和电阻R4和R5组成的恒流充电电路,保证开关电源在所要求的宽电压输入范围内能正常工作,输出电流达600 mA以上。该电路的反馈通道采用了光耦PC817A进行隔离和反馈信号传输,具有较强的抗干扰能力。

3 转换器的软件设计
从系统功能的角度看,该转换器的功能可简单理解为:(1)解码电罗经信号得到航向数据;(2)按规定格式显示和发送航向数据; (3)对上述功能的工作方式进行用户配置。因此,认真分析该转换器的数据流后,结合ATmega48内部提供的资源,就可以编写出高质量的程序。
3.1 转换器的数据流分析
数据流(data stream)初是通信领域使用的概念,代表传输中所使用的信息的数字编码信号序列。然而,我们所提到的数据流概念与此不同。这个概念初在1998年由Henzinger在文献87中提出,他将数据流定义为"只能以事先规定好的顺序被读取的数据的一个序列".数据流是指"以非常高的速度到来的输入数据",因此对数据流数据的传输、计算和存储都将变得很困难。在这种情况下,只有在数据初到达时有机会对其进行处理,其他时候很难再存取到这些数据(因为没有也无法保存这些数据)。
转换器的数据流图如图4所示,在单片机的RAM中分配4个数据结构变量,分别放置工作状态、工作参数、实时时钟和航向数据。工作参数还在单片机的EEPROM中备份,用于系统掉电重启后自动恢复上次设定的工作参数。工作状态包括参数设定状态和航向显示状态,无论处于哪种状态,转换器都按照现有工作参数不断地获得航向数据和发送航向数据。用户通过按"设置"按键进入参数设定状态,当5 s无键按下之后,自动退出参数设定状态,进入航向显示状态。当系统处于参数设定状态时,可设定的参数有每秒发送串行数据次数、串行通信波特率(4 800 b/s或38 400 b/s)、亮度、电罗经类型(交流同步罗经、共正型步进罗经、共负型步进罗经)、传向比(360、180、90、45、36)。

解码模块把解调电路输出的TTL电平信号解码为航向的相对偏移量,与上次航向数据叠加后变为本次航向数据,用户可通过按键输入初始航向数据。串行通信模块按照用户设定的时间间隔从航向实时数据区中取出当前航向数据,打包成NMEA0183标准规定的格式后,从单片机的UART串口输出。系统处于航向显示状态时,通过按键"增加"和"减少"来改变数码管显示亮度,也可以通过电位器调节显示亮度。电位器用于电罗经转换器挂墙时用延长线来设定亮度,因此电位器亮度调节优先。其他工作参数都需通过按键进行修改。实时时钟模块通过MCU的计时器产生系统所需要的相对时钟,单位为ms,采用无符号整数类型,范围为(0~65 535 ms),可以满足系统程序模块运行时作为时间间隔定时之用。显示模块根据系统工作状态显示当前航向数据或者正在修改的工作参数,用户通过操作"设置"、"增加"、"减少"和"确认"按键来进行修改。
3.2 转换器的程序设计
图4转换器的数据流图实际上也给出了转换器模块化的软件体系结构,模块之间通过内存数据变量进行交互,各程序模块可以独立进行程序设计,然后由主程序和单片机的中断系统进行调用。实时时钟模块、解码模块采用中断方式实现;键盘输入模块、电位器输入模块和显示模块由主程序通过定时扫描方式实现;串行通信模块采用在主程序中打包并启动发送,之后由其中断服务程序完成剩余数据的发送。中断程序的设计比较成熟,可以参考文献[3].程序主流程图如图5所示。

图5的主程序上电启动后,首先进行硬件初始化(包括时钟中断、I/O中断和串口发送中断的初始化),之后进入航 向显示状态,并根据单片机ATmega48内部的EEPROM中的工作参数的有效性,初始化系统工作参数为EEPROM中的参数值或者缺省参数值。至此完成单片机的初始化工作,进入主循环。主程序中的时钟值及航向数据在时钟中断程序和I/O中断程序中更新。主程序通过检测及响应按键来进入工作参数设定状态和修改工作参数;通过读电位器ADC的值来设定亮度。当转换器安装在船舶操作台时,不接电位器,电位器开路,其ADC的值很大,据此判断ADC值是否有效。由于读电位器ADC的值在键盘处理之后,电位器设定的有效亮度值将覆盖键盘设定的亮度值,实现了电位器设定值优先。主程序根据系统处于设定工作参数状态和航向显示状态分别显示工作参数和航向数据。,主程序完成亮度调节、航向数据打包和启动串口发送数据、在EEPROM中保存工作参数等任务。发送航向数据的HDT语句为"$HEHDT,nnn.nn,T*hh
本文介绍了电罗经数字化转换器的设计思想和关键技术,给出关键硬件电路和程序结构。该电罗经转换器目前运行良好,设计方案具有很高的性价比,达到了预期的效果,对磁罗经等其他船舶电子设备的设计和基于单片机的嵌入式系统应用具有一定的参考价值。
[1]. TTL datasheet https://www.dzsc.com/datasheet/TTL_1174409.html.
[2]. ATmega48 datasheet https://www.dzsc.com/datasheet/ATmega48_144556.html.
[3]. SP490 datasheet https://www.dzsc.com/datasheet/SP490_618600.html.
[4]. CAT4016 datasheet https://www.dzsc.com/datasheet/CAT4016_1856134.html.
[5]. Com datasheet https://www.dzsc.com/datasheet/Com_1118194.html.
[6]. S3N datasheet https://www.dzsc.com/datasheet/S3N_2031760.html.
[7]. TNY280PN datasheet https://www.dzsc.com/datasheet/TNY280PN_1730247.html.
[8]. PC817A datasheet https://www.dzsc.com/datasheet/PC817A_542407.html.
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。