本發(fā)明涉及一種用于串行幀同步傳輸數(shù)據(jù)的通訊方式,尤其涉及一種校驗(yàn)簡(jiǎn)便、同步精度高的串行幀同步多型鎖定控制方法。
背景技術(shù):
現(xiàn)代工業(yè)控制中,往往需要很多的獨(dú)立模塊相互配合來(lái)共同完成一個(gè)復(fù)雜的控制過程,很多情況下各模塊之間需要進(jìn)行串口通信。串口的通信協(xié)議是提高系統(tǒng)穩(wěn)定性、準(zhǔn)確性及可靠性的必要條件。若要可靠準(zhǔn)確地完成特定的通信協(xié)議,就需要建立完善的同步機(jī)制,提高控制系統(tǒng)的實(shí)時(shí)性。串口通信中的同步方法很多,有逐次比較的幀同步法、基于ftfo隊(duì)列的幀同步法,但是這兩種同步法,實(shí)現(xiàn)同步消耗的時(shí)間比較長(zhǎng),較難實(shí)現(xiàn)同步。基于有限狀態(tài)機(jī)的幀同步法,雖然較上兩種同步法有所提高,但是在接收完一幀數(shù)據(jù)后還要把系統(tǒng)的接收狀態(tài)重新設(shè)置,否則會(huì)影響到下一幀的數(shù)據(jù)接收,因此這種同步法在同步處理上又存在比較繁瑣的缺陷。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明為了解決上述技術(shù)問題,提供一種串行幀同步多型鎖定控制方法,其將同步數(shù)據(jù)幀結(jié)構(gòu)進(jìn)行優(yōu)化,幀結(jié)構(gòu)簡(jiǎn)單,校驗(yàn)簡(jiǎn)便,同步精度高,有效提高了串行幀數(shù)據(jù)的同步性和準(zhǔn)確性,為控制系統(tǒng)實(shí)時(shí)穩(wěn)步運(yùn)行提供了保證,確保系統(tǒng)通信及控制的實(shí)時(shí)性和可靠性。
本發(fā)明的上述技術(shù)問題主要是通過下述技術(shù)方案得以解決的:本發(fā)明的幀結(jié)構(gòu)包括依次相連的幀同步頭、幀類型、幀信息長(zhǎng)度、幀信息和幀校驗(yàn),串行幀同步多型鎖定控制方法包括特征字符同步頭控制方法、時(shí)間間隔同步控制方法和字節(jié)持續(xù)尋找方法。幀校驗(yàn)用于判定收到幀數(shù)據(jù)的正確性,幀校驗(yàn)字節(jié)通常放置在一幀數(shù)據(jù)的尾部,為提高字節(jié)有效利用率,本發(fā)明中省略了幀尾,直接由幀校驗(yàn)字節(jié)作為幀的結(jié)尾。當(dāng)然有時(shí)為了保密等需要,實(shí)際使用中,幀校驗(yàn)字節(jié)可以放置在每一幀的任何部位。本發(fā)明將同步數(shù)據(jù)幀結(jié)構(gòu)進(jìn)行優(yōu)化,幀結(jié)構(gòu)簡(jiǎn)單,減小判斷耗時(shí),校驗(yàn)簡(jiǎn)便。
作為優(yōu)選,所述的特征字符同步頭控制方法為:選擇在幀的內(nèi)部最少出現(xiàn)的單字節(jié)或多字節(jié)作為幀同步頭或者選擇指定字節(jié)的特征值作為幀同步頭;接收幀數(shù)據(jù)時(shí),對(duì)幀數(shù)據(jù)各字節(jié)進(jìn)行判斷,如果幀同步頭不正確,則丟棄首字節(jié),繼續(xù)判斷下一字節(jié)捕捉幀同步頭;如果幀同步頭正確,則接收下一字節(jié)。對(duì)于幀同步頭的設(shè)計(jì),一般來(lái)講,幀同步頭為單字節(jié)或多字節(jié),但是同步頭不能過長(zhǎng),否則會(huì)增加幀數(shù)據(jù)判斷時(shí)間,降低傳輸效率。因此,為了避免過長(zhǎng)的幀同步頭,縮短幀數(shù)據(jù)的判斷時(shí)間,采用特殊的字符或者指定字節(jié)的特征值作為同步頭。比如,幀同步頭用指令、數(shù)據(jù)某個(gè)字節(jié),也可采用幀計(jì)數(shù)特征值來(lái)比較前、后兩幀數(shù)據(jù)。幀同步頭最佳的選擇是把在幀的內(nèi)部最少出現(xiàn)的單字節(jié)或多字節(jié)作為幀同步頭。本發(fā)明有效減少幀數(shù)據(jù)判斷時(shí)間,提高數(shù)據(jù)傳輸效率。
作為優(yōu)選,所述的時(shí)間間隔同步控制方法為:同一幀內(nèi)相鄰兩個(gè)字節(jié)允許的接收間隔時(shí)間稱為同步間隔時(shí)間,將同步間隔時(shí)間作為同步的判斷條件,幀數(shù)據(jù)接收方要對(duì)接收到的相鄰兩字節(jié)的接收間隔時(shí)間t進(jìn)行檢測(cè),如果(11/f)<t<(2×11/f),那么認(rèn)為接收或發(fā)送具有連續(xù)性,符合同步要求,則接收下一字節(jié);反之,如果t≤(11/f)或t≥(2×11/f),那么認(rèn)為接收或發(fā)送不連續(xù),不符合同步要求,則丟棄這一幀數(shù)據(jù),接收下一幀數(shù)據(jù);其中,f為傳輸波特率,單位為b/s??刂葡到y(tǒng)要滿足較高的實(shí)時(shí)性和同步性,則要求發(fā)送方和接收方在發(fā)送和接收時(shí)具有連續(xù)性。發(fā)送方比較容易實(shí)現(xiàn),接收方的同步性比較難實(shí)現(xiàn)。一個(gè)字節(jié)有8bits,包括起始位、校驗(yàn)位和停止位在內(nèi),發(fā)送一個(gè)字節(jié),需要11bits,則接收一個(gè)字節(jié)所耗時(shí)間為(11/f)s,接收下一個(gè)字節(jié)的最小時(shí)間為(11/f)s,最大時(shí)間應(yīng)為(2×11/f)s,所以,本技術(shù)方案中,同一幀內(nèi)相鄰兩個(gè)字節(jié)允許的接收間隔時(shí)間t為(11/f)<t<(2×11/f)(即為一個(gè)字節(jié)的傳輸時(shí)間)。如果同步性要求更高的,可以縮短允許的接收間隔時(shí)間的范圍。本技術(shù)方案同步精度高,有效提高了串行幀數(shù)據(jù)的同步性和準(zhǔn)確性,為控制系統(tǒng)實(shí)時(shí)穩(wěn)步運(yùn)行提供了保證,確保系統(tǒng)通信及控制的實(shí)時(shí)性和可靠性。
作為優(yōu)選,所述的字節(jié)持續(xù)尋找方法為:先鎖定所述的幀同步頭和同步間隔時(shí)間,逐次比較幀同步頭和同步間隔時(shí)間,在幀同步頭和同步間隔時(shí)間都正確的情況下,繼續(xù)接收下一字節(jié),直到幀校驗(yàn)字節(jié)也正確,則認(rèn)為當(dāng)前一幀數(shù)據(jù)已經(jīng)完整接收,當(dāng)前一幀為正確幀;如果同步間隔時(shí)間超出允許范圍,則確認(rèn)當(dāng)前幀不是正確幀,剔除最前面接收到的首字節(jié),丟棄該幀,接收下一幀數(shù)據(jù),繼續(xù)尋找正確幀。
本發(fā)明的有益效果是:幀結(jié)構(gòu)簡(jiǎn)單,校驗(yàn)簡(jiǎn)便,縮短了同步頭的判斷耗時(shí),有效提高了串行幀數(shù)據(jù)同步的實(shí)時(shí)性和準(zhǔn)確性,接收數(shù)據(jù)的準(zhǔn)確度高,為控制系統(tǒng)實(shí)時(shí)穩(wěn)步運(yùn)行提供了保證,確保系統(tǒng)通信及控制的實(shí)時(shí)性和可靠性。
附圖說(shuō)明
圖1是本發(fā)明中幀結(jié)構(gòu)的一種結(jié)構(gòu)示意圖。
圖2是本發(fā)明中相鄰兩個(gè)字節(jié)允許的接收間隔時(shí)間的示意圖。
圖中1.幀同步頭,2.幀類型,3.幀信息長(zhǎng)度,4.幀信息,5.幀校驗(yàn)。
具體實(shí)施方式
下面通過實(shí)施例,并結(jié)合附圖,對(duì)本發(fā)明的技術(shù)方案作進(jìn)一步具體的說(shuō)明。
實(shí)施例:本實(shí)施例的串行幀同步多型鎖定控制方法,將同步數(shù)據(jù)幀結(jié)構(gòu)進(jìn)行優(yōu)化,如圖1所示,幀結(jié)構(gòu)包括依次相連的幀同步頭1、幀類型2、幀信息長(zhǎng)度3、幀信息4和幀校驗(yàn)5,幀校驗(yàn)用于判定收到幀數(shù)據(jù)的正確性,幀校驗(yàn)字節(jié)通常放置在一幀數(shù)據(jù)的尾部,為提高字節(jié)有效利用率,本發(fā)明中省略了幀尾,直接由幀校驗(yàn)字節(jié)作為幀的結(jié)尾。
串行幀同步多型鎖定控制方法包括特征字符同步頭控制方法、時(shí)間間隔同步控制方法和字節(jié)持續(xù)尋找方法。
根據(jù)串口通信協(xié)議定義如下的幀率和幀長(zhǎng)度等參數(shù)分別為:
波特率:f(b/s)
發(fā)送幀率:m(f/s)
發(fā)送幀長(zhǎng):l(bytes)
控制系統(tǒng)中串口通信的幀數(shù)據(jù)的發(fā)送按照上面給出的幀率進(jìn)行發(fā)送,接收時(shí),為了保證良好的同步性和連續(xù)性,幀數(shù)據(jù)各字節(jié)的逐次比較判斷過程為:先判斷幀同步頭,如果正確則接收下一字節(jié),如果不正確則丟棄首字節(jié),進(jìn)入下一字節(jié)的判斷,依此類推,逐個(gè)對(duì)幀類型、幀信息長(zhǎng)度、幀信息和幀校驗(yàn)進(jìn)行正確性判斷。在同一幀內(nèi),相鄰兩個(gè)字節(jié)的接收間隔時(shí)間在允許的范圍內(nèi),則接收下一字節(jié);如果超出允許范圍,則丟棄該幀,接收下一幀數(shù)據(jù)。
對(duì)于幀同步頭的設(shè)計(jì),一般來(lái)講,幀同步頭為單字節(jié)或多字節(jié),但是幀同步頭不能過長(zhǎng),否則會(huì)增加幀數(shù)據(jù)判斷時(shí)間,降低傳輸效率,因此,為了避免過長(zhǎng)的幀同步頭,縮短幀數(shù)據(jù)的判斷時(shí)間,本發(fā)明采用了特征字符同步頭控制方法:選擇在幀的內(nèi)部最少出現(xiàn)的單字節(jié)或多字節(jié)作為幀同步頭或者選擇指定字節(jié)的特征值作為幀同步頭;接收幀數(shù)據(jù)時(shí),對(duì)幀數(shù)據(jù)各字節(jié)進(jìn)行判斷,如果幀同步頭不正確,則丟棄首字節(jié),繼續(xù)判斷下一字節(jié)捕捉幀同步頭;如果幀同步頭正確,則接收下一字節(jié)。
控制系統(tǒng)要滿足較高的實(shí)時(shí)性和同步性,則要求發(fā)送方和接收方在發(fā)送和接收時(shí)具有連續(xù)性。發(fā)送方比較容易實(shí)現(xiàn),接收方的同步性比較難實(shí)現(xiàn),本發(fā)明采用了時(shí)間間隔同步控制方法,如圖2所示:同一幀內(nèi)相鄰兩個(gè)字節(jié)允許的接收間隔時(shí)間稱為同步間隔時(shí)間,將同步間隔時(shí)間作為同步的判斷條件,幀數(shù)據(jù)接收方要對(duì)接收到的相鄰兩字節(jié)的接收間隔時(shí)間t進(jìn)行檢測(cè),如果(11/f)<t<(2×11/f),那么認(rèn)為接收或發(fā)送具有連續(xù)性,符合同步要求,則接收下一字節(jié);反之,如果t≤(11/f)或t≥(2×11/f),那么認(rèn)為接收或發(fā)送不連續(xù),不符合同步要求,則丟棄這一幀數(shù)據(jù),接收下一幀數(shù)據(jù);其中,f為傳輸波特率,單位為b/s。
一個(gè)字節(jié)有8bits,包括起始位、校驗(yàn)位和停止位在內(nèi),發(fā)送一個(gè)字節(jié),需要11bits,則接收一個(gè)字節(jié)所耗時(shí)間為(11/f)s,接收下一個(gè)字節(jié)的最小時(shí)間為(11/f)s,最大時(shí)間應(yīng)為(2×11/f)s,所以,時(shí)間間隔同步控制方法中,同一幀內(nèi)相鄰兩個(gè)字節(jié)允許的接收間隔時(shí)間t為(11/f)<t<(2×11/f)(即為一個(gè)字節(jié)的傳輸時(shí)間)。如果同步性要求更高的,可以縮短允許的接收間隔時(shí)間的范圍。
字節(jié)持續(xù)尋找方法為:先鎖定幀同步頭和同步間隔時(shí)間,逐次比較幀同步頭和同步間隔時(shí)間,在幀同步頭和同步間隔時(shí)間都正確的情況下,繼續(xù)接收下一字節(jié),直到幀校驗(yàn)字節(jié)也正確,則認(rèn)為當(dāng)前一幀數(shù)據(jù)已經(jīng)完整接收,當(dāng)前一幀為正確幀;如果同步間隔時(shí)間超出允許范圍,則確認(rèn)當(dāng)前幀不是正確幀,剔除最前面接收到的首字節(jié),丟棄該幀,接收下一幀數(shù)據(jù),繼續(xù)尋找正確幀。
本發(fā)明與現(xiàn)有串行同步方法相比,數(shù)據(jù)幀結(jié)構(gòu)中采用了特殊字符作為幀同步頭,縮短了幀同步頭的判斷耗時(shí);用相鄰兩個(gè)字節(jié)的接收間隔時(shí)間作為同步的判斷條件,提高了同步的實(shí)時(shí)性和準(zhǔn)確性。本發(fā)明幀結(jié)構(gòu)簡(jiǎn)單,校驗(yàn)簡(jiǎn)便,實(shí)時(shí)性高,接收數(shù)據(jù)的準(zhǔn)確度高,為控制系統(tǒng)實(shí)時(shí)穩(wěn)步運(yùn)行提供了保證,確保系統(tǒng)通信及控制的實(shí)時(shí)性和可靠性。
以上所述的具體實(shí)施方式,對(duì)本發(fā)明作了進(jìn)一步的詳細(xì)說(shuō)明。所應(yīng)理解的是,以上所述僅為本發(fā)明的較佳實(shí)例而已,并不用于限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍內(nèi)。