新聞中心

        EEPW首頁 > 電源與新能源 > 設計應用 > 基于CAN總線的分布式電池管理系統

        基于CAN總線的分布式電池管理系統

        作者: 時間:2011-02-18 來源:網絡 收藏

        2.3 電量估算

        電量估算采用實時電流積分的安時法進行基本估算,然后通過對影響電池電量的溫度、自放電及老化等各種參數進行修正,并考慮單塊電池間的不一致性,從而得到精確的電池組電量。

        圖3 電 池 電 量 估 算 框 圖

        3 CAN總線系統

        3.1 CAN簡介

        CAN總線是現場總線的一種,是德國Bosch公司在1986年為解決現代汽車中眾多的控制與測試儀器之間的數據交換而開發的一種串行高速數據通信總線。它采用了ISO/OSI模型的七層結構中的物理層和數據鏈路層,具有較高的可靠性、實時性和靈活性。

        CAN總線具有以下獨特的優點:

        1)CAN能以多主方式工作,網絡上任意一個節點均可以在任意時刻向網絡上其他節點發送信息,而不分主從,通信方式靈活;

        2)CAN可以實現點對點、一點對多點及全局廣播等方式傳送和接受數據,通信介質采用雙絞線、同軸電纜或光纖,選擇靈活,通信距離最遠可達10km/5kb/s,通信速率最高可達1Mb/s/40m。CAN上節點數取決于總線驅動電路,實際可達110個;

        3)CAN節點在錯誤嚴重的情況下,具有自動關閉輸出的功能,切斷它與總線的聯系,以使總線上其它操作不受影響。采用NRZ編碼/解碼方式,并采用位填充技術。用戶接口簡單,編程方便,很容易構成用戶系統;

        4)CAN采用非破壞性仲裁技術,當兩個節點同時向網絡上傳送信息時,優先級低的節點主動停止數據發送,而優先級高的節點可不受影響地繼續傳輸數據,有效避免了總線沖突。

        5)CAN采用短幀結構,每一幀為8bite,傳輸時間短,受干擾的概率低,每幀信息都有CRC校驗及其它檢錯措施,保證了數據的出錯率極低。

        3.2 CAN總線設計

        CAN總線總體結構如圖4所示,在總線的兩端配置了兩個120Ω的電阻,其作用是總線匹配阻抗,可以增加總線傳輸的穩定性和抗干擾能力,減少數據傳輸中的出錯率。CAN總線節點結構一般分為兩類:一類采用CAN適配卡與PC機相連,實現上位機與CAN總線的通訊;另一類則是由單片機、CAN控制器及CAN驅動器構成,作為一類節點與CAN總線進行數據傳輸。在本系統中,CAN控制器采用Philips公司生產的SJA1000和82C200,它作為一個發送、接受緩沖器,實現主控制器和總線之間的數據傳輸;CAN收發器采用PCA82C250芯片,它是CAN控制器和物理總線的接口,主要可以提供對總線的差動發送能力和對CAN控制器的差動接受能力。

        圖4 CAN總 線 系 統 結 構 圖

        4 CAN總線的軟件設計

        CAN總線的三層結構模型為:物理層、數據鏈路層和應用層。其中物理層和數據鏈路層的功能由SJA1000完成,系統的開發主要在應用層軟件的設計上,它主要由三個子程序:初始化子程序、發送數據和接收數據程序。同時,還包括一些數據溢出中斷以及幀出錯的處理。

        SJA1000在上電硬件復位之后,必須對其進行軟件初始化之后才可以進行數據通訊,初始化過程主要包括對其復位模式下配置時鐘分頻寄存器CDR、總線定時寄存器BTR0和BTR1、驗收代碼寄存器ACR、驗收屏蔽寄存器AMR及輸出控制寄存器OCR等,實現對總線的速率、驗收屏蔽碼、輸出引腳驅動方式、總線模式及時鐘分頻進行定義。具體的流程如圖5所示。下面為SJA1000發送和接收數據的流程,基本過程為主控制器將數據保存到SJA1000發送緩沖器,然后對命令寄存器的發送請求TR標志位進行置位開始發送;接收過程為SJA1000將從總線上接收到的數據存入接收緩沖器,通過其中斷標志位通知主控制器來處理接收到的信息,接收完畢之后清空緩沖器,等待下次接收,具體的流程如圖6和圖7所示。

        圖 5 CAN總 線 初 始 化

        圖 6 CAN的 發 送 數 據 流 程



        關鍵詞:

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 台山市| 禹州市| 石狮市| 南江县| 庆元县| 措美县| 绵阳市| 碌曲县| 云浮市| 健康| 枞阳县| 六盘水市| 内丘县| 手机| 大石桥市| 宁海县| 建瓯市| 如东县| 岱山县| 锡林浩特市| 绥芬河市| 梅州市| 通许县| 镇江市| 武强县| 腾冲县| 清新县| 伊金霍洛旗| 东城区| 麻江县| 孟州市| 丰台区| 罗定市| 宾阳县| 富裕县| 抚州市| 来宾市| 穆棱市| 福清市| 涪陵区| 隆昌县|