原帖 | Jack | 2024-08-08 09:14 | 👍1 | 阅读约1
问:和硬件强相关的通讯协议或者算法,比如ymodem协议、modbus协议,pid控制,这些是放在bsp层吗?
答:
当然不是,这些更多的是放在中间件层。比如说Ymodem在串口收发上的应用,UART的另一端的设备看你连接的是什么,比如是一个蓝牙,那么这个蓝牙就能抽象为一个片上外设,然后这个蓝牙的控制(比如串口收发AT指令就是BSP的一部分),那么BSP通过蓝牙接收到来自手机端发送过来的Ymodem的串口数据,这些数据难道我要在BSP里面进行处理吗?当然不是的,因为串口上能走的协议不仅仅有Ymodem,也有Xmodem,也有自己定义协议,那我的BSP包含这些能穷尽吗?在这种场景下,BSP顶多就是问APP要一个buffer区域,BSP把串口成功组包的数据(连续的串口数据,串口是很不稳定的通信方式)放到缓冲区里,然后通知APP你可以去缓冲区里拿数据了,APP才去缓冲区里去解析数据,这时候APP可以选择用Ymodem(中间件)来解析协议,还是用Modbus(中间件)来解析。
相关笔记