基于STM32的电池管理系统触摸屏设计

发布者:tmgouzi最新更新时间:2021-03-04 来源: eefocus关键字:STM32  电池管理系统  触摸屏 手机看文章 扫描二维码
随时随地手机看文章

引 言

电动车一直以清洁环保而备受关注,加上能源危机加剧、油价不断上涨,电动车也越来越受到用户的青睐。电动车一般采用锂电池供电,由多个单体电池 串联成电池组作为动力电源。但由于各个串联单体电池特性不能保证完全一致,因此相同的电流下充电放电速度也会不同,如果不进行均衡干预,电池寿命会大大缩 短,因此需要实时监控各个单体电池的状态、总电压、总电流,根据状态适时进行电池充放电均衡,并且充放电均衡时,均衡状态也要实时进行检测,所以就有了电动车电池能量管理系统(EMS)。实践证明EMS可以有效延长电动车电池使用寿命,是电动车中十分重要的管理系统。


EMS主要包括:信息采集模块、充放电均衡模块、信息集中处理模块以及显示模块。图1为自主研发的电动车电池能量管理系统(EMS)的结构图, 其中信息采集模块主要完成实时采集电池组以及单体电池的电压、温度、电流等状态,对电池进行实时监控的同时也为均衡模块的开启与关闭提供依据。均衡模块主 要完成对电池特性差异进行补偿,根据采集模块采集来的信息判断电池状态,对单节电池进行充放电均衡,来实现状态特性一致。信息集中处理模块负责将采集得到 的数据进行处理、分析、计算(如SOC等),并监控均衡模块的工作,对其进行控制,同时与显示模块通信,在整个系统中起着承上启下的作用。显示模块作为唯 一的人机交互接口,不仅承担着将所有数据、以及设备状态实时地显示给用户,让用户能够直观地看到电池状态和EMS工作效果,而且还为用户与EMS的控制交 流提供接口,可以让用户设置参数,更改EMS工作状态,达到实时监管和控制的目的。如果没有显示模块人们就无法看到电池和EMS的信息,EMS的报警或提 示信息无法通知到客户,一些报警状态得不到及时处理轻则造成电池损坏,重则会导致电动车工作失控,酿成严重事故。同样客户也无法根据情况来调整和控制 EMS,也不能完全发挥EMS的作用。可见显示模块的人机交互功能是EMS中不可或缺的组成部分,从显示模块所需的功能看触摸屏是不错的选择。但如果购买 市面上的触摸屏,不仅显示内容会受触摸屏本身显示功能固定的限制而降低显示设计的灵活度、影响显示质量,并且市面上触摸屏的价格也普遍较高,给产品增加了很大一部分成本,这无疑会大大降低产品的市场竞争力。基于这种情况本文提出一种以STM32F103单片机为控制核心的比较通用的液晶触摸屏的设计方案。



1 触摸屏的种类及工作原理

触摸屏种类众多,可以分为电阻式、电容式、 红外线式、声表面波式、矢量压力传感器等,其中电阻触摸屏使用最为普遍。触摸屏系统一般包括触摸屏控制器和触摸检测装置两个部分。其中,触摸屏控制器的主 要作用是从触摸点检测装置上接收触摸信息,并将它转换成触点坐标,再送给微控制器,它同时能接收微控制器发来的命令并加以执行,触摸检测装置一般安装在显 示器的前端,主要作用是检测用户的触摸位置,并传送给触摸屏控制器。触摸屏的基本原理是,用手指或其他物体触摸安装在显示器前端的触摸屏时,所触摸的位置 (以坐标形式)由触摸屏控制器检测,并通过接口送到微控制器,从而确定输入的信息。其中触点坐标的求取方法是:如图2所示,给触摸屏的X+加正电压 V,X-接地时,在X+,X-方向上会形成均匀的电压梯度,当屏幕有触摸时,可以通过读取Y+的电压,经过A/D转换后计算求得触摸点X坐标。同理,在 Y+,Y-方向上加电压,可以通过X+上的值计算出触摸点Y坐标。计算坐标的公式如下:



式中,W 为触摸屏的宽度;H 为触摸屏的高度。


本方案采用的是四线电阻式触摸屏并且不使用专用的触摸屏控制器,直接由STM32F103控制以降低成本,如图2所示。



2 方案用到的主要器件介绍

2.1 STM32F103介绍

方案中主控器件STM32F103单片机使用的是ARM 公司为要求性能高、成本低、功耗低的嵌入式应用专门设计的32位的ARM Cortex-M3内核。


拥有可达128KB的嵌入式闪存、20kB的SRAM 和十分丰富的外设:两个1μs的12位ADC,一个全速USB(OTG)接口,一个CAN 接口,三个4 M/S的UART,两个18 M/S的SPI,两个I2 C等。内部还集成了复位电路、低电压检测、调压器、精确的RC振荡器等,大大方便了用户的开发。该系列单片机不仅功能强大而且功耗相当低,在72 MHz时消耗36 mA(所有外设处于工作状态),相当于0.5 mA/MHz,待机时下降到2μA ,是32位市场上功耗最低的产品。综上STM32F103系列单片机的性能完全可以满足液晶触摸显示屏的所有控制需要,内置A/D可以用于触摸屏控制,丰 富的I/O 接口可以用于与TFT液晶屏模块的通信,并且其本身自带CAN控制器可以作为与外界通信接口,用STM32F103做主控制器可以减少使用器件从而简化使 整体电路,很好地达到降低EMS成本的目标。


2.2 TFT液晶屏模

本方案选用的是3.5寸的TFT液晶屏模块,工作电压3.3 V,最大工作电流70 mA.支持320×240分辨率,内置230K内存显示可到256K色,可显示文字和图形,采用LED背光设计,使用软件即可对背光亮度进行调节,内置简 体中文字库,支持2D的BTE引擎,同时建几何图形加速引擎,可以对显示对象进行复杂的操作如画面旋转功能、卷动功能、图形Pattern、双层混合显示 和文字放大等等。这些功能将可节省用户在TFT屏应用的开发时间,提升MCU软件的执行效率并且使画面更加绚丽,显示功能更加丰富,使显示屏显示能力大大 增强。提供8位或16位总线接口,方便与MCU的连线,适应性强,连接设计灵活。


3 硬件连接设计方案

3.1 总体构架

液晶触摸显示屏系统主要由微控制器STM32F103、TFT液晶屏模块、四线电阻触摸屏以及与外界通信的CAN总线接口组成。硬件模 块连接如图3所示,其中四线电阻触摸屏的触摸检测装置安装在TFT液晶屏前面用于检测用户触摸的位置,本方案利用STM32F103 自带A/D 转换功能,由STM32F103实现触摸屏控制器的功能来直接控制四线电阻触摸屏,检测触摸信息并计算出触点坐标。然后STM32F103通过I/O接口 与TFT液晶屏模块通信,将处理好的有效信息通过TFT 液晶屏显示出来。由于STM32F103内置CAN 总线控制器所以CAN总线接口可以直接从STM32F103的管脚引出,用来与EMS进行通信,完成现实信息采集,设置参数等功能。



图3 方案总体框图


3.2 STM32F103与四线电阻触摸屏的接口电路

如图4所示,STM32F103与四线电阻触摸屏直接通过自身的I/O口连接,实现触摸屏控制器功能。其中PA8、PA9、PA10、 PA11分别作为四个三极管的控制端,通过控制三极管通断,来控制四线触摸屏的Y+、Y-、X+、X-.PA1,PA2是两个A/D转换通道,分别连接 Y+和X+用于计算触摸点的X和Y坐标。PA3连接内部中断用于检测触摸屏是否有触摸动作。触摸屏平时运行时,令PA8、PA9、PA11输出 0,PA10=1,即只让VT2导通。当有触摸动作时,D1导通给PA3一个中断信号,STM32F103接收到中断请求后立即置PA8=1,导通 VT1,这样在Y+、Y-方向上就加上电压,同时启动A/D转换通道PA2,通过输入X+上电压计算出触摸点的Y坐标,然后同理令PA8、PA10为 0,PA9、PA11为1,启动A/D转换通道PA1,通过输入Y+上电压计算出触摸点X的坐标。



图4 STM32F103与四线电阻触摸屏接口电路


3.3 STM32F103与TFT液晶屏模块控制器的接口电路

如图5所示,STM32F103通过I/O 接口与TFT液晶模块相连接,虽然很多的TFT液晶模块中内置的液晶屏控制器都支持SPI 接口通信(如ILI9325)但由于SPI传输速度较慢不利于液晶数据的快速传输,因此很多液晶模块都选择采用并口通信。


其中PB0-PB15分别与D0-D15相连作为数据通信口,PA0、PA4、PA5、PA6、PA7 分别连接RESET、CS、RS、WR、RD,作为控制口,实现复位、片选、指令数据切换、读写等控制功能。



图5 STM32F103与TFT液晶模块接口电路


4 软件设计

软件部分的编程采用C语言,一方面主要完成STM32F103对I/O 管脚的配置,用来实现对四线电阻触摸屏端子状态的控制,通过中断方式检测是否有触摸信息,配置A/D转换通道,读入电压根据公式计算出触点坐标。另一方面 主要完成通过与TFT液晶模块的通信控制,实现触摸点坐标与液晶屏坐标的对应并有效完成显示任务。软件的开发环境是MDK,MDK 将ARM 开发工具RealView DevelopmentSuite(简称为RVDS)的编译器RVCT与Keil的工程管理、调试仿真工具集成在一起,支持ARM7、ARM9和最新的 Cortex-M3核处理器,自动配置启动代码,集成Flash烧写模块,强大的Simulation设备模拟,性能分析等功能,与ARM 之前的工具包ADS等相比,RealView编译器的最新版本可将性能改善超过20%.具体流程如图6所示。



图6 程序流程图


5 结束语

本文提出了基于STM32F103单片机的EMS液晶显示触摸屏的设计方案。STM32F103的高速、低耗的优越性能完全可 以达到触摸屏的主控制芯片要求,TFT液晶显示器可以满足更复杂、多彩、灵活的显示任务,符合显示屏性能不断攀升的发展趋势。本设计充分利用了 STM32F103芯片的优势,抛弃了传统触摸屏控制器控制触摸屏的方案,利用自身A/D完成了触摸屏功能,本方案大大简化了硬件电路结构,通信更可靠, 编程也更加简洁,最终既能达到EMS显示要求,出色地显示和设置了系统所需要的数据,又能降低系统的成本,通过实际使用达到了良好的效果。鉴于当前电动车 的快速发展,本方案可以拥有不错的应用前景。


关键字:STM32  电池管理系统  触摸屏 引用地址:基于STM32的电池管理系统触摸屏设计

上一篇:一种基于STM32的便携式人机界面系统的设计
下一篇:基于STM32的FSMC接口驱动TFT彩屏

推荐阅读最新更新时间:2024-11-09 12:54

stm32 bootloader启动正常,APP程序会在时钟配置出错原因分析
实验环境 STM32F411芯片 HAL库 利用CubeMX生成的Bootloader和APP工程 现象描述 将Bootloader和APP程序分别下载到板子上,Bootlader程序可以正常运行,而APP程序会死在Error_Handler()的while(1)循环中。 具体调试发现程序是在执行HAL_RCC_OscConfig()函数的PLL 配置部分检测到当前PLL已经被配置为了系统时钟而返回了HAL_ERROR的返回值导致进入了Error_Handler()。为什么bootloader程序中的时钟配置没有问题,而APP中的时钟配置就会有问题呢? 分析 网上搜索了一下,发现了一种说法:PLL在启动之后便不能够重新配置。感
[单片机]
<font color='red'>stm32</font> bootloader启动正常,APP程序会在时钟配置出错原因分析
IIC (STM32)
IIC(Inter-Integrated Circuit) 总线是一种由 PHILIPS 公司开发的 两线式串行总线 高速 IIC 总线一般可达 400kbps 以上。 IIC信号时序图 IIC 总线在传送数据过程中共有三种类型信号,开始信号、结束信号和应答信号。 开始信号: SCL 为高电平时,SDA 由高电平向低电平跳变,开始传送数据。 SCL = 1 SDA = 1 SDA = 0 结束信号: SCL 为高电平时,SDA 由低电平向高电平跳变,结束传送数据。 SCL = 1 SDA = 0 SDA = 1 应答信号: 每发送一个字节(8个bit),一个字节传输的8个时钟后的第九个时钟期间 接收
[单片机]
IIC (<font color='red'>STM32</font>)
为什么要串口唤醒STOP模式?如何才能实现串口唤醒STOP模式呢?
前言 STM32常见的低功耗模式有三种:睡眠模式、STOP模式以及待机模式,STM32L系列还有其他低功耗模式。这里主要讲的是STOP模式,STOP模式可以通过外部中断或事件唤醒,但是不能通过串口中断唤醒,因为串口中断本身不是外部中断,那么如何才能实现串口唤醒STOP模式呢? 因为我这里只是为了做验证,为了快速验证,我也就没有用RT-Thread的PM电源管理组件进入STOP模式,感兴趣的读者可以用RT-Thread的电源管理组件去实现进行STOP模式。 一、为什么要串口唤醒STOP模式? 想象一下,在某些场合,如果你有一个无线通信模块(例如ESP8266、SIM800C)和STM32通过串口发送AT命令来对接服务器实现与服务
[单片机]
为什么要串口唤醒STOP模式?如何才能实现串口唤醒STOP模式呢?
STM32启动文件选择说明
startup_stm32f10x_cl.s 互联型的器件,STM32F105xx,STM32F107xx startup_stm32f10x_hd.s 大容量的STM32F101xx,STM32F102xx,STM32F103xx startup_stm32f10x_hd_vl.s 大容量的STM32F100xx startup_stm32f10x_ld.s 小容量的STM32F101xx,STM32F102xx,STM32F103xx startup_stm32f10x_ld_vl.s 小容量的STM32F100xx startup_stm32f10x_md.s 中容量的STM32F101xx,STM32F102xx,STM3
[单片机]
如何在STM32串口通信程序中使用printf发送数据
在STM32串口通信程序中使用printf发送数据,非常的方便。可在刚开始使用的时候总是遇到问题,常见的是硬件访真时无法进入main主函数,其实只要简单的配置一下就可以了。 下面就说一下使用printf需要做哪些配置。 有两种配置方法: 一、对工程属性进行配置,详细步骤如下 1、首先要在你的main 文件中 包含“stdio.h” (标准输入输出头文件)。 2、在main文件中重定义函数 如下: // 发送数据 int fputc(int ch, FILE *f) { USART_SendData(USART1, (unsigned char) ch);// USART1 可以换成 USART2 等 while (!(US
[单片机]
如何在<font color='red'>STM32</font>串口通信程序中使用printf发送数据
STM32入门学习笔记之外置FLASH读写实验(下)
(2)创建w25q128.c并输入以下代码。 /********************************************************************************************************* FLASH 驱 动 程 序 *********************************************************************************************************/ #include w25q128.h #include delay.h /***************
[单片机]
为什么可以在STM32上面跑神经网络
摘要:为什么可以在STM32上面跑神经网络?简而言之就是使用STM32CubeMX中的X-Cube-AI扩展包将当前比较热门的AI框架进行C代码的转化,以支持在嵌入式设备上使用,目前使用X-Cube-AI需要在STM32CubeMX版本5.0以上,支持转化的模型有Keras、TFlite、ONNX、Lasagne、Caffe、ConvNetJS。Cube-AI把模型转化为一堆数组,而后将这些数组内容解析成模型,和Tensorflow里的模型转数组后使用原理是一样的。 一、环境安装和配置 STM32CubeMX MDK/IAR/STM32CubeIDE F4/H7/MP157开发板 二、AI神经网络模型搭建 这里使用官方提供
[单片机]
为什么可以在<font color='red'>STM32</font>上面跑神经网络
STM32 GPIO的工作模式
一、前言 在之前围绕STM32的GPIO的基本结构进行了介绍,图1为STM32的5V容忍的GPIO口内部基本结构图,图2为GPIO的基本结构中各个模块部分的概述。 阅读GPIO基本结构的内容能够对GPIO的工作模式有更深的了解。 正是由于GPIO的结构中包含了多样性的电路和模块,因此进行合理的配置组合,就可以使得GPIO应用在不同的工作模式下进行工作。 图1 STM32的5V容忍的GPIO内部基本结构 图2 GPIO基本结构包含的功能概述 二、工作模式概述 图3为STM32的GPIO工作模式概述图,从图中可以看出,GPIO端口的静态特征就是指芯片可供你选择的该GPIO的配置,只有通过对使用的GPIO端口进行合理的配置,
[单片机]
<font color='red'>STM32</font> GPIO的工作模式
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved