通过串口理解RPLIDRA的通讯协议
主要介绍一下学习记录2中没有解决的问题,特别感谢思岚科技官方售后,非常负责。
在串口调试过程中,发现雷达连接到电脑上之后开始转动,但是一连接上串口调试工具就停止转动了,官方给出的解决办法是串口连接之后更改DTR的勾选状态,虽然咱也不知道DTR是干嘛的,但试试总没有错。
我发现之前使用的cutecom串口调试工具不支持Modem的选择,无法打开和关闭dtr,于是改用Comtransmit串口调试工具。这个工具比minicom那些好用多了,直接类似于win下的可视化的调试界面。
一种支持dtr、rts等modem的linux系统下的串口调试工具comtransmit下载地址:
链接: https://pan.baidu.com/s/1IAJCmOYJJ3Af-q3jBs34Nw 密码: 8v8q
下载下来的是个deb文件,直接双击打开安装就好了。
该串口调试助手比cutecom助手多了一个modem的框框,这个里面有dtr、trs、dcd、一堆格式,具体参考网页。
其主要内容如下:
DCD :载波检测。主要用于Modem通知计算机其处于在线状态,即Modem检测到拨号音, 处于在线状态。
RXD:此引脚用于接收外部设备送来的数据;在你使用Modem时,你会发现RXD指示灯在闪烁,说明RXD引脚上有数据进入。
TXD:此引脚将计算机的数据发送给外部设备;在你使用Modem时,你会发现TXD指示灯在闪烁,说明计算机正在通过TXD引脚发送数据。
DTR:数据终端就绪;当此引脚高电平时,通知Modem可以进行数据传输,计算机已经准备好。
DSR:数据设备就绪;此引脚高电平时,通知计算机Modem已经准备好,可以进行数据通讯了。
RTS:请求发送;此脚有计算机来控制,用以通知Modem马上传送数据至计算机;否则,Modem将收到的数据暂时放入缓冲区中。
CTS: 清除发送;此脚由Modem控制,用以通知计算机将欲传的数据送至Modem。
RI : Modem通知计算机有呼叫进来,是否接听呼叫由计算机决定
测试通讯协议时,先将a1雷达上电,然后雷达开始转动,此时设置好波特率等信息后点击open按钮,会发现雷达停止转动,然后点击dtr前面的小框,发现雷达重新上电开始转动,此时在发送A5 20会发现我们可以接收到雷达的数据,刚开始会接收到a5 5a 00 00 40 81的起始应答报文,后面就是雷达接收到的数据报文,数据报文通过结合通讯协议解析,可以提取出距离和角度信息。
思岚雷达的通讯协议可以从思岚雷达官网下载,不同的报文接受到的数据格式不同。了解数据协议后可以从串口角度对雷达数据进行保存和提取。需要串口接收到的数据保存到数组中,在根据通讯协议中数据存储位置进行下一步解析。
如果调试过程中出现serial open fail报错,还是因为没有串口权限,可参考前文,给串口进行权限,即可解决。
sudo chmod 666 /dev/ttyUSB0