Files
BSI-901-fpga-software/tmp/fpga_doc2/system_dump.txt
T
2026-09-11 16:18:36 +08:00

205 lines
20 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
DOCX D:\Project\spinal_stim\详细设计\【SpinalStim】系统软件设计与调试 .docx
paragraphs=169 tables=9 shapes=34
P0||drawings=0|rels=|【SpinalStim】系统软件设计与调试
P1||drawings=0|rels=|联调进度:
P3||drawings=0|rels=|2026-05-11
P6||drawings=0|rels=|1. 硬件方案
P7||drawings=0|rels=|1.1 硬件架构
P8||drawings=0|rels=|采用FPGA架构
P9||drawings=0|rels=|实现整体数据采集,刺激,阻抗测量与数据传输
P10||drawings=0|rels=|支持USB 2.0接口
P11||drawings=0|rels=|通过更换前端接口板,实现快速采集/刺激功能/通道数的切换,方便科研与调试
P12||drawings=0|rels=|[该同步块已在源文档删除]
P14||drawings=0|rels=|1.2 控制逻辑
P16||drawings=0|rels=|1.2.1 差分采集部分
P18||drawings=0|rels=|1.2.2 32通道单端采集部分
P21||drawings=0|rels=|1.3 接口
P22||drawings=0|rels=|1.3.1 JTAG接口
P24||drawings=0|rels=|1.3.2 指示灯
P27||drawings=0|rels=|2. 软件框架
P28||drawings=0|rels=|2.1 PS软件设计
P31||drawings=0|rels=|2.2 PL软件设计
P34||drawings=0|rels=|2.2.1 FPGA逻辑设计
P35||drawings=0|rels=|1 总体设计原理
P36||drawings=0|rels=|整体系统都工作在统一时钟clk(100MHz)和统一复位rst_n中,clk100MHz)通过外部晶振给PS端,PS端 将其倍频到100MHz输入到PLrst_n也从PS端过来。
P37||drawings=0|rels=|PS端配置4个脑电ads1299和1个肌电ads1299采集和上传,主要配置ads1299初始化、采样率、通道映射、上传通道选择、帧头数据包、一帧上传数据包数等,PL中eeg_top模块根据配置指令将ads1299初始化,并从ads1299中采集数据,采集数据封包后将其传给upload_top模块。upload_top模块根据PS端配置的通道映射、上传通道选择、帧头数据包、一帧上传数据包数等将eeg_top过来的数据包加上包头、包尾、以包数为单位封帧(如一帧由20个小包组成),另外将需要上传的通道捡出来,把不需要上传的通道舍弃。4个脑电ads1299、和1个肌电ads1299数据(肌电为1组)最后在eeg_emg_upload模块整体处理,根据PS端配置,如果是第一组和第二组都有的话,则将第一组的尾和第二组的头去掉,重新计算crc,如果单独是第一组或者第二组,则将原始数据上传。
P39||drawings=0|rels=|PS端通过PL端的SPI接口(IP核)控制CSI040的写入和读取,进而控制刺激输出。
P41||drawings=0|rels=|2)寄存器配置
P42||drawings=0|rels=|a. 脑电采集寄存器
P43||drawings=0|rels=|a1:脑电数据采集寄存器:
P44||drawings=0|rels=|脑电EEG_CONFIG对应PS端BRAM_CTRL_1,地址范围是0x4200_0000~0x4200_1FFF 配置寄存器如下:
P45||drawings=0|rels=|a2:脑电数据上传寄存器:
P46||drawings=0|rels=|脑电UPLOAD_CONFIG对应PS端BRAM_CTRL_4,地址范围是0x48000000~0x48001fff
P47||drawings=0|rels=|b. 肌电采集寄存器
P48||drawings=0|rels=|b1:肌电数据采集寄存器:
P49||drawings=0|rels=|肌电EEG_CONFIG对应PS端BRAM_CTRL_2,地址范围是x4400_0000~0x4400_1FFF,配置寄存器如下:
P50||drawings=0|rels=|b2:肌电数据上传寄存器:
P51||drawings=0|rels=|肌电UPLOAD_CONFIG对应PS端BRAM_CTRL_5,地址是0x4a000000~0x4a001fff,配置寄存器如下:
P52||drawings=0|rels=|c.电流配置寄存器
P53||drawings=0|rels=|电流配置寄存器对应PS端BRAM_CTRL_6,地址是0x4c000000~0x4c001fff,配置寄存器如下:
P54||drawings=0|rels=|d.数据上传配置寄存器
P55||drawings=0|rels=|数据上传配置寄存器对应PS端BRAM_CTRL_7,地址范围是0x4E00_0000~0x4E00_1FFF,配置寄存器如下:
P56||drawings=0|rels=|e.透明数据上传(不经过打包,用于计算阻抗)为axi_dma_2,地址是0x4042_0000~0x4042_FFFF。
P58||drawings=0|rels=|其它用spi和gpio的地址范围
P59||drawings=0|rels=|A64包字节计算:
P60||drawings=0|rels=|EEG和EMG都有:
P61||drawings=0|rels=|EEG数据量:以20个包为一帧计算,包头85个字节,中间数据为196字节(64通道x3+4字节triggerx20,包尾为2字节crc+12字节upload_bytes。20个包EEG数据量为4019个字节。因此m个通道,n个包,EEG字节数量为85+mx3+4xn+14=99+mx3+4xn。
P62||drawings=0|rels=|EMG数据量:如果EEG也存在的话,EMG会去掉包头、包尾,只剩下数据。EMG字节数为4字节trigger+8通道x3字节=28个字节。28x20个包=560个字节。因此c个通道,n个包,EMG字节数量为(cx3+4)xn
P63||drawings=0|rels=|只有EEG时:99+mx3+4xn。
P64||drawings=0|rels=|只有EMG时:99+cx3+4xn。
P65||drawings=0|rels=|EEG和EMG都没有时:0
P67||drawings=0|rels=|A64包字节计算汇总:
P68||drawings=0|rels=|SpinalStim系统软件设计与调试配置寄存器中eeg_send_package_num[15:0]和emg_send_package_num[15:0]根据eeg_emg_sel[1:0]配置,和上面表格对应,eeg_send_package_num[15:0]配置为99+mx3+4xnemg_send_package_num[15:0]配置为99+cx3+4xn。
P70||drawings=0|rels=|如果速率是v(如速率是16k),则每包之间间隔是1000/v(us),emg每个包占用时间是290ns(28个数据(8通道x3个字节+4个triggerx10ns+10ns无效时间),如果一次emg和eeg合并n个包(比如160个包或者320个包),则emg合并到eeg包尾占用时间是290nsxn/1000us=0.29n,如果0.29n>1000/v,则emg合并到eeg包尾占用时间比eeg每个包之间的间隔时间还要长,因此不能正确传输,只有0.29n<1000/v-5才可以(n是包数,v是速率),5us是安全冗余。
P71||drawings=0|rels=|3. 调试记录
P74||drawings=0|rels=|USB隔离器VCC1没有电源输入,芯片无法工作。需要将1/5引脚连接在一起。
P76||drawings=0|rels=|单端采集通道采集信号有点差(100uV)
P78||drawings=0|rels=|差分通道信号也差,和C256 HV 版 类似,将滤波电容从47pF 改到470pF 有改善
P79||drawings=0|rels=|右腿驱动的输出比较怪
P80||drawings=0|rels=|正常量就有2.5V的 50hz输出,正常情况下应该很小
P81||drawings=0|rels=|差分通道用AFE968 测量阻抗时 约有10k 的零漂, 原因未知
P82||drawings=0|rels=|AFE968 的阻抗测量电流与IPA1299 ADS1299 均不相同,方案确定后不可更换
P83||drawings=0|rels=|AFE968 用AC 测阻抗时 需要控制 一些AFE968 独有的寄存器,需要修改PL ,下周可以试试
P84||drawings=0|rels=|将AFE968 更换为ADS1299 后 约0.24k的零漂
P85||drawings=0|rels=|ADS1299,AFE968 通过SRB1,SRB2 均有一些奇怪的表现
P86||drawings=0|rels=|连接SRB2 时, 和两个都断开几乎一致
P87||drawings=0|rels=|连接SRB1,不连接SRB2 时 电压会出现明显的负值, 用示波器上也能看出在-2V左右,非常奇怪
P88||drawings=0|rels=|目前两个开关打开
P89||drawings=0|rels=|AFE968 的校准公式约为
P90||drawings=0|rels=|x-2000)/0.62 - 9500(内置的3阶 滤波器会带来约0.72的衰减,硬件自带2k阻抗)
P91||drawings=0|rels=|ADS1299 的校准公式为
P92||drawings=0|rels=|x-2000)/0.72/0.9 - 300(内置的3阶 滤波器会带来约0.72的衰减,硬件自带2k阻抗)
P94||drawings=0|rels=|4. 测试记录
P95||drawings=0|rels=|1. 测试连接
P96||drawings=0|rels=|1)单端信号测试连接:直接相连即可
P98||drawings=0|rels=|2)差分信号测试连接:第一幅图中注意凸口方向,第二幅图中端口6、7和PCB板上最底下两个端口对应,对应之后将第一幅图中接口pin脚先标上,凸口再朝下插上即可
P102||drawings=0|rels=|2. 单端信号测试
P103||drawings=0|rels=|2026年07月24:外面信号发生器一端接测试工装ref、一端接测试工装信号端(32通道连在一起),单端信号每次可以测32个通道,8个通道一个页面,只展示8个通道,信号质量基本一致,其它通道请查看附件。
P104||drawings=0|rels=|110uV、6Hz-CH1~8
P106||drawings=0|rels=|220uV、6Hz-CH1~8
P108||drawings=0|rels=|330uV、6Hz-CH1~8
P110||drawings=0|rels=|440uV、6Hz-CH1~8
P112||drawings=0|rels=|550uV、6Hz-CH1~8
P114||drawings=0|rels=|660uV、6Hz-CH1~8
P116||drawings=0|rels=|770uV、6Hz-CH1~8
P118||drawings=0|rels=|880uV、6Hz-CH1~8
P120||drawings=0|rels=|990uV、6Hz-CH1~8
P122||drawings=0|rels=|10100uV、6Hz-CH1~8
P124||drawings=0|rels=|11110uV、6Hz-CH1~8
P126||drawings=0|rels=|12120uV、6Hz-CH1~8
P128||drawings=0|rels=|13130uV、6Hz-CH1~8
P130||drawings=0|rels=|14140uV、6Hz-CH1~8
P132||drawings=0|rels=|15150uV、6Hz-CH1~8
P134||drawings=0|rels=|2026年07月28:外面信号发生器一端接测试工装ref和主板上的gnd、一端接测试工装信号端(32通道连在一起),单端信号每次可以测32个通道,8个通道一个页面,只展示8个通道,信号质量基本一致,其它通道请查看附件。连接方式如下:
P136||drawings=0|rels=|12uV、6Hz-CH1~8
P138||drawings=0|rels=|25uV、6Hz-CH1~8
P140||drawings=0|rels=|310uV、6Hz-CH1~8
P142||drawings=0|rels=|由此可知,单端必须要接ref和gnd,信号才好很多。
P143||drawings=0|rels=|3. 差分信号测试
P144||drawings=0|rels=|差分信号每次可以测1个通道,只展示1个通道,8个通道信号质量基本一致,其它通道请查看附件。
P145||drawings=0|rels=|11uV、6Hz-CH1
P147||drawings=0|rels=|22uV、6Hz-CH1
P149||drawings=0|rels=|33uV、6Hz-CH1
P151||drawings=0|rels=|44uV、6Hz-CH1
P153||drawings=0|rels=|55uV、6Hz-CH1
P155||drawings=0|rels=|610uV、6Hz-CH1
P157||drawings=0|rels=|71mV、6Hz-CH1
P159||drawings=0|rels=|完整附件如下:
P160||drawings=0|rels=|[spinal_stim单端和差分信号测试.zip]
P161||drawings=0|rels=|5. 测试工装开发
P162||drawings=0|rels=|1. 测试工装航空插头线序
P164||drawings=0|rels=|[测试工装开发.docx]
TABLE 0 6x5
序号 | 指示灯 | 状态 | 网络信号 | 引脚
1 | 电源指示灯 | 上电常亮 | LED_PWR |
2 | WIFI指示灯 | 未连接WIFI,长灭 / 已连接WIFI,未连接上位机,2Hz呼吸 / 已连接上位机,常亮 | LED_WIFI |
3 | 充电指示灯 | 充电中,常亮 / 充电完成,长灭 | CHGLED |
4 | 刺激指示灯 | 刺激中,常亮,否则长灭 | LED_STIM |
5 | 状态指示灯 | | LED_IDLE |
TABLE 1 8x7
No | 寄存器名称 / | 位数 | 方向 | 地址(eeg_bram地址) | 寄存器含义 | 备注 /
1 | test_ro | 32 / | RO | 13'h0 | 32'h12345678,常数,只读,PS端验证读寄存器是否正常 |
2 | test_data / | 32 | WR | 13h4 / | 测试读写寄存器是否正常 |
3 | eeg_er | 32 | W | 13h40 | PS端配置ADS1299采集命令等,主要配置接收使能 | /
4 | eeg_cr | 32 | W | 13h44 / | PS端配置ADS1299采集命令等,主要配置接收cs和接收长度 | [1:0]、[5:4]、[9:8]、[13:12]、[17:16]为send_cs_n[3:2]、[7:6]、[11:10]、[15:14]、[19:18]为send_lengthsend_length设置为3,表示下发3个字节的配置数据
5 | eeg_sr | 32 | RO | 13h48 | PS端读取数据,外部未接信号,这个寄存器其实是弃用寄存器 |
5 | eeg_tr | 128 | W | 13h100 / | PS端配置ADS1299采集命令等,主要配置初始化数据、采样率等 |
6 | eeg_rr | 128 | RO | 13h200 | PS端读取ADS1299配置返回的数据 | 和采集的数据需要区分
TABLE 2 11x7
No | 寄存器名称 / | 位数 | 方向 | 地址(eeg_bram地址) | 寄存器含义 | 备注 /
1 | test_ro | 32 | RO | 13'h0 | 32'h12340004,常数,只读,PS端验证读寄存器是否正常 |
2 | test_data | 32 | WR | 13h4 | 测试读写寄存器是否正常 |
3 | bram_addr_sel / | 2 | W | 13h10 / | [0]:eeg_sel,选择eeg上传数据与否 / [1]:protocol_sel:选择protocol数据与否 |
4 | upload_round_qty_set | 32 | W | 13h14 | 上传到PS端多少个包组成一帧 / | 例如20个小包组成一帧,帧结尾是tlast,每个小包根据配置的通道数量对应多少个数据
5 | pre_message_length / | 8 | W | 13h18 / | 帧头有多少个数据 / |
6 | reset_package_id | 1 / | W | 13h1c / | 复位包id计数,1:复位,0:维持 |
7 | package_overtime_ms | 32 | W | 13h20 / | 设置包计数超时时间 / |
8 | pre_message | 192 / | W | 13h100 | 设置帧头,192bit,从100地址开始设置 |
9 | ch_mapping2pc | 512 | W | 13h200 | 设置通道映射,即和软件端显示的通道需要对应配置 |
10 | upload_ch | 64 | W | 13h300 / | 上传通道选择,PL先采集所有通道数据,然后根据PS端配置哪些通道需要上传数据,将对应通道数据上传 |
TABLE 3 8x7
No | 寄存器名称 / | 位数 | 方向 | 地址(eeg_bram地址) | 寄存器含义 | 备注 /
1 | test_ro | 32 / | RO | 13'h0 | 32'h12345678,常数,只读,PS端验证读寄存器是否正常 |
2 | test_data | 32 | WR | 13h4 / | 测试读写寄存器是否正常 |
3 | eeg_er | 32 | W | 13h40 | PS端配置ADS1299采集命令等,主要配置接收使能 | /
4 | eeg_cr | 32 | W | 13h44 / | PS端配置ADS1299采集命令等,主要配置接收cs和接收长度 | 现在:以前:[1:0]、[6:5]、[11:10]、[16:15]、[21:20]为send_cs_n[4:2]、[9:7]、[14:12]、[19:17]、[24:22]为send_lengthsend_length设置为4,表示下发4个字节的配置数据 / 以前:[1:0]、[5:4]、[9:8]、[13:12]、[17:16]为send_cs_n[3:2]、[7:6]、[11:10]、[15:14]、[19:18]为send_lengthsend_length设置为3,表示下发3个字节的配置数据
5 | eeg_sr | 32 | RO | 13h48 / | PS端读取数据,外部未接信号,这个寄存器其实是弃用寄存器 |
5 | eeg_tr | 128 | W | 13h100 / | PS端配置ADS1299采集命令等,主要配置初始化数据、采样率等 | /
6 | eeg_rr | 128 | RO | 13h200 | PS端读取ADS1299配置返回的数据 | 和采集的数据需要区分
TABLE 4 11x7
No | 寄存器名称 / | 位数 | 方向 | 地址(eeg_bram地址) | 寄存器含义 | 备注 /
1 | test_ro | 32 | RO | 13'h0 | 32'h12340004,常数,只读,PS端验证读寄存器是否正常 |
2 | test_data | 32 | WR | 13h4 | 测试读写寄存器是否正常 |
3 | bram_addr_sel | 2 | W | 13h10 / | [0]:eeg_sel,选择eeg上传数据与否 / [1]:protocol_sel:选择protocol数据与否 |
4 | upload_round_qty_set | 32 | W | 13h14 | 上传到PS端多少个包组成一帧 / | 例如20个小包组成一帧,帧结尾是tlast,每个小包根据配置的通道数量对应多少个数据
5 | pre_message_length / | 8 | W | 13h18 / | 帧头有多少个数据 / |
6 | reset_package_id | 1 | W | 13h1c / | 复位包id计数,1:复位,0:维持 |
7 | package_overtime_ms | 32 | W | 13h20 / | 设置包计数超时时间 / |
8 | pre_message | 192 / | W | 13h100 | 设置帧头,192bit,从100地址开始设置 |
9 | ch_mapping2pc | 512 | W | 13h200 | 设置通道映射,即和软件端显示的通道需要对应配置 |
10 | upload_ch | 64 | W / | 13h300 / | 上传通道选择,PL先采集所有通道数据,然后根据PS端配置哪些通道需要上传数据,将对应通道数据上传 |
TABLE 5 19x7
No | 寄存器名称 | 位数 | 方向 | 地址(eeg_bram地址) | 寄存器含义 | 备注
1 | test_ro | 32 | RO | 13'h0 | 32'h22222222,常数,只读,PS端验证读寄存器是否正常 |
2 | test_data | 32 | WR | 13h4 | 测试读写寄存器是否正常 |
3 | cnv_en / | 1 | W | 13h8 / | [0]:FPGA停止控制AD7689 / [1]:FPGA开始控制AD7689 |
4 | clear_int | 1 | W | 13hc | 清除寄存器,将cur_monitor模块中的电流处理相关数清除 |
5 | cfg_reg / | 14 | W | 13h10 | AD7689中的写入寄存器的数值,未用 |
6 | cnv_period_us | 32 | W | 13h14 | AD7689采样率配置,未用 | 复位值:32'd1000
7 | flt_ch | 16 | RO | 13h18 | 电流处理后的对应通道有效 |
8 | thr_total_cur | 32 | W | 13h20 | 整体电流阈值控制 | 复位值:0
9 | thr_pos_cur | 32 | W | 13h24 | 正电流阈值控制 | 复位值:0
10 | thr_neg_cur | 32 | W | 13h28 | 负电流阈值控制 |
11 | flt_state | 32 / | RO | 13h30 / | 电流状态寄存器 / flt_state = {28'd0, flt_bits}; / flt_bits = {cur_flt_neg, cur_flt_pos, cur_flt_total, cur_flt_ch}; / 即负电流超过阈值指示、正电流超过阈值指示、总体电流超过阈值指示、通道号指示回读 |
12 | flt_total_cur | 32 | RO | 13h34 | 整体电流回读 |
13 | flt_pos_cur | 32 | RO | 13h38 | 正电流回读 |
14 | flt_neg_cur | 32 | RO | 13h3C | 负电流回读 |
15 | ch_map | 8 | W | 13h400~13h440 | 通道映射配置 | 总共16个8bit数据
16 | cur_thr | 16 | W | 13h800~13h840 | 每个通道电流阈值控制 | 总共16个16bit数据
17 | cur_rt | 16 | RO | 13hC00~13hC40 | 每个通道电流值回读 | 总共16个16bit数据
18 | cur_fault | 16 | RO | 13h1000~13h1040 | 通道对应的电流值回读 | 总共16个16bit数据
TABLE 6 5x7
No | 寄存器名称 | 位数 | 方向 | 地址(stim_bram地址) | 寄存器含义 | 备注
1 | eeg_emg_sel / | 2 | W | 13h30 | eeg和emg选择使能,[1]:emg选择使能,[0]:eeg选择使能 / eeg_emg_sel[1:0]=2'b11,emg和eeg都有 / eeg_emg_sel[1:0]=2'b10,只有emg / eeg_emg_sel[1:0]=2'b01,只有eeg / eeg_emg_sel[1:0]=2'b00,两者都没 |
2 | eeg_send_package_num | 16 | W | 13h34 | eeg需要上传的字节数,如一帧里面有4011个字节,则需要发10进制4011,或者16进制16'hfab |
3 | emg_send_package_num | 16 | W | 13h38 / | emg需要上传的字节数,如一帧里面有4011个字节,则需要发10进制4011,或者16进制16'hfab |
4 | diff_pkt_data_sel | 1 | W | 13h3C / | 选择是上传差分打包数据还是8通道原始数据 / 0:默认差分打包数据 / 1:选择差分8通道原始数据 | 如果配置成1,则差分打包数据不上传,相当于eeg_emg_sel中没有emg的数据
TABLE 7 11x6
No | PS端名称 | 位数 | 地址范围 | 含义 | 备注
1 | CHANN_EN / | 4 | 0x4121_0000~0x4121_FFFF | 控制4个8通道选择器通断,每个bit1个,和CHANN_SEL[3:0]配合 | GPIO,非GPIO2
2 | CHANN_SEL | 4 | 0x4122_0000~0x4122_FFFF | 控制4个8通道选择器通断,4bit对应8个通道,和CHANN_EN[3:0]配合 | GPIO,非GPIO2
3 | RST_AD5941 | 1 | 0x4123_0000~0x4123_FFFF | AD5941复位控制GPIO | GPIO,非GPIO2
4 | Z_IO | 1 | 0x4124_0000~0x4124_FFFF | 输入到AD5941 | GPIO,非GPIO2
5 | ZCHECK_SPI | 4 | 0x41E2_0000~0x41E2_FFFF | 控制AD5941 | SPI
6 | ELEC_MUX_IN | 4 | 0x4126_0000~0x4126_FFFF | 控制ADG1212,主要控制ELEC_BIAS、ELEC_REF、ZCHK_IN等的选择 | GPIO,非GPIO2
7 | STIM_SPI | 4 | 0x41E0_0000~0x41E0_FFFF | PS端控制CSI040的SPI端口 | SPI
8 | CUR_SPI | 4 | 0x41E1_0000~0x41E1_FFFF | PS端控制AD7689的SPI端口 | SPI
9 | gpio_0 / | 8 / | 0x4120_0000~0x4120_FFFF / | gpio0[7]mux_pwr_en,新增模拟开关电源控制引脚,启用采集功能前打开 / gpio0[6]stim_pwr_en(STIM_PWR_EN) / gpio0[5]led_usb / gpio0[4]led_stim,刺激灯状态指示 / gpio0[3]led_state,灯状态指示 / gpio0[2]rec_pwr_en / gpio0[1]pudc / gpio0[0]led_rsv | 配置led_wifi等,GPIO2,非GPIO /
10 | GPIO | 3 | 0x4125_0000~0x4125_FFFF / | gpio[2]rstn_stim / gpio[1]stim_trig / gpio[0]stim_int | 配置刺激芯片GPIO,顺序也可以由PS端自己定义
TABLE 8 5x5
No. | EEG、EMG组合 / eeg_emg_sel / [1:0] | 包数计算 / | 参数含义 | 举例
1 | 2'b11,emg和eeg都有 / | 99+mx3+4xn+cx3+4xn | m:EEG通道数, / n:EEG或者EMG包数 / c:EMG通道数 | 以EEG通道数64、EMG通道数为8,20个包计算,总包数:99+64x3+4x20+8x3+4x20=4579字节
2 | 2'b01,只有eeg / | 99+mx3+4xn | m:EEG通道数, / n:EEG或者EMG包数 / c:EMG通道数 | 以EEG通道数6420个包计算,总包数:99+64x3+4x20=4019字节
3 | 2'b10,只有emg / | 99+cx3+4xn | m:EEG通道数, / n:EEG或者EMG包数 / c:EMG通道数 | 以EMG通道数为8,20个包计算,总包数:99+8x3+4x20=659字节
4 | 2'b00,两者都没 | 0 | m:EEG通道数, / n:EEG或者EMG包数 / c:EMG通道数 | 0