m序列产生实验
- 格式:doc
- 大小:80.00 KB
- 文档页数:12
m序列产生实验
一、 实验目的
1、 m序列产生的基本方法;
2、 m序列0状态消除的基本手段;
二、 实验仪器
1、 JH5001型通信原理实验箱 一台;
2、 MaxplusII开发环境 一台;
3、 JTAG下载电缆 一根;
4、 CPLD下载板 一块;
5、 微机 一台;
6、 示波器 一台;
三、 实验原理
m序列产生电路在通信电路设计中十分重要,它广泛使用在扩频通信、信号产生、仪器仪表等等电路中。
m序列有时也称伪噪声(PN)或伪随机序列,在一段周期内其自相关性类似于随机二进制序列。尽管伪噪声序列是确定的,但其具有很多类似随机二进制序列的性质,例如0和1的数目大致相同,将序列平移后和原序列的相关性很小。
PN序列通常由序列逻辑电路产生,一般是由一系列的两状态存储器和反馈逻辑电路构成。二进制序列在时钟脉冲的作用下在移位寄存器中移动,不同状态的输出逻辑组合起来并反馈回第一级寄存器作为输入。当反馈由独立的“异或”门组成(通常是这种情况),此时移位寄存器称为线性PN序列发生器。
如果线性移位寄存器在某些时刻到达零状态,它会永远保持零状态不变,因此输出相应地变为全零序列。因为n阶反馈移位寄存器只有2n-1个非零状态,所以由n阶线性寄存器生成的PN序列不会超过2n-1个。周期为2n-1的线性反馈寄存器产生的序列称为最大长度(ML)序列——m序列。 Xn-1h0h1h2X1Xn-2X0hn-1hn输入时钟输出
m序列发生器的一般组成
m序列发生器一般组成如上图所示,它用n级移位寄存器作为主支路,用若干级模2加法器作为各级移位寄存器的抽头形成线性反馈支路。各抽头的系数hi称为反馈系数,它必须按照某一个n次本原多项式:niiixhxh0)(中的二进制系数来取值。
在伪序列发生模块中,可以根据本原多项式的系数,…..h8、h7、h6、h5、h4、h3、h2、h1、h0产生m序列,这些系数可表示8进制数(1代表相连抽头进入反馈回路,0代表该抽头不进入反馈回路),如:
13、23、103、203
四、 课题设计要求
在输入时钟256KHz的时钟作用下,可在外部跳线器的控制下改变产生不同的m序列,在程序中定义的几个变量为:
输入:
Main_CLK:输入 256KHz 主时钟
M_Sel[1..0]:选择输出不同的m序列
当 Mode[]=0:本原多项式为13(8进制表示);
当 Mode[]=1:本原多项式为23(8进制表示);
当 Mode[]=2:本原多项式为103(8进制表示);
当 Mode[]=3:本原多项式为203(8进制表示);
输出:
M_Out:m序列输出
说明:
1、 M_Sel[1..0]与复接模块的m_sel0、m_sel1相连;
M_Out在测试点TPB01输出;
五、 实验步骤
1、将JH5001二次开发光盘内的基本程序m.tdf及其它相关程序(在光盘的“2th\student_m”子目录下)拷入机器内。注意:这里面有基本的程序框架(变量定义、主程序入口),在m.acf文件中所有定义不要改动,特别是管脚定义、器件定义,否则会损坏器件。
2、在MaxplusII开发环境下,打开工程文件m.tdf。
3、参照实验原理在m.tdf文件中完成m序列产生设计,并在计算机上完成仿真。经老师检查合格后,进入下一步:在下载板上烧录相应的器件。
4、将下载电缆的JTAG接口与下载板的双排针相连,注意连接方向(如果连接反了的话,可能会损坏器件,在操作上需小心)。下载板上的电源不能接反,其红线接+5V,黑线接地。加电,在MaxplusII环境下完成对CPLD的编程。
5、将JH5001复接模块上的UB01拔下,注意不要损伤管脚(该步骤一般最好由老师进行)。
6、将编程好的EPM7064器件插入实验箱上的UB01插座中进行功能检查。若不正确,重返步骤1进行;若正确则实验完成。
7、实验完成后将原来的器件插回原座中,复原JH5001实验箱。
六 程序源代码
TITLE "m generating sequence";
SUBDESIGN m
(
%pcm input%
FSX_PCM,BCLKT,DT_PCM :INPUT;
%m sequence%
m_Sequence :INPUT;
%SW input%
SW[7..0] :INPUT;
%control mode%
Error_SEL[1..0] :INPUT;
%MUX output%
MUX_DT :OUTPUT;
MUX_CLK :INPUT;
Error_ind :OUTPUT;
%Test m sequence%
m_SEL[1..0] :INPUT;
m_test :OUTPUT;
Frame_Ind :OUTPUT;
)
VARIABLE
Main_CLK,Mode[1..0] :LCELL;
Delay_m[6..0] :DFF;
m_Out :LCELL;
%students pust defined variables at here%
All_Zero :LCELL;
BEGIN
Main_CLK=MUX_CLK;
Mode[]=M_SEL[];
%
INPUT:
Main_CLK: input 256KHz clock
m_SEL[1..0]: select output m sequence type
OUTPUT:
m_Out: m sequence output
function:
generating m sequence
m_SEL[]=0: m sequence type is (13)
m_SEL[]=1: m sequence type is (23)
m_SEL[]=2: m sequence type is (103)
m_SEL[]=3: m sequence type is (203)
%
--students put his program inhere
All_Zero=(Delay_m[]==0);
Delay_m[].clk=Main_CLK;
Delay_m[5..0].d=Delay_m[6..1];
CASE m_SEL[] IS
WHEN 0 =>
Delay_m6.d=Delay_m5 $ Delay_m4 $ All_Zero;
WHEN 1 =>
Delay_m6.d=Delay_m4 $ Delay_m3 $ All_Zero;
WHEN 2 =>
Delay_m6.d=Delay_m2 $ Delay_m1 $ All_Zero;
WHEN 3 =>
Delay_m6.d=Delay_m1 $ Delay_m0 $ All_Zero;
END CASE;
m_out=Delay_m6;
--fellowing program can't be rewriteable
m_test=m_Out;
--not used pin MUX_DT=(FSX_PCM,BCLKT,DT_PCM,m_Sequence,SW[7..0],Error_SEL[1..0],MUX_CLK)==0;
(Error_ind,Frame_Ind)=0;
END;
七 实验小结
通过这次实验了解到了如何产生m序列,以及在实验过程中如检查和排除错误,巩固了从理论方面学到的知识。做这个实验必须要有的基础知识包括CPLD的基本编程技术以及CPLD器件的基本结构、编程过程,通过这次实验也得到了一些额外的知识,希望在以后的学习中能带来帮助。
可变分频器实验
一、 实验目的
1、 可变分频器实现的基本方法;
2、 可变分频器的输出占空比的控制方法;
二、 实验仪器
1、 JH5001型通信原理实验箱 一台;
2、 MaxplusII开发环境 一台;
3、 JTAG下载电缆 一根;
4、 CPLD下载板 一块;
5、 微机 一台;
6、 示波器 一台;
三、 实验原理
目前可变分频器大量使用在FPGA的电路设计中,它是一般电路设计不可缺少的组成部分,如频率合成器、时钟信号产生器、调制解调器的位定时恢复等电路。
下面给出一种可变分频器的实现方法:一般分频器是通过计数器完成,计数器的范围为0~(N-1),这里N为分频数。当计数器达到(N-1)时,对计数器进行复位,进入下一轮计数。通过改变N的大小,从而达到可变分频计数的目的,其结构如下图所示。
对于可变计数器的输出,一般尽量输出占空比为50%的方波信号。这是通过判决电路实现的:当计数器计数小于N/2时输出为1,其它为0。
计数0~N-1
计数范围控制 N-1状态检测 复位
>N/2?判决 输入时钟