[原创] [B-G431B-ESC1评测] 五、蓝牙通讯 与 MCSDK协议浅析

dvacos   2024-8-16 16:30 楼主
蓝牙通讯 与 MCSDK协议浅析
 
电机调试的时候能够无线调试时非常爽的,我认为有以下两点:
1、在实际的电机调试场景里,电机都是要带负载的,有时候由于负载太大、太吵、太热的时候是很难受的,还有调试小车类的应用的时候就不用拉着几根串口线追着小车跑了
2、调试高压电机的时候稍有不注意会烧电脑的USB口,所以无线也可以避免这个问题(最多损坏蓝牙模块)。
 

一、nRF52840 Dongle 上位机安装 与 使用

1、安装nRF Connect for Desktop
 
下载链接
152339n8czpcg9acxcq9mp.png
 
下载后无脑安装即可。
 

2、使用nRF52840 Dongle


打开nRF Connect for Desktop后,下载BLE
152339ht9smjdc9sestttc.png

 

第一次插入Dongle就会询问是否要下载固件,直接同意就可以了
152339cuxapyzmus6afaaz.png


完成后就有以下界面,这里就可以选择设备并且通讯了!
152339asaggxynxnjx4fjt.png


扫描到的附近的蓝牙设备
152339h6y2i1226yz6c5mi.png

 


连接设备 并且发送数据
152339ubd555hvq8l955db.png


接线框图
发送的数据由BLE模块使用串口打印出来,后续是将串口接到B-G431-ESC1上,从而控制电机
152339edm4dret1l1lmdm1.png

 

二、5-nRF52840 Dongle 与 B-G431B-ESC1通讯


1、接线确认
由于B-G431B-ESC1没有蓝牙功能,所以需要另外的蓝牙模块进行透传数据功能,接线框图如下。
152339ud7uwfd0hwuzryr0.png


查阅PCBA后,确认J3的3号脚是接到G431的
152339o80n39iay0ypi9ao.png


由原理图确认J3的3号脚是USART2 的 RX脚
152339y009ouqt0ofwte2f.png

 

2、蓝牙数据接收

经过一番查找,实验后确认ASPEP_HWDataTransmittedIT是接收数据后处理与缓存判断数据的接口,所以仿真查看。
大图
152339tsxw9caczeat1whq.png
 
细节图
152339ej000peppkik2se9.png
以上就完成了蓝牙数据的发送,与B-G431B-ESC1的数据接收
 
三、MCSDK协议浅析
在上文我们了解了ASPEP_HWDataTransmittedIT接口,可以看见传入的数据是个结构体aspepOverUartA,这个结构体很复杂,结构体里包结构体,没有协议文档,看透非常难,先从头开始看一下协议流程。
 
1、数据结构
ASPEP_Handle_t aspepOverUartA,数据结构
152339wdp861p1dxamg6dt.png
 
可见,有多个数据类型一致的buff,这些都是缓存的数据包,串口接到的数据会经过一系列处理,然后分为上一包、下一包等
152339mxexefbogv5vzevx.png
 
最终协议数据控制包
152339jlli22i6yn9yixnc.png
 
152339n2qxukcq53q25aa9.png
跳转后发现:
typedef enum
{
  available = 0,
  writeLock = 1,
  pending = 2,
  readLock = 3,
} buff_access_t;

状态类型只有4种

 
#define ASPEP_HEADER_SIZE 4
数据包长4字节
 
所以控制协议包的有效协议总长5字节
 
根据控制包的数据流向,查找后,确认ASPEP_HWDataReceivedIT是协议的解析、调度功能函数处
152339q0vkjwwj0tlljazt.png
 
2、MCSDK协议流程
Main 的MX_MotorControl_Init --> MCboot(pMCI) -->ASPEP_start(&aspepOverUartA)
152339dfu9u4aut445oiva.png
这里开始使能整个串口协议栈,将串口数据的地址传入协议栈、修改协议栈状态等
 
 
在滴答定时器的Handler中不间断的去取处DMA中的数据 与 解析协议。并且在该Handler中也调度了电机控制的状态机
152339wn36wvxv2rwzv3i6.png
想要按照原有协议、流程去驱动、控制电机比较复杂。
本帖最后由 dvacos 于 2024-8-16 16:30 编辑

回复评论 (5)

结构体很复杂,结构体里包结构体,没有协议文档是有点难

点赞  2024-8-17 07:31
引用: Jacktang 发表于 2024-8-17 07:31 结构体很复杂,结构体里包结构体,没有协议文档是有点难

是噢

点赞  2024-8-19 11:06

4楼 nmg 

嫌弃电机噪声大

点赞  2024-8-23 16:48
引用: nmg 发表于 2024-8-23 16:48 嫌弃电机噪声大

有些电机调试的时候确实大声的,比如工厂排气扇,10万转的高数风筒、大水泵。都很吵的,工业的降噪耳塞都没用,长时间很难受的。蓝牙发射功率调高 + PA 可以做到公里级别的通讯

点赞  2024-9-5 19:19

有趣

点赞  2024-10-22 10:59
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复