新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于CAN總線的并聯(lián)液壓混合動(dòng)力車控制系統(tǒng)

基于CAN總線的并聯(lián)液壓混合動(dòng)力車控制系統(tǒng)

作者: 時(shí)間:2016-12-01 來源:網(wǎng)絡(luò) 收藏

節(jié)點(diǎn)報(bào)文接收器的接收濾波器由兩部分組成:接收碼寄存器(ACR)和接收屏蔽寄存器(AMR)。此兩個(gè)寄存器均為8位:驗(yàn)收碼位(AC.7~AC.0),驗(yàn)收屏蔽位(AM.7~AM.0)。當(dāng)信息幀的報(bào)文標(biāo)識(shí)符最高8位(ID.10~I(xiàn)D.3)滿足下列等式:

〔(ID.10~I(xiàn)D.3)=(AC.7~AC.0)〕或(AM.7~AM.0)=11111111B

則該信息幀將被報(bào)文接收器接收。

對(duì)于本系統(tǒng)的5個(gè)網(wǎng)絡(luò)節(jié)點(diǎn),定義各節(jié)點(diǎn)的驗(yàn)收碼和驗(yàn)收屏蔽碼如下:

1#:ACR=81H,AMR=BEH;

2#:ACR=82H,AMR=BDH;

3#:ACR=84H,AMR=BBH;

4#:ACR=88H,AMR=B7H;

主機(jī):ACR=A0H,AMR=9FH;

根據(jù)上述節(jié)點(diǎn)地址分配,各節(jié)點(diǎn)均可實(shí)現(xiàn)對(duì)其它任意節(jié)點(diǎn)組合的信息發(fā)送。如主機(jī)對(duì)1#、2#、3#節(jié)點(diǎn)同時(shí)發(fā)送信息,則主機(jī)發(fā)送信息幀的標(biāo)識(shí)符高8位可寫為:87H或07H。

可見對(duì)報(bào)文接收器而言,ID.10=0或1沒有區(qū)別。但根據(jù)CAN總線協(xié)議,顯性位“0”將比隱性位“1”具有更高的總線優(yōu)先權(quán)。定義ID.10=0的信息幀為“快速幀”,ID.10=1的信息幀為“普通幀”。

因此,上述地址分配方法具有以下優(yōu)點(diǎn):

(1)容易實(shí)現(xiàn)單點(diǎn)對(duì)其他點(diǎn)任意組合的信息發(fā)送;

(2)各節(jié)點(diǎn)具有不同的優(yōu)先級(jí),從1#到5#到主機(jī)優(yōu)先級(jí)依次降低,保證發(fā)往關(guān)鍵節(jié)點(diǎn)的信號(hào)不被阻塞;

(3)每個(gè)節(jié)點(diǎn)都有兩種地址編碼,且優(yōu)先級(jí)不同,保證關(guān)鍵指令首先被接收。

3.2通訊方式及信息幀分類

由于分布式控制通訊量較大,對(duì)信息進(jìn)行分類和規(guī)定相應(yīng)的協(xié)議將有利于軟件的標(biāo)準(zhǔn)化,提高編程效率和程序的可靠性。首先,依據(jù)CAN總線協(xié)議標(biāo)準(zhǔn),定義以C語言描述的CAN信息幀格式:

struct CAN_MSG

unsignedcharCAN_FLAG;

unsigned char CAN_DLC;

unsigned char CAN_DATA[8];

};

其中CAN_FLAG是信息目標(biāo)標(biāo)識(shí)符,CAN_DLC含遠(yuǎn)程幀信號(hào)位、幀定義描述和數(shù)據(jù)幀長(zhǎng)度信息,CAN_DATA為8字節(jié)數(shù)據(jù)。

依據(jù)信息的流向、總線優(yōu)先級(jí)和作用的不同,將通訊信息分為5類,其具體定義如下(按優(yōu)先級(jí)從低到高排列):

(1)遠(yuǎn)程幀:由主機(jī)以一定節(jié)拍發(fā)往各控制器,擊活相應(yīng)控制器的狀態(tài)幀發(fā)送。目的是使主機(jī)能在規(guī)定的時(shí)間內(nèi)獲得電動(dòng)車的狀態(tài)信息,同時(shí)減少因各控制器自動(dòng)發(fā)送狀態(tài)幀而引起總線阻塞。

格式:CAN_FLAG采用“普通幀”點(diǎn)對(duì)點(diǎn)編碼;CAN_DLC=0xF0;CAN_DATA為空。

(2)狀態(tài)幀:由控制器發(fā)往主機(jī)或其他控制器。狀態(tài)幀返回當(dāng)前命令執(zhí)行狀態(tài)和采集量信息,作為上層控制器執(zhí)行下一步規(guī)劃的標(biāo)志。

格式:CAN_FLAG采用“普通幀”點(diǎn)對(duì)點(diǎn)、點(diǎn)對(duì)多編碼;CAN_DLC=0xE8;CAN_DATA[0]為狀態(tài)或信息數(shù)據(jù)標(biāo)識(shí),確定后續(xù)數(shù)據(jù)的含義;CAN_DATA[1]~ CAN_DATA[7]為數(shù)據(jù)。

(3)間接命令幀:由主機(jī)發(fā)往控制器,或由某運(yùn)行復(fù)合動(dòng)作元的控制器發(fā)往其他控制器。間接命令幀含有復(fù)合動(dòng)作元或動(dòng)作元指令,接收方必須對(duì)命令進(jìn)行分解才能產(chǎn)生驅(qū)動(dòng)外設(shè)動(dòng)作的控制元指令。

格式:CAN_FLAG采用“普通幀”點(diǎn)對(duì)點(diǎn)、點(diǎn)對(duì)多編碼;CAN_DLC=0x60+DLC,DLC等于有效數(shù)據(jù)的字節(jié)數(shù);CAN_DATA[0]為狀態(tài)或信息數(shù)據(jù)標(biāo)識(shí),確定后續(xù)數(shù)據(jù)的含義;CAN_DATA含有具體指令信息。

(4)直接命令幀:發(fā)送方向同間接命令幀。但該命令幀所含命令將被接收方直接執(zhí)行,驅(qū)動(dòng)控制元?jiǎng)幼?,因此,?yīng)具有比間接命令幀更高的優(yōu)先級(jí)。

格式:CAN_FLAG采用“快速幀”點(diǎn)對(duì)點(diǎn)、點(diǎn)對(duì)多編碼;CAN_DLC=0x20+DLC,DLC等于有效數(shù)據(jù)的字節(jié)數(shù);CAN_DATA含有具體指令信息。

(5)緊急命令幀:從檢測(cè)到緊急狀態(tài)的控制發(fā)往其他相關(guān)控制器。此命令具有最高優(yōu)先級(jí),用以在檢測(cè)到緊急狀態(tài)時(shí),快速執(zhí)行相應(yīng)動(dòng)作、避免事故發(fā)生。該命令將被接收方直接運(yùn)行。

格式:CAN_FLAG采用“快速幀”點(diǎn)對(duì)點(diǎn)、點(diǎn)對(duì)多編碼;CAN_DLC=0x00+DLC,DLC等于有效數(shù)據(jù)的字節(jié)數(shù);CAN_DATA含有具體指令信息。

3.3 軟件設(shè)計(jì)

CAN總線為分布式控制提供了良好的硬件基礎(chǔ),使各節(jié)點(diǎn)的通訊不再是制約分布式控制實(shí)現(xiàn)的主要因素。整個(gè)系統(tǒng)從本質(zhì)上說已經(jīng)不存在主、從節(jié)點(diǎn)之分,整個(gè)系統(tǒng)的控制的控制已經(jīng)從傳統(tǒng)網(wǎng)絡(luò)中主節(jié)點(diǎn)的單一控制(這種體系結(jié)構(gòu)要求上位機(jī)具有大容量的程序存儲(chǔ)器和高運(yùn)算速度,必然造成上位機(jī)的大型化),轉(zhuǎn)化為各節(jié)點(diǎn)的協(xié)調(diào)控制,整加了系統(tǒng)控制的靈活性,也同時(shí)降低了對(duì)主節(jié)點(diǎn)的要求。

圖3 控制器1#,3#輸入輸出參數(shù)

如上圖3所示,車輛信息采集模塊采集車速、發(fā)動(dòng)機(jī)轉(zhuǎn)速、檔位信號(hào)(前進(jìn)、空檔、倒車)、油門踏板及剎車踏板的狀態(tài)及幅度。液壓系統(tǒng)測(cè)控模塊采集蓄能器的壓力,控制離合器的吸合與斷開,通過油路控制(4個(gè)開關(guān)量)實(shí)現(xiàn)油路分配控制,最后通過液壓泵/馬達(dá)控制實(shí)現(xiàn)液壓系統(tǒng)回收/釋放功能及強(qiáng)度。

各節(jié)點(diǎn)控制器均能獨(dú)立完成部分命令分解和調(diào)用底層指令的功能。這樣,對(duì)于某一動(dòng)作元而言,節(jié)點(diǎn)控制器將充當(dāng)“命令主機(jī)”。下面以“液壓系統(tǒng)運(yùn)行調(diào)節(jié)”這一復(fù)合動(dòng)作元執(zhí)行時(shí),1#,3#控制器流程圖(如圖4,圖5所示)為例,說明各控制器在分布式控制系統(tǒng)中的作用??梢钥闯?,在該指令執(zhí)行過程中,3#控制器充當(dāng)了1#控制器的“命令主機(jī)”。



評(píng)論


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

關(guān)閉