- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于FPGA的PPM调制解调系统设计
实现PPM解调时的帧同步传统上多采用基于锁相环的方法。即采用锁相环锁住"肩并肩"的两个光脉冲,如图1所示,帧3与帧4之间的两个光脉冲即为"肩并肩"光脉冲。很明显出现这种光脉冲的情况相对较少,尤其是随着调制阶数的增大,出现的概率势必减小,严重影响了实现帧同步的速度。此外,由于PPM信号的连"0"码过长,使用锁相环不能很快锁住,而且很易失锁。这里利用PPM信号自身特性,采用数字逻辑电路提取出字同步时钟。
由16-PPM示意图,发现PPM信号有三个特点:其一,每个PPM帧由16个时隙组成,但其中有且只有一个时隙是高电平,其余的都是低电平;其二,若连续出现16个低电平,说明这16个低电平一定不处在同一个PPM帧当中,而是在相邻两个帧中;其三,若连续出现2个高电平,说明这2个高电平只能在相邻的两个帧当中。
基于PPM信号上述三个特点,在FGPA中设计提取帧同步信号过程如下:接收到的PPM调制信号输入到串/并转换单元,在同步时隙时钟的控制下,将串行的PPM调制信号以16位并行输入,这个过程实际上就是一个16位数据移位的过程。再对并行输出的16位数据进行逻辑判断,若这16位数据中有且只有一个高电平"1",则输出高电平,其他情况则输出低电平"O"。与此同时,计数器对时隙时钟进行计数,计数器每计16个次产生一个进位高电平"1",其他时候则输出为"O"。将计数器输出与逻辑判断输出进行相与。若两者都为高电平,相与结果为"1",则输出一个帧同步信号,其他情况下则不输出帧同步信号,但若逻辑判断结果为"0",而计数器输出为"1"时,需将此时与门输出的低电平与计数器输出的高电平进行同或运算,得到低电平"O",并将此低电平跟控制计数器的时隙时钟相与,使计数器暂停计数一次,从而通过扣除时隙时钟的方式逐渐达到帧同步。具体设计流程如图3所示。

4 系统仿真
整个系统在Quartus 8.0平台进行仿真,图4为PPM调制仿真图。ser_in为串行输入的数据,parr为串/并转换后的并行数据,data_out即为PPM调制后的输出信号,从图中可以看到PPM调制正确。为了更好地展现程序逐渐同步的原理,选择从4-PPM信号中恢复帧同步,如图5所示,从仿真中,不难看出帧同步输出framclk_out逐渐同步的过程。

图6为PPM解调仿真图,图7为系统整体仿真,即串行输入数据经PPM调制后,解调程序从已调信号中提取帧同步,并解调出原有串行输入数据,从图7中看到串行输入数据与串行输出数据之间存在一定的延迟,一方面是因为硬件系统自身存在延迟,更主要的原因是由于在PPM调制时,比较器需等待第一次串/并转换完成再进行比较,并输出PPM信号,而解调是在基于调制后PPM信号进行的,从而导致了仿真中的延迟,但在实际运用中这个延迟并不存在。

5 结语
用Verilog HDL语言设计完成了基于FPGA的PPM调制解调系统,并在Quartus 8平台上对调制过程、帧同步过程和解调过程以及整个系统进行功能仿真和时序仿真,从仿真中可以看出整个系统达到了预期的目标,能够高效稳定地完成PPM调制与解调过程,为将来的实用化打下了基础。但另一方面,也在仿真中发现帧同步时间偏长,需要进一步改进。
上一篇:城域网高速演进
楼道交换机焕发异彩
下一篇:对当代移动通信标准化特点的探讨与思考


