李 威
(河海大學 物聯網工程學院,江蘇常州,213022)
基于CORDIC算法的無線傳感器網絡同步時鐘源的研究
李 威
(河海大學 物聯網工程學院,江蘇常州,213022)
時鐘同步是無線傳感器網絡的一項重要支撐技術。針對無線傳感器網絡的時鐘同步,本文提出了一種基于CORDIC算法的改進型DDS系統。介紹了CORDIC算法的原理,采用QuartusⅡ軟件對時鐘源系統的各個模塊進行了詳細設計。實驗結果表明,系統的性能指標達到了設計要求。
時鐘同步;無線傳感器網絡;DDS;CORDIC
無線傳感器網絡(Wireless Sensor Networks,WSNs)融合了傳感器技術、嵌入式技術、數據處理技術和通信技術,被廣泛地應用于軍事、環境、交通、工業、家居等領域[1]。無線傳感器網絡是一種由大量部署在監測區域中具有感知、通信和處理能力的傳感器節點以自組織方式構成的網絡,并以多跳的方式將數據由數據源沿多個節點傳送至匯聚節點。無線傳感器網絡的諸多特性,如有限的硬件資源和能量、密集的節點分布、龐大的網絡規模、動態的網絡拓撲等,決定了其廣闊的應用前景。
時鐘同步技術是無線傳感器網絡的一項重要支撐技術,為網絡中各個節點的本地時鐘提供一個統一的時間標尺。在無線傳感器網絡中,節點晶振漂移和信息交換過程中產生傳輸延遲等因素導致各節點本地時鐘之間存在一定偏差。對于需要協同工作的傳感器節點來說,統一的時間尺度是必要的。此外,傳感器網絡的一些特殊應用,如傳感器節點的數據融合,休眠喚醒節能機制等,對基準時鐘提出了很高的要求。因此,無線傳感器網絡中的同步時鐘源具有重要的研究意義和實用價值。


圖1 直角坐標下向量的旋轉



因此,CORDIC算法旋轉模式的差分方程可以寫為:


因此,由式(5)和(6)可以得到:

本時鐘源主要采用MCU + FPGA架構,實現了基于CORDIC算法的改進型DDS系統。該系統主要由MCU、銣原子振蕩器、FPGA、數模轉換器和低通濾波器等5部分組成。其中,MCU主要負責將所需波形的配置數據發送至FPGA。銣原子振蕩器主要為FPGA提供頻率基準。FPGA根據接收到的配置數據,通過DDS模塊產生相應頻率和相位的波形,最后經由數模轉換器和低通濾波器輸出。DDS的工作原理框圖如圖2所示。

圖2 DDS工作原理框圖
DDS的實質是以基準頻率源(銣原子振蕩器)對相位進行等間隔采樣,其工作過程[4]如下:在參考時鐘的作用下,位相位累加器對頻率控制字進行累加,其輸出為相位碼的高位,然后通過ROM查詢表轉換得到相應的位幅度碼。幅度碼由外接的數模轉換器變換得到模擬的階梯波電壓,最后經過低通濾波器濾掉諧波分量,抑制高頻雜散,平滑為連續的正弦波形。通過外接比較器可以得到抖動很小的方波信號,即所需的標準時鐘源。因此,通過改變頻率控制字就可以改變輸出頻率。此時輸出信號的頻率為:

DDS技術的關鍵在于相幅轉換模塊。由于ROM查表法受到ROM存儲容量的限制,其性能提高的空間有限。在實際應用中,實時的正余弦計算替代ROM查表法可以節省更多的資源[5]。因此,本文采用CORDIC算法通過加/減法和移位運算,實現正余弦計算以替代ROM查詢表。
下面采用QuartusⅡ軟件對DDS系統的各個模塊進行了詳細設計,給出并分析了各模塊的仿真結果。
2.1 相位累加器模塊

圖3 相位累加器模塊的宏模塊圖
圖3 是一個6位的相位累加器。在時鐘脈沖clock的控制下,頻率控制字dataa[5..0]與頻率控制字寄存器相加。每個時鐘周期頻率控制字累加一次,再與相位控制字datab[5..0]相加并輸出。因此,輸出序列本質上是一組等差數列,數列的公差即為頻率控制字。

圖4 相位累加器模塊的仿真結果
如圖4所示,在clock信號的控制下,頻率控制字dataa設置為4,相位控制字datab設置為0,輸出結果out產生步長為4的數列,遞增到64時溢出,進入下一個周期。觀察仿真結果可知,輸出信號的周期為1.6。
2.2 相位轉換模塊
由于角度值、輸出的正余弦值及其中間結果均采用二進制補碼格式的定點數,因此相位累加器的輸出值需要完成相位轉換才能接入CORDIC模塊進行計算。相位累加器的輸出范圍為,頻率分辨率為,所以相位累加器輸出的相位為。經過角度擴展后的CORDIC模塊覆蓋的角度范圍為,而的范圍是,因此采用即可將相位轉換為的二進制補碼相位值。

圖5 相位轉換模塊的宏模塊圖

圖6 相位轉換模塊的仿真結果
從圖6可以看出,當相位累加器輸出為45時,相位轉換模塊將其轉換為弧度1.078所對應的二進制補碼138。
2.3 CORDIC模塊

圖7 CORDIC模塊的宏模塊圖
CORDIC模塊的宏模塊圖如圖7所示。它作為實時的正余弦計算器,替代了傳統DDS系統的ROM查詢表,實現了輸入一個相位值,輸出與之對應的正余弦值,且相位和幅度值均采用二進制補碼表示。
觀察圖8所示仿真結果可知,當輸入相位值為H86(對應角度)時,CORDIC模塊的正弦值輸出為H6F,即0.8672,余弦值輸出為H3F,即0.4922,近似等于正余弦的理論計算值。

圖8 CORDIC模塊的仿真結果
本文主要采用MCU + FPGA架構,設計了基于CORDIC算法的改進型DDS系統。傳統DDS系統的ROM查詢表占用資源多且時間很難同步。本文采用CORDIC算法通過加/減法和移位運算實現了正余弦計算。實驗結果表明,該方案能夠充分發揮CORDIC算法的優勢,時鐘源系統的性能指標達到了設計要求。
[1]F. Sivrikaya, B. Yener. Time synchronization in sensor networks: a survey. IEEE Network, 2004, 18(4): 45-50.
[2]S. Aggarwal, P. K. Meher, K. Khare. Scale-Free Hyperbolic CORDIC Processor and Its Application to Waveform Generation. IEEE Transactions on Circuits and Systems I: Regular Papers, 2013, 60(2): 314-326.
[3]M. Kumm, H. Klingbeil, P. Zipf. An FPGA-Based Linear All-Digital Phase-Locked Loop. IEEE Transactions on Circuits and Systems I: Regular Papers, 2010, 57(9): 2487-2497.
[4]Dengwei Fu, A. N. Willson. A two-stage angle-rotation architecture and its error analysis for efficient digital mixer implementation. IEEE Transactions on Circuits and Systems I: Regular Papers, 2006, 53(3): 604-614.
[5]A. Sharma, R. D. Daruwala. Digital frequency (sinusoidal) synthesizer using CORDIC algorithm. The 3rd IEEE International Conference on Communication Software and Networks (ICCSN 2011), pp. 521-524, May 27-29, 2011, Xi'an, China.
CORDIC-based Clock Source for Time Synchronization in Wireless Sensor Networks
Li Wei
(College of Internet of Things Engineering, Hohai University, Changzhou,213022, China)
Time synchronization is an important supporting technology for wireless sensor networks (WSNs). In this paper, a CORDIC-based DDS system is proposed for time synchronization in WSNs. The principle of CORDIC algorithm is briefly discussed. Using QuartusⅡ, the clock source system is designed in detail. The experiment results show that the performance of the system can meet the design requirements.
time synchronization; wireless sensor networks; DDS; CORDIC
李威(1980-),男,副教授,主要從事無線傳感器網絡、統計信號處理方向的研究工作。
國家自然科學基金(61401147),中央高?;究蒲袠I務費(2013B09214)資助課題