引言
本文針對電動汽車研究的實際需求,設計一款數據記錄裝置,該數據記錄裝置是搭建在電池能量管理系統(tǒng)基礎上的,通過與能量管理系統(tǒng)通信,記錄電動汽車實際運行時電池的外部狀態(tài)(如:電池電壓、電流、溫度等),一方面為了研究電池的工作特性,另一方面為了對能量管理系統(tǒng)的工作情況做驗證,為電動汽車動力電池的理論研究提供數據支持。
1 系統(tǒng)總體設計
本數據記錄裝置的設計包括硬件設計與軟件設計兩方面,軟件設計主要包括數據接收的編程以及數據存儲的編程,而硬件設計主要有幾個方面:主控芯片的選擇、復位功能的實現(xiàn)、電源模塊、實時時鐘、通信模塊以及SD卡連接等。主控芯片是控制系統(tǒng)的核心,它內部所集成的模塊越多,就能省去更多的外部電路,使得電路的設計更加簡捷方便。電源模塊用來滿足系統(tǒng)各部分對于不同電壓的需求。實時時鐘,用來準確記錄系統(tǒng)時標。選用SD卡作為存儲裝置以適應系統(tǒng)海量數據存儲?;诂F(xiàn)在市場上的電動汽車主要是CAN接口,所以本裝置用CAN進行通信。系統(tǒng)總體結構如圖1所示。
根據其實際功能,本數據記錄裝置的硬件部分設計原理圖如圖2所示。
2硬件設計
2.1主控制芯片選擇選擇STM32F103RBT6芯片作為系統(tǒng)總控制器,STM32F103RBT6是意法半導體有限公司的一款高性能、低成本、低功耗的處理器,它使用高性能的32位的RISC內核ARMCortex-M3,工作頻率為72MHz.它的價格較低,零售價大約12元左右。
2.2復位功能
STM32F103RBT內置兩個看門狗,兩個看門狗設備(獨立看門狗和窗171看門狗)可用來檢測和解決由軟件錯誤引起的故障,實現(xiàn)軟件復位;當計數器達到給定的超時值時,觸發(fā)一個中斷(僅適用于窗口型看門狗)或產生系統(tǒng)復位。STM32提供上電復位和掉電復位功能,給系統(tǒng)提供了更高的安全性、時間的精確性和使用的靈活性,使得程序運行更加高效,內置的復位功能可以滿足系統(tǒng)復位要求。
2.3實時時鐘
STM32F103RBT6中內置RTC實時時鐘,實時時鐘是一個獨立的定時器。RTC模塊擁有一組連續(xù)計數的計數器,在相應軟件配置下,可提供時鐘日歷的功能。修改計數器的值可以重新設置系統(tǒng)當前的時間和日期。RTC模塊和時鐘配置系統(tǒng)(RCC-BDCR寄存器)處于后備區(qū)域,即在系統(tǒng)復位或從待機模式喚醒后,RTC的設置和時間維持不變。系統(tǒng)復位后,對后備寄存器和RTC的訪問被禁止,這是為了防止對后備區(qū)域(BKP)的意外寫操作。
當主電源VDD掉電后,通過VBAT腳為實時時鐘(RTC)和備份寄存器提供電源,使用電池或其他電源連接到VBAT腳上,當VDD斷電時,可以保存?zhèn)浞菁拇嫫鞯膬热莺途S持RTC的功能。VBAT腳為RTC、LSE振蕩器和PCI3至PCI5端13供電,可以保證當主電源被切斷時RTC能繼續(xù)工作。切換到VBAT供電的開關,由復位模塊中的掉電復位功能。
2.4電源模塊
電源模塊為整個系統(tǒng)提供電源,STM32單片機要求2.0-3.6V的操作電壓,RTC部分需要電池提供后備電源,在這里VBAT采用CRl220紐扣電池和VCC3.3V混合供電的方式,在有外部電源(VCC3.3V)時,CRl220不給VBAT供電。而在外部電源斷開的時候,則有CRl220給VBAT供電。這樣VBAT總是有電的,以保證RTC的走時以及后備寄存器的內容不丟失。單片機供電方面,采用5.OV電源通過AMS公司的AMSlll7電壓轉換芯片為單片機提供3 3V的工作電壓。
2與通信接口
目前電動汽車能量管理系統(tǒng)主要應用的數據接口為CAN接口。在北美和西歐,CAN總線協(xié)議已經成為汽車計算機控制系統(tǒng)和嵌入式工業(yè)控制局域網的標準總線,并且擁有以CAN為底層協(xié)議專為大型貨車和重工機械車輛設計的31939協(xié)議,同時主控芯片STM32內置CAN控制器,只要外接CAN收發(fā)器就可以實現(xiàn)CAN通信。為了使系統(tǒng)具有盡可能的廣泛性,數據記錄裝置設計了CAN通訊接口適應系統(tǒng)的需要。
2.6 SD卡模塊SD卡允許在兩種模式下工作,即SD模式和SPI模式。引腳定義如表1所示:
本裝置采用SPI模式,與STM32的SPll口進行連接通信。
SD卡的SPI通信接口使其可以通過SPI通道進行數據讀寫。從應用的角度來看,采用SPI接口的好處在于,sTM32內部自帶SPI控制器,不僅給開發(fā)上帶來方便,同時也降低了開發(fā)成本。
SPI接口的選用是在上電初始時向其寫入第一個命令時進行的。
3軟件設計
軟件調試采用KEIL公司RealView MDK4 12,它包括了ULVision4集成開發(fā)環(huán)境與ReilView編譯器,自動配置啟動代碼。集成Flash燒寫模塊,強大的Simulation設備模擬,性能分析等功能。系統(tǒng)軟件部分主要包括數據接收和數據存儲。數據接收部分用于與能量管理系統(tǒng)的通信,以CAN中斷接收的方式實現(xiàn)通信。在數據處理和存儲部分程序中,數據處理是對數據進行處理轉換為常用的單位和格式,數據存儲部分負責將數據按一定結構打包存儲。系統(tǒng)啟動之時,SD卡的初始化是非常重要的,只有進行了正確的初始化,才能進行后面的各項操作。在初始化過程中,SPI的時鐘不能太快,否則會造初始化失敗。在初始化成功后,應盡量提高SPI的速率,在剛開始要先發(fā)送至少74個時鐘信號。
中斷接收流程圖如圖3所示。
數據存儲流程圖如圖4所示。
4結束語
本設計提出了一種基于STM32的數據存儲裝置的設計方案,成功實現(xiàn)了電動汽車電池相關數據的存儲,使用CAN通信保證了裝置應用的廣泛性,用SD卡作為存儲介質,滿足了數據存儲容量以及速率上的要求,但同時仍有可以繼續(xù)改進的地方,比如可以考慮增加_個USB口,使裝置可以直接接到電腦上查看,存儲和讀取都將更方便,但由于STM32的USB與CAN共用部分SRAM,需要將USB與CAN的運行時間錯開。