PPM基带系统的建模与VHDL设计 课程设计.doc
课程设计说明书 10-11 学年第 2 学期学 院:信息工程专 业:通信工程 姓 名:学 号:课程设计题目:PPM基带系统的建模与VHDL设计课程设计地点:信息工程学院指 导 教 师:系主任:2011年7月11日一摘要光通信系统大多采用设计为强度调制/直接检测(IM/DD)的系统,调制方式也有多种,脉冲位置调制(PPM)是一种正交调制方式,相比于传统的开关键控(OOK)调制,它具有更高的光功率利用率和频带利用率,并能进一步提高传输信道的抗干扰能力。此外,PPM降低了光辐射平均功率的要求,小辐射功率对延长发射光源工作寿命特别重要,能有效提高整机系统的使用寿命。本文从工程应用出发,根据PPM的基本原理和数学模型,从脉冲位置调制的基本原理出发,基于FPGA对PPM调制解调系统进行设计,并用VHDL语言完成了时序仿真。整个设计过程的主要内容是使用VHDL语言编程在FPGA上实现一个PPM基带系统,该系统能实现PPM信号产生、PPM信号解调等功能。主要使用Quartus II工具软件编写VHDL程序实现该PPM基带系统,并下载程序,在可编程逻辑器件实验板上进行测试。关键词: 脉冲位置调制(PPM) FPGA VHDL 模型 仿真二正文:PPM(脉位调制)基带系统的建模与设计PPM的原理是将一段时间分成M等分,每等份称为一个时隙,在一帧的时间内的某个时隙发出一个脉冲。这一帧时间就是一个PPM信号,它包括M个时隙和一个保护时间。设一帧传输时间为T,那么信息传递速率 bit/sPPM调制与解调系统的主要功能如下:对输入的数字信号进行调制得到窄脉冲PPM信号以便在信道上传输;接收端对接收到的PPM信号进行解调还原出数字信号。PPM调制实际上就是一个计数输出脉冲的过程。时隙分频器的分频比由脉宽控制信号控制,帧分频器对时隙信号计数,当计数值与调制数据相比较,当二者相等时就输出脉冲,当计数值与调制的进制数相等时就输出帧信号。输出的PPM脉冲信号和帧信号经过输出模块输出给解调器。同时时隙信号也输出给解调器。 PPM解调器计数其对时隙信号计数,当出现PPM脉冲时就输出计数值,帧信号的作用是对计数器清零。解调后的数据经过输出模块输出。一.PPM基带系统的模型产生PPM(Pulse Position Modulation)脉冲位置调制的方法很多,其中一种简单的PPM调制与解调如下图所示。图中的PPM调制部分是由串/并变换、二进制分频器、比较器和窄脉冲形成器构成;PPM解调部分是由整形电路、时钟提取电路和脉冲位置检测电路和译码器构成。PPM信号解调串/并变换器比较器二进制分频器脉冲位置调制窄脉冲形成器整形电路时钟提取译码器PPM信号产生信码时钟信码图1:PPM基带系统模型1. PPM的原理:将一段时间分成M等份,每等份称为一个时隙,在一帧的时间内的某个时隙发出一个脉冲。这一帧时间就是一个PPM信号,它包括M个时隙和一个保护时间。2.PPM调制的原理:图1所示的串/并变换器相当于一个二进制加法器,设输入信号为a,当a为1时,经过加法器变为10,当a为0时,经过加法器变为00.图1中的二进制分频器是4分频器,输出高低2位二进制信号。比较器用于比较分频器输出的高位与加法器的高位,以及分频器的低位与加法器的低位,当它们相同时则输出为“1”,否则输出“0”。由于分频器的2位输出对应四种状态(00、01、10、11),每种状态是依次输出的,这也就说明不同的状态对应不同的时间位置,而串/并变换器只输出两种状态(00、10),这与分频器输出的四种状态中的两种状态相同,在比较器中只有在分频器输出(00、10)这两种状态时才输出为“1”,其他情况下则输出“0”,又由于在分频器的一个分频周期内,分频器只输出四个不同2位码,那么在一个分频周期内,比较器只输出一个“1”脉冲。该脉冲的起始位置根据信码的电平不同而变化。这样就可得到随信码的电平不同输出脉冲起始位置不同的输出信息。脉冲形成器是通过一个D触发器对比较器的输出信号进行整形即进行一个时钟周期的延迟并反相后再与比较器的输出信号相与,这样就得到了窄脉冲PPM信号。三.PPM信号产生的各功能模块的VHDL程序设计 1.加法器(串/并变换)的程序设计library ieee;use ieee.std_logic_1164.all;entity jiafaqi isport(a:in std_logic; o1,o2:out std_logic);end entity jiafaqi;architecture fh1 of jiafaqi isbegin o1<=(a or a)and(a nand a);o2<=not(a nand a);end architecture fh1;2.分频器的程序设计library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity fenpin isport(clk:in std_logic; outp0,outp1:out std_logic);end fenpin;architecture bh of fenpin isbeginprocess(clk)variable sum:std_logic_vector(2 downto 0);beginif rising_edge(clk)thensum:=sum+'1'outp0<=sum(0);outp1<=sum(1);if sum=4 thensum:="000"end if;end if;end process; end bh;3.比较器的程序设计library ieee;use ieee.std_logic_1164.all;entity bijiaoqi_1 isport(a1,a2,b1,b2:in std_logic; m:out std_logic);end entity bijiaoqi_1;architecture fm1 of bijiaoqi_1 issignal zdf1,zdf2:std_logic;beginprocess(a1,a2,b1,b2)beginzdf1<=a1 xor b1;zdf2<=a2 xor b2;if zdf1='0' and zdf2='0'thenm<=not zdf1;else m<='0'end if;end process;end architecture fm1;4.脉冲形成器的程序设计library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity pulsef isport(clk4,bj:in std_logic;out4:out std_logic);end entity pulsef;architecture mm of pulsef iscomponent djhandport(a,b:in std_logic;o:out std_logic);end component djhand;component djhnandport(a:in std_logic;o:out std_logic);end component djhnand;component djhlatchPort(d,ena:in std_logic;q1:out std_logic);end component djhlatch;signal g,e:std_logic;beginm1:djhand port map(a=>bj,b=>e,o=>out4);m2:djhnand port map(a=>g,o=>e);m3:djhlatch port map(d=>bj,q1=>g,ena=>clk4);end architecture mm;library ieee;use ieee.std_logic_1164.all;entity djhnand isport(a:in std_logic; o:out std_logic);end entity djhnand;architecture fl of djhnand isbegin o<= not a;end architecture fl;library ieee;use ieee.std_logic_1164.all;entity djhlatch isport(d,ena: in std_logic; q1: out std_logic);end entity djhlatch;architecture fl of djhlatch issignal sig_save:std_logic;beginprocess(d,ena) begin if ena'event and ena='1' then sig_save<=d; end if;q1<=sig_save;end process;end fl; library ieee;use ieee.std_logic_1164.all;entity djhand isport(a,b:in std_logic; o:out std_logic);end entity djhand;architecture fl of djhand isbegin o<=a and b;end architecture fl;四 PPM产生器的顶层电路图与时序仿真PPM信号产生器的VHDL设计顶层电路图如图3所示,包括了上面介绍的加法器、分频器、比较器、脉冲形成器以及整形电路(D触发器)几大部分。其中D触发器的作用是对已产生的PPM信号进行整形,避免出现冒险现象(毛刺)。根据3的电路设计以及前述的VHDL程序,可得到如图4所示的PPM产生器的时序仿真波形图。图中,DATAIN为信码输入,CLK为时钟输入,PPMOUT为PPM产生器的信号输出。图2:PPM信号产生器的VHDL设计顶层电路模型图3:PPM产生器的时序仿真波形五 PPM信号解调器的建模与程序仿真1.PPM信号解调的原理及电路模型 PPM信号解调器的电路原理图如图5所示,它包括整形电路、最长脉冲位置检测电路、最短脉冲位置检测、相加器和译码器等部分。根据上述的PPM信号产生原理,在图4中的DATAIN信号在连“1”或连“0”期间,PPM信号的间距为四个时钟周期,而当DATAIN信号从“0”变为“1”的过渡阶段,表示“0”的PPM脉冲与表示“1”的PPM脉冲的间距为五个时钟周期;当DATAIN信号从“1”变为“0”的过渡阶段,表示“1”的PPM脉冲与表示“0”的PPM脉冲的间距为一个时钟周期。因此,可根据PPM脉冲的不同间距来判断DATAIN信号的“0”和“1”的变化,并可作为PPM信号的解调依据。图5中的整形电路是由D触发器和反相器组成,对接收到的PPM信号进行整形。图中的最长脉冲位置检测模块的功能是先将PPM信号进行倒相,这样原PPM窄脉冲由高电平变为低电平,反之低电平则变为高电平,利用低电平对一个计数器进行清零,利用高电平对时钟进行计数,只有当计数器的计数值为5,即PPM序列中的最大间距时输出高电平,而其他情况下为低电平。这样就把数据信号从“0”到“1”的位置检测出来(相对位置)。对于最短脉冲间距的检测,可利用移位的方法来检出。其基本原理是:将PPM序列延迟两个时钟周期后,发现原PPM序列中除了最短脉冲间距位置的第二个脉冲与延迟后的PPM序列的最短间距的第一个脉冲是对齐的外,其他脉冲不对齐,于是可用与门将它们区分开来,从检测出最短脉冲位置的信号。考虑到只检测出数据“0”、“1”变化的PPM位置信号,还不能代表实际的数据信号的“0”、“1”变化的位置,因此可将检出的最短脉冲位置信号再进行延迟移位,然后与检出的最长脉冲位置信号进行相加,即可得到反映数据信号真实跳变的位置。图中的译码器是由D触发器构成的T触发器。它实现将数据信号的高低电平跳变的信息转换成电解调过程的仿真波形。图6为PPM解调器的VHDL建模符号。图4:PPM信号解调器的电路原理图3.最长脉冲位置检测模块的VHDL源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity maiwei isport(clk,en:in std_logic; outp0:out std_logic);end maiwei;architecture bh of maiwei isbegin process(clk,en) variable sum:std_logic_vector(2 downto 0);beginif en='0'thensum:="000"elseif rising_edge(clk)then sum:=sum+'1' if sum>4 then outp0<='1' else outp0<='0' end if; end if; end if;end process;end bh;六 PPM基带系统的模型1.PPM基带系统的VHDL顶层电路模型如图8所示。该模型尚未加入时钟提取模块。将PPM信号产生器模块组合起来形成了一个PPM基带系统。图中DATA_IN为数据信号输入;CLK为时钟信号;DATAOUT为接收端的数据信号恢复输出;PPMTEST为PPM信号;T1为最长脉冲位置检测输出;T2为延迟的PPM信号;T3为最短脉冲位置检测输出;T为总的脉冲位置检测信号输出,即数据信号的电平跳变位置信号输出。图5:PPM基带系统的VHDL顶层电路模型2.PPM基带系统的时序仿真根据图8所示的设计系统和以上的VHDL设计程序,进行时序仿真得到的PPM基带系统的时序仿真波形如图9所示。图6:PPM基带系统的时序仿真波形七心得体会通过本次的课程设计受益匪浅,感触良多。首先是进一步加深了对于通信原理,信号与系统,vhdl程序设计等课程的理解和认知,初步了解了FPGA课程。形象地把书本上的知识联系到了实际的应用和生产,随着了解了PPM的性能及优缺点,提高了自己分析和比较问题的能力,拓宽了自己的思路,学会全面以及辩证的看待问题的眼光,也认识到自己的不足并能加以克服和改正,从而得出正确结论。更为以后的课题研究奠定了坚实的基础。八参考文献1 段吉海,黄智伟.基于CPLD/FPGA的数字通信系统建模与设计M. 北京:电子工业出版社, 2006 2 樊昌信,曹丽娜.通信原理M.北京:国防工业出版社,20073 朱正伟.EDA技术及应用M.北京:清华大学出版社,20054 江国强.EDA技术与应用M.北京:电子工业出版社, 20045 求实科技.CPLD/FPGA应用开发技术与工程实践.北京:人民邮电出版社,20056 任爱锋等.基于FPGA的嵌入式系统设计.西安:西安电子科技大学出版社,20047 付用庆.VHDL语言及其应用.北京:高等教育出版社,20058 北京百科融创科技有限公司.SOPC实验指导书.北京:20059 亿特科技.CPLD/FPGA. 应用系统设计与产品开发.北京:人民邮电出版社