协议

基本的协议需求可以分为以下两大类:

  1. 数据分发功能,从A节点广播数据给B节点,无需应答,但保留数据校验
  2. 请求应答功能,请求内容支持、数据支持
  3. 命令应答功能,请求执行某个动作、做某件事

内容

帧头:0xAA55

帧类型:0x0000 ~ 0xFFFF,不同类型节点之间的通信

长度:0x0000 ~ 0x00FF

数据类型:0x0000 ~ 0x00FF,这个代表是数据,还是请求,还是命令,还是应答

数据域:可变,N * 2

校验:CRC16算法,两个字节,计算的是从帧号到数据域的所有字段的数据校验值(除了帧头和帧尾)

帧尾:0x0D0A

数据类型

DSP通信中常见的数据类型,总的来说,可以抽象为以下几种:

① 数据:广播方式传播,比如声音、图像等数据,订阅者收到即可,无需应答或者响应

② 请求:向某人索取某些资源,一般在应答里边需要告知,也就是在应答里边需要附带数据(数据做应答)

③ 命令:叫某人做某事,事情/动作完毕还要把执行之后的结果告诉发起者

④ 应答:告诉对方事情、动作、询问的执行结果,应答可以是数据,可以是状态,也可以是事情的结果

总结

  • 因为DSP里边最小的数据单元为2个byte,所以都要按2个字节对齐,无论是跟ARM还是X64通信
  • DSP建议开启中断+FIFO模式处理SCI数据(减少中断次数),如果SCI通信比较频繁,建议启用DMA
  • 如果是单字节中断接收,那ARM只能处理单字节的帧头(这是不好的)

下里巴人
海纳百川,文以载道
hywing技术自留地
总访问 113701 次 | 本页访问 326