USB通信协议:
1.数据包由两种构成:描述包和实时包,区别在命令字上。
2.通信方式:上位机只接收数据,不与下位机交互,即上位机只收不发。
描述包即非实时包,只在初始化阶段上传,描述包格式:
包头固定为:0x55
包长为本次数据包的长度,计算公式:包长= 描述段+ 命令字+ 偏移量
CRC校验范围是:除包头外的所有其他内容
描述段根据命令字决定:
规定:
bit7 ——0 :这是一个实时包
bit6:bit5 ——00 :信号的组数
bit6:bit5 ——01 :信号名称
bit6:bit5 ——10 :信号数据长度及类型
bit6:bit5 ——11 :信号数据上下限
bit4:bit0 ——数据序号(0~32)
如果数据类型是bool,则数据序号bit4:bit0表明该信号的在数据段中的位置,例如系统有8
型的信号,则由一个字节表示,每一位分别表示每种信号的值:
种bool
举例如下:
下位机应先发送信号的种类数,接着发送各种信号的描述符。
对于一个信号应该由4个描述包完成描述
建议:下位机在发送完描述包后应该在发送一个描述包来说明此时描述包已经结束。实时包格式:
计算公式:包长= 数据段+ 命令字