C8051 F1 20與RS422息線的時(shí)鐘同步技術(shù)
3 時(shí)鐘同步設(shè)計(jì)的基本原理
本方案采用多個(gè)C8051F120單片機(jī)組成RS422網(wǎng)絡(luò)。C8051F120單片機(jī)具有高達(dá)100MIPS的執(zhí)行速度,也就是1μs可以執(zhí)行100條單周期指令,所以定時(shí)器定時(shí)1μs可以達(dá)到1%的精度。而RS4.22總線組成的網(wǎng)絡(luò)是“一主多從”式結(jié)構(gòu),網(wǎng)絡(luò)中每個(gè)設(shè)備都有自己的時(shí)鐘,時(shí)鐘采用定時(shí)器實(shí)現(xiàn),1μs觸發(fā)一次。主設(shè)備和從設(shè)備的時(shí)鐘偏差產(chǎn)生有兩個(gè)原因;一是某些隨機(jī)因素產(chǎn)生的誤差;二是由于晶振的運(yùn)行速度不同引起的誤差,此誤差的產(chǎn)生主要受溫度的影響,而溫度又是由工作環(huán)境來決定的。本文采用相對時(shí)鐘同步的方法來減小這種誤差的影響。
該方法分為2步:
①主設(shè)備每2 s進(jìn)行一次時(shí)鐘同步。主設(shè)備首先發(fā)送報(bào)文master_a(該報(bào)文本身不含發(fā)送時(shí)間),之后再發(fā)送一幀帶有該報(bào)文發(fā)送時(shí)間信息的報(bào)文master_b。這樣,從設(shè)備可以分析出主設(shè)備的同步報(bào)文的發(fā)送時(shí)間T1和接收時(shí)間T2(如無特殊標(biāo)注,文中所涉及的時(shí)間變量都是以μs為單位的)。從設(shè)備再發(fā)送一個(gè)報(bào)文slave_c,并記下這個(gè)報(bào)文的發(fā)送時(shí)間T3,主設(shè)備接到該報(bào)文后記下接收時(shí)間T4,并把T4發(fā)給從設(shè)備,從設(shè)備就有了T1、T2、T3、T4的值。由于主設(shè)備和從設(shè)備都采用同一波特率進(jìn)行串行通信,所以只要保證主設(shè)備的報(bào)文和從設(shè)備的報(bào)文發(fā)送的字節(jié)數(shù)相同,就可以看成主設(shè)備和從設(shè)備的發(fā)送時(shí)間和接收時(shí)間是相同的,即圖3中的T1、T2、T3、T4四點(diǎn)構(gòu)成的是等腰梯形。所以主設(shè)備和從設(shè)備之間的時(shí)間偏差:
本文引用地址:http://www.ex-cimer.com/article/173522.htm
從設(shè)備的時(shí)間T_Slave減去從設(shè)備和主設(shè)備之間的偏差△,即校正后的時(shí)間。但此時(shí)校正后的結(jié)果只是改變從設(shè)備的時(shí)鐘誤差,并沒有改變從時(shí)鐘的時(shí)鐘頻率。隨著時(shí)間的增長,這個(gè)誤差就又會出現(xiàn),因此想要減小這個(gè)誤差必須采用進(jìn)一步的方法。
②進(jìn)行時(shí)鐘頻率的校正。C8051F120單片機(jī)的指令速度很快(可達(dá)100MIPS),這就為單片機(jī)應(yīng)用內(nèi)部定時(shí)器實(shí)現(xiàn)頻率可調(diào)時(shí)鐘創(chuàng)造了有利條件。本文多次測量從設(shè)備和主設(shè)備之間的時(shí)間誤差來求取平均值,作為主從時(shí)鐘在規(guī)定時(shí)間內(nèi)的從設(shè)備和主設(shè)備之間的誤差,通過這個(gè)誤差來修正從設(shè)備的時(shí)鐘頻率。具體做法為:測量5次從設(shè)備和主設(shè)備之間的偏差△1~△5,采用平均值濾波法得到的結(jié)果△z作為2 s的時(shí)間偏差。
其中,t代表1μs內(nèi)時(shí)鐘的偏差量,單位是0.01 μs。只須修改定時(shí)器的相應(yīng)寄存器,就可以達(dá)到調(diào)整時(shí)鐘頻率的目的。
評論