AD采样控制模块增加CRC校验通道功能预研
AD7616 实现C RC 校验功能
综述
一共有3种,第1种是硬件模式下串行接口方法,第2种是软件模式下串行接口方法,第3种是软件模式下并行接口方法。第3种方法不考虑,因为会增加多根信号线。
硬件模式下打开C RC
在硬件模式下,CRCEN引脚控制CRC特性。当AD7616退出完全复位时,CRC特性要么使能,要么禁用。当释放RESET引脚时,CRCEN引脚的逻辑电平决定CRC特性是使能还是禁用。CRCEN引脚设为1时,使能CRC特性。释放RESET引脚后,该功能便固定下来,要退出该功能并设置另一种配置,需要通过RESET引脚执行完全复位。
软件模式打开C RC
在软件模式下,将配置寄存器中的CRCEN位或STATUSEN位设为1可使能CRC功能。
C RC 数据位置
选择下图红框的模式。使能CRC后,CRC结果追加到转换结果上。CRC状态寄存器为16位字,前8位为最后转换的通道对的通道ID,后8位为CRC结果。
SPI 控制接口时序
写入器件的7个MSB用于确定要寻址的寄存器。这7个MSB由寄存器地址 (REGADDR) 位 [5:0] 和读/写位组成。寄存器地址位确定选择哪个片内寄存器。读/写位确定DB10/SDI线上数据的其余9位是否载入被寻址的寄存器。若读/写位为1,则将这些位载入由寄存器选择位寻址的寄存器。若读/写位为0,则认为命令是一个读操作请求。被寻址的寄存器数据可在下一读操作中读取。
软件和硬件模式切换
通过引脚HW_RNGSEL1,HW_RNGSEL0实现切换:
AD7606B 实现C RC 校验功能
综述
一共有2种,第1种是软件模式下串行接口方法,第2种是软件模式下并行接口方法。第2种方法不考虑,因为会增加多根信号线。
在硬件模式下,AD7606B与AD7606完全兼容。在软件模式下,可以使用如下高级特性:
额外的±2.5 V模拟输入范围。
模拟输入范围(±10 V、±5 V和±2.5 V),每个通道可选。
额外的过采样(OS)选项,最高OS×256。
每个通道的系统增益、系统失调和系统相位校准。
模拟输入开路检测器。
诊断多路复用器。
监控功能(串行外设接口(SPI)无效读/写、循环冗余校验(CRC)、过压和欠压事件、忙碌阻塞监控和复位检测)。
软件模式打开C RC
在软件模式下,通过置位INT_CRC_ERR_EN位(地址0x21位2),寄存器便可在使能CRC的情况下写入和读取AD7606B。
C RC 数据位置
使能CRC的串行寄存器模式
使能CRC的串行A DC 模式
如果使用两条DOUTx线(DOUTA和DOUTB),则每个16位CRC字使用来自四个通道的数据(即64位)计算,如图79所示。如果仅使用一条DOUTx线,则所有8个通道都通过DOUTA输出,然后是使用来自8个通道的数据(即128位)计算的16位CRC字。
SPI 控制接口时序
串行寄存器模式(读取寄存器数据)
表31中的所有寄存器都可以通过串行接口读取。读命令的格式如图73所示。它由两个16位帧组成。在第一帧,
•SDI中的第一位必须设置为0以使能写入地址。
•第二位必须设置为1以选择读命令。
•SDI中的位[3:8]包含要在下一帧通过DOUTA输出的寄存器地址。
•SDI中的后续8位(位[9:16])会被忽略。
如果AD7606B处于ADC模式,则SDO会持续通过位[9:16]输出ADC数据,然后AD7606B切换到寄存器模式。
如果AD7606B处于寄存器模式,则无论前一帧是读命令还是写命令,SDO都会从先前寻址的寄存器中回读内容。要退出寄存器模式,需要写入地址0x00,如图72所示。
串行寄存器模式(写入寄存器数据)
在软件模式下,表31中的所有读/写寄存器都可以通过串行接口写入。要写入一系列寄存器,须通过读取存储器映射上的任何寄存器来退出ADC读取模式(默认模式)。通过单次16位SPI读取操作,可执行寄存器写命令。写命令的格式如图74所示。
图74所示的写命令格式的结构如下:
•要使能写命令,必须将SDI中的第一位设置为0。
•第二位(R/W)位必须清0。
•位[ADD5:ADD0]包含要写入的寄存器地址。
•随后的8位(位[DIN7:DIN0])包含要写入选定寄存器的数据。数据在SCLK的下降沿从SDI输入,在SCLK的上升沿从DOUTA输出。
当连续写入器件时,DOUTA上出现的数据来自前一帧写入的寄存器地址,如图74所示。DOUTB、DOUTC和DOUTD引脚在传输过程中保持低电平。
寄存器模式下没有ADC数据输出,因为DOUTx线被用于输出寄存器内容。写完所有需要的寄存器后,写入地址0x00会使AD7606B返回ADC读取模式,此时ADC数据再次在DOUTx线上输出,如图72所示。
在软件模式下,当CRC开启时,每帧还会多输入和输出8位,故需要24位帧。
串行寄存器模式下使能C RC
软件和硬件模式切换
通过引脚OS0,OS1,OS2实现切换:
针对现有的AD模块做升级
现有的AD报文格式如下表:
地址偏移 数据序号 定义 数据
位宽 说明
0x00 DW00 报文头 报文起始符 32BIT 0xAAAA5555
0x04 DW01 报文体 控制信息1 32BIT [31:16]:AD采样偏移时刻(单位us);
[15:8]:每周波采样数;
[7:0]:每周波中断数。
0x08 DW02 控制信息2 32BIT [31:16]:帧序号;
[15:0]:总的AD通道数量。
0x0C DW03 备用 32BIT [31:0]:备用,默认填零值
0x10 DW04 采样数据长度Len 32BIT 从状态信息 到最后一个通道 数据的DWORD数。
0x14 DW05 状态信息 32BIT AD芯片状态信息,每块AD芯片占2BIT,低位是AD采样状态,高位是AD供电状态,状态位为高表示正常,低则异常。最多支持16块AD芯片的状态 。
一片AD时正常值= 0x00000003 Len
0x18 DW06 采样锁存时标 时标低32位 32BIT 采样点的64位锁存时刻。
0x1C DW07 时标高32位 32BIT
0x20 DW08 通道2采样值 通道1采样值 32BIT 一个DWORD传输2个AD通道值;若AD路数为偶数,刚好对齐;若为奇数,最后DWORD的高WORD填零。
0x24 DW09 通道4采样值 通道3采样值 32BIT
0x28 DW10 通道6采样值 通道5采样值 32BIT
0x2C DW11 通道8采样值 通道7采样值 32BIT
0x30 DW12 通道10采样值 通道9采样值 32BIT
0x34 DW13 通道12采样值 通道11采样值 32BIT
0x38 DW14 通道14采样值 通道13采样值 32BIT
0x3C DW15 通道16采样值 通道15采样值 32BIT
0x40 DW16 采样点信息累加和校验码 32BIT 从“状态信息”至“本帧最后1个通道采样值”按DWORD计算校验和。
0x44 DW17 报文尾 报文结束符 32BIT 0xCCCC3333
由于现在都是采用串行接口读取ADC采样值,一根线读取所有通道采样值。因此每片ADC的所有通道只有一个CRC计算值,选择上表DW03的备用字段作为当前每片ADC采样值是否正确的标志。
该字段的每个bit表示一个AD芯片当前所有通道采样值的CRC校验结果,“0b1”表示校验正确,“0b0”表示校验错误。