1 数据传输层
数据传输层的主要功能将AD转换器采样的数据映射成8bit位宽的字节数据,并且根据应用的情况不同,分为4中情况:
一个AD转换器内的单个转换单元对应一条数据传输通道
一个AD转换器内的多个转换单元对应一条数据传输通道
一个AD转换器内的单个转换单元对应多个数据传输通道
一个AD转换器内的多个转换单元对应多个数据传输通道
系统可能存在多个AD转换同时连接在一个传输系统中,但是对于其内部的数据的映射方式来说,是相对独立的,并且各个AD转换器内部的映射与上述的4中描述方式保持一致。
每一个AD转换器转换的数据结果会被映射成一个F个字节的数据帧,在许多应用中,frame clock的时钟频率会与sample clock 的时钟频率保持一致,但是同时JESD204允许AD转换器工作在过采样的状态下,S表示AD转换器过采样的系数,S必须为整数,如S为2时,表示AD工作在2倍的过采样频率上,在这种情况下,AD采样的2次的数据将映射到同一帧上。
设定每次AD转换的数据精度为N,如14bit转换精度的AD,N的值将会设定为14。
为了更精确的表示传输结果,会加入一些附加的信息,称为控制位(controlbit),控制位表示的具体意义系统设计者自己定,如控制位可以表示该次转换是否正常。
除了control bit,还有一种称为tail bit,该tail bit主要完成两个功能:
第一、在转换的数据无法整合为整数的数据帧时,用tail bit作为补充,如转换器的精度为13bit,控制位长度为1bit时,映射14bit的数据到2个字节的数据帧,会有2bit的余量,此时将用tailbit作为补充。
第二、 该tail bit可以根据数据的内0和1的个数,来控制数据帧的整体的极性,以保持数据帧的直流平衡,也就是可以让数据帧中0和1的个数保持一致。
根据上述描述的系统数据传输的拓扑结构,数据映射可以分为以下几个形式。
1.1 单数据通道映射
在这种模式下,AD转换器中的一个或多个数据转换单元的数据将映射到一个数据数据通道中,具体的映射规则描述如下。
1.1.1 正常采样的数据映射
本小节描述的是AD在没有过采样的情况下数据的映射方式。一个AD转换器可以包含M个数据转换单元,其实就是表示AD转球器可以包含M个数据转换通道,如图10所示,图中所有的数据都是从0开始计数,其中MSB表示数据的最高位,LSB表示数据的最低位,具体的数据映射规则如下:
采样的数据将线性的从数据采样单元0、单元1的顺序进行数据的映射。
数据采样的结果将先映射为word,也就是16bit的位宽,当采样的数据没有control bit时,采样的数据将直接扩展为16bit,当采样器有有效的control bit时,映射分为两种情况:
1、 每次采样数据的control bit映射对应采样数据的最低位以后。
2、 采样数据直接映射为16bit的word,而所有的control bit单独的映射成一个控制字,控制的字的第一bit对应的就是转换单元converter0的controlbit,如此类推。
CF表示数据帧中controlword的个数,在单传输通道的情况下,CF的值可以为0或者1,而数据帧中word的个数将表示为:M+CF。
当一个word中有效的bit位数不是4的倍数时,用tail bit进行补充,补充完成的数据如图10所示,被称为“NG“,当然这个步骤在系统对传输效率要求很好的情况下也可以跳过。一个转换word中,N’表示word中的有效数据的长度,同时N’是4的倍数,也就是说N’可以是4、8、12、16。而当N’的值大于N时,大于部分的值由controlbit或者tail bit补充。
注意:
在CF=0时,也就是说controlbit与sample data组合在同一个word中时,tail bit不会出现在sample data 和control bit中间,但是可以连接在control bit后面,也就是说word在映射是,顺序是sample data 、control bit、tail bit。
在CF=1时,sample data和control bit 将在不同的数据中,在这种情况下,sample data在映射时,他后面是可以直接连接 tail bit的。
Tail bit必须保证在映射完后,数据帧的长度是8bit的倍数,也就是保证帧长是整数个字节。
上述映射完的数据帧将被分解为F个octet传输到数据链路层。
图10:正常采样数据的映射
图11展示了两种不同的数据映射方式,一种是JESD204 2006年的协议版本,一种是2011年6月的版本。在2006年的版本中,tail bit只能出现在每一帧的结尾,而在2011年的版本中,tail bit可以出现在一个sample data的后面,图11便是两种协议下的数据映射方式。
图11:不同协议版本的数据映射对比
图12的例子是control bit单独放在一个word中的映射情况。
图12:control bit单独放置的映射示意图
1.1.2 过采样的数据映射
在过采样的情形下,数据的映射与没有过采样是的数据映射是相识的,如图12所示,图中参数S表示在AD过采样的系数。
图12:过采样数据映射
图13是一个4x12bit数据精度的AD在2被过采样情况下的数据映射图。
图13:过采样数据映射示意图
1.1.3 多数据通道的数据映射
如果系统连接了L条数据通路,每一个数据通路sample data的映射是相同的,但是,在最后一步时,LxF个octet会线性的分布到每一个数据通道中,其映射的方式如图14所示。
图14:多数据通道的数据映射
相对于单个数据通道的情况,多通道的数据映射需要注意以下几点:
参数HD控制单一的采样数据是否通过多数据通道进行传输。在HD=0时,在有效数据不能构成完整数据帧时,可以用tail bit进行数据填充,而当HD=1时,采样数据将会被拆分到其他数据通道中。
参数CF表示control word的个数,控制那个数据通道将传输control word。CF=0表示没有control word。
图15:没有控制字的多数据通道的数据映射
图15展示了16x(11+2)-bit的采样数据的映射情况,M=16表示16个转换单元,N=11表示数据转换精度,CS=2表示2bit的control bit。在没有单独控制字的情况下,每一次转换的数据将由11bit的采样数据和2bit的控制数据组成13bit的采样数据。所以在每一个word中,需要加入3bit的tail bit来保证N’是4的倍数。
图16:包含单控制字的多数据通道的数据映射
图16中,所有的control bit都组合到单独的控制字中,在这个情况下,数据传输效率大大的提升,数据帧的帧周期由32个减少到了28个。这种情况下,可以节约一个数据传输通道。但是这种方式也一定的缺陷,在图15的传输方式中,如果想单独传输转换器0的数据只需要启动数据传输通道0即可,而在图16的映射方式中,单独转换器0的数据将需要启动数据通道0、1和6。
图17:包含两个控制字的多数据通道的数据映射
图17中,所有的control bit都组合到2个的控制字中,在这个情况下,并没有节约数据传输通道。但是通道中有剩余的用于其他的采样数据。
1.2 SystemC中数据传输层的设计
对于此次的SystemC的模型,主要针对的设计目标是AD9250,所以在设计中,是根据AD9250的数据映射方式来完成该部分的设计。参考AD9250的数据手册可以得到以下的信息。
S:过采样的系数,AD9250中过采样系数S值恒为1,表示AD9250不支持过采样。
M:转换单元个2,默认M=2,表示AD内两个转换通道同时工作,也可以设定为1。
L:数据传输通道的个数,表示有2个数据传输通道,可以设定为1或者2。
N:数字转换精度 N=14。
N’:有效采样的数据长度,N’=16。
CF:控制字的个数,AD9250中CF=0,表示没有控制字
CS:control bit个数,AD9250中可以设置,范围为0:2。
K:multiframe中frame的个数,用户设置
HD:高密度传输,HD=0。
F:表示一帧中otect的个数,在数据传输通道L=1,M=2时,F=4,当L=2,M==2时,F=2。
C:control bit,表示control bit的具体意义,可以是4种情况:overrange、overflow、underflow、available。
T:tail bit
SCR:scrambler 使能
FCHK:自动计算和存储JESD204B的参数值
图18:AD9250的传输层映射图
如图18所示,AD9250内的包含2个转换单元(通道),2个Lane(转换通道)。根据参数设定,拓扑结构可以分为4种情况:
AD转换器内的1个转换单元对应1条数据传输通道
AD转换器内的2个转换单元对应1条数据传输通道
AD转换器内的1个转换单元对应2个数据传输通道
AD转换器内的2个转换单元对应2个数据传输通道
如上表所示,在不同的结构关系下,参数的值是固定的。
图19:AD9250的数据映射图
上图为数据设计的仿真图,a_stream_out/b_stream_out为AD采样输出的14bit数据,a_lane_Frame_Data/b_Lane_Data为加入tail bit后输出的帧数据。
评论
查看更多