《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于ARM_DSP架構的嵌入式微機保護裝置的設計
基于ARM_DSP架構的嵌入式微機保護裝置的設計
來源:微型機與應用2011年第4期
溫陽東, 黎 明
(合肥工業大學 電氣與自動化工程學院,安徽 合肥 230009)
摘要: 提出一種基于雙CPU架構的微機保護裝置的設計方法與實現過程。以LPC2468和TMS320F2812為硬件核心,以前后臺系統和嵌入式操作系統為軟件平臺進行微機保護裝置的設計,具體介紹了系統的硬件功能以及軟件流程圖。具體闡述了一種基于CPLD的雙CPU通信的軟硬件實現過程,解決了傳統單CPU處理速度慢、功能單一的缺點,使保護裝置運行更加可靠、靈敏。
Abstract:
Key words :

摘  要:提出一種基于雙CPU架構的微機保護裝置的設計方法與實現過程。以LPC2468和TMS320F2812為硬件核心,以前后臺系統和嵌入式操作系統為軟件平臺進行微機保護裝置的設計,具體介紹了系統的硬件功能以及軟件流程圖。具體闡述了一種基于CPLD的雙CPU通信的軟硬件實現過程,解決了傳統單CPU處理速度慢、功能單一的缺點,使保護裝置運行更加可靠、靈敏。
關鍵詞: ARM微處理器DSP微處理器; μC/OS-II; 微機保護

 微機保護裝置對電力系統的安全穩定運行起著至關重要的作用。隨著電力網絡的日趨龐大,尤其是算法的日趨復雜,一般的微型計算機很難滿足速度上的要求,此外隨著電力系統自動化水平的提高,網絡的通信和前沿的監測都需要保護裝置來承擔,從而對保護裝置的CPU要求越來越高。本文介紹一種基于DSP和ARM的雙CPU架構的微機保護平臺。將DSP強大的數據處理能力和ARM出色的控制能力結合起來,并且通過CPLD實現兩CPU間的數據交換,以此保證繼電保護裝置的可靠運行。
1 硬件設計
 本裝置適用于35 kV變電站及其以下電壓等級的廠站系統,實現保護、測量、控制、通信監控、故障記憶、自診斷、人機交互等功能。裝置內部采用插件結構,各插件之間實現電氣聯系,裝置內部包含五塊插件:顯示插件、CPU插件、模擬量采集插件、開入量與電源插件,以及開出量插件。系統框圖如圖1所示[1-2]。

    該硬件平臺采用雙CPU結構,且CPU間不分主從各自獨立運行,每個CPU有單獨的電源供電,各模塊系統相關性少,工作運行獨立。其中ARM主要用來實現人機界面、電能計量、時鐘較準以及通信等功能。DSP利用其自身運算速度快、擅長數字處理的特點,主要實現模擬量的采集、濾波、繼電保護算法以及出口控制等功能。
 模擬量采集模塊共采樣12路模擬量,從現場互感器的二次側將電信號引入裝置內部互感器,經過調理濾波、多路轉換開關CD4053和模數轉換器AD7656轉換成數字信號,然后實現FFT運算和各種保護算法。測量信號通過調理電路直接輸入ADE7758。
 開關量及電源模塊。接口電路一律采用光耦隔離,避免外界干擾進入CPU模塊。電源模塊采用兩級供電的方式,首先經一層AC/DC將220 V電壓轉換成直流5 V、7.5 V、24 V的電壓,然后再經過一層DC/DC,將電壓轉換成+3.3 V和+1.8 V供器件使用。
 看門狗電路以及存儲器模塊。本裝置采用雙CPU單獨復位。看門狗采用CAT1161,因其無上電復位功能,所以在復位端應另加RC復位電路。此外給DSP和ARM分別外擴了一片512 K的RAM和一片256 K的鐵定存儲器FM31256。其中鐵定存儲器為I2C接口,因其非易失性用來存儲一些設定值和故障錄播數據,FM31256內部具有時鐘伴侶功能同時為系統提供實時時鐘。
 通信模塊,裝置包括兩個以太網接口,一路485和一路CAN接口。一路以太網實現與站控層連接,另外一路可以單獨組網構成故障信息傳輸專網。在一些網絡環境較差,距離較短的場合下可直接使用485,CAN總線實現與變電站的通信。此外為了減少時間誤差,確保裝置的可靠性,不同場站的各臺裝置都裝設GPS對時接口。
 裝置除以上各模塊以外還有人機交互模塊和電能計量模塊,人機界面采用320×240大屏幕彩色LCD顯示器,配有3×2的按鍵。同時還有6個LED顯示燈來反應裝置的運行情況。電能模塊采用ADE7758,采用SPI接口,通過校準可直接讀出有功、無功和視在功率。
2軟件設計
2.1 ARM部分軟件設計

 ARM部分采用嵌入式操作系統μC/OS-II作為軟件平臺,μC/OS-II是一種源碼公開的實時操作系統,具有易移植、可靠穩定等特點。圖2為ARM部分軟件框圖[3]。

 μC/OS-II的移植非常簡單,只需修改下面3個文件[4]:
 OS_CPU.H文件:定義數據類型和堆棧增長方向,這一部分與所使用的編譯器有關。
 OS_CPU_C.C文件:該文件定義在堆棧增長方向上寄存器保存的位置,該文件還需要實現幾個操作系統所規定的hook函數。通常都設計為空函數。
 OS_CPU A.S文件:該文件由匯編語言實現,主要負責任務切換、臨界區指令定義以及時鐘中斷函數的處理。
 一個任務與其他任務或者中斷服務程序之間信息的交換有兩種途徑,一是通過全局變量另一個是采用消息隊列或者消息郵箱。用全局變量時,必須保證每個任務或者中斷服務子程序獨享該變量。中斷服務中保證獨享的唯一辦法就是關中斷。如果兩個任務共享某變量,各任務實現獨享的方法可以是先關中斷再開中斷或者是使用信號量。任務只能通過全局變量與中斷服務程序之間通信,而任務并不知道何時全局變量被中斷,服務程序修改了,除非中斷服務程序以信號量方式向任務發信號,或者該任務不斷地周期性地查詢該變量。為避免這種情況,可考慮使用郵箱和消息隊列。任務或中斷服務程序通過內核服務,把一則消息(一個指針)放到郵箱里,一個或多個任務可以接收到該消息(指針指向的內容就是該消息)。消息隊列實際上是郵箱陣列,遵循先進先出原則,當任務等待某個消息一定時限后,該任務自動進入就緒態并開始運行,同時返回錯誤代碼。
    各任務的切換通過內核來調度,內核的調度一般是基于優先級的,CPU總是讓處于就緒態且任務優先級最高的任務運行。任務的優先級一般根據各任務間的關聯性、任務的關鍵性以及任務執行頻繁性來選定。在系統運行的過程中可能發生任務調度的時機有:
    (1)對任務操作時,包括創建或刪除任務、掛起或恢復任務,改變任務的優先級。
    (2)任務主動使用OSTimeDly函數延時時。
    (3)發送(或等待)信號量、郵箱、消息時。
  (4)中斷函數返回時,優先級最高的任務進入運行狀態。
    本系統總共有5個任務,各任務之間的關系如圖2所示,任務功能如表1所示,系統通過定時中斷服務程序釋放信號量定時掃描顯示任務和電度采樣任務。因為LCD顯示的是BCD碼,所以定值設定好以后系統通過消息隊列通知數據處理任務將BCD碼轉換成二進制數傳送給DSP,ARM接收到DSP傳送的信息以及ADE7758所測的電度值和上位機下發的數據包后也要通過數據處理任務解包并轉換成BCD碼顯示。當系統發生故障時,DSP發送故障信息,ARM接收到故障信息以后通過信號量,主動進行錄播、上傳以及顯示故障信息。運行人員可通過鍵盤輸入利用全局變量來設置通信端口的IP地址、MAC地址、波特率以及裝置地址等。

2.2 DSP部分軟件設計[5]
    DSP部分因任務較少采用前后臺程序,運行速度快。圖3為DSP部分軟件框圖。本套裝置充分利用了DSP強大的中斷功能和高效的數據處理能力。在程序開始時,DSP向ARM請求定值和時間。設置采樣周期,每個周期采樣32點,以工頻50 Hz為例,采樣周期為0.625 ms。一個周期內必須完成模擬量的采集、fft運算、算法判斷、開關量的讀入以及與ARM的通信等功能。

2.3雙CPU通信部分軟件設計[6]
 雙CPU間的通信是本系統實現的關鍵,兩CPU雖然獨立運行,但運行時需要大量的數據進行交換。因為兩CPU的運行速度不一致,而數據在傳輸過程中必須要保持同步,兩CPU間數據交換和通信是影響整個系統正常工作的重要環節。
 CPU間的通信大致可分為:并行通信和串行通信。本裝置對實時性要求較高且數據傳輸量較大,所以采用的是一種基于CPLD的并行通信。如圖4所示,在CPLD內部實現一對D觸發器(74HC74),其中DSP_H1端接DSP的GPIO口,ARM_H2接ARM的一個中斷引腳。系統在初始化或者復位后,DSP和ARM各空讀一次,使得DSP_H2(DSP的輸入緩沖器滿信號,圖中未畫出)和ARM_H2無效(低電平)。當DSP開始寫時,寫選通經過反相器后形成一個上升沿觸發D觸發器,引起ARM_H2狀態改變通知ARM寫操作完成,可以開始讀數據,同時在寫完時使DSP_H1變低,為下一次寫操作做準備。ARM開始讀,當ARM將一次數據讀走后,ARM的讀選通端形成一個上升沿,觸發D觸發器,使DSP_H1狀態改變(變為高電平)通知DSP讀操作完成,同時將ARM_H2變低為下一次讀操作做準備。ARM向DSP傳輸數據時的握手信號原理同上。

    接收數據通過中斷來實現如圖5所示。當進入中斷服務程序后,CPU應先關中斷將外部中斷引腳設置成GPIO口,通過查詢方式接收數據以避免因多次中斷造成的系統崩潰。數據接收完后,再將GPIO口設置為中斷引腳,開放中斷。如果CRC校驗碼驗證錯誤,接收方重新發送請求命令。發送數據是通過查詢輸出緩沖器狀態來發送數據,發送數據時如果發送方輸出緩沖器在20個指令周期內無效,則退出發送程序。

 CPU間數據傳輸時,先發送命令字,高字節為數據類型如表2所示,低字節為數據長度,數據發送完后,發一個字的CRC校驗碼。如圖6所示。

     無論數據接收方還是發送方均采用循環隊列作為緩沖區,這樣可以避免CPU在處理數據時被新的數據沖掉,使數據交換更加可靠,其數據結構如下:
    struct CPU_IN_OUT
    { 
          struct CPU_IN_OUT *next;
          uint16 com_len;//命令字
          uint16 data[120]; //數據區
          uint16 CRC; //CRC校驗碼
    };
    上述方法在軟硬件上均已實現,各種試驗表明本文所介紹的雙CPU間的通信方法,傳輸數據穩定可靠。從現場運行的狀況來看各種功能基本實現,動作可靠、靈敏度高、抗干擾能力強,具有極好的推廣價值。
參考文獻
[1] 蔡月明,梅軍,曹曉華.CPLD在繼電保護中的應用[J].計算機應用,2001,27(4):4-6.
[2] 姚國強,溫陽東.電動機微機保護及其智能監控系統的研究[J]. 合肥工業大學學報(自然科學版),2000,23(4):550-554.
[3] 周立功. ARM嵌入式系統軟件開發實例[M].北京:北京航空航天大學出版社,2004:436,452.
[4] LABROSSE J J. MicroC/OS-II the real-time kernel second edition[M].北京:北京航空航天大學出版社,2007:72-142.
[5] 萬山明.TMS320f281x DSP原理及應用實例[M]. 北京:北京航空航天大學出版社,2007:114,180.
[6] 黃正謹,徐堅.CPLD系統設計技術與入門應用[M].北京:電子工業出版設,2001:10,20.

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 精品一区二区三区在线视频观看 | 国产成人av性色在线影院 | 91精品国产免费网站 | 日本精品视频一区二区三区 | 黄色一级毛片免费 | 香港三级日本三级妇人三级 | 美女图片131亚洲午夜 | 12345国产精品高清在线 | 香港三级日本三级人妇网站 | 伊大人香蕉久久网 | 国产欧美一区二区成人影院 | 亚洲成人aa| 欧美特级特黄a大片免费 | 黄男人和女人色一级 | 国产一区二区三区免费看 | 国产一区二区三区免费看 | 久草资源在线视频 | 亚洲视频免费一区 | 手机精品在线 | 九九视频高清视频免费观看 | 欧美成人全部视频 | 亚洲天堂色视频 | 国产一级做a爱免费观看 | 久久精品国产一区二区 | 国产成人亚洲综合无 | 亚洲精品在线播放视频 | 在线国产一区二区三区 | 久久高清一级毛片 | 欧美aav| 国产一区三区二区中文在线 | 免费三级网址 | 欧美一级aⅴ毛片 | 九草网 | 一二三中文乱码亚洲乱码 | 欧美一区视频在线 | 亚洲国产精品一区二区久 | 日韩欧美一级 | www.99在线| 亚洲欧美自拍一区 | 欧美一级在线观看播放 | 爽爽免费视频 |