伪随机码发生器设计Word格式.docx
《伪随机码发生器设计Word格式.docx》由会员分享,可在线阅读,更多相关《伪随机码发生器设计Word格式.docx(16页珍藏版)》请在冰豆网上搜索。
图2AT89S51单片机管脚分布图
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口除了作为普通I/O口,还有第二功能:
P3.0RXD(串行输入口);
P3.1TXD(串行输出口);
P3.2/INT0(外部中断0);
P3.3/INT1(外部中断1);
P3.4T0(T0定时器的外部计数输入);
P3.5T1(T1定时器的外部计数输入);
P3.6/WR(外部数据存储器的写选通);
P3.7/RD(外部数据存储器的读选通);
P3口同时为闪烁编程和编程校验接收一些控制信号;
I/O口作为输入口时有两种工作方式,即所谓的读端口与读引脚。
读端口时实际上并不从外部读入数据,而是把端口锁存器的内容读入到内部总线,经过某种运算或变换后再写回到端口锁存器。
只有读端口时才真正地把外部的数据读入到内部总线。
89C51的P0、P1、P2、P3口作为输入时都是准双向口。
除了P1口外P0、P2、P3口都还有
其他的功能。
RST:
复位输入端,高电平有效。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
地址锁存允许/编程脉冲信号端。
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
PSEN:
外部程序存储器的选通信号,低电平有效。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
EA/VPP:
外部程序存储器访问允许。
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;
当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
片内振荡器反相放大器和时钟发生器的输入端。
XTAL2:
片内振荡器反相放大器的输出端。
LCD12864是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;
其显示分辨率为128×
64,内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。
可以显示8×
4行16×
16点阵的汉字.也可完成图形显示.低电压低功耗是其又一显著特点。
其基本特性为:
低电源电压(VDD:
+3.0--+5.5V);
显示分辨率:
128×
64点;
内置汉字字库,提供8192个16×
16点阵汉字(简繁体可选;
内置128个16×
8点阵字符;
2MHZ时钟频率;
显示方式:
STN、半透、正显;
驱动方式:
1/32DUTY,1/5BIAS;
视角方向:
6点;
背光方式:
侧部高亮白色LED,功耗仅为普通LED的1/5—1/10;
通讯方式:
串行、并口可选;
内置DC-DC转换电路,无需外加负压;
无需片选信号,简化软件设计;
工作温度:
0℃-+55℃,存储温度:
-20℃-+60℃。
其管脚分布如表1所示:
表1LCD12864管脚分布表
LCD12864与51单片机连接如图3所示:
本发生器系统采用独立式键盘,独立式按键是直接用I/O口线构成单个按键电路,每个按键单独占用一根I/O线。
如图4所示是一个通过P0口连接3个按键。
图4独立式按键接口图
如图所示,按键一段连接阻值为10k的上拉电阻与+5v电源相连,另一端接地。
独立式按键电路配置灵活,软件结构简单,适合接口空余较多时的情况。
2.3发生器软件设计
发生器系统软件采用C语言编写,C语法限制不太严格,程序设计自由度大虽然C语言也是强类型语言,但它的语法比较灵活,允许程序编写者有较大的自由度。
相对而言具有以下优点:
(1)简洁紧凑、灵活方便
C语言一共只有32个关键字,9种控制语句,程序书写自由,主要用小写字母表示。
它把高级语言的基本结构和语句与低级语言的实用性结合起来。
C语言可以象汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。
(2)运算符丰富
C的运算符包含的范围很广泛,共有种34个运算符。
C语言把括号、赋值、强制类型转换等都作为运算符处理。
从而使C的运算类型极其丰富表达式类型多样化,灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。
(3)数据结构丰富
C的数据类型有:
整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。
能用来实现各种复杂的数据类型的运算。
并引入了指针概念,使程序效率更高。
另外C语言具有强大的图形功
能,支持多种显示器和驱动器。
且计算功能、逻辑判断功能强大。
(4)C是结构式语言
结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。
这种结构化方式可使程序层次清晰,便于使用、维护以及调试。
C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。
软件主程序流程图如图5所示,中断子程序流程图如图6所示。
图5主程序流程图图6中断子程序流程图
如图5所示,程序经初始化后,系统开始工作。
系统初始默认为m值为7的伪随机码序列。
当按键被按下,有产生一个高电平的信号时,程序执行中断子程序。
在中断子程序中,由于三个按键接不同的口,系统即按不同的参数运行。
3m序列伪随机码理论设计
3.1伪随机码基本特性
伪随机码又称为随机序列,它是具有类似于随机序列基本特性的
确定序列。
通常广泛应用于二进制序列。
二进制独立随即序列在概率论中称为伯努利(Bernoulli)序列,它由两个(符号)0,1或1,-1组成,序列中不同位置的元素取值相互独立,0或1的出现概率相等,简称此种序列为随机序列。
随机序列具有以下三个基本特性:
(1)在序列中“0”和“1”出现的相对概率各位1/2。
(2)序列中连0或连1称为游程,连0或连1的个数称为游程的长度。
序列中长度为1的游程数占游程总数的1/2;
长度为2的游程数占游程总数的1/4;
长度为3的有成熟占游程总数的1/8;
长度为n的游程数占游程总数的n
2/1。
次性质称为随机序列的游程特性。
(3)如果将给定的随机序列位移任何个元素,则所得到的序列和原序列对应的元素有一半相同,一半不同。
如果确定序列近似满足以上三个特性,则称此确定序列为伪随机序列。
3.2m序列伪随机码性质
最长线性反馈移存器序列是最常见和最常用的一种伪随机序列,简称m序列,它是由具有线性反馈的移位寄存器产生的周期最长的序列。
m序列每一周期中1的个数比0的个数多1个。
由于12-=np为奇数,因而在每一周期中1的个数为122/1(-=+np为偶
数,而0的个数为121(1-=--np为奇数。
如,当15=p,1的个数为8,0的个数为7。
当p足够大时,在一个周期中1与0出现的次数基本相等。
把一个序列中取值(1或0)相同连在一起的元素合称为一个游程。
在一个游程中元素的个数称为游程长度。
例如m序列:
在次m序列一个周期的15个元素中,共有8个游程。
m序列的一个周期(12-=np中,游程总数为1
2-n。
其中长度为1
的游程个数占游程总数的1/2;
长度为2的游程个数占游程总数的1/4;
长度为3的游程个数占游程总数的1/8;
……一般地,长度为n的游程个数占游程总数的k
在长度为n游程中,连1游程与连0游程各占一半,长为(1-n)的游程是连0游程,长为n的游程是连1游程。
周期为p的m序列pm和它的任意延迟位移后的序列rm模二相加后所得序列仍是该m序列的某个位移序列sm,即:
s
rpmmm=⊕
其中:
sm为pm某次延迟位移后的序列。
例如:
11001
0001111010=pm,…
m序列具有非常重要的自相关特性。
在m序列中,常常用+1代表0,用-1代表1。
此时定义:
设长为p的m序列,记作:
,,321aaa…12(-=n
ppa
m序列,,,321aaa…12(-=nppa经过j次位移后m序列为:
,321+++jjjaaa…pja+
其中ipiaa=+(以p为周期),以上两序列的对应项相乘然后相加,利用所得的总和:
3
12111+++⋅+⋅+⋅jjjaaaaaa…∑=++=⋅+p
ii
jipjpaaaa1
衡量一个m序列与它的j次移位序列之间的相关程度,并把它叫做m序列(,,,321aaa…pa)的自相关函数。
记作:
∑=+=p
jiaajR1(
(1)
令:
4为m序列与它坳次移位序列在一个周期中对应元素相同的数目;
D为m序列与它的j次移位序列在一个周期中对应元素不同的数目。
当采用二进制数字0和1代表码元的可能取值时,公式
(1)可表示为
pD
ADADAjR-=+-=
(
(2)
或可以改写为:
[][]
paaaaDADAjRjiijii的数目
的数目10(=⊕-=⊕=+-=
++(3)
由移位相加特性可知,jiiaa+⊕仍是m序列中的元素;
所以上式分
子就等于m序列中一个周期中0的数目与1的数目之差。
另外由m序列的均衡性可知,在一个周期中0比1的个数少一个。
故得:
(
(1
为零时为非零整数jjpDA⎩⎨
⎧-=-
其自相关函数图如图7所示:
图7m序列自相关函数图
如果我们对一个正态分布白噪声取样,若取样值为正,记为+1,取样值为负,记为-1,将每次取样所得极性排成序列,可以写成:
…+,-1,+1,+1,+1,-1,-1,+1,-1,…这是一个随机序列,它具有如下基本性质:
(1序列中+1和-1出现的概率相等;
(2序列中长度为1的游程约占1/2,长度为2的游程约占1/4,长度为3的游程约占1/8,.一般地,长度为k的游程约占k
2/1,而且+1,-1游程的数目各占一半;
(3由于白噪声的功率谱为常数,因此其自相关函数为一冲击函数(τδ。
由此可见,m序列的性质与随机噪声相似,因此称为伪随机序列。
3.3m序列的产生
下面以长度(周期)为7的m序列为例说明m序列的产生过程。
如图8所示,长度等于7的m序列(简称7位m序列)产生电路的逻辑框图。
在CP时钟脉冲的作用下移存器的状态不断变化,每输出一位,经图8所示流程产生新的一位。
表2为移存器状态变化表。
表2状态变化表
假设移存器的初始状态为0,0,1210===aaa。
由表2可见,在第7个时钟脉冲时移存器的状态又回到初始状态,这说明此序列的长度等于7。
如果移存器的初始状态为全0,即0,0,0210===aaa。
则此状态在时钟脉冲作用下不会改变。
即全0初始状态下产生的序列为全0序列。
非全0状态下,移存器状态变化的顺序由图9及图10表示:
1=
CP
图8m序列产生电路逻辑框图
图9非全0状态下的状态转移图图10全0状态下的状态转移图其中图3圆圈中的数字与210,,aaa相对应。
上述7位码m序列产生器由三级移位寄存器组成,每一级移位寄存器有两个可能状态(0,1),
三级移位寄存器的所有可能状态为823
=种:
000,001,010,011,
100,101,110,111。
其中全0状态不能进入m序列产生器的移存器,否则将出现全0序列。
由此可见,三级移存器组成的线性反馈电路所
产生的序列周期不会超过7123
=-种。
一般情况下,由n级移存器组成的线性反馈电路所产生的序列周期不会超过12-n
如图11所示为
由n级具有线性反馈逻辑移存器所组成的码序列发生器的框图:
图11线性反馈移位寄存器序列发生器
图11中反馈输出na与移存器状态321---nnnaaa…0a的关系可用式(4)表示:
1
5247
na=332211---⊕⊕nnnacacac…0acn⊕(4)
其中系数1,0(∈kc,,3,2,1=k…,n。
0=kc时,图5中相应的反馈连接断开;
1=kc时,相应的反馈连接接通。
由此可见,系数321ccc…nc的取值决定了反馈逻辑。
反馈逻辑可由特征多项式(xf表示:
++++=332210(xcxcxccxf…nnxc+(5)
其中1,0(∈kc,,3,2,1=k…,n;
n为寄存器级数。
因为码序列发生器中反馈逻辑总是接入的,所以式(5)中10=c。
41(xxxf++=,表示有4=n,有4级寄存器,且:
1,0,0,14321====cccc。
不同特征多项式对应不同的反馈逻辑,即对应不同的序列。
由n
级移存器组成的线性反馈电路所产生的序列周期不会超过12-n,其中
周期等于12-n的序列即是m序列(最长线性反馈移存器序列)。
构成m序列产生器必须找到相应的本原多项式。
经过前人的大量计算,已将常用的本原多项式列成表,如表3所示
表3m序列计数表
线性反馈逻辑用本原多项式表示称为代数表示法,此外,还可以用八进制数和二进制数表示。
表3列出了这三种表示法。
同长度不同反馈系数的m序列的数日等于同幂次的本原多项式的数目。
可以证明:
n幂次本原多项式的数目为:
nNns12(-Φ=(6)
(xΦ为欧拉函数,它等于:
小于x的并与x互质的数的个数(包括l在内)。
例如,15=x,则小于15并与l5互质的数为:
1,2,4,7,8,11,13,14,共8个,则815(=Φ;
24/8==sN。
3.4m序列伪随机码在军事中的应用
扩频通信,即扩展频谱通信(SpreadSpectrumCommunication,它与光纤通信、卫星通信,一同被誉为进入信息时代的三大高技术通信传输方式。
具有巨大的发展前景。
扩展频谱通信(SpreadSpectrumCommunication)的原理发表的很早,它是将待传送的信息数据被伪随机编码也就是扩频序列调制,实现频谱扩展以后再在信道中传输,接收端则采用与发送端完全相同的编码进行解调和相关处理,从而恢复出原始的信息数据。
从这里我们可以看出,扩展频谱通信(以下简称扩频通信)作为一种新的通信方式与一般的常见的窄带通信方式是不同的,它们刚好相反,它是在发送端经过扩展频谱以后,在信道中进行宽带传输,然后在接收端进行相关处理以及解扩后恢复成窄带后解调数据。
恢复出原始信息数据。
因此,扩频通信具有伪随机编码调制和相关处理两个特点。
也正是这两个特点,使得扩频通信方式有许多优点:
如抗干扰、抗噪音、抗多径衰落、具有保密性、功率谱密度低,具有隐蔽性和低的截获概率、可多址复用和任意选址、可以用于高精度测量等。
正是由于扩频通信方式具有上述的优点,所以扩频通信虽然是一
种新型的通信方式,但是引起了人们的广泛注意,得到了迅速的发展和广泛的应用。
从扩频通信的应用发展来看,真正开始研究它的应用的是在上个世纪50年代中期美国开始的。
刚开始一直用于军事通信领域,因为在军事通信中,一般通信方式在强干扰存在的情况下,很难准确的检测出发送来的信号,由于扩频通信具有很好的保密信和抗干扰性,所以首先开始了在军事通信领域的应用。
成为扩频通信研究发展的开端,从此,军事通信机关对军事通信、空间探测、卫星侦察等方面广泛应用扩频通信技术。
利用m序列加密的码分多址(CDMA通信码分多址具有如下几个优点:
(1抗干扰能力强
在地址码相关特性较理想和频谱扩展程度较高的条件下,码分多址具有很强的抑制干扰能力,直接表现在扩频解调器的输出信噪比相对于输入信噪比要高得多。
(2较好的保密通信能力
由于采用了扩频调制,在信道中传输所需的载波与噪声的功率比很低(约为-20dB),信号完全隐蔽在噪声、干扰之中,不易被发现;
用独特的地址码进行扩频调制相当于一次加密,增加了破译的难度。
(3实现多址连接较灵活方便
所以码分多址方式也以很快的增长速度在地面的移动通信系统
和无线接入网中应用,即将投入商用的第三代移动通信就是采用了码分多址方式。
利用m序列加密的码分多址通信码的流程图如图12所示:
图12m序列加密码分多址通信码流程图
由图所示,信号源产生信号1X经m序列发生器信号Y调制,得到一个加密信号E。
该信号经发送,通过信道被用户接受。
用户所得加密信号E按照相同的m序列发生器信号Y解调,将信号源信号1X还原,使之能被用户使用。
4使用Proteus软件对伪随机码发生器仿真
4.1Proteus软件介绍
Proteus软件是英国Labcenterelectronics公司出版的EDA工具软件。
它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。
它是目前最好的仿真单片机及外围器件的工具。
Proteus是世界上著名的EDA工具(仿真软件,从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。
是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台。
Proteus软件的主要功能。
(1)原理布图;
(2)PCB自动或人工布线;
(3)SPICE电路仿真,用户甚至可以实时采用诸如RAM,ROM,键盘,马达,LED,LCD,AD/DA,部分SPI器件,部分IIC器件。
除此以外还可仿真处理器及其外围电路,可以仿真51系列、AVR、PIC、ARM、等常用主流单片机。
还可以直接在基于原理图的虚拟原型上编程,再配合显示及输出,能看到运行后输入输出的效果。
配合系统配置的虚拟逻辑分析仪、示波器等,Proteus建立了完备的电子设计开发环境。
在Proteus绘制好原理图后,调入已编译好的目标代码文件:
*.HEX,可以在Proteus的原理图中看到模拟的实物运行状态和过程。
这在相当程度上替代了传统的单片机实验的功能,例:
元器件选择、电路连接、电路检测、电路修改、软件调试、运行结果等。
4.2电路图绘制
在Protues中,根据系统仿真所需功能,绘制电路图如图13所示。
图13系统电路图单片机所用晶振为1MHz,P0口接三个独立式按键,P2口接LCD12864。
4.3仿真结果仿真结果如图14所示,每按下一个键,显示出的数字就做出改变。
在液晶屏的上部有欢迎使用四个字,第二排显示伪随机码,第二位做出循环改变。
4结论本文所论述的伪随机码发生器系统较为简单,仅仅针对m值为3、4和5做了三种不同情况的显示。
通过显示结果可以发现,当m值为5时,重复周期就达到了31。
在实际扩频通讯中,m值越高,则加密性能越好。
但是,一但敌军通过计算,比较还是能够比较容易的找到显示规律,从而窃取情报。
因此就需要对发生器做进一步的研究,比如将m值不同的两个序列混合编码输出。
总之,这需要在本文提出的设计思想上做更进一步的反复论证与试验。
致谢本次毕业设计在指导老师韩彦征的精心指导下完成的,毕业设计的全过程导师提供了有用的思路大量的心血和汗水。
毕业设计是检验
和锻