(漳州職業技術學院機械與自動化工程系,福建 漳州363000)
傳統以太網和嵌入式以太網有許多相似之處,例如都遵循IEEE802.3標準且都使用TCP/IP協議,但傳統以太網基于工作站或PC機的軟硬件環境,而嵌入式以太網基于微處理器或微控制器的軟硬件環境。此外,傳統以太網使用的網絡協議內嵌在Windows NT等操作系統之中,并且與工作站或PC機的硬件直接配合使用,而嵌入式以太網使用的網絡協議內嵌在實時操作系統之中,這樣以便應用于工業控制領域[1]。基于此,筆者進行了基于ARM7嵌入式系統的電動機保護裝置設計。在硬件設計上,采用ARM嵌入式處理器作為保護裝置的核心CPU,將RTOS作為嵌入式應用軟件開發平臺,通過該保護裝置可以提高電動機的安全可靠性。
硬件電路裝置設計的好壞直接影響保護裝置功能,對軟件系統的設計也有重要影響。筆者采用ARM+MCU結構,該裝置原理框圖如圖1所示,其中ARM主要負責數據的處理、采集、存儲、計算、故障的判斷、與上位機的通信等,MCU則負責人機接口的顯示。
根據該裝置的實際需要,通過建立相關的應用程序,軟件部分在μC/OS-Ⅱ平臺上可以大大提高其可靠性[2]。將μC/OS-Ⅱ移植到LPC2292之后,微機保護裝置就可以實現其強大功能。應用程序的總體結構框圖如圖2所示。

圖1 電動機保護裝置原理圖
主函數的主要功能是實現嵌入式實時操作系統的初始化、啟動多任務調度及創建其他任務等,要實現上述功能,可以通過調用OSLnitO實現系統的初始化,同時通過調用OSStart()來達到啟動多任務調度的目的[3]。由于定時采樣的中斷程序不能受干擾,否則會導致微機保護裝置產生嚴重錯誤,因而對實時性和優先權的要求很高。定時采樣的中斷程序圖如圖3所示。

圖2 應用程序的總體結構框圖

圖3 定時采樣的中斷程序圖
移植μC/OS-Ⅱ要求用戶編寫4個簡單的匯編語言函數:

OSStart()調用 OSStartHighRdy()函數來使就緒態任務中優先級最高的任務開始運行。中斷服務子程序、陷阱或異常處理的向量地址必須指向OSCtxSw()。OSIntExit()通過調用ISIntCtxSw()函數在OSTickISR()中執行任務切換功能。還有一個函數是Include s.h主頭文件,其出現在每個文件的第1行,因為工程項目中的每個.C文件需要頭文件,使用主頭文件可以增強代碼的可移植性。
對μC/OS-Ⅱ的相關函數處理完后,然后驗證移植代碼是否能正常工作,一般應該首先不加任何應用代碼測試移植好的μC/OS-Ⅱ,也就是說先測試內核自身運行情況是否良好,具體步驟如下:首先要確保ADS編譯器和連接器的正常工作,然后需要驗證OSTaskStkInit()和 OSStartHighRdy()和 OSCtxSw()函數,最后驗證ISIntCtxSw()和OSTick ISR()函數的正確運行。
基于ARM嵌入式系統的電動機保護裝置以μC/OS-Ⅱ為軟件開發平臺,該平臺的優勢就是可以按實際的功能將各個任務劃分為不同的任務模塊,這樣可以相應的對各個任務分別進行編程和調試。相關軟件作為該裝置的一個重要組成部分,各個軟件模塊的獨立性和可移植性需要加強。為提高該保護裝置的處理速度和硬件電路的可靠性,利用ARM芯片完成保護測量功能,采用LPC2292嵌入式微處理器作為該裝置的主控芯片,通過MCS-51完成人機接口功能,最終提高電動機的安全可靠性。
[1]周立功.ARM嵌入式系統軟件開發實例 [M].北京:北京航空航天大學出版社,2004.
[2]陳伯時.電力拖動自動控制系統 [M].北京:機械工業出版社,1991.
[3]楊蒔百.電力系統可靠性分析基礎及應用 [M].北京:水利電力出版社,1985.