摘要:設計了(le)一種(zhong)基于FPGA的(de)光(guang)纖數字接口系統,介(jie)紹了(le)運用(yong)FPGA實(shi)現的(de)HDLC發送功能模塊和接收功能模塊以及CMI編(bian)碼解碼模塊,該(gai)系統可以有效(xiao)利(li)用(yong)FPGA片(pian)內硬件資(zi)源,無需外圍電路,高(gao)度集成且操作簡單。
關(guan)鍵詞:電流縱差保護;FPGA;HDLC;CMI
0. 引(yin)言
電(dian)(dian)(dian)流縱差保(bao)護廣泛應用于微機繼電(dian)(dian)(dian)保(bao)護中,由于需要在輸(shu)電(dian)(dian)(dian)線(xian)兩端之(zhi)間傳輸(shu)三相(xiang)電(dian)(dian)(dian)流及(ji)時間等(deng)數(shu)(shu)據,其關鍵就是保(bao)證(zheng)傳輸(shu)數(shu)(shu)據的(de)準確性和實(shi)時性,不受外界電(dian)(dian)(dian)磁(ci)、氣候等(deng)影響。隨(sui)著電(dian)(dian)(dian)壓等(deng)級(ji)的(de)提(ti)(ti)高,白色噪聲、脈沖干擾(rao)(rao)、電(dian)(dian)(dian)磁(ci)場(chang)干擾(rao)(rao)越來越大,極易影響兩端的(de)通訊質量(liang)。光(guang)纖通訊具有頻(pin)帶(dai)寬(kuan)、容量(liang)大、傳輸(shu)損(sun)耗(hao)小、中繼距(ju)離長、抗強(qiang)電(dian)(dian)(dian)磁(ci)干擾(rao)(rao)等(deng)優點,因此光(guang)纖通訊為兩端數(shu)(shu)據的(de)可靠傳輸(shu)提(ti)(ti)供了(le)保(bao)證(zheng)。
1. 系統(tong)設計
光(guang)纖縱差保護裝置(zhi)(zhi)的光(guang)纖數字(zi)(zi)接(jie)口是裝置(zhi)(zhi)中重要組成部分(fen),在進行光(guang)纖數字(zi)(zi)接(jie)口設計(ji)時,我們沒(mei)有采(cai)用(yong)傳統的芯片堆砌設計(ji)方(fang)法,而且運用(yong)大(da)規模可編程(cheng)門陣列(FPGA)來實現。在FPGA內部,主要有具有HDLC協議(yi)及CRC-16的串行通信控(kong)制器(SCC),和光(guang)纖線路的編碼解碼(CMI)。光(guang)收(shou)發器采(cai)用(yong)RTXM154TL芯片,硬件電路框圖如圖1所示。
圖1 用(yong)FPGA實現的光纖(xian)數(shu)字接(jie)口(kou)硬件電流框圖
接(jie)(jie)收過(guo)程:光(guang)收發器的接(jie)(jie)收端通(tong)過(guo)光(guang)纖把接(jie)(jie)收過(guo)來(lai)的光(guang)信(xin)號轉換為電信(xin)號,此時接(jie)(jie)收的電信(xin)號已經編(bian)過(guo)碼,經過(guo)CMI解(jie)(jie)碼后送(song)至SCC內部接(jie)(jie)收FIFO,實(shi)現HDLC解(jie)(jie)碼和串并轉換后,由DSP直接(jie)(jie)讀走數據。
發(fa)送過程:DSP通過數(shu)(shu)據(ju)總線(xian)把(ba)(ba)需要發(fa)送的(de)數(shu)(shu)據(ju)寫入SCC的(de)發(fa)送FIFO中,SCC根據(ju)設定(ding)好的(de)HDLC協議,把(ba)(ba)并行數(shu)(shu)據(ju)轉(zhuan)換(huan)為串行幀(zhen),發(fa)送到(dao)CMI,經(jing)CMI編碼后(hou)送至光(guang)收發(fa)器,電(dian)信號轉(zhuan)換(huan)為光(guang)信號經(jing)過光(guang)纖傳(chuan)至對(dui)側(ce)。
2. SCC的(de)設(she)計
HDLC協(xie)議是(shi)高級(ji)數據鏈(lian)路層協(xie)議,是(shi)構成SCC的(de)(de)主要部分,在(zai)HDLC通信方式中(zhong),所有信息都是(shi)以幀(zhen)的(de)(de)形式傳送的(de)(de),HDLC幀(zhen)格式如表(biao)1所列。
表1 HDLC幀(zhen)格式(shi)示意圖(tu)
標志字 | 地址段 | 控制(zhi)段(duan) | 信息(xi)段 | CRC校驗 | 標志字 |
01111110 | 8bit | 8bit | 可(ke)變長度(du) | 16bit | 01111110 |
(1)標志字
HDLC協(xie)議規定,所有(you)信息傳輸必須以一個(ge)標(biao)(biao)(biao)志(zhi)(zhi)字開始,且以同(tong)一個(ge)標(biao)(biao)(biao)志(zhi)(zhi)字結(jie)束(shu),這個(ge)標(biao)(biao)(biao)志(zhi)(zhi)字是01111110(0x7E)。開始標(biao)(biao)(biao)志(zhi)(zhi)到結(jie)束(shu)標(biao)(biao)(biao)志(zhi)(zhi)之間構成一個(ge)完整(zheng)的(de)信息單位(wei),稱為一幀(zhen)(zhen)。接收方可以通(tong)過搜(sou)索01111110來(lai)(lai)探(tan)知幀(zhen)(zhen)的(de)開始和結(jie)束(shu),以此建立幀(zhen)(zhen)同(tong)步。在(zai)幀(zhen)(zhen)與幀(zhen)(zhen)之間的(de)空載期,可連(lian)續發(fa)送標(biao)(biao)(biao)志(zhi)(zhi)字來(lai)(lai)做填充。
(2)信(xin)息段(duan)及“0”比特(te)插入技術
HDLC幀的(de)(de)信息(xi)(xi)長度是(shi)可(ke)變的(de)(de),可(ke)傳送(song)(song)(song)標(biao)志(zhi)(zhi)字以外的(de)(de)任(ren)意二進制信息(xi)(xi)。為了確(que)保(bao)標(biao)志(zhi)(zhi)字是(shi)獨一(yi)無二的(de)(de),發(fa)送(song)(song)(song)方(fang)在(zai)發(fa)送(song)(song)(song)信息(xi)(xi)時(shi)(shi)采用“0”比特(te)插入(ru)(ru)技術,即發(fa)送(song)(song)(song)方(fang)在(zai)發(fa)送(song)(song)(song)除標(biao)志(zhi)(zhi)字符外的(de)(de)所(suo)有信息(xi)(xi)時(shi)(shi)(包括校驗位(wei)),只要遇到連續的(de)(de)5個(ge)“1”就(jiu)自(zi)動(dong)插入(ru)(ru)一(yi)個(ge)“0”;反之,接收(shou)方(fang)在(zai)接收(shou)數據時(shi)(shi),只要遇到連續的(de)(de)5個(ge)“1”,就(jiu)自(zi)動(dong)將其后的(de)(de)“0”刪掉(diao)。“0”比特(te)插入(ru)(ru)和刪除技術也使得HDLC具有良好的(de)(de)傳輸(shu)透明性,任(ren)何(he)比特(te)代碼都(dou)可(ke)傳輸(shu)。
(3)地址段(duan)及控制段(duan)
地址字段用(yong)于標(biao)識接收(shou)該(gai)幀(zhen)的地址;控制字段用(yong)來表示(shi)命令和(he)響應的類別和(he)功能。
(4)CRC校驗
HDLC采用CCITT 標準的(de)16位循環冗(rong)余校驗碼(CRC-16)進行差錯控制,其生成多(duo)項式(shi)為
HDLC差錯(cuo)校驗(yan)指對整個幀的(de)(de)內容作(zuo)CRC循環冗余校驗(yan), 即對在(zai)糾錯(cuo)范圍內的(de)(de)錯(cuo)碼進行糾正, 對在(zai)校錯(cuo)范圍內的(de)(de)錯(cuo)碼進行校驗(yan),但不能糾正。標(biao)志位和按(an)透明規則插(cha)入的(de)(de)所有“0” 不在(zai)校驗(yan)的(de)(de)范圍內。
2.1 HDLC發(fa)送模塊
發送模(mo)塊(kuai)主要(yao)分(fen)為發送控制接口模(mo)塊(kuai)、發送FIFO緩存模(mo)塊(kuai)、發送同(tong)步(bu)模(mo)塊(kuai)、CRC校驗生成(cheng)模(mo)塊(kuai)、插零和并串轉換模(mo)塊(kuai)、插標志位(wei)模(mo)塊(kuai)。發送模(mo)塊(kuai)示意(yi)圖(tu)如圖(tu)2所示。
圖2 發(fa)送功能(neng)模塊示意圖
(1)發(fa)(fa)送(song)FIFO緩存模塊可以(yi)存入DSP發(fa)(fa)送(song)的數據(ju),根據(ju)光(guang)纖差動要(yao)傳輸的數據(ju),緩存大小為256bytes足夠。本設計中(zhong),串(chuan)行(xing)發(fa)(fa)送(song)的速率(lv)為了適用于復(fu)接設備E1接口,把串(chuan)行(xing)的速率(lv)設為2Mbit/s。而DSP讀寫(xie)總線(xian)數據(ju)的速率(lv)遠大于2Mbit/s,因此主時(shi)鐘(zhong)和串(chuan)行(xing)收(shou)發(fa)(fa)時(shi)鐘(zhong)的頻率(lv)相差較大,而使用FIFO可以(yi)有效的協調兩(liang)者的頻率(lv)差帶(dai)來的同步問題。
(2)發送(song)同步模塊負責控(kong)(kong)制(zhi)系統時(shi)鐘(zhong)(zhong)和(he)串行(xing)發送(song)時(shi)鐘(zhong)(zhong)的(de)同步,使相(xiang)關控(kong)(kong)制(zhi)信號(hao)完成高(gao)低速(su)(su)的(de)匹配。每個進程都是串行(xing)時(shi)鐘(zhong)(zhong)或(huo)者系統時(shi)鐘(zhong)(zhong)的(de)上升沿到來時(shi)進行(xing)高(gao)速(su)(su)和(he)低速(su)(su)或(huo)者低速(su)(su)和(he)高(gao)速(su)(su)的(de)轉換(huan)。
(3)CRC校驗模塊負(fu)責生成CCITT標準的(de)CRC-16碼,附(fu)加到數據(ju)后面。
(4)插零模塊是(shi)為了(le)區分幀(zhen)頭(tou)和(he)幀(zhen)尾的(de)標志(zhi)位,保證數據鏈路的(de)透(tou)明傳輸(shu)(即可以傳輸(shu)任意組合的(de)比(bi)特(te)(te)率(lv)),在發送端對傳輸(shu)數據進行”0”比(bi)特(te)(te)填充(chong)。因為幀(zhen)頭(tou)和(he)幀(zhen)尾為“01111110”,因此當幀(zhen)連續傳輸(shu)了(le)5個“1”比(bi)特(te)(te)后,插入一個“0”比(bi)特(te)(te),可避免(mian)與標志(zhi)位相同(tong)。
插(cha)零(ling)和并(bing)串轉(zhuan)換(huan)的(de)進(jin)程:異步(bu)置位,時(shi)鐘上升(sheng)沿(yan)到來時(shi)利用移位寄(ji)存(cun)器,進(jin)行8比(bi)(bi)特(te)(te)數據的(de)并(bing)串轉(zhuan)換(huan),對連續的(de)5比(bi)(bi)特(te)(te)數據求(qiu)與運算,5個“1”比(bi)(bi)特(te)(te)之(zhi)后,插(cha)入一個“0”比(bi)(bi)特(te)(te),此時(shi)以(yi)為寄(ji)存(cun)器暫停移位。
(5)插標志位主要(yao)是對待發送的數據進行幀頭尾(wei)的添(tian)加。
圖3為發送模(mo)塊的(de)時序(xu)仿真(zhen)圖。發送的(de)數據為0~10。
圖3 發送(song)模塊時序仿真圖
2.2 HDLC接收模塊
接(jie)(jie)(jie)收(shou)模(mo)(mo)(mo)塊主要分為接(jie)(jie)(jie)收(shou)控制(zhi)接(jie)(jie)(jie)口模(mo)(mo)(mo)塊、接(jie)(jie)(jie)收(shou)FIFO緩存模(mo)(mo)(mo)塊、接(jie)(jie)(jie)收(shou)同(tong)步(bu)模(mo)(mo)(mo)塊、CRC校驗對比模(mo)(mo)(mo)塊、刪(shan)零和串并轉(zhuan)換模(mo)(mo)(mo)塊、刪(shan)標志(zhi)位模(mo)(mo)(mo)塊。接(jie)(jie)(jie)收(shou)模(mo)(mo)(mo)塊示(shi)意圖(tu)如圖(tu)4所(suo)示(shi)。
圖4 接收功能模(mo)塊示意圖
(1)刪標志位模塊負責檢(jian)測(ce)發送的(de)(de)幀(zhen)(zhen)頭(tou),確定(ding)起始邊界(jie),把CMI解碼(ma)后(hou)的(de)(de)輸入數據的(de)(de)幀(zhen)(zhen)頭(tou)和幀(zhen)(zhen)尾刪去。
(2)刪零和串并轉換模塊中(zhong)(zhong)對比(bi)特(te)流中(zhong)(zhong)的連續(xu)“1”比(bi)特(te)進行(xing)計數(shu),然(ran)后用于刪零判斷、檢測(ce)幀結(jie)束標(biao)志和檢測(ce)幀中(zhong)(zhong)斷標(biao)志的功能(neng)。計數(shu)器(qi)和下(xia)一比(bi)特(te)在不(bu)同值組合下(xia)所對應(ying)的含義如下(xia):
1 當計數器的(de)值為6,且下一接收比(bi)特(te)為“0”,表明檢測(ce)到幀結束標志。
2 當計數其的值為5,且下一接(jie)收(shou)比(bi)特(te)為“0”,表明比(bi)特(te)“0”應(ying)該刪去。
3 當(dang)計數器的(de)值(zhi)為(wei)6,且(qie)下一接收比特為(wei)“1”,表明檢(jian)測(ce)到中斷標志。
(3)CRC校(xiao)驗對比模塊把接收到的數據再(zai)進行CRC-16計算,其結果與接收到的CRC-16相比較(jiao),如果相同(tong),則(ze)表示傳輸數據正(zheng)確,否(fou)則(ze)舍棄該幀(zhen)。
(4)接收(shou)同步(bu)模(mo)塊(kuai)和發送(song)同步(bu)模(mo)塊(kuai)一(yi)樣(yang),模(mo)塊(kuai)負責(ze)控制(zhi)系統時鐘和串行接收(shou)時鐘的同步(bu),使高低速速度轉換。
(5)接(jie)收(shou)FIFO緩存(cun)(cun)模塊是把(ba)接(jie)收(shou)的數(shu)據(ju)存(cun)(cun)入FIFO緩存(cun)(cun),并通知DSP可讀取數(shu)據(ju),DSP發生外部中斷后把(ba)數(shu)據(ju)讀走(zou)。
圖5為(wei)接收模塊的時序仿真(zhen)圖。接收的數據為(wei)0~10。
圖(tu)5 接收(shou)模塊時(shi)序(xu)仿真圖(tu)
3. CMI編碼和解(jie)碼設計
光(guang)纖線(xian)路(lu)中線(xian)路(lu)碼(ma)(ma)型(xing)(xing)傳輸(shu)性(xing)能的(de)好壞(huai)直(zhi)接影響光(guang)系統的(de)傳輸(shu)性(xing)能。傳輸(shu)性(xing)能好的(de)線(xian)路(lu)碼(ma)(ma)型(xing)(xing)應該符合比特(te)序(xu)列獨(du)立性(xing)好、功率譜密度中的(de)高低頻(pin)成分少、定時成分多、直(zhi)流電平比較恒定、誤碼(ma)(ma)擴展(zhan)系數小(xiao)、碼(ma)(ma)結構均勻等(deng)特(te)征。適于光(guang)線(xian)路(lu)傳輸(shu)的(de)碼(ma)(ma)型(xing)(xing)比較多,本設計(ji)采(cai)用(yong)CMI碼(ma)(ma)型(xing)(xing)。其變換模式為:“0”碼(ma)(ma)變換為“01”,“1”碼(ma)(ma)變換為交替(ti)的(de)“00”和“11”碼(ma)(ma)。
4. 結束語(yu)
與傳統(tong)的(de)芯片電路(lu)相比,采用大(da)規模可編程門陣列(FPGA)芯片具(ju)有以下一(yi)些(xie)優(you)點(dian):
(1)通信板結構簡(jian)單,便于硬件設計,只需一塊FPGA芯片可完成以上(shang)設計,占用PCB板空間小。
(2)可實(shi)現各功(gong)能(neng)模塊(kuai)之間(jian)的無縫連(lian)接(jie)。由于各功(gong)能(neng)模塊(kuai)的邏輯均在一個芯片內(nei)部完成,不(bu)存在相互(hu)之間(jian)電平匹(pi)配問題。
(3)時(shi)序(xu)控(kong)(kong)制簡(jian)單。在芯片內部只需進行同(tong)意的時(shi)序(xu)控(kong)(kong)制即可,不(bu)需要考(kao)慮(lv)對(dui)不(bu)同(tong)的芯片進行不(bu)同(tong)的時(shi)序(xu)控(kong)(kong)制。
(4)可靠性高(gao)。采用FPGA芯片(pian)消除(chu)了(le)由于不同(tong)芯片(pian)廠家生(sheng)產(chan)的芯片(pian)的參數不同(tong)而(er)造成通(tong)信不穩定現象,提高(gao)了(le)通(tong)信的穩定性能(neng)。
本文采用了FPGA實現的SCC和CMI功能(neng)(neng),調試(shi)結果表明,該系(xi)統操作簡單、使用靈(ling)活(huo)、能(neng)(neng)夠很好地應用于電(dian)力系(xi)統繼電(dian)保護光纖通訊系(xi)統中。
參考文獻:
[1]. 唐(tang)成虹等(deng). 光纖縱差保護(hu)裝置中光纖數(shu)字接口的(de)設計新(xin)方法.電力系(xi)統自動(dong)化.2005
[2]. 婁(lou)景藝(yi)等. HDLC控制(zhi)協議的FPGA設計與實現.國外電(dian)子(zi)元器件.2005
Copyright 2018 四(si)川臻(zhen)誠電氣(qi)有限公司(si) 版權(quan)所有 :