摘要:設(shè)計了一種基于FPGA的光纖數(shù)字接口系統(tǒng),介紹了運用FPGA實現(xiàn)的HDLC發(fā)送功能模塊和接收功能模塊以及CMI編碼解碼模塊,該系統(tǒng)可以有效利用FPGA片內(nèi)硬件資源,無需外圍電路,高度集成且操作簡單。
關(guān)鍵詞:電流縱差保護;FPGA;HDLC;CMI
0. 引言
電流縱差保護廣泛應(yīng)用于微機繼電保護中,由于需要在輸電線兩端之間傳輸三相電流及時間等數(shù)據(jù),其關(guān)鍵就是保證傳輸數(shù)據(jù)的準(zhǔn)確性和實時性,不受外界電磁、氣候等影響。隨著電壓等級的提高,白色噪聲、脈沖干擾、電磁場干擾越來越大,極易影響兩端的通訊質(zhì)量。光纖通訊具有頻帶寬、容量大、傳輸損耗小、中繼距離長、抗強電磁干擾等優(yōu)點,因此光纖通訊為兩端數(shù)據(jù)的可靠傳輸提供了保證。
1. 系統(tǒng)設(shè)計
光纖縱差保護裝置的光纖數(shù)字接口是裝置中重要組成部分,在進行光纖數(shù)字接口設(shè)計時,我們沒有采用傳統(tǒng)的芯片堆砌設(shè)計方法,而且運用大規(guī)模可編程門陣列(FPGA)來實現(xiàn)。在FPGA內(nèi)部,主要有具有HDLC協(xié)議及CRC-16的串行通信控制器(SCC),和光纖線路的編碼解碼(CMI)。光收發(fā)器采用RTXM154TL芯片,硬件電路框圖如圖1所示。
圖1 用FPGA實現(xiàn)的光纖數(shù)字接口硬件電流框圖
接收過程:光收發(fā)器的接收端通過光纖把接收過來的光信號轉(zhuǎn)換為電信號,此時接收的電信號已經(jīng)編過碼,經(jīng)過CMI解碼后送至SCC內(nèi)部接收FIFO,實現(xiàn)HDLC解碼和串并轉(zhuǎn)換后,由DSP直接讀走數(shù)據(jù)。
發(fā)送過程:DSP通過數(shù)據(jù)總線把需要發(fā)送的數(shù)據(jù)寫入SCC的發(fā)送FIFO中,SCC根據(jù)設(shè)定好的HDLC協(xié)議,把并行數(shù)據(jù)轉(zhuǎn)換為串行幀,發(fā)送到CMI,經(jīng)CMI編碼后送至光收發(fā)器,電信號轉(zhuǎn)換為光信號經(jīng)過光纖傳至對側(cè)。
2. SCC的設(shè)計
HDLC協(xié)議是高級數(shù)據(jù)鏈路層協(xié)議,是構(gòu)成SCC的主要部分,在HDLC通信方式中,所有信息都是以幀的形式傳送的,HDLC幀格式如表1所列。
表1 HDLC幀格式示意圖
標(biāo)志字 | 地址段 | 控制段 | 信息段 | CRC校驗 | 標(biāo)志字 |
01111110 | 8bit | 8bit | 可變長度 | 16bit | 01111110 |
(1)標(biāo)志字
HDLC協(xié)議規(guī)定,所有信息傳輸必須以一個標(biāo)志字開始,且以同一個標(biāo)志字結(jié)束,這個標(biāo)志字是01111110(0x7E)。開始標(biāo)志到結(jié)束標(biāo)志之間構(gòu)成一個完整的信息單位,稱為一幀。接收方可以通過搜索01111110來探知幀的開始和結(jié)束,以此建立幀同步。在幀與幀之間的空載期,可連續(xù)發(fā)送標(biāo)志字來做填充。
(2)信息段及“0”比特插入技術(shù)
HDLC幀的信息長度是可變的,可傳送標(biāo)志字以外的任意二進制信息。為了確保標(biāo)志字是獨一無二的,發(fā)送方在發(fā)送信息時采用“0”比特插入技術(shù),即發(fā)送方在發(fā)送除標(biāo)志字符外的所有信息時(包括校驗位),只要遇到連續(xù)的5個“1”就自動插入一個“0”;反之,接收方在接收數(shù)據(jù)時,只要遇到連續(xù)的5個“1”,就自動將其后的“0”刪掉?!?”比特插入和刪除技術(shù)也使得HDLC具有良好的傳輸透明性,任何比特代碼都可傳輸。
(3)地址段及控制段
地址字段用于標(biāo)識接收該幀的地址;控制字段用來表示命令和響應(yīng)的類別和功能。
(4)CRC校驗
HDLC采用CCITT 標(biāo)準(zhǔn)的16位循環(huán)冗余校驗碼(CRC-16)進行差錯控制,其生成多項式為
HDLC差錯校驗指對整個幀的內(nèi)容作CRC循環(huán)冗余校驗, 即對在糾錯范圍內(nèi)的錯碼進行糾正, 對在校錯范圍內(nèi)的錯碼進行校驗,但不能糾正。標(biāo)志位和按透明規(guī)則插入的所有“0” 不在校驗的范圍內(nèi)。
2.1 HDLC發(fā)送模塊
發(fā)送模塊主要分為發(fā)送控制接口模塊、發(fā)送FIFO緩存模塊、發(fā)送同步模塊、CRC校驗生成模塊、插零和并串轉(zhuǎn)換模塊、插標(biāo)志位模塊。發(fā)送模塊示意圖如圖2所示。
圖2 發(fā)送功能模塊示意圖
(1)發(fā)送FIFO緩存模塊可以存入DSP發(fā)送的數(shù)據(jù),根據(jù)光纖差動要傳輸?shù)臄?shù)據(jù),緩存大小為256bytes足夠。本設(shè)計中,串行發(fā)送的速率為了適用于復(fù)接設(shè)備E1接口,把串行的速率設(shè)為2Mbit/s。而DSP讀寫總線數(shù)據(jù)的速率遠大于2Mbit/s,因此主時鐘和串行收發(fā)時鐘的頻率相差較大,而使用FIFO可以有效的協(xié)調(diào)兩者的頻率差帶來的同步問題。
(2)發(fā)送同步模塊負責(zé)控制系統(tǒng)時鐘和串行發(fā)送時鐘的同步,使相關(guān)控制信號完成高低速的匹配。每個進程都是串行時鐘或者系統(tǒng)時鐘的上升沿到來時進行高速和低速或者低速和高速的轉(zhuǎn)換。
(3)CRC校驗?zāi)K負責(zé)生成CCITT標(biāo)準(zhǔn)的CRC-16碼,附加到數(shù)據(jù)后面。
(4)插零模塊是為了區(qū)分幀頭和幀尾的標(biāo)志位,保證數(shù)據(jù)鏈路的透明傳輸(即可以傳輸任意組合的比特率),在發(fā)送端對傳輸數(shù)據(jù)進行”0”比特填充。因為幀頭和幀尾為“01111110”,因此當(dāng)幀連續(xù)傳輸了5個“1”比特后,插入一個“0”比特,可避免與標(biāo)志位相同。
插零和并串轉(zhuǎn)換的進程:異步置位,時鐘上升沿到來時利用移位寄存器,進行8比特數(shù)據(jù)的并串轉(zhuǎn)換,對連續(xù)的5比特數(shù)據(jù)求與運算,5個“1”比特之后,插入一個“0”比特,此時以為寄存器暫停移位。
(5)插標(biāo)志位主要是對待發(fā)送的數(shù)據(jù)進行幀頭尾的添加。
圖3為發(fā)送模塊的時序仿真圖。發(fā)送的數(shù)據(jù)為0~10。
圖3 發(fā)送模塊時序仿真圖
2.2 HDLC接收模塊
接收模塊主要分為接收控制接口模塊、接收FIFO緩存模塊、接收同步模塊、CRC校驗對比模塊、刪零和串并轉(zhuǎn)換模塊、刪標(biāo)志位模塊。接收模塊示意圖如圖4所示。
圖4 接收功能模塊示意圖
(1)刪標(biāo)志位模塊負責(zé)檢測發(fā)送的幀頭,確定起始邊界,把CMI解碼后的輸入數(shù)據(jù)的幀頭和幀尾刪去。
(2)刪零和串并轉(zhuǎn)換模塊中對比特流中的連續(xù)“1”比特進行計數(shù),然后用于刪零判斷、檢測幀結(jié)束標(biāo)志和檢測幀中斷標(biāo)志的功能。計數(shù)器和下一比特在不同值組合下所對應(yīng)的含義如下:
1 當(dāng)計數(shù)器的值為6,且下一接收比特為“0”,表明檢測到幀結(jié)束標(biāo)志。
2 當(dāng)計數(shù)其的值為5,且下一接收比特為“0”,表明比特“0”應(yīng)該刪去。
3 當(dāng)計數(shù)器的值為6,且下一接收比特為“1”,表明檢測到中斷標(biāo)志。
(3)CRC校驗對比模塊把接收到的數(shù)據(jù)再進行CRC-16計算,其結(jié)果與接收到的CRC-16相比較,如果相同,則表示傳輸數(shù)據(jù)正確,否則舍棄該幀。
(4)接收同步模塊和發(fā)送同步模塊一樣,模塊負責(zé)控制系統(tǒng)時鐘和串行接收時鐘的同步,使高低速速度轉(zhuǎn)換。
(5)接收FIFO緩存模塊是把接收的數(shù)據(jù)存入FIFO緩存,并通知DSP可讀取數(shù)據(jù),DSP發(fā)生外部中斷后把數(shù)據(jù)讀走。
圖5為接收模塊的時序仿真圖。接收的數(shù)據(jù)為0~10。
圖5 接收模塊時序仿真圖
3. CMI編碼和解碼設(shè)計
光纖線路中線路碼型傳輸性能的好壞直接影響光系統(tǒng)的傳輸性能。傳輸性能好的線路碼型應(yīng)該符合比特序列獨立性好、功率譜密度中的高低頻成分少、定時成分多、直流電平比較恒定、誤碼擴展系數(shù)小、碼結(jié)構(gòu)均勻等特征。適于光線路傳輸?shù)拇a型比較多,本設(shè)計采用CMI碼型。其變換模式為:“0”碼變換為“01”,“1”碼變換為交替的“00”和“11”碼。
4. 結(jié)束語
與傳統(tǒng)的芯片電路相比,采用大規(guī)模可編程門陣列(FPGA)芯片具有以下一些優(yōu)點:
(1)通信板結(jié)構(gòu)簡單,便于硬件設(shè)計,只需一塊FPGA芯片可完成以上設(shè)計,占用PCB板空間小。
(2)可實現(xiàn)各功能模塊之間的無縫連接。由于各功能模塊的邏輯均在一個芯片內(nèi)部完成,不存在相互之間電平匹配問題。
(3)時序控制簡單。在芯片內(nèi)部只需進行同意的時序控制即可,不需要考慮對不同的芯片進行不同的時序控制。
(4)可靠性高。采用FPGA芯片消除了由于不同芯片廠家生產(chǎn)的芯片的參數(shù)不同而造成通信不穩(wěn)定現(xiàn)象,提高了通信的穩(wěn)定性能。
本文采用了FPGA實現(xiàn)的SCC和CMI功能,調(diào)試結(jié)果表明,該系統(tǒng)操作簡單、使用靈活、能夠很好地應(yīng)用于電力系統(tǒng)繼電保護光纖通訊系統(tǒng)中。
參考文獻:
[1]. 唐成虹等. 光纖縱差保護裝置中光纖數(shù)字接口的設(shè)計新方法.電力系統(tǒng)自動化.2005
[2]. 婁景藝等. HDLC控制協(xié)議的FPGA設(shè)計與實現(xiàn).國外電子元器件.2005