,
(國電南京自動化股份有限公司,南京 210003)
AVR微控制器的多CPU共享高精度實時時鐘系統(tǒng)
付國新,江曉亮
(國電南京自動化股份有限公司,南京 210003)
基于AVR微控制器設(shè)計了一種高精度、穩(wěn)定準確的實時時鐘系統(tǒng),多CPU通過高速SPI總線共享時鐘信息,給出了硬件系統(tǒng)的設(shè)計方法和軟件系統(tǒng)的設(shè)計流程,該設(shè)計已經(jīng)在電力系統(tǒng)故障錄波裝置中成功應(yīng)用,具有一定的推廣價值。
AVR微控制器;SPI總線;TWI總線;IRIGB碼
在電力系統(tǒng)中,幾乎所有自動化裝置都需要有一個高精度、高分辨率的實時時鐘,尤其是電力系統(tǒng)故障錄波裝置,時戳的分辨率至少為30.517 5 μs,而且能接收GPS裝置的對時。一般時鐘芯片的分辨率最多到0.1 s。如果需要分辨到μs級,就需要CPU維護一個μs級的定時器,這樣既消耗CPU資源,又對多任務(wù)系統(tǒng)下的操作系統(tǒng)造成負擔。隨著對電力系統(tǒng)故障錄波裝置采集數(shù)據(jù)時戳的精度和分辨率要求越來越高,對時鐘系統(tǒng)的設(shè)計要求也越來越高。本文設(shè)計的基于AVR微控制器多CPU共享高精度時鐘系統(tǒng)針對以上技術(shù)的發(fā)展和需求,提出在嵌入式裝置下,高精度、高分辨率實時時鐘模塊化設(shè)計思想,把系統(tǒng)的時鐘放在一個廉價的高速微控制器上實現(xiàn),由它來維護一個分辨率為30.517 5 μs的實時時鐘,同時把與GPS所有的對時方式集中設(shè)計到該模塊中,為其他CPU提供一個標準的SPI接口,由SPI給各個CPU提供統(tǒng)一的時鐘,同時提供一個I2C接口,主CPU可修改模塊上的時鐘芯片,從而滿足實際應(yīng)用中對錄波裝置或其嵌入式裝置高精度、高分辨率的時鐘要求。
本設(shè)計采用ATMEL公司AVR 8位微控制器ATmega16,該控制器具備低功耗、易用性、高集成性、硬件資源豐富和高性價比等特點[1]。本設(shè)計系統(tǒng)結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)圖
ATmega16的T/C的輸入捕捉單元可用來捕獲外部事件,并為其賦予時間標記以說明此事件發(fā)生的時刻。IRIGB信號接入主控制器的ICP引腳,就可以測量碼元寬度,解析B碼信息。本設(shè)計選用DS3232作為系統(tǒng)基礎(chǔ)時間,該芯片有32 kHz的溫補晶振,能提供穩(wěn)定精確的參考時鐘,時鐘精度為±3.5 ppm,內(nèi)置測溫模塊。兩線串行接口TWI 總線[2]和工作于主機模式的串行接口SPI總線于電力系統(tǒng)故障錄波CPU連接,可同時為2個電力系統(tǒng)故障錄波CPU提供UTC時標,并接收電力系統(tǒng)故障錄波CPU的各種命令。本設(shè)計以DS3232的32 kHz的信號為節(jié)拍,維護一個分辨率為30.517 5 μs的軟時鐘,該軟時鐘24小時守時誤差不大于200 ms,為錄波CPU提供高精度、高分辨率、高穩(wěn)定的時標,減少電力系統(tǒng)故障錄波CPU的工作負荷。本設(shè)計系統(tǒng)原理圖如圖2所示,主要由電源、時鐘、B碼和CPU四部分組成。
圖2 系統(tǒng)原理圖
圖2 系統(tǒng)原理圖(續(xù))
本設(shè)計軟件主要由三大模塊組成,分別是外中斷服務(wù)程序模塊、主循環(huán)模塊和ICP中斷服務(wù)程序模塊。
2.1 外中斷服務(wù)程序模塊
外中斷以DS3232的32 kHz方波信號為中斷請求信號,維護UTC格式的軟時鐘,每次中斷軟時鐘量加30 517 ns,并且將當前時標、B碼中的質(zhì)量狀態(tài)、校驗位、潤秒等信息通過SPI總線發(fā)給兩個錄波CPU。外中斷服務(wù)程序流程圖如圖3所示。
圖3 外中斷服務(wù)程序流程圖
2.2 主程序模塊
主程序模塊完成主控制器硬件資源的初始化,讀取DS3232的時間信息并轉(zhuǎn)換成UTC格式,在主循環(huán)中,每次查詢I2C控制器的狀態(tài)[3],當錄波CPU通過I2C發(fā)出各種命令時,主控制器就可獲取,并解析、響應(yīng)命令,實現(xiàn)設(shè)置DS3232、溫度采集、電源電壓采集。主程序流程圖如圖4所示。
圖4 主程序流程圖
2.3 ICP中斷服務(wù)程序模塊
ICP中斷服務(wù)程序模塊完成B碼采集和碼元解析,從B碼中提取出年、月、日、時、分、秒信息和秒的起始位置,并以此修改軟時鐘信息,實現(xiàn)軟時鐘與GPS的同步。ICP中斷服務(wù)程序流程圖如圖5所示。
圖5 ICP中斷服務(wù)程序流程圖
[1] 李泓.AVR單片機入門與實踐[M].北京:北京航空航天大學(xué)出版社,2008.
[2] 郭祥軍.AVR單片機的TWI總線的原理及應(yīng)用[J].單片機與嵌入式系統(tǒng)應(yīng)用,2006(8):37-39.
[3] 肖晶晶,李天劍,吳啟焱.基于TWI接口的AVR單片機通信系統(tǒng)設(shè)計[J].北京信息科技大學(xué)學(xué)報,2009,24(4):66-68.
參考文獻
[1] 羅成. 高清視頻矩陣的發(fā)展與分類[J]. 中國公共安全:綜合版,2012(6):70-72.
[2] 趙文龍,艾志清,劉陽. 基于嵌入式Linux的視頻矩陣控制系統(tǒng)設(shè)計[J]. 電視技術(shù),2013(15):67-70,158.
[3] 唐俊,蔣健,謝申喜. 基于樹莓派的能耗數(shù)據(jù)采集網(wǎng)關(guān)設(shè)計[J]. 測控技術(shù),2017(3):98-100,106.
[4] 李艷芹,蔣健,李人杰. 基于樹莓派的多串口多總線服務(wù)器設(shè)計[J]. 單片機與嵌入式系統(tǒng)應(yīng)用,2014(10):72-75.
[5] 王彥. 一種視頻矩陣控制器的軟件實現(xiàn)[J]. 軟件導(dǎo)刊,2012(5):175-177.
[6] 王春紅,尚冬娟. 確定有窮自動機的最小化問題探討[J]. 計算機教育,2008(7):40-42.
謝成(碩士研究生),主要研究方向為嵌入式系統(tǒng)設(shè)計和應(yīng)用;蔣健(副教授),主要研究方向為工業(yè)控制系統(tǒng)。
High-precisionReal-timeClockSystemSharedByMuti-CPUBasedonAVRMicrocontroller
FuGuoxin,JiangXiaoliang
(Guodian Nanjing Automation Co.,Ltd.,Nanjing 210003,China)
In the paper,a high-precision,accuracy,stable real-time clock system is designed based on AVR microcontroller.Muti-CPU can share time by the high speed SPI.The hardware design and software flow of the clock system are given.This design has been applied in the power system fault recorder and it is feasible and useful.
AVR microcontroller;SPI bus;TWI bus;IRIGB code
TP3
A
2017-07-14)
(責任編輯:楊迪娜 收稿日期:2017-06-12)