PPC 405EP在電力監(jiān)測系統(tǒng)中的應(yīng)用
1 引言
目前,作為監(jiān)測系統(tǒng)核心器件的微處理器一般采用高性能單片機(jī)、數(shù)字信號處理器(DSP)等提高系統(tǒng)的處理速度。但是,隨著電力系統(tǒng)監(jiān)測趨于多功能、智能化、可視化的發(fā)展。上述單一的器件已不能完全滿足要求。本文介紹了一種新型嵌入式微處理器PPC 405EP以及基于PPC 405EP的電力監(jiān)測系統(tǒng),能夠滿足高實時性、良好的人機(jī)交互和多種通信方式要求。
2 PPC 405EP微處理器
20世紀(jì)90年代,IBM和Motorola以及Apple公司共同開發(fā)了32位/64位PowerPC系列微處理器,主要應(yīng)用于PC、網(wǎng)絡(luò)通訊、工業(yè)控制領(lǐng)域。PowerPC靈活的體系結(jié)構(gòu)可實現(xiàn)多種專用系統(tǒng)。PPC405EP是IBM/AMCC公司高性能嵌入式32位RISC,運(yùn)算速度高達(dá)333 MI/s,內(nèi)部集成微處理器的常用外圍組件,特別適用于工業(yè)控制領(lǐng)域,為實現(xiàn)低成本系統(tǒng),提供了高性價比。PPC 405EP的主要特點為:16 KB數(shù)據(jù)Cache,16 KB指令Cache,寫緩沖區(qū);虛擬內(nèi)存管理單元MMU;2個10/100 Mb/s以太網(wǎng)控制器;SDRAM控制器;2個UART;外圍接口總線,直接
支持8位、16位SRAM和外圍其他設(shè)備;可編程中斷控制器,支持7個外部和19個內(nèi)部的邊沿或電平觸發(fā)中斷:PCI V2.2接口標(biāo)準(zhǔn)模塊;DMA控制模塊,可對8位、16位、32位的數(shù)據(jù)進(jìn)行操作;I2C系統(tǒng)總線模塊;通用可編程I/O口(GPIO);可編程定時/計數(shù)器:支持JTAG板級測試。
3 在線監(jiān)測系統(tǒng)的設(shè)計
被監(jiān)測設(shè)備傳輸?shù)碾妷弘娏餍盘柦?jīng)電流電壓互感器變換后.再經(jīng)信號調(diào)理電路放大、濾波,送入數(shù)據(jù)采集板。采集板內(nèi)的單片機(jī)控制A/D采樣或判斷開關(guān)信號變化,完成各種數(shù)值運(yùn)算,與預(yù)設(shè)的報警限定值作比較。如果在報警范圍內(nèi),申請占用CAN總線向嵌入式主模板發(fā)送數(shù)據(jù),與此同時,嵌入式主模板監(jiān)聽綜自網(wǎng)絡(luò)中的報文,采用103/104協(xié)議解析獲得設(shè)備狀態(tài)等信息(例如:開關(guān)狀態(tài))。嵌入式主模板把采集板傳輸?shù)墓收闲畔⒑凸收习l(fā)生時解析的報文存入CF卡同時以短信方式通知相關(guān)人員,人們可以通過監(jiān)視器瀏覽、分析這些故障文件。其原理框圖如圖1所示。
3.1 數(shù)據(jù)采集及信號預(yù)處理模塊
考慮設(shè)備監(jiān)測點較多,而且系統(tǒng)需要處理的任務(wù)種類繁多,既有數(shù)據(jù)采樣、計算、監(jiān)聽網(wǎng)絡(luò)報文等周期性任務(wù),又有通信、人機(jī)交互等隨機(jī)性事件。因此在硬件設(shè)計上,選用單片機(jī)完成數(shù)據(jù)采集、分析計算以減輕PPC 405EP的負(fù)擔(dān)。每塊采集板要完成8路4 mA~20 mA模擬信號采樣或者16路開關(guān)量信號輸入,選用Philip公司的P89LV51RD2能很好滿足采集要求。
AD7939是ADI公司生產(chǎn)的8通道、低功耗(13.5 mW)模/數(shù)轉(zhuǎn)換器,其分辨率為12-bit,最高采樣頻率達(dá)1.5 MS/s。AD7939與單片機(jī)接口簡單,不需其他外圍電路,大大簡化電路設(shè)計。值得注意的是,AD7939具有數(shù)字電源與模擬電源,數(shù)字噪聲很容易干擾A/D轉(zhuǎn)換結(jié)果。為了提高抗干擾能力,數(shù)字電源由模擬電源經(jīng)過由22μF、0.1μF和電感組成的π型濾波器后產(chǎn)生,數(shù)字地與模擬地接電感濾波后連接在一起。
3.2 基于PPC 405EP的嵌入式主板
3.2.1 PCI電路
PCI總線是一種先進(jìn)的高性能32/64位地址數(shù)據(jù)復(fù)用局部總線。PPC 405EP處理器帶有PCI總線接口,支持PCI2.2規(guī)范,PCI總線頻率高達(dá)66 MHz。利用其PCI總線接口,設(shè)計了3個USB接口分別接鼠標(biāo)、鍵盤、U盤,1個VGA接口用于顯示器,2個IDE接口用于接CF卡保存數(shù)據(jù)。選用Ali單片實現(xiàn)3個USB接口的PCI轉(zhuǎn)USB控制器。M5273、SMIPCI轉(zhuǎn)VGA控制器LynxEM+SM712和Silicon單片實現(xiàn)2個IDE接口的PCI轉(zhuǎn)IDE控制器SII0680A。直接掛在PPC 405EP的PCI總線上。
3.2.2 通信電路
根據(jù)PPC 405EP處理器的通信端口,設(shè)計了以太網(wǎng)、RS-485通信的外圍電路,其中以太網(wǎng)通信用于監(jiān)聽綜自網(wǎng)絡(luò)中報文,外圍器件選用LXT971ALC;RS-485通信用于與GSM模塊接口,根據(jù)預(yù)設(shè)的故障級別通過短信形式將越限故障信息發(fā)送到相關(guān)人員手機(jī),通信收發(fā)器使用SN65HVD10。為了提高通信質(zhì)量,采用光電隔離器件ADuM1301隔離。選用獨(dú)立CAN通信控制器SJA1000實現(xiàn)CAN通信。因為SJA1000與PPC 405EP的讀寫時序不完全兼容,必須對PPC 405EP的讀寫時序進(jìn)行變換。主要包括地址數(shù)據(jù)復(fù)用總線、地址鎖存信號ALE、讀(RD)信號、寫(WR)信號和片選信號(CS)的變頻。PPC 405EP器件的高8位數(shù)據(jù)線、讀(POE)、寫(PWE)控制線、片選信號和低8位地址線都接入CPLD。在CPLD內(nèi)部完成PPC 405EP的地址線、控制線組合的邏輯譯碼。VHDL代碼可實現(xiàn)符合SJA1000的讀寫時序。以下為VHDL程序代碼。
另外,PPC 405EP為3.3 V器件,要與5 V的SJA1000無縫連接,還需用電平轉(zhuǎn)換器隔離。電平轉(zhuǎn)換器74KVXC3245加在CPLD與SJA1000之間。CAN通信的外圍電路如圖2所示。CAN通信收發(fā)器使用PCA82C250,同樣用ADuM1301隔離。系統(tǒng)中CPLD除了完成邏輯譯碼,還充當(dāng)PPC 405EP的外部看門狗,在CPLD內(nèi)部計數(shù)器溢出之前CPLD計數(shù)器清零。由于所需資源很少,CPLD采用Altara公司的EPM240即可滿足要求。
3.2.3 串行時鐘和E2PROM電路
I2C總線接口的時鐘器件和存儲器件分別選用PCF8563和AT24C02,它們掛接在PPC 405EP處理器的I2C總線上,如圖3所示。PCF8563是Philips公司生產(chǎn)的工業(yè)級實時時鐘,具有功耗低、精度高特點,使嵌入式系統(tǒng)的硬件主模板具有較長的穩(wěn)定時鐘信號。AT24C02是一個2 KB的串行E2PROM,用于存
放系統(tǒng)軟件在運(yùn)行過程中所需的重要參數(shù)。如采樣頻率、故障報警等級等。
3.2.4 電源
電源是整個系統(tǒng)中的重要部分,系統(tǒng)的大多數(shù)不穩(wěn)定因素或故障都是由于電源設(shè)計而造成的。本設(shè)計采用LT1765和MIC39150-1.8分別產(chǎn)生3.3 V和1.8 V電源。LT1765是Linear公司的3 A開關(guān)電源,其典型電路如圖4所示。輸入電壓為3 V~25 V。輸出電壓則根據(jù)R1和R2(一般固定阻值為10 kΩ)的阻值而定,計算公式如下:
另外,PPC 405EP對上電及掉電的順序的要求:上電時要求先V核后VI/O,而掉電則要求按先VI/O后V核的順序,如果不滿足此順序,PPC 405EP的最小系統(tǒng)不能正常上電復(fù)位。這里采用12 V直流電壓同時輸入LT1765和MIC39150-1.8.滿足上面要求順序。
4 軟件實現(xiàn)
4.1 內(nèi)核驅(qū)動程序
Linux將每個設(shè)備看作一個文件,即可以像對待文件那樣使用read、write等系統(tǒng)實現(xiàn)讀寫功能。首先在。PPC 405EP平臺的PPC Linux內(nèi)核加入CAN、SII0680A等外設(shè)驅(qū)動。以CAN驅(qū)動為例,簡要說明Linux下驅(qū)動的數(shù)據(jù)處理流程。
由于CAN一幀的數(shù)據(jù)長度最大為8個字節(jié),以模擬采集板為例,當(dāng)8個測點同時發(fā)生故障時,其通過CAN傳送給PPC 405EP的數(shù)據(jù)幀必然遠(yuǎn)超過一幀數(shù)據(jù),這時需要在驅(qū)動中進(jìn)行解包、組幀等處理。因此,CAN驅(qū)動中的數(shù)據(jù)處理流程就顯得相當(dāng)重要。
其接收過程:當(dāng)CAN控制器接收數(shù)據(jù)時,產(chǎn)生接收中斷,啟動接收中斷處理程序上半部分將CAN控制器接收緩沖器中的內(nèi)容復(fù)制到接收隊列而不作任何處理,解包和組幀將在中斷處理的下半部分完成,并將處理的幀放入幀隊列,最后用戶使用系統(tǒng)調(diào)用從接收幀隊列中讀取完整的一幀;發(fā)送過程:用戶進(jìn)程通過系統(tǒng)調(diào)用向驅(qū)動程序傳送一幀任意長度的數(shù)據(jù),驅(qū)動程序中發(fā)送數(shù)據(jù)的程序按照協(xié)議將該幀分段打包,放入發(fā)送隊列,并向CAN控制器請求發(fā)送。
4.2 應(yīng)用程序
系統(tǒng)的應(yīng)用軟件由運(yùn)行在前臺的系統(tǒng)管理程序和運(yùn)行于后臺的網(wǎng)絡(luò)監(jiān)聽、數(shù)據(jù)分析程序兩部分組成。這兩部分程序相互獨(dú)立,它們之間的交互是通過信號量和共享內(nèi)存的方式實現(xiàn)。
系統(tǒng)管理程序基于Qt開發(fā)。Qt是一個跨平臺的C++圖形用戶界面庫,支持Linux平臺。系統(tǒng)管理程序主要完成報警文件瀏覽、文件拷貝、采集參數(shù)管理、磁盤(CF卡)更換、報警參數(shù)管理等人機(jī)相互功能。因為Qt是基于C++的,而Linux是基于C,因此在Qt訪問Linux下用戶的函數(shù)時,需在Qt中用關(guān)鍵字extern“C”聲明。
后臺程序為主要在嵌入式PPC Linux下開發(fā)。本系統(tǒng)的任務(wù)劃分為:CAN通信、網(wǎng)絡(luò)監(jiān)聽及報文分析。線程之間的數(shù)據(jù)共享采用互斥鎖保護(hù),以免陷入死鎖狀態(tài)。為了增強(qiáng)裝置通用性,關(guān)于測點設(shè)備的相關(guān)信息,根據(jù)現(xiàn)場實際需要事先寫入XML文件中,當(dāng)系統(tǒng)啟動時先讀取該文件內(nèi)容初始化監(jiān)聽、分析程序的配置。其工作流程圖如圖5所示。
5 結(jié)束語
PPC405EP處理器具有低功耗、低成本、高性能特點,本設(shè)計充分采用PPC 405EP的各種內(nèi)置外圍組件接口,簡化設(shè)計,降低成本。此監(jiān)測裝置已運(yùn)用于變電站的設(shè)備監(jiān)測中,且運(yùn)行效果良好。