APP下载

基于GSM网络和CAN总线的汽车远程控制系统

2013-09-20王诗舰唐厚君熊天毅

电气自动化 2013年3期
关键词:报文串口短信

王诗舰,唐厚君,熊天毅

(上海交通大学 电子信息与电气工程学院,上海 200240)

0 引言

随着CAN总线在世界范围内的汽车制造中的广泛推行和发展,使得各项附加功能部件能作为一项标准装备嵌入到车身中。借助于CAN总线,我们能通过GSM网络对车辆本身进行远程控制,同样能通过GPS模块得到车辆的准确位置后使用通讯模块与用户得以联系,进而通过通讯模块直接对车辆进行远程操控成为可能。因此,提出了基于CAN总线的汽车远程控制系统的设计方案,将GPS定位以及GSM通讯等功能集成在一起,并用CAN总线与车辆组合,实现功能。

1 汽车远程控制系统的总体设计

该汽车远程控制系统的目的是给予车主能够更加方便智能的控制汽车,能够仅通过手机就能完成多数功能,可以使得车主随时随地能对车辆进行控制而没有限制,真正实现人,车的有机结合。该系统由通信模块,GPS定位模块和控制模块组成。通信模块通过GSM网络接收用户发送的短信,或者得到控制模块的命令对用户发送指定的短信。GPS定位模块则以固定的时间频率向控制模块传送车辆的位置信号。控制模块则与车辆进行CAN通信,分析通信模块得到的来自用户的信息,并不断存储GPS定位信息,通过各项得到的数据进行分析整合,根据用户的短信命令控制车辆动作,根据CAN通信得到的数据实时向用户报告车辆状况。该远程控制系统的结构如图1所示。

2 系统的硬件设计

该系统硬件平台主要由控制模块,GSM通信模块,GPS定位模块组成。其中,控制模块在硬件层面上又能分为MCU模块,电源模块,CAN通信模块,RS232设备接口模块。

2.1 控制模块

考虑到设备的功能需求,系统采用飞思卡尔公司的MC9S08DZ60微控制器为主控制器。MC9S08D系列微控制器单机内嵌CAN的微控制器,并将内嵌的CAN,EPROM和片上仿真/调试模块组合在一起,集成了所有的功能,符合要求所需。同时,有着直接面向该MCU的编程调试软件CodeWarrior。它具有高度可视化的综合开发环境,支持系统体系结构,独立集成产品以及Processor Expert,使开发人员能够很方便的构建复杂的应用程序。

电源模块是5 V直流稳压源输入,主要提供电路中各芯片的工作电压。其中通过车载的电源提供12 V电源,12 V电源经过滤波和稳压再由电压转换芯片LP2985-50生成5V电源。LP2985-50是一款高性能LDO稳压芯片,其输出为5 V。在满载时,压降仅为280 mV,完全能够满足系统需要。为确保输出稳定,在输出端同样增加了滤波电容。

如图2所示,CAN通信模块采用飞利浦的高速CAN转换芯片TJA1040T,该芯片 TXCAN,RXCAN接 MCU的 CAN控制器,STB1接MCU的IO口,CANH,CANL即为两条 CAN线,工作时STB1为高电平,由MCU控制。

图1 远程控制系统结构

图2 CAN模块,RS232模块以及电源模块电路图

RS232设备接口模块主要是控制模块与通讯模块以及GPS定位模块连接所用。RS232是一种使用非常普通的3线制全双工通信接口。只需要TxD,RxD,GND3根数据线就可以完成双向的数据传递。为了保证通讯的可靠性,系统采用RS232驱动芯片MAX3232芯片来进行电平转换。MAX3232有2路输入以及2路输出端口,并比MX232的工作电压范围更宽,消耗的功率更低,更适合系统使用。

2.2 GSM通信模块

本系统采用的是SIMCOM公司生产的SIM300通信模块。SIM300具有标准的AT命令接口,可提供语音传输、短消息和GPRS无线上网业务。SIM300集成完整的射频电路、GSM的基带处理器和强大的TCP/IP协议栈。SIM300具有单电源供电,工作于三频模式900/1800/1 900 MHz,并且支持文本和PDU模式的短消息。同时支持多时隙GPRS功能和语音以及传真。本系统利用 SIM300的短消息功能,实现车辆与用户之间的通信。SIM300通过RS232接口连接主控制器,从而进行串口通信[1]。

2.3 GPS 定位模块

本系统采用的是韩国Jcom公司出品的C3-470C GPS定位模块。C3-470C使用标准的NMEA 0183输出格式,RS232总线传输,9 600 Kbps。该模块内置了天线,也有外接天线的接口。模块有电池供电保留历史信息。该芯片将电路封装,共有6个外部端口,由右至左分别为使能端口EN,正电源口VCC,串口发送口TXA,串口接收口RXA,地GND,启动模式端口BOOT。实际连线方式为EN口悬空;电源正和电源地分别连接电源模块的输出和地;TXA及RXA连接到RS232模块的MAX3232的一组输入输出端口上,然后通过RS232接口连接主控制器,从而进行串口通信[2]。

3 系统的软件设计

软件系统的设计主要包括CAN接受发送程序,GSM通信程序,GPS数据处理程序,主判断动作程序。其中,所有程序都是通过软件CodeWarrior用C语言进行设计。

3.1 CAN接受发送程序设计

由于本系统使用的微控制器MC9S08DZ60内部集成了应用了CAN2.0A/B协议的CAN控制器--MSCAN模块,所以在正常运行之前,先要对MSCAN模块进行初始化。置位CANE,写入处于初始化模式的配置寄存器,最后清除INITRQ,离开初始化模式,进入正常模式[3]。

当CAN端口检测到有等待接受的报文,通过接受过滤器匹配比较,将满足过滤器条件的报文传送到相应的接受缓冲器中。接受缓冲器收到传来的报文后,MSCAN会将接受器标志寄存器CANRFLG置1,引起中断请求,进行中断处理。在中断处理中,将寄存器中的CAN报文按照需要保存到相应的主程序变量中。最后,清除接收器标志位,报文接受完毕,返回准备接受下一个报文。流程图见图3。

图3 CAN接受流程图

图4 CAN发送流程图

当准备发送CAN报文时,首先判断并等待CAN总线空闲,并通过查询MSCAN发送器标志寄存器来确认是否有空闲的发送器缓冲器。当还有至少一个发送器缓冲器时,将报文写入发送器缓冲器,并通过将发送中断标志位置1发送报文。如果同时不止一个缓冲器同时请求发送,还需比较优先级,优先级较高的发送缓冲器先发送,此时由MSCAN自动处理顺序,依次发送。报文发送成功后,MSCAN会清除发送器标志位,准备开始下一个报文的发送。流程图见图4。

3.2 GPS数据处理程序设计

C3-470C模块支持NMEA0183的通信标准协议。该协议采用ASCII码,其串行通信默认参数为:波特率4 800 bps,数据位8bit,开始位1bit,停止位1bit,无奇偶校验。该模块会依此发送$GPGGA,$GPGSA,$GPGSV,$GPRMC等 4条语句。其中$GPRMC模块语句是推荐最小数据量的GPS信息,其中包括UTC时间,定位状态,经度,纬度,速度,航向等信息。

当控制模块接受到C3-470C传来的通信数据时,主程序进入调用串口中断接受程序,进行中断处理。在处理中,由于“$”为帧命令起始位,所以可以通过判断“$”来确认命令起始位置,再通过判断“$GPRMC”确认需要的数据语句。由于这些信息都会由“,”分割,所以可以通过判断“,”数量以及每个信息所处的固定位置可以准确提取所需信息。通过这种方法处理这些数据,可以从中提取经度,纬度,速度,航向等有用信息,供控制器判断。

3.3 GSM通信程序

SIM300模块提供的命令接口符合 GSM07.07规范。GSM07.07中定义的AT Command接口提供了一种移动平台与数据终端设备之间的通用接口。当SIM300模块收到GSM网络发来的短消息时,模块能够通过串口向控制模块发送指示消息,提示收到短信。而控制模块可以通过串口向SIM300模块发送AT指令,SIM300模块根据不同的AT指令执行不同的动作。部分AT指令见表 1[4]。

SIM300发送短信支持PDU以及TEXT两种模式。TEXT模式非常简单,但是不支持中文短信,因此该系统选择了使用PDU (protocol data unit)模式发送短信。PDU模式同时支持中英文两种短信,收发短信包括3种编码:7位,8位和UCS2编码。PDU编码的格式如表 2 所示[5]。

表1 部分AT指令表

表2PDU编码

其中:SMSC为用户短信信息中心地址,分为3部分:1个字节的长度控制字,一个字节的类型控制字和短信中心号码,其中长度控制字不包含该字自身长度;DA为目的地址,格式与SMSC一样;UD为用户数据,长度由UDL控制。PDU可发送UCS-2编码的Unicode字符的用户数据。

当控制模块接收到串口发来的信息后,触发串口中断接受程序,设置变量提示主程序已有新提示信息并将数据保存至主程序变量中,供主程序判断处理。当接受到“/r/n”,即回车换行后,表示SIM300的一整条提示信息发送完毕,则清空缓存量并等待接受下一条信息。

3.4 主判断动作程序

在初始化各项配置寄存器以及变量后,判断是否有GMS模块的新提示信息,若有则判断是否提示收到短信,若是则以AT命令通讯GMS模块输出短信内容,并判断是否为预设内容,根据预设短信的要求执行预定程序,如发送CAN报文,或发送GPS地址的SMS短信等等。最后判断所接受的CAN报文,同样如需要动作则按所对应的预设程序进行。返回最初判断GMS模块是否有新提示信息,循环运行。流程图见图5。

4 实际功能测试

作为测试实验,将汽车远程控制系统与一套由CAN指令控制的车门控制系统通过CAN线相连。该车门控制系统通过CAN指令完成开关车门,车窗动作[6]。在实验过程中,通过发送特定的手机短信,可以准确的控制车身控制系统进行开关车门锁,升降车窗等动作。同样,通过手机发送特定短信,可以成功收到由GPS定位模块所定位的经度纬度。在实验中,完成的功能为:(1)远程遥控车辆的门窗上锁以及开关,(2)查询汽车的具体位置。

5 系统的功能升级设计

图5 主程序流程图

由于该系统与CAN总线相连,所以对于整个车辆的状态能有较全面的把握。同时,在升级功能方面,只要将新的功能部件嵌入CAN总线,可以直接通过CAN总线直接把握到该功能部件,从而方便的面对该功能部件添加新的功能,真正做到人车同步。

系统可实现的功能有:(1)通过报警传感器得到报警信号,自动发送警报信息到车主手机;(2)远程遥控车辆喇叭响起,以便在停车场内找寻车辆;(3)远程遥控车辆的空调系统开启;(4)当遇到紧急情况时一键向预置手机报告GPS位置并请求帮助。

以上功能只是实现功能的一部分,更多的功能根据车辆的实际情况可以自由组合设置。

6 结束语

本文设计的汽车远程控制系统通过CAN总线得到车辆的各项信息并发送动作消息,通过GMS模块与用户交流沟通,通过GPS模块定位车辆的位置,涵盖了用户在远程控制方面对汽车的各项要求,并能方便的根据不同用户的不同车型提供不同的功能,有很好的扩展性。该系统在很大程度上方便了车主的使用,同时在汽车防盗方面也将起到重要的作用。

[1]杨凯悦.远程汽车状态监控及故障诊断系统的研究[D].上海:上海交通大学,2012.

[2]范鹏.基于CAN总线的网络化车身控制系统的设计与实现[D].上海:上海交通大学,2012.

[3]张颖超,杨宇峰,叶小岭,等.基于CAN总线的汽车信号记录仪的设计[J].仪表技术与传感器 ,2009 ,46(1):40-42.

[4]中兴通讯股份有限公司.中兴通讯ME3000模块AT指令集手册(V2.00)[Z].深圳:中兴通讯股份有限公司,2008.

[5]吴振陆,付学尧.基于GSM网络及RFID技术的汽车防盗系统设计[J].装备制造技术,2010,38(5):97 -99.

[6]范鹏,唐厚君,叶子晟,基于CAN总线的车门控制系统的设计与实现[J].电气自动化,2012,34(2):59-61.

猜你喜欢

报文串口短信
基于J1939 协议多包报文的时序研究及应用
浅谈AB PLC串口跟RFID传感器的通讯应用
CTCS-2级报文数据管理需求分析和实现
浅析反驳类报文要点
道歉短信
代发短信
ATS与列车通信报文分析
数字电源内部数据传输的串口通信方法实现
USB接口的多串口数据并行接收方法探索
串口技术的实物调试和虚拟仿真联合教学模式