关键词:电罗经; 单片机; 转换器; NMEA0183
我国是造船大国,造船的总吨位数名列世界前三位。然而,我国并不是造船强国,许多高附加值的船舶电子设备依赖进口。因此大力发展我国船舶电子技术已经成为行业共识和国家的行业指导政策[1]。电罗经是重要的导航设备,其输出信号可用于航向指示、航向控制和VDR(船舶黑匣子)记录等。电罗经的输出一般为模拟电气信号,用于驱动交流同步电机或者步进电机进行指针式航向复示。数字化是船舶电子的发展方向。当电罗经用于数字控制、数字显示和数据记录时需要将其模拟电气信号转换为数字信号,数字信号的格式一般采用船用通信标准NMEA0183。本文研制了用于电罗经数字化的转换器。
1 电罗经转换器的技术要求和总体设计
模拟电罗经的输出信号为具有一定传向比的交流同步电机或者步进电机驱动信号,通过驱动外接带有指针和齿轮的自整角机或者步进电机来指示航向。电罗经数字化转换器就是要把电罗经输出的电机驱动信号转换为符合船用标准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 转换器的数据流分析
转换器的数据流图如图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] 张世格.基于单神经元和专家PID的船舶自动舵控 制 策略[D]. 广州:华南理工大学,2008.
[2] ATmega48/V 88/V 168/V preliminary complete, datasheet.atmel.com/literature">http://www.atmel.com/literature
[3] 吴双力,崔剑,王伯岭.AVR-GCC与AVR单片机C语言开发[M]. 北京:北京航空航天大学出版社,2004.
[4] Application note36:demonstration/evaluation tool for CAT4016 16-channel constant current LED driver.http://www.catsemi.com
[5] TNY274-280 tiny switch-Ⅲ Family, datasheet. www. powerint.com.
[6] NMEA-0183 protocol description, version 2.20.http://www.remember.ro, 2004-1.