基于ZigBee技術(shù)的電量數(shù)據(jù)傳輸系統(tǒng)
引言
在電氣試驗中常常需要采集電壓、電流、有功功率、無功功率、功率因數(shù)等電量數(shù)據(jù)進行分析處理,這些電量參數(shù)對電氣設備有著至關(guān)重要的意義。目前,一般通過電量采集模塊采集電量參數(shù)后顯示在LCD上,然后人為記錄數(shù)據(jù)或者通過有線的方式將數(shù)據(jù)傳到上位機上。常規(guī)人為記錄數(shù)據(jù)的方式不利于數(shù)據(jù)的分析和處理,而在設備較多和環(huán)境復雜的情況下通過有線傳輸數(shù)據(jù)的方式不便布線且成本較高。針對上述缺陷,本文介紹了一種利用ZigBee無線技術(shù)完成電量實時傳輸?shù)缴衔粰C的系統(tǒng)來解決這一問題。
ZigBee技術(shù)是近些年發(fā)展起來的一種無線通信技術(shù),屬于物聯(lián)網(wǎng)技術(shù)的一種。其包括協(xié)調(diào)器、匯聚節(jié)點、傳感器節(jié)點三個部分。ZigBee技術(shù)用于快速、安全、高效的無線傳輸數(shù)據(jù)。其傳輸數(shù)據(jù)具有低雜度、自組網(wǎng)、低功耗、低成本等優(yōu)點,能用于電氣試驗中的電量數(shù)據(jù)傳輸。同時,由于ZigBee的自組網(wǎng)功能,可以用于一定區(qū)域內(nèi)多臺設備的信息交換,并能將數(shù)據(jù)通過無線網(wǎng)絡傳輸?shù)缴衔粰C進行分析。
本系統(tǒng)通過數(shù)據(jù)采集模塊完成多臺設備電量數(shù)據(jù)采集,并通過ZigBee模塊將數(shù)據(jù)傳輸?shù)缴衔粰C處理分析。系統(tǒng)根據(jù)所選ZigBee模塊規(guī)格不同,可完成從幾十米到幾公里內(nèi)的數(shù)據(jù)傳輸且成本較低。
1系統(tǒng)總體設計方案
本系統(tǒng)用到的硬件設備有ZigBee(CC2530模塊)、帶SPI通信接口的電量采集模塊、串口設備、PC機;軟件工具有
IAREmbeddedWorkbench、串口調(diào)試助手等。系統(tǒng)結(jié)構(gòu)圖如圖1所示。
電量采集模塊帶SPI通信接口。該模塊由電壓電流信號采集模塊、計量芯片、MCU模塊、通信、模塊、LCD顯示模塊、EEPROM等組成。
CC2530利用IEEE802.15.4通信協(xié)議,工作頻段是2.4GHz。CC2530采用16-bitsCRC來確保數(shù)據(jù)的正確性;使用帶應答的數(shù)據(jù)傳輸方式來確保數(shù)據(jù)傳輸目的地址的正確性;采用星型網(wǎng)絡確保數(shù)據(jù)可以沿著不同的傳輸路徑從源地址到達目的地址。CC2530結(jié)合了德州儀器的黃金單元ZigBee協(xié)議棧(Z-Stack),為開發(fā)者自己搭建無線傳感網(wǎng)絡提供了一個相對完善的ZigBee解決方案。
計量芯片采用ATT7022B計量芯片。ATT7022B芯片是一種高精度專業(yè)計量芯片,適用于三相三線、三相四線測量電能,能測量各相及三相的有功功率、無功功率、功率因數(shù)、相角、頻率等參數(shù),有純軟件校表功能。
MCU模塊選用DSPTMS320F28335。TMS320F28335具有精度高、成本低、功耗小、性能高、外設集成度高、數(shù)據(jù)以 及程序存儲量大、A/D轉(zhuǎn)換更精確快速等優(yōu)點,保證了系統(tǒng) 的可靠性。
數(shù)據(jù)傳輸均通過SPI通信接口完成,SPI總線具有:全 雙工,三線同步傳送;可控的主機位傳送頻率,時鐘極性和 相位;發(fā)送完成中斷標志;寫沖突保護標志等特點,能可靠 地與MCU通信。
2硬件電路設計
2.1電量采集電路設計
電量采集電路包括電壓采樣部分和電流采樣部分。電壓 采樣采用電阻分壓輸入(零線接參考輸出)的方法,將零線 VN與參考電壓的REFO連接,方便地實現(xiàn)了將交流采樣信 號疊加在參考電壓(2.4 V)上。電壓采樣電路圖如圖2所示。
電流采樣電路采用差分輸入法,通過互感器來完成。從 電流互感器二次側(cè)取出信號接到IA1、IA2端口,輸入電阻和 電容構(gòu)成了一個抗混疊濾波器。在設計電路時一定要保證電阻 電容高度對稱性,才能保證輸入信號清晰無諧波。電流采樣 差分輸入電路圖如圖3所示。
2.2計量模塊設計
計量模塊包括計量芯片、MCU單元、通信接口模塊、LCD顯示模塊、EEPROM、晶振等。計量芯片包括電壓電流模擬信號采樣模塊、數(shù)字信號處理模塊、脈沖生成器、通信 接口模塊、電源管理模塊、溫度傳感器和參考電壓模塊等。計量模塊結(jié)構(gòu)圖如圖4所示。
如圖4所示,三相電壓電流接入到電壓電流采集模塊, 該模塊把交流電壓電流轉(zhuǎn)換成小電壓和電流信號。然后將這些 小電壓和電流信號輸入到計量芯片中,計量芯片將信號處理后 送入芯片自帶的DSP模塊進行計量,計量結(jié)果通過SPI端口送入 MCU 分析整理,整理結(jié)果由通信模塊輸出。
2.3 CC2530 模塊
在本系統(tǒng)中,CC2530 ZigBee模塊用于數(shù)據(jù)的接收和發(fā) 送。為數(shù)據(jù)和上位機的無線通信提供通道。CC2530模塊主要 包括天線、核心板、擴展口、仿真接口、電源接口、ADC接口、 RS232接口等。CC2530硬件電路圖如圖5所示。
3軟件設計
軟件設計包括計量模塊SPI接口的數(shù)據(jù)寫入和輸出、 CC2530模塊數(shù)據(jù)接收和發(fā)送、CC2530與上位機通信。軟件 設計流程圖如圖6所示。
3.1 SPI接口的數(shù)據(jù)寫入
SPI接入口程序是在VC++環(huán)境中編譯的。在軟件設計 的過程中需要考慮占空比、頻率、波特率等因素。為了使計 量更精準,選擇24.576 MHz的晶振,任一次寫操作約5 us。 具體流程圖如圖6所示。
SPI接口寫入程序:
WriteSpi(com data)
{
;Enable SPI
CS=1 ;//初始CS為高電平
SCLK=0 ; //初始SCLK為低電平
CS=0 ; //CS變?yōu)榈碗娖?
;Send 8 bits Command to SPI
//把8個比特的命令輸入SPI
for(n=7 ; n>=0 ; n--) // 經(jīng)過 32 個時鐘脈
沖CS由低到高完成
SPI的寫入
{
SCLK=1 ;
DIN=Com.n ;
Nop
Nop
Nop
SCLK=0 ;
}
;Disable SPI
CS=1 ;
// CS 為高電平 SPI 停止寫入
}
SPI 接口與 CC2530 ZigBee 模塊連接,把采集到的數(shù)據(jù)發(fā)送給 CC2530 協(xié)調(diào)器模塊,ZigBee 自帶協(xié)議棧,協(xié)議定義了一系列的通信標準,通信雙方按照這一標準進行正常的數(shù)據(jù)收發(fā)。對于使用者來說,只需要對應用層進行 C 語言程序開發(fā)實現(xiàn)所需要的功能即可。
3.2串口收發(fā)數(shù)據(jù)程序
串口是開發(fā)板和上位機交互的重要工具,ZigBee協(xié)議棧 中對串口初始化所需要的函數(shù)進行了定義。使用串口的基本步 驟有兩步:第一是初始化串口,包括設置波特率、中斷等;第 二則是向發(fā)送緩沖區(qū)發(fā)送數(shù)據(jù)或接收數(shù)據(jù)。下面是其中的主 要程序:
void SerialApp_Init( uint8 task_id )
{
uartConfig.callBackFunc=SerialApp_CallBack ;
//調(diào)用SerialApp_CallBack函數(shù),對串口內(nèi)容進行查詢
if((event&(HAL_UART_RX_FULL|HAL_UART_RX_ ABOUT_FULL|HAL_UART_RX_TIMEOUT)) &&
# i f ( SERIAL_APP_LOOPBACK
(SerialApp_TxLen < SERIAL_APP_TX_MAX))
#else
!SerialApp_TxLen)
#endif
{
SerialApp_Send();
//調(diào)用串口發(fā)送函數(shù),將從串口接受到的數(shù)據(jù),發(fā)送出去
#if SERIAL_APP_LOOPBACK
// 初始化時,SERIAL_APP_LOOPBACK=false,所以不 執(zhí)行if這個預編譯,轉(zhuǎn)到else去執(zhí)行
if(afStatus_SUCCESS!=AF_DataRequest(&SerialApp_
TxAddr))
//通過AF_DataRequest()函數(shù),將數(shù)據(jù)從空中發(fā)送出去
#endif
該程序可在IAR Embedded Workbench軟件中運行,并 在串口助手中觀察數(shù)據(jù)的傳輸情況。通過實驗得到的仿真圖如 圖7所示,上位機界面如圖8所示。
通過編譯器把協(xié)議棧中的程序燒入到CC2530模塊中, 通過改變跳線位置把CC2530分為路由器和協(xié)調(diào)器。選用 COM3和COM4這兩個端口,兩個端口選擇同樣的波特率, 均為38 400 b/s。如圖8所示,串口助手選擇自動發(fā)送數(shù)據(jù)時, 電量采集模塊每發(fā)出一個數(shù)據(jù)都會很快地通過串口發(fā)送到上 位機處理,實現(xiàn)了電量數(shù)據(jù)的無線傳輸。
圖8上位機界面
4結(jié)語
本文介紹了一種基于ZigBee技術(shù)的電量數(shù)據(jù)傳輸系統(tǒng), 可以用于多臺電氣設備數(shù)據(jù)的遠程采集,傳輸安全可靠。更重 要的是,ZigBee的自組網(wǎng)和無線傳輸功能使得數(shù)據(jù)能無線傳 輸,解決了不易布線環(huán)境下數(shù)據(jù)采集問題。
本系統(tǒng)不僅可用于電量的采集,還可以通過改變初始的 采集模塊來完成其他數(shù)據(jù)的采集和傳輸,只要采集模塊帶有 SPI通信接口即可。ZigBee模塊自帶的協(xié)議棧方便了開發(fā)者通 過改變程序和選擇合適的傳感器完成不同類型的電量數(shù)據(jù)采 集和傳輸。系統(tǒng)的主要缺點是ZigBee不適用于大量數(shù)據(jù)傳輸。
20211117_619506cf67029__基于ZigBee技術(shù)的電量數(shù)據(jù)傳輸系統(tǒng)