引言
随着市场经济的飞速发展,汽车运输已经成为货物运输过程中不可或缺的一部分。很多货车公司为了获得更多的经济利益,通常采用双司机倒班制,也就是司机轮流歇班,保证车辆一直在路上行驶。但是也有一些特殊情况,例如大雾天气高速公路封闭,这时很多司机会选择找地方停车休息,而有一些不法分子则借此机会利用司机在车上休息的时间偷窃货车油箱中的燃油,不仅给司机带来了经济上的损失,而且会导致车辆缺少燃油而无法行驶。
本文基于北斗定位系统设计了一种车辆燃油监测报警系统,其主要功能是,当车辆油箱中的燃油被盗时主动向运输公司或司机发送报警信息,以引起司机的注意。北斗定位系统可以定位车辆当前的位置,为运输公司或者车主提供位置查询和行驶轨迹查询。
1 系统组成结构
车辆燃油监测报警系统的结构框图如图1所示,该系统主要由电源变换电路、紧急报警按钮、北斗定位模块、燃油液位传感器以及报警器组成。电源变换电路将车载蓄电池的电源转变成单片机所需的5 V电源;北斗定位模块提供车辆的定位信息和行驶速度;燃油液位传感器用来检测油箱液位变化;车载报警器是安装在驾驶室内的报警设备,可以给司机发出警告信号;GSM报警器是在检测到油箱液位异常后给指定号码发送报警信息。另外,在车辆行驶中,可以通过GPRS网络向服务器[1]发送车辆的当前定位和行驶速度。
图1 车辆燃油监测报警系统组成框图
2 系统硬件设计
2.1 单片机选择及电源电路设计
该系统的北斗定位模块和GSM报警模块都需要串行接口,而车载的液位传感器通常都采用模拟接口,因此选择的单片机应该至少具有两个串口和片内的A/D转换器。本系统中选择宏晶科技公司生产的STC15F2K61S2,该单片机片内有10位8通道A/D转换器、两个独立串行口,可以对内部的Flash存储器在系统编程,且抗干扰能力强。图2是该系统的单片机及电源部分原理图。
图2 单片机最小系统及系统电源电路
为了适用12 V及24 V蓄电池的汽车需要,本系统中使用LM25765.0设计了宽电压输入的电源电路,该电路可以在8~36 V电源电压范围下正常工作,输出电流高达3 A。
2.2 北斗定位模块
北斗定位系统是我国自主研发的新一代导航定位系统,本系统中选用BD-126北斗/GPS双模定位芯片[2]。该芯片能在北斗定位和GPS定位两种模式下自由切换,从而最大程度上保证定位的可靠性,其对外输出信号为GGA语句、GSV语句、VTG语句,默认波特率设置是“9600,N,8,1”。其电路原理如图3所示。
2.3 燃油箱液位监测电路
选用的液位传感器型号为S3E225,该传感器将油箱液位转换为0~190 Ω的电阻。因此,只需要给传感器施加一个恒流源,就可以将该电阻信号转换成电压信号。由于单片机使用5 V电压供电,因此恒流源的输出电流I=5 V190 Ω≈26.32 mA。考虑到恒流源电流大小与成本,选用LM317设计的燃油液位监测电路如图4所示。图中R11为液位传感器,R10=1.25 V26.32 mA=47.49 Ω,选用R10=47 Ω即可。
2.4 GSM报警器设计
系统中GSM报警器有3个任务:
① 通过GPRS网络向远程的服务器发送车辆定位信息和行驶速度信息;
② 当油箱位出现异常时向指定手机发送报警短信并拨打电话;
③ 当驾驶室的紧急报警按钮按下时,拨打报警电话,并发送定位短信。
基于需要,选用GSM模块的型号为SIM900A 。设计中通过单片机的串行口与模块相连接[3],通过相应的AT指令完成短信与拨打电话的操作。SIM900A电路原理图如图5所示。
图3 北斗定位模块电路原理图
3 系统软件设计
该系统从功能上可以分为油箱燃油监测与报警、车辆位置及速度监控、紧急报警等功能。根据功能将程序分为主程序、发送短信及拨打电话程序、燃油监测程序以及紧急情况下的中断程序等子程序。
3.1 系统主程序
系统主程序主要完成燃油液位监测、发现异常后报警、车辆位置和速度接收,以及按一定时间间隔向服务器发送等功能,其程序流程如图6所示。
图4 油箱液位检测原理
3.2 发送短信及拨打电话程序
单片机通过串行口向GSM模块发送AT指令可以实现收发短信和拨打电话。其发送短信的流程图如图7所示。
图5 SIM900A电路原理图
其C51程序为:
void Send_Chn_Message(void){
Uart2Sends("AT+COPS?\\r");
//发送指令查询当前服务状态
Uart2Sends("AT+CMGF=0\\r"); //发送指令指定发送的是中文短信
DelaySec(1);//延时等待准备好
Uart2Sends("AT+CMGS=27\\r");
//发送长度,计算方法:15+字数×2
Uart2Sends("0011000D91685160334598F10008A70C6CB97BB16DB24F4D5F025E38");
//发送短信的内容“油箱液位异常”
Uart2Send(0x1a);//结束标志
}
需要注意的是,在计算PDU 总长度(即所发送内容的总长度)时,需要将信息头和接收短信的号码包含在内,两位十六进制码算一位长度。以上述程序为例,向手机号15063354891发送的信息为“油箱液位异常”,其完整的内容包含:
◆ 08短信中心号码长度(字节),包括第2段(91)和第3段(7字节)。
◆ 91号码类型,91表示号码带国家编码,中国是86。
◆ 683108501305F0 短信中心号码为13800531500。
以上信息在发送短信时不必每次都设置短信中心号码,因此可以在发送中用00代替,并且该字节不计入CMGS指令中的信息长度。下面的信息则是程序中包含的内容。
11发送参数(TPMTI/VFP)无需改变。
00消息基准值(TPMR),不改变。
0D目标手机号码的长度,不包括91,不包括补加的F。
91号码类型,91表示号码带国家编码,中国是86。
685160334598F1目标号码为8615063354891。
00协议标识,00表示普通GSM类型,点到点方式。
08信息内容使用的编码,UCS2(16位)编码,(Unicode)格式。
A7短信有效期,00表示5分钟,A7表示24小时。
0C信息长度,即后面短信内容的字节数(每两个字符为一字节)。计算公式为:字数×2。
6CB9 7BB1 6DB2 4F4D 5F02 5E38短信内容 (Unicode码)。
图6 主程序流程图
图7 发送短信流程图
3.3 燃油监测程序
对油箱内燃油的监测采用定时采样的方法,采样时间间隔为30 s。当本次采样与上次采样值之间的差值超过设定的界限时,就可以认为燃油的使用出现了异常。为了防止出现误报警,系统中采用算术平均值滤波的方法,即在1 s内连续进行32次采样,然后求其平均值,将求得的平均值作为本次的液位值。
结语
经过调试,基于北斗定位系统设计的车辆燃油监测报警系统,实现了车辆燃油监控、紧急报警、车辆定位和行驶状态监控等功能,目前在大型货车的应用中取得了很好的效果。实际测试表明,该系统工作稳定可靠,具有很好的市场前景。