基于单片机的智能插排设计

2021-02-21 08:19朱旭符秀辉
科技风 2021年4期

朱旭 符秀辉

摘 要:本文介绍了一种基于单片机的智能插排控制系统,本设计采用STM32F103单片机作为控制核心,该系统具有电压、电流检测、过流保护、多路定时通断控制、TFT_LCD显示屏、触摸屏控制、断电定时时间自动保存等功能。系统分为主界面、定时界面、查询界面三个界面。本设计具有节约能源、消除安全隐患、延长家用电器的寿命等功能,给生活带来了极大的便利。

关键词:智能插排;STM32F103;过流保护;多路控制;TFT_LCD显示屏

本设计选用以STM32F103ZET6单片机作为主控芯片,MCP39F501芯片作为电量计量芯片,辅以电压电流检测、过流保护,多路定时通断、触摸屏控制、定时断电自动保存等功能,设计了一款具有低功耗、高性价比、人机交互程度高等特点的智能插排控制系统。

1 系统的总体设计

智能插排的硬件系统主要由主控制器模块、电能计量模块、Flash存储模块、彩屏显示模块、触摸屏控制模块、继电器控制模块组成。主控模块选用STM32F103系列单片,通过单片机进行数据处理、定时控制、LCD彩屏显示、触摸屏控制、Flash存储模块控制、电能采集与过流保护。为了实现对用电设备的耗能监测,通过电能计量模块进行检测电能数据,该模块将电能数据信息通过串口发送到单片机,由单片机进行数据处理实现过流保护功能,并通过LCD液晶显示器将电能数据显示出来。RTC时钟模块主要为系统提供准确的时间。Flash存储单元主要用来存储定时时间与断电前运行状态,从而实现断电数据保存功能,上电状态恢复功能。

2 控制器硬件电路设计

在主控模块系统这一方面,单片机控制电路是整个控制器的中枢,起着发号施令的作用。STM32F103ZET6基于Cortex-M3(CM3)处理器,不仅在功能上能满足我们生活的要求,而且在运行效果上也格外显著。完整的基于CM3的MCU还需要很多其他组件通信接口多达13个通信接口,其中两个IIC、五个串口、三个SPI能够满足本设计通信使用。然而,要想正确合理的应用此单片机,仅仅依靠芯片本身是不行的。其往往还需要外部时钟、复位、隔离等单元电路才能工作。其硬件电路如右图所示。

在TFT_LCD液晶显示电路设计中显示出独特的优势,它不仅具有良好的画质,而且还可以设置成触控模式,方便用户操作。在TFT_LCD触控电路设计中,不仅支持显示功能,而且还能通过专门的控制芯片实现触屏功能。由于STM32F1O3ZET6单片机没有集成的液晶驱动器,因此需要借助ILI9320驱动芯片通过FSMC接口对液晶进行控制。

而为了准确有效地得到触控位置,将电压信号模拟量转化为数字量。由于需要一个A/D转换芯片进行控制在设计中采用XPT2046转换芯片。XPT2046是一种典型的逐次逼近型模数转换器,其包含了采样保持、模数转换、串口输出等功能。当控制触摸屏时,可将其设置为差分模式,可有效消除外部干扰和寄生电阻带来的测量误差,使转换精度更高。

24C02储芯片设计中,在初始化触控屏时需要将采集的触控点通过IC总线传送到存储芯片上,为下次初始化时免去烦琐的校准程序。

SPI通信协议中,SPI接口主要应用在EEPROM、FLASH、实时时钟、AD转换器,还有数字信号处理器和数字信号解码器之间。

MCP39F501是一款高度集成的单相功率监视芯片,用于实时测量交流电源、配电单元和工业应用的输入功率,并且支持modbus、串口通信等。其优点在于该器件能够在4000∶1的动态范围内实现精度优于0.1%的设计。

3 控制器软件设计

智能控制系统由初始化程序、触摸屏控制程序、定时器中断程序、电量数据采集采集程序、RTC时钟程序、定时器中断程序、LCD显示程序、串口中断程序、继电器控制和共同组成。各子程序经过单片机的主程序运算处理,实现了过流保护、电量检测、液晶显示、触屏控制、模式选择、数据传输与处理、继电器控制等功能,达到了过流保护、人机交互、电量检测的要求。在整个程序设计中,采用模块化编程的方式,使程序更加灵活,方便调用、移植、调试。在接入电源后,单片机控制器开始工作,首先系统对所需功能进行初始化自检,在完成初始化后,执行触摸屏扫描程序,显示主界面。在主界面下显示当前时间、各路插排通断状态和当前模式。当检测到屏幕被触摸后,系统根据其坐标判断所选择的命令,并进入相应子程序。当按下定时界面后会进入定时界面,定时界面可以单独设置各路插排定时开启关闭时间。当按下电流设置界面时,电流设置界面可以显示各路插排的电压、电流等数据,单独设置各路的过流保护阈值。用TFT_LCD液晶屏显示测量参数并且再想去控制其中参数需要对液晶及其控制器进行一系列校准与设置。在程序开始执行时,首先,判断液晶屏幕是否已经通过校准,若校准完毕,则显示待机状态下的菜单,否则需要经过校准程序进行校准;其次,判断LCD屏幕是否被触摸,若检测到,则读取相应触控点坐标,否则返回到待机状态下的显示界面;最后,根据所得坐标,判断是否在设定区域,若在,则通过ILI9320驱动器经FSMC向LCD指定区域写命令,写数据,以达到界面切换或显示参数的目的。

计量模块通过串口与单片机进行通信,本设计两路插排所以使用两个计量模块分别采集各路的电量信息,A路插排数据采集计量模块使用串口2通信,B路插排数据采集计量模块使用串口4通信,因为本设计采用STM32F103ZET6单品机,该芯片有5组串口能够满足本设计。

串口实现的功能是:STM32F1通过USART2和USART4实现与计量模块对话,通过STM32F1按照定义的串口通信协议与计量模块进行数据通信,向计量模块模块发送相应的命令,接收计量模块返回的命令和电量数据进行数据分析。在初始化过程中,首先初始化所用功能的时钟;然后将串口进行复位处理,以免受外设异常的干扰;最后进行中断的配置,设置中断分组和NVIC优先级。

STM32单片机RTC时钟利用其内部一个独立的定时器,可以实现时钟的连续计时。在程序开始执行时,先进行时钟引脚的使能,然后取消备份区的写保护,检查是不是第一次配置时钟,若为第一次配置时钟,则复位备份区域开启外部低速时钟,设置预分频和中断分组,存储到备份区。若不为第一次配置,则直接读取备份存储区内的时间,在此基础上继续计时。

RTC时钟的核心为预分频模块与可编程计数器构成。通过程序将预分频值设置为32767即可使外部32.768KHz的晶振分頻至1HZ,从而在程序中可产生1秒的TR_CLK中断,在此中断函数中进行秒计时。可编程计数器为32位计数器,按秒钟计算可连续计时232秒,约合136年,此计时时间对于本设计是完全够用的。

4 结论

本设计针对家用插排的能源浪费和用电安全设计了该控制系统,虽然已经能够一定程度上减少能源浪费,增强了用电安全,但仅仅有此功能还是不够完美,随着物联网的飞速发展,智能家居是当前的主流方向,该系统也应该向着物联网方向发展,该系统选用STM32F103ZET6作为主控芯片,该芯片具有5个串口,为以后想物联网方向发展提供硬件基础和通信接口,使产品更加人性化、智能化。

参考文献:

[1]韩雨纯.具有谐波分析功能的智能电表设计[D].大连理工大学,2017.

[2]王超.基于ARM的智能家居温控系统的设计[D].成都理工大学,2017.

[3]曹东华.基于物联网架构下的智能插排的设计[D].电子世界,2018(18).

[4]燕立强.单相配电变压器运行监控仪研究[D].北京交通大学,2012.

作者简介:朱旭(1996— ),男,汉族,山东临沂人,硕士,研究方向:控制工程。