工作中遇到的难点

其实,也工作四年了,遇到的困难也挺多的,可惜没有一个好的习惯,把每次犯的错误记录下来,现在回想起来,这些记录,或者说是总结都是非常重要的,其一可以温故而知新,以后遇到同样的问题,可以快速的反应过来,查找原因;其二是和同事或者同行交流的时候,可以快速说出想说的,而不是临时去想词,磕磕绊绊还坏事,这样渐渐的别人对你的信任度会越来越低;其三是如果以后看到自己写了这么多东西,会不会觉得很有成就感呢。闲话少说,整个lte物理层系统可以说是分算法和实现两个部分,算法主要是如何解出lte信号得到正确的信息,主要包括ADC,FFT/IFFT,信道估计,均衡器设计,解调和译码,每一个模块都要很多学问。我工作的重点主要是实现这些部分,主要是在Intel Xeon平台和Freescale B4860平台上进行的。难点有很多,但总体上大概有如下几点:

其一,要花很多时间去明白什么是LTE系统,那么我们要看3GPP标准,去了解各种各样的信道,每个信道的参数代表的含义,等等,如果没有基础的话,这个过程大概要持续一年,然后慢慢地就知道要做什么,怎么样去做。整个LTE范围太大了,包括物理层,MAC层,核心网,等等,我到目前为止,感觉也就是对物理层有一些积累,上层的东西不太懂。这也是当前的通信市场上,只有几个大鳄在玩,小公司真心玩不起,需要投入的人力物力太大了。

其二,如果把LTE基站当作一个黑盒子,那么我们如何验证它的正确性呢。一般有各种各样的仪器去测它,比如说Keysight, R&S公司的LTE信号发生器和分析仪,花钱买仪器,买licence是一回事,如何用又是另外一回事。基本上每个仪器前面和后面都有很多插口,trigger口,时钟同步口,等等。配置界面有很多参数要配置,一个简单的发射功率就需要去试很多次,最后,很有可能陷入自我怀疑中,是我们的LTE基站或者终端错还是我们配错仪器的参数。太痛苦了,一定需要很多耐心。

其三,实现的实时性。整个LTE物理层系统是以1ms为调度的,如何在各种SOC(system on chip)下,在1ms中做完所有任务,就变成了一个critical的课题。运用各种平台自带指令集,如Intel AVX2, 做加速是一个必须选择。其次,在做单元模块的时候,要严格控制处理时间,需要一个良好的编码风格。还有就是在实时系统下,如果debug又是一个大问题,不能加printf吧,首先,要有一非常好的软件架构,从单元测试,到最后的集成测试都需要完备。如果集成测试的时候,有些功能fail或者缺失的时候,我们可以分析该功能可能受到哪些单元模块影响,通过退回单元测试,来定位问题在哪里。其次,一些编程手段可以做,比如说,我们总是发现在某些subframe会错,那么我们可以通过保存当时的输入输出参数,然后不管是在程序终止时保存到文档中还是定义一个debug API 然后把数据通过udp传出来实时定位问题到哪里,都可以。

以上三点看似简单,但实际情况很难把握,要耐心和细心。接下来,我总结一下我这一段时间在fresscale平台实现lte检测仪的下行TM3/4功能遇到的一些问题。

1. 一开始, 我老老实实的做MMSE均衡器的单元模块及测试。因为时间比较赶,没有测花了时间。花了两三个星期做好

2. 然后直接把MMSE均衡器模块加到整个PDSCH过程中,配好input/output参数,直接上仪器测,没有通过,不知道问题在哪里,有可能仪器没配好,抓rf数据出来,用MATLAB解不出来,不过直觉告诉在把MMSE整合到整个PDSCH过程中没有做好。花了一个星期

3. 退回PDSCH单元测试,果然有错误,调了一个星期可以和MATLAB对上数。 花了一个星期

4. 直接上仪器,还是没有通过,不知道是没有接好线还是配错参数。找有经验的工程师帮助,发现是下行TM3/4需要两根天线,但是Keysight信号源只有一根天线,我用两个独立的信号源去产生TM34信号,可能导致两个信号不同步。所以偶尔行偶尔不行。不知道怎么解决,不过看到有时候结果pass,那么我就当它pass. 花了一个星期

5. 在信号源调整RB的数目,发现数目大时,解不出来,整个系统crash。定位发现当程序跑到MMSE均衡器中时,如果RB数过大时,容易陷在里面出不来,导致1ms内做不完任务,调度器出错。其二换带宽时候,发现怎么样也解不出来信号。换R&S信号源, 重新测,同样的结果。 花了一个星期

6. 忽略带宽问题,着重解决MMSE均衡器优化问题,同时准备一个少RB可以work的版本给客户。客户投诉,没有实现到预计的功能,并且时间超时了。于此同时,小带宽fail的问题通过降低信号源的发射功率解决了。花了一个星期

7. 接着和客户沟通,如何解决MMSE优化问题,有可能客户不会给钱了,项目崩盘。下个星期的事情。

虽然,这个过程中成长了很多,但是毕竟是以成败论英雄的,希望下周可以让客户满意吧。

这个项目反应了我很多不足:

1. 没有明确的时间计划,或者说,没有明确任务的难度,一味地认为不会很不难,很容易过,于是就不测MMSE时间,不做pdsch的单元测试

2. 在开发的时候,脾气很不好,因为时间比较紧,有时候对同事很不耐烦,跟同事不够友好

3. 没有认真写进度报告,导致老板对我的困难不够了解,以致不满意

4. 在做第四步的时候,很不自信,认为自己做不出来,想的太多,一度想放弃,导致有那么几天没有工作效率很低。很感谢帮我调测试环境的同事!

猜你喜欢

转载自www.cnblogs.com/biggerjun2015/p/10056209.html