当前位置:首页 > 嵌入式 > 嵌入式硬件

  摘 要: 混沌序列的产生是混沌理论应用于保密通信领域的一个重要问题。通过对Logistic映射进行变换处理,利用整数运算代替小数运算,使程序便于在MCS-51系列单片机平台上运行,由此产生Logistic-Map混沌序列。
关键词: 混沌序列;Logistic-Map;单片机

  混沌及其应用是近年来非线性科学研究领域的一个热点课题。自Pecora和Carroll提出了混沌同步概念,使混沌应用于保密通信技术领域成为可能。但要进行有效的混沌通信,首先必须产生稳定的混沌序列信号。
混沌序列信号发生器最初是利用分立模拟电子元件来实现的,这种方法能有效地产生混沌信号,但降低了集成度,增大了体积,且在通信应用时,因为元件参数较大的离散性,容易造成收发系统之间的电路参数失配。相比而言,用数字元件实现,能简化系统并提高抗干扰能力,例如,在DSP和FPGA等数字平台上产生混沌序列,是一种较为有效的方法。
对于产生形式简单并且应用广泛的Logistic-Map混沌序列[1]信号,可在速度较慢、资源有限的51系列单片机硬件平台[2]上实现。由于Logistic映射中产生的迭代数据全是小数,而单片机处理浮点数的能力较差,故需对Logistic-Map方程进行映射变换,以便于在单片机上运行实现。
1 Logistic方程的变换处理
Logistic方程是目前应用较为广泛的一种混沌映射,其迭代方程的数学表达式为


由于单片机并不适合于处理小数,故为了方便于单片机的运行处理,系数尽可能地选择整数,这里选取参数μ=4,其时域仿真波形如图3所示。


Logistic方程中,x(n)的值均为0~1之间的小数,而x(n)值的精确度对系统是否处于混沌状态有一定的影响,精度过低会将混沌系统强制性带出混沌。理论上,x(n)值的精确度越大越好,但实际上不可能选取无穷精度。在Matlab仿真时,软件采用双精度浮点的形式进行数值运算。
考虑到单片机处理浮点数的能力较差,通过线性映射:
  

  将x(n)∈(0,1)的值映射到X(n)∈(0,65 536)的区间上,而这属于一个无符号整型变量的表数范围。通过该映射,就能在保证变换前的数值精确到小数点后4位的情况下,用无符号整型变量代替双精度浮点型变量的运算,并且能在一定程度上反映小数点后第5位的情况。
  经过映射变换后的Logistic映射方程变为:
  
  式中X(n)∈(0,65 536)。数值仿真结果如图4所示。由此可知,变换只改变了x(n)值的幅度,并没有改变系统的性质。

2 硬件设计
在硬件设计中,选用了51系列中的增强型单片机AT89S52。这款单片机内置了8 KB的Flash,8个256 bit的片内RAM,对于存储程序和临时数据值有足够的空间,因此可采用单片工作模式,不需扩展外围存储器。
图5为Logistic混沌信号发生器的硬件电路图。单片机的P1.6、P1.7分别输出转换控制信号和控制时钟信号;P1.4、P1.5则将Logistic方程的迭代结果串行地送入数模转换器。


要较好地将单片机计算结果还原成模拟信号并在示波器上显示出来,对D/A转换器的精度有一定的要求[5]。数模转换器的精度过低,会使许多不同的计算结果被转换为相同的模拟电压值,导致波形质量的严重下降。这里选用了廉价高速的12位精度数模转换器MAX538[2,6]。这款D/A转换器是电压输出型,串行输入方式,由单5 V电源供电。它采用菊花链结构,1次接收16位的数据,其中只有低12位有效,而高四位只在构成菊花链时使用。图6为MAX538的时序图,当转换控制信号为高电平时,D/A转换器不接收新值,而将数字信号转换成模拟信号,输出的模拟信号电压值:
  

  式中,VREF为基准电压,取为2.5 V;当其为低点平时,每来1个控制时钟脉冲就读入1位值。

3 软件流程设计
根据(3)式可知,程序中涉及到了减法、乘法和除法运算。在单片机指令系统中,这3种运算指令均为多周期指令,会占用较多的运行时间,尤其是除法运算。相对而言,赋值指令、移位指令与逻辑运算指令则较为快速,因此,在保证准确性的前提下,可用移位运算代替乘、除运算[7]。
在设计程序时,利用循环迭代,使单片机不断地计算出Logistic方程的当前值。程序流程图如图7所示。在整个循环体内,通过以下几个步骤完成1次迭代运算:

(1)将公式(3)中的减法运算[65536-X(n)]用“异或”运算[X(n)⊕0xFFFF]代替,所得值送入变量y所指向的存储空间;
(2)将y的值与x相乘,实现[X(n)[65536-X(n)]],而这个乘法运算的结果是一个32位的值,因此赋予长整型变量M32;
(3)乘法运算结果要除以65 536,该值是2的16次方(65 536=216),故可通过将M32的值右移16位来替换除法运算;
(4)在单片机指令系统中,除法运算的结果是个16位的值,但移位运算并不会改变变量的数据类型,故仍为32位的数据。所以,要令M32和0xFFFF相“与”,取出M32的低16位值存入与整型变量相对应的存储空间;
(5)用y的值左移2位替代乘以系数μ=4的运算,计算出Logistic方程的当前值;
(6)将计算结果送入数模转换器。
数模转换芯片MAX538是串行输入的,上述步骤计算的结果是一个整型数值,不能1次送入D/A芯片,要将数值按权位的高低逐个取出并传送。并且MAX538是12位的D/A芯片,只有低12数据有效。计算结果的16位数据中,对信号幅度影响较大的是高12位数据,故要将x(n)的值右移4位,将高4位无效位清零,而把有效值保存在低12位。根据MAX538的信号时序,可得如图8所示的流程图。


混沌系统方程中,均为小数形式的运算,增加了产生混沌信号时的硬件复杂程度。因此,通过对Logistic方程进行线性变换,采用整数运算替代浮点数运算,可以在保证一定数值精度的情况下,提高程序的运行速度,为利用51系列单片机产生混沌序列信号提供了一种实际可行的实现方法。


参考文献
[1] 吕金虎,陆君安,陈士华.混沌时间序列分析及其应用[M].武汉:武汉大学出版社,2002.
[2] 李群芳,张士军,黄健.单片微型计算机与接口技术(第2版)[M].北京:电子工业出版社,2005.
[3] 赵艳红,张春,吴楚.扩频通信中数字混沌序列的产生[J].信息工程大学学报,2000(3):40-43.
[4] 刘文波.Logistic映射的电路实现及应用[J].数据采集与处理,2001(1):129-132.
[5] 赵耿,郑德玲,董冀媛.Logistic映射数字混沌产生器[J].北京科技大学学报,2001(2):173-176.
[6] 王福瑞.单片微机测控系统设计大全[M].北京:北京航空航天大学出版社,1998.
[7] 唐秋玲,覃团发,姚海涛,等.数字语音混沌保密通信系统及硬件实现[J].电子技术应用,2000(2):58-60.

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

8位单片机在嵌入式设计领域已经成为半个多世纪以来的主流选择。尽管嵌入式系统市场日益复杂,8位单片机依然不断发展,积极应对新的挑战和系统需求。如今,Microchip推出的8位PIC®和AVR®单片机系列,配备了先进的独立...

关键字: 单片机 嵌入式 CPU

在嵌入式系统开发中,程序烧录是连接软件设计与硬件实现的关键环节。当前主流的单片机烧录技术已形成ICP(在电路编程)、ISP(在系统编程)、IAP(在应用编程)三大技术体系,分别对应开发调试、量产烧录、远程升级等不同场景。...

关键字: 单片机 ISP ICP IAP 嵌入式系统开发

在嵌入式系统开发中,看门狗(Watchdog Timer, WDT)是保障系统可靠性的核心组件,其初始化时机的选择直接影响系统抗干扰能力和稳定性。本文从硬件架构、软件流程、安全规范三个维度,系统分析看门狗初始化的最佳实践...

关键字: 单片机 看门狗 嵌入式系统

本文中,小编将对单片机予以介绍,如果你想对它的详细情况有所认识,或者想要增进对它的了解程度,不妨请看以下内容哦。

关键字: 单片机 开发板 Keil

随着单片机系统越来越广泛地应用于消费类电子、医疗、工业自动化、智能化仪器仪表、航空航天等各领域,单片机系统面临着电磁干扰(EMI)日益严重的威胁。电磁兼容性(EMC)包含系统的发射和敏感度两方面的问题。

关键字: 单片机 电磁兼容

以下内容中,小编将对单片机的相关内容进行着重介绍和阐述,希望本文能帮您增进对单片机的了解,和小编一起来看看吧。

关键字: 单片机 复位电路

在这篇文章中,小编将为大家带来单片机的相关报道。如果你对本文即将要讲解的内容存在一定兴趣,不妨继续往下阅读哦。

关键字: 单片机 异常复位

今天,小编将在这篇文章中为大家带来单片机的有关报道,通过阅读这篇文章,大家可以对它具备清晰的认识,主要内容如下。

关键字: 单片机 仿真器

单片机将是下述内容的主要介绍对象,通过这篇文章,小编希望大家可以对它的相关情况以及信息有所认识和了解,详细内容如下。

关键字: 单片机 中断 boot

一直以来,单片机都是大家的关注焦点之一。因此针对大家的兴趣点所在,小编将为大家带来单片机的相关介绍,详细内容请看下文。

关键字: 单片机 数字信号 模拟信号
关闭