主卡发送
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插件快速发布