為了提高數據采集系統的實時性與可靠性,采用μC/OS-II實時操作系統平臺,并在此平臺上開發了USB設備驅動程序、模擬量幅值與相位計算等程序。
μC/OS-II是一種可移植、可裁減、占先式的實時多任務操作系統。其絕大部分代碼是用ANSI C編寫的,只有小部分與硬件相關的代碼是用匯編語言編寫的,易于移植。μC/OS-II功能強大,支持56個用戶仟務,支持信號量、消息郵箱、消息隊列等多種常用的進程間通信機制,可剝奪實時內核使得任務級系統響應時間得到最優,而響應時間是可知的,很適合于對實時性要求比較高的系統。現已成功應用到很多領域,其穩定性與可靠性已經得到檢驗。2000年7月,μC/OS-II通過非常嚴格的測試,取得了美國航空管理局(FAA)的認證,說明它可用于與人性命攸關的安全重要系統。
TMS320LF2407滿足μC/OS-II移植的條件,TI公司提供的編譯器Code Composer也支持C語言和匯編語言開發,本文在此平臺七進行操作系統移植和軟件開發。μC/OS-II操作系統的組成義件分為3類:與處理器無關的代碼文件;與處理器有關的代碼文件,以及μC/OS-II與應用相關的設置文件。當然,移植工作完成后編寫應用程序,還應包括應用文件。移植所需要做的工作僅僅是修改部分與處理器有關的文件。這類文件包括:OS_CPU.H、0S_CPU_A.ASM、OS_CPU_C.C三個文件。
在本應用中,筆者建立了7個應用任務,優先級分別為4、5、6、7、8、9、1O;同時為每個任務分配了一個消息郵箱,使用基于消息郵箱事件的通信機制進行任務間通信與任務切換。整個軟件的基本結構如圖2所示。
任務AD_Task():DSP(N0.1)采樣電壓、電流信號。分配郵箱:pAd_Mbox。
任務DFT_Task():DSP(No.1)進行相量遞歸DFT計算。分配郵箱:pDFT_Mbox。
任務SPI_Task():DSP(No.1)通過SPI總線向DSP(No.2)發送相量數據和有功、無功信息。分配郵箱:pSPI_Mbox。
任務USB_Task():DSP(No.2)通過USB總線向上位機傳送相量數據和有功、無功信息。分配郵箱:pUSB_Mbox。
任務CAN_Task():DSP(No.2)通過CAN總線在工業以太網傳送相量數據和有功、無功信息。分配郵箱:pCAN_Mbox。
任務GPS_Task():DSP(No.2)配合GPS的秒脈沖實現高精度授時功能并啟動A/D轉換。分配郵箱:pGPS_Mbox。
任務LCD_Task():DSP(No.2)通過液晶模塊實時顯示信息。分配郵箱:pLCD_Mbox。
由上節對堆棧的分析可知,任務棧最少需要25個地址。筆者為每個任務分配了100個地址(200字節)的任務棧空間。使用函數OSTaskCreate()創建各任務。該函數的第三個參數為棧頂地址.為OSTaskStkInit()所調用。要注意,2407A的堆棧是遞增的,故應傳遞任務棧的最低地址;而又由于任務程序是采用C語言編寫的,編譯器對ARl的偏移范圍可能會超過任務棧棧頂。雖然在這種情況下ARl是可恢復的,但仍可能會影響最低地址之前的地址內容。所以筆者建議對其進行適當后移。
幅值與相角計算程序得到采樣數據后,利用離散傅里葉算法(DFT),可分別計算出每路電壓、電流信號的幅值與相位,生成相量形式的電壓與電流數據。
結語
本文設計的PMU,硬件上采用了嵌入式微處理器DSP的雙CPU結構,軟件上采用μC/OS-II操作系統。通過μC/OS-II管理各個功能模塊之間的任務調度、中斷處理、信息的交互等操作,使整個系統具有高實時性、高可靠性、可熱插拔等特點;同時也提高了軟件開發的效率,縮短了開發周期。同步相量測量單元的研制是一個復雜的課題,其實現還存在很多難點。本設計只涉及其中一部分,許多通信環節及同步相量的高級應用問題還需在令后的工作中進一步完善和提高。
責任編輯:lq6
-
電流
+關注
關注
40文章
6937瀏覽量
132533 -
電壓
+關注
關注
45文章
5637瀏覽量
116131 -
DFT
+關注
關注
2文章
231瀏覽量
22788
發布評論請先 登錄
相關推薦
評論