基于STM32单片机的数据记录装置设计
扫描二维码
随时随地手机看文章
引言
本文针对电动汽车研究的实际需求,设计一款数据记录装置,该数据记录装置是搭建在电池能量管理系统基础上的,通过与能量管理系统通信,记录电动汽车实际运行时电池的外部状态(如:电池电压、电流、温度等),一方面为了研究电池的工作特性,另一方面为了对能量管理系统的工作情况做验证,为电动汽车动力电池的理论研究提供数据支持。
1 系统总体设计
本数据记录装置的设计包括硬件设计与软件设计两方面,软件设计主要包括数据接收的编程以及数据存储的编程,而硬件设计主要有几个方面:主控芯片的选择、复位功能的实现、电源模块、实时时钟、通信模块以及SD卡连接等。主控芯片是控制系统的核心,它内部所集成的模块越多,就能省去更多的外部电路,使得电路的设计更加简捷方便。电源模块用来满足系统各部分对于不同电压的需求。实时时钟,用来准确记录系统时标。选用SD卡作为存储装置以适应系统海量数据存储。基于现在市场上的电动汽车主要是CAN接口,所以本装置用CAN进行通信。系统总体结构如图1所示。
根据其实际功能,本数据记录装置的硬件部分设计原理图如图2所示。
2硬件设计
2.1主控制芯片选择选择STM32F103RBT6芯片作为系统总控制器,STM32F103RBT6是意法半导体有限公司的一款高性能、低成本、低功耗的处理器,它使用高性能的32位的RISC内核ARMCortex-M3,工作频率为72MHz.它的价格较低,零售价大约12元左右。
2.2复位功能
STM32F103RBT内置两个看门狗,两个看门狗设备(独立看门狗和窗171看门狗)可用来检测和解决由软件错误引起的故障,实现软件复位;当计数器达到给定的超时值时,触发一个中断(仅适用于窗口型看门狗)或产生系统复位。STM32提供上电复位和掉电复位功能,给系统提供了更高的安全性、时间的精确性和使用的灵活性,使得程序运行更加高效,内置的复位功能可以满足系统复位要求。
2.3实时时钟
STM32F103RBT6中内置RTC实时时钟,实时时钟是一个独立的定时器。RTC模块拥有一组连续计数的计数器,在相应软件配置下,可提供时钟日历的功能。修改计数器的值可以重新设置系统当前的时间和日期。RTC模块和时钟配置系统(RCC-BDCR寄存器)处于后备区域,即在系统复位或从待机模式唤醒后,RTC的设置和时间维持不变。系统复位后,对后备寄存器和RTC的访问被禁止,这是为了防止对后备区域(BKP)的意外写操作。
当主电源VDD掉电后,通过VBAT脚为实时时钟(RTC)和备份寄存器提供电源,使用电池或其他电源连接到VBAT脚上,当VDD断电时,可以保存备份寄存器的内容和维持RTC的功能。VBAT脚为RTC、LSE振荡器和PCI3至PCI5端13供电,可以保证当主电源被切断时RTC能继续工作。切换到VBAT供电的开关,由复位模块中的掉电复位功能。
2.4电源模块
电源模块为整个系统提供电源,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与通信接口
目前电动汽车能量管理系统主要应用的数据接口为CAN接口。在北美和西欧,CAN总线协议已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线,并且拥有以CAN为底层协议专为大型货车和重工机械车辆设计的31939协议,同时主控芯片STM32内置CAN控制器,只要外接CAN收发器就可以实现CAN通信。为了使系统具有尽可能的广泛性,数据记录装置设计了CAN通讯接口适应系统的需要。
2.6 SD卡模块SD卡允许在两种模式下工作,即SD模式和SPI模式。引脚定义如表1所示:
本装置采用SPI模式,与STM32的SPll口进行连接通信。
SD卡的SPI通信接口使其可以通过SPI通道进行数据读写。从应用的角度来看,采用SPI接口的好处在于,sTM32内部自带SPI控制器,不仅给开发上带来方便,同时也降低了开发成本。
SPI接口的选用是在上电初始时向其写入第一个命令时进行的。
3软件设计
软件调试采用KEIL公司RealView MDK4 12,它包括了ULVision4集成开发环境与ReilView编译器,自动配置启动代码。集成Flash烧写模块,强大的Simulation设备模拟,性能分析等功能。系统软件部分主要包括数据接收和数据存储。数据接收部分用于与能量管理系统的通信,以CAN中断接收的方式实现通信。在数据处理和存储部分程序中,数据处理是对数据进行处理转换为常用的单位和格式,数据存储部分负责将数据按一定结构打包存储。系统启动之时,SD卡的初始化是非常重要的,只有进行了正确的初始化,才能进行后面的各项操作。在初始化过程中,SPI的时钟不能太快,否则会造初始化失败。在初始化成功后,应尽量提高SPI的速率,在刚开始要先发送至少74个时钟信号。
中断接收流程图如图3所示。
数据存储流程图如图4所示。
4结束语
本设计提出了一种基于STM32的数据存储装置的设计方案,成功实现了电动汽车电池相关数据的存储,使用CAN通信保证了装置应用的广泛性,用SD卡作为存储介质,满足了数据存储容量以及速率上的要求,但同时仍有可以继续改进的地方,比如可以考虑增加_个USB口,使装置可以直接接到电脑上查看,存储和读取都将更方便,但由于STM32的USB与CAN共用部分SRAM,需要将USB与CAN的运行时间错开。