林 輝,劉 軍
(1.西安鐵路職業技術學院,西安710014;2.西安市地下鐵道有限責任公司,西安710600)
電力參數的測量與監控對電網系統調節和管理自動化有著重要的影響。本文介紹一種基于DSP的嵌入式系統的電力參數測量儀器的硬件和軟件設計,可實現多任務實時監測,直觀準確地反映電力系統的電能質量。
該電力參數測量儀是在由DSP硬件和μC/OS-II嵌入式操作系統相結合的平臺上開發的。采用嵌入式操作系統μC/OS-II和DSP相結合的開發平臺,不僅具有強大的數字信號處理能力,而且系統的可靠性和實時性也得到一定的提高。DSP硬件采用TI公司的TMS320LF2407A作為為核心,軟件是以μC/OS-II為執行軟件[1-2]。在此基礎上開發了一種具有電力參數測量、顯示和通訊功能的智能化檢測儀。本文給出了比較完整的外設擴展,包括電源供電、監控電路、時鐘電路,模擬量輸入電路等接口設計和頻率采集電路及其通訊電路等。該系統還具有實時時間顯示和看門狗功能,且可以通過RS232總線與外部(微機) 通信,其結構框圖如圖1。

圖1 基于μC/OS-II的電力參數監測儀原理框圖
本系統中,考慮到多信號采集處理和功率計算等需求,選擇DSP 作為核心處理器,同時配置必需的外設電路。主要包括RAM、EPROM、閃存、串行和并行通信接口、網絡接口、可編程定時器/計數器、狀態LED指示及其硬件電路等[3]。
在本檢測系統中, DSP芯片TMS320LF2407A作為主控制器,它是TMS320LF2407的增強型。其內部總線采用哈佛結構,指令執行速度為40 MIPS,絕大部分指令可以在單周期內執行完畢。在TI 的240X系列的DSP控制芯片中,TMS320LF2407A在內部結構和外圍控制接口上都達到了很好的水平,該型號的DSP芯片內部還集成有ADC模塊、CAN模塊、32 K的FLASH程序存儲器,并且它的高速處理特性可以使得很多先進的控制算法得以實現,這樣就可以簡化整個檢測系統的硬件結構設計。在系統軟件設計中,軟件功能模塊設置如圖2。

圖2 電力參數智能檢測儀軟件功能模塊設置
電力參數交流模擬量輸入電路包括隔離電路和調理電路兩部分。隔離電路的作用是將高電壓交流電壓轉換為可直接測量的較低電壓,同時避免電網干擾對后續測量電路的沖擊和影響。調理電路是把隔離電路的輸出電壓調理到AD采集所允許的范圍內。本系統采用的TMS320LF2407A模擬電壓輸入范圍為0 V~3.3 V,因此應首先通過調理電路將測量電壓轉換至該電壓范圍內,同時在模擬電壓進入DSP之前增設電壓跟隨器,使電壓增益趨近于1,以提高帶負載能力。
電力系統通常需監測電力參數包括電壓、電流、頻率、有功功率等。電壓、電流參數的測量常用的方法有直流采樣法和交流采樣法。采用直流采樣算法測量電壓、電流時,軟件設計簡單、計算方便,對采樣值只需作比例變換即可得到被測量的數值。直流采樣法的缺點是:測量準確度直接受整流電路的準確度和穩定性的影響,整流電路參數調整困難,而且受波形因數的影響較大等。交流采樣法是按一定規律對被測信號的瞬時值進行采樣,用一定的數值算法求得被測量。它與直流采樣的差別是用軟件功能代替硬件功能。是否采用交流采樣取決于兩個條件:測量準確度和測量速度。交流采樣法包括同步采樣法、準同步采樣法、非整周期采樣法和非同步采樣法等。采樣點數的選擇和采樣頻率的選擇很重要。如果采樣頻率選擇得過高,即采樣間隔小,則一個周期里采樣點數過多,將造成數據存儲量過大和計算時間太長;但如果采樣頻率過低,FFT 運算在頻域會出現混淆現象,造成頻譜失真,不能真實反映原來的信號。
頻率參數的監測方法可用DSP的多周期捕獲單元來監測。具體方法是采用過零比較器產生方波,利用DSP中的捕獲單元CAP,捕獲上升沿或下降沿,通過計數器計數來計算頻率。TMS320-LF2407A的事件管理器共有6個捕獲單元。對于EVA模塊,與它相關的捕獲單元引腳有3個,分別是CAP1、CAP2和CAP3,可以選擇通用定時器1或2作為它們的時基,然而CAP1和CAP2一定要選擇相同的定時器作為時基。與EVB模塊相關的捕獲單元引腳也有3個,分別為CAP4、CAP5和CAP6,可以選擇通用定時器3或4作為它們的時基, CAP4和CAP5也要選擇相同的定時器作為時基。在捕獲單元使能后,輸入引腳上的指定跳變將所選通用定時器的計數值裝入到相應的FIFO堆棧。相應的中斷標志位被置位,如該中斷標志沒有被屏蔽,外設中斷將產生一個中斷請求信號。
將捕獲到的新計數值存入到FIFO堆棧時,捕獲FIFO狀態寄存器(CAP FIFOx)的相應位就進行調整以反映FIFO堆棧新的狀態。從捕獲單元輸入引腳處發生跳變到所選通用定時器的計數值被鎖存之間的延時需要2個CPU時鐘周期。通過以上方法可計算出頻率。
本檢測儀器的系統軟件編制采用μC/OS-II操作系統。 μC/OS-II是一種源碼公開、可移植、可固化、可裁剪、占先式的實時多任務操作系統,符合RTCA(航空無線電技術委員會)DO-178B標準(該標準為航空電子設備所使用軟件的性能要求而制定的)[4]。由于μC/OS-II采用多任務機制,采用優先級調度算法完成任務間的調度,并支持搶占式調度,通過任務調度和任務監視,系統具有較好的實時性和安全性,μC/OS-II具有可裁減的體系結構,并具有內存管理、中斷管理和任務控制塊(TCB)擴展的功能,有較好的可擴展性。
系統任務分為模擬量采集任務、電力參數計算任務、通訊任務和顯示任務等,并對任務分配不同的任務優先級。當確定了任務后,系統即可按照μC/OS-II的調度機理進行任務調度,具體任務分配工作是由調度器(scheduler)完成。任務調度分為中斷級調度和任務級調度,中斷級調度由μC/OS-II中的OSIntExt()函數完成;任務級調度由μC/OS-II中的OSSched()函數來完成。本系統中,時間片段的產生、通訊接收中斷、ADC采集中斷都屬中斷級調度,其余任務均屬任務級調度。
在實際應用中,首先將實時多任務操作系統μC/OS-II移植到TMS320LF2407A中。主程序采用C語言編寫,主程序流程圖如圖3。

圖3 主程序流程示意圖
關于μC/OS-II移植到該處理器上的源代碼較多,具體可參照相關文獻資料[5],此處不對移植程序代碼詳細分析,只將移植時需用戶自己編寫幾個函數如下:(1)編寫OS_CPU_A.ASM; 包括4個子程序_OSStartHighRdy();_OSCtrxSw();_OSIntCtxsw()和OSTickISR();這部分需要對處理器的寄存器進行操作,所以必須用匯編語言編寫。(2)編寫OS_CPU_C.C;本文件僅包括OSTaskStkInit()子程序,該函數模仿TI公司的I$$SAVE庫函數對任務堆棧進行初始化。(3)編寫OS_CPU.H;包括用#define定義的與處理器相關的常量、宏和類型定義。有系統數據類型定義、棧增長方向定義,關中斷和開中斷定義、系統軟中斷的定義等。(4)按需配置OS_CFG.H,按需修改CPU中斷向量表和外設向量表。
在成功移植μC/OS-II,就可添加相應的應用任務子程序,逐個任務調試,完成系統的軟件設計。
本系統是基于實時嵌入式操作系統μC/OS-II設計的電力參數監測儀器,具有結構簡單、成本低廉等優點。實驗表明該系統在數據處理、轉換、通訊等方面,具有實時性好、系統抗干擾能力強、可擴展性好等特點,易于在類似的工業用以及民用的測控系統中推廣使用。
[1] TMS320LF2407,TMS320LF2406, TMS320LF2402 DSP Controllers[R] . SPRS094H,Texas Instruments, 2002.
[2] 劉和平,嚴利平. TMS320LF240x DSP結構、原理及應用[M] . 北京:北京航空航天大學出版社,2002.
[3] 張雄偉,陳亮. DSP集成開發與應用實例[M] . 北京:電子工業出版社,2002.
[4] LABROSSE J J. 嵌入式實時操作系統μC/OS-II [M] . 邵貝貝. 2版. 北京:北京航空航天大學出版社,2003.
[5] 陳是知. μC/OS-II系統內核分析、移植與驅動程序開發[M] . 北京:人民郵電出版社,2008.