主卡发送
00
子卡回复
00
主卡发送
01
子卡回复,统一都是16字节指令
01 01 20 10 00 1e 84 80 00 00 00 00 00 00 00 00 00
第一个字节01为命令类型,表示为开机指令的回复
第二个字节01表示为板卡类型
第三个字节20表示为子卡通道数
第四个字节10表示为通道位宽
第五~八字节00 1e 84 80为采样率
第九个字节00表示子卡是否异常,00为正常,01表示异常
第十~十六字节这7个字节暂时填00,有信号补充则填入
主卡处对应每个子卡都有一个串口以及串口相关的信号,以及一个状态量card_state
card_state为1个4位信号,有一个卡槽就有几个card_state,比如为card_state1,card_state2,card_state3,card_state4,card_state5,card_state6 ...
card_state为0表示未插入(该槽位空),1表示开机,2表示关机,3表示异常状态
当主卡发送开机指令,并收到子卡正常开机回复时,card_state为1,没有收到正常回复时,card_state为0,收到子卡异常回复时,card_state为3
当主卡发送关机指令,子卡回复时,card_state为2,没有收到回复时,card_state为0
然后所有的card_state(1-n)将会汇总到一个32bit数card_state传输到Linux端,假如有6个子卡插入且都正常开启,那么这个数就是0x00111111,其中最低四位表示card_state1,最高四位表示card_state8
假如只有5个卡槽插入卡,且只有前两个卡槽开机,后三个关机,那个这个card_state数就是0x00022211
也是按照之前那样说的,每次读配置信息就将所有信息传过去
本文章使用limfx的vscode插件快速发布