摘要:隨著變電站自動化技術在電力系統中的逐步應用,勢必要求變電站中各二次設備逐步實現網絡化。微機繼電保護裝置作為變電站重要的二次設備,對其通信系統提出了很高的要求。本文根據微機保護通信系統的要求,設計了由以太網與串行通信相結合的通信系統,闡述了通信系統的硬件構成,完成了相關驅動程序與通信功能軟件的編寫。開發的通信系統對于提高電力系統綜合自動化水平具有重要的現實意義。
關鍵詞:微機保護;通信系統;串行通信;以太網
中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2008)11-20280-04
1 引言
變電站自動化技術經過10多年的發展已經達到很高的水平,在我國城鄉電網改造與建設中不僅中低壓變電站采用了自動化技術實現無人值班,而且在220 kV及以上的超高壓變電站建設中也大量采用自動化新技術,從而大大提高了電網建設的現代化水平,增強了輸配電和電網調度的可能性,降低了變電站建設的總造價。隨著計算機技術、網絡技術的迅猛發展,以太網技術在工業領域得到了廣泛應用[1,2]。以太網具有良好的開發性、穩定性、易維護性、傳輸速度快、價格低廉、易于實現與上層管理信息網絡的無縫連接,而且為不同廠商的產品提供了一個統一的接口,便于實現互聯和互操作[3,4]。因而,在微機保護中可采用以太網構建通信系統,同時,為了兼顧傳統的通信模式,設計中仍然保留了串行通信接口。本文以串行通信與以太網通信相結合的通信系統為出發點,就相關問題進行闡述。
2 硬件構成
2.1 串行通信接口
裝置中,考慮到需要處理的數據較多,數字算法的計算量大,因此在保護CPU的選擇上采用的是TI公司的新一代高性能32位浮點DSP芯片TMS320VC33。由于在VC33的內部結構中沒有集成通用異步接收發送器(UART),所以當保護系統與廠站局域網、遠方調度進行數據通信,并要求有較高的實時性時,就必須擴展異步通用芯片,以求得到較高的通信速度。本裝置采用的通用異步接收發送器芯片是TI公司的TL16C752,它具有低功耗、高速度的特點,最大數據傳輸速率可達1.5Mb/s,且接收器與發送器相互獨立,可進行DMA操作,控制靈活方便。同時還具有回讀功能,可以在線診斷,它提供了兩組增強型的獨立UART接口,具有16字節的發送和接收FIFO、MODEM控制接口和通信狀態寄存器。它與DSP芯片的結構示意圖如圖1所示。
在裝置中設置了兩個串行通信口,其中串口1固定為RS-232,在實際應用中用來實現串口打印實時數據和各種參數,串口2可以通過跳線選擇為RS-232或RS-485模式,用來組網通信。裝置中的CPLD芯片主要是用來產生片選、讀寫等控制邏輯,它采用的是XILINX公司生產的XC95144;加入光隔則提高了通信的抗干擾能力;電平轉換芯片MAX232ACSE與MAX490ESA的作用是使信號電平(TTL電平)轉換為RS-232或RS-485電平,或進行二者之間的逆轉換。
2.2 以太網接口
在裝置中選擇RTL8019AS作為以太網控制芯片。選擇好DSP芯片和網絡芯片之后,要以TMS320VC33和RTL8019AS構建以太網,關鍵在于DSP 處理器與網卡控制芯片之間的接口設計。下面就討論TMS320VC33芯片與RTL8019AS芯片之間如何進行連接,從而實現有效的數據通信。
在TMS320VC33和RTL8019AS之間通過XILINX公司生產的CPLD芯片XC95144進行連接,硬件結構的示意圖如圖2所示,其中XC95144在接口電路中起邏輯轉換的作用,存儲芯片AM29F400B75EC用來存儲網卡芯片初始化等信息。
基于DSP與RTL8019AS組成的以太網,DSP主處理器與網卡之間的接口主要實現的功能有[5-7]:
(1) 主處理器通過接口電路對網卡芯片進行控制,包括對網卡的邏輯控制、讀寫控制、復位等;
(2) 主處理器與網卡之間的數據交換,DSP通過接口電路對網卡接收數據進行讀取,將需要發送的數據寫入網卡緩存。
3 通信功能的軟件實現
3.1 串行通信的軟件設計
3.1.1 UART的驅動程序設計
對于通用異步接收發送器(UART)TL16C752的驅動程序設計,就是對與DSP芯片通信相關的內部寄存器進行操作,下面就簡要介紹一下相關的寄存器的情況與設置。
3.1.1.1 線路控制寄存器(LCR)
線路控制寄存器(LCR) 存放串口傳送的二進制位串數據格式,LCR 是一個8位的寄存器,各位的定義如下:d0d1是字長選擇位,若d0d1=00,傳送的字長為5 位; d0d1=1 時字長為6;d0d1=0時字長為7;d0d1=11 時字長為8。d2位是停止位選擇,d2=0 時停止位為1位;d2=1時停止位為1.5位。d3=0 時校驗有效;d3=1 時檢驗無效。d4是校驗類型位, d4=0 時進行奇校驗;d4=1 時進行偶校驗。d7位(DLAB) 是鎖定波特率發生器位, d7=1 時訪問波特率因子寄存器; d7=0 時訪問其他寄存器。
在本系統中,使d0d1=11,選擇的8位字長;d2=0,選擇1位停止位;d3=0,校驗有效;d4=1,選擇進行偶校驗。
3.1.1.2 波特率因子寄存器(DLLDLH)
兩個8位的波特率因子寄存器構成一個16位的波特率因子寄存器。在TL16C752的內部具有波特率發生器, 產生發送數據的時鐘信號。波特率因子可以通過下列算式求出:
波特率因子=基準時鐘頻率/ (16×波特率)
在本系統中,我們采用的基準時鐘頻率為1.8432MHZ,先將LCR中的d7置1以便訪問波特率因子寄存器,再將波特率因子寄存器寫為16,將波特率設為9600。接著將LCR中的d7寫回0,以便訪問其它寄存器。
3.1.1.3 FIFO控制寄存器(FCR)
這個寄存器用來設置FIFO的允許/禁止、清除FIFO、設置接收FIFO的觸發級別和選擇DMA模式。先將FIFO的d0寫1,以使能接收與發送FIFO;將它的d0d1全寫1,用于復位接收與發送FIFO;將d6d7兩位寫1,設置接收器FIFO中斷的觸發標準為60characters。
3.1.2 通信的軟件設計
除了發送接收程序段在定時器中斷中執行以保證穩定的通訊速率外,保護軟件通訊模塊的大部分工作在主程序初始化后的死循環中進行。使用了串口芯片的FIFO功能以提高通訊的速度。
在約定的監控系統與保護系統之間采用主從方式進行通訊,因而保護系統總是被動接收指令,即始終為從動站。保護系統的通訊模塊在完成初始化工作后隨即進入接收狀態。當通訊接口收到完整的鏈路規約數據單元(LPDU)時將對其進行校錯,出錯丟棄這個數據單元。保護系統收到的LPDU有3種類型:第一種是2級數據請求幀,保護系統將以測量值LPDU作為回答;第二種是1級數據請求幀,此時先判斷FCB是否變化,有變化則以新的ASDU形成LPDU并填充發送緩沖區,否則重發上一個LPDU;第三種是命令幀或下傳數據幀。在這里我們將2級數據與1級數據同時召喚,使用戶進程得以簡化。當保護系統完成監控命令或準備好應答數據時,將形成發送數據包的若干個ASDU等待傳送,然后發送規定格式的命令確認幀以通知監控系統接收命令執行結果或反饋數據。另外,有啟動事件或故障事件發生時,保護系統會將上傳LPDU的ACD位置位,以通知監控系統建立啟動/故障數據傳輸過程。保護系統的程序流程圖如圖3所示。
3.2 以太網通信的軟件設計
通過對DSP編程, 來實現RTL8019AS初始化、發送數據、接受數據,嵌入式TCP/IP協議等功能,在處理數據步驟之前,還需要對網絡控制器進行必要的檢測、復位和初始化。網絡接口通過2個DMA操作來完成數據的接收和發送。本地DMA完成RTL8019A S與其內部FIFO隊列之間的數據傳送,遠程DMA 完成RTL8019AS與CPU之間的數據傳送。
3.2.1 RTL8019AS的初始化
要進行網絡通信就必須對網絡控制芯片初始化,初始化比較煩瑣,但是它有著非常重要的地位,往往決定著網絡通信的一些重要參數。為了使RTL8019AS啟動并處于準備接收或準備發送數據的狀態,必須對相關的寄存器進行初始化。這些寄存器主要包括指令寄存器CR,數據結構寄存器DCR,遠程字節數寄存器RBCR,頁面開始寄存器PSTART,頁面停止寄存器PSTOP,中斷狀態寄存器ISR,中斷屏蔽寄存器IMR,實際地址寄存器PAR0-5,多點地址寄存器MAR0-7,當前頁面寄存器CURR,傳輸配置寄存器TCR,接收結構寄存器RCR等。
3.2.2 數據的收發
通過對地址及數據口的讀寫來完成以太網幀的接收與發送。要接收或發送數據包就必須讀寫網絡控制卡RTL8019AS內部的16KB的RAM,必須通過DMA進行讀和寫,網絡接口通過2個DMA操作來完成數據的接收和發送。即本地DMA完成RTL8019A S與其內部FIFO隊列之間的數據傳送,遠程DMA 完成RTL8019AS與CPU之間的數據傳送。
3.2.2.1 數據包的發送
數據包的接收大體包括三個步驟:數據包的封裝,通過遠程DMA將數據包送到數據發送緩存區,通過RTL8019AS的本地DMA將數據送入FIFO進行發送。下面講述發送的具體操作:
(1)數據包在發送前按規定的格式封裝好,在封裝時我們采用的是一個標準的IEEE802.3以太網物理傳輸幀格式,它的基本封裝格式如表1所示。
(2)把按以太網幀格式封裝好的數據包通過遠程DMA寫入RTL8019AS的數據發送緩存區。具體操作是首先主機設置好遠端DMA開始地址(RSAR0,1)和遠端DMA數據字節數(RBCR0,1),并在CR中設置為“寫數據”,就可以從遠端DMA口寄存器里把數據寫入芯片RAM。
(3)啟動本地DMA將緩存區內的數據發送出去。即待發送的數據包存入芯片RAM后,給出發送緩沖區首地址和數據包長度(寫入TPSR、TBCR0,1),然后啟動發送命令(CR=0x3E)即可實現8019AS發送功能。8019AS芯片會自動按以太網協議完成發送并將結果寫入狀態寄存器。
3.2.2.2 數據包的接收
以太網數據包的接收過程和數據包的發送過程剛好相反。首先是將網絡上的電信號變成數據存入芯片的接收緩存中,然后主機設置好遠端DMA開始地址(RSAR0,1)和遠端DMA數據字節數(RBCR0,1),并在CR中設置“寫數據”,從遠端DMA口寄存器里把數據從芯片RAM讀到系統RAM中。接收緩沖區構成一個循環FIFO隊列,PSTART、PSTOP兩個寄存器限定了循環隊列的開始和結束頁,這兩個寄存器的設置是在以太網控制芯片的初始化中完成的。CURR為寫入指針,受芯片控制,BNRY為讀出指針,由主機程序控制,根據表達式“CURR=BNRY+1?”可以判斷是否收到新的數據包,新收到的數據包按表2的格式存于以CURR指出的地址為首址的RAM中。當CURR=BNRY時芯片停止接收數據包。
3.2.3 嵌入式TCP/IP協議選擇
TCP/IP協議實質上是一系列協議的總稱,TCP/IP協議是一組不同層次上的多個協議的組合,包含十幾個協議標準[8]。本文介紹的以太網接口是專門為繼電保護而設計的,不要求實現所有的TCP/IP協議,所以選擇的嵌入式TCP/IP是對TCP/IP協議族進行選擇并簡化而形成的協議集合。本設計實現的協議如圖4所示,通常分為四層(物理層除外)。
(1)鏈路層中實現了ARP(地址解析)協議。它主要是將32位的IP地址動態地映射為48位的以太網地址,從而保證網絡的正確傳輸。另外,在設計中把IP地址存儲于本地存儲器中,不必從其他服務器得到IP地址,這樣就無需實現RARP(逆地址解析)協議。
(2)在網絡層中主要實現了IP(網際)協議和ICMP(網絡控制報文)協議。IP協議是TCP/IP 協議簇中最核心的協議,它提供無連接的數據報傳送服務,所有上層協議都要以IP數據包格式傳輸。ICMP協議負責傳遞差錯報文以及其它需要注意的信息,在設計中只實現了對回顯請求(類型代碼為0)報文的處理,從IP層收到ICMP包后,判斷其類型代碼段是否為0,如果是,將類型字段與代碼字段設置為00(回顯應答),計算檢驗和,再交給IP層發送;如果不是,則予以丟棄。從而實現了對ping功能的支持。
(3)在運輸層實現了UDP(用戶數據報)協議。運輸層中包括兩種不同的協議:TCP(傳輸控制協議)和UDP(用戶數據報協議)。TCP是一種面向連接的、可靠的傳輸層協議,但其時延難以把握,不利于實時數據的傳輸;UDP協議是一種不面向連接的協議,它只是簡單地把數據報從一臺主機發送到另一臺主機,但并不保證該數據報能到達另一端,可靠性必須由應用層來提供,但其有實時性強的特點,能在同一時間將信息傳遞給所有節點。因此,在微機保護裝置中考慮快速性的要求,選擇了UDP協議。
(4)應用層主要指用戶進程,在保護裝置中采用的是國際電工委員會新制定的IEC61850標準,它可以用來實現面向對象和設備的無縫聯接通信。
4 結束語
本文介紹了微機保護的一種通信系統,該通信系統采用以太網通信與串行通信相結合的方式構成。文章設計了通信系統的硬件結構、編寫了驅動程序與功能軟件。設計的通信系統不僅可以滿足以太網組網的要求,也可以兼容傳統的串行通信要求,將大大地促進電廠和變電站綜合自動化的進程。
參考文獻:
[1] 習偉.新型高壓線路保護裝置的管理與通訊系統的研究[D].華中科技大學碩士學位論文,2003.
[2] 李正天.新型發電機保護裝置及其通信系統的研究[D].華中科技大學碩士學位論文,2005.
[3] 吳在軍,胡敏強,杜炎森.嵌入式以太網在變電站通信系統中的應用[J].電網技術,2003,27(1):71-75.
[4] 楊剛,楊仁剛,郭喜慶.嵌入式以太網在變電站自動化系統智能化電氣設備的實現[J].電力系統自動化,2004,28(3):74-77.
[5] 盧虎.基于DSP的以太網技術及其實現[D].西北工業大學碩士學位論文,2003.
[6] 郭勝江,陳朝陽.一種基于DSP的可插拔式以太網接口的設計與實現[J].電子工程師,2004,33(3):41-44.
[7] 邢萱,江健,王曉平.DSP在互聯網控制器上的應用[J].微處理機,2002(3):56-57.
[8] 余先濤,張俊峰,莫易敏.嵌入式TCP/IP協議在網絡通信中的應用[J].武漢理工大學學報,信息與管理工程版,2004,26(3):18-20.
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文