This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

C6670 AIF2 开发中遇到的若干问题,求答疑



C6670 AIF2 开发中遇到的若干问题,求答疑

我正在进行AIF2 的学习, PDK中的例子和 UG 当中的说明有些不清楚的地方,特来求助.
使用环境:LTE FDD 20MHZ, CPRI 传输模式, 使用PKTDMA, IQ数据发送到我们自己的FPGA中。

1: 我知道是在设定的AT event中将desc push到 TXQ 中, 这个event 的第一次触发是什么时候, 或者是什么情况下触发的。 是说在TX,RX同步的那一刻进入的吗? 如果不是的话我怎么知道什么时候 CPRI的协议已经走完,可以发送数据呢? 第一次进入event0 就是 10ms frame的边界起始吗?

2: LLD当中的 CSL_Aif2AtSyncSource 是什么意思, 几个选项 RP1, CHIP_INPUT, SW, RM_AT 等各代表什么, 具体使用中使用哪个呢, 从DSP 发数据到FPGA。

3: AIF2和外部CPRI设备连接时遵循严格的CPRI协议了吗, 还是不需要外部设备做严格的CPRI协议? CPRI协议下TM状态机为什么在非自环,未连光纤下还是到达 SYNC 状态, RM倒是不会到ST3. 我用一个光纤连板A的tx 到板B的rx,板A发送数据为什么板B 也能收到? 使用的SYNC源是问题2所说的 SYNC使用SW SYNC.

4: 例子中使用的 triggerFsync 是干嘛用的, 实际传输中还需要吗?

5: 具体关于PHYT, RADT 的含义及在AIF2中的作用能帮我讲解下吗,谢谢。

希望得到解答,也可以指出在UG中的哪一节我再看看, 谢谢指导。

  • 首先,当AIF被使能之后,TM就会发送K28.5,进入IDLE状态,等待接收同步触发信号,这个同步触发信号可以选择“ RP1, CHIP_INPUT, SW, RM_AT”中的一个,SW是软件寄存器触发,在EVM板上通常用它来测试AIF.实际的应用中通常选择CHIP_INPUT,表示用PHYT_SYNC管脚触发,此时PHYT_SYNC通常接的是一个10ms的周期脉冲信号。RM_AT是用某条link接收到的脉冲(AIF在接收时,会从接收到的数据恢复时钟)作为触发信号。RP1是OBSAI协议中的一种时钟。所以当AIF接收到同步触发信号后,TM就会进入RE_SYNC或SYNC状态(因为TM是主动发送,所以不会像RM一样要接收到一定数量的K28.5后才进入SYNC)。而当AIF接收到同步触发信号时,AT就开始计数了,并按照设置产生event。所以event不是要等同步之后才产生的。所以实际上发送端是不知道什么时候该发送数据的(因为如果不是loopback模式时,发送端是不知道链路状态的,只管发送数据就可以了)当然你可以在你的应用中设计一些握手信号,等接收端同步之后,发送端才发送数据。至于PHYT,和RADT,你可以简单的认为就是一个用来产生event的计数器,AIF内部的时序都是以PHYT为参考。

  • 你好, Lin Feng1 , 谢谢你这么晚还回答我的问题。
    根据你的答复,我又看了UG对TM有所理解,因为LLD里把TM_LK_CTRL[0]的 LOS_EN 置0,所以TM state初始化后忽略RX的LOS,从IDLE 进入SYNC或RE_SYNC.

    现在还有些疑问如下:
    1: 我在使用光纤自环的情况下触发信号使用 CHIP_INPUT 或 PHYT_CMP信号均无法触发, 是不是还需要配置其他的模块?而且大部分测试程序里是PHYT_CMP_SYNC, 这个是什么含义呢?

    2: 对于TM来说,以 subframe event为例, 既1ms一次, 共计14symbol, event的序号从1开始,那么第一个event里tx 应用需要组的desc ps区symbol num是多少, 应用第一次发数据是在类似19,29,39的边界处开始还是应该在20, 30,40这些边界处开始, 既应该在哪个event内push symbol =1..14的这14帧?

    3: 当使用触发信号触发 AT与TM,才能进一步触发event, 而RM是自己的状态机达到SYNC状态,这样说明TM 和RM完全是异步的。 那么每次RX的接收岂不是不在边界处, 既不能确保event内收到 symbol 1..14类似的帧,而有可能是5..19, 20..34这样的。而且如果触发信号太晚, 不能即时在event内回收rx desc, 会导致AIF RXFDQ不足而出错?
    这是几个疑问,谢谢回复。

  • 1。PHYT_CMP_SYNC是说RadioTimer由PHYT触发。PHYT和RadioT都要选择触发源。请查看at_control1寄存器。你说的“无法触发”是无法触发event 还是无法触发AT?

    2。首先,什么时候push数据到TX是应用来设置的。即你可以将subframe event设置在PHYT帧边界到达之前的N个clock,或者说可以设置为subframe event提前PHYT帧边界1个符号发生。这种设置下,应用在subframe event中断中将1ms的14个符号都push到TXqueue中,AIF会在PHYT帧边界的时候开始发送14个符号数据。

    3。如果是自环测试,在AT接收到触发信号前,TM和RM都不会进入SYNC,而不是“RM是自己的状态机达到SYNC状态”

  • 你好, Lin Feng1。

    1: 是event 中断设了断点发现未调用。

    2: 这几天有看了详细看了AT模块,没有找到你说的“即你可以将subframe event设置在PHYT帧边界到达之前的N个clock,” 在哪一块?

     但这两天我修改AIF2的test例子测试发现对于FDD来说,在20, 30, 40这些N×10处填写 LTE 140symbol 的最初14symbol是可以使系统工作正常, AIF2应该在对应的21,31,41处发送,这个理解对吗? 还有就是对于FDD而言是不是必须要每个subframe都要填写数据,不能因为该subframe没数据就空着不填TXQ?我测试发现如果不填会导致本subframe后续部分都是0, 下一subframe才能恢复。

    3: 我主要是关心tx和rx是异步的。在subframe的每个 event中, 我填充TXQ是按照subframe边界,即0--13, 14--27类似,但每个event内rx 内的数据应该是无法保证是在subframe边界处的吧, 即txq push 42--55时rx可能收到30-43,数目是14但symbol不对齐subframe的边界,这个是正常的而且需要我的应用自己处理,这个理解是否正确?

    4: 还有我能理解 pi 对应 接收数据对应 phyt 的偏移,我们又需要设置pi min , pi max,这个pi究竟是给我们用还是给aif2使用.

    对于 linkConfig 中的pi, pe1Offset,  pe2Offset,  deltaOffset, 等等,感觉这些参数是有联系的但是自己理解不了,也不了解它们在整个光纤拉远系统中处的位置与作用。 有时间的话希望你能帮我解答一下, 或者帮我指出在UG中的哪一部分需要我重点看。

    谢谢建议与回复。

  • 光纤拉远下行主要配置pe,请问上行怎么处理光纤时延呢?请您指教!
  • 不需要处理吧, 固有延时又没法降低
  • 上行时延是从天线口到AIF的PE上行端(IQN里面叫AID上行端)的延迟,从而使上行的接收数据是尽可能对其在帧边界的。