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