我正在使用 模块AIF2 进行测试, 遇到的一些不清楚的地方,希望得到一些建议:
我使用的AIF2 模式是 LTE FDD, CPRI 模式。
1:使用AIF2的PKTDMA时定义 LTESYMBOLSIZE 如下
#define LTESYMBOLSIZE ((AIF2_LTE20_FFT_SIZE+AIF2_LTE20_CYPRENORMAL1_SIZE)*4 + 16)
不清楚为什么需要 乘4, 这个4是从哪来的?
2: AIF2 必须要在 slot event里填充TXQ ,回收RXQ吗, 这些的话对上层的发送接口怎么做比较方便?
3: CPRI 即使没有数据传输也不能中断, 此时 AIF2 的PE是不是会在空闲时自己组 cpri帧发,这时租的帧 数据是不是都是 0呢?
谢谢各位建议
Lin Feng1:
1 要看LTESYMBOLSIZE具体是怎么用的了,猜测“4”表示4个字节?
2AIF2可以在slot event ,symbol event或者其他事件里进行queue的操作,没有固定要求,只要满足时序就行。一般是在symbol event中进行发送,用PDSP进行描述符的回收
3严格地说,是TM发空帧。数据为0
zi yang:
回复 Lin Feng1:
你好 ,Lin Feng1 , 谢谢你回答我的问题, 后来经过研究我也有了自己的理解和新的几个问题请教:
1: 4 应该时指4 bytes, 因为IQ数据分别是15 bit I+Q = 30bit, 扩展后为32bit = 4byte。
2: 要在 event 提供的 isr里将 desc 填充到 TXQ里, 那么给上层接口有没有比较好的模型, 既上层要发送数据时怎么暂存,然后我再在 symbol event里怎么获知上层要发送数据? 例子里面都只是很简单的测试,没有这方面的概念
3: 这个的确如你所说, 是cpri 的全0帧。
现在又有了一个新的棘手问题, 查了2个星期没有头绪:
环境是CPRI 15bit IQ, 4X, 2AXC, LTE 20MHZ, 随便使用例子里的 cpri lte相关例子测试结果都一样, 当通过AIF2 LOOPBACK测试一些特殊值发送时接收会出错, 如发送 0x88888888会收到0xc0000000, 发送0x7ff77ff7收到0x3fff3fff, 发送0x8ff78ff7会收到0xc000c000, 这是怎么回事?
还有就是对于cpri 内部扩展时15bit –>> 16bit, 那我发送接收后每16 bit应该有1bit丢失, 可我发送0xffff ffff, 接收到的还是0xffffffff 没有丢失, 关于16bit 和15bit的内部转换是在哪一位呢, 暂时没在AIF2 UG中找到具体说明.
谢谢回答.
zi yang:
回复 Lin Feng1:
恩 谢谢回复,如醍醐灌顶一样。
我在sprugv7d.pdf 的7.7.1节刚看到这种情形的解释, 现在能看懂了。
谢谢