ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

北斗短报文使用方式

北斗短报文使用方式 前言之前实习的时候做过一个项目接触到了北斗短报文的开发项目是要监测高原地区的工人们的身体情况保证工人们如果出现高原病现象可以第一时间得到救治。这里需要使用lora网关收到工人手表发送的数据然后使用北斗短报文发送到插了北斗卡的北斗终端。开发北斗让我学会了具体项目中接收与发送数据的全流程。一 开发准备开发时需要准备好硬件北斗三号短报文模块或一体机这是核心设备内部集成了射频、基带和主控对外通过串口通信。常见型号包括金维集电DM229、博纳雨田T8650、容辉物联GM10等。一体机如华力创通HBD6100内置天线开箱即用模块则需要自己设计外围电路-1。北斗短报文卡类似SIM卡插入模块的北斗卡槽每张卡有唯一的用户地址码用于标识你的终端身份-1。主控设备树莓派、RK3568工控板或任意带UART的Linux主机。如果只是开发调试用USB转串口线连接电脑即可。天线北斗天线需朝向南方我国境内且顶部无明显遮挡-5。电源北斗模块发射瞬间电流可达1.5A~2A必须使用能提供足够功率的电源建议12V/1A以上-10。这里我使用的是开发好的一体机可以使用RS232或者RS385接口来连接我的主机只需要给连接的串口发送命令就可以实现通信。我使用的是RS232连接使用的主机有DB9连接扣把线插入就可以使用了。串口参数通常为115200波特率、8位数据位、无校验、1位停止位(8N1)。二 指令发送北斗使用的是标准NMEA风格指令格式为$指令内容*校验和\r\n通过串口直接发送。校验和是$和*之间所有字符的异或值。指令功能典型响应CCICR/CCICA读取北斗卡号$BDICP/$BDICI-CCRMO,PWI查询信号波束$BDPWI含波束数和信号强度-17CCTCQ发送短报文点对点$BDFKI发送回执-CCTBQ发送短报文通播无特定回执-CCMSG通信申请扩展协议$BDMXX通信信息其中CCTCQ是发送核心格式为CCTCQ,接收卡号,频点,是否需回执,编码方式,内容,上报周期例如CCTCQ,15950041,2,1,3,A4B2E2CAD4,0。编码方式3为混编模式内容需以A4开头并跟 GB2312 编码的 HEX 字符串。使用python发送数据如下import serial, time def nmea(body): cs 0 for c in body: cs ^ ord(c) return f${body}*{cs:02X}\r\n.encode() ser serial.Serial(/dev/ttyS0, 115200, timeout0.4) # 1. 读卡 ser.write(nmea(CCICR,0,00)); time.sleep(2); ser.read_all() # 2. 查信号 ser.write(nmea(CCRMO,PWI,2,0)); time.sleep(3); ser.read_all() # 3. 发送内容 你好 → A4C4E3BAC3 content A4 你好.encode(gb2312).hex().upper() ser.write(nmea(fCCTCQ,15950041,2,1,3,{content},0)) time.sleep(6) print(ser.read_all().decode(ascii, errorsignore))三 实际发送流程北斗短报文发送的需要三个步骤步骤指令作用返回第一步CCICR,0,00读卡确认卡在线$BDICP第二步CCRMO,PWI,2,0测试信号波束数量强度$BDPWI第三步CCTCQ,...发送短报文$BDFKI首先是读卡需要这张卡是可用的才可以使用然后是检测波束状态需要可见波束数 ≥ 3即至少能同时看到 3 颗北斗卫星的波束同时最强信号 ≥ 45这样才可以使用在测试过程中需要把北斗放到室外开阔的地方这样信号会好一点。接收部分是插了北斗卡的终端北斗发送数据的时候会指定接受的卡号输入后北斗就会给这个卡号发送信息这个特定的卡号就可以接收到数据。四 开发情况北斗有自己的软件可以使用使用软件发送数据比较轻松就像使用串口助手一样只需要点击就可以发送数据读取卡号测试信号。想要获取到发送的数据可以登录北斗的网站输入卡号就可以获取到发送的数据不过这里的数据一般都是经过加密的需要解密后才可以获取到实际的数据。实际开发中硬件调试和软件调试部分花了比较多的时间北斗的RS232和RS485接口不是都将而已使用的同一时间只能用一个接口所以如果在使用485后想要使用232就要发送指令修改如果没有修改成功这两个都不能用了这边研究了很久才发现这个问题一开始以为是软件发送数据的问题结果连硬件都没弄好。最后寄回去让厂家帮我们直接改成了最后要使用的232接口才能使用。软件主要是之前没有使用过lora网关和NMEA风格的指令摸索了比较久好在最后借助AI成功完成项目。五 总结北斗短报文实际使用需要有三步读卡 → 测信号 → 发送每一步都有它的意义。跳过读卡卡不在线发送必失败跳过测信号信号差时发送成功率极低还浪费宝贵的卫星信道资源。北斗短报文对遮挡非常敏感实际部署时一定要把天线放在室外开阔处。总的来说北斗短报文的开发门槛不算高协议清晰指令简洁。真正的难点在于硬件调试和信号环境。只要把这两块搞定剩下的就是按流程写代码的事了
返回列表