新聞中心

        EEPW首頁 > 模擬技術 > 設計應用 > 基于ADE7755的帶CAN總線的工業用電度表設計方案

        基于ADE7755的帶CAN總線的工業用電度表設計方案

        作者: 時間:2009-09-07 來源:網絡 收藏


        圖3 5V基準電源電路
          
        經過此電路可以在電源模塊MC7805的3端得到+5V的基準電源。其中R25為壓敏變阻器。

        P87C591外圍電路和部分設計
        通過P87C591電路可以實現指定時間內用電量的計算、數據存儲、修改電度表數值和通過圖4所示的收發電路實現與上位機的通信。
          
        有關P87C591外圍電路設計,可以參見其他單片機的外圍電路設計,這里不再贅述。


        圖4 收發電路
          
        連接P87C591和單片機之間的芯片是P82C250。圖4這部分電路的原理可以參考有關CAN總線設計方面的資料,這里也不再闡述。

        軟件部分設計

        本方案的軟件部分主要由主程序和中斷服務子程序組成。其中主程序完成的功能有芯片和CAN總線的初始化、進行電量的計算和存儲。

        中斷服務子程序完成的功能是利用CAN總線實現和主機之間的通信和電表初值的設定。其中電表初值設置由上位機完成,這樣可以節省單片機的外圍電路并且可以防止現場人為惡意的更改電量值。其中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優先級寄存器
        CANDAT=0xFF;//所有濾波器都為高優先級

        結束語

        綜上所述,由于是專用電量計量芯片,且具有抗干擾的優點,而P87C591及其外圍電路也是當前成熟的技術,其可靠性和抗干擾性都得到了實際驗證,所以本方案簡單易行。

        本方案雖是針對改進電力機車電度表而設計的。但由于電力機車工作于諧波污染嚴重工況,所以可以根據本方案針對實際情況作相應改動以適用于不同的工業場合。

        電度表相關文章:電度表原理



        上一頁 1 2 下一頁

        關鍵詞: 7755 ADE CAN 總線

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 黄陵县| 来宾市| 大厂| 南靖县| 蒙阴县| 双鸭山市| 泗阳县| 靖州| 鲜城| 秀山| 咸阳市| 讷河市| 滁州市| 万全县| 福清市| 温州市| 马鞍山市| 讷河市| 彰化市| 郁南县| 高邮市| 武川县| 沙湾县| 精河县| 武清区| 永城市| 华池县| 仁寿县| 太原市| 电白县| 尖扎县| 东宁县| 武宁县| 连平县| 策勒县| 永和县| 双辽市| 吉林省| 左权县| 阜新市| 呼伦贝尔市|