分布式數(shù)據(jù)采集系統(tǒng)中的時(shí)鐘同步
1.3 同步實(shí)現(xiàn)
本文引用地址:http://m.butianyuan.cn/article/85655.htm如圖2所示,從端發(fā)出延遲統(tǒng)計(jì)包,主端反饋后,從端求得Delay。在每個(gè)整秒左右時(shí)刻收到同步包后,進(jìn)行時(shí)鐘修正,即從屬時(shí)鐘與主時(shí)鐘實(shí)現(xiàn)了精確同步[5]。
圖2 同步過程
2 分布式數(shù)據(jù)采集系統(tǒng)簡(jiǎn)介
分布式數(shù)據(jù)采集系統(tǒng)屬于局域網(wǎng)構(gòu)架,單元間通過網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)交互,由集線器和微采集系統(tǒng)組成,每個(gè)微采集器成為一個(gè)獨(dú)立“單元”??梢灾С忠恢鞫鄰牡?a class="contentlabel" href="http://m.butianyuan.cn/news/listbylabel/label/分布式">分布式模型:設(shè)置其中一個(gè)微采集系統(tǒng)作為主單元,其他的作為從單元。分布數(shù)據(jù)采集系統(tǒng)結(jié)構(gòu)框圖如圖3所示。
圖3 分布數(shù)據(jù)采集系統(tǒng)結(jié)構(gòu)框圖
各個(gè)單元的設(shè)計(jì)完全相同,均由一個(gè)系統(tǒng)控制板和多個(gè)功能板構(gòu)成。系統(tǒng)控制板是采集器的核心,它控制著單元內(nèi)的各個(gè)功能卡的配置和單元內(nèi)的數(shù)據(jù)傳輸,同時(shí)保持與外部通信。功能板用以實(shí)現(xiàn)A/D、FIFO處理等功能,用于數(shù)據(jù)采集和傳送。各個(gè)單元中的所有板卡皆采用獨(dú)立時(shí)鐘。
此分布式采集系統(tǒng)中各個(gè)單元構(gòu)成一個(gè)星形網(wǎng)。系統(tǒng)控制板成為星形網(wǎng)絡(luò)中的節(jié)點(diǎn),節(jié)點(diǎn)間用網(wǎng)線相連。系統(tǒng)符合協(xié)議IEEE802.3、CSMA/CD標(biāo)準(zhǔn),可以與標(biāo)準(zhǔn)的以太網(wǎng)完美兼容。
3 基于FPGA的實(shí)現(xiàn)
3.1 分布式系統(tǒng)中各個(gè)單元的體系結(jié)構(gòu)
由于FPGA開發(fā)靈活,精度上能達(dá)到系統(tǒng)要求,開發(fā)周期短,且成本低。系統(tǒng)中各個(gè)系統(tǒng)控制板采用FPGA技術(shù),即采用微控制器及其對(duì)應(yīng)的外設(shè)接口和相應(yīng)的軟件來實(shí)現(xiàn)[6]。利用Nios II處理體系,將系統(tǒng)劃分為各個(gè)功能模塊,并考慮到系統(tǒng)所需的資源和生成代碼的大小。設(shè)計(jì)的系統(tǒng)由以下幾部分組成:Altera的Cyclone系列芯片,包括嵌入Nios II軟核、系統(tǒng)定時(shí)器、同步時(shí)鐘定時(shí)器、DM9000A以及Avalon總線等設(shè)計(jì)。
網(wǎng)絡(luò)接口芯片DM9000A實(shí)現(xiàn)以太網(wǎng)媒體介質(zhì)訪問層(MAC)和物理層(PHY)的功能。系統(tǒng)采用無鏈接的UDP通信,且采用多個(gè)定時(shí)器,用于時(shí)鐘同步和工作周期的制定。
3.2 具體軟件設(shè)計(jì)流程
同步定時(shí)器每秒鐘產(chǎn)生一次中斷。作為同步時(shí)鐘,另一個(gè)定時(shí)器將一個(gè)同步周期劃分為幾個(gè)等時(shí)段,為工作周期。主從單元通過網(wǎng)絡(luò)互相交換數(shù)據(jù),在每一個(gè)系統(tǒng)周期內(nèi)將各自的數(shù)據(jù)發(fā)送到網(wǎng)絡(luò)中。為了預(yù)防發(fā)送時(shí)刻點(diǎn)的沖突,在配置信息中注明每個(gè)周期該單元的發(fā)送時(shí)刻。
系統(tǒng)有以下幾種狀態(tài):初始狀態(tài)、預(yù)同步狀態(tài)、實(shí)時(shí)工作狀態(tài)。
?、?初始狀態(tài):分布式系統(tǒng)上電后,主從單元進(jìn)入初始狀態(tài)對(duì)各項(xiàng)參數(shù)進(jìn)行初始化,注冊(cè)timer中斷和網(wǎng)絡(luò)中斷等。初始化后進(jìn)入預(yù)同步狀態(tài)。
?、?預(yù)同步狀態(tài):主要是每小時(shí)進(jìn)行一次網(wǎng)絡(luò)延時(shí)的測(cè)量,然后從端會(huì)將自己與主端的一次傳輸時(shí)延保存起來。
③ 實(shí)時(shí)工作狀態(tài):預(yù)同步完畢后各單元進(jìn)入實(shí)時(shí)工作狀態(tài)。一小時(shí)后又再次進(jìn)入預(yù)同步狀態(tài)。實(shí)時(shí)工作狀態(tài)將處理多個(gè)線程。
?。?) 同步線程
① 主單元,將同步timer的周期置為1 s的同步約定周期,即每1s產(chǎn)生1次中斷。主單元會(huì)在每秒到來時(shí)刻(中斷),發(fā)出同步包(syns)。
② 從端在接收到同步包后,調(diào)整定時(shí)器時(shí)鐘為同步包內(nèi)時(shí)刻與時(shí)延之和。
?。?) 數(shù)據(jù)傳輸
線程系統(tǒng)在避開同步階段的時(shí)刻進(jìn)行實(shí)時(shí)數(shù)據(jù)的傳輸,主要是根據(jù)系統(tǒng)對(duì)各個(gè)工作周期的劃定。
?。?) 數(shù)據(jù)采集和處理線程
由系統(tǒng)中各單元的各自任務(wù)來決定,不占用網(wǎng)絡(luò)。對(duì)傳感器采集數(shù)據(jù)進(jìn)行處理,同時(shí)也處理網(wǎng)絡(luò)傳送來的數(shù)據(jù)。
4 同步測(cè)試
在系統(tǒng)的實(shí)時(shí)工作狀態(tài)下,驗(yàn)證其同步效果。由于同步定時(shí)器產(chǎn)生的脈沖為一個(gè)系統(tǒng)時(shí)鐘寬度(32MHz),不便于觀察。為了便于演示,主從端都在定時(shí)器產(chǎn)生的同步時(shí)鐘上升沿到達(dá)時(shí)將同步信號(hào)置1,主單元在發(fā)送完同步包后將同步信號(hào)置0;從單元?jiǎng)t在收到同步包后將同步信號(hào)置0。這樣得到的信號(hào)與定時(shí)器產(chǎn)生的同步時(shí)鐘是同頻的,只是放寬了脈沖寬度。同步效果如圖4所示。
圖4 同步效果
圖4 (a)中,每個(gè)柵格為500 ms;圖4(b)將其放大1 000倍,每柵格為500μs。每幅圖中,上面的1通道為主單元同步信號(hào),下面的2通道為從單元同步信號(hào)。由圖4(a)可見,同步時(shí)鐘周期為1 024 ms。
由于從單元是在收到同步包后,將信號(hào)置0,必定滯后于主單元發(fā)送同步包時(shí)刻(主端將同步信號(hào)置0時(shí)刻),從圖4(b)中可見,從單元脈沖寬度比主單元寬,因此只需比對(duì)同步信號(hào)的上升沿。圖4(b)是將圖像保持時(shí)間置為無限,信號(hào)上升沿處陰影表示運(yùn)行時(shí)間以來的偏移情況。測(cè)試時(shí)間為24h(小時(shí)),測(cè)量陰影的長(zhǎng)度Δx=20 μs(上升沿偏移),即為同步效果最大的同步偏差可以控制在20 μs以內(nèi)。
5 結(jié)論
由于系統(tǒng)工作于局域網(wǎng),借鑒IEEE1588協(xié)議思想,提出并實(shí)現(xiàn)了簡(jiǎn)易時(shí)鐘同步的設(shè)想;占用資源少,精度高,可行性高。驗(yàn)證是在實(shí)時(shí)工作狀態(tài)下測(cè)試的,并將同步偏差控制在20μs,滿足時(shí)鐘同步的要求;同時(shí),以FPGA技術(shù)為載體,軟件開發(fā)平臺(tái)為Nios II,易于系統(tǒng)移植和功能擴(kuò)展。鑒于方案的高效和高可行性,可以進(jìn)一步推廣到其他分布式局域網(wǎng)的應(yīng)用系統(tǒng)中。
參考文獻(xiàn)
[1] 王娜, 慕德俊. 分布式試驗(yàn)系統(tǒng)管理中的時(shí)鐘同步技術(shù)研究[J]. 電子技術(shù)應(yīng)用,2006(12): 25-27.
[2] 桂本烜,馮冬芹,褚健,等. IEEE1588的高精度時(shí)間同步算法的分析與實(shí)現(xiàn)[J]. 工業(yè)儀表與自動(dòng)化裝置,2006(4):20-23.
[3] IEEE1588, Standard for a Precision Clock Synchronization Protocol forNetworkedMeasurementandControl Systems[S],IEEE15882002 Standard, November 2002.
[4] Ferrari P,Flammini A, Marioli D,et al. IEEE 1588based Synchronization System for a Displacement Sensor Network[C]. Instrumentation and Measurement Technology Conference, 2006.
[5] Depari A, Ferrari P, Flammini A,et al. Evaluation of Timing Characteristics of Industrial Ethernet Networks Synchronized by means of IEEE 1588[C]. Instrumentation and Measurement Technology Conference,2007.
[6] 彭澄廉,周博,等. 挑戰(zhàn)SOC——基于NIOS的SOPC設(shè)計(jì)與實(shí)踐[M]. 北京: 清華大學(xué)出版社,2004: 12-15,148-152.</P>
評(píng)論