水下航行体应急控制系统设计与实现
2015-08-07周隆英
周隆英
(昆明船舶设备研究试验中心,昆明650051)
水下航行体应急控制系统设计与实现
周隆英
(昆明船舶设备研究试验中心,昆明650051)
水下航行体在科研阶段的安全性已经越来越重要,它关乎科研成本的巨大浪费,更关乎科研数据的丢失,无法分析辛苦得来的宝贵数据,更严重的是,航行体的丢失,使得科研无法继续进行,耽误科研的进度。因此水下航行体应急控制系统显得尤其重要。本水下应急控制系统采用C8051F040单片机为控制核心,Am29F040Flash存储器为存储单元,C语言为编程环境来实现。它的实现,确保了航行体的安全,对整个科研起到至关重要的作用。实际应用证明,该系统具有较高可靠性和实用性,为保证水下航行体安全提供了一种有效方法。
水下航行体;应急控制系统;安全;C8051F040单片机;存储器;CAN总线
1 引 言
水下航行体应急控制系统,主要用于航行体在正常航行过程中,对航行体重要状态的实时监测,用于预防由于航行体控制系统突然掉电、航行深度超出设定深度、航行时间超出设定时间等因素引起的航行异常。同时采取应急控制措施,控制航行体安全可靠的浮出水面并定位,便于安全回收。
作为应急系统,其工作时间长,系统稳定性和抗干扰性要求高,记录数据量大,建立一套稳定可靠的通讯方式具有重要意义。该系统采用CAN总线通信方式,CAN总线系统工作可靠、稳定[1],具有很高的抗干扰性,CAN控制器局域网具有体系开放、广播式的新一代网络通信协议,有效支持分布式控制和实时数据传输。由于其采用两线差分串行传输,单工或半双工工作模式,速度高,很适用于中小型的、实时要求高的系统[2]。因此确定使用CAN总线构建应急系统通信方式。
2 设计原理
水下航行体应急控制系统工作原理框图如图1所示,主要由控制模块,数据存储模块,时钟读取模块,信号监测模块和驱动模块组成。
图1 应急控制系统工作原理框图
3 系统硬件设计
系统硬件部分以C8051F040单片机为核心[3],配备4M位闪速FLASH存储器TMS29F040芯片、DS12887时钟芯片、CAN总线通讯芯片、RS-232串口通信芯片、信号驱动芯片、继电器、JTAG芯片等。其中C8051F040单片机是整个应急系统的大脑中枢,FLASH存储器芯片存储关键数据,DS12887时钟提供关键数据时间点,CAN总线通讯芯片作为通讯的收发器件,RS-232串口通信芯片用于软件调试,信号驱动芯片驱动输出端口,JTAG芯片用于程序下载。
3.1 C8051F040单片机电路设计
C8051F040单片机为整个应急系统的大脑中枢,实时快速监测水下航行体的航行姿态,同时每0.1s间隔记录从传感器采集到的深度数据。出现紧急情况时,控制各路信号的输出,并读取时钟芯片内时间作为关键信息的时间点存储到FLASH存储器。
3.2 FLASH存储器电路设计
应急系统配备4M位闪速FLASH存储器Am 29F040芯片,Am29F040Flash存储器由8个独立区段构成[4],区段结构如下表1所示,A18、A17、A16为选择8个区段之一的地址位[5]。在存储航行体不同种类数据时,可分区段和地址位存储产品所要记录的数据。其主要用途为存储应急参数,关键CAN信息数据及时间,航行体航行深度数据(0.1s间隔)。
表1 存储器结构
3.3 时钟电路设计
采用DS12887芯片设计的时钟电路无需任何外围电路和器件,具有良好的微机接口[6]。DS12887芯片具有微功耗、外围接口简单、精度高、工作稳定可靠等优点。内含一个锂电池,断电后运行十年以上不丢失数据。计秒,分,时,天,星期,日,月,年,并有闰年补尝功能[7]。根据应急系统存储时间的要求,DS12887芯片完全满足运行稳定可靠、工作时间长、时间精确度高等要求。
4 软件设计
软件是应急控制系统的指控中枢。应急控制系统硬件在软件的统一调度、管理和配置下,实现对水下航行体各系统主要信号的监测,同时记录水下航行体工作异常时的重要数据,控制应急控制系统各功能模块输出驱动信号,确保水下航行体安全、快速的浮出水面。
4.1 软件功能与结构
软件功能主要包括:①实航深度信号及航行时间监测;②关键电源信号状态监测;③数据记录;④信号驱动控制;⑤CAN总线通讯。
该应急系统软件监测航行体航行深度信号、航行时间和关键的5路电源信号,并在该监测信号发生异常时,通过CAN总线向控制系统报警以及警戒停机控制;在航行体由应急控制系统实施警戒停机后,由应急控制系统控制航行体安全浮出水面。
为了方便设计与后续的完善、修改,采用模块化设计。各功能模块完成各自不同的软件功能,它包括状态信号监测程序、深度信号监测程序、驱动控制程序、数据记录程序、CAN总线通讯程序五个功能模块。连接到定时循环的主模块中形成自主循环检测和中断响应程序。其功能模块框图如图2所示。
图2 功能模块框图
4.2 主程序设计
主程序主要完成端口的初始化设置以及单片机的寄存器初始化,包括串口初始化、定时器初始化、系统时钟初始化、I/O初始化、CAN通讯初始化、ADC0初始化等。初始化完成后,等待监测指令,收到监测指令后,监测航行体,根据监测信号进入相应的子程序模块。当有结束提示或命令时,退出主程序。有关程序中用到的CAN及传递参数的全局变量数据类型也需要在此程序框架中定义,以便在系统异常时随时正常调用各功能模块。
4.3 监测程序设计
状态信号监测软件模块主要监测航行体5路状态信号的实时状态,判断各路信号是否出现异常。当全航行体任一信号出现异常时,软件即设置该状态异常标志位,并由驱动程序进行相关的警戒停机动作。其软件模块流程图如图3所示。
图3 状态信号监测软件模块流程图
对要进行监测的输入端口标志位进行判读,在此软件中,标志位“0”为正常信号状态,标志位“1”为异常信号状态。通过c语言里的判断语句,对输入端口进行判读,达到监测信号的目的。
深度信号监测子程序主要是监测航行体航行过程中的实时深度信号,判断航行体深度是否过深。当航行深度过深时,软件设置深度异常标志位,并由驱动程序进行相关的警戒停机动作。通过提取深度传感器的实时航行深度数据,对比外部寄存器Am29F040B内设定的深度警戒参数,来达到监测深度的异常。
4.4 数据记录程序设计
深度数据记录子程序实时记录航行体航行的深度数据。它对采样的深度信号进行转换,把模拟量数据转换成数字量数据,经滤波处理后存储到应急系统的数据存储区;当深度信号异常时,把深度信号异常数据存储到记录异常数据的特定存储区。记录的航行深度,有利于试验后对深度数据进行分析。
其数据记录软件模块流程图如图4所示。
图4 数据记录软件模块流程图
状态信号异常数据记录子程序主要记录状态信号异常时的数据,在航行体航行过程中,当航行体航行深度信号、航行时间和控制5路信号,只要其中任何一路信号出现异常时,把异常数据存储到记录异常数据的特定存储区。记录当前时刻的异常数据,试验后通过对安全控制电路记录数据取数,可以清楚的知道在航行体航行过程中,是哪一路信号在何时出现了异常,便于问题的查找,缩短查找问题的时间。
4.5 CAN通信设计
CAN总线通信软件模块是对CAN总线通信接口卡硬件的操作。根据产品的CAN总线通信规程协议,上电运行控制程序中,程序初始化过程就完成CAN的初始化,完全根据各信号状态、航行深度信号以及航行时间是否异常进行CAN发送信息和接收对应节点的CAN总线信息。由于每种命令的CAN总线通信帧的8个字节为核心内容,因此只需要把CAN总线通信功能设计发送和读取函数,再用不同的调试命令调用CAN总线单元函数实现CAN通信。
通过CAN中断,判断是否接收或发送CAN消息,其实现如下:
其中,在CAN发送函数里,将*p数据写入can消息发送,len为数据长度;在CAN接收函数里,将接收数据存入*p指针中,len为接收长度。Msg-Num为消息号,id为CAN总线上的节点号。
5 结束语
详细介绍了某水下应急系统的设计与实现,该产品属于嵌入式自动化设备,具备智能化、小型化与模块化的设计特点。经测试,系统运行稳定,能可靠实现对水下航行体实航的状态监测,在航行体工作异常时,快速做出应急响应,确保水下航行体的安全性。
[1] 邬宽明.CAN总线原理和应用系统设计[M].北京:北京航天航空大学出版社,2002.
Wu Kuanming.Can bus principle and application system design[M].BeiJing:Beijing University of Aeronautics and Astronautics Press,2002.
[2] 杨慧,田亮,田敏.CAN总线协议分析[J].中国仪器仪表,2002(4):1-4.
YangHui,Tian Liang,Tian Min.The Analysis of CAN Bus Protocol[J].Chin Instrumentation,2002(4):1-4.
[3] 万光毅,孙九安,等.SoC单片机实验、实践与应用设计——基于C8051系列[M].北京:北京航天航空大学出版社,2006.
Wan Guangyi,SunJiuan,etal.SOCmicrocontroller experiment,practice and application of design-Based on C8051 series[M].BeiJing:Beijing University of Aeronautics and Astronautics Press,2006.
[4] 吉峰.基于Flash存储器的嵌入式文件系统设计[J].江南大学学报,2006,5(1):1-2.
Jie Feng.The design of embedded file system based on flash memory[J].Southern Yangtze University,2006,5(1):1-2.
[5] 公茂忠,刘汉奎,徐殿国.Flash存储器的在系统编程及其在DSP系统中的应用[J].电子技术应用,2002(3):69-70.
Gong Maozhong,Liu Hankui,Xu Dianguo.The Flash memory in system programming and its application in DSP system[J].Application of Electronic Technique,2002(3):69-70.
[6] 闫胜利.DS12887时钟芯片及其在LED中的应用[J].电子产品世界,2001(4):3-4.
Yan Shengli.DS12887 clock chip and its application in LED[J].Electronic Engineering&Product World,2001(4):3-4.
[7] 高培先,王涛.测控系统设计中的实时时钟研究[J].计算机测量与控制,2014,22(1):239-241.
Gao Peixian,Wang Tao.Research of Real Time Clock in Measurement and Control System[J].Computer Mesaurement&Control,2014,22(1):239-241.
Design and Im plementation of Underwater Bodies Emergency Control System s
Zhou Longying
(Kunming Shipborne Equipement Research&Test Center,Kunming 650051,China)
The safety of underwater bodies,concerning about the research costs and the research data,has been more and more important in research stage.What'smore,the loss of the bodiesmakes scientific research interrupt and delays the progress of the research.The underwater bodies emergency control system is so important that it is paid more attention.The system uses C8051F040 singlechip as control core,Am29F040Flash memory for storage unit and C language as programming environment.Its implementation is conducted to ensure the safety of navigation and play a crucial role for the whole research.The practical application indicates that the system has high reliability and practicability and provides an effectivemethod for underwater navigation safety.
Underwater bodies;Emergency control system;Safety;C8051F040 microcontrolle;Memory;CAN bus
10.3969/j.issn.1002-2279.2015.05.019
TP277
A
1002-2279(2015)05-0072-04
周隆英(1981-),男,广西人,工程师,主研方向:监测设备研制与开发。
2015-03-10