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