一種基于光纖傳輸?shù)臄?shù)據(jù)正反相位編碼方法及數(shù)據(jù)傳輸方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及屬于電力工程的繼電保護(hù)自動(dòng)化領(lǐng)域,具體涉及數(shù)字傳輸系統(tǒng)中的一種基于光纖傳輸?shù)臄?shù)據(jù)正反相位編碼方法及數(shù)據(jù)傳輸方法。
技術(shù)背景
[0002]當(dāng)前光纖通信在智能變電站數(shù)字傳輸系統(tǒng)中應(yīng)用越來越廣泛,光纖通信具有重量輕、體積小、容量大、傳輸頻帶寬、損耗低、不易串音、抗電干擾等優(yōu)點(diǎn)。光纖通信中的核心器件是光模塊,由光模塊完成對相關(guān)數(shù)據(jù)進(jìn)行發(fā)送和接收。光模塊是完成光/電轉(zhuǎn)換和電/光轉(zhuǎn)換的器件,由于光模塊的器件特性,連續(xù)的長“O”和連續(xù)的長“1”,都可能會(huì)提高光通信的誤碼率。在光纖通信系統(tǒng)中,為了消除信號中的連續(xù)的長“O”和連續(xù)長“1”,往往需要對發(fā)送的數(shù)據(jù)進(jìn)行某種編碼轉(zhuǎn)換,如曼徹斯特編碼、8B/10B編碼或者使用專門的編碼芯片,而這些編碼或?qū)崿F(xiàn)復(fù)雜,或限制數(shù)據(jù)的傳輸帶寬。
[0003]如曼徹斯特的碼元中攜帶時(shí)鐘信息,需要在解碼端用高頻的本地時(shí)鐘對輸入信號進(jìn)行采樣,從曼徹斯特的碼元中分離出傳輸數(shù)據(jù)和傳輸時(shí)鐘,然后再將“10”解碼為“0”,將“01”解碼為“ I ”。曼徹斯特編碼缺點(diǎn)是因需要高頻時(shí)鐘對碼元采樣分離時(shí)鐘,也就限制了曼徹斯特編碼的傳輸速率。8B/10B編碼廣泛使用在高速串行傳輸數(shù)據(jù)中,其編碼原理先將8B數(shù)據(jù)分為低5位和高3位,再分別進(jìn)行5B/6B編碼和3B/4B編碼,最終產(chǎn)生1B數(shù)據(jù)。8B/10B編碼的缺點(diǎn)是,無論是5B/6B編碼還是3B/4B編碼實(shí)現(xiàn)都比較復(fù)雜。而使用專用芯片實(shí)現(xiàn)編解碼成本太高,且傳輸速率也受限制,不能靈活滿足多種速率數(shù)據(jù)傳輸,也會(huì)占用日益緊張的電路板的布線空間。
【發(fā)明內(nèi)容】
[0004]本發(fā)明提供了一種基于光纖傳輸?shù)臄?shù)據(jù)正反相位編碼方法及數(shù)據(jù)傳輸方法,以解決現(xiàn)有技術(shù)中編碼方法在消除信號中的連續(xù)的長“O”和連續(xù)長“I”現(xiàn)象時(shí)編碼復(fù)雜、成本高、傳輸速率受限的問題。
[0005]為解決上述技術(shù)問題,本發(fā)明的基于光纖傳輸?shù)臄?shù)據(jù)正反相位編碼方法包括:以字節(jié)為單位,依次選取待傳輸?shù)挠行?shù)據(jù),對選取的一字節(jié)有效數(shù)據(jù)按位取反,得到反相數(shù)據(jù),將反相數(shù)據(jù)與選取的有效數(shù)據(jù)組成用于光纖傳輸?shù)挠行?shù)據(jù),重復(fù)上述步驟直至所有待傳輸?shù)挠行?shù)據(jù)編碼完成。
[0006]本發(fā)明的數(shù)據(jù)傳輸方法,其特征在于,該方法包括如下步驟:
[0007]I)將待傳輸?shù)臄?shù)據(jù)封裝成幀;
[0008]2)以字節(jié)為單位,從封裝好的一幀數(shù)據(jù)中取有效數(shù)據(jù)即正相數(shù)據(jù)進(jìn)行存儲(chǔ),同時(shí)對該有效數(shù)據(jù)按位取反得到反相數(shù)據(jù)進(jìn)行存儲(chǔ);
[0009]3)當(dāng)發(fā)送時(shí)刻到來,按照預(yù)先制定好的發(fā)送規(guī)則,將正、反相數(shù)據(jù)發(fā)送出去;
[0010]4)重復(fù)步驟2)?3),直至該幀數(shù)據(jù)的有效數(shù)據(jù)全部發(fā)送出去,完成該幀數(shù)據(jù)發(fā)送。
[0011]所述步驟3)中預(yù)先制定好的發(fā)送規(guī)則為:先將正相數(shù)據(jù)發(fā)送出去,待正相數(shù)據(jù)發(fā)送完成后,再將反相數(shù)據(jù)發(fā)送出去。
[0012]步驟I)中封裝好的一幀數(shù)據(jù)包括幀起始字段、幀長字段、幀類型字段、有效數(shù)據(jù)和CRC校驗(yàn)字段。
[0013]步驟3)中當(dāng)沒有有效數(shù)據(jù)發(fā)送時(shí),發(fā)送空閑字節(jié)。
[0014]所述待傳輸?shù)臄?shù)據(jù)為非歸零碼。
[0015]本發(fā)明的編碼方法對設(shè)定長度數(shù)據(jù)的正反相位交替編碼,避免出現(xiàn)連續(xù)長“ I ”和連續(xù)長“O”的現(xiàn)象,實(shí)現(xiàn)了傳輸中的數(shù)據(jù)DC平衡,減少了光纖通信的誤碼率。本發(fā)明的編碼方式簡單,易于實(shí)現(xiàn),不會(huì)影響數(shù)據(jù)傳輸速率,成本低,實(shí)用性強(qiáng)。
[0016]由于是傳輸報(bào)文的所有有效數(shù)據(jù)的都是正反相交替?zhèn)鬏數(shù)?,相?dāng)于同時(shí)傳輸兩幀一樣的數(shù)據(jù)的報(bào)文,當(dāng)正相位報(bào)文發(fā)生誤碼時(shí),可選擇使用反相位報(bào)文,增強(qiáng)了數(shù)據(jù)傳輸?shù)目垢蓴_能力,提高了數(shù)字傳輸系統(tǒng)的可靠性。
[0017]本發(fā)明通過幀封裝單元實(shí)現(xiàn)數(shù)據(jù)的報(bào)文封裝,以報(bào)文的形式傳輸給對端,并實(shí)現(xiàn)對報(bào)文數(shù)據(jù)信息CRC校驗(yàn),解碼端通過CRC校驗(yàn)碼驗(yàn)證傳輸數(shù)據(jù)的有效性,提高數(shù)據(jù)傳輸?shù)陌踩浴?br>【附圖說明】
[0018]圖1為本實(shí)施例非歸零碼正反相位編碼方法結(jié)構(gòu)框圖;
[0019]圖2為本實(shí)施例非歸零碼傳輸報(bào)文幀格式;
[0020]圖3為本實(shí)施例非歸零碼正反相編碼示意圖。
【具體實(shí)施方式】
[0021 ] 下面結(jié)合附圖,對本發(fā)明的技術(shù)方案進(jìn)行詳細(xì)說明。
[0022]基于光纖傳輸?shù)臄?shù)據(jù)正反相位編碼方法的實(shí)施例
[0023]本實(shí)施例的編碼方法為:以字節(jié)為單位,依次選取待傳輸?shù)挠行?shù)據(jù),對選取的一字節(jié)有效數(shù)據(jù)按位取反,得到反相數(shù)據(jù),將反相數(shù)據(jù)與選取的有效數(shù)據(jù)組成用于光纖傳輸?shù)挠行?shù)據(jù),重復(fù)上述步驟直至所有待傳輸?shù)挠行?shù)據(jù)編碼完成。
[0024]以數(shù)據(jù)0x04為例進(jìn)行說明,取一個(gè)字節(jié)數(shù)據(jù)即8為00000100,按位取反得到8為反相數(shù)據(jù) 11111011,后將“00000100”與 “11111011”組成新的數(shù)據(jù)即 “0000010011111011”,完成該數(shù)據(jù)0x04的編碼。
[0025]數(shù)據(jù)傳輸方法實(shí)施例
[0026]本實(shí)施例是一種基于上述編碼方法的數(shù)據(jù)傳輸方法,具體步驟如下:
[0027]I)將待傳輸?shù)臄?shù)據(jù)封裝成幀;
[0028]2)以字節(jié)為單位,從封裝好的一幀數(shù)據(jù)中取有效數(shù)據(jù)即正相數(shù)據(jù)進(jìn)行存儲(chǔ),同時(shí)對該有效數(shù)據(jù)按位取反得到反相數(shù)據(jù)進(jìn)行存儲(chǔ);
[0029]3)當(dāng)發(fā)送時(shí)刻到來,按照預(yù)先制定好的發(fā)送規(guī)則,將正、反相數(shù)據(jù)發(fā)送出去;
[0030]4)重復(fù)步驟2)?3),直至該幀數(shù)據(jù)的有效數(shù)據(jù)全部發(fā)送出去,完成該幀數(shù)據(jù)發(fā)送。
[0031]下面對上述步驟進(jìn)行詳細(xì)闡述:
[0032]對于步驟I),將要傳輸?shù)臄?shù)據(jù)加上幀信息封裝成一幀報(bào)文,并對傳輸?shù)臄?shù)據(jù)做CRC校驗(yàn),提高了數(shù)據(jù)傳輸?shù)目煽啃浴7庋b后的幀格式應(yīng)該包含:幀起始字段、幀長字段、幀類型字段、有效數(shù)據(jù)和CRC校驗(yàn)字段,其報(bào)文幀格式如圖2所示。
[0033]幀起始字段為了標(biāo)識一幀數(shù)據(jù)的開始,提示接收端設(shè)備做好接收通信數(shù)據(jù)的準(zhǔn)備,解碼端檢測到該字段時(shí)開始接收數(shù)據(jù),設(shè)計(jì)幀起始字段為兩個(gè)字節(jié)的數(shù)據(jù):0x04,0x56。幀長字段是標(biāo)識本幀報(bào)文的長度,隨該報(bào)文的長短變化,單位為字節(jié),其長度計(jì)算包括幀類型字段、有效數(shù)據(jù)和CRC校驗(yàn)字段字節(jié)的總和。幀類型字段用來標(biāo)識傳輸數(shù)據(jù)的類型,用兩個(gè)字節(jié)表示,如本實(shí)施例傳輸?shù)臄?shù)據(jù)為采集的模擬量數(shù)據(jù),設(shè)計(jì)為0x5A和0x01。有效數(shù)據(jù)是該幀報(bào)文傳輸?shù)挠行?shù)據(jù),為模擬量采集數(shù)據(jù),一個(gè)模擬量通道數(shù)據(jù)用兩個(gè)字節(jié)表示,有效數(shù)據(jù)字段的長度為:模擬量通道個(gè)數(shù)x2。CRC校驗(yàn)字段是對報(bào)文中的有效數(shù)據(jù)位進(jìn)行CRC-16校驗(yàn)后的校驗(yàn)結(jié)果,除幀起始字段外,幀長字段、幀類型字段、有效數(shù)據(jù)都參與CRC-16 校驗(yàn)。
[0034]對于步驟2),對封裝好的一幀報(bào)文進(jìn)行正反相編碼,以字節(jié)為單位,先取一字節(jié)的該幀報(bào)文的有效數(shù)據(jù),將該數(shù)據(jù)存放正相數(shù)據(jù)寄存器REG_P0SITIVE中,同時(shí)對該字節(jié)數(shù)據(jù)取反存放在反相數(shù)據(jù)寄存器REG_NEGATIVE中。
[0035]作為其他實(shí)施方式,正、反相數(shù)據(jù)還可以分別位于緩存中。