基于DSP無線抄表系統(tǒng)設(shè)計
1 總體結(jié)構(gòu)
系統(tǒng)采用高精度電能采集芯片CS5460A采集電量,采用DSP2812控制,處理后的數(shù)據(jù)通過無線收發(fā)模塊nRF2401A,實現(xiàn)數(shù)據(jù)的無線傳輸,接收模塊接收到前端采集系統(tǒng)采集的數(shù)據(jù)傳送給上位機,上位機可以顯示所需要的一些電參數(shù),實現(xiàn)抄表收費一體化。系統(tǒng)結(jié)構(gòu)如圖1所示。
2 電能采集系統(tǒng)設(shè)計
選用CS5460A作為電能采集芯片,選用TI公司的TMS320F2812作為控制芯片。Cs5460A是高度集成的A/D轉(zhuǎn)換器,它在單一芯片上結(jié)合了兩個A/D轉(zhuǎn)換器、高速功率計算功能和一個串行接口。該芯片是為精確測量和計算而設(shè)計的,可用于單相2或3線功率測量設(shè)備的能量、瞬時功率、瞬時電壓、瞬時電流、電流有效值、電壓有效值的測量。CS5460A可與一個低成本旁路電阻或變壓器相聯(lián)接以測量電流,也可與電阻分割器或測量用變壓器相聯(lián)接以測量電壓。CS5460A帶有一個與微控制器通信的雙向串口和一個與供電成正比的可編程頻率輸出。CS5460A的片上功能還包括交流或直流系統(tǒng)校準。
CS5460A可以在單+5 V電源及雙極性±5 V電源下運行,電流通道輸入范圍為50 mA或250 mA,電壓通道為250 mV。在單電源供電時CS5460A的共模信號為-0.25 V到VA+。圖2是CS5460A在單電源模式下單相2線系統(tǒng)的功率測量的電路圖。此接線方式實現(xiàn)與電源線隔離。隔離通過3個變壓器實現(xiàn)。一個是普通的變壓器,用于提供CS5460A的直流電源。第二個是高精度、低阻抗的變壓器(通常稱為電壓互感器),在較高的濾波下也具有很小的衰減和相位延遲。還有一個電流互感器用于測量電源線電流,一個電阻跨接在電流互感器的次極,對CS5460A的電流通道產(chǎn)生電流感應(yīng)的電壓信號。
3 無線通信系統(tǒng)設(shè)計
nRF2401A及其外圍電路包括nRF2401A的芯片部分,穩(wěn)壓部分、晶振部分、天線部分。電壓+5 V為芯片提供電壓;晶振部分包括Y4,C44,C45晶振Y1允許值為:4 MHz,8 MHz,12 MHz,16 MHz,該設(shè)計用1 Mb/s的通信速率,則必須選擇16 MHz晶振。天線部分電感L1,用來將nRF2401A芯片的ANT1,ANT2管腳產(chǎn)生2.4 GHz電平信號轉(zhuǎn)換為電磁波信號,或者將電磁波信號轉(zhuǎn)換為電平信號輸入芯片的ANT1,ANT2管腳。
nRF2401A通信模塊原理圖如圖3所示。該設(shè)計只利用通道1的收發(fā)通道,通道2為預(yù)留通道,PER_UP與DSP2812的GPIOB4口相連控制nRF2401A芯片上電,GPIOB5接CE控制芯片使能。GPIOB6連CS實現(xiàn)。nRF2401A片選,GPIOB7接DR1從而通過DSP控制芯片通道1數(shù)據(jù)請求,GPIOB8接CLK1控制通道1時鐘,GPIOB9和芯片DATA管腳相連,實現(xiàn)DSP與模塊之間的數(shù)據(jù)傳輸。
4 電能采集軟件設(shè)計
4.1 程序功能
程序功能包括兩方面的關(guān)鍵內(nèi)容:一是,通過單片機對CS5460A芯片寄存器地址的定義和控制字的寫入,另一方面是數(shù)據(jù)的讀取。
4.2 CS5460A的操作
CS5460A的操作主要是通過SPI口寫命令,讀寫不同的寄存器,執(zhí)行不同的操作;CS5460A的寄存器主要包括狀態(tài)寄存器、配置寄存器、控制寄存器、各種校準寄存器、數(shù)據(jù)寄存器等。在進行測量前,要恰當(dāng)?shù)卦O(shè)置寄存器,以便得到正確的結(jié)果。
4.3 系統(tǒng)校準
CS5460A提供數(shù)字校準功能,通過寫指定的值到校準命令寄存器即可實現(xiàn)系統(tǒng)偏置校準和系統(tǒng)增益校準等。當(dāng)執(zhí)行校準時,必須把相應(yīng)的校準信號到電壓電流通道。CS5460A具有一系列的校準寄存器,執(zhí)行某一校準命令后,相應(yīng)的寄存器就會保留校準產(chǎn)生的修正值,這些值可以讀出;若將其保存在外部非易失存儲器,在系統(tǒng)復(fù)位后把值寫入相應(yīng)的寄存器,不必重新校準。校準寄存器包括直流電壓/電流偏置寄存器,電壓/電流增益寄存器,交流電壓/電流偏置寄存器。校準之前必須使CS5460A處于活動狀態(tài),同時使其準備接收有效命令,并清除狀態(tài)寄存器的DRDY位,因為DRDY用于判斷校準是否完成。在執(zhí)行偏置校準時,應(yīng)該輸入零信號;在執(zhí)行增益校準時,應(yīng)該輸入滿刻度信號。校準完成后,就可以進行測量。
4.4 數(shù)據(jù)的讀寫
在進行數(shù)據(jù)的讀寫前,應(yīng)該進行串口的初始化。因為有效指令不會產(chǎn)生動作或者產(chǎn)生錯誤動作,此時需重新初始化串口。當(dāng)命令包含寫操作時,串口將在下面24個SCLK周期對SDI引腳的數(shù)據(jù)(從高位開始)記錄。寄存器寫指令后必須跟24位的數(shù)據(jù)。比如,寫配置寄存器,應(yīng)先寫命令字(0x40)啟動寫操作,然后,隨著24個連續(xù)的串行時鐘脈沖,CS5460A將從串行輸入引腳SDI接收串行輸入數(shù)據(jù),一旦收到數(shù)據(jù),狀態(tài)機便將數(shù)據(jù)寫入配置寄存器,等待下一個命令。當(dāng)啟動了讀命令,串口將在下8個、16個或24個SCLK周期啟動SDO腳上的寄存器內(nèi)容的轉(zhuǎn)移(從高位開始)。寄存器讀指令可以終止在8位的邊界上(例如,讀出時可只讀8,16或24位)。同樣,數(shù)據(jù)寄存器讀出允許采用“命令鏈”。因此讀寄存器時,微控制器可同時發(fā)送新指令,新指令將被立即執(zhí)行,并可能終止讀操作。例如,命令字送入狀態(tài)機讀取某一輸出寄存器,進行16個連續(xù)的讀數(shù)據(jù)串行時鐘脈沖后,執(zhí)行寫命令字(如狀態(tài)寄存器清零命令),數(shù)據(jù)從SDI引腳輸入,同時剩下的8位讀出數(shù)據(jù)被傳送到SDO引腳。又如,用戶僅需從讀操作中獲取16位有效位時,可在SDO讀出8位數(shù)據(jù)后從SDI輸入第2個讀命令。注意:在讀周期,當(dāng)從SDO引腳輸出數(shù)據(jù)時,必須用SYNC0指令(NOP),使SDI引腳處于選通態(tài)。其程序流程如圖4所示。
下面是在TI公司的CCS2000編譯系統(tǒng)下的讀寫程序:
5 結(jié) 語
這里深入介紹電能采集、傳輸、接收的過程,系統(tǒng)以TMS320F2812為控制核心,其具有功能強大、功耗低、運算速度快等優(yōu)點,同時內(nèi)部又具有128 KB的FLASH,使系統(tǒng)結(jié)構(gòu)緊湊、靈活。CS5460芯片可直接采集電能、電壓、電流、功率、功率因數(shù)等值。采用高性能RF模塊、數(shù)據(jù)通信等技術(shù),具有長時間存儲數(shù)據(jù)和無線傳輸數(shù)據(jù)等功能。