一种基于NIOS的突发调制解调器设计及实现

2014-06-13 11:59石玉景宋峥东
无线电工程 2014年6期
关键词:调制解调器外设时序

石玉景,胡 波,宋峥东

(中国电子科技集团公司第五十四研究所,河北石家庄050081)

0 引言

NIOS是ALTERA推出的一种软核处理器,是一种完全面向用户,高度可定制的通用精简指令架构(RISC)的32位嵌入式CPU。用户使用SOPC工具对NIOS软核进行包括CPU内部结构、指令集补充等的高级设计,并在FPGA内设计外设接口,对软核进行功能上的补充与增强,最终由QUARTUS工具综合生成可以运行在 FPGA内部的逻辑结构[1]。NIOS的优势在于其灵活性,可以根据用户需要进行灵活的配置和裁剪。并且在FPGA内部使用逻辑设计工具可为NIOS设计各类外设,提高NIOS的数据处理能力。所有外设通过统一总线与CPU相连,提高了CPU对外设控制的效率。

NIOS数据处理方式是一种软件和硬件结合的数据处理方式,相比传统的FPGA、DSP数据处理,具有功耗低、配置灵活和处理效率高等特点。NIOS自推出以来,已经在数据处理、自动控制等方向得到了广泛应用。

基于FPGA和NIOS软核构建数据处理平台,完成了NIOS软核与FIR滤波器、RS纠错编译码等外设的接口适配,并实现了突发调制解调器的核心算法。

1 平台组成

本调制解调器开发平台由FPGA与片外SRAM存 储 器 IDT71V416、片 外 FLASH 存 储 器AM29LV065D、A/D变换芯片、D/A变换芯片以及其他外围电路组成,如图1所示。

图1 开发平台组成

SRAM存储器作为程序运行存储器,FLASH存储器作为程序存储器。A/D变换器将外部模拟信号转换成数字信号,用于解调器工作,而D/A变换器则是将调制器的数字信号转成模拟信号,驱动射频电路工作。

2 NIOS自定义外设接口

本调制解调器在设计时,需要实现RS编译码t FIR滤波等算法。一般CPU为串行计算,这些算法如果单纯由CPU实现,效率非常低。设计中采用Quartus工具的IP核[2]生成CPU的外设,由IP核执行算法操作,而CPU只通过外设接口完成数据的读写、时序控制等。

2.1 NIOS自定义外设接口的DMA模式

NIOS直接通过自定义外设接口对外设的读写速率是比较慢的,大约几十个高钟周期才能读写一次。并且由CPU直接读写需要CPU实时干预,严重浪费CPU时间。

设计中NIOS对外设的读写采用(Direct Memory Access,DMA)模式。DMA即直接内存存取,DMA模式将数据从一个地址空间复制到另一个地址空间,由CPU初始化这个传输动作,而传输动作本身由DMA控制器来实施和完成,不再需要CPU直接干预,既减少了CPU的占用,也大大提高了读写的速度。

2.2 NIOS与FIR接口的实现

FIR滤波在数字信号处理中必不可少,如果在NIOS内部采用软件方式进行FIR运算,需要耗费大量的CPU时间,而ALTERA提供了FIR的IP核,可根据用户需要进行定制,大大提高设计效率。

设计中由Quartus生成的FIR核,在时序上并不能与NIOS CPU直接相连,需要建立一个FIR时序控制接口,根据 FIR核运算的需要产生控制时序[3],连接关系如图 2所示。

图2 NIOS与FIR核连接关系

本设计中,FIR计算需要复数运算,为了提高运算速度,在CPU内部将实部和虚部组成一个32位无符号数,即将实部和虚部分别填充在该数的高16位和低16位,这样只需要一次写操作就可以写入到FIR核。

在进行读操作时,也采用此种方式,即将FIR运算结果按照一定精度组成一个32比特数,由DMA一次读入内部RAM。

2.3 NIOS 与RS编译码器接口的实现

RS码是一类具有强纠错能力的多进制BCH码,是目前比较有效的差错控制编码方式之一。RS编码作为一种重要的编码方式,已经广泛应用于数字通信、数据存储系统和数字电视中。

同FIR算法的实现方法相似,RS核不能与CPU直接相连,需要建立时序转换模块,按照RS编译码的时序需要将数据写入。设计中CPU通过DMA控制器将需要编/译码的数据写入时序控制模块,完成时序转换后写入RS编/译码模块[4]。同时,RS编/译码器将计算结果送入RS时序控制接口模块,在模块内完成时序转换、数据转存等,由DMA接口送至NIOS处理器。

3 调制解调器设计与实现

本调制解调器在设计时,关键是要将NIOS和FPGA两种处理方式区分开来,将并行处理的部分在FPGA内由IP核及VHDL逻辑实现,而算法实现部分由NIOS实现,这样做的好处是提高了算法的解析度和灵活性,简化了调试过程。并且,FPGA程序编译时间长,调试不方便,而NIOS固化在FPGA程序内部,只需要进行软件编译,不需要多次编译FPGA程序,大大减少了编译时间,提高了开发效率。

3.1 调制解调器设计

本调制解调器设计为一种突发的全数字BPSK调制解调器,发/收为基本等占空比,T、R时间分别约5 ms。位速率为100 kbps,采用4倍过采样设计,5 ms内采样数据约2 k。为提高数据处理速度,设计了2个独立的CPU核分别进行调制、解调操作,因此,CPU频率为100 MHz时,每个采样分配约500个CPU时钟周期,具有较高的冗余设计。

调制解调器原理框图如图3所示,图中编码、解码及滤波等在NIOS干预下由FPGA的IP核完成,而调制、解调核心算法由NIOS处理器实现[5]。这样的分工可充分发挥软、硬件的优势,提高设计的可行性。

图3 调制解调器原理

发送端将信源数据进行RS编码进行映射、调制成型后,添加用于接收同步的帧头,由D/A变换器转换成模拟信号发送出去。

在接收端,A/D变换器将模拟信号转成数字信号后,捕获到突发同步帧头,即认为接收到有效数据,开始解调。接收到的有效数据首先经过匹配滤波后,进行时钟恢复、载波同步,解调出数据后经过RS解码,恢复出信息数据。为了与发送端进行匹配和验证,设计中还进行了误码统计。

3.2 调制解调器主要算法实现

3.2.1 时钟恢复算法的实现

由于发送端与接收端时钟是不同步的,因此在恢复出发端数据来之前,需要进行时钟恢复及载波恢复。

Gardner算法[6]是 BPSK/QPSK 调制下常用的无数据辅助(NDA)时钟恢复算法,这种算法不受载波相位偏移的影响,也不需要载波同步完成,因此,本调制解调器设计时,时钟恢复先于载波同步[7]。

文献[6]中给出了一种基于代数多项式的内插滤波器设计,工作原理框图如图4所示。

图4 时钟恢复算法原理

A/D变换器以独立时钟Ts对接收信号进行采样,得到4倍过采样序列x(mkTs)。由于收发两端的时钟误差,mkTs并不是最佳采样位置,而kTi是经过内插计算估计出的最佳采样位置,令

采样点与最佳采样点位置关系如图5所示。

图5 采样点与最佳样点关系

可见对于最佳采样值,只需计算插值滤波器系数,并根据μkTs持续更新滤波器参数,即可得到最佳采样点的估值。

根据文献[6]中提供的算法,本方案中取4倍过采样,采用3阶立方内插滤波器。3阶立方内插滤波器使用4个乘法器11个加法器,占用资源较少[8]。

由于Gardner算法收敛时间较长,根据文献[9]中提供的算法,对采样数据进行循环处理,虽然算法收敛时间较长,但不占用有效采样值,且更适宜C语言实现算法[10]。

3.2.2 载波恢复算法实现

由于是突发调制解调器,传统的锁相环路等反馈控制算法由于捕获时间过长,无法快速恢复同步时钟及载波,本设计方案中采用V&V[11]算法进行载波相位估计和同步。V&V算法是一种经典的开环载波相位估计算法,在突发通信中应用非常广泛。V&V算法原理框图如图6所示。

图6 V&V算法原理

解调器在时钟恢复后,得到最佳采样点的值,但由于存在载波频率偏移,还需要进行载波恢复。

时钟恢复后的基带信号,同相及正交分量序列分别为xn,yn,令,根据算法,将序列经过非线性变换,得到

实际上,由于进行了非线性变换,因此,在对相位进行估计时,可能会存在π的相位误差,即V&V算法估计的相位模糊,一般的,可以通过差分编译码消除[12]。

3.3 测试结果分析

对本调制解调器进行测试时,发送端在FPGA内产生已知伪随机序列作为信源,在接收端,对解调后的数据进行验证。同时,由于CPU为串行处理,需要监测某次解调处理结束时刻不得超过下次解调开始时刻,否则2帧解调将互相冲突,引进解调错误。

通过试验证明,基于内插滤波器的时钟恢复算法及数据循环处理算法,可达到基本不需要数据辅助,是一种适于突发调制解调器应用的快速时钟恢复算法。结合V&V载波恢复算法,在突发解调器设计中,可大大降低位同步、载波同步时间,提高解调器性能。

4 结束语

通过将调制解调器按功能划分后,由硬件逻辑和NIOS软件分别完成,提高了设计的灵活性,减少了开发时间。特别是将以前需要硬件实现的算法由C语言实现,大大简化了算法特别是复杂算法的实现,提高了开发的效率。

硬件方面,通过双口RAM为数据交换的媒介,完成核心处理器NIOS与外设接口的数据交换,完成对FPGA内IP核的引用;软件方面,通过建立硬件与NIOS之间的逻辑接口,将原来需要VHDL硬件逻辑实现的算法转而由C语言软件实现,降低了设计难度。算法的软件实现带来的便利性不仅是降低难度、减少开发时间,另一方面,还方便了更高层数据处理,例如MAC层控制、应用层软件等,具有较高的应用价值。

[1]Altera Corporation.SOPC Builder User Guide[M].USA:Altera Corporation,2012:59 -66.

[2]Altera Corporation.Reed-Solomon Compiler User Guide[M].USA:Altera Corporation,2012:33-34.

[3]郑成根,邓 亮.基于SOPC的FIR数字滤波器的设计[J].集成电路应用,2006(1):33 -36.

[4]叶才炜,李式巨.RS编译码的c语言实现[J].无线电工程,2003,23(8):46 -48.

[5]赵会宾.8DPSK传真信号解调/再调制的DSP实现[J].无线电工程,2005,35(2):50-52.

[6]GARNDER F.M.Interpolation in digital modems-part I:fundamentals[J].IEEE Trans on Communication,1993,41(5):501 -507.

[7]李 滚,王瑞红,秦开宇,等.一种改进的定时恢复方法[J].电子测量与仪器学报,2009(7).46-49.

[8]张锦钰,闫 毅,姚秀娟,等.超高速数字解调中QPSK信号的符号同步研究[J].电子测量技术,2009(6):12-16.

[9]万晓峰,张 彧,姜 龙.无线突发通信全数字接收机时钟恢复算法[J].清华大学学报(自然科学版),2010,50(5):801 -804.

[10]朱雪阳.基于Gardner算法的位定时同步研究[D].南京:南京理工大学,2010.

[11]VITERBI A J,VITERBI A M.Nonlinear Estimation of PSK Modulated Carried Phase with Applications to Burst Digital Transmission[J].IEEE Transion Inform.Theory,1983,29(4):543-551.

[12]张永杰,韦 维.高速突发解调器的快速同步技术研究[J].无线电通信技术,2009,35(5):29-31.

猜你喜欢
调制解调器外设时序
清明
基于不同建设时序的地铁互联互通方案分析
基于FPGA 的时序信号光纤传输系统
基于模体演化的时序链路预测方法
外设天地行情
外设天地行情
外设天地行情
外设天地行情