基于STM32单片机的数据记录装置设计

最新更新时间:2013-08-17来源: 21ic关键字: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的运行时间错开。
关键字:STM32  单片机  数据记录  装置设计 编辑:探路者 引用地址:基于STM32单片机的数据记录装置设计

上一篇:专家细谈数字电源设计的若干关键点
下一篇:基于STM32单片机和EM310的无线终端设计

推荐阅读最新更新时间:2023-10-12 22:24

C8051F064单片机在远端测控装置中的应用
  本文介绍了 C8051F 系列单片机在远端测控装置中的应用,给出了整个系统的结构,包括硬件配置和系统网络构成,对一些技术问题也做出了详尽的说明。   一 系统简介   远端测控装置是一种现场可编程的控制器,它能完成数据的采集控制,而通过远程通信的方式(如电台、CDMA、拨号等)将数据上传至中心站或接收中心站的遥控指令。它往往被安装在比较分散、环境比较恶劣、无电源保障(经常断电或使用太阳能)且无人值守的地方,因此它运行的可靠性和功耗就显得尤为重要了。C8051F单片机的工业级工作温度(-40℃~+84℃)、低电压、低功耗、自带看门狗和多复位源等特点满足了此系统的要求。   基于此系统的定位,选用C8051F06
[单片机]
C8051F064<font color='red'>单片机</font>在远端测控<font color='red'>装置</font>中的应用
单片机典型论文竞赛题精华集锦(二)
单片机论文三 实用低频功率放大器   一、任务   设计并制作具有弱信号放大能力的低频功率放大器。其原理示意图如下:   二、要求   1.基本要求   (1)在放大通道的正弦信号输入电压幅度为(5~700)mV,等效负载电阻RL为8Ω下,放大通道应满足:   ① 额定输出功率POR≥10W;   ② 带宽BW≥(50~10000)Hz;   ③ 在POR下和BW内的非线性失真系数≤3%;   ④ 在POR下的效率≥55%;   ⑤ 在前置放大级输入端交流短接到地时,RL=8Ω上的交流声功率≤10mW。   (2)自行设计并制作满足本设计任务要求的稳压电源。
[模拟电子]
<font color='red'>单片机</font>典型论文竞赛题精华集锦(二)
STM32程序加载---网络
一、设计流程 编写IAP加载程序,使用网口传输数据,并将.bin文件写入。单片机启动的时候按住某一个按键跳转到程序加载流程,否则跳转到应用程序入口地址执行。 二、程序分析 1、main程序 int main(void) { uint32_t flag = 0x00; #ifdef SERIAL_DEBUG DebugComPort_Init(); printf( rn %s , __VESION); #endif /* Initialize Key Button mounted on STM324xG-EVAL board */ IAP_Key_Init();
[单片机]
STC12C5410AD单片机的AD程序两位数码管显示
/*用的是主程序中转换AD,在以后的使用中要用中断的方法才能节约CPU的使用率,本程序中是用P1.0为输入,用的是单片机本身的10位AD,最大1024分辨率,除以10后最大为102,用两位的数码管,所以只能在99以内,在程序中大于99的数,就只能显示99,也可用三位数码管显示.*/ #include reg52.h #define uchar unsigned char #define uint unsigned int #define duan P1 //数码管段码输出端 sfr ADC_CONTR = 0xc5; sfr ADC_DATA = 0xc6; sfr ADC_LOW2 = 0xbe; s
[单片机]
pic单片机8位点阵的字母滚动
因为程序内存的原因不能用2维数组,所以只好定义8个数组来显示字母,也就只有8个字母可以显示了,听何家伟说往数组前面加一个code就可以定义了,不过不知道PIC里面能不能用,先把还不算太完善的作品贴出来再慢慢改吧。本来想把视频传上来还要黄钻,晕。算了。 #include pic.h void delay(); void init(); unsigned char table ={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; unsigned char scan ={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; unsigned char A
[单片机]
基于AT89C2051单片机的晶闸管触发电路的设计与实现
自晶闸管被用作开关元件以来,其触发电路经过了晶闸管分离元件阶段和集成电路阶段后进入了单片机嵌入阶段。使用以单片机为核心的触发电路虽然避免了前两个阶段元件多、故障率高和低智能化的缺点,但可靠性、迅速性和抗干扰性还存在诸多不足。 本设计详细介绍了一种基于AT89C2051单片机的晶闸管触发电路,具有高集成度、智能化、体积小、安全、迅速、可靠稳定等优点,今后必将被广泛应用。文中以晶闸管投切电容器为例来详细说明触发电路的工作原理。 1 触发电路的硬件设计 硬件电路以ATMEL公司的AT89C2051单片机为核心,包括晶闸管过零检测电路、控制器投切命令电路、脉冲隔离放大电路等几部分组成,硬件框图如图1所示。 1.1 AT89C2
[单片机]
基于AT89C2051<font color='red'>单片机</font>的晶闸管触发电路的<font color='red'>设计</font>与实现
stm32f103 独立看门狗
STM32的独立看门狗由内部专门的40Khz低速时钟驱动,即使主时钟发生故障,它也仍然有效。这里需要注意独立看门狗的时钟是一个内部RC时钟,所以并不是准确的40Khz,而是在30~60Khz之间的一个可变化的时钟,只是我们在估算的时候,以40Khz的频率来计算,看门狗对时间的要求不是很精确,所以,时钟有些偏差,都是可以接受的。 首先我们得讲解一下看门狗的原理。我们总结一下: 单片机系统在外界的干扰下会出现程序跑飞的现象导致出现死循环,看门狗电路就是为了避免这种情况的发生。看门狗的作用就是在一定时间内(通过定时计数器实现)没有接收喂狗信号(表示MCU已经挂了),便实现处理器的自动复位重启(发送复位信号)。 下面我们在了解
[单片机]
stm32f103 独立看门狗
基于51单片机的模拟生产线上啤酒装箱计数过程与报警程序
; 设计一个智能工件计数系统 ;(1)要求模拟生产线上啤酒装箱计数过程,每过一瓶计数一次并通过4位数码管显示当计数到24瓶时声音报警。 ;(2)画出硬件连接图,编写软件程序 ;此程序应用一位单片爱好者而作,作者: 徐学军 ;此程序的显示电路接P1口,74LS47直接接在P1口,74ls4
[单片机]
小广播
最新电源管理文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved