温度传感器在小型ROV系统中的应用与研究
2013-07-19宋大雷徐霄阳
宋大雷 ,徐霄阳 ,田 川
(1.中国海洋大学,山东 青岛 266003;2.中国科学院海洋研究所,山东 青岛 266071)
温度传感器在小型ROV系统中的应用与研究
宋大雷1,徐霄阳1,田 川2
(1.中国海洋大学,山东 青岛 266003;2.中国科学院海洋研究所,山东 青岛 266071)
介绍了一种响应时间快、高精度、低功耗的温度传感器软硬件设计。传感器与ROV之间采用有缆方式进行通信,使得ROV可以方便有效地控制温度传感器,并可根据具体测量环境改变加装方式和通信模式。模块化的设计减小了传感器的体积使其可方便地集成在小型ROV系统或其它测量平台上。
温度传感器;小型ROV;有限状态机
水下机器人ROV(Remotely Operated Vehicle)是通过有缆方式进行操作的水下航行器。它主要由推进系统、操作系统(机械手)、通讯系统、摄像系统(包括辅助照明设备)、水下测量系统、零浮力脐带缆以及甲板操控系统等组成。随着经济的发展,尤其对海洋、湖波等水资源的开发和利用,小型ROV系统具有的尺寸小、重量轻、操行简单、续航能力强、稳定性好、可在狭窄环境使用等特点,越来越受到用户的重视[1]。通常情况下,ROV系统会根据不同的作业任务携带不同的测量传感器,但温度测量传感器通常为ROV系统的基本配置。本文主要基于自主研发的SeaRay-50型ROV系统上的温度测量传感器模块进行研究,通过对该温度测量模块的长期测试表明,该测量模块可以方便地装载在任何水下航行器或者测量平台上使用。
1 温度测量模块的硬件设计
温度传感器设计采用模块化思想,主要分为三部分,分别为温度探头、电路模块和对外接口,其中前端为温度探头部分,中部为模块主体,后端设计加装水密插头以完成数据通信和供电。模块的主体长85 mm,直径30 mm,探头长为20 mm,小型化的设计可方便实现其在ROV或其他水下测量系统上的外延集成。图1展示了设计完成的温度传感器。
1.1 热敏探头设计
测温模块的前端探头为316不锈钢材质,可保护内部的热敏电阻不受外压而发生损坏,热敏电阻被封装在探头内部。同时探头被设计为针状结构,以满足热敏电阻温度响应时间小于200 ms的要求。考虑到前端探头尺寸较小,所以在其周围加装不锈钢的保护罩。
1.2 电路模块设计
结合ROV的工作环境和监测要求,温度传感器采用了直读式的采样方式。因此硬件设计主要由主控芯片、电源管理模块、数据采集模块和串口通信模块四部分组成,各模块之间的关系如图2所示。
主控芯片主要负责控制数据的采集和串口通信,ROV通过外接水密缆完成对温度传感器的直接供电和命令通信,利用ROV的上位机软件便可方便完成对测温模块的控制。硬件的具体设计如下:
(1)考虑到系统的外设较少,因此温度传感器主控芯片采用AVR Atmega8,便可以完成对其他模块的控制和数据处理等工作。
(2)电源管理模块包括了LTC1763稳压芯片,可以把4~20 V供电电压稳定至3.3 V输出。可以满足ROV供电电压为6 V的设计要求。
(3)数据采集模块中A/D转换芯片使用了LTC2411,可以方便ROV扩展多路数据的采集。传感器测量精度可达±0.005℃,响应时间小于160 ms,满足ROV对于环境温度的监测精度。
(4)串口通信模块实现了测温模块与ROV之间的通信。为了方便温度传感器在ROV上的集成,同时满足长距离的数据传输要求,本模块使用了MAX3160电平转换芯片,通过对单片机编程,可以完成逻辑电平到RS-232或RS-485的转换。
1.3 对外接口设计
在电源接口的设计上,由于温度测量模块的大部分芯片工作电压小于5 V,为了使ROV对模块的供电能够安全、可靠,同时,为了提高A/D采集数据的精度,在电源管理模块中使用了LTC1763芯片。它是一种宽电压输入的稳压芯片,输出电压稳定在3.3 V。这样设计,就使得ROV的供电电压范围扩大,同时也可以适应其他系统的集成,通信模块中使用的MAX3160芯片和外围电路会对A/D的输入电压产生影响,为了消除电源纹波对测量精度的影响,在通信模块设计上采用了通信板和主电路板分离的电路设计。在缩小了总体电路长度的同时,使得通信部分也实现模块化。测温模块对外接口设计采用4线制接口,除供电的两路线外,通信的两路也可被RS-232模式和RS-485模式共用,通过对单片机的编程可以实现两种通信模式的转换,这样就最大化地简化了对外接口[2]。在测温模块的尾端,使用水密接头向外延伸线缆,ROV可以直接利用水密线缆与测温模块进行通信,获得实时温度数据。
2 温度测量模块的软件设计
测温模块的软件设计采用了状态机的思想。在有限状态机系统中,状态量是有限的,在设计状态时需要设定尽可能少的状态量,且在任意时刻系统都工作在其中的一个状态。同时状态之间的跳转(触发)条件必须明确。由此根据测温模块的功能和ROV的具体需求设计出了如图3的总体架构。
测温模块为了兼顾与ROV的通信和保持实时采样,程序的总体状态分为三种,分别为:采样、休眠和待机。当模块未与上位机通信时,处于采样或休眠两种状态中的一种。当模块状态跳转为采样状态时,测温模块会进行持续的采样并通过串口实时地发送采集到的温度数据给ROV。定时器中断被用作采样间隔的设定,通过对定时器的计数量选择,实现不同采样间隔的设定。当不再需要测温模块采样时,模块退出采样状态并进入休眠状态。在休眠状态下,单片机将停止一切工作,并等待外部中断信号重新唤醒,而外部中断不仅被用做把单片机从休眠状态下唤醒,同时还被用来使单片机从采样状态向待机状态跳转。当模块接收到通信命令时首先触发外部中断进入到待机状态,待机状态是为了通信需要而设定的,在此状态下对模块发出的不同命令可实现模块的各种功能。待机状态的超时时间(待机时间)被设定为5 s,即在5 s内接收到任何命令都将重置待机时间到5 s,而在距上一次命令接收5 s的时间内未收到命令,模块将自动退出待机状态,并按照之前命令所设定的方式执行程序。图4给出了三种状态下的程序流程图。
实现三种采样状态的跳转,关键是对中断进行配置[3]。由于休眠和采样两种状态到待机状态的跳转都需要利用外部中断实现,因此在进入前两种状态后都需要首先配置外部中断使能。在休眠状态中由于使能了外部中断,因此在单片机休眠后可以直接通过外部中断唤醒并进入中断子程序,而在采样状态时,由于受A/D转换速度最快为130 ms的限制,因此在采样状态下的采样子函数中需要禁止外部中断和串口中断,以防止在A/D采样时接受到串口命令而干扰到采样过程。在完成一次完整的采样后,需要再次使能中断,使得单片机可以响应外部命令。利用外部中断服务程序置位待机标志位,便使得模块跳转到待机状态。在主程序中采用查询的方式判断模块状态,这样就实现了不同状态之间的跳转[4]。
3 温度测量模块的通信和数据处理
3.1 模块通信命令
测温模块的通信可选择RS-232或RS-485,采用的MAX3160芯片是一款可编程多协议的收发器。芯片支持RS-232和RS-485通信,其中RS-485通信需要软件编程实现。两种通信模式的转换也可通过编程实现,当芯片11、12引脚为低电平时,芯片启用RS-232模式,反之则工作在RS-485模式[5]。这样集成近岸ROV只需选用RS-232便可满足距离要求,而如果需求远距离通信也可以方便切换为RS-485通信。测温模块架装在ROV上,ROV能通过对测温模块发送不同命令,实现对其的有效控制。以下定义了3种基本的通信命令,所有通信命令都采用十六进制,全长为4 byte。
(1)开始采样命令:向测温模块发送此命令可使其按照设定的频率进行采样,通过串口把采集到的温度数据以实时的方式发送给ROV。命令格式为D7090101,其中前两个字节的D709为命令标志,第三个字节的01表示命令种类,第四个字节的01表示设定的采样频率。根据ROV对于温度数据的采样频率要求为大于1 Hz,此命令设计了可以选择01(1 Hz)、02(2 Hz)、04(4 Hz)三种采样频率。模块接收到命令后将返回535441(STA),表示传感器开始采样。
(2)结束采样命令:此命令可以停止温度传感器的采样。命令格式为D7090200,模块返回53544F(STO),表示传感器停止采样。
(3)握手命令:向测温模块发送此命令,模块将返回自身信息和状态,返回值依次为两个字节的模块编号、一个字节的采样状态(01为采样中,00为停止)、一个字节的采样频率。命令格式为D7090300,一种可能的返回值为00010101494E46。
除了上述3种基本命令外,模块还定义了其他一些实用化的操作命令,随着ROV对测温模块要求的不断提高,模块可以扩展更多命令以简化操作。
3.2 温度数据处理
在使用了“开始采样”命令后,测温模块将实时对外发送温度数据。为了简化ROV的工作,使模块更具兼容性,温度数据的解析直接由单片机来完成。通过对原始AD值的解析,可以获取热敏电阻的阻值,再利用传感器标定所得到的拟合系数,最终计算出温度值。测温模块的主控芯片通过处理得到的温度值并最终以字符形式输出,这样ROV只需接收所得温度数据并直接输出显示即可。输出的数据格式为$XX.XXXX,温度单位为摄氏度,例如$24.1451。
4 传感器标定
温度传感器的标定需要在恒温水槽中进行。由于传感器采用直读式设计,使得其标定过程较为简单。在温度传感器的测量量程-2~40℃内,选5个温度点,分别为0℃,5℃,15℃,25℃,35℃,测得5组热敏电阻阻值,如表1。
表1 热敏电阻阻值
再根据Steinhart-Hart方程:T=1/(A+B*(LnR)+C*(LnR)*(LnR)+D*(LnR)*(LnR)*(LnR)),拟合算出 A、B、C、D 四个系数,分别为:A=0.000 700 017 704 406 045;B=0.000 295 730 851 936 622;C=-4.690 551 678 251 96e-06;D=2.293 326 223 767 59e-07。把得到的系数写入程序中,传感器在工作时就能把计算出的实时温度发送出来了。
5 结论
ROV系统在工作时对所经过海区内海水温度进行测量,并将数据通过电缆实时的传送给母船上的甲板控制系统,可使操作者对作业环境进行分析,更好的对ROV系统进行相关的决策。通过对集成在ROV系统上的温度测量传感器模块测试以及采集数据进行分析,该测量模块的指标可以满足ROV在作业时对温度测量的要求,并且由于该测量模块具有小型化、响应时间快、精度高、功耗低等特点,可以方便的集成到其他水下测量平台中使用。
[1]孙虎元,孙立娟,侯保荣,等.用于近海海洋环境检测的轻型机器人[J].海洋技术,2005,24(1):10-13.
[2]贾智平,张瑞华.嵌入式系统原理与接口技术[M].北京∶清华大学出版社,2005.
[3]Atemel.AVR ATmega8 data sheet.http∶//www.Atmel.com.
[4](美)克尼汉(Kernighan BW),(美)里奇(Ritchie DM).C程序设计语言(2版)[M].徐宝文,李志,译.北京:机械工业出版社,2004.
[5]张成鹤,王平,郑林华.可编程多协议收发器MAX3160的原理与应用[J].国外电子元器件,2002(12):62-63.
Research and Application of Temperature Sensor in Mini-ROV System
SONG Da-lei1,XU Xiao-yang1,TIAN Chuan2
(1.Ocean University of China,Qingdao Shandong266003,China;2.Institute of Oceanology,Chinese Academy of Sciences,Qingdao Shandong266071,China)
The hardware and software design of a fast-response,high-precision and low-power consumption temperature sensor was introduced.The sensor communicates with ROV using cable and could be controlled easily and effectively by ROV.It also could change the installation and communication mode depending on the environment of measurement.The small size sensor which is designed to be modular can be easily integrated in mini ROV system or other measurement platforms.
temperature sensor;mini ROV;finite state machine
TH766
A
1003-2029(2013)01-0024-04
2012-08-06
国家自然科学基金资助项目(41006005)
宋大雷(1971-),男,教授,硕士生导师,主要研究方向为海洋监测传感器的开发与应用、水下航行器。Email:daleisong@126.com