当前位置:文档之家› 伪随机码发生器设计

伪随机码发生器设计

伪随机码发生器设计1 引言随着科学技术的进步,现代战争样式向信息战形式发展。

现代战争胜负对于信息获取的依赖程度前所未有的提高。

在现代战争中,若己方的通讯交流方式早敌军破获,则地方将获取己方部队动向或实施信息干扰。

将会使部队陷入极其危险地境地中。

因此,信息战对通讯加密手段的要求极高。

伪随机序列(Pseudonoise Sequence)又称伪噪声或伪随机码,具有类似随机信号的一些统计特性,但又是有规律的,容易产生和复制的。

最大长度线性移位寄存器序列(m序列)是保密通信中非常重要的一种伪随机序列,它具有随机性、规律性及较好的自相关和互相关性,而且密钥量很大。

利用m序列加密数字信号,使加密后的信号在携带原始信息的同时具有伪噪声的特点,以达到在信号传输的过程中隐藏信息的目的;在信号接收端,再次利用m序列加以解密,恢复出原始信号。

这样,通过对m序列的应用,将大大的提高通讯的保密程度和防窃取能力。

这样的通讯手段被称为扩展频谱通信扩展频谱通信(Spread Spectrum Communication)是将待传送的信息数据被伪随机编码也就是扩频序列调制,实现频谱扩展以后再在信道中传输,接收端则采用与发送端完全相同的编码进行解调和相关处理,从而恢复出原始的信息数据。

在这其中,伪随机码发生器是十分重要的一环,是对信息加密的核心器件。

m序列伪随机码发生器即使通过m序列的方式对信息数据编码。

本系统所设计的伪随机码发生器,产生m序列伪随机码。

系统采用AT89S51单片机作为控制芯片,控制使用LCD12864显示处理器产生的m序列伪随机码,并且可通过按键对参数修改,设置初始码及m 序列长度。

单片机根据设定的初始码及m序列长度,按照约定的逻辑运算关系,循环往复的产生0或者1。

2 发生器系统设计2.1总体设计系统分为信息处理、实时显示和按键修改共五大模块。

系统总体结构框图如图1所示:图1 系统总体结构框图如图所示,MCU 对信号进行处理,将所得数据送液晶屏显示。

可以通过对按键的修改,设置系统参数,从而改变系统运行模式,以完成发生器功能。

2.2发生器硬件设计2.2.1发生器主控芯片模块发生器主控芯片采用AT89S51单片机,AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash 只读程序存储器,器件采用ATMEL 公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash 存储单元,AT89S51在众多嵌入式控制应用系统中得到广泛应用。

AT89S51单片机管脚如图2所示:VCC :电源电压输入端。

GND :电源地。

P0口:P0口为一个8位漏级开路双向I/O 口,每脚可吸收8TTL 门电流。

图2 AT89S51单片机管脚分布图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.0 RXD(串行输入口);P3.1 TXD(串行输出口);P3.2 /INT0(外部中断0);P3.3 /INT1(外部中断1);P3.4 T0(T0定时器的外部计数输入);P3.5 T1(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:片内振荡器反相放大器的输出端。

2.2.2 12864液晶显示屏模块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所示:表1 LCD12864管脚分布表LCD12864与51单片机连接如图3所示:图3 LCD12864与51单片机连接图LCD12864的4、5、6和15四个管脚分别与单片机P1.3、P1.4、P1.5和P1.6连接。

信号传输管脚与P0管脚顺次相连。

2.2.3 键盘模块本发生器系统采用独立式键盘,独立式按键是直接用I/O口线构成单个按键电路,每个按键单独占用一根I/O线。

如图4所示是一个通过P0口连接3个按键。

图4 独立式按键接口图如图所示,按键一段连接阻值为10k的上拉电阻与+5v电源相连,另一端接地。

独立式按键电路配置灵活,软件结构简单,适合接口空余较多时的情况。

2.3发生器软件设计2.3.1发生器软件设计采用语言发生器系统软件采用C语言编写,C语法限制不太严格,程序设计自由度大虽然C语言也是强类型语言,但它的语法比较灵活,允许程序编写者有较大的自由度。

相对而言具有以下优点:(1)简洁紧凑、灵活方便C语言一共只有32个关键字,9种控制语句,程序书写自由,主要用小写字母表示。

它把高级语言的基本结构和语句与低级语言的实用性结合起来。

C 语言可以象汇编语言一样对位、字节和地址进行操作, 而这三者是计算机最基本的工作单元。

(2)运算符丰富C的运算符包含的范围很广泛,共有种34个运算符。

C语言把括号、赋值、强制类型转换等都作为运算符处理。

从而使C的运算类型极其丰富表达式类型多样化,灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。

(3)数据结构丰富C的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。

能用来实现各种复杂的数据类型的运算。

并引入了指针概念,使程序效率更高。

另外C语言具有强大的图形功能, 支持多种显示器和驱动器。

且计算功能、逻辑判断功能强大。

(4)C 是结构式语言结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。

这种结构化方式可使程序层次清晰, 便于使用、维护以及调试。

C 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。

2.3.2 软件设计流程软件主程序流程图如图5所示,中断子程序流程图如图6所示。

图5 主程序流程图 图6 中断子程序流程图如图5所示,程序经初始化后,系统开始工作。

系统初始默认为m 值为7的伪随机码序列。

当按键被按下,有产生一个高电平的信号时,程序执行中断子程序。

在中断子程序中,由于三个按键接不同的口,系统即按不同的参数运行。

3 m 序列伪随机码理论设计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 的游程数占游程总数的n2/1。

次性质称为随机序列的游程特性。

(3)如果将给定的随机序列位移任何个元素,则所得到的序列和原序列对应的元素有一半相同, 一半不同。

如果确定序列近似满足以上三个特性,则称此确定序列为伪随机序列。

3.2 m 序列伪随机码性质最长线性反馈移存器序列是最常见和最常用的一种伪随机序列,简称m 序列,它是由具有线性反馈的移位寄存器产生的周期最长的序列。

相关主题