APP下载

车载通信系统通信协议方案设计

2010-09-25周民军刘金根

单片机与嵌入式系统应用 2010年8期
关键词:机设备信令车载

周民军,刘金根

(武汉理工大学信息工程学院,武汉 430070)

引 言

车载通信系统是指装载到汽车上的通信系统,其特点是以车为载体,随着汽车的移动能进行无线信号的传输[1]。车载机设备位于移动公司子网内,监控中心无法主动找到车载机,必须由设备主动向监控中心服务器发起TCP连接。整个车载机系统如图1所示,包括协议模块、智能公交接口模块、报站处理模块、LED显示模块、按键处理模块等。本文介绍整个系统中的一部分,针对系统设备软件与中心服务器通信协议层,提出了基于车载机系统的通信协议实现框架及少量功能代码。

1 协议架构设计

本协议设计思想与车载机系统设备底层软件接口相对独立,仅作为底层与中心服务器通信的1个接口,与服务器进行无线通信。车载机设备通过TCP连接的方式(包括各种无线、有线网络)与总控制中心的中心服务器通信并交换数据。设备是连接的发起方,这意味着中心一方必须有固定的IP或域名。所有客户端软件启动,车载机设备开机后均需上报到中心服务器,以便中心服务器进行统一控制管理。客户端软件可以通过中心间接给车载机设备下发业务指令,车载机设备收到指令后,进行相应的动作,响应客户端的业务指令。

图1 智能公交网络架构图

1.1 信令链路建立与维持

开机后,车载机首先检查设置的监控中心IP地址。若IP地址无效(IP地址为全0或值域超出范围)则保持在离线状态,否则开始GPRS拨号,进入在线状态后主动向监控中心发起TCP连接。

TCP连接建立后由移动公司路由器维持一段时间,若TCP传输间隔太长则不再保留连接,车载机只能重新向中心发起连接。为了避免链路在无数据传输的情况下被移动公司路由器断开,中心和设备在空闲时(即无数据可发送时)定时地发送1个特殊的心跳包(无线通信中用来维持通信链路的一种形式)来产生流量,维持链路[2]。心跳包的另一个用处是能快速有效地检测对方是否还是“活跃”的。众所周知,移动公司的无线网络有个特点,TCP链路容易异常断开,而异常断开无论是设备还是中心都是无法即时检测到的。解决办法就是检测对方的心跳包:如果中心在规定的时间范围内既没有收到设备的正常数据也没有收到设备心跳包,则认为链路异常断开了,中心要主动关闭socket;同样,如果设备在规定的时间范围内既没有收到中心的正常数据也没有收到中心心跳包,则认为链路异常断开了,设备要主动关闭 socket并重新发起连接。通过检测心跳包能准实时地侦测设备是否掉线,最大限度地避免“假在线”现象。

信令链路注册流程如图2所示。连接建立成功后立即发送1条注册指令,中心收到后通过判断序列号来判断设备合法性:如果序列号在中心车辆数据库里存在,则返回1条应答指令,应答内容为通过注册;如果序列号在中心车辆数据库里不存在,或者指令的格式根本就是错的,也返回1条应答指令,应答内容为注册失败及其原因,并主动关闭socket。如果设备收到应答,判断是否注册通过。如果通过则正常收发数据,否则应断开socket;如果设备在规定时间内还没有收到应答,重新发送注册包。设备还可在外围设备(如显示屏)上醒目显示登陆是否成功及失败原因等诊断信息。

设备复位后,或连接断开重新发起,也是重复这一流程。也就是说,只要设备处于开机状态,就会自动尝试与中心建立连接,直到登录成功。

图2 信令链路注册流程

1.2 媒体链路的建立与数据传输

中心下发的数据分为控制指令、媒体数据指令以及心跳包,但是目前通过媒体链路进行数据传输的有实时音视频流、下载文件块、回放视频流、升级包、配置文件、抓拍图片、日志下载等。数据类型不同时格式也有所不同。

H.264设备则相对复杂,同一时刻与中心之间可能有多条TCP通道:1个信令通道和多个媒体通道。流数据或大块数据都是通过媒体通道传输。对在媒体通道传输的数据定义3种属性:

①独立性。此类数据必须单独建立通道传输,不能与其他类型媒体数据混合在同一个通道传输。

②互斥性。当需要建立通道传输A类型数据时,如果有通道在传输与A互斥的其他类型数据,则设备会先断开这些通道(前提是这些通道可被中断;如果不可中断则A类型数据不能传输,直接返回失败)。

③可中断性。某些类型数据在传输中不允许被中断,否则可能引起严重后果。例如远程升级,当升级包在传输中时中心又请求传输其他互斥的类型数据,设备只能拒绝请求。

车载机设备在建立媒体通道后必须先发送1条媒体通道注册指令,表明即将传输的数据类型及其参数。数据传输完毕后要即时关闭,否则服务器可能会不堪重荷。另外,理论上来说,控制指令应该全部走信令通道,媒体数据应该全部走媒体通道[3]。

绝大多数中心下发的指令都需要设备给出应答,中心根据应答来确认指令是否被设备收到,对于设置指令可以判断设置是否成功,对于读取指令可以读取到内容。少数设备上传的指令也需要中心给出应答。

媒体通道的注册登陆流程与信令通道有差异。当设备需要传输媒体数据时就发起连接,如果连接建立失败,则通过信令通道发送1条链路建立失败通知指令,间隔20 s后重新发起连接。本步骤最多重复3次,3次后如果依然无法连接,则再通过信令通道发送1条会话结束通知指令,会话流程就此结束。否则,连接建立成功后立即发送1条带有会话ID的注册指令(注意此注册指令和对其的应答是通过新建立的媒体通道传输,而不是信令通道),中心收到后通过判断序列号来判断设备合法性:如果序列号在中心车辆数据库里存在,则保存会话ID为有效的会话ID并返回1条应答指令,应答内容为通过注册;如果序列号在中心车辆数据库里不存在,或者指令的格式根本就是错的,也返回1条应答指令,应答内容为注册失败及其原因,发送成功后主动关闭 socket,发送不成功则尝试重发,最多3次,然后主动关闭socket。

如果设备收到应答,判断是否注册通过。如果通过则通过信令通道发送1条会话开始通知指令,否则应断开socket,并通过信令通道发送 1条会话结束通知指令;如果设备在10 s内还没有收到应答,重新发送注册包。本步骤最多重复3次,3次后如果依然没收到中心应答,则通过信令通道发送1条会话结束通知指令。设备还可在外围设备(如显示屏)上醒目显示登陆是否成功、失败原因等诊断信息。

会话开始后数据开始传输(单向的上传、下载或者双向传输都可以)。此过程中,中心和设备收发的指令,凡是与此会话有关的,其会话ID字段都必须与中心和设备保存的此会话ID一致,直到会话结束[4]。会话结束后,中心和设备都要抛弃或清除此会话ID,即此会话 ID无效,如果再收到带有此会话ID字段的指令都要应答失败或忽略。

2 协议软件设计架构

在NetStart()函数中进行网络拨号连接,直到RegisterProc()向服务器发送注册包及收到中心的注册应答包,信令链路注册成功。GetCMSMsgFromWireless()函数处理来自中心的指令,并给出应答。比如:中心下发1条开始实时预览指令,此函数收到指令后进行解析,开始媒体链路的连接,注册媒体通道,并开始视频线程的动作。CMS_CommandHandle()处理收到的相关指令,对不同的指令进行相应的处理动作。SendCmdM sgToNet()将设备给中心的应答数据包或设备主动上报的数据包发送出去。

整套协议中,服务管理类及派生类大体框架如图3所示,其中,粗箭头指的方向为派生类,细箭头所指方向为类中指向该类的数据成员。

图3 协议类管理架构图

3 小 结

本通信协议利用3G无线传输模块实现车内实时视频上传的车载项目,在C/S架构的车载机移动视频监控系统中得到应用。其优点主要体现在控制指令数据与媒体数据分开,媒体业务数据在车载机设备与客户端之间直接进行传输,无需中心服务器进行媒体数据中转服务,极大降低服务器的负荷,在3G无线网络通信中能满足对网络通信实时性和同步性的苛刻要求。

[1]罗佳.基于Yahalom协议终端间视频通信实现[J].通信技术,2009(2).

[2]梅创社.基于GSM手机模块在车载防盗系统中的应用研究[J].计算机应用与软件,2007(5).

[3]孙天泽,袁文菊.嵌入式设计及 Linux驱动开发指南[M].北京:电子工业出版社,2005.

[4]刘淼.嵌入式系统接口设计与 Linux驱动程序开发[M].北京:北京航空航天大学出版社,2006.

猜你喜欢

机设备信令车载
一种车载可折叠宿营住房
凭借产品和服务,中渔科技年销售额增长超200%! 智能渔机设备将迎来一个美好机遇
高速磁浮车载运行控制系统综述
SLS字段在七号信令中的运用
移动信令在交通大数据分析中的应用探索
基于信令分析的TD-LTE无线网络应用研究
浅谈煤炭生产企业综机设备管理问题与优化策略
智能互联势不可挡 车载存储需求爆发
陶瓷工程中冷等静压机设备的监造工作
LTE网络信令采集数据的分析及探讨