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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > TMS320F241在混合動力汽車電機(jī)控制中的應(yīng)用

          TMS320F241在混合動力汽車電機(jī)控制中的應(yīng)用

          作者: 時間:2007-03-09 來源:網(wǎng)絡(luò) 收藏
          摘要:一種專用于電機(jī)控制且內(nèi)嵌CAN模塊的芯片TMS320F241的主要特點。根據(jù)混合動力汽車(HEV)永磁無刷直流電機(jī)控制方案,提出了用芯片實現(xiàn)電機(jī)控制的策略,并簡要地介紹了TMS320F241的外圍設(shè)計和CAN編程。關(guān)鍵詞:TMS320F241 混合動力汽車 CAN總線 無刷直流電機(jī) 隨著城市環(huán)境污染問題的日益嚴(yán)重,汽車尾氣的控制越來越受到人們的重視,很多國家都開展了電動汽車的研究。但是電動汽車存在續(xù)駛里程短、動力性能差等弱點,加之成本太高,目前還無法大批量投入市場。為了兼顧傳統(tǒng)燃油汽車和電動汽車的優(yōu)點,國內(nèi)外都開始進(jìn)行混合動力汽車的研究。 由于混合動力汽車有兩套驅(qū)動系統(tǒng),驅(qū)動系統(tǒng)與整車控制單元(VCU)之間的信息交換與協(xié)調(diào)就顯得尤其重要。CAN(Controller Area Network)總線即控制器局域網(wǎng)絡(luò),是一種有效支持分布式控制或?qū)崟r控制的串行通信網(wǎng)絡(luò),屬于現(xiàn)場總線的范疇,具有實時性強(qiáng)、可靠性高、抗干擾性強(qiáng)、結(jié)構(gòu)簡單、操作性好、價格低廉等特點,因此被廣泛用于中。 TMS320X24X是TI公司專為數(shù)字電機(jī)控制而設(shè)計的系列芯片。而TMS320F241與同系列的TMS320C240或TMS320F240相比,除了具有后者的基本功能之外,還內(nèi)嵌了CAN模塊,因此很適合混合動力汽車電機(jī)驅(qū)動系統(tǒng)的控制。1 TMS320F241的主要特點 與TMS320X240相比,TMS320F241除了多出一個CAN模塊之外,還具有以下不同之處: %26;#183;TMS320X240具有雙10位A/D轉(zhuǎn)換器,16個輸入通道,轉(zhuǎn)換時間為6μs;而TMS320F241則只有一個10位A/D轉(zhuǎn)換器,8個輸入通道,轉(zhuǎn)換時間為1μs。 %26;#183;TMS320X240的事件管理器中有3個定時/計數(shù)器、4個捕獲單元和9路PWM輸出(6個Full PWM和3個Simple PWM);而TMS320F241的事件管理器中只有2個定時/計數(shù)器、3個捕獲單元和6路PWM輸出(6個Full PWM),計數(shù)器的計數(shù)方式也少了單上升沿和單上升/下降沿兩種模式。 TMS320F241具有8K片內(nèi)Flash,沒有擴(kuò)展RAM接口,調(diào)試起來不是很方便。但可以用同系列的TMS320F243EVM板進(jìn)行調(diào)試,程序幾乎不同修改就能移植到TMS320F241芯片內(nèi)運行。 2 無刷直流電機(jī)控制系統(tǒng)方案 圖1為電機(jī)系統(tǒng)控制框圖,采用轉(zhuǎn)換和電流雙閉環(huán)控制。 轉(zhuǎn)子位置由霍爾元件檢測,是3個相差120度(電角度)、脈寬為180度(電角度)的重疊信號。由轉(zhuǎn)子位置可得出轉(zhuǎn)速,進(jìn)而得到電流的計算值;而由電流傳感器可以檢測到實際的電流,根據(jù)電流給定值與實際值兩者的差值調(diào)節(jié)PWM信號的占空比,并根據(jù)當(dāng)前轉(zhuǎn)子位置觸發(fā)相應(yīng)的功率開關(guān)器件,從而達(dá)到控制電機(jī)轉(zhuǎn)速的目的。 逆變器采用IPM智能功率模塊,它內(nèi)含功率開關(guān)器件和驅(qū)動電路以及過程電壓、過電流等檢測電路,其中的開關(guān)器件為IGBT。 電機(jī)控制策略中各功能模塊(包括ASR、ACR、PWM、換流邏輯和轉(zhuǎn)速計算)都由TMS320F241芯片實現(xiàn)。3 TMS320F241的外圍設(shè)計 圖2是TMS320F241芯片的主要外圍接線圖。有關(guān)說明如下: XTAL1和XTAL2之間接5MHz的晶振,提供系統(tǒng)時鐘。 3個捕獲單元的引腳CAP1、CAP2、CAP3連接到霍爾元件的輸出,轉(zhuǎn)子的位置信號存儲到捕獲單元的緩沖器,經(jīng)過計算可以得到轉(zhuǎn)子轉(zhuǎn)速。 A/D轉(zhuǎn)換器的8位輸入通道中,用了5個通道,輸入量分別是直流母線電流Idc、電壓Vdc以及電機(jī)三相電流Iu、Iv、Iw;另外3個通道經(jīng)過電阻接地。 6路PWM輸出接到逆變器六個開關(guān)器件的控制端,其中U+、V+、W+接上橋臂,U-、V-W-接下橋臂。這6路PWM信號控制著開關(guān)器件的開通與關(guān)斷,從而決定了電流的流經(jīng)路徑。 TMS320F241的CAN模塊引腳CANRX和CANTX通過光耦器件6N137連接到收發(fā)器82C250,而收發(fā)器82C250再通過兩個引腳CANH和CANL與CAN總線相連,從而實現(xiàn)了TMS320F241與CAN總線間的通訊。其通訊介質(zhì)采用雙絞線,如果通訊距離在40m之內(nèi),最高傳輸速率可達(dá)1Mbps。 4 TMS320F241的CAN編程 TMS320F241的CAN模塊是FullCAN控制器,可以發(fā)送和接收標(biāo)準(zhǔn)幀(11位標(biāo)識符)和擴(kuò)展幀(29位標(biāo)識符),它含有6個郵箱(Mailbox)以及15個不同的16位寄存器。這些寄存器分控制寄存器、狀態(tài)寄存器、中斷寄存器和本地接收屏蔽寄存器,它們映射到的數(shù)據(jù)地址空間為0x7100h~0x710Fh。6個郵箱中有兩個收件箱(編號為0和1)、兩個發(fā)件箱(編號為4和5),還有兩個郵箱(編號為2和3)可以根據(jù)需要設(shè)置為收件箱或發(fā)件箱。而每個郵箱又包含標(biāo)識符、信息長度及遠(yuǎn)程幀發(fā)送請求、數(shù)據(jù)等三個部分,其中發(fā)送或接收的數(shù)據(jù)長度為8字節(jié)。6個郵箱占用地址空間為0x7200h~0x722Fh。要使TMS320F241芯片能夠正確地收發(fā)信息,首先要初始化CAN模塊。CAN總線上每個節(jié)點的位傳輸時間是可以編程的(通過設(shè)置波特率),但必須相同。當(dāng)一個節(jié)點收到一幅幀時,接收器必須與發(fā)射器保持同步。郵箱初始化的步驟如下: (1)禁用郵箱 CANMDER=00000000000000000000b (2)設(shè)置改變數(shù)據(jù)請求 CANMCR=0000000100000000b(bit8CDR=1) (3)改變郵箱的標(biāo)識符、控制字和數(shù)據(jù)(只有發(fā)件箱才能改變數(shù)據(jù)) (4)反回正常模式 CANMCR=00000000000000000000b (5)啟用郵箱(ME=1) 初始化CAN模塊之后,再經(jīng)過正確的配置,就能夠收發(fā)數(shù)據(jù)信息了。 圖3和圖4分別是CAN模塊發(fā)射和接收信息流程圖。 通過以上介紹可以看出,TMS320F241是一種專用于電機(jī)控制且內(nèi)嵌CAN模塊的DSP芯片。用它可以方便地對混合動力汽車(HEV)的永磁無刷直流電機(jī)實現(xiàn)速度控制,同時利用其內(nèi)嵌的CAN模塊,可以通過CAN總線(協(xié)議規(guī)范CAN2.0)與混合動力汽車的整車控制單元(VCU)進(jìn)行通訊。因而非常適用于混合的動力汽車永磁無刷直流電機(jī)控制系統(tǒ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); })();