陈小米 张 浩
(中国船舶重工集团公司第七一二研究所,武汉 430064)
舰船车钟记录仪是用于自动记录舰船航行和控制过程中的一些重要数据,如驾控室车令、集控室或机舱回令、螺旋桨转速等。在舰船发生重大海损或事故后,车钟记录仪可作为事故原因分析调查的重要依据之一,即是俗称的“船上黑匣子”。在平时的航行中也可通过其记录的运行数据记录考察舰船的运行状况[1]。
随着技术的发展,许多现代化舰船操纵系统已采用了计算机控制及网络通讯技术,船舶的车令及运行数据的记录方式也发生了很大改变。本文通过采用基于 ARM9的硬件平台,以嵌入式WinCE操作系统为软件平台,研制了一种通过液晶屏提供丰富图形化人机界面、便于调试及操作的新型舰船车钟记录仪[2]。
为了保证车钟记录仪的高性能,硬件系统采用韩国三星公司研发S3C2410A处理器,该处理器是的一款基于ARM9内核ARM9TDMI架构的16/32位高性能微处理器。它片上集成了丰富的外设资源:独立16KB数据缓存和16KB指令缓存、存储器管理单元、LCD控制器、NAND FLASH接口、系统管理功能、3通道串口、4通道DMA控制器、4通道带PWM 的定时器、I/O接口、实时时钟(RTC)、8通道10位分辨率ADC、LCD接口、IIC总线、IIS总线、USB接口、SD接口、2通道SPI接口和锁相环等。因此,可以基于该处理器构建一个功能强大的系统[3]。
在充分利用S3C2410A片上资源的基础上,本文设计的车钟记录仪主要实现了以下四个功能:数据采集、数据保存、数据打印、人机界面显示和设置,如图1所示。
其中数据采集功能用于获取主令车钟信号、应急车钟信号及推进螺旋桨转速信号;
数据保存功能主要将采集的各种指令信号保存起来,保证在掉电情况下数据仍然能够长期保持,并扩展了支持1G容量SD卡的接口;
数据打印功能主要通过一台微型热敏打印机实现,由触摸屏控制,随时打印保存的数据;
人机界面功能主要由一块3.5英寸LCD触摸屏组成,可以实时显示采集的车令及转速信息,在线对车钟记录仪功能做出相关的设置。
记录仪每隔 20s(采样时间可以通过触摸屏在线设置)就分别对主令车钟信号、应急车钟信号车钟及推进螺旋桨转速进行实时采集。由于上述信号均为4~20 A电流信号,而A/D转换器采集接收的是电压信号,所以在主控板中专门设计了相应的信号调理电路,如图2所示。
根据总体施工规划,降水井布设于隧道两侧,距离隧道外边线约8 m,位于盾构施工影响的三倍洞径范围内,盾构机在推进过程中会不可避免地扰动周围地层,使得地层发生挤压和变形等。由于水泥管刚度低于钢管,水泥管的抗弯、抗拉、抗压强度,以及接头侧向受力更是明显低于钢管,在盾构推进过程中可能出现井管局部错位变形的可能,进而导致不能正常降水甚至降水井损坏。
经过信号调理电路的转换和滤波后输出0~3.3 V的电压信号,再经片上ADC转换器传至S3C2410A处理器进行处理。
图2 主控板信号调理电路图
在记录仪主控板上,扩展了 32M 的 NAND FLASH作为程序存储器,用来存储ARM WinCE操作系统以及应用程序。同时,设计扩展32M的SDRAM 作为系统的内存。同时利用该芯片丰富的外设接口,可以方便地进行外部设备的扩展,本系统为了异地读取数据的方便,特意扩展了SD卡接口,用来将采集到的各种数据保存到容量为1G的SD卡中,从而实现了大容量存储。
为了提高记录仪打印功能的可靠性,本文采用了市场上成熟的SPRT-DIIIB微型热敏打印机。它体积小、重量轻、支持国标GB2312的24*24点阵字库打印,拥有标准的 10线针型扁平电缆插座,与RS232C标准兼容。由于S3C2410A处理器上已经集成了3个串口通道,记录仪利用上面的通道1作为与微型热敏打印机的通讯接口。
S3C2410A处理器内部集成了液晶显示屏(LCD)控制器,本系统在此基础上外接一快SHARP公司的65526色320×240分辨率的3.5英寸的带触摸屏的LCD,为友好的图形界面做好了硬件基础。
触摸屏采用的是四线电阻式触摸屏,触摸屏的控制采用专用控制器ADS7843芯片。
本文采用嵌入式WinCE操作系统平台,利用Embedded Visual C++5.0工具基于模块化的思想开发了车钟记录仪的软件程序。对在Windows CE操作系统下程序的构成主要分三个层次:首先是启动程序,然后是的各种驱动程序,最后是应用程序,三者缺一不可。软件程序的层次如图3所示[4]。
启动程序的功能主要是根据记录仪硬件平台的需要进行Windows CE操作系统的定制,生成操作系统镜像。创建一个功能完善的 Boot Loader,是开发WinCE系统的第一步。
图3 基于WinCE的记录仪软件层次图
Windows CE的驱动程序有两种模型:本机设备驱动程序和接口设备驱动程序。本机设备驱动程序由原始设备制造商创建的,用以驱动如键盘、触摸屏、音频设备等。接口设备驱动程序则是由第三方生产商提供,以支持添加到系统的设备。WinCE下的设备驱动程序在与应用程序相同的保护级上工作。当系统启动时,大多数驱动程序是由设备管理进程加载的,所有的这些启动程序将共享同一个进程地址空间。本文中主要编写了以下驱动程序:
(1)本地实时时钟驱动:实时时间模块;
(2)LCD驱动:用于图形显示操作界面,人机交互显示;
(3)本地存储器驱动:存储内核镜像,文件系统镜像,数据库等,掉电保留;
(4)移动存储器驱动:SD卡驱动;
(5)微型打印机驱动:打印机驱动程序设计。
在应用程序中,根据系统的功能,本文主要编制了以下子程序:
(1)A/D转换和数字滤波子程序:采用多次复用采集,进行A/D转换,并编制相应的数字滤波程序,实现软件的抗干扰;
(2)数据处理和存储子程序:将采集的数据按顺序存入FLASH中,并标定时间记录;
(3)串行通信子程序:按照约定的数据帧格式,实现与热敏打印机的数据单向传送;
(4)GUI显示处理子程序:实现参数和采集数据的显示,以及触摸程序的识别和处理,完成与触摸屏的双向数据交换。其中,人机交互界面,主要由三部分组成:主界面、功能界面、子功能界面。
本文就基于ARM硬件平台和WinCE操作系统舰船车钟记录仪的功能和设计进行了详细的论述。充分利用嵌入式ARM芯片处理强大的运算能力和丰富的接口功能,集成度高、抗扰性能好等优点,以及利用C++语言在Embedded Visual C++5.0环境下开发应用软件的便捷性,成功构建一个图形界面友好,操作方便,集数据采集、显示、打印于一体的车钟记录系统,具有很好的发展前景,满足了今后舰船航行记录的要求。
[1]陶勇, 龙飞等. TCJ-1型通用车钟记录仪的研制. 船电技术[J], 2007(1), 31-33.
[2]孙秀强, 宋延民. 单片机在通用船舶车钟记录仪中的应用[J].天津职业技术师范学院学报, 2001(2),23-26.
[3]陈方亮, 王劲等. 一种基于C8051F020单片机和TL16C554串行通信接口的车钟记录仪[J]. 船电技术, 2007(增刊), 52-55.
[4]屈博, 杨耿煌等. 基于ARM9 Linux的手持电能质量分析仪[J]. 电子测量技术, 2007(8), 94-98.
[5]缪兵. 基于ARM9内核的嵌入式检测系统设计[J].仪表技术与传感器, 2010(1), 70-73.