新聞中心

        EEPW首頁 > 測試測量 > 設計應用 > CAN總線在變電站高壓開關柜在線檢測系統中的應用

        CAN總線在變電站高壓開關柜在線檢測系統中的應用

        作者: 時間:2009-09-10 來源:網絡 收藏
        3.1.3光電隔離

        本文引用地址:http://www.104case.com/article/195734.htm

        為了進一步提高系統的抗干擾能力,在控制器SJA1000和收發器PCA82C250之間增加了由高速隔離器件6N137構成的隔離電路。


        3.1.4單片機的選取

        本裝置選用AT89C51作為處理器,AT89C51是ATMEL公司8位單片機,與MCS51完全兼容,內部集成有4Kbps的閃速E2PROM,工作頻率最高可達20MHZ.

        3.1.5電平轉換芯片的選取

        接口電路中,AT89C51芯片使用的是TTL電平,而從計算機串口輸出的是RS-232電平,因此要想計算機串口與單片機連接,必須進行電平轉換。MAXIM公司生產的MAX202芯片是在缺少±12V電源的情況下進行RS-232/TTL雙向電平轉換芯片,它的供電電源是單+5V,電平轉換的速度的最大值不小于120kbps. 為了使計算機的電源與接口電路的電源互相不受干擾,我們還在MAX202與AT89C51之間采用光電耦合器,以達到電源隔離的目的。

        3.1.6數據采集單元電路

        采集單元電路一般由微處理器外加顯示鍵盤電路、模擬量輸入電路、開關量輸入輸出電路、通訊接口電路、實時時鐘電路等組成。具體電路在此不詳細介紹了。

        4.軟件設計

        本系統采用C語言開發軟件。CAN各節點與AT89C51要有效,實時地完成數據通信,軟件的設計是關鍵,也是難點。它主要包括計算機串口通信程序、AT89C51通信程序、CAN節點初始化程序、CAN數據發送、接收程序以及CAN出錯處理程序等等。CAN控制器SJA1000的內部寄存器作為AT89C51芯片的片外寄存器,AT89C51和SJA1000之間進行狀態、控制和數據的交換都是通過SJA1000在復位模式或工作模式下對這些寄存器的讀寫來完成的。在初始化CAN內部寄存器時,注意使得各節點的位速率必須一致,而且接、發雙方必須同步。數據的接收主要有兩種方式:中斷和查詢接收方式。為提高通信的實時性,文中采用中斷接收方式,而且這樣也可保證接收緩存器不會出現數據溢出現象。下面給出SJA1OOO工作在Basic CAN模式下的初始化流程圖、數據接收的源程序。

        /*CAN接收中斷子程序*/

        Void canreceive(void) interrupt 0 {

        Unsighed char xdata*datap;

        Unsighed char xdata i, temp[15];

        if ((can_sr0x01)==0x01) {/*判斷SJA1000接收緩沖器是否有效*/

        p=canrxbuff;/*canrxbuff為接收緩沖器首地址*/

        for(i=0;i0;i++) {

        temp[i] =*(p+j);/*將接收緩沖器的數據賦給temp數組*/

        }

        can_cmr=0x04;/*釋放接收緩沖區*/

        i=can_ir;/*對CAN中斷復位*/

        }

        }

        本文采用CAN總線技術組成的在線檢測系統已在中小型中得到應用,經過實際運行,具有很好的可靠性和抗干擾性,能更好地掌握的運行狀態,穩定顯示出各參數的波形,從而能及時對設備進行檢修,避免了事故的發生,得到維護人員的一致認可。

        5.結束語

        CAN總線以高可靠性及其卓越的性能越來越受到人們的重視,并被公認為最有前途的總線之一。本文在變電站在線檢測系統中應用了這種總線技術,設計了主要硬件電路和軟件,并得到實際應用。其硬、軟件電路的設計方法同樣適合于其他基于CAN總線的分布式控制系統的節點設計。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 房山区| 宕昌县| 道孚县| 怀远县| 滨州市| 齐齐哈尔市| 正阳县| 高邑县| 博兴县| 宁蒗| 许昌县| 宽甸| 泸西县| 富源县| 子洲县| 阿勒泰市| 湘西| 萨嘎县| 黔江区| 泰兴市| 长海县| 河西区| 白朗县| 长葛市| 杭锦旗| 平昌县| 伊金霍洛旗| 清水河县| 东乡族自治县| 张掖市| 密山市| 泸西县| 绥中县| 渝北区| 丹凤县| 陈巴尔虎旗| 泰安市| 汨罗市| 巴青县| 贵州省| 宣威市|