摘要(yao):设计了(le)一种基(ji)于FPGA的光纤(xian)数字接(jie)口系统(tong),介绍了(le)运用(yong)FPGA实现(xian)的HDLC发(fa)送功(gong)(gong)能(neng)(neng)模(mo)块和接(jie)收功(gong)(gong)能(neng)(neng)模(mo)块以及CMI编码解码模(mo)块,该系统(tong)可(ke)以有(you)效利(li)用(yong)FPGA片内(nei)硬件(jian)资源(yuan),无需外围电(dian)路(lu),高度集成(cheng)且操作简单(dan)。
关键词:电流纵差保护;FPGA;HDLC;CMI
0. 引言
电(dian)流纵差保(bao)护广泛应用于(yu)微(wei)机继(ji)电(dian)保(bao)护中,由(you)于(yu)需要(yao)在(zai)输电(dian)线两(liang)端之间传(chuan)输三(san)相电(dian)流及时(shi)(shi)间等(deng)数据(ju),其关(guan)键就(jiu)是保(bao)证传(chuan)输数据(ju)的(de)准(zhun)确性(xing)和实时(shi)(shi)性(xing),不受外界电(dian)磁(ci)、气候等(deng)影(ying)响。随着电(dian)压等(deng)级的(de)提高,白色噪声、脉(mai)冲干(gan)扰、电(dian)磁(ci)场干(gan)扰越来越大,极(ji)易影(ying)响两(liang)端的(de)通讯质量(liang)。光(guang)纤通讯具有频(pin)带宽、容(rong)量(liang)大、传(chuan)输损耗小、中继(ji)距离长、抗强(qiang)电(dian)磁(ci)干(gan)扰等(deng)优点,因此光(guang)纤通讯为两(liang)端数据(ju)的(de)可(ke)靠传(chuan)输提供了保(bao)证。
1. 系(xi)统设计(ji)
光(guang)(guang)纤(xian)纵差保护(hu)装(zhuang)置的光(guang)(guang)纤(xian)数字(zi)接口是(shi)装(zhuang)置中重(zhong)要组成部分(fen),在进行光(guang)(guang)纤(xian)数字(zi)接口设计时,我们没有采(cai)用传(chuan)统的芯片(pian)堆砌设计方法,而且(qie)运用大规模(mo)可编程(cheng)门阵列(FPGA)来(lai)实现。在FPGA内(nei)部,主(zhu)要有具(ju)有HDLC协(xie)议及CRC-16的串行通信控制(zhi)器(SCC),和光(guang)(guang)纤(xian)线路的编码解码(CMI)。光(guang)(guang)收(shou)发器采(cai)用RTXM154TL芯片(pian),硬件电路框图如图1所示。
图1 用FPGA实现的光纤数字接口硬件(jian)电流框图
接(jie)收过程:光收发器的接(jie)收端通(tong)过光纤把接(jie)收过来的光信(xin)(xin)号(hao)(hao)(hao)转(zhuan)换为(wei)电信(xin)(xin)号(hao)(hao)(hao),此时接(jie)收的电信(xin)(xin)号(hao)(hao)(hao)已(yi)经编过码(ma),经过CMI解码(ma)后送至(zhi)SCC内部接(jie)收FIFO,实现HDLC解码(ma)和串并(bing)转(zhuan)换后,由DSP直接(jie)读走数据(ju)。
发送过(guo)程:DSP通过(guo)数(shu)据总线把需(xu)要发送的数(shu)据写入SCC的发送FIFO中,SCC根据设定好(hao)的HDLC协议,把并行(xing)数(shu)据转换为串行(xing)帧,发送到CMI,经CMI编(bian)码(ma)后送至光收发器,电信号转换为光信号经过(guo)光纤传至对侧。
2. SCC的设计
HDLC协议是高级数据链路层协议,是构成SCC的(de)主要部(bu)分(fen),在HDLC通信(xin)方式(shi)中,所(suo)有信(xin)息都是以帧(zhen)(zhen)的(de)形(xing)式(shi)传送(song)的(de),HDLC帧(zhen)(zhen)格式(shi)如表1所(suo)列。
表1 HDLC帧(zhen)格式示意图(tu)
标志字(zi) | 地址段 | 控制段 | 信息段 | CRC校验(yan) | 标志字 |
01111110 | 8bit | 8bit | 可(ke)变(bian)长度(du) | 16bit | 01111110 |
(1)标志字
HDLC协议规(gui)定,所有信息传(chuan)输(shu)必须以(yi)一(yi)个(ge)标(biao)(biao)志(zhi)字(zi)(zi)开始(shi),且以(yi)同一(yi)个(ge)标(biao)(biao)志(zhi)字(zi)(zi)结(jie)束,这(zhei)个(ge)标(biao)(biao)志(zhi)字(zi)(zi)是01111110(0x7E)。开始(shi)标(biao)(biao)志(zhi)到结(jie)束标(biao)(biao)志(zhi)之间构成一(yi)个(ge)完整(zheng)的信息单位(wei),称为一(yi)帧(zhen)。接收方可(ke)以(yi)通过搜索01111110来(lai)探知帧(zhen)的开始(shi)和结(jie)束,以(yi)此建(jian)立帧(zhen)同步。在(zai)帧(zhen)与帧(zhen)之间的空载期,可(ke)连续发(fa)送标(biao)(biao)志(zhi)字(zi)(zi)来(lai)做填(tian)充。
(2)信息段及“0”比特插入技术
HDLC帧的信(xin)息(xi)长度是可(ke)变(bian)的,可(ke)传送标志字以外(wai)的任意二进制信(xin)息(xi)。为了确保标志字是独(du)一无二的,发(fa)送方在(zai)(zai)发(fa)送信(xin)息(xi)时采用“0”比(bi)特(te)(te)(te)插入(ru)技(ji)(ji)术,即发(fa)送方在(zai)(zai)发(fa)送除标志字符外(wai)的所有信(xin)息(xi)时(包括(kuo)校验位),只要(yao)遇(yu)到连续的5个(ge)“1”就(jiu)自动插入(ru)一个(ge)“0”;反(fan)之(zhi),接收方在(zai)(zai)接收数据时,只要(yao)遇(yu)到连续的5个(ge)“1”,就(jiu)自动将其后的“0”删掉。“0”比(bi)特(te)(te)(te)插入(ru)和删除技(ji)(ji)术也(ye)使得HDLC具有良好(hao)的传输透明性,任何比(bi)特(te)(te)(te)代码都(dou)可(ke)传输。
(3)地址段(duan)(duan)及控(kong)制段(duan)(duan)
地(di)址字段用(yong)于标识接收该帧(zhen)的地(di)址;控制(zhi)字段用(yong)来表示(shi)命令和响应的类别和功能。
(4)CRC校验
HDLC采用CCITT 标准的(de)16位循环冗余校验码(CRC-16)进行差错控(kong)制,其生(sheng)成多项式为
HDLC差(cha)错(cuo)校(xiao)(xiao)(xiao)(xiao)验(yan)指对整个帧的(de)内容(rong)作CRC循环冗(rong)余校(xiao)(xiao)(xiao)(xiao)验(yan), 即对在纠错(cuo)范(fan)围内的(de)错(cuo)码进行纠正(zheng), 对在校(xiao)(xiao)(xiao)(xiao)错(cuo)范(fan)围内的(de)错(cuo)码进行校(xiao)(xiao)(xiao)(xiao)验(yan),但不(bu)能纠正(zheng)。标志(zhi)位和按透明规(gui)则(ze)插入(ru)的(de)所有“0” 不(bu)在校(xiao)(xiao)(xiao)(xiao)验(yan)的(de)范(fan)围内。
2.1 HDLC发送模块
发送(song)模(mo)(mo)(mo)块(kuai)(kuai)主要分为发送(song)控制接(jie)口(kou)模(mo)(mo)(mo)块(kuai)(kuai)、发送(song)FIFO缓存(cun)模(mo)(mo)(mo)块(kuai)(kuai)、发送(song)同步模(mo)(mo)(mo)块(kuai)(kuai)、CRC校验生成模(mo)(mo)(mo)块(kuai)(kuai)、插(cha)零和(he)并串转换模(mo)(mo)(mo)块(kuai)(kuai)、插(cha)标(biao)志(zhi)位模(mo)(mo)(mo)块(kuai)(kuai)。发送(song)模(mo)(mo)(mo)块(kuai)(kuai)示意图(tu)如图(tu)2所示。
图(tu)(tu)2 发送功能模块示意图(tu)(tu)
(1)发送(song)FIFO缓存模块可(ke)以存入DSP发送(song)的(de)数据,根据光纤(xian)差动要传输的(de)数据,缓存大(da)(da)小为(wei)256bytes足(zu)够(gou)。本(ben)设(she)计中,串行(xing)发送(song)的(de)速(su)率(lv)(lv)为(wei)了适用于复接设(she)备(bei)E1接口,把串行(xing)的(de)速(su)率(lv)(lv)设(she)为(wei)2Mbit/s。而DSP读写总线数据的(de)速(su)率(lv)(lv)远大(da)(da)于2Mbit/s,因(yin)此主(zhu)时钟(zhong)和串行(xing)收发时钟(zhong)的(de)频率(lv)(lv)相(xiang)差较大(da)(da),而使(shi)用FIFO可(ke)以有效(xiao)的(de)协调两者的(de)频率(lv)(lv)差带来(lai)的(de)同步(bu)问题(ti)。
(2)发送同(tong)步模块负责(ze)控制系统时(shi)(shi)钟和串(chuan)行(xing)发送时(shi)(shi)钟的(de)同(tong)步,使相(xiang)关控制信号完(wan)成高(gao)低速的(de)匹配。每个进程都是串(chuan)行(xing)时(shi)(shi)钟或者系统时(shi)(shi)钟的(de)上升(sheng)沿到来时(shi)(shi)进行(xing)高(gao)速和低速或者低速和高(gao)速的(de)转换。
(3)CRC校验(yan)模块负(fu)责(ze)生(sheng)成CCITT标(biao)准的CRC-16码,附加(jia)到数据后面。
(4)插(cha)零(ling)模块(kuai)是为了(le)(le)区分帧(zhen)(zhen)(zhen)头和(he)帧(zhen)(zhen)(zhen)尾的标志位,保证数据链路的透明传输(shu)(shu)(即可(ke)以(yi)传输(shu)(shu)任意组合的比特率),在发(fa)送端对传输(shu)(shu)数据进行”0”比特填充。因为帧(zhen)(zhen)(zhen)头和(he)帧(zhen)(zhen)(zhen)尾为“01111110”,因此当(dang)帧(zhen)(zhen)(zhen)连(lian)续传输(shu)(shu)了(le)(le)5个“1”比特后,插(cha)入(ru)一个“0”比特,可(ke)避免与(yu)标志位相同。
插零和并串(chuan)转(zhuan)换的进(jin)(jin)程:异步置位(wei)(wei),时钟上升沿到来时利用移(yi)(yi)位(wei)(wei)寄(ji)存器,进(jin)(jin)行8比(bi)特(te)数(shu)据(ju)的并串(chuan)转(zhuan)换,对(dui)连续的5比(bi)特(te)数(shu)据(ju)求与运算,5个“1”比(bi)特(te)之后,插入一个“0”比(bi)特(te),此(ci)时以为寄(ji)存器暂停移(yi)(yi)位(wei)(wei)。
(5)插标(biao)志位主(zhu)要是对(dui)待发送的数据进行帧头(tou)尾的添加。
图3为发送模块的(de)(de)时序仿真图。发送的(de)(de)数据(ju)为0~10。
图3 发送(song)模块时序(xu)仿真图
2.2 HDLC接收模块
接(jie)收(shou)(shou)模(mo)(mo)(mo)块(kuai)(kuai)主要分为接(jie)收(shou)(shou)控制接(jie)口模(mo)(mo)(mo)块(kuai)(kuai)、接(jie)收(shou)(shou)FIFO缓存模(mo)(mo)(mo)块(kuai)(kuai)、接(jie)收(shou)(shou)同(tong)步模(mo)(mo)(mo)块(kuai)(kuai)、CRC校验对比模(mo)(mo)(mo)块(kuai)(kuai)、删零(ling)和串并(bing)转换(huan)模(mo)(mo)(mo)块(kuai)(kuai)、删标志位模(mo)(mo)(mo)块(kuai)(kuai)。接(jie)收(shou)(shou)模(mo)(mo)(mo)块(kuai)(kuai)示(shi)意图(tu)如(ru)图(tu)4所(suo)示(shi)。
图(tu)4 接收(shou)功能(neng)模块示意图(tu)
(1)删标志位模块负(fu)责检测发送的帧头(tou),确定起始(shi)边界,把(ba)CMI解码后的输入数(shu)据的帧头(tou)和(he)帧尾删去。
(2)删(shan)零和(he)串并转换模块(kuai)中对(dui)比特流(liu)中的连续“1”比特进(jin)行计数,然后用于删(shan)零判(pan)断(duan)、检测帧结束(shu)标(biao)志(zhi)和(he)检测帧中断(duan)标(biao)志(zhi)的功能。计数器和(he)下(xia)一比特在不同(tong)值组合下(xia)所对(dui)应(ying)的含义如下(xia):
1 当计数器的值(zhi)为6,且下一接收比特为“0”,表明检测到帧结束标志。
2 当(dang)计数(shu)其的(de)值为5,且下(xia)一(yi)接(jie)收比(bi)特为“0”,表明(ming)比(bi)特“0”应该删去。
3 当计数(shu)器的(de)值为6,且下一接收比特为“1”,表明检测(ce)到中断标志(zhi)。
(3)CRC校验(yan)对比(bi)模块把接收到的(de)数(shu)据再进(jin)行CRC-16计算,其(qi)结果与接收到的(de)CRC-16相比(bi)较,如果相同(tong),则表(biao)示(shi)传(chuan)输数(shu)据正确,否(fou)则舍弃该帧。
(4)接(jie)收同步(bu)模(mo)块和发送(song)同步(bu)模(mo)块一样,模(mo)块负责控制系统时钟(zhong)(zhong)和串行接(jie)收时钟(zhong)(zhong)的同步(bu),使高低(di)速(su)速(su)度转换(huan)。
(5)接(jie)(jie)收FIFO缓存(cun)模块是把接(jie)(jie)收的数据(ju)存(cun)入FIFO缓存(cun),并通知DSP可读取数据(ju),DSP发生外部中断后把数据(ju)读走。
图(tu)5为(wei)接(jie)收模块的时序仿真图(tu)。接(jie)收的数据为(wei)0~10。
图5 接收(shou)模块(kuai)时序(xu)仿(fang)真(zhen)图
3. CMI编码(ma)和解码(ma)设(she)计(ji)
光纤线路中(zhong)线路码型传(chuan)输(shu)(shu)(shu)性(xing)能的(de)(de)好(hao)坏(huai)直接影响光系(xi)(xi)统的(de)(de)传(chuan)输(shu)(shu)(shu)性(xing)能。传(chuan)输(shu)(shu)(shu)性(xing)能好(hao)的(de)(de)线路码型应(ying)该符合比(bi)特序列独(du)立性(xing)好(hao)、功率谱密度中(zhong)的(de)(de)高低频成分少(shao)、定时成分多(duo)、直流电平比(bi)较(jiao)恒定、误(wu)码扩展(zhan)系(xi)(xi)数小、码结构均匀等(deng)特征。适于光线路传(chuan)输(shu)(shu)(shu)的(de)(de)码型比(bi)较(jiao)多(duo),本设计采用CMI码型。其(qi)变换模式为(wei):“0”码变换为(wei)“01”,“1”码变换为(wei)交替的(de)(de)“00”和(he)“11”码。
4. 结束语
与传(chuan)统的芯(xin)片电(dian)路相比(bi),采用大规(gui)模可编程门阵列(FPGA)芯(xin)片具有以下(xia)一些(xie)优点(dian):
(1)通信板(ban)结构简单,便于硬(ying)件设计,只需一块FPGA芯片可完成以上设计,占用PCB板(ban)空间(jian)小。
(2)可实现各功能(neng)模块之(zhi)间的无缝连接。由于各功能(neng)模块的逻辑(ji)均在一个(ge)芯片内部完成(cheng),不存在相互之(zhi)间电平匹(pi)配问题。
(3)时(shi)序控制(zhi)(zhi)简单。在(zai)芯(xin)片内部只需进(jin)行同(tong)意的时(shi)序控制(zhi)(zhi)即可(ke),不(bu)(bu)需要考虑对不(bu)(bu)同(tong)的芯(xin)片进(jin)行不(bu)(bu)同(tong)的时(shi)序控制(zhi)(zhi)。
(4)可靠性高。采用FPGA芯片消除了由(you)于不同(tong)(tong)芯片厂(chang)家生(sheng)产的芯片的参数不同(tong)(tong)而造成通信不稳(wen)定现(xian)象,提高了通信的稳(wen)定性能。
本文采用了FPGA实现的(de)SCC和(he)CMI功能(neng),调试结果表明,该(gai)系(xi)统(tong)操作简单、使用灵活、能(neng)够(gou)很好地应用于(yu)电力系(xi)统(tong)继(ji)电保护光纤通讯系(xi)统(tong)中。
参考文献(xian):
[1]. 唐成(cheng)虹等(deng). 光(guang)纤纵差保护装置中(zhong)光(guang)纤数字接口的设计新(xin)方法.电力系统自动(dong)化.2005
[2]. 娄景艺等. HDLC控(kong)制协议的(de)FPGA设(she)计与实现.国(guo)外电子元(yuan)器(qi)件.2005
Copyright 2018 四(si)川臻诚电气有(you)限公司 版权所(suo)有(you) :