liudashuai99的专栏

首页博文目录订阅
正 文

今天破解了M241的通讯协议

(2012-4-18 08:54)

只差数据存储结构没有破解

 

Holux m241 通讯协议
M241支持两种命令1 MTK定义的命令以$PMTK开头,2Holux自己定义的设备命令以$HoLux开头
各命令都以回车和换行结束,即\#13\#10
命令中*以后的数据异或校验和,需要校验的数据是从$后面开始的第一字符至*前的字符
整个命令都是ASCII码,例如:810,实际发送的是38 31 30


PC ->241           $PHLX810*35\#13\#10                    查询记录器的名字
M241->PC           $PHLX852,GR241*3D\#13\#10              回答记录器的名字
                   $PMTK001,-1,0*1F\#13\#10

PC ->241           $PMTK182,2,1*3A\#13\#10                查询记录器状态
M241->PC           $PMTK182,3,1,1*26\#13\#10              SPI状态,RDY准备好,SPI接口连存储器
                   $PMTK001,182,2,3*25\#13\#10            回答182号命令,2,3(有效命令执行失败\成功)

PC ->241                $PMTK400*36\#13\#10; API_Query_Fix_Ctl
M241->PC               $PMTK500,1000,0,0,0.0,0.0*1A\#13\#10;
                   说明:Packet Meaning:These parameters control the rate of position fixing activity.
                   DataField:FixInterval: Position fix interval. (msec). [ >= 200]


PC ->241                $PMTK182,2,3*38\#13\#10                QUERY LOG STATUS 3:sec,查询记录器多少秒存储一次
M241->PC               $PMTK182,3,3,100*24\#13\#10            10sec(0.1秒为单位)
                   $PMTK001,182,2,3*25\#13\#10            回答182号命令,2,3(有效命令执行失败\成功)


PC ->241                $PMTK182,2,4*3F\#13\#10                QUERY LOG STATUS 4:dis,查询距离
M241->PC               $PMTK182,3,4,500*27\#13\#10            回答距离50m(单位0.1m)
                   $PMTK001,182,2,3*25\#13\#10

PC ->241                $PMTK182,2,6*3D\#13\#10; RCD METHOD    查询rcd模式,存储器满之后如何处理
M241->PC               $PMTK182,3,6,2*22\#13\#10              回复rcd模式, 1: OVP(覆盖) 2: STP(停止)
                   $PMTK001,182,2,3*25\#13\#10

PC ->241                $PMTK182,2,8*33\#13\#10                查询RCD地址,下个地理点记录的flash地址
M241->PC               $PMTK182,3,8,000002DC*1B\#13\#10       回复ADDR ,000002DC(根据地理点数据多少不同,由此可以获得剩余存储容量)
                   $PMTK001,182,2,3*25\#13\#10

PC ->241                $HOLUX241,1*6C\#13\#10                                 屏幕上log消失,usb图标出现,进入USB联机时给液晶屏显示用
M241->PC               ======ShowTLog_Destructor========\#13\#10              log消失
                   ======USB_Constructor========\#13\#10                  usb符号显示
                   $HOLUX001,1*6A\#13\#10                                 估计是对1号命令的回答
                   $PMTK001,-1,0*1F\#13\#10                                Acknowledge of PMTK command,不清楚意思,凡是机器定义的通讯协议($HOLUX开头)执行完毕都会返回此回答
                   说明:PC发完这条指令之后,以上会暂停从串口输出gps数据,不加操作,延时10秒左右又会输出GPS数据

PC ->241                $HOLUX241,3*6E\#13\#10                  询问固件版本
M241->PC               $HOLUX001,3,113*77\#13\#10              回答固件版本113
                   $PMTK001,-1,0*1F\#13\#10                不清楚应该是Acknowledge of PMTK command,-1命令,无效命令


PC ->241                $HOLUX241,7*6A\#13\#10                  询问硬件版本
M241->PC               $HOLUX001,7,02*42\#13\#10               回答硬件版本02
                   $PMTK001,-1,0*1F\#13\#10                不清楚应该是Acknowledge of PMTK command,-1命令,无效命令

 

PC ->241                $PMTK182,2,9*32\#13\#10                  询问FLASH ID
M241->PC               $PMTK182,3,9,C22015C2*19\#13\#10         回答ID C22015C2(更象是URAT_USB的型号)
                   $PMTK001,182,2,3*25\#13\#10


PC ->241                $PMTK182,2,8*33\#13\#10                  询问RCD地址
M241->PC               $PMTK182,3,8,000002DC*1B\#13\#10         回答RCD地址000002DC
                   $PMTK001,182,2,3*25\#13\#10


PC ->241                $HOLUX241,5*68\#13\#10                   询问M241->PC的使用者ID
M241->PC               $HOLUX001,5,liuyuhong_HHUC*79\#13\#10    回答,liuyuhong_HHUC
                   $PMTK001,-1,0*1F\#13\#10


PC ->241                $PMTK182,7,1F0000,14*50\#13\#10          读GPS地理点记录,开始地址(1F0000),读取长度(40个)
M241->PC               $PMTK182,8,001F0000,FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF*5A\#13\#10        回答记录开始的地址和数据
                   $PMTK001,182,7, 3*20\#13\#10有效命令
                  
                   注:是否1F0000内有特殊内容,不知道
                   读轨迹数据同以上命令,只是起始地址和长度不同而已,每800H个形成一个回答,如若没有传输完毕,再次来一个回答,最后回答$PMTK001,182,7, 3*20\#13\#10有效命令
                   以上其实就是读地理记录的命令

PC ->241                 $HOLUX241,8*65\#13\#10                    //不清楚
M241->PC                $HOLUX001,8,0*7F\#13\#10                  回答0
                    $PMTK001,-1,0*1F\#13\#10


PC ->241                 $HOLUX241,10*5C\#13\#10                   询问时区
M241->PC                $HOLUX001,10,+08:00*6F\#13\#10            回答+8:00
                    $PMTK001,-1,0*1F\#13\#10


PC ->241                 $HOLUX241,11*5D\#13\#10                   不清楚
M241->PC                $HOLUX001,11,0*47\#13\#10                  回答0
                    $PMTK001,-1,0*1F\#13\#10


PC ->241                 $HOLUX241,6*6B\#13\#10                      维持USB联机状态,否则延时一段时间后自动返回输出gps数据状态,每隔一段时间就发一次
M241->PC                $PMTK001,-1,0*1F\#13\#10                    回答无效命令


PC ->241                 $HOLUX241,2*6F\#13\#10                      初始化命令,退出与USB的连接用
M241->PC                $HOLUX001,2*69\#13\#10                      回答2号命令
                    $PMTK001,-1,0*1F\#13\#10                    此时关闭串口,后面的回答其实PC软件已收不到
                    ===                                         显示液晶等初始化信息,应该是调试程序留下的
                    $PMTK010,001*2E //回应系统启动
-----------------以上是我分析的----------------以下从网上抄来的------------------------------


PC ->241         $HOLUX241,4,SleepyCat1224*20\#13\#10          给M241写入使用者名字SleepyCat1224                                             

PC ->241         $PMTK182,1,6,1*23\#13\#10                     设置存储模式为 覆盖
 
PC ->241         $PMTK182,1,6,2*20\#13\#10                     设置存储模式为 记录满停止
 
PC ->241         $PMTK182,1,3,100*26\#13\#10                   设置记录时间间隔为 100*0.1s=10S
 
PC ->241         $PMTK182,1,4,500*25\#13\#10                   设置记录距离间隔为50公尺
 
PC ->241         $HOLUX241,9,0*78\#13\#10                      以时间方式记录地理信息
 
PC ->241         $HOLUX241,9,1*79\#13\#10                      以距离方式记录地理信息     
 
PC ->241         $PMTK182,6,1*3E\#13\#10                        擦除记录

评 论
3楼 52RD网友 发表于 2013-9-2 14:29 回复
官方文档很详细的,不用这么麻烦
2楼 gigawave202 发表于 2012-4-20 07:14 回复
good enough
1楼 wusanshou 发表于 2012-4-19 23:30 回复
这个应该不难吧
博 主
进入liudashuai99的首页
博客名称:liudashuai
日志总数:2
评论数量:3
访问次数:2193
建立时间:2012-4-18 08:52
导 航
公 告
评 论
52RD网友官方文档很详细的,不用这么麻烦(9-2)
gigawave202good enough(4-20)
wusanshou这个应该不难吧(4-19)