TMS320C645x DSP SRIO寄存器(三)——串行解串器(SERDES)

本文是对TI的TMS320C645x DSP SRIO User’s Guide中5.12~5.14节内容的搬运
与2.3.2.1~2.3.2.3节内容相关

宏配置(SERDES_CFGn_CNTL)

虽然n为0~3,但实际上只有n=0对应的寄存器是有用的。对n=0的寄存器的配置对四个端口同时有效。
SERDES_CFG0_CNTL

  • D9-8 环路带宽(Loop Bandwidth)
    串行解串器有一个独立的PLL产生时钟,用于时钟恢复。PLL的参考时钟(RIOCLK)的抖动对PLL输出的时钟有很大影响。可以对环路带宽进行控制,改善时钟质量。
    (00)- 基本,环路带宽为参考时钟频率的1/12;
    (10)-窄带,环路带宽为参考时钟频率的1/20,环路带宽更小,但也更容易引入噪声,性能提高或是降低不好说;
    (11)-宽带,环路带宽为参考时钟频率的1/8;
  • D5-1 PLL倍频系数(MPY)
MPY倍数
000004
000015
000106
001008
0010110
0011012
0011112.5
0100015
0100120
0101025
  • 第0位 PLL使能,使能(1),不使能(0)
    将这一位置一后,需要等待1us,寄存器才会稳定,再经过不超过200个参考时钟周期,PLL能够锁定到需要的频率,前提是在这一段时间内,PLL的参考时钟保持稳定。

接收通道配置(SERDES_CFGRXn_CNTL)

n=0~3,分别对应3个端口
SERDES_CFGRXn_CNTL

  • 首先,为了让某一通道能够接收事务包,需要将第0位(ENRX)置一。
  • 可以通过D15-14配置信号丢失检测,一旦发生信号丢失(有可能某一高电平的信号电平不够高,没有被正常识别),就冻结时钟恢复算法,防止错误的信号影响时钟的恢复。
    • (00):不检测信号是否丢失;
    • (01):高阈值检测,阈值范围在85-195mVdfpp(差分峰峰值)
    • (10):低阈值检测,阈值范围在65-175mVdfpp
  • D18-16:时钟恢复(CDR,CLock/Data Recovery)算法通过这三位进行配置,该算法主要作用为改变采样时钟的相位,使采样正好发生在两次数据变化中间。算法分为“一阶”和“二阶”,两者实现的基础是相同的,都是当满足一定条件时,改变采样时钟的相位。
    手册中提到,当两个连续的数据不同时,两位数据之间可以得到一个相位样本。因为两个数据不同时,必然有一个跳变,可以据此与采样时钟的通过一定组合逻辑,将相位差转换为脉宽,进而计算得到当前时钟的相位,判断是超前还是滞后。
    算法实现中,将8次数据样本作为一个“投票窗口”,这8次数据样本可以得到9个相位样本(不知道为什么有9个?可能是把这8次数据的前后也都算上了吧),然后做一个统计,判断这几次的采样时钟是主要超前还是滞后,接着进行调整。
    共有8钟模式,其中后四种可以理解为在前四种的基础上的改进。
    • (000):只采用“一阶算法”,也就是直接根据统计结果调整相位,每次调整±488ppm(part per million),也就是每次调整百万分之488的相位;
    • (001):同时采用“二阶算法”,二阶算法依据两次统计的净插值进行相应的调整,具体不是很清楚,能够调整相位变化率。这一模式采用精度最高的二阶算法,但是响应时间长,锁定慢,适合相位差是固定的场合。
    • (010):二阶算法,中等精度;
    • (011):二阶算法,最低精度,但响应快;
    • (100):(000)模式下,增加快速锁定功能,当相位偏差比较大时,每次调整±1953ppm,当出现…10101010…序列时,表明相位在超前和滞后之间不断来回切换,接着每次的相位调整恢复正常,即±488ppm。
    • (101):(001)模式下,增加快速锁定功能,同上;
    • (110):(010)模式下,增加快速锁定功能,同上;
    • (111):(011)模式下,增加快速锁定功能,同上;
  • D13-12:ALIGN,符号对齐,8b/10b编码中有一种K28控制符号,这种符号被很多传输协议使用,用于事务/数据包定界。对于“符号对齐”的概念还不是很清楚,现在只知道有这种符号,对齐可能是为了方便后续处理吧。(说实话,这个字段没太看懂……ORZ)
    (00):不采用符号对齐
    (01):K28控制符号对齐
    (10):对于不支持K28控制符号对齐的系统,可以通过ASIC内核的逻辑控制,使其支持任意符号对齐系统。
  • D22-19:均衡器(EQ,Equalizer),通过衰减低频分量来补偿通道的内插损耗。整个均衡器的模型是一个一阶的高通滤波器。均衡器的响应可以配置为通过内部算法自动调整或是固定它的低频增益或零点频率。(对我来说这个均衡器还是很抽象……ORZ)
    • (0000):最大低频增益,也就是没有这个均衡器
    • (0001):低频增益和零点频率都自动调整;
    • 其他值要不就是保留的,要不就是低频增益自动调整,零点频率固定的,固定值有:135MHz,156MHz,216MHz,304MHz,402MHz,573MHz,805MHz,1084MHz。
  • D10-8:TERM,唯一有效值(001),优化接收敏感度;
  • 第7位:INVPAIR,控制参考时钟反相,不反相(0),反相(1);
  • D4-2:BUSWIDTH,总线宽度,唯一有效值(000),10位并行总线;
  • D6-5:RATE,工作速率,有全速,半速,四分之一速率可选
    • (00):全速:在PLL输出时钟的每个周期内, 采样两个数据;
    • (01):半速:在PLL输出时钟的每个周期内, 采样一个数据;
    • (10):四分之一速率:每两个PLL输出时钟的周期,采样一个数据

发送通道配置(SERDES_CFGTXn_CNTL)

n=0~3,分别对应3个端口
SERDES_CFGTXn_CNTL

  • 与接收通道类似,该寄存器的第0位控制接收使能,置一有效。
  • 第16位:ENFTP(Enables fixed phase relationship of transmit input clock with respect to transmit output clock)
    必须置一才行
  • D15-12:DE(De-emphasis)可以调节输出信号的幅度。
    若为(0000),则不衰减。另外可以设置15种衰减程度,用来补偿高频信号的衰减?
    我是这样理解的:在事务发出前输出的信号和发送事务的信号幅度有一定差别,事务发送时的信号幅度较小,因此需要补偿。
  • 11-9:SWING,设置输出摆幅
    共有8种输出摆幅可以设置,125-1250mVdfpp,(000)对应幅度最小,(111)对应幅度最大
  • 第8位:CM,共模调整。当输出摆幅的设置超过750mV时,会引起共模减小,导致波形失真,此时需要对信号的共模进行提高。
    • (0):不调整共模
    • (1):将共模提升输出信号差分幅值的5%
  • 第7位:INVPAIR,同接收
  • D6-5:RATE,同接收
  • D4-2:BUSWIDTH,同接收
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值