《電子技術應用》
您所在的位置:首頁 > 電源技術 > 設計應用 > 基于CPLD的電池管理系統雙CAN控制器的設計
基于CPLD的電池管理系統雙CAN控制器的設計
來自互聯網
摘要: 本文針對整車對電池管理系統提出雙CAN通信的要求,設計了由CPLD、TMS320LF2407與SJA1000構成的雙CAN控制器,給出了其硬件設計和軟件流程。
Abstract:
Key words :

   電池管理系統是混合動力汽車中重要的電子控制單元,具有保障電池正常、可靠和高效工作的作用,是電池與用電設備之間的橋梁。在研制以及批量生產過程中都需要對其內部控制參數進行離線或在線匹配標定,而電池管理系統需要采集和處理大量的數據,本文選用TMS320LF2407作為標定用CAN控制器。作為電動汽車上的一個CAN節點,需要接收整車發來的CAN消息來執行對外部繼電器、風扇以及電池等器件的控制命令,本文選用SJA1000

雙CAN硬件電路和CPLD邏輯設計

雙CAN硬件電路設計

     TMS320LF2407基于增強的哈佛結構,是地址線和數據線分離的微處理器,對晶振倍頻后,頻率高達40MHz。而SJA1000的地址線和數據線復用,增加了DSP與SJA1000之間讀寫數據的難度,這也是本系統設計的難點。常規的設計方式是在DSP與SJA1000之間加一個電平轉換雙向緩沖驅動,其結構框圖如圖1所示。按這種方式設計的電路,當對SJA1000進行讀寫操作時,先配置DSP的I/O端口,將ALE拉高,鎖存地址,然后通過DSP的I/O端口將和()拉低,進行讀(寫)數據,最后拉高()和。按此方式每次讀寫SJA1000寄存器中的值,均需通過程序對ALE、和() 信號進行設置, 增加了程序源代碼。如果控制器的閃存空間比較緊張,采取這種硬件連接方式顯然是不可取的。而且,為使狀態寄存器的狀態位讀寫正確,CAN報文讀寫時需在程序中加一定延時,這將影響電池管理系統的實時性。

 

  圖1 一般雙CAN控制器的硬件結構圖

    為了盡量減少程序源代碼,節省寶貴的存儲資源并提高電池管理系統的實時性,本文采用CPLD連接雙CAN控制器的接口電路,實現CAN報文收發。其硬件結構如圖2所示。

 

 

 圖2 基于CPLD的雙CAN控制器硬件結構圖

CPLD的邏輯設計

    CPLD具有速度快、體積小、驅動能力強、可在線編程等優點。基于CPLD的邏輯控制電路適合完成譯碼任務,本文選用EPM7064芯片,通過譯碼電路的軟件設計,完成SJA1000輸入信號的邏輯選通控制。

    CPLD的輸入信號是DSP發送的信號,由高位地址A[15…13]、I/O空間選通引腳以及寫/讀信號組成。其中,地址線A13作為 SJA1000的地址和數據的選擇線,地址線A14和A15經譯碼后作為片選信號。地址線A13和I/O空間選通信號產生SJA1000的地址鎖存信號 SJA_ALE,地址線A13和讀寫信號產生SJA1000的數據和地址讀寫信號。其CPLD的輸入/輸出信號邏輯關系如表1所示。 

雙CAN軟件程序設計

 該CAN控制器的收發程序包括兩部分:DSP的CAN收發程序和SJA1000的CAN收發程序。每個CAN收發程序主要由三個函數組成: CAN初始化程序、CAN報文接收程序和CAN報文發送程序。由于DSP的CAN收發程序比較容易設計,只需設置CAN控制器寄存器中的相應位,就可實現 CAN報文的收發。所以,本文主要介紹SJA1000的CAN報文收發程序設計。

從表1中可以看到,SJA1000的寄存器映射到DSP的I/O空間。本文選擇0x8000作為SJA1000地址輸入端口,0xA000作為 SJA1000數據輸入/輸出端口。其程序主要由SJA1000初始化、SJA1000接收報文和SJA1000發送報文三個子函數組成。其收發函數的流程如圖3所示。

 

 

 圖3 SJA1000發送報文程序流程圖

 SJA1000初始化

   通過向CAN控制器SJA1000模式寄存器寫0x01,讓其進入復位模式,然后分別對SJA1000的時鐘分頻寄存器、錯誤報警限額寄存器、中斷使能寄存器、接收代碼和接收屏蔽寄存器、總線時序寄存器和輸出控制寄存器設置,最后向模式寄存器寫0x08,進入正常工作模式。初始化程序如下:

 #define SJA1000_Data_Port portA000

 ioport unsigned int portA000; //定義數據輸入/輸出端口

 #define SJA1000_Address_Port port8000

 ioport unsigned int port8000; //定義地址輸入端口

 ……

 SJA1000_WRITE(REG_MODE, 0x01);

 TempData= SJA1000_READ(REG_MODE);

 //向模式寄存器寫0x01,進入復位模式

 while((TempData & 0x01) != 0x01); //等待SJA1000復位

 ……

do

 {

 SJA1000_WRITE(REG_MODE, 0x08);

 TempData= SJA1000_READ(REG_MODE);

 }while ((TempData & 0x01)!=0x00); //等待SJA1000進入正常工作模式

 發送CAN報文

    CAN報文發送函數負責電池管理系統向整車控制器發送報文,發送時需將待發送的數據按CAN協議格式組合成一幀報文,送入SJA1000發送緩沖區中,然后啟動發送命令。CAN發送程序如下:

 if((TempData & 0x10) != 0x10) //CAN控制器空閑

 {

 if((TempData & 0x08) != 0x0) //最近一次發送已成功

 {

 if((TempData & 0x04) == 0x04)

 //CPU可以向發送緩沖器寫報文

 {

 …… //配置發送報文

 SJA1000_WRITE(REG_ COMMAND,0x01);//發送報文指令

 }

 }

}

 接收CAN報文

   CAN報文接收函數主要負責接收整車控制器發送的控制指令,來完成對充放電繼電器、風扇以及電池等器件的控制。CAN接收程序如下:

 if(TempData != 0)

 {

 if((TempData & 0x80) == 0x80) //總線關閉

 {

 …… //總線關閉處理

 }

 if((TempData & 0x02) == 0x02) //數據溢出

 {

 …… //數據溢出處理

}

 if((TempData & 0x01) == 0x01) //RXFIFO存在完整有效的報文

 {

 …… //讀取緩沖區報文

 }

 }

 結語

  本文設計的基于CPLD的雙CAN控制器已運用于實際應用中,電池管理系統運行可靠,CAN報文收發平穩,完全適合混合動力汽車的使用。

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
99视频精品| 欧美 日韩 国产 一区| 亚洲大片av| 欧美一二区视频| 亚洲天堂第二页| 亚洲欧洲日本一区二区三区| 曰韩精品一区二区| 国产一二精品视频| 国产日韩欧美日韩大片| 国产精品一区二区在线观看不卡| 欧美日韩高清区| 欧美人妖在线观看| 欧美激情视频给我| 欧美—级高清免费播放| 欧美成人中文字幕| 欧美精品福利在线| 欧美日韩国产二区| 欧美视频国产精品| 欧美视频一区在线| 欧美日韩亚洲高清一区二区| 欧美日本网站| 欧美日韩直播| 国产精品va在线播放| 欧美午夜剧场| 国产精品久久久一区二区| 国产精品wwwwww| 国产精自产拍久久久久久| 国产三级欧美三级日产三级99| 国产毛片一区二区| 国产一区二区三区观看| 韩国av一区二区三区在线观看| 狠狠色伊人亚洲综合网站色 | 欧美v日韩v国产v| 欧美精品首页| 欧美四级在线观看| 国产精品亚洲综合一区在线观看| 国产日产高清欧美一区二区三区| 国产一区二区三区的电影| 在线观看91久久久久久| 狠狠入ady亚洲精品经典电影| 在线视频精品一区| 亚洲中无吗在线| 欧美专区在线观看| 蜜臀99久久精品久久久久久软件| 欧美精品国产一区二区| 国产精品成人在线| 国产日韩av一区二区| 激情六月婷婷综合| 亚洲伦理在线| 午夜精品久久久久久久99热浪潮| 久久国产精品久久精品国产| 亚洲精品国产品国语在线app | 毛片一区二区| 欧美日韩高清在线一区| 国产精品乱码妇女bbbb| 国语自产精品视频在线看| 亚洲黄一区二区三区| 一个色综合av| 欧美在线视频全部完| 日韩视频免费观看高清完整版| 亚洲综合电影一区二区三区| 久久久噜噜噜久久久| 欧美日韩天天操| 国产一区观看| 99热这里只有成人精品国产| 欧美一级一区| 99精品热视频只有精品10| 欧美一区二区大片| 欧美精品v国产精品v日韩精品| 国产精品白丝jk黑袜喷水| 韩国女主播一区| 一区二区高清视频在线观看| 亚洲高清在线| 亚洲男女自偷自拍| 欧美成人免费小视频| 国产欧美精品一区二区色综合| 亚洲韩日在线| 羞羞色国产精品| 亚洲午夜精品久久| 蜜臀久久久99精品久久久久久 | 久久精品国产久精国产爱| 欧美人成免费网站| 韩国av一区二区三区| 亚洲午夜久久久| 日韩系列欧美系列| 久久人人九九| 国产嫩草影院久久久久| 日韩一级片网址| 亚洲国产裸拍裸体视频在线观看乱了中文 | 亚洲一区国产视频| 免费亚洲网站| 国产亚洲精品综合一区91| 99国产精品99久久久久久粉嫩 | 亚洲无线视频| 麻豆精品在线播放| 国产情人综合久久777777| 一本在线高清不卡dvd| 亚洲精品久久久久久久久久久久久| 欧美一区二区女人| 国产精品jizz在线观看美国| 亚洲精品国产无天堂网2021| 亚洲电影在线观看| 久久久久久一区二区| 国产精品一区亚洲| 在线视频亚洲一区| 一区二区欧美在线| 欧美激情亚洲| 亚洲激情网站| 亚洲美女黄色片| 欧美xxxx在线观看| 影音先锋另类| 久久精品一区二区三区中文字幕| 久久aⅴ乱码一区二区三区| 国产精品日本欧美一区二区三区| 日韩写真在线| 一本大道久久a久久综合婷婷 | 国产亚洲精品v| 亚洲一区二区三区四区中文| 亚洲线精品一区二区三区八戒| 欧美精品国产一区二区| 亚洲人成网站999久久久综合| 亚洲国产欧美一区二区三区丁香婷 | 久久久久国产一区二区| 国产区欧美区日韩区| 午夜精品久久久久久久久久久久| 亚洲免费综合| 国产精品蜜臀在线观看| 亚洲午夜精品久久| 欧美亚洲视频在线观看| 国产精品香蕉在线观看| 亚洲欧美日韩在线不卡| 久久av一区二区| 国产一区二区电影在线观看| 欧美一区二视频在线免费观看| 欧美一区三区二区在线观看| 国产亚洲成人一区| 亚洲第一区在线| 欧美成人嫩草网站| 亚洲毛片在线看| 亚洲性xxxx| 国产精品视频xxx| 午夜激情综合网| 久久免费黄色| 亚洲第一狼人社区| 一区二区av在线| 国产精品久久久久国产精品日日| 亚洲综合色婷婷| 久久亚洲综合色| 亚洲精品一二三| 亚洲永久精品国产| 国产色综合久久| 亚洲黄色影院| 欧美日韩免费观看一区| 一本大道久久a久久精品综合| 亚洲永久免费av| 国产原创一区二区| 亚洲欧洲在线免费| 欧美午夜片欧美片在线观看| 亚洲欧美国产精品va在线观看| 久久久999成人| 亚洲激情视频在线| 亚洲欧美日韩国产一区二区| 国产午夜精品在线| 91久久精品国产91久久性色tv| 欧美精品一区二区三区蜜桃| 亚洲一区bb| 麻豆精品传媒视频| 一区二区三区久久网| 久久国产视频网| 亚洲激情黄色| 午夜亚洲激情| **欧美日韩vr在线| 亚洲私人黄色宅男| 国产尤物精品| 亚洲天堂网在线观看| 国内视频一区| 中文亚洲免费| 国产日韩一区二区三区在线| 亚洲精品中文字| 国产欧美精品| 日韩午夜在线播放| 国产日韩专区| 一区二区欧美在线观看| 国产一区二区av| 中文亚洲欧美| 在线观看日韩专区| 欧美亚洲免费高清在线观看| 亚洲电影av| 欧美一区二区在线视频| 最新国产の精品合集bt伙计| 欧美在线3区| 99v久久综合狠狠综合久久| 久久深夜福利免费观看| aa国产精品| 免费中文日韩| 欧美在线视频播放| 欧美视频在线观看免费| 亚洲国产精品尤物yw在线观看| 国产精品久久久久久久久免费樱桃| 亚洲人成网站精品片在线观看|