兼容串行通信與以太網通信的微機保護通信系統分析
龔
摘要:隨著變電站自動化技術在電力系統中的逐步應用,勢必要求變電站中各二次設備逐步實現網絡化。微機繼電保護裝置作為變電站重要的二次設備,對其通信系統提出了很高的要求。本文根據微機保護通信系統的要求,設計了由以太網與串行通信相結合的通信系統,闡述了通信系統的硬件構成,完成了相關驅動程序與通信功能軟件的編寫。開發的通信系統對于提高電力系統綜合自動化水平具有重要的現實意義。 關鍵詞:微機保護;通信系統;串行通信;以太網
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 波特率因子寄存器(DLL&DLH) 兩個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所示。