GPS车载机协议规程本文件不是单纯的技术文件,它首先是公司、市场负责人制定市场策略的技术依据,是了解用户需求后做系统方案时完全的功能依据。如果你觉得你的领导没有意识到这一点,请向他(她)报告或转达,如果他总是认为这只是技术人员的事情,我们建议你递交辞职报告,因为这样的公司尤其是大公司十之八九都已经倒闭了。请务必认真、反复阅读本文件全文,必须清楚,这是你的而不是我们的协议,我们只与我们认为有能力、并愿意花足够时间认真研究并透彻理解本文件的技术人员或公司合作。那些采用搜索、摘录等方式寻求突击解决问题,或提出那些我们认为在协议中已经清楚的提及的问题以至浪费你我宝贵时间的做法,以及其他足以证明你不愿意下足够功夫的做法,都会严重损害我们对你及你所在公司的信心。细心的你会发现本协议的条理不是那么完美,这是我们有意安排的障碍或测试,让急功近利者望而却步,当你功夫下到之后你就会赞同那些已经认真读懂了协议的人的看法:本协议中该有的东西实际上都有。本文件是对车载机所能完成功能的最完整、清晰的描述,凡是在本文件中描述的命令都是已经在车载机中实现的。本文件版权归珠海天禾信息科技有限公司所有,珠海天禾信息科技有限公司允许对本文件的自由拷贝、复制、传播、引用。珠海天禾信息科技有限公司2002年9月发布概述本文件是一份描述我公司生产的GPS车载机与监控中心系统之间通信协议的文件。本文件包含了我公司生产的所有系列GPS车载机与监控中心系统之间的通信协议,也是唯一的关于车载机与监控中心系统之间通信协议的文件。文件中包含了语音通道、短信通道、GPRS通道等各种传输方式下的通信协议。涉及到车载机与其它附属设备之间的通信协议在其它文件中描述。凡是在本文件中描述的命令都是已经在车载机中实现的,本文件是对车载机所能完成功能的昀完整、清晰的描述。目前我公司生产六个系列的GPS车载机产品:1、安防型,主要设计用于安防功能,采用语音通道、短信通道与监控中心系统通信,其通信协议为本文件的第一、第二、第三部分。2、物流调度型,设计用于安防、物流、调度等应用,采用短信通道与监控中心系统通信,其通信协议为本文件的第二、第四部分。3、GPRS型,包含了物流调度型的全部功能及通信协议,设计用于安防、物流、调度等应用,采用短信通道、GPRS通道并行与监控中心系统通信,其通信协议为本文件的第二、第四、第五部分。4、GPRS增强型,在GPRS型基础上增加了行车记录仪、道路检测器、图像传输等功能,其通信协议为本文件的第二、第四、第五、第六部分。5、新物流系列,分别在物流调度型、GPRS型础上增加了中控锁、警号控制输出,用以取代安防型、物流调度型、GPRS型车载机。通信协议为本文件的第二、第四、第五、第六、第七部分。6、天骄系列,在以上系列产品中增加了一些热点功能如油量检测等,通信协议为本文件的第二、第四、第五、第六、第七、第八部分。本协议会根据新产品的发布及现有产品的功能升级而不断升级,用户应经常查询协议是否进行了升级,本文件每部分的昀后是协议更改记录,用户每次收到新协议时应首先查看更改记录,并与以前的版本比较,以明确协议的升级情况,为方便查找,每次协议昀新更改的部分将以红色字体显示。为保证向下兼容,协议的升级仅限于新命令、新功能的增加,已有的命令不会更改。2第一部分:语音通道通讯协议(V1.20)一、通讯方式:车载机与中心握手及命令均以中心发命令,车载机应答的方式进行。二、编码方式:信息内容以DTMF(双音多频)方式编码传输,DTMF编码可以传送16个字符,分别是0、1、2、3、4、5、6、7、8、9、*、#、A、B、C、D,其对应表示的16进制半字节值分别是:0xA、0x1、0x2、0x3、0x4、0x5、0x6、0x7、0x8、0x9、0xB、0xC、0xD、0xE、0xF、0x0。信息中的数字直接以0-9字符表示,而信息的校验运算、(密码)长度表示以及状态信息的bit编码则是以字符的16进制值进行。三、命令识别标志:中心命令以CC开始,以#结束,可以只发一个C代替CC,每条命令字符之间间隔不能超过500毫秒,否则车载机会清空命令区,此时只能重新开始传送。四、应答方式:车载机收到命令后根据不同情况产生四种应答:1、普通应答:AA2、临时应答:BB3、命令错误:CC4、命令已经执行:DD五、通讯状态及握手方式:1、车载机与中心建立语音通道后通讯状态有两种a、握手状态,握手状态只接收要求序列号和输入密码命令,若试图发送控制命令将收到CC应答。握手状态下若发生车载机向中心报警的情况,车载机会立即直接转为命令状态,这样的情况有两种:一是查车中刚好产生报警;二是查车发生在两轮报警中间,查车进行中到了下一轮报警时间。b、命令状态,命令状态下车载机可以接受或执行中心的所有命令。在命令状态下试图输入错误的密码将导致返回握手状态。2、语音通道的建立及握手方式:a、中心查车中心拨打车载机电话,车载机振铃识别出中心号码会主动摘机,并发送AA,之后进入握手状态。b、车载机向中心报警:车载机拨号后直接进入命令状态,中心摘机后即可发送各种命令。为防止意外断线,中心应立即发要求密码命令取回密码。(为保护用户隐私,若用户修改了密码而不通知中心,中心主动查车时是无法进入命令状态的)六、中心命令集:1、CC0#:要求序列号,应答:无条件XXXXXXXXXXY#ZZZDD,XX是10位序列号,Y是异或校验和,#是分隔符,ZZZ是软件版本号,DD是结束标记。2、CC1#:要求密码,应答:a、握手状态:CC。b、命令状态:XXXXXXYDD,XX是密码,Y是长度1-16(长度是16时Y=0即字符”D”),若没有密码则直接返回DD。3c、SV220版本软件无论何种状态无条件返回密码。3、CC2XXXX#:中心送用户密码,应答:a、打入车载机查车时:密码错误CC,返回握手状态。密码正确DD,进入命令状态。b、车载机报警打出时:密码错误BB,维持命令状态。密码正确DD4、CC3#或*:要求发送定位信息,应答:a、握手状态:CC。b、命令状态:定位信息+DD。5、CC4#:启动声光报警,应答:a、握手状态:CC。b、命令状态:DD并启动声光报警。6、CC5#:切断电路油路,应答:a、握手状态:CC。b、命令状态:先启动声光报警返回BB,车载机语音倒计时返回秒数:15,14,13...02,01,DD并切断电路油路,若在收到DD前中心挂机将不会执行切断电路油路。7、CC6#:启动监听功能,应答:a、握手状态:CC。b、命令状态:DD并进入监听状态。8、CC7#:关闭监听功能,应答:无论何种状态均为DD若已经监听则关闭。9、CC8#:关闭车锁,应答:a、握手状态:CC。b、命令状态:DD并关门,若已经关门则不动作。10、CC9#:打开车锁,应答:a、握手状态:CC。b、命令状态:DD并开门,若已经开门则不动作。11、CCA#:解除报警,应答:a、握手状态:CC。b、命令状态:DD并解除报警(恢复电路油路,清除所有报警状态)。12、CCB#:发送状态信息,应答:a、握手状态:CC。b、命令状态:发送状态信息。第一个字符报警状态,第二个是车辆状态。所有命令执行完毕之前不接受新的命令,一律应答CC不能识别的命令应答CC七、定位信息表示方式:XX#YYMZZZZASJJNIIKRRRRAPPPASDDXX--纬度的度#--分隔符#YY--纬度的分M--分隔符,北纬为#,南纬为*ZZZZ--纬度的秒A--分隔符AS--纬度异或校验和JJ--经度的度N--分隔符,经度100为#,否则为*II--经度的分4K--分隔符,东经为*,西经为#RRRR--经度的秒A--分隔符APPP--速度,单位:公里/小时,注意:短消息通道中单位是节A--分隔符AS--纬度以后数据校验和DD--应答八、状态信息表示方式:WXYZDDWX:报警状态YZ:车辆状态以下bit表示方法均为正逻辑即bit=1有效,例如Y=0x0B=1011(字符*),表示允许通话接听、允许通话打出、GPS处于导航状态。W--bit3:非法点火报警--bit2:超速报警(目前没有使用)--bit1:非法移动报警(目前没有使用)--bit0:电池拆除报警X--bit3:越界报警(目前没有使用)--bit2:紧急按钮报警--bit1:密码错误报警--bit0:非法开车门报警Y--bit3:允许通话接听--bit2:声光报警--bit1:允许通话打出--bit0:导航Z--bit3:切断电路--bit2:发动机处于运转状态--bit1:车门为开门状态(不是中控锁而是车门)--bit0:车辆处于设防状态(预警或警戒)九、中心查车过程:1、中心拨号2、车载机识别出中心号码会自动摘机,同时发送AA应答,并进入握手状态3、中心发送密码,若密码正确返回DD车载机进入命令状态4、中心发送各种命令获得信息或进行控制5、中心挂机结束查车6、车载机不会自己挂机,必须中心主动挂机。7、不论握手或命令状态,都不存在车载机向中心主动发送信息的协议,任何信息都只能由中心命令车载机发送过来。因此,一旦拨号接通,中心应不断发送命令,不应停顿浪费时间。十、报警过程:1、车载机发生报警,自动拨打中心号码2、中心摘机,车载机自动进入命令状态(中心不须送密码)3、为防止断线后中心无法再次查车(用户修改密码且不告诉中心以保护隐私),中心应首先发送一条读密码命令CC1#将密码取回54、中心发送各种命令获得信息或进行控制5、中心挂机结束查车6、车载机不会自己挂机,必须中心主动挂机。7、不论握手或命令状态,都不存在车载机向中心主动发送信息的协议,任何信息都只能由中心命令车载机发送过来。因此,一旦拨号接通,中心应不断发送命令,不应停顿浪费时间。十一、注意:由于使用无线信道,DTMF质量很难保证,昀好使用质量比较好的电话卡,同时软件上要进行纠错处理1、硬方式纠错:出错大部分是掉码,DTMF音200MS一个,依此判断何处掉码,再根据校验和恢复。2、软方式纠错:位置不能突变,可根据前面的数据判断新的数据是否合理并进行修正。3、实际使用证明,通信质量较差的情况下,掉码是非常频繁的,纠错是软件处理中最重要的环节,不进行纠错处理,结果是无法使用的。十二、语音通道数据传输提供了可靠的报警、查车功能,虽然它的费用相对高一些,当发生紧急情况例如偷车、劫持时,处理要求是不惜代价的,此时必须使用语音通道提供实时、可靠的信息传递和控制功能,这种情况出现次数极少(一年也不一定有一次),平时使用短消息方式查车,并不会增加费用。十三、通信服务软件处理方式:进入命令状态后,中心软件应不停发送命令查车,因为语音通道一旦接通是按时间收费的,为昀大限度提高流量特别设置了“*”命令回传位置信息,一般中心采用通信服务器架构,通信服务软件可采用状态机方式,中心主动查车时推荐的状态转移如下:1、拨号后状态机进入拨号状态并启动超时定时器。2、收到“AA”后发送密码,进入送密码状态并启动超时定时器。3、收到“DD”进入空闲状态,清零超时定时器,清零位置传送计数器。4、收到“CC”进入错误状态,启动超时定时器,报告上层密码错误,等待上层命令,若超时则挂机。5、每次空闲状态超过200mS,发送“*”启动位置传送,进入传位置状态并启动超时定时器,清零位置传送计数器。6、收完一帧位置信息后进入空闲状态,清零超时定时器,将位置传送计数器+1,将实时位置信息传给上层(如GIS服务器),这样只要接通车载机,GIS就实时显示车辆轨迹。7、每隔若干次位置传送(位置传送计数器=N,一般选N≥5,否则影响位置信息的实时性),插入一次车辆状态传送,进入传车辆状态的状态并启动超时定时器,收到车辆状态回码后进入空闲状态,清零超时定时器,清零位置传送计数器,并将状态信息传给上层,这样只要接通车载机,GIS就实时显示车辆状态。8、特别注意:每次收到车辆状态,上层软件必须检查是否有报警位,因为若中心查车时发生报警车载机不会挂断重拨,也不会主动发送信息,只会在中心查询状态时发给中心。若不插入车辆状态传送则查车时发生报警中