曾富豪 劉潤(rùn)琴 董婷
摘 要:文章基于英飛凌多核單片機(jī)的MultiCAN+模塊,闡述了相關(guān)寄存器的作用,設(shè)計(jì)了CAN通信的硬件電路,并對(duì)軟件設(shè)計(jì)的流程做了詳細(xì)的說(shuō)明。另外通過(guò)實(shí)驗(yàn)的方式驗(yàn)證了CAN通信硬件電路的可行性以及底層軟件代碼的正確性。
關(guān)鍵詞:英飛凌;MultiCan+;Hightec
中圖分類(lèi)號(hào):TN108.7 ?文獻(xiàn)標(biāo)識(shí)碼:A ?文章編號(hào):1671-7988(2019)12-49-03
Abstract: This article is based on the MultiCAN+ module of Infineon multi-core microcontroller, explain the related registers Functions, designed the hardware circuit of CAN communication, and detailed the process of software design. In addition, the feasibility of CAN communication hardware circuit and the correctness of the underlying software code are verified by experiments.
Keywords: Infineon; MultiCan+; Hightec
CLC NO.: TN108.7 ?Document Code: A ?Article ID: 1671-7988(2019)12-49-03
引言
英飛凌中的TC26x B-Step系列的單片機(jī)中的MultiCAN +模塊含有5個(gè)CAN節(jié)點(diǎn),使得CAN通信在汽車(chē)中的應(yīng)用穩(wěn)定,可靠,傳輸速度快,本為所使用的BMS是根據(jù)某汽車(chē)公司的設(shè)計(jì)要求,自主研發(fā)的一款BMS,并且已經(jīng)完成量產(chǎn),且已經(jīng)投入到該汽車(chē)公司中使用,以下重點(diǎn)介紹該BMS中CAN通信的部分。
1 CAN通信硬件電路設(shè)計(jì)
本文中使用的CAN總線(xiàn)收發(fā)器采用AMIS42665TJAA1 RG該收發(fā)器在信號(hào)輸入時(shí)具有較寬的共模電壓范圍,而且電磁敏感性等級(jí)高,另外輸出信號(hào)產(chǎn)生的電磁輻射低,該收發(fā)器是一種新型的收發(fā)器,該BMS的CAN通信硬件電路如圖所示:
2 CAN通信模塊軟件設(shè)計(jì)
2.1 CAN初始化
CAN 初始化包括三部分,模塊初始化,節(jié)點(diǎn)初始化以及報(bào)文初始化,在完成這三個(gè)部分的初始化之前得先定義相關(guān)的全局變量也就是相關(guān)的handle,在完成上述操作后配置模塊初始化的參數(shù),節(jié)點(diǎn)初始化的參數(shù)以及報(bào)文初始化的參數(shù),模塊初始化的配置主要有時(shí)鐘頻率的選擇等,節(jié)點(diǎn)初始化的配置主要包括節(jié)點(diǎn)的選擇,回環(huán)模式的選擇,相應(yīng)輸入輸出的引腳設(shè)置等,報(bào)文初始化的配置主要包括幀格式的選擇,消息體的ID設(shè)置以及數(shù)據(jù)發(fā)送長(zhǎng)度等,相應(yīng)的程序流程圖如圖所示:
2.2 CAN 底層接收
數(shù)據(jù)接收過(guò)程首先要判斷CAN節(jié)點(diǎn)寄存器接收標(biāo)志位是否置位,如果置位則從報(bào)文相關(guān)寄存器中取出報(bào)文的ID與數(shù)據(jù),其中數(shù)據(jù)高低字節(jié)分別放在CAN_MODATAL和CAN_MODATAH寄存器中,接收完成后將清除RXOK標(biāo)志位,報(bào)文對(duì)象接收流程圖如圖所示:
2.3 CAN底層發(fā)送
數(shù)據(jù)發(fā)送前,需要配置好報(bào)文的相關(guān)參數(shù),如報(bào)文由哪個(gè)節(jié)點(diǎn)發(fā)送,報(bào)文的id,報(bào)文的發(fā)送狀態(tài),其中報(bào)文的id存儲(chǔ)在報(bào)文對(duì)象n仲裁寄存器MOARn的ID位中,配置完成之后調(diào)用集成完成的發(fā)送報(bào)文函,該函數(shù)可以返回總線(xiàn)的狀態(tài),用以判斷總線(xiàn)是否處于空閑狀態(tài),如果總線(xiàn)處于空閑狀態(tài),則發(fā)送下一幀報(bào)文,直到將所有報(bào)文發(fā)送完畢,CAN節(jié)點(diǎn)將不再進(jìn)行發(fā)送報(bào)文,也就是表示所有報(bào)文發(fā)送完成。報(bào)文對(duì)象發(fā)送流程圖如圖所示:
3 CAN通信實(shí)驗(yàn)驗(yàn)證
下圖所示為電池包與主控板之間的連接示意圖,該電池包一共有25個(gè)模組,每個(gè)模組都含有4節(jié)單體電池,25個(gè)模組串聯(lián)而成,一共有100節(jié)單體電池。
3.1 BMS與整車(chē)控制器之間通信測(cè)試
通過(guò)CANtest軟件采集到的BMS與整車(chē)控制器之間通信的報(bào)文如圖所示:
1802d0f3是BMS與整車(chē)控制器之間的通信ID,表示的是該消息由整車(chē)控制器發(fā)送,由BMS接收,其中數(shù)據(jù)10 68 3A 69 14 38 0E B0代表著發(fā)送數(shù)據(jù)的Bit0-Bit7,報(bào)文解析根據(jù)如下公式而來(lái):物理值=總線(xiàn)值x比例因子+偏移量,舉例如下:數(shù)據(jù)字節(jié)10和68根據(jù)以上協(xié)議分別代表著電池組當(dāng)前最大允許充電電壓高字節(jié)和充電電壓低字節(jié),十六進(jìn)制數(shù)1068轉(zhuǎn)換為十進(jìn)制數(shù)為4200,再用4200x0.1=420,與上位機(jī)檢測(cè)到的數(shù)值420v一致,驗(yàn)證了BMS與整車(chē)控制器之間的通信正常,其余的報(bào)文解析與上述方法一樣。
3.2 BMS與非車(chē)載充電機(jī)之間的通信測(cè)試
BMS在充電開(kāi)始前,電池的狀態(tài)參數(shù)如下表1所示,充電電流為13.79A,充電過(guò)程使用的電池是三元鋰電池,工作電壓為3.5v-4.2v,充電時(shí)的參數(shù)如下表2所示,充電結(jié)束后的參數(shù)如下表3所示:
4 總結(jié)
本文以英飛凌單片機(jī)TC265為基礎(chǔ),重點(diǎn)研究了其中MULTICAN+模塊的應(yīng)用,設(shè)計(jì)了CAN通信的硬件電路,編寫(xiě)了CAN底層代碼,并在實(shí)驗(yàn)部分驗(yàn)證了BMS與整車(chē)控制器的通信,BMS與非車(chē)載充電機(jī)的通信,實(shí)驗(yàn)結(jié)果表明,根據(jù)整車(chē)廠(chǎng)的協(xié)議,CAN通信能夠很好的達(dá)到通信要求。
參考文獻(xiàn)
[1] 英飛凌單片機(jī)TC265手冊(cè).
[2] 周幸.電池管理系統(tǒng)中CAN通信技術(shù)的應(yīng)用研究[D].湖南大學(xué), 2017.
[3] 麻金龍.基于英飛凌XC2785的電動(dòng)汽車(chē)電池管理系統(tǒng)設(shè)計(jì)[D].天津大學(xué),2014.