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