<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 汽車電子 > 設計應用 > 淺談電動汽車CAN總線通訊原理及設計方案

          淺談電動汽車CAN總線通訊原理及設計方案

          作者: 時間:2012-03-07 來源:網(wǎng)絡 收藏

          1  電動汽車對通訊網(wǎng)絡的需求

            電動汽車由于儲能設備容量有限,在運行過程中對能源的管理十分嚴格. 效率是衡量電動汽車系統(tǒng)性能的重要指標,國家863“十五”電動汽車重大專項要求電動機系統(tǒng)額定效率為85% ,控制器的額定效率達到95%. 電動控制系統(tǒng)的動態(tài)信息必須具有實時性,各子系統(tǒng)需要將車輛的公共數(shù)據(jù)實時共享,如電機轉(zhuǎn)速、車輪轉(zhuǎn)換、油門踏板位置和剎車踏板位置等. 但不同控制單元的控制周期不同,數(shù)據(jù)轉(zhuǎn)換速度、各控制命令優(yōu)先級也不同,因此需要一種具有優(yōu)先權競爭模式的數(shù)據(jù)交換網(wǎng)絡,并且本身具有極高的通信速率.

            此外,作為一種載人交通工具,電動汽車必須具有較好的舒適性,整車通訊系統(tǒng)必須具有很強的容錯能力和快速處理能力。

            目前,電動汽車的發(fā)展得到了各國的高度重視.電動汽車成為未來汽車發(fā)展的主流方向。電動汽車內(nèi)電氣元件極多,需要實時傳輸和共享的數(shù)據(jù)很多.如何提高電動汽車通訊的實時性、可靠性和應急處理能力成為電動汽車通訊的難點所在.

            我們采用TMS320LF2407型DS作為電動汽車通訊系統(tǒng)的主處理器,利用DSP良好的快速處理能力提高數(shù)據(jù)處理速度,從而提高通訊的實時性;利用 DSP內(nèi)嵌的CAN模塊作為CAN的控制器,減少硬件電路的復雜性,從而提高通訊的可靠性;通過軟件設計緊急時刻屏蔽次要因素來提高電動汽車的應急處理能力。

          2  控制方案

            電動汽車總成控制我們采用先進的模糊控制,采用的控制器也是TMS320LF2407型的DSP。對采集到的剎車信號,加速信號和反饋回的轉(zhuǎn)速信號進行模糊處理,得到期望的轉(zhuǎn)速信號,并將得到的轉(zhuǎn)速值通過CAN 傳送到電動機的控制機構(gòu),對電動機進行控制,滿足駕駛員的駕駛意圖。 同時管理燈光系統(tǒng)和屏幕顯示系統(tǒng). 屏幕顯示系統(tǒng)實時顯示電動汽車的運行狀態(tài)。 具體控制方案如圖1 所示。

          圖1  電動汽車控制系統(tǒng)結(jié)構(gòu)框圖

          3  電動汽車CAN通訊方案

            電動汽車控制需要良好的通訊協(xié)調(diào)性和運行可靠性。良好的通訊系統(tǒng)是實現(xiàn)電動汽車可靠運行的關鍵. CAN總線結(jié)構(gòu)是一種有效支持分布式控制或?qū)崟r控制的串行通訊網(wǎng)絡。 圖2 是一個典型的電動汽車CAN總線結(jié)構(gòu)示意圖,包括整車動力部分的主電動機控制器、電池組管理系統(tǒng)、電動汽車屏幕顯示系統(tǒng)等多個設備,這些子系統(tǒng)之間通過 CAN進行數(shù)據(jù)通訊和命令傳輸。 每個節(jié)點設備都能夠在脫離CAN 總線的情況下獨立完成自身系統(tǒng)的運行,從而滿足車輛運行安全性的需要。同時,CAN總線也不會因為某個設備的脫離而出現(xiàn)系統(tǒng)結(jié)構(gòu)崩潰的現(xiàn)象。

          圖2  電動汽車CAN 總線結(jié)構(gòu)圖

          4  CAN總線模塊

            CAN 總線模塊是DSP的一個16位的外設,是一個完整的CAN 控制器. 除具有CAN 總線的基本功能外,還有一些特有功能,如:對象有六個郵箱,其數(shù)據(jù)長度為0~8 個字節(jié),其中兩個接收郵箱(0、1) ,兩個發(fā)送郵箱(4、5) ,兩個可配置為接收或發(fā)送郵箱(3、4) ;自動回復遠程請求功能;可編程的CAN 總線喚醒功能;自測試模式功能等. 對CAN 總線的訪問分為控制/ 狀態(tài)寄存器的訪問和郵箱的RAM 訪問.CAN 總線控制模塊的內(nèi)存空間分配圖如圖3 所示.

          圖3  CAN 總線內(nèi)存空間分配

            CAN 控制器發(fā)送的信息幀有兩種,一種是發(fā)送數(shù)據(jù)幀,一種是發(fā)送遠程幀. 發(fā)送郵箱有郵箱4 和郵箱5以及被配置為發(fā)送方式的郵箱2 和郵箱3. 發(fā)送數(shù)據(jù)幀時,在數(shù)據(jù)寫到發(fā)送郵箱的數(shù)據(jù)區(qū)后,如果相應的發(fā)送請求位使能,則數(shù)據(jù)幀被發(fā)送到CAN 總線上. 數(shù)據(jù)幀的數(shù)據(jù)區(qū)可以通過軟件設置成1~8 個字節(jié)。 數(shù)據(jù)幀的格式如圖4 所示。

          圖4  CAN 總線數(shù)據(jù)幀

            CAN 總線控制器的接收郵箱有郵箱0和郵箱1及被配置為接收方式的郵箱2 和郵箱3. CAN 控制器在接收信息時,首先要將接收信息的標志符與相應接收郵箱的標志符進行比較,只有標志符相同的信息才能被接收. CAN 總線控制器的接收寄存器使得接收郵箱可以忽略更多的位來接收信息. 但是,如果當接收屏蔽使能位(AME) 為0 時,則局部接收屏蔽寄存器將失效. 只有配置為發(fā)送方式的郵箱2 和郵箱3 才可以接收自動應答遠程幀. 當郵箱接收到遠程幀后,接收節(jié)點將自動發(fā)送一個數(shù)據(jù)幀作為應答。

          5  接口電路設計

            由于DSP 本身內(nèi)帶CAN 總線模塊,所以不需要專門的CAN 控制器,DSP 本身不具有CAN 收發(fā)器,需要外接CAN 收發(fā)器82C250 ,中間使用光電隔離器6N137. 如果距離很短,可以不使用光電隔離器. DSP與光電隔離器和CAN 收發(fā)器硬件連接圖如圖5 所示。

          圖5  DSP 與CAN 總線硬件連接圖

          6  電動汽車總成控制器CAN通訊的軟件實現(xiàn)

            電動汽車總成控制器是電動汽車的心臟,它需要頻繁的接收和發(fā)送數(shù)據(jù)對電動汽車進行實時控制和檢測. 發(fā)送信息采用查詢方式,接收信息采用中斷方式. 通過設定不同事件的不同優(yōu)先級來確定信息的接收和發(fā)送順序,同時增加緊急事件處理程序來提高控制器處理緊急事件的能力,保證車輛和人身安全. 緊急事件處理程序是當緊急事件發(fā)生時,如執(zhí)行器件損壞,急剎車和急轉(zhuǎn)彎等,通過暫時屏蔽低優(yōu)先級事件,如電池電量檢測,LCD 顯示系統(tǒng)等,使控制器有足夠的時間處理緊急事件,以提高控制器的實時控制能力和應急處理能力。 控制器軟件流程圖如圖6 所示。

          圖6  控制器軟件流程圖

          7  結(jié) 論

            目前,現(xiàn)場總線在自動化領域中快速發(fā)展,CAN總線作為一種很有影響的現(xiàn)場總線,采用了許多新的技術和設計,使 CAN 總線成為最有發(fā)展前途的現(xiàn)場總線之一。CAN 總線以其高實時性、高可靠性和高靈活性,在工業(yè)自動化控制中得到了越來越多的應用。本文應用DSP 控制器作為CAN 總線的微處理器,利用DSP 很強的數(shù)據(jù)處理能力和CAN 總線傳輸速率高、可靠性高的特點,對電動汽車內(nèi)復雜的通訊系統(tǒng)提出解決方案. 實驗證明,本系統(tǒng)不但解決了電動汽車通訊對實時性的要求,而且可靠性和穩(wěn)定性都得到了提高。

          通信相關文章:通信原理


          隔離器相關文章:隔離器原理


          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();