《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > Logistic-Map混沌序列的單片機實現
Logistic-Map混沌序列的單片機實現
李 偉,禹思敏
摘要: 混沌序列的產生是混沌理論應用于保密通信領域的一個重要問題。通過對Logistic映射進行變換處理,利用整數運算代替小數運算,使程序便于在MCS-51系列單片機平臺上運行,由此產生Logistic-Map混沌序列。
Abstract:
Key words :

  摘 要: 混沌序列的產生是混沌理論應用于保密通信領域的一個重要問題。通過對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.

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 六月天丁香婷婷| 国产麻豆精品一区二区三区V视界 国产麻豆精品久久一二三 | 国产熟睡乱子伦视频| 伊人久久大香网| 100款夜间禁用b站软件下载| 日韩在线永久免费播放| 国产嫩草在线观看| 一级毛片成人午夜| 欧美性猛交xxxx乱大交蜜桃| 国产婷婷色一区二区三区| h视频在线观看免费观看| 日韩视频中文字幕精品偷拍| 嗯好湿用力的啊c进来动态图 | 亚洲av综合色区| 美女的尿口免费看软件| 国产精品成熟老女人视频| 中文字幕一精品亚洲无线一区| 狠狠躁夜夜躁人人爽天天古典 | 亚洲va久久久噜噜噜久久天堂 | 亚洲欧美电影一区二区| 色综合视频一区二区三区| 太粗太深了用力点视频| 久碰人澡人澡人澡人澡人视频 | 国产亚洲sss在线播放| 好吊视频一区二区三区| 久草视频这里只有精品| 理论片手机在线观看免费视频| 国产精品vⅰdeoXXXX国产| 中文字幕亚洲色图| 毛片免费视频观看| 含羞草传媒旧版每天免费3次| 6一13小幻女| 天天爽天天碰狠狠添| 中文字幕永久免费| 日韩精品一区二区三区视频| 亚洲欧美7777| 真正全免费视频a毛片| 国产AV天堂无码一区二区三区| 香蕉视频一区二区| 在线观看免费视频资源| 一级毛片直接看|