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