主卡子卡串口通信

主卡子卡串口通信格式

关机指令

主卡发送

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