本發(fā)明涉及電動(dòng)汽車技術(shù)領(lǐng)域,特別涉及一種電動(dòng)汽車電池管理系統(tǒng)的自動(dòng)編址方法和系統(tǒng)。
背景技術(shù):
能源短缺、石油危機(jī)和環(huán)境污染愈演愈烈,給人們的生活帶來(lái)巨大影響,直接關(guān)系到國(guó)家經(jīng)濟(jì)和社會(huì)的可持續(xù)發(fā)展。世界各國(guó)都在積極開(kāi)發(fā)新能源技術(shù)。電動(dòng)汽車作為一種降低石油消耗、低污染、低噪聲的新能源汽車,被認(rèn)為是解決能源危機(jī)和環(huán)境惡化的重要途徑?;旌蟿?dòng)力汽車同時(shí)兼顧純電動(dòng)汽車和傳統(tǒng)內(nèi)燃機(jī)汽車的優(yōu)勢(shì),在滿足汽車動(dòng)力性要求和續(xù)駛里程要求的前提下,有效地提高了燃油經(jīng)濟(jì)性,降低了排放,被認(rèn)為是當(dāng)前節(jié)能和減排的有效路徑之一。
電池管理系統(tǒng)(Battery Management System,BMS)是電動(dòng)汽車的核心部件。BMS是連接車載動(dòng)力電池和電動(dòng)汽車的重要紐帶,其主要功能包括:電池物理參數(shù)實(shí)時(shí)監(jiān)測(cè);電池狀態(tài)估計(jì);在線診斷與預(yù)警;充放電與預(yù)充控制;均衡管理和熱管理等。對(duì)電池管理系統(tǒng)產(chǎn)品的測(cè)試是設(shè)計(jì)、生產(chǎn)階段需要開(kāi)展的重要工作。
BMS主要由三部分構(gòu)成:一個(gè)主控模塊、多個(gè)從控模塊和一個(gè)高壓模塊。目前針對(duì)從控模塊的編址工作主要是由人工完成。
然而,由于電池?cái)?shù)量眾多,物理分布較為復(fù)雜,對(duì)從控模塊進(jìn)行人工編址工作量大且容易出錯(cuò)。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明的目的是提供一種電動(dòng)汽車電池管理系統(tǒng)的自動(dòng)編址方法和系統(tǒng),從而降低工作量和出錯(cuò)概率。
本發(fā)明實(shí)施方式的技術(shù)方案包括:
一種電動(dòng)汽車電池管理系統(tǒng)的自動(dòng)編址方法,所述電動(dòng)汽車電池管理系統(tǒng)包括主控模塊和n個(gè)從控模塊,主控模塊的脈沖寬度調(diào)制信號(hào)線與n個(gè)從控模塊的脈沖寬度調(diào)制信號(hào)線共同構(gòu)成封閉的串聯(lián)回路;主控模塊和n個(gè)從控模塊還分別連接到控制器局域網(wǎng)總線,其中n為大于等于2的正整數(shù);該方法包括:
主控模塊向與其串聯(lián)的從控模塊發(fā)送占空比為預(yù)定值的脈沖寬度調(diào)制信號(hào),并通過(guò)控制器局域網(wǎng)總線發(fā)送包含唯一編碼地址的控制器局域網(wǎng)報(bào)文;
當(dāng)與主控模塊串聯(lián)的從控模塊判定接收到的脈沖寬度調(diào)制信號(hào)的占空比為預(yù)定值時(shí),從控制器局域網(wǎng)報(bào)文中獲取唯一編碼地址,基于獲取的唯一編碼地址設(shè)置自身的編碼地址,向主控模塊發(fā)送地址設(shè)置完畢消息以由主控模塊再發(fā)送包含另外的唯一編碼地址的控制器局域網(wǎng)報(bào)文,并向串聯(lián)回路中的下一個(gè)從控模塊發(fā)送占空比為預(yù)定值的脈沖寬度調(diào)制信號(hào);
剩余的(n-1)個(gè)從控模塊中的每一個(gè)從控模塊,依次分別基于主控模塊提供的控制器局域網(wǎng)報(bào)文和串聯(lián)回路中的上一個(gè)從控模塊發(fā)送的脈沖寬度調(diào)制信號(hào)設(shè)置自身的編碼地址,在設(shè)置完畢自身的編碼地址后向主控模塊發(fā)送地址設(shè)置完畢消息以由主控模塊再發(fā)送包含其他的唯一編碼地址的控制器局域網(wǎng)報(bào)文,并向串聯(lián)回路中的下一個(gè)從控模塊發(fā)送占空比為預(yù)定值的脈沖寬度調(diào)制信號(hào),直到全部n個(gè)從控模塊都已設(shè)置自身的編碼地址。
在一個(gè)實(shí)施方式中,該方法還包括:
每個(gè)從控模塊分別將自身的編碼地址通過(guò)控制器局域網(wǎng)總線上報(bào)到主控模塊;
當(dāng)主控模塊發(fā)現(xiàn)從控模塊上報(bào)的編碼地址出現(xiàn)缺失時(shí),重新向與其串聯(lián)的從控模塊發(fā)送占空比為預(yù)定值的脈沖寬度調(diào)制信號(hào),并重新通過(guò)控制器局域網(wǎng)總線發(fā)送包含唯一編碼地址的控制器局域網(wǎng)報(bào)文;
當(dāng)與主控模塊串聯(lián)的從控模塊判定接收到的脈沖寬度調(diào)制信號(hào)的占空比為預(yù)定值時(shí),重新從控制器局域網(wǎng)報(bào)文中獲取唯一編碼地址,重新基于獲取的唯一編碼地址設(shè)置自身的編碼地址,重新向主控模塊發(fā)送地址設(shè)置完畢消息以由主控模塊再發(fā)送包含另外的唯一編碼地址的控制器局域網(wǎng)報(bào)文,并重新向串聯(lián)回路中的下一個(gè)從控模塊發(fā)送占空比為預(yù)定值的脈沖寬度調(diào)制信號(hào);
剩余的(n-1)個(gè)從控模塊中的每一個(gè)從控模塊,依次分別重新基于主控模塊提供的控制器局域網(wǎng)報(bào)文和串聯(lián)回路中的上一個(gè)從控模塊發(fā)送的脈沖寬度調(diào)制信號(hào)設(shè)置自身的編碼地址,在設(shè)置完畢自身的編碼地址后重新向主控模塊發(fā)送地址設(shè)置完畢消息以由主控模塊再重新發(fā)送包含其他的唯一編碼地址的控制器局域網(wǎng)報(bào)文,并重新向串聯(lián)回路中的下一個(gè)從控模塊發(fā)送占空比為預(yù)定值的脈沖寬度調(diào)制信號(hào),直到全部n個(gè)從控模塊都已重新設(shè)置自身的編碼地址。
在一個(gè)實(shí)施方式中,該方法還包括:
每個(gè)從控模塊分別將自身的編碼地址通過(guò)控制器局域網(wǎng)總線上報(bào)到主控模塊;
當(dāng)主控模塊發(fā)現(xiàn)從控模塊上報(bào)的編碼地址出現(xiàn)重復(fù)時(shí),重新向與其串聯(lián)的從控模塊發(fā)送占空比為預(yù)定值的脈沖寬度調(diào)制信號(hào),并重新通過(guò)控制器局域網(wǎng)總線發(fā)送包含唯一編碼地址的控制器局域網(wǎng)報(bào)文;
當(dāng)與主控模塊串聯(lián)的從控模塊判定接收到的脈沖寬度調(diào)制信號(hào)的占空比為預(yù)定值時(shí),重新從控制器局域網(wǎng)報(bào)文中獲取唯一編碼地址,重新基于獲取的唯一編碼地址設(shè)置自身的編碼地址,重新向主控模塊發(fā)送地址設(shè)置完畢消息以由主控模塊再發(fā)送包含另外的唯一編碼地址的控制器局域網(wǎng)報(bào)文,并重新向串聯(lián)回路中的下一個(gè)從控模塊發(fā)送占空比為預(yù)定值的脈沖寬度調(diào)制信號(hào);
剩余的(n-1)個(gè)從控模塊中的每一個(gè)從控模塊,依次分別重新基于主控模塊提供的控制器局域網(wǎng)報(bào)文和串聯(lián)回路中的上一個(gè)從控模塊發(fā)送的脈沖寬度調(diào)制信號(hào)設(shè)置自身的編碼地址,在設(shè)置完畢自身的編碼地址后重新向主控模塊發(fā)送地址設(shè)置完畢消息以由主控模塊再重新發(fā)送包含其他的唯一編碼地址的控制器局域網(wǎng)報(bào)文,并重新向串聯(lián)回路中的下一個(gè)從控模塊發(fā)送占空比為預(yù)定值的脈沖寬度調(diào)制信號(hào),直到全部n個(gè)從控模塊都已重新設(shè)置自身的編碼地址。
在一個(gè)實(shí)施方式中,控制器局域網(wǎng)報(bào)文包含標(biāo)識(shí)符和用于承載編碼地址的數(shù)據(jù)域。
一種電動(dòng)汽車電池管理系統(tǒng)的自動(dòng)編址系統(tǒng),包括主控模塊和n個(gè)從控模塊,主控模塊的脈沖寬度調(diào)制信號(hào)線與n個(gè)從控模塊的脈沖寬度調(diào)制信號(hào)線共同構(gòu)成封閉的串聯(lián)回路;主控模塊和n個(gè)從控模塊還分別連接到控制器局域網(wǎng)總線,其中n為大于等于2的正整數(shù);
主控模塊,用于向與其串聯(lián)的從控模塊發(fā)送占空比為預(yù)定值的脈沖寬度調(diào)制信號(hào),并通過(guò)控制器局域網(wǎng)總線發(fā)送包含唯一編碼地址的控制器局域網(wǎng)報(bào)文;并用于在接收到地址設(shè)置完畢消息后通過(guò)控制器局域網(wǎng)總線發(fā)送包含另外的唯一編碼地址的控制器局域網(wǎng)報(bào)文;
與主控模塊串聯(lián)的從控模塊,用于當(dāng)判定接收到的脈沖寬度調(diào)制信號(hào)的占空比為預(yù)定值時(shí),從控制器局域網(wǎng)報(bào)文中獲取唯一編碼地址,基于獲取的唯一編碼地址設(shè)置自身的編碼地址,向主控模塊發(fā)送地址設(shè)置完畢消息,并向串聯(lián)回路中的下一個(gè)從控模塊發(fā)送占空比為預(yù)定值的脈沖寬度調(diào)制信號(hào);
剩余的(n-1)個(gè)從控模塊中的每一個(gè)從控模塊,用于依次分別基于主控模塊提供的控制器局域網(wǎng)報(bào)文和串聯(lián)回路中的上一個(gè)從控模塊發(fā)送的脈沖寬度調(diào)制信號(hào)設(shè)置自身的編碼地址,在設(shè)置完畢自身的編碼地址后向主控模塊發(fā)送地址設(shè)置完畢消息,并向串聯(lián)回路中的下一個(gè)從控模塊發(fā)送占空比為預(yù)定值的脈沖寬度調(diào)制信號(hào),直到全部n個(gè)從控模塊都已設(shè)置自身的編碼地址。
在一個(gè)實(shí)施方式中,每個(gè)從控模塊,還分別用于將自身的編碼地址通過(guò)控制器局域網(wǎng)總線上報(bào)到主控模塊;
主控模塊,還用于當(dāng)發(fā)現(xiàn)從控模塊上報(bào)的編碼地址出現(xiàn)缺失時(shí),重新向與其串聯(lián)的從控模塊發(fā)送占空比為預(yù)定值的脈沖寬度調(diào)制信號(hào),并重新通過(guò)控制器局域網(wǎng)總線發(fā)送包含唯一編碼地址的控制器局域網(wǎng)報(bào)文;
與主控模塊串聯(lián)的從控模塊,用于當(dāng)判定接收到的脈沖寬度調(diào)制信號(hào)的占空比為預(yù)定值時(shí),重新從控制器局域網(wǎng)報(bào)文中獲取唯一編碼地址,重新基于獲取的唯一編碼地址設(shè)置自身的編碼地址,重新向主控模塊發(fā)送地址設(shè)置完畢消息以由主控模塊再發(fā)送包含另外的唯一編碼地址的控制器局域網(wǎng)報(bào)文,并重新向串聯(lián)回路中的下一個(gè)從控模塊發(fā)送占空比為預(yù)定值的脈沖寬度調(diào)制信號(hào);
剩余的(n-1)個(gè)從控模塊中的每一個(gè)從控模塊,還用于依次分別重新基于主控模塊提供的控制器局域網(wǎng)報(bào)文和串聯(lián)回路中的上一個(gè)從控模塊發(fā)送的脈沖寬度調(diào)制信號(hào)設(shè)置自身的編碼地址,在設(shè)置完畢自身的編碼地址后重新向主控模塊發(fā)送地址設(shè)置完畢消息以由主控模塊再重新發(fā)送包含其他的唯一編碼地址的控制器局域網(wǎng)報(bào)文,并重新向串聯(lián)回路中的下一個(gè)從控模塊發(fā)送占空比為預(yù)定值的脈沖寬度調(diào)制信號(hào),直到全部n個(gè)從控模塊都已重新設(shè)置自身的編碼地址。
在一個(gè)實(shí)施方式中,每個(gè)從控模塊,還用于分別將自身的編碼地址通過(guò)控制器局域網(wǎng)總線上報(bào)到主控模塊;
主控模塊,還用于當(dāng)發(fā)現(xiàn)從控模塊上報(bào)的編碼地址出現(xiàn)重復(fù)時(shí),重新向與其串聯(lián)的從控模塊發(fā)送占空比為預(yù)定值的脈沖寬度調(diào)制信號(hào),并重新通過(guò)控制器局域網(wǎng)總線發(fā)送包含唯一編碼地址的控制器局域網(wǎng)報(bào)文;
與主控模塊串聯(lián)的從控模塊,還用于當(dāng)判定接收到的脈沖寬度調(diào)制信號(hào)的占空比為預(yù)定值時(shí),重新從控制器局域網(wǎng)報(bào)文中獲取唯一編碼地址,重新基于獲取的唯一編碼地址設(shè)置自身的編碼地址,重新向主控模塊發(fā)送地址設(shè)置完畢消息以由主控模塊再發(fā)送包含另外的唯一編碼地址的控制器局域網(wǎng)報(bào)文,并重新向串聯(lián)回路中的下一個(gè)從控模塊發(fā)送占空比為預(yù)定值的脈沖寬度調(diào)制信號(hào);
剩余的(n-1)個(gè)從控模塊中的每一個(gè)從控模塊,還用于依次分別重新基于主控模塊提供的控制器局域網(wǎng)報(bào)文和串聯(lián)回路中的上一個(gè)從控模塊發(fā)送的脈沖寬度調(diào)制信號(hào)設(shè)置自身的編碼地址,在設(shè)置完畢自身的編碼地址后重新向主控模塊發(fā)送地址設(shè)置完畢消息以由主控模塊再重新發(fā)送包含其他的唯一編碼地址的控制器局域網(wǎng)報(bào)文,并重新向串聯(lián)回路中的下一個(gè)從控模塊發(fā)送占空比為預(yù)定值的脈沖寬度調(diào)制信號(hào),直到全部n個(gè)從控模塊都已重新設(shè)置自身的編碼地址。
在一個(gè)實(shí)施方式中,控制器局域網(wǎng)報(bào)文包含標(biāo)識(shí)符和用于承載編碼地址的數(shù)據(jù)域。
從上述技術(shù)方案可以看出,主控模塊向與其串聯(lián)的從控模塊發(fā)送占空比為預(yù)定值的脈沖寬度調(diào)制信號(hào),并通過(guò)控制器局域網(wǎng)總線發(fā)送包含唯一編碼地址的控制器局域網(wǎng)報(bào)文;當(dāng)與主控模塊串聯(lián)的從控模塊判定接收到的脈沖寬度調(diào)制信號(hào)的占空比為預(yù)定值時(shí),從控制器局域網(wǎng)報(bào)文中獲取唯一編碼地址,基于獲取的唯一編碼地址設(shè)置自身的編碼地址,向主控模塊發(fā)送地址設(shè)置完畢消息以由主控模塊再發(fā)送包含另外的唯一編碼地址的控制器局域網(wǎng)報(bào)文,并向串聯(lián)回路中的下一個(gè)從控模塊發(fā)送占空比為預(yù)定值的脈沖寬度調(diào)制信號(hào);剩余的(n-1)個(gè)從控模塊中的每一個(gè)從控模塊,依次分別基于主控模塊提供的控制器局域網(wǎng)報(bào)文和串聯(lián)回路中的上一個(gè)從控模塊發(fā)送的脈沖寬度調(diào)制信號(hào)設(shè)置自身的編碼地址,在設(shè)置完畢自身的編碼地址后向主控模塊發(fā)送地址設(shè)置完畢消息以由主控模塊再發(fā)送包含其他的唯一編碼地址的控制器局域網(wǎng)報(bào)文,并向串聯(lián)回路中的下一個(gè)從控模塊發(fā)送占空比為預(yù)定值的脈沖寬度調(diào)制信號(hào),直到全部n個(gè)從控模塊都已設(shè)置自身的編碼地址。因此,本發(fā)明實(shí)施方式采用固定占空比的脈沖寬度調(diào)制信號(hào)增量式編址,從控模塊不需要調(diào)整脈沖寬度調(diào)制占空比,軟硬件結(jié)構(gòu)簡(jiǎn)單,降低工作量和出錯(cuò)概率、
而且,本發(fā)明實(shí)施方式使用控制器局域網(wǎng)通信進(jìn)行地址校驗(yàn),發(fā)現(xiàn)編址重復(fù)、缺失或新增從控模塊時(shí),可以快速重新進(jìn)行自動(dòng)編址。
附圖說(shuō)明
以下附圖僅對(duì)本發(fā)明做示意性說(shuō)明和解釋,并不限定本發(fā)明的范圍。
圖1為本發(fā)明電動(dòng)汽車電池管理系統(tǒng)的自動(dòng)編址方法流程圖。
圖2為本發(fā)明電動(dòng)汽車電池的從控模塊自動(dòng)編址系統(tǒng)的示范性結(jié)構(gòu)圖。
圖3為本發(fā)明電動(dòng)CAN報(bào)文的標(biāo)準(zhǔn)幀與擴(kuò)展幀的示范性結(jié)構(gòu)圖。
具體實(shí)施方式
為了對(duì)發(fā)明的技術(shù)特征、目的和效果有更加清楚的理解,現(xiàn)對(duì)照附圖說(shuō)明本發(fā)明的具體實(shí)施方式,在各圖中相同的標(biāo)號(hào)表示相同的部分。
在本文中,“示意性”表示“充當(dāng)實(shí)例、例子或說(shuō)明”,不應(yīng)將在本文中被描述為“示意性”的任何圖示、實(shí)施方式解釋為一種更優(yōu)選的或更具優(yōu)點(diǎn)的技術(shù)方案。
為使圖面簡(jiǎn)潔,各圖中的只示意性地表示出了與本發(fā)明相關(guān)部分,而并不代表其作為產(chǎn)品的實(shí)際結(jié)構(gòu)。另外,以使圖面簡(jiǎn)潔便于理解,在有些圖中具有相同結(jié)構(gòu)或功能的部件,僅示意性地繪示了其中的一個(gè),或僅標(biāo)出了其中的一個(gè)。
電動(dòng)汽車電池管理系統(tǒng)通常包括主控模塊、從控模塊與高壓模塊。高壓模塊一般為一個(gè),通常用于采集整個(gè)電池包的總電壓、預(yù)充電壓、總電流和絕緣電阻值。從控模塊一般為多個(gè)(至少兩個(gè)),分別用于采集相應(yīng)電池模塊的電池參數(shù)。電池參數(shù)包括:電池模塊內(nèi)單體串?dāng)?shù);電池模塊內(nèi)單體并數(shù);電池模塊內(nèi)溫度采樣點(diǎn)個(gè)數(shù);電池類型;電池模塊總電壓;從控模塊內(nèi)部溫度;所有單體電池電壓信息;所有溫度采集點(diǎn)溫度信息;最高單體電池電壓值;最高溫度值;最高單體電池電壓值對(duì)應(yīng)的單體電池序號(hào);最高溫度值對(duì)應(yīng)的溫度采集點(diǎn)序號(hào);最低單體電池電壓值;最低溫度值;最低單體電池電壓值對(duì)應(yīng)的單體電池序號(hào);最低溫度值對(duì)應(yīng)的溫度采集點(diǎn)序號(hào);軟件版本號(hào);硬件版本號(hào);單體電池電壓合格范圍;溫度合格范圍;單體電池電壓檢測(cè)結(jié)果顯示燈狀態(tài);溫度檢測(cè)結(jié)果顯示燈狀態(tài),等等。
主控模塊一般為一個(gè),用于從高壓模塊和從控模塊收集數(shù)據(jù),并執(zhí)行生成電池控制命令等處理。
脈沖寬度調(diào)制(PWM)是汽車電子廣泛應(yīng)用的控制方式,電動(dòng)汽車也不例外。本發(fā)明實(shí)施方式利用PWM方式為從控模塊執(zhí)行增量式自動(dòng)編址,而且利用控制器局域網(wǎng)(CAN)通信方式進(jìn)行地址校驗(yàn),不需要人工操作,顯著提高了電池管理系統(tǒng)生產(chǎn)和使用效率。
圖1為本發(fā)明電動(dòng)汽車電池管理系統(tǒng)的自動(dòng)編址方法流程圖。
在本發(fā)明實(shí)施方式中,電動(dòng)汽車電池管理系統(tǒng)包括主控模塊和n個(gè)從控模塊,主控模塊的PWM信號(hào)線與n個(gè)從控模塊的PWM信號(hào)線共同構(gòu)成封閉的串聯(lián)回路;主控模塊和n個(gè)從控模塊還分別連接到CAN總線上,其中n為大于等于2的正整數(shù)。
如圖1所示,該方法包括:
步驟101:主控模塊向與其串聯(lián)的從控模塊發(fā)送占空比為預(yù)定值的PWM信號(hào),并通過(guò)CAN總線發(fā)送包含唯一編碼地址的CAN報(bào)文。
步驟102:當(dāng)與主控模塊串聯(lián)的從控模塊判定接收到的PWM信號(hào)的占空比為預(yù)定值時(shí),從CAN報(bào)文中獲取唯一編碼地址,基于獲取的唯一編碼地址設(shè)置自身的編碼地址,向主控模塊發(fā)送地址設(shè)置完畢消息以由主控模塊再發(fā)送包含另外的唯一編碼地址的控制器局域網(wǎng)報(bào)文,并向串聯(lián)回路中的下一個(gè)從控模塊發(fā)送占空比為預(yù)定值的PWM信號(hào)。
步驟103:剩余的(n-1)個(gè)從控模塊中的每一個(gè)從控模塊,依次分別基于主控模塊提供的CAN報(bào)文和串聯(lián)回路中的上一個(gè)從控模塊發(fā)送的PWM信號(hào)設(shè)置自身的編碼地址,在設(shè)置完畢自身的編碼地址后向主控模塊發(fā)送地址設(shè)置完畢消息以由主控模塊再發(fā)送包含其他的唯一編碼地址的CAN報(bào)文,并向串聯(lián)回路中的下一個(gè)從控模塊發(fā)送占空比為預(yù)定值的PWM信號(hào),直到全部n個(gè)從控模塊都已設(shè)置自身的編碼地址。
可見(jiàn),所有接入電池管理系統(tǒng)網(wǎng)絡(luò)的從控模塊PWM信號(hào)線接線方式為串聯(lián),而且初始PWM信號(hào)由主控模塊發(fā)出,最終回到主控模塊構(gòu)成串聯(lián)回路。比如,主控模塊發(fā)送初始占空比的PWM信號(hào),主控模塊通過(guò)CAN總線發(fā)送編址指令1,從控模塊1接收初始占空比的PWM信號(hào)后按照編址指令1進(jìn)行自身地址設(shè)定,然后將PWM信號(hào)輸出給下一個(gè)從控模塊(即從控模塊2),主控模塊停止發(fā)送初始占空比的PWM信號(hào),同時(shí)主控模塊變更編址指令為編址指令2;從控模塊2接收初始占空比的PWM信號(hào)波后按照編址指令2進(jìn)行自身地址設(shè)定,然后將PWM信號(hào)輸出給下一個(gè)從控模塊(即從控模塊3),從控模塊2停止發(fā)送初始占空比的PWM信號(hào),同時(shí)主控模塊變更編址指令為3,以此類推,當(dāng)最后一個(gè)從控模塊完成地址設(shè)定后,全部編址操作完成,該模塊輸出初始占空比的PWM信號(hào)給主控模塊。主控模塊接收到該信號(hào)后,判斷編制指令是否為n+1,如果是,則n個(gè)從控模塊編址成功;如果不是,則編址失敗,需要重新編址。
而且,本發(fā)明實(shí)施方式使用CAN通信進(jìn)行地址校驗(yàn),發(fā)現(xiàn)編址重復(fù)、缺失或新增從控模塊時(shí),可以快速重新進(jìn)行自動(dòng)編址。
另外,本發(fā)明實(shí)施方式不增加硬件成本,操作簡(jiǎn)單方便。
在一個(gè)實(shí)施方式中,該方法還包括:
每個(gè)從控模塊分別將自身的編碼地址通過(guò)CAN總線上報(bào)到主控模塊;
當(dāng)主控模塊發(fā)現(xiàn)從控模塊上報(bào)的編碼地址出現(xiàn)缺失時(shí),重新向與其串聯(lián)的從控模塊發(fā)送占空比為預(yù)定值的PWM信號(hào),并重新通過(guò)CAN總線發(fā)送包含唯一編碼地址的CAN報(bào)文;當(dāng)與主控模塊串聯(lián)的從控模塊判定接收到的PWM信號(hào)的占空比為預(yù)定值時(shí),重新從CAN報(bào)文中獲取唯一編碼地址,重新基于獲取的唯一編碼地址設(shè)置自身的編碼地址,重新向主控模塊發(fā)送地址設(shè)置完畢消息以由主控模塊再發(fā)送包含另外的唯一編碼地址的CAN報(bào)文,并重新向串聯(lián)回路中的下一個(gè)從控模塊發(fā)送占空比為預(yù)定值的PWM信號(hào);
剩余的(n-1)個(gè)從控模塊中的每一個(gè)從控模塊,依次分別重新基于主控模塊提供的CAN報(bào)文和串聯(lián)回路中的上一個(gè)從控模塊發(fā)送的PWM信號(hào)設(shè)置自身的編碼地址,在設(shè)置完畢自身的編碼地址后重新向主控模塊發(fā)送地址設(shè)置完畢消息以由主控模塊再重新發(fā)送包含其他的唯一編碼地址的CAN報(bào)文,并重新向串聯(lián)回路中的下一個(gè)從控模塊發(fā)送占空比為預(yù)定值的PWM信號(hào),直到全部n個(gè)從控模塊都已重新設(shè)置自身的編碼地址。
在一個(gè)實(shí)施方式中,該方法還包括:
每個(gè)從控模塊分別將自身的編碼地址通過(guò)CAN總線上報(bào)到主控模塊;
當(dāng)主控模塊發(fā)現(xiàn)從控模塊上報(bào)的編碼地址出現(xiàn)重復(fù)時(shí),重新向與其串聯(lián)的從控模塊發(fā)送占空比為預(yù)定值的PWM信號(hào),并重新通過(guò)CAN總線發(fā)送包含唯一編碼地址的CAN報(bào)文;
當(dāng)與主控模塊串聯(lián)的從控模塊判定接收到的PWM信號(hào)的占空比為預(yù)定值時(shí),重新從CAN報(bào)文中獲取唯一編碼地址,重新基于獲取的唯一編碼地址設(shè)置自身的編碼地址,重新向主控模塊發(fā)送地址設(shè)置完畢消息以由主控模塊再發(fā)送包含另外的唯一編碼地址的CAN報(bào)文,并重新向串聯(lián)回路中的下一個(gè)從控模塊發(fā)送占空比為預(yù)定值的PWM信號(hào);
剩余的(n-1)個(gè)從控模塊中的每一個(gè)從控模塊,依次分別重新基于主控模塊提供的CAN報(bào)文和串聯(lián)回路中的上一個(gè)從控模塊發(fā)送的PWM信號(hào)設(shè)置自身的編碼地址,在設(shè)置完畢自身的編碼地址后重新向主控模塊發(fā)送地址設(shè)置完畢消息以由主控模塊再重新發(fā)送包含其他的唯一編碼地址的CAN報(bào)文,并重新向串聯(lián)回路中的下一個(gè)從控模塊發(fā)送占空比為預(yù)定值的PWM信號(hào),直到全部n個(gè)從控模塊都已重新設(shè)置自身的編碼地址。
在一個(gè)實(shí)施方式中,CAN報(bào)文包含標(biāo)識(shí)符和用于承載編碼地址的數(shù)據(jù)域。
圖2為本發(fā)明電動(dòng)汽車電池的從控模塊自動(dòng)編址系統(tǒng)的示范性結(jié)構(gòu)圖。
如圖2所示,該系統(tǒng)包括主控模塊和n個(gè)從控模塊,主控模塊的PWM信號(hào)線與n個(gè)從控模塊的PWM信號(hào)線共同構(gòu)成封閉的串聯(lián)回路;主控模塊和n個(gè)從控模塊還分別連接到CAN總線上,其中n為大于等于2的正整數(shù)。
具體地,主控模塊的PWM信號(hào)輸出端連接到從控模塊1的PWM信號(hào)輸入端,主控模塊的PWM信號(hào)輸入端連接到從控模塊n的PWM信號(hào)輸出端;從控模塊1的PWM信號(hào)輸出端連接到從控模塊2的PWM信號(hào)輸入端;從控模塊2的PWM信號(hào)輸出端連接到從控模塊3的PWM信號(hào)輸入端;從控模塊3的PWM信號(hào)輸出端連接到從控模塊4的PWM信號(hào)輸入端;以此類推,直到從控模塊(n-1)的PWM信號(hào)輸出端連接到從控模塊n的PWM信號(hào)輸入端,而且從控模塊n的PWM信號(hào)輸出端連接到主控模塊的PWM信號(hào)輸入端。因此,主控模塊與n個(gè)從控模塊共同構(gòu)成PWM信號(hào)的串聯(lián)回路。也就是,主控模塊串聯(lián)從控模塊1;從控模塊1串聯(lián)從控模塊2;從控模塊2串聯(lián)從控模塊3…從控模塊n串聯(lián)主控模塊。
另外,主控模塊和n個(gè)從控模塊還分別連接到CAN總線上。
假定主控模塊與n個(gè)從控模塊中都預(yù)存初始占空比的預(yù)定值為50%,并約定編址指令獲取地址為0x200。
主控模塊向其串聯(lián)的從控模塊1發(fā)送初始占空比為50%的PWM信號(hào)波,并通過(guò)CAN總線發(fā)送編址指令1(地址為0x200),該編址指令1的數(shù)據(jù)域的第一個(gè)字節(jié)為1。
從控模塊1接收PWM信號(hào)波后進(jìn)行占空比校驗(yàn)。當(dāng)從控模塊1確認(rèn)占空比為50%后,分析收到的編址指令1(0x200),發(fā)現(xiàn)該指令數(shù)據(jù)域的第一個(gè)字節(jié)為1,則將自身地址設(shè)定為1,通過(guò)CAN總線向主控模塊發(fā)送地址設(shè)置完畢消息,生成占空比為50%的PWM信號(hào)并輸出給從控模塊2。
此時(shí),從控模塊1編址成功,主控模塊收到地址設(shè)置完畢消息后,停止向從控模塊1發(fā)送PWM信號(hào),并通過(guò)CAN總線發(fā)送編址指令2(地址為0x200),該編址指令2的數(shù)據(jù)域的第一個(gè)字節(jié)為2。
從控模塊2接收到從控模塊1發(fā)送的PWM信號(hào)后進(jìn)行占空比校驗(yàn)。當(dāng)從控模塊2確認(rèn)占空比為50%后,分析收到的編址指令2(0x200),發(fā)現(xiàn)該指令數(shù)據(jù)域的第一個(gè)字節(jié)為2,則將自身地址設(shè)定為2,通過(guò)CAN總線向主控模塊發(fā)送地址設(shè)置完畢消息,生成占空比為50%的PWM信號(hào)并輸出給從控模塊3。
此時(shí),從控模塊2編址成功,主控模塊收到地址設(shè)置完畢消息后,通過(guò)CAN總線發(fā)送編址指令3(地址為0x200),該編址指令3的數(shù)據(jù)域的第一個(gè)字節(jié)為3。
從控模塊3接收到從控模塊2發(fā)送的PWM信號(hào)后進(jìn)行占空比校驗(yàn)。當(dāng)從控模塊3確認(rèn)占空比為50%后,分析收到的編址指令3(0x200),發(fā)現(xiàn)該指令數(shù)據(jù)域的第一個(gè)字節(jié)為3,則將自身地址設(shè)定為3,通過(guò)CAN總線向主控模塊發(fā)送地址設(shè)置完畢消息,生成占空比為50%的PWM信號(hào)并輸出給從控模塊4。
以此類推,最后一個(gè)(即,第n個(gè))從控模塊完成地址設(shè)定后,全部編址操作完成,該模塊輸出50%占空比PWM信號(hào)到主控模塊。如果主控模塊收到該信號(hào),判斷當(dāng)前編址指令第一個(gè)字節(jié)數(shù)值是否為(n+1),如果是,則n個(gè)從控模塊編址成功;如果不是,則編址失敗,需要重新編址。
而且,本發(fā)明實(shí)施方式可以使用CAN通信進(jìn)行地址校驗(yàn)。當(dāng)發(fā)現(xiàn)編址重復(fù)或者缺失時(shí),可以重新編址。
例如,n為12。在從控模塊1-12中,出現(xiàn)兩個(gè)模塊地址為2,或者缺少地址為2的從控模塊,則主控模塊重新發(fā)送50%占空比的初始PWM信號(hào)以及編址指令1進(jìn)行編址并重復(fù)上述流程,從而全部12個(gè)從控模塊實(shí)現(xiàn)重新編碼。
另外,本發(fā)明還可以為故障后更換的從控模塊實(shí)現(xiàn)自動(dòng)編址。舉例說(shuō)明:比如地址為5的從控模塊故障,更換為新的從控模塊后,電池管理系統(tǒng)主控模塊發(fā)現(xiàn)地址5缺失,則重新發(fā)送50%占空比的初始PWM信號(hào)以及編址指令1進(jìn)行編址并重復(fù)上述流程,從而全部12個(gè)從控模塊實(shí)現(xiàn)重新編碼。
圖3為本發(fā)明電動(dòng)CAN報(bào)文的標(biāo)準(zhǔn)幀與擴(kuò)展幀的示范性結(jié)構(gòu)圖。如圖3所示,可以在CAN報(bào)文的標(biāo)準(zhǔn)幀與擴(kuò)展幀的數(shù)據(jù)域中攜帶編碼地址,而且標(biāo)識(shí)符中可以設(shè)定用于區(qū)分指令的標(biāo)識(shí)符號(hào)。
綜上所述,主控模塊向與其串聯(lián)的從控模塊發(fā)送占空比為預(yù)定值的脈沖寬度調(diào)制信號(hào),并通過(guò)控制器局域網(wǎng)總線發(fā)送包含唯一編碼地址的控制器局域網(wǎng)報(bào)文;當(dāng)與主控模塊串聯(lián)的從控模塊判定接收到的脈沖寬度調(diào)制信號(hào)的占空比為預(yù)定值時(shí),從控制器局域網(wǎng)報(bào)文中獲取唯一編碼地址,基于獲取的唯一編碼地址設(shè)置自身的編碼地址,向主控模塊發(fā)送地址設(shè)置完畢消息以由主控模塊再發(fā)送包含另外的唯一編碼地址的控制器局域網(wǎng)報(bào)文,并向串聯(lián)回路中的下一個(gè)從控模塊發(fā)送占空比為預(yù)定值的脈沖寬度調(diào)制信號(hào);剩余的(n-1)個(gè)從控模塊中的每一個(gè)從控模塊,依次分別基于主控模塊提供的控制器局域網(wǎng)報(bào)文和串聯(lián)回路中的上一個(gè)從控模塊發(fā)送的脈沖寬度調(diào)制信號(hào)設(shè)置自身的編碼地址,在設(shè)置完畢自身的編碼地址后向主控模塊發(fā)送地址設(shè)置完畢消息以由主控模塊再發(fā)送包含其他的唯一編碼地址的控制器局域網(wǎng)報(bào)文,并向串聯(lián)回路中的下一個(gè)從控模塊發(fā)送占空比為預(yù)定值的脈沖寬度調(diào)制信號(hào),直到全部n個(gè)從控模塊都已設(shè)置自身的編碼地址。因此,本發(fā)明實(shí)施方式采用固定占空比的脈沖寬度調(diào)制信號(hào)增量式編址,從控模塊不需要調(diào)整脈沖寬度調(diào)制占空比,軟硬件結(jié)構(gòu)簡(jiǎn)單,降低工作量和出錯(cuò)概率、
而且,本發(fā)明實(shí)施方式使用控制器局域網(wǎng)通信進(jìn)行地址校驗(yàn),發(fā)現(xiàn)編址重復(fù)、缺失或新增從控模塊時(shí),可以快速重新進(jìn)行自動(dòng)編址。
在本文中,“一個(gè)”并不表示將本發(fā)明相關(guān)部分的數(shù)量限制為“僅此一個(gè)”,并且“一個(gè)”不表示排除本發(fā)明相關(guān)部分的數(shù)量“多于一個(gè)”的情形。
在本文中,“上”、“下”、“前”、“后”、“左”、“右”、“內(nèi)”、“外”等僅用于表示相關(guān)部分之間的相對(duì)位置關(guān)系,而非限定這些相關(guān)部分的絕對(duì)位置。
上文所列出的一系列的詳細(xì)說(shuō)明僅僅是針對(duì)本發(fā)明的可行性實(shí)施方式的具體說(shuō)明,而并非用以限制本發(fā)明的保護(hù)范圍,凡未脫離本發(fā)明技藝精神所作的等效實(shí)施方案或變更,如特征的組合、分割或重復(fù),均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。