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