黃世遠 楊如輝 郭謀發 楊耿杰 高 偉
(1.福州大學電氣工程與自動化學院,福州 350002;2.福建省漳浦縣供電有限公司,福建 漳浦 363200)
配電自動化系統是對配電網上的設備進行遠方實時監視、協調和控制的一個集成系統。配電自動化要借助可靠的通信手段,將配電現場終端設備所采集的各種信息上傳至監測中心,同時將監測中心的數據下發到現場終端設備,但由于通信規約互不兼容,彼此間無法互聯,阻礙了通信的順利進行。規約轉換器是實現通信規約互聯的關鍵,其核心技術就是規約轉換的實現[1-3]。
所設計的配電網通信規約轉換器可應用于小區集中抄表、大用戶抄表、線路狀態監測等各種配電自動化系統,作為接口設備提供多種物理通道用于數據傳輸,如通過ZigBee無線網絡[4-6]或RS-485接口接收現場終端設備采集上傳的數據,對數據解析判斷后,按照《Q/GDW 130-2005電力負荷管理系統數據傳輸規約》[7-8](簡稱負控規約)通過GPRS網絡與主站進行數據交換[9-11],實現不同通信規約間的互換。
通信規約轉換器是基于 RCM 5700模塊的嵌入式系統,硬件結構如圖1,分為系統和接口兩部分。系統部分為核心部件,采用 RCM 5700模塊,內含CPU、存儲器和復位等電路。接口部分實現規約轉換器的專門功能,根據應用場合特點進行專門設計。

圖1 硬件結構框圖
圖1中,128K SRAM、1M Flash和4M Serial Flash均為RCM 5700模塊板載存儲器,分別為程序運行主內存、程序存儲器和數據存儲器;MAXIM 485E芯片實現 TTL電平的 UART到 RS-485接口的轉換;SP3232實現TTL電平的UART到RS-232接口的轉換,作為調試接口,為增加可用的RS-485接口,調試成功后即轉為RS-485接口,復用串口A;ME3000 GPRS為GPRS模塊;XBee RF模塊為ZigBee模塊;撥碼開關控制RS-485接口功能的開啟或關閉;串口狀態指示燈指示處于工作狀態的RS-485接口。
系統部分是規約轉換器的核心硬件,主要包括CPU、存儲器、復位等電路。以下主要介紹CPU和存儲器的選擇與設計。
(1)中央處理器
配電網通信規約轉換器要求 CPU能處理大量數據,具有較多串口、較高工作穩定性和較強的抗干擾能力。
RCM 5700模塊采用Rabbit5000微處理器,工作頻率可達50MHz,6個高速CMOS兼容串口均可配置為異步串口,時鐘擴展頻譜可減少EM I,且內置存儲芯片、時鐘芯片等,適合于規約轉換器這種多串口多任務的嵌入式系統。此外,模塊生產商為用戶提供了廣泛的驅動函數庫和例程、免費的TCP/IP源代碼,專用的編程開發系統Dynam ic C也已移植好μC/OS-II,相比單片機、ARM等易于開發和實施嵌入式系統。基于以上優點,采用 RCM 5700作為主控制器。
(2)存儲系統
RCM 5700模塊已內置存儲芯片,在滿足性能要求條件下,優先考慮使用這些存儲器。RCM 5700模塊的存儲系統硬件包括3部分:Rabbit 5000微處理器內置的128KB SRAM、RCM 5700模塊板載的1MB Flash S29AL008D和4MB Serial Flash AT45DB041B。
通常程序的運行空間采用RAM,由于在規約轉換過程中涉及到大量的數據處理,且考慮到以后新規約的加入,RAM容量應盡量大,Rabbit 5000微處理器內置的 SRAM容量達128KB可滿足要求;程序存儲器通常采用 Flash,RCM 5700模塊板載的1MB Flash S29AL008D也足以滿足要求;數據存儲器存儲內容包括:歷史故障信息、全部通信規約和通信接口的設置參數,這些設置參數控制系統的運行,系統啟動時,加載到 RAM 中進行參數配置,參數更新時保存其最新狀態到 Flash中,并在系統啟動時再次載入到 RAM。存儲的數據量較大,RCM 5700模塊板載的Serial Flash AT45DB041B容量達4MB,滿足存儲要求。
規約轉換器的接口電路包括RS-232/485接口、GPRS模塊、ZigBee模塊等。
(1)GPRS模塊接口電路
GPRS通信模塊使用中興公司的ME3000,模塊通過UART與RCM 5700模塊接口,通信波特率為115200 bps,電路如圖2所示。CARD_RST、CARD_DAT、CARD_CLK、V_CARD是GPRS模塊與SIM卡的接口線;/RESET是模塊復位引腳,低電平有效,低脈沖持續時間超過20ms時模塊正常復位;/RTS、/DTR為模塊的UART控制信號,因設計中直接使用TXE和RXE與RCM 5700模塊通信,故將/RTS和/DTR直接拉低;ON/OFF為模塊的上/下電控制引腳,低電平有效,低脈沖持續時間超過1.5s時模塊開啟,低脈沖持續時間超過2s時模塊關閉。

圖2 GPRS模塊與RCM 5700模塊接口電路
GPRS模塊的外圍電路包括模塊供電與SIM卡。需注意的是,GPRS模塊在工作時需較大電流,如ME3000瞬時最大電流達1.5A以上并要求電壓基本恒定(3.7V),而供電電流不足常是導致GPRS模塊工作不穩定的主要原因之一,因此設計時最好應使用專用供電芯片,如 M IC29302等,保證供電質量可靠。
(2)ZigBee無線接口電路
ZigBee通信模塊采用Digi公司的XBee RF模塊,模塊具有性價比高、功耗低、接收器靈敏度高等特點。模塊分成XBee和XBee PRO兩種,XBee模塊一般作為網絡中的終端通信模塊,XBee PRO作為路由通信模塊或者協調者通信模塊。規約轉換器采用XBee PRO模塊,配置為網絡協調者,負責網絡的建立與維護。ZigBee模塊通過 UART與RCM 5700模塊接口,電路如圖3所示。

圖3 ZigBee模塊與RCM 5700模塊接口電路
規約轉換器作為接口設備,也承擔數據匯總的任務,需從眾多的終端ZigBee模塊接收數據包,設計采用API操作模式,配合多對一路由方式,可有效提高ZigBee網絡的路由效率,保證ZigBee網絡暢通。
XBee PRO模塊作為網絡協調者,使用前需對網絡地址(PAN ID)、掃描信道(Scan Channel)、目的地址、串口通信參數、睡眠模式、網絡安全和I/O口等進行合理設置,保證模塊運行可靠。
(3)RS-485接口電路
規約轉換器設計了四路RS-485接口,其中串口A可復用為RS-232接口,作為調試口,調試成功后便可切換回 RS-485接口。由MAXIM 485E轉換芯片實現TTL電平UART到RS-485的轉換,因四路電路相同,文中僅列舉一路,如圖 4所示。UART擴展RS-485包括接收、發送、流向控制3根線,光耦OP1、OP2、OP3使RS-485總線通信驅動電路與儀表內部工作電路隔離,保證儀表內部工作不受通信總線上噪聲信號的干擾,提高通信可靠性。通信波特率可達115200 bps以上。

圖4 RS-485接口電路
通信規約轉換器完成的功能較為復雜,包括數據采集、存儲、規約轉換和傳輸,單任務系統難以滿足功能要求,需采用嵌入式實時操作系統。常見的嵌入式操作系統有 uLinux、windowsCE、μC/OS-Ⅱ等[12-14]。
μC/OS-Ⅱ是針對嵌入式系統設計的實時操作系統,具有搶占式實時內核,采用用戶自定優先級方式管理任務,最多可管理64個任務,任務間的調度、切換速度快,實時性高,且編譯軟件Dynam ic C已移植好μC/OS-Ⅱ,開發中無需移植,減少了軟件設計的工作量,基于以上優點,采用μC/OS-Ⅱ嵌入式實時操作系統,設計多任務并行執行的軟件。
基于μC/OS-Ⅱ的應用設計,首先按照接口功能劃分任務,并根據任務的實時性要求分配任務優先級,數字越小,優先級越高,此外還需按照各個任務所處理數據量的大小,給每個任務分配大小合適的棧空間。
經分析,通信規約轉換器的主要任務可分為ZigBee通信任務、RS-485通信任務、GPRS通信任務和負控規約解析任務,實現DL/T 645抄表規約[15]和自定義配電網規約與負控規約的相互轉換。負控規約解析任務作為核心任務,實現對各個通道數據的解析、轉換,要求實時性最高,故優先級設為最高;其余通信任務按照實時性要求,設置GPRS通信任務優先級第二高,ZigBee通信任務優先級次于GPRS通信任務,RS-485通信任務優先級最低。創建任務的函數段如下:
OSTaskCreate(TaskFukong,(void*)0,TASKFukong_STK_SIZE,12);//創建負控規約解析任務,優先級12
OSTaskCreate(TaskGPRS,(void*)0,TASKGPRS_STK_SIZE,13);//創建GPRS通信任務,優先級13
OSTaskCreate(TaskZigBee,(void*)0,TASKZigBee_STK_SIZE,14); //創建ZigBee通信任務,優先級14
OSTaskCreate(Task485,(void*)0,TASK485_STK_SIZE,15);//創建RS-485通信任務,優先級15
任務間相對獨立但可通過全局變量、信號量、郵箱等機制通信。各個任務分別編寫,能夠提高軟件開發效率,有助于軟件的升級維護。軟件升級可根據不同應用場合所需規約的特點,修改接口功能,并編寫相應任務,擴展設計產品的應用范圍。設計的程序流程結構如圖5所示。

圖5 應用程序結構
任務操作對象為緩沖區,緩沖區開辟在系統RAM中,可分為一級緩沖區和二級緩沖區,每個緩沖區均包括接收和發送兩個子緩沖區,圖5中顯示的均為二級緩沖區。一級緩沖區是用戶為使用Dynam ic C提供的讀寫串口的庫函數,依據需求為各個串口開辟一定容量的輸入輸出緩沖區。圖5各任務中的數據接收、數據發送模塊,便是調用串口讀寫庫函數,對相應的一級緩沖區進行讀寫操作。緩沖區被多個任務操作時,可通過信號量進行同步,或通過緩沖區自身結構的設計避免同步問題。此外需注意 Dynam ic C中默認的 μC/OS-Ⅱ時鐘節拍為64Hz,為方便計算時鐘周期,將其設為50Hz,即一個時鐘周期為20ms。下面主要介紹各任務的設計與規約轉換的實現。
(1)ZigBee通信任務
串口F提供ZigBee通道,采用ZigBee協議實現監控數據無線傳輸。
1)ZigBee網絡通信規約
ZigBee采用API操作模式,API包結構如表1所示。數據幀結構由幀類型決定,當幀類型為ZigBee數據傳輸請求時,數據幀結構如表2所示。ZigBee網絡中的每個設備都有一個16位網絡地址和一個64位地址。64位地址是模塊在生產期間分配的唯一設備地址,可直接獲取。16位網絡地址是模塊在加入網絡后獲得的,除網絡協調者的地址為固定的0x0000,其余模塊(包括路由模塊和終端模塊)地址均是任意的,且在某些情況下還是可變的,故16位網絡地址不可預知,傳輸時通常設16位目標地址為0xFFFE,表示16位目標網絡地址未知,需搜索16位網絡地址。

表1 API包結構

表2 數據幀格式
數據域存放要發送給目標節點的數據,數據格式可由用戶依實際需要制定。設計的用戶數據域數據格式采用自定義配電網規約,格式為一字節功能碼+可變字節的數據,數據由功能碼和傳輸方向共同決定。
2)ZigBee通信任務的執行
按照任務設計思路,將圖5中所有ZigBee操作模塊封裝為一個任務,即任務包含接收、發送及解析三部分,任務采用查詢方式無限循環執行,接收到一個有效幀后,依據自定義規約解析出用戶數據域數據,對需要上傳的數據,打包后放入ZigBee數據接收緩沖區,并將相應接收緩沖區標志位置位,等待負控規約解析任務對其進行處理(轉換成負控規約結構幀);當發現ZigBee數據發送緩沖區有數據時,則將其打包發送。
(2)RS-485通信任務
串口A~串口D均提供RS-485接口,依據DL/T 645規約實現抄表功能。
1)DL/T 645規約
DL/T 645規約是用于多功能電能表的數據采集規約,定義了3層結構,分為物理層、鏈路層和應用層。
物理層提供3種接口:接觸式光學接口、調制型紅外接口和RS-485接口。其中RS-485接口通信速率較高,可達100kbps。
鏈路層規定通信幀格式。包括幀結構、字節結構、傳送順序、傳送間隔。幀格式如表3所示。

表3 DL/T 645規約幀格式
應用層定義通信雙方行為的集合,控制碼C表示具體通信行為,決定了長度L及數據域DATA。
2)RS-485通信任務的執行
如圖5所示,將所有RS-485操作模塊封裝為一個任務。撥碼開關控制4個RS-485接口的開啟,并將開啟串口的對應標志位置位。任務無限循環執行,每次執行均先查詢各串口標志位,確定開啟的串口,任務依次對開啟的串口進行操作,且只操作開啟的串口。抄表過程為問答方式,即轉換器提出數據請求,電能表響應數據。每個開啟串口的處理流程均相同,一次處理流程為:發送詢問幀、等待應答、按 DL/T 645規約解析數據并將需要上傳數據置入RS-485數據接收緩沖區、將相應接收緩沖區標志位置位等待負控規約解析任務對其進行處理。
(3)GPRS通信任務
1)GPRS通信設計
ME3000模塊提供AT指令接口,可方便ME3000模塊與RCM 5700模塊進行通信。所提供AT指令集不僅涵蓋了標準的GSM語音和短信應用,還包含為方便用戶使用而提供的 ZTE 專有指令。
通信規約轉換器對GPRS模塊的操作可分為兩部分,一是實現GPRS基本通信所用到的操作,包括上/下電控制、復位、打開GPRS數據連接,建立TCP服務器鏈接、數據收發等;二是為保證 GPRS通信可靠所采取的必要狀態監測,包括信號強度查詢、SIM卡狀態查詢、網絡注冊查詢、當前TCP連接狀態查詢等。
因 GPRS模塊上電后需較長時間保證網絡注冊、準備好接收指令,故不應通信失敗就重啟GPRS模塊。依據狀態監測結果,采用合理的操作及合適的操作節奏可較快排除GPRS通信故障,保證GPRS通信可靠。如發現連接TCP服務器失敗后,不應立即重啟GPRS模塊,應延時一段時間后再嘗試連接TCP服務器,若連續3次連接TCP服務器均失敗,則返回到上級操作,即 GPRS數據連接,若連續 3次GPRS數據連接也失敗,則重啟GPRS模塊。整個GPRS操作流程如圖6所示。
2)GPRS通信任務的執行
圖5中全部GPRS操作模塊封裝成一個任務,完成GPRS數據鏈路維護、數據收發。任務采用查詢方式無限循環執行,接收到一個有效幀后,即存入GPRS數據接收緩沖區,并將相應接收緩沖區標志位置位,等待負控規約解析任務對其進行處理;當發現GPRS數據發送緩沖區有數據時,即將數據上傳到上位機。

圖6 GPRS模塊處理流程圖
(4)負控規約解析任務
1)負控規約
負控規約采用3層增強型結構,分為物理層、數據鏈路層、應用層,采用GB/T18657.1的6.2.4FT1.2異步式傳輸幀格式。定義如表4所示。

表4 GB/T18657.1的6.2.4FT1.2異步式傳輸幀格式
為適應現代通信技術發展,負控規約提供了多種可選物理通道。其中一般串口和紅外通道可作為測試使用,TCP/UDP可作為主站與終端的通道,短消息可用于通知用戶緊急事件。
2)負控規約解析的執行
按照任務設計思路,將全部的負控規約解析模塊封裝成一個任務,即解析任務,它是規約轉換器軟件中最復雜的部分,封裝了絕大部分的負控規約功能,是實現規約轉換的核心。解析任務與各個全局數據區(包括數據接收緩沖區和全局標志位系統)接口,以獲取構建規約幀所需的數據,并且無限循環執行,執行方式為查詢觸發式,即任務輪詢全局標志位系統中表示各接收緩沖區的標志位,一旦發現某個接收緩沖區有需要處理的數據則立刻將其按照負控規約構造數據幀,實現規約的轉換,然后清此標志位,繼續查詢其余接收緩沖區標志位,直到所有接收緩沖區標志位均清零,一次循環過程結束。一次循環流程可歸納為:輪詢檢查、發現待處理數據、鎖定執行(讀寫數據緩沖區、Flash數據存儲區,構造數據幀)、輸出結果(將構造幀填入各個數據發送緩沖區,將事件存入Flash數據存儲區)。
(5)規約轉換實現
依據上述各任務的設計原理,下面以設計的通信規約轉換器用于線路狀態監測并通過 ZigBee無線網絡接收現場采集器依自定義規約發送的數據為例,說明規約轉換的實現過程。
某次 ZigBee通信任務接收到一個采集器發送的有效幀,經自定義規約解析后得到需要上傳的表示線路狀態變化數據,數據格式為功能碼(11H)+采集器地址+狀態碼1+狀態碼2+狀態碼3,數據打包后放入ZigBee接收緩沖區,負控規約解析任務發現ZigBee接收緩沖區有數據等待處理,即讀取Flash中的負控規約設置參數,按負控規約要求構造數據幀,實現自定義規約向負控規約的轉換,所得數據幀格式如表5所示。

表5 負控規約構造幀格式
從硬件和軟件兩方面系統地介紹了通信規約轉換器的設計。硬件設計在滿足功能、性能要求的同時突出可擴展性,將硬件分為系統部分和接口部分。軟件部分側重介紹μC/OS-Ⅱ操作系統、應用程序結構、ZigBee通信、RS-485通信、GPRS通信及自定義規約和DL/T 645規約與負控規約的相互轉換。所設計的通信規約轉換器具有多串口,擴展性強,可靠性高等特點。
[1]路小俊,王在軍.基于ARM平臺及嵌入式實時操作系統的通信管理機[J].電力自動化設備,2005,25(5): 46-49.
[2]張建周,柏嵩.嵌入式高可靠性通信管理機的設計[J].電力系統自動化, 2007, 31(16): 94-98.
[3]許紅蕊,姜波,朱啟晨. 基于實時操作系統 μC/OS-Ⅱ的通信管理機的研發[J].計算機工程與應用, 2007,43(11):208-210.
[4]朱瑩,林基明.基于 ZigBee無線傳感器網絡網關的設計與實現[J].傳感器與微系統, 2009,28(7): 80-82.
[5]龍玉湘,章兢,戴瑜興. 基于 ZigBee的無線抄表系統的集中器設計[J].低壓電器, 2009(20): 14-17.
[6]國家電網公司.Q/GDW 130-2005電力負荷管理系統數據傳輸規約[S].北京:中國電力出版社,2007.
[7]楊耿杰,郭謀發,丁國興等. 基于嵌入式操作系統的GPRS配變抄表及監測終端[J].電力自動化設備,2009,29(8): 118-123.
[8]郭愛煌,李廣宇,陳志雄,等. 基于GPRS的無線數據傳輸嵌入式系統設計[J].計算機工程,2009,35(18): 40-42.
[9]周航慈,吳光文.基于嵌入式實時操作系統的程序設計技術[M].北京:北京航空航天大學出版社,2006.
[10]陳是知.μC/OS-Ⅱ內核分析、移植與驅動開[M].北京:人民郵電出版社,2007.
[11]中華人民共和國電力工業部.DL/T 645-1997多功能電表通信規約[S].北京:中國電力出版社,1998.