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