目录

前言

 一、串口文档

 二、明确身份

三、串口设置

 四、看懂命令格式

 五、看懂发送命令的格式

 1.帧头和帧尾

2.帧内数据长度 

3.帧内数据/具体命令

4.整体命令

5.真正的命令字和命令值

六、第一个案例

1.发送命令

2.雷达的回答 

七、作者的话


前言

用一个案例,带你看懂大部分串口通信协议。跟着看就好,因为大部分协议都是大同小异,看懂一个,基本其他也大差不差了。

昨天有人问我,串口通信协议要怎么看?她看不太懂。

她发来了这个:(如图1所示)

图1 串口套件

 一、串口文档

目录部分跳过,我只截图前1,2,4,5页,因为只要看懂一部分,后面基本就都懂了。

图2 第一页

图3 第二页

图4 第四页

图5 第五页

 二、明确身份

在这个案例里,我们不需要接线,我们只考虑自己是程序员,知道如何收发信息既可。

三、串口设置

首先需要和这个硬件建立连接,所以需要按它的需求进行设置。(如图6所示)

图6 串口配置

IO的意思就是,输入和输出(in和out),我们接收和传输信息都必须满足这些设置。

每一个串口调试软件都有这部分。(如图7所示)

图7 串口调试软件

 四、看懂命令格式

串口协议,可以理解为你给串口发命令,需要满足什么格式。(如图8所示)

图8 命令格式

 在这个协议里,我们既要发信息,也要接收信息,所以格式有两种,一种是,你给雷达发的时候的命令,第二个是你雷达收到消息了,会给你回个信,这个信你也需要看懂他。

例:你问雷达:“我们能发消息了吗?”,雷达说:“可以了,开始吧”。

你问雷达:“现在出现的东西离我们多远”。雷达说:“3米”。

所以,你既要会问,雷达的回信你还要看懂。

 五、看懂发送命令的格式

我们先看发送命令格式部分(如图9所示)。

图9 发送命令格式
 1.帧头和帧尾

帧头和帧尾是固定不变的(如图10所示),就像写信:“亲爱的粉丝们你们好”........“感谢大家看我的信”。

图10 帧头和帧尾
2.帧内数据长度 

红框里写的是绿框的长度,绿框才是我们真正的命令。(如图11所示)

举个例子:
亲爱的粉丝们你们好 命令是4个字  给我点赞 感谢大家看我的信

这个字数,和只爱我一个是需要变的。

图11 帧内数据长度
3.帧内数据/具体命令

 这个命令也有要求,一个是啥命令(命令字),第二个是具体多少次(命令值)

举个例子:  给我点赞   3次

图12 帧内数据格式
4.整体命令

所以,这个命令整体应该是:

亲爱的粉丝们你们好 命令是4个字  给我点赞  3次 感谢大家看我的信

(对不起,我不该命令你们,我错了,不要抛弃我~~嘤嘤嘤嘤嘤) 

5.真正的命令字和命令值

在下面的示例中,我们可以看见命令字和命令值。(如图13所示)

图13 命令字和命令值

命令字是0x00FF,但是0x不用看,他的意思是,这是16进制的数,他不是数字的一部分。

备注:为什么0x是十六进制呢?

答:WC是什么意思呢?你怎么知道WC是卫生间?0x就是为什么叫16进制,约定俗成。

例:比如我写11,你怎么知道是2进制还是10进制,还是16进制?如果我写0x11,就是,16进制的11。

所以,这里的命令字是00 FF,命令值同理。 

六、第一个案例

接下来我们一起看第一个案例。

1.发送命令

这个雷达有个要求,你发其他命令前,需要先发一个命令启动。然后我们一起看这个命令。

(如图14所示)

图14 命令
2.雷达的回答 

这时候雷达会回复你。你必须收到这串数字,才是真的成功了。(如图15所示)

图15 雷达的回答

七、作者的话

作者会在生活中和私信里筛选内容进行讲解哒,如果大家提问,希望详细一点。这样我才好锁定知识点进行讲解。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐