精华内容
下载资源
问答
  • 北斗协议解析

    2017-10-07 11:31:13
    (GNSS)接收机测量型 OEM 板性能要求及测试方法、(GNSS)接收机差分数据格式1、(GNSS)接收机差分数据格式2、(GNSS)接收机射频集成电路通用规范.pdf、北斗-全球卫星导航系统(GNSS)接收机.pdf、北斗卫星导航...
  • 北斗短报文协议,简称RDSS协议,最早是4.0版本,但是因为使用起来比较困难,所以在2015年前后推出了更加完善易用的2.1协议。 RDSS 2.1协议的语句都是以美元符号"$"开始,以回车换行符\r\n结束。 主要使用到下面五条...

    北斗短报文协议,简称RDSS协议,最早是4.0版本,但是因为使用起来比较困难,所以在2015年前后推出了更加完善易用的2.1协议。
    RDSS 2.1协议的语句都是以美元符号$开始,以英文字符,和*为分隔符,以回车换行符\r\n结束。主要使用到下面五条指令:
    一、读取卡号
    1,使用单片机往RD模块发送这条语句:$CCICA,0,00*7B\r\n
    “CCICA”--读取北斗卡号的指令关键字。
    “0”--监测本机加解密模块信息(不重要)
    “00”--下属用户信息帧号(不重要)
    “7B”--异或校验字节。将$到*(不包括$和*)之间的全部字节进行异或得到一个校验字节,然后转化成16进制数,取这个16进制数的高4位和低4位。比如校验字节转化成16进制数后是0X07,则这里就写07,不能省略0。

    2,RD模块回复给单片机,比如 :$BDICI,0242286,00242286,0000011,6,60,3,N,0*38\r\n
    “BDICI”--指令关键字。
    “0242286”--北斗卡号,7位数字。
    “00242286” --序列号(不重要)
    “0000011” --通播地址(不重要)
    “6” --标识用户特征。(不重要)0表示指挥机,1表示一类用户机,2表示二类用户机,3表示三类用户机,4表示指挥型用户机(进行身份认证),5表示一类用户机(进行身份认证),6表示二类用户机(进行身份认证),7表示三类用户机(进行身份认证)。
    “60” --北斗卡的服务频度,这里60表示这张北斗卡每隔60秒发一次。
    “3” --通信等级(不重要)
    “N” --加密标志。(不重要)E表示加密,N表示非加密。
    “0” --下属用户数。(不重要)一般是0。
    “38”--异或校验字节。

    注意,如果没有检测到北斗卡,则RD模块回复的语句是:
    $BDICI,0000000,00000000,0000000,0,0,0,N,0*0B

    二、读取信号状态
    1,使用单片机往RD模块发送这条语句:$CCRMO,BSI,2,0*26\r\n
    “CCRMO”--指令关键字。
    “BSI”--默认参数(不重要)
    “2”--打开指定语句(不重要)
    “0”--语句的输出频度。0表示只输出1次。1表示每隔1秒输出1次。
    “26”--异或校验字节。

    2,RD模块回复给单片机,比如 :$BDBSI,08,01,4,4,0,0,1,0,1,4,0,0*53\r\n
    “BDBSI”--指令关键字。
    “08”--响应波速(读者不用纠结什么叫响应波速,不重要)
    “01”--时差波速(读者不用纠结什么叫时差波速,不重要)
    接下来的是10个波速的信号值。0最弱,4最强。有一个波速为4则表示信号较好,可以用于申请定位和发送消息。
     “53”--异或校验字节。

    三、申请定位
    RDSS定位属于有源定位,精度是100米。而北斗的无源定位精度一般是5米内。
    所以一般不把RDSS定位作为主要定位方式,而是采用RDSS作为通信,采用北斗无源定位模块作为定位。

    1,使用单片机往RD模块发送这条语句:$CCDWA,0000000,V,1,L,,0,,,0*65\r\n
    “CCDWA”--指令关键字。
    “0000000”—默认用这个(不重要)
    “V”—普通定位(不重要)
    “1”—无高程(不重要)
    “L”—普通高程指示(不重要)
    “0”—天线高度,默认用0(不重要)
    “0”—申请频度。默认用0表示只申请一次定位。
    “65”--异或校验字节。

    2,RD模块会回复单片机指令是否成功执行,比如 :$BDFKI,DWA,Y,Y,0,0060*0A\r\n
    “BDFKI”--指令关键字。
    “DWA”--关键字
    “Y”--Y表示指令执行成功,N表示指令执行失败。 
    “Y”--Y表示频度设置成功,N表示频度设置失败(不重要)
    “0”--发射抑制提示(不重要)
    “0060”--频度等待时间。表示多少秒后才能再次重新发送。
    “0A”--异或校验字节。

    3,在几秒之内,卫星就会回复定位信息给RD模块,然后RD模块就会输出语句给单片机,比如:$BDDWR,1,0242286,021549.65,2240.4051,N,11402.5601,E,47,M,-3,M,1,V,V,L*1F\r\n
    “BDDWR”—定位回复指令。
    “1”--定位信息类型(不重要)
    “0242286”--用户地址ID 
    “021549.65”—定位时间UTC。把最前面的02加上8,就是东8区的北京时间。
    “2240.4051”—纬度
    “N”—纬度方向。
    “11402.5601”—经度
    “E”—经度方向。
    “47”—大地高度
    “M”—大地高度的单位,M表示米。
    “-3”—高程异常(不重要)
    “M”—高程异常的单位,M表示米(不重要)
    “1”—1表示定位精度100米,0表示定位精度20米。
    “V”—V表示非紧急定位,A表示紧急定位。(不重要)
    “V”—V表示非多值解,A表示多值解。(不重要)
    “L”—L表示高程类型为普通,H表示高程类型为高空(不重要)
    “1F”--异或校验字节。

    四、收发信息
    一般使用混合编码模式和代码编码模式。
    以混合编码模式为例,电文首字母固定为“A4”,按照先后顺序将每个字符转换成16进制数大写。
    如果16进制数不大于16,就在高位补0。
    英文用一个字节表示,汉字用两个字节表示。比如,要发送信息“hello北斗”:
    1,使用单片机往RD模块发送这条语句:$CCTXA,0242286,1,2,A468656C6C6FB1B1B6B7*7F
    “CCTXA”--指令关键字。
    “0242286”—收件人地址ID 
    “1”—1表示普通通信,0表示特快通信
    “2”—2表示混合编码,1表示代码编码,0表示汉字编码
    “A4…….”—电文内容。比如h的十六进制数是68。
     “7F”--异或校验字节。

    其中,
    A4算一个字节,是混合编码的标识,后面可以跟77个字节的用户内容。
    68656C6C6FB1B1B6B7算9个字节,这些用户内容是GBK编码,用户也可以采用UNICODE编码,只要在接收端也采用UNICODE解码即可。
    如果是采用代码编码,去掉A4,上面的发送语句就是:$CCTXA,0242286,1,1,68656C6C6FB1B1B6B7*09
    代码编码方式也是很主流的应用,可以发送78个字节的用户内容。
    而混合编码因为需要A4这个字节做标明,所以就只能发送77字节的用户内容。

    2,RD模块会回复单片机指令是否成功执行,比如 :$BDFKI,TXA,Y,Y,0,0060*15\r\n
    “BDFKI”--指令关键字。
    “TXA”—通信申请的关键字
    “Y”--Y表示指令执行成功,N表示指令执行失败。 
    “Y”--Y表示频度设置成功,N表示频度设置失败(不重要)
    “0”--发射抑制提示(不重要)
    “0060”--频度等待时间。表示多少秒后才能再次重新发送。
    “15”--异或校验字节。

    3,如果设置的收件人地址ID是自己,所以在几秒之内,卫星就会转发信息给RD模块,然后RD模块就会输出语句给单片机,比如:$BDTXR,1,0242286,2,, A468656C6C6FB1B1B6B7*46\r\n
    “BDTXR”—通信回复指令。
    “1”—1表示普通通信(不重要)
    “0242286”—发信人地址ID 
    “2”—2表示电文形式是混合传输,1表示代码传输,0表示汉字传输 
    “A4……”—电文内容
    “1F”--异或校验字节。

    如果发送端是用代码编码,那么接收端收到后输出的语句也是代码编码格式:
    $BDTXR,1,0242286,1,, 68656C6C6FB1B1B6B7*10\r\n

    4、用户使用北斗短报文发送信息时,内容既可以是英文数字,也可以是汉字,还可以是16进制数。
    最多可以发送78个进制数/英文/数字,或者39个汉字。



    五、获取当前时间

    RDSS能获取时间,是因为北斗短报文卫星一直在向地面广播信号和时间。所以获取时间和获取信号一样,都不会占用北斗短报文的发送频度。

    1,使用单片机往RD模块发送这条语句:$CCRMO,ZDA,2,0*21\r\n
    “CCRMO”--指令关键字。
    “ZDA”--默认参数(不重要)
    “2”--打开指定语句(不重要)
    “0”--语句的输出频度。0表示只输出1次。1表示每隔1秒输出1次。
    “21”--异或校验字节。
    2,RD模块回复给单片机,比如 :$BDZDA,1,005407.00,29,09,2019,-8,00,0,0,Y*04\r\n
    “BDZDA”--指令关键字。
    “1”--模式指示。1是RDSS定时结果,2是RNSS定时结果
    “005407.00”--UTC时间 
    “29”--日
    “09”--月
    “2019”--年
    “-8”--时区。通常以负值表示东经,靠近国际日更线的地区除外。所以-8表示东8区
    “00”--本时区分钟差(不重要)
    “0”—定时修正值(不重要)
    “0”—精度指示。0是未检测,1是0-10纳秒,2是20-20纳秒,3是大于20纳秒
    “Y”—Y是信号锁定,N是信号未锁定。
    “04”—异或校验字节

    完整资料下载链接: https://pan.baidu.com/s/1npe3_RNuHKFYFYAXYMQJmw 提取码: 9m47

    展开全文
  • 北斗导航协议4.0版

    2018-05-30 14:23:34
    包含很详尽的北斗4.0传输协议接口的数据要求,主要包括北斗的接口形式,接口信号定义,接口数据传输约定,接口数据传输各种详尽的协议
  • 北斗2.1通信协议

    2016-09-20 17:15:22
    北斗通信协议2.1版本
  • 北斗车载终端协议

    2015-03-27 12:49:36
    北斗车载终端协议,在JT808协议上扩展的
  • 北斗一串口协议4.0

    2017-04-16 21:25:15
    北斗一串口协议4.0
  • 北斗一代通信4.0协议

    2016-12-20 22:52:26
    北斗一代通信4.0协议
  • 北斗 两星 协议 解析

    热门讨论 2012-04-28 14:13:17
    北斗 两星 协议 解析 主要的信息是:功率检测信息和定位信息 不光有协议,还有C#测试代码
  • 北斗兼容车载终端通讯协议技术规范_808最新协议 北斗兼容车载终端通讯协议技术规范_808最新协议
  • c#北斗终端设备与平台通信协议(JTT808协议),高性能数据协议封包和解包库
  • 北斗部标808协议解析说明示例

    万次阅读 热门讨论 2018-09-20 14:58:38
    北斗部标808协议解析说明示例 1.背景 实习的时候接触到北斗部标的808协议,有一次对接项目时对方说收到的数据中显示车辆的速度是400千米/时,这是肯定不对的,于是从原始数据本身入手,手动解析一下试试。 2.格式...

    北斗部标808协议解析说明示例

    0. 最新更新
    最新文章地址:链接: 最新文章地址.
    增加了HTML解析。打开上面的链接,里面有可以下载编写好的HTML文件。
    在这里插入图片描述
    注意:目前这个只支持2011版,2019版本我这里没有任何真实数据和说明文档。

    展开全文
  • 北斗4.0的二进制协议不好用,更多使用2.1协议,这个与NMEA标准兼容,这一章了解命令的基本构成。

    上一章介绍了简短的几行C#代码,从串口读取北斗数据的方法。

    这一章需要介绍一下北斗数据接口的基本协议,也就是类似下面的命令的含义。

    $CCICA,0,0*4B\r\n
    

    网上有很多比较早的代码是基于北斗4.0的协议,那个协议是一种二进制协议,编程人员需要认真准备数据中的每一个bit,如果出错,调试会极为困难。

    所以后来出现了2.1协议,这个协议是文本协议,北斗终端中的芯片负责把它们转换成二进制,实际内部传输的仍是二进制,但编程起来更加容易,所以新的北斗终端都会支持2.1协议。

    关于这个2.1协议,北斗官网上曾经公开过一份文档《北斗卫星导航系统用户终端通用数据接口(预)》,发布日期为2014年8月,后来这个资料被撤下了,但还能从其它地方找到,只是文档中有许多错误。

    北斗指令

    北斗指令以$开始(据说也可以是叹号!,但我现在还没遇到),然后是5个字符的指令代码,后面有多个参数,用逗号分隔,*表示指令结束,hh是校验码,最后是回车换行符,十六进制为0x0D和0x0A。

    $CCICA,0,0*4B\r\n
    

    指令代码为5个字符,前2个字符为发送器(信源)的标识符,后3个字符为语句标识符。

    前2个字符的定义见下表:

    标识符发送器(信源)数据类型
    BD北斗导航定位系统(BDS)
    GP全球定位系统(GPS-global positioning system)
    GN全球导航卫星系统(GNSS-global navigation satellite system)
    GLGLONASS系统
    GA伽利略系统
    CC计算机系统

    后面3个字符的定义可参考《北斗卫星导航用户终端通用数据接口2.1协议》,不同的北斗厂商又增加了不同的自定义语句。

    例如:CCICA、BDICI、BDGGA、GPGGA、GNGGA、GPGSA、CCRMO、CCTXA、BDFKI都是常用的指令。

    校验码生成规则

    hh校验码是$ 和*之间(不含$和*)所有字符的异或,然后用两个16进制大写字符表示,C#代码如下。

    byte sum = 0;
    foreach (char c in bdstr)
    {
        if (c == '$' || c == '!') continue;
        if (c == '*') break;
        sum ^= (byte)c;
    }
    return sum.ToString("X2");
    

    下面以$CCICA指令为例,说明校验码的生成过程。

    在这里插入图片描述
    根据这个规则,你可以自行验证一下,下面这行命令的校验码。

    $BDICI,0925867,2204536,1934946,6,60,3,N,0*0F
    

    实现一个小功能,发一行北斗命令,查看反馈信息

    现在我们可以实现一个小功能,给串口写入一段北斗命令,立刻从串口读取一行信息,可以开展北斗命令的测试工作。

    /// <summary>
    /// 这个函数不是非常严谨,由于串口通讯是异步的,
    /// 你给串口写入一行命令,然后立即读串口,存在一定的概率,紧接的反馈文本行并不是你期望的结果,
    /// 比如,你发送了$CCICA,可能并不能立即收到$BDICI反馈。
    /// </summary>
    /// <param name="port">串口</param>
    /// <param name="cmd">北斗命令,程序自动补上校验码</param>
    /// <returns>串口的一行反馈信息</returns>
    static string SendCmd(SerialPort port, string cmd)
    {
        cmd = cmd.Trim();
        cmd = cmd + "*" + CheckSum(cmd) + "\r\n";
        Console.Write("写串口:" + cmd);
        port.Write(cmd);
        return port.ReadLine();
    }
    
    /// <summary>
    /// 计算校验码, $和*(或行尾)之间(不含$和*)的所有字符的异或。
    /// </summary>
    /// <param name="bdstr">北斗指令</param>
    /// <returns>两个16进制数字,大写</returns>
    static string CheckSum(string bdstr)
    {
        byte sum = 0;
        foreach (char c in bdstr)
        {
            if (c == '$' || c == '!') continue;
            if (c == '*') break;
            sum ^= (byte)c;
        }
        return sum.ToString("X2");
    }
    

    现在主程序比较简单了,我们可以试验两条北斗命令的输出结果。SBX的反馈信息包括设备的厂商、类型、协议版本、序列号和卡号等信息。有关SBX的说明可以参看北斗2.1协议。

    string result = SendCmd(port, "$CCICA,0,0");
    Console.WriteLine(result);
    result = SendCmd(port, "$CCRMO,SBX,2,0");
    Console.WriteLine(result);
    

    小结

    1)4.0协议不好调试,常用2.1文本协议
    2)$开头
    3)命令有5个字符,前2个是信源,后3个是命令的含义
    4)*hh是校验码,异或生成,两个16进制数
    5)回车换行\r\n放末尾

    展开全文
  • 辅助《北斗卫星导航系统用户终端通用数据接口(预)》使用 两者对照 更明晰
  • 2013版国家统一标准车载终端通讯协议,附加硬件配置以及各通讯数据。
  • 北斗2.1协议编号【BD420007-2015】-北斗用户终端RDSS单元性能要求及测试方法-20151102
  • 针对特殊场景下需通过北斗短报文传输大量数据信息的需求,探讨并设计了一种适合于北斗通信的长报文可靠传输协议框架。通过扩展北斗短报文传输协议,结合Redis应用,提出最大重传次数和超时等待控制因子,建立北斗长...
  • JT808协议文档,最新的道路运输车辆卫星定位系统北斗兼容车载终端通讯协议技术规范
  • 北斗 道路运输车辆卫星定位系统北斗兼容车载终端通讯协议技术规范,详细解说各协议、字段、位 上下行的结构
  • 北斗卫星导航系统用户终端通用数据接口 内容原文链接:http://www.chinabeidou.gov.cn/hybz/150.html 现在好像访问不了,幸亏之前存过一份。 希望能给相关开发者提供点帮助。
  • 北斗综合服务系统服务协议书范本.doc
  • 通讯协议-道路运输车辆卫星定位系统北斗兼容车载终端通讯协议技术规范,2013年最新版本。
  • 本要求规定了北斗卫星导航系统与终端之间的数据接口相关要求。 本要求适用于北斗卫星导航系统与应用研究。
  • 北斗差分数据格式标准协议 第2部分
  • 北斗差分数据格式标准协议 第1部分
  • 部标终端以及协议808外加GBT 19056-2012 汽车行驶记录仪文档打包
  • 现有的北斗终端接入认证协商协议存在着认证延时较长、精度较低的缺陷,为了解决上述问题,提出基于标识认证和SM2算法的北斗终端接入认证协商协议研究。依据北斗终端接入认证特点,搭建北斗终端接入认证协商协议框架...
  • JTT 808-2013北斗兼容车载终端通讯协议技术规范

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,882
精华内容 752
关键字:

北斗协议