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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 支持CAN總線的電動(dòng)車熱心腸!助力逆變電源設(shè)計(jì)

          支持CAN總線的電動(dòng)車熱心腸!助力逆變電源設(shè)計(jì)

          作者: 時(shí)間:2013-12-30 來(lái)源:網(wǎng)絡(luò) 收藏

          由于儲(chǔ)能設(shè)備容量有限,在運(yùn)行過(guò)程中對(duì)電能流向管理十分嚴(yán)格。精確的電能管理可以延長(zhǎng)車輛運(yùn)行里程,減少電池充電頻率,從而節(jié)約運(yùn)行成本。車載能量管理系統(tǒng)需要隨時(shí)監(jiān)控電池電壓、電機(jī)輸出功率以及其它設(shè)備的用電情況。同時(shí),電子控制系統(tǒng)的動(dòng)態(tài)信息必須具有實(shí)時(shí)性,各子系統(tǒng)需要將車輛的公共數(shù)據(jù)實(shí)行共享,如電機(jī)轉(zhuǎn)速、車輪轉(zhuǎn)速、油門踏板位置等。但不同控制單元的控制周期不同,數(shù)據(jù)轉(zhuǎn)換速度、各控制命令的優(yōu)先級(jí)也不同,因此需要一種具有優(yōu)先權(quán)競(jìng)爭(zhēng)模式的數(shù)據(jù)交換網(wǎng)絡(luò),并且本身具有極高的通信速率。此外,作為一種載人交通工具,電動(dòng)汽車必須具有極高的運(yùn)行穩(wěn)定性,整車通訊系統(tǒng)必須具有很強(qiáng)的容錯(cuò)能力和快速處理能力。

          德國(guó)Bosch公司為了解決現(xiàn)代車輛中眾多的控制和數(shù)據(jù)交換問(wèn)題,開發(fā)出一種CAN(Controller Area Network)現(xiàn)場(chǎng)總線通訊結(jié)構(gòu),廣泛應(yīng)用在常規(guī)燃油汽車上,如BENZ、BMW、PORSCHE。同時(shí),也被認(rèn)為是最佳通訊結(jié)構(gòu),我國(guó)"863計(jì)劃"關(guān)于電動(dòng)汽車的說(shuō)明中已經(jīng)明確提出,新申報(bào)的電動(dòng)車開發(fā)項(xiàng)目必須采用通訊模式。

          結(jié)構(gòu)是一種有效支持分布式控制或?qū)崟r(shí)控制的串行通訊網(wǎng)絡(luò)。


          圖1為一個(gè)典型的電動(dòng)汽車CAN總線結(jié)構(gòu)示意圖,包括整車動(dòng)力部分的主電機(jī)控制器、電池組管理系統(tǒng)、人機(jī)界面顯示系統(tǒng)等多個(gè)設(shè)備,這些子系統(tǒng)之間通過(guò)CAN 進(jìn)行數(shù)據(jù)通訊和命令傳輸。每個(gè)節(jié)點(diǎn)設(shè)備都能夠在脫離CAN總線的情況下獨(dú)立完成自身系統(tǒng)的運(yùn)行,從而滿足車輛運(yùn)行安全性的需要。同時(shí),CAN 總線也不會(huì)因?yàn)槟硞€(gè)設(shè)備的脫離而出現(xiàn)系統(tǒng)結(jié)構(gòu)崩潰的現(xiàn)象。

          本文介紹的電動(dòng)車用三相逆變電源屬于圖1中的車載輔助逆變電源。稱為"輔助電源"是因?yàn)樗呢?fù)載為電動(dòng)車上的一些輔助交流電機(jī),如汽車轉(zhuǎn)向助力油泵、剎車氣泵、冷卻水循環(huán)中的水泵以及空調(diào)系統(tǒng)中的壓縮機(jī)等。對(duì)該三相逆變電源的工作要求是:正常運(yùn)行情況時(shí)獨(dú)立維持輔助電機(jī)的穩(wěn)定運(yùn)行,能夠根據(jù)上位機(jī)的指令適當(dāng)調(diào)整工作狀態(tài);在負(fù)載發(fā)生故障(如電機(jī)短路)時(shí)迅速關(guān)斷輸出、安全關(guān)機(jī),同時(shí)能夠通過(guò)CAN總線向上位機(jī)和其它節(jié)點(diǎn)報(bào)告自身故障,引發(fā)車輛各系統(tǒng)的相關(guān)操作(例如:位于儀表臺(tái)上的人機(jī)界面顯示系統(tǒng)將立即顯示警告信息,報(bào)告車輛故障部位,并提示駕駛員減速;而整車能量管理系統(tǒng)則發(fā)出命令關(guān)閉輔助逆變電源的輸入,并將接收到的錯(cuò)誤代碼和當(dāng)前運(yùn)行參數(shù)進(jìn)行保存,便于維修人員進(jìn)行故障診斷)。

          由此看出,雖然選擇一個(gè)通用變頻器進(jìn)行改裝可以實(shí)現(xiàn)車用三相逆變電源的基本功能,但是要做成支持CAN總線各種功能的智能化節(jié)點(diǎn)必須從底層進(jìn)行開發(fā),直接選擇支持CAN總線接口的控制芯片,在控制程序中集成CAN通訊功能,適應(yīng)整車通訊的要求。

          1 P8xC592芯片介紹

          在電動(dòng)車用輔助逆變電源的設(shè)計(jì)中,控制電路不僅要支持CAN總線通訊,還要對(duì)負(fù)載電壓、電流等模擬量進(jìn)行檢測(cè),進(jìn)行各種邏輯判斷,并驅(qū)動(dòng)其它芯片完成三相逆變功能。因此簡(jiǎn)單選擇一個(gè)單獨(dú)的CAN控制器是不夠的,最方便的選擇是使用帶有在片CAN功能的控制器。

          P8Xc592是由PHILIPS公司開發(fā)生產(chǎn)的8位微處理器,主要包括:

          ·一個(gè)80C51中央處理單元(CPU)

          ·兩個(gè)標(biāo)準(zhǔn)的16位定時(shí)/計(jì)數(shù)器

          ·包括四個(gè)捕獲和三個(gè)比較寄存器的16位定時(shí)器/計(jì)數(shù)器

          ·具有8路模擬量輸入的10位A/D變換器

          ·兩路分辨率為8位的脈沖寬度調(diào)制輸出

          ·具有兩級(jí)優(yōu)先權(quán)的15個(gè)中斷源

          ·五組8位I/O端口和一組與A/D變換器模擬量輸入共用的8位輸入口

          ·與內(nèi)部RAM進(jìn)行DMA數(shù)據(jù)傳送的CAN控制器

          ·具有總線故障管理功能的1Mbps CAN控制器

          ·與標(biāo)準(zhǔn)80C51兼容的全雙工UART

          P8xC592共有68個(gè)管腳,其中包括6個(gè)8位I/O口,P0~P3與80C51相同,但P1可以用作一些特殊功能,包括4個(gè)捕獲輸入端、外部計(jì)數(shù)器輸入端、外部計(jì)數(shù)器復(fù)位輸入端和CAN接口的CTX0和CTX1輸出端。并行I/O口P4的功能與P1、P2和P3相同。P5口是不具有輸出功能的并行輸入口,主要用作A/D變換器的模擬量輸入端。

          P8xC592內(nèi)含CAN控制器,包括為實(shí)現(xiàn)高性能串行網(wǎng)絡(luò)通信所必需的所有硬件,從而能夠控制通信流順利通過(guò)CAN協(xié)議的局域網(wǎng)。為了避免出現(xiàn)混亂,芯片中增加的CAN控制器對(duì)于CPU是作為能夠雙方獨(dú)立工作的存儲(chǔ)器映像外圍設(shè)備出現(xiàn)的,即可以把P8xC592簡(jiǎn)單地設(shè)想為兩個(gè)獨(dú)立工作器件的集成體。如果關(guān)閉CAN控制器部分的功能,該芯片可以僅作為帶有模擬量A/D轉(zhuǎn)換的普通8位單片機(jī)使用。


          上一頁(yè) 1 2 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁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); })();