聯系我們
電 話:0532-83812497
郵 箱:info@sd1718.com
目前測量儀表正向網絡化方向發展每一個單獨的嵌入式儀表都將成為Internet上的一個節點。本系統在ARM+RTOS的方式下實現了電子式電能表的網絡化硬件平臺以ARM核微控制器LPC2104為核心軟件系統則是在uC/OS-II操作系統下開發的。
系統硬件設計
LPC2104是Philips公司推出的一款以ARM7TDMI-S為核心的32位微控制器。LPC2104內部集成了很多功能包括128k字節的高速Flash存儲器、雙UART、多個32位定時器以及SPI、I2C串行接口和RTC等。其中UART1帶有完全的調制解調器接口可以用于網絡產品。
CS5460是CirrusLogic公司的單相功率/電能計量芯片帶有串行接口。CS5460集成度很高里面包含了兩個ADC、高/低通數字濾波器、能量計算單元、串行接口和數字-頻率轉換器等。CS5460將它測得和計算出的結果分別保存在它的各個寄存器中而能量值則通過脈沖輸出給CPU還可以驅動計度器。
該網絡化儀表的工作原理是:首先由采樣電路將輸入的大電流/電壓轉化為CS5460能夠接收的小電壓信號。CS5460根據采樣的電流/電壓計算出電能然后將電流、電壓、電能和功率等通過三線雙向串行接口傳送給CPU(能量值通過脈沖輸出)CPU根據鍵盤的輸入指令在液晶顯示器上顯示結果或者通過串口將結果傳送到Internet上。LPC2104本身既作為CS5460的控制器,手持式測振儀又作為嵌入式網關實現了電能表的遠程通信功能。本系統的硬件結構圖參見《電子設計應用》2004.8。
CS5460只能接收小于150mV的小電壓信號在采樣電路部分應選擇適當的電流/電壓互感器將輸入的電流/電壓轉換到CS5460能夠接收的電壓范圍。
在電壓采樣電路中取入的電壓經過電壓互感器降壓、隔離然后通過低通濾波。最后端的電容C1表現出很大的阻抗用于取電壓。電流采樣電路比電壓采樣電路多了取樣電阻R5。R5用于將從電流互感器出來的電流轉換為電壓。采樣電路圖參見《電子設計應用》2004.8。
CS5460與LPC2104以標準SPI接口,非常容易。由于CS5460是以定寬變脈沖輸出能量值因此將其能量輸出引腳與LPC2194的一個外部中斷引腳相連用來收集能量值。
由于電能的累計值以及校準常數需要保存到EEPROM中所以擴展一片24C16用來保存這些數值。LPC2104本身帶有I2C接口擴展EEPROM非常容易。
LPC210的4UART1口帶有完全的調制解調器接口。由于電能表接入Internet所需要傳輸的數據量不大因此可以選用低速的modem芯片這里選用OKI公司的MSM7512B。MSM7512B是1200bps半雙工的FSK調制解調器。采用3-5V單電源工作功耗較低。
另外需要注意的是CS5460輸入/輸出信號均為5V而LPC2104的信號為3.3V因此兩者之間需要加上電平轉換電路。
系統軟件設計
ARM應用系統可以基于嵌入式操作系統平臺也可以不使用操作系統直接通過啟動代碼啟動。為了方便實現網絡化功能本系統選擇基于嵌入式操作系統平臺的方式。嵌入式實時操作系統uC/OS-II在裁減之后僅有128K的Flash存儲器故可以選擇在其中移植uC/OS-II。
首先需要將uC/OS-II操作系統移植到LPC2104微處理器上。為了便于移植uC/OS-II的源代碼大部分是用C語言寫的移植過程中只需要重寫少數幾個與處理器直接相關的文件就可以了。LPC2104上移植uC/OS-II已經有成功的實例可以從網上得到。
uC/OS-II本身并不支持網絡功能。為了實現電能表的網絡化還需要移植TCP/IP協議。由于此嵌入式系統本身的功能比較單一因此可以選擇簡單的嵌入式協議棧將不需要用到的協議去掉。由于電能表需要傳輸的數據量不大但可靠性要求較高因此在傳輸層應該選用可靠數據傳輸控制協議TCP在網絡層選用基本數據傳輸協議IP。
軟件部分主要實現以下功能:
1.數據采集及計算。計算部分主要由CS5460完成當發出啟動轉換的命令之后延時適當的時間就可以從相應的寄存器中讀出所需要的測量值。電能值是以脈沖形式傳送給CPU的。有效功率的測量是通過對1秒的脈沖進行計數實現的。例如可以編程控制CS5460每轉換10焦耳的能量時產生一個脈沖然后以脈沖計數乘以10計算出有效功率。每隔幾分鐘電流累計能量會被寫入24C16串行EEPROM。這樣可以保存經過的時間內的所有能量。校準常數也保存在24C16中。但系統重新上電的時候這些校準常數會被從24C16中讀出并且寫回CS5460。
2.按鍵管理及液晶顯示。由于LPC2104的總線不開發給驅動液晶顯示帶來一定的不便但可以以普通I/O口模擬總線時序進行操作。
3.系統校準。在校準之前應該使CS5460處于有效操作狀態并且通過SPI接收有效命令清除狀態寄存器中的數據準備就緒位(DRDY);然后給電壓和電流的輸入通道施加相應的校準信號;接著通過SPI接口向CS5460發送8位的校準命令字;最后在相應的校準寄存器中保存校準結果并且置位DRDY位以通知CS5460校準結束。校準模塊主要提供一個管理界面用戶可以通過這個界面對電流表的電壓、電流、功率等參數進行校正并把校正后的數據保存。
4.網絡通信。需要發出AT指令對modem進行控制并且產生符合通信協議的數據流。發送數據時應用程序發送的數據經TCP/IP協議封裝之后再利用下層的PPP協議封裝為PPP幀然后通過異步串行口驅動程序將PPP幀發送出去。接收數據時,由異步串口驅動程序負責接收數據。然后由TCP模塊和IP協議模塊對數據進行處理將用戶數據交給應用程序。
uC/OS-II屬于搶先式剝奪型實時內核永遠保證優先級最高的就緒任務的運行。uC/OS-II可以完成各任務之間的調度和同步協調硬件資源。各個任務之間通過信號量、郵箱、消息隊列等通信機制進行數據共享及任務通信。基于uC/OS-II嵌入式操作系統平臺編程的關鍵在于任務的劃分以及優先級的確定。該任務的任務劃分圖見《電子設計應用》2004.8。
各任務的優先級為:過流過壓保護>數據處理>實時時鐘>數據存儲>遠程通信。
結語
本文介紹的網絡化電能表軟件系統是在嵌入式操作系統平臺下開發的便于單個任務調試單個任務的錯誤不會導致整個系統的崩潰。傳統的嵌人式網絡產品需要專門的網關以實現數據的網絡傳輸本系統則實現了嵌入式網關與測量控制部分感到一體化這是以后實現嵌入式產品上網的趨勢。
上一篇:壓力表使用的常見問題處理方式