摘 要:本文設計了一款基于以太網控制方式的遠程儀表采集監控系統。本系統以Wiznet公司最新研制的W5500網絡處理器、ST公司的STM32F103RC芯片以及鉅泉公司研制的電量計量芯片ATT7053A為核心,監控中心可以通過網絡,遠程讀取儀表的數據,并可通過擴展模塊監控儀表的數據是否異常(如電表竊電等)。
關鍵詞:以太網 W5500;STM32F103RC;ATT7053;遠程儀表采集
中圖分類號:TP273.5 文獻標識碼:A 文章編號:1674-7712 (2015) 02-0000-02
一、系統構造
(一)網絡處理器
本系統采用W5500以太網芯片,是WIZnet公司的一款全硬件TCP/IP協議棧,支持TCP、UDP、IPv4、ICMP、ARP、IGMP以及PPPoE協議,具有更低功耗與工作溫度等優點。其自身提供了SPI(外設串行接口),可以很方便的與外設MCU相連接;并采用高效的SPI協議,支持80MHz速率,從而能夠實現高速網絡通訊。此外該芯片的應用非常方便,只需簡單的Socket編程便能實現以太網應用,并可以同時使用8個硬件Socket進行獨立通訊。為了減少芯片能耗,芯片提供了網絡喚醒模式及掉電模式可供使用者編程選擇。
(二)高速ARM芯片
STM32F103RB是一款32位的Cortex-M3 CPU,最高工作頻率72MHZ,工作電壓2.0-3.6V,可以與網絡芯片和計量芯片的接口完美匹配。具有2個高速的SPI接口,分別與網絡芯片及計量芯片快速連接。為了降低芯片功耗,還有睡眠、停機和待機模式可供選擇。
(三)計量芯片
ATT7053A是帶有SPI接口的單相多功能計量芯片,工作電壓是3.0~3.6V。具有三路19 bit sigma-delta ADC,采樣率可調(28k/14k/7k Hz);動態范圍2000:1;具有有功、無功、視在功率和電能脈沖輸出等功能;較低的功耗(全速運行功耗<4.5mA,斷相防竊電降頻運行功耗<2mA);電源監測功能:BOR,LBOR功能。
二、系統框圖
圖1
三、硬件電路設計
(一)系統框圖列出了MCU部分、以太網部分、計量部分、顯示部分、報警部分。
1.MCU部分
圖2
采用增強型的32位ARM處理器,具有高速SPI接口,分別于網絡芯片和計量芯片的SPI接口對接,達到高速運行的效果。由于MCU本身IO口的承受電壓可以達到5V,所以芯片不是很輕易就燒壞。芯片本身的IO口配置靈活,如可以配置成I2C,SPI,UART等功能。
2.以太網部分
采用全硬件TCP/IP控制器的芯片,只需要外接少數的原器件就可以使電路正常工作。其工作模式有可變數據長度模式和固定數據長度模式,在本系統中用到的是固定數據長度模式。芯片支持SPI模式0及模式3,均遵從最高標志位(MSB)到最低標志位(LSB)的傳輸序列,本系統采用模式0。為了提高產品的穩定性和可靠性,本系統采用了電感將3.3V電源的正負極隔離,RJ45帶隔離變壓器的接口,在電路圖上都有明確標出。
3.計量部分
采用高精度的電量計量芯片ATT7053A,具有兩種應用模式(Highspeed和Normal),本系統采用的是Normal模式,通過MCU的SPI口進行控制。具有斷相防竊電功能,只需要MCU通過程序控制相關的寄存器,外加報警電路,就可以實現竊電報警。電量的計算主要取決于電壓和電流的取樣,電壓取樣常規采用的是電阻分壓,電流取樣常規采用的是錳銅絲,這樣設計就會存在一個致命問題——就是取樣信號要和芯片的電源共地,共地產生的后果就是安全性和可靠性得不到保障。在此本系統選用了高精度的電壓互感器ZMT101和電流互感器WLX-2,解決了信號和電源共地的缺點,安全性也得到了很大的提高。
4.顯示部分及報警部分
字符型液晶顯示模塊是一種專門用于顯示字母、數字、符號等點陣式LCD,本系統采用的是1602液晶(帶背光)模塊,具體參數顯示容量:16×2個字符,芯片工作電壓:4.5—5.5V,字符尺寸:2.95×4.35(W×H)mm。液晶的接口D0-D7、RS、RW、E連接到MCU的PB0-PB7、PC0-PC2。為了降低系統的功耗,背光受MCU的PC4控制。報警采用三極管驅動蜂鳴器電路,由MCU的PC3控制,當出現異常情況,驅動蜂鳴器報警,并通過網絡向監控中心發送異常情況信息,以便達到監控的目的。
四、程序設計
(一)以太網部分
W5500是通過SPI接口與MCU進行通信的,對芯片的所有操作都是通過SPI協議進行數據傳輸,按照數據禎格式對網絡芯片進行寫數據和讀數據操作。所以在對芯片進行數據傳輸之前,要先對STM32F103R的SPI接口進行初始化。然后通過SPI接口對W5500相關的寄存器進行初始化。利用TCP協議實現的遠程控制,建立TCP客戶端模式,TCP是一種面向連接的通信協議。TCP使用本機IP地址、端口號和目的IP 地址、目的端口號等建立端口連接,使用該端口發送和接收數據。使用Keil Uv5編程軟件,進行Socket設置。
初始化的部分程序如下:
/* Initialize STM32F103 */
System_Initialization();
Delay(2000);
/* Config W5500 */
W5500_Configuration();
/* Detect Gateway, If no need to detect Gateway, skip this part */
if(Detect_Gateway()==TRUE)
GPIO_ResetBits(GPIOC, D_OUTPUT1);
/* Using Socket 0 */
Socket0_Config();
(二)電量計量部分
ATT7053A也是通過SPI接口與MCU進行通信的,對芯片的所有操作也是通過 SPI 協議進行數據傳輸,在數據傳輸之前,也要進行SPI接口初始化,然后通過SPI接口初始化ATT7053A芯片的相關寄存器后,才能進行電壓、電流、有功、無功、電量等寄存器數據的讀取操作。
初始化的部分程序如下:
SPI_Write(0x32, 0xbc); //配置寄存器
SPI_Write(0x41, 0x04);
freqcfg=SPI_Read(0x41);
freqcfg=freqcfg0x04;
while(freqcfg!=0x04); //寄存器是否配置正確
五、功率的計算
功率、有效值的顯示可以直接乘上相應的系數Kx即可。為了檢驗Kx是否正確,可參照下面的近似
折算公式。
有功功率折算公式:
Px —— 為計算出的實際的功率值,單位:w Preg —— 為從功率寄存器PowerP讀取的功率值
EC —— 為電表的脈沖常數 HFconst —— 為ATT7 0 5 3的HFConst寄存器
六、以太網測試
將系統的IP地址設置成192.168.1.10,端口號為6000,網關為192.168.1.1,用網線將系統、電腦、路由器三者相連接,采用TCP測試軟件,按照下面的方法測試:
(1)用ping命令測試物理連接是否接通。
(2)上位機軟件發送連接請求指令,等網絡芯片響應。
(3)在連接成功后,就可以用上位機軟件讀取儀表數據。
參考文獻:
[1]鉅泉光電.ATT7053A數據手冊[M].
[2]Wiznet公司.W5500數據手冊[M].
[3]ST公司.STM32F103RB數據手冊[M].
[作者簡介]林必忠(1980.04-),男,皖黟人,開發部主管,本科,學士學位,從事電子電路的設計,硬件及軟件開發方面的工作。