本帖最后由 不足论 于 2014-12-28 23:24 编辑
好难看到eeworld出分享的活动,作为eeworld的一员,我来说说我最近做的一些东西吧,鉴于保密协议,我是不能透露我这次项目的具体内容的,所以,现在只单纯说些技术上的东西。之前有参与eeworld的瑞萨活动,得了三等奖,挺难忘的,也完成了一个看似不能完成的毕设。现在来说说最近的吧,我最近参与的是一个FPGA+DSP+MCU的硬件平台。
这次设计采用的是FPGA+DSP+MCU的硬件平台,FPGA因其并行性特点,广泛用于数据的采集工作,DSP则把FPGA采集后的数据进行处理,当然现在有一种做法是FPGA充当DSP芯片的数字信号处理的任务,但是,2片级联的FPGA据说造价比较高,而DSP已经很成熟,功耗更方面都是上佳选择,FPGA+DSP还是比较主流的做法,而单纯使用FPGA就能完成所有的任务,还是比较少,MCU则作为控制整个系统的控制作用,程序更新,远程控制等等功能。我参与的是FPGA这方面的工作,负责接口部分,算法是其他同事完成,印象最深刻的是AD936X的编写和调试,并不是它多么难,当然单纯的它其实不难,而是在于深刻,首先是看datasheet,了解其时序要求,一切不以时序为准的设计都是在浪费功夫,解决AD和DA的关键在于完成跨时钟域(RAM或者FIFO)以及DDR的使用,如果不解决跨时钟问题,单纯的按其时序进行代码的编写,将使系统不稳定,还记得大学的时候用单片机写时序驱动,隐患很多,因为这次采用的是vivado平台,网上以及身边资料很少,因为赶任务,在对vivado的IP核的一些参数不熟悉的情况下直接使用,导致了一些问题,modelsim的仿真分析非常重要,但看vivado的IP使用手册比之更重要,因为手册上会对IP有个详细的说明。在使用AD芯片的时候,需要使用它的官方软件配置其寄存器,每一种模式下AD芯片将会具有不同的功能,双收双发,单收单发,而且该芯片功能也比较强大,可以对外发信号,比如DDS,直流等。所以,调试该接口,既需要懂FPGA,也需要能够使用AD软件进行配置。
说说调试方法吧,测试AD时,用信号发生器接于AD936X,用vivado观察,并把数据提取出来,用快速傅里叶变化(FFT)分析,换几个频率多试几次,观察FFT和频率偏移,确认无误后,说明AD模块正常;接着测DA,接于频谱仪,通过改变频偏,看频谱仪的变化,按理说,输入频偏1MHZ,频谱仪也会频偏1MHZ,这个是分左右,要注意。
我说的这些只是这个项目中接口的一小部分内容,操作起来也不是很难,但是印象深刻在于,长时间在这种高强度的压力下,身体越来越弱,直到那天我调试AD936X接口时,肚子剧烈疼痛,后面直接被送去了医院,经检查是阑尾炎,哎!在此提醒作为工程师的大家,再忙也需要注意身体,项目做不出来顶多是被开除,但是身体犯了病就是自己的,疼也疼不到公司去。