基于ADE7755的帶CAN總線的工業(yè)用電度表設計方案
圖3 5V基準電源電路
經(jīng)過此電路可以在電源模塊MC7805的3端得到+5V的基準電源。其中R25為壓敏變阻器。
P87C591外圍電路和CAN總線部分設計
通過P87C591電路可以實現(xiàn)指定時間內(nèi)用電量的計算、數(shù)據(jù)存儲、修改電度表數(shù)值和通過圖4所示的CAN總線收發(fā)電路實現(xiàn)與上位機的通信。
有關P87C591外圍電路設計,可以參見其他單片機的外圍電路設計,這里不再贅述。
圖4 CAN總線收發(fā)電路
連接P87C591和單片機之間的芯片是P82C250。圖4這部分電路的原理可以參考有關CAN總線設計方面的資料,這里也不再闡述。
軟件部分設計
本方案的軟件部分主要由主程序和中斷服務子程序組成。其中主程序完成的功能有芯片和CAN總線的初始化、進行電量的計算和存儲。
中斷服務子程序完成的功能是利用CAN總線實現(xiàn)和主機之間的通信和電表初值的設定。其中電表初值設置由上位機完成,這樣可以節(jié)省單片機的外圍電路并且可以防止現(xiàn)場人為惡意的更改電量值。其中CAN總線的初始化程序如下:
voidinit_can_controller()
{
//進入CAN控制器復位模式
CANMOD=0x01; //將CAN控制器設置為復位模式以啟動初始化
//TXDCPort(P1.1)配置
//管腳TXDC設置為推挽模式
P1M2=P1M2|0x02;//P1M2.1=’1’,P1M1.1=’0’(默認)
CANADR=BTR0; //BTR0和BTR1編程為125kbit/s@12MHz
CANDAT=0x45;
CANADR=BTR1;//TSEG1=12,TSEG2=3,SJW=2
CANDAT=0x2B;//Sample=1->sample point~81%
//驗收濾波器的配置-- Bank1的濾波器1配置為接收ID=010.0000.0xxx
CANADR=ACR10;//將地址設置到驗收代碼寄存器0(Bank1)
CANDAT=0x50;//驗收代碼0用于濾波
CANDAT=0xE0;
CANADR=AMR10;//將地址設置到驗收屏蔽寄存器0(Bank1)
CANDAT=0x00;//bank1:驗收屏蔽0
CANDAT=0x0F;//bank1:驗收屏蔽1只與高四位有關
CANDAT=0xFF;//bank1:驗收屏蔽2無關
CANDAT=0xFF;//bank1:驗收屏蔽3無關
CANADR=ACFMOD;//將地址設置到ACF模式寄存器
CANDAT=0x55;//單驗收濾波器使用11位ID(SFF)
CANADR=ACFPRIO;//將地址設置到ACF優(yōu)先級寄存器
CANDAT=0xFF;//所有濾波器都為高優(yōu)先級
結束語
綜上所述,由于ADE7755是專用電量計量芯片,且具有抗干擾的優(yōu)點,而P87C591及其外圍電路也是當前成熟的技術,其可靠性和抗干擾性都得到了實際驗證,所以本方案簡單易行。
本方案雖是針對改進電力機車電度表而設計的。但由于電力機車工作于諧波污染嚴重工況,所以可以根據(jù)本方案針對實際情況作相應改動以適用于不同的工業(yè)場合。
電度表相關文章:電度表原理
評論