APP下载

基于STM32 的四层模拟电梯控制板的设计

2023-05-29徐鹏飞李烨熊勇齐海涛

电子制作 2023年7期
关键词:开关门低电平轿厢

徐鹏飞,李烨,熊勇,齐海涛

(北京航空航天大学,北京,102206)

0 引言

北京航空航天大学工程训练中心的《综合创新训练》课程历史悠久、内容丰富、深受学生好评,而四层模拟电梯控制是其中一个重要的内容,为了实现电梯的教学活动,工程训练中心设计了CTS1600-I 四层模拟电梯代替真实电梯,不仅可以直观显示电梯活动过程,而且还可以扩展实现其它内容;为了实现对四层模拟电梯的控制,就需要设计一款运行速度快、成本低、体积小、功能强大、支持C 语言开发的控制电路板。STM32F103 是增强型产品系列,其处理运算主频可以达到72MHz,是同类产品中性能较高的产品[1]。STM32F103 是Cortex ™-M3 内核的单片机,Cortex ™-M3内核性能强劲、功耗低、实时性好[2]。综合考虑了成本、性能等因素,经过筛选,STM32F103RBT6 可以满足要求。

图1 电梯接口

1 CTS1600-I 四层模拟电梯工作过程

CTS1600-I 四层模拟电梯有一个可以上下运动的轿厢,轿厢内有1、2、3、4 层和开关门请求轻触开关。轿厢由一个12V 直流电机控制,电机输入控制端有2 个I/O,分别为“选通”和“上行”,当“选通”和“上行”分别为高、低电平时,轿厢下行运动;当“选通”和“上行”分别为高、高电平时,轿厢上行运动;当“选通”为低电平时,无论“上行”为高还是低电平,轿厢均停止运动;通过2 个I/O 的高低电平组合,轿厢可以实现停止、上行、下行三种运动状态;将“上行”I/O 直接关联到电梯的上下行指示灯,用于指示电梯的运动状态和停止时的上一次运动状态。在电梯的每层都内置了轿厢到达行程开关,可以检测轿厢的位置。电梯外面中间每层有上请求、下请求轻触开关,顶层只有下请求轻触开关,底层只有上请求轻触开关,在轻触开关内部内置了可以被控制的发光二极管。开关门电机也是1 个12V 直流电机,与轿厢电机控制类似,可以由2 个I/O 控制,分别实现停止、开门、关门三个运动状态。在门的内部内置了关门到位和开门到位行程开关。在电梯上方位置有一个显示楼层号的8 段LED 显示器。

CTS1600-I 四层模拟电梯有一个40 针的控制接口,此接口信号可以分为输入、输出、电源三部分。在电梯内部有光耦进行隔离,所以控制板需要对接口进行供电,经过测试,直流5V 供电可以满足要求,所以输入输出接口信号均使用5V 供电下的逻辑电平即可。由于电梯使用了光耦隔离,减小了外部噪声的干扰,所以系统运行稳定,并且连接接口可以选用长一些的电缆线。

图2 SWD 下载接口

2 系统硬件电路设计

系统硬件设计分为单片机部分和接口驱动部分。

2.1 单片机电路

单片机电路由下载接口、晶振、电源、I/O、复位、指示灯等几部分组成。

图3 单片机电源电路

单片机下载接口使用的是SWD 接口,因为SWD 接口不仅可以实现下载、调试等功能,而且其引脚比JTAG 接口少很多,只需要SWCLK、SWDIO、复位、地等信号即可,其占电路板面积也很少。

单片机使用的是由5V 经过LM1117 稳压后形成的3.3V 电压,为了防止静电等原因形成的瞬时高压烧毁电路芯片,在LM1117 的输入和输出端对地均连接了瞬态抑制二极管。

单片机使用的是无源8MHz晶振。

单片机复位由上电复位和轻触开关复位两部分组成。为了得到可靠的上电复位,单片机的复位引脚通过一个10Ω电阻连接到MAX809的输出引脚。在上电时,MAX809输出一个维持140ms 的低电平复位脉冲,此脉冲使单片机STM32F103RBT6 复位。轻触开关按下时,单片机复位引脚连接到地,使单片机复位。MAX809 的输出端和轻触开关之间并不是直接连接,而是串接了一个10Ω 的电阻,其起到保护MAX809 芯片的作用。这样设计的目的是为了兼顾上电复位和开关复位,并且电路实现起来比较简单。MAX809 的上电复位的可靠性比RC 上电复位要高很多。

图4 单片机复位电路

为了直观查看电路情况,设计了电源指示灯和单片机运行状态指示灯。电源指示灯用于观察电路是否供电正常。单片机PA7 引脚连接发光二极管的阴极,当单片机程序运行时,在主循环程序里操作PA7,使其定时输出高低电平,从而D3 闪烁,此设计可以观察单片机程序的工作状态,比如其是否进入了死循环等情况。

图5 单片机核心电路

单片机的核心电路就是GPIO 引脚的输入输出连接。这些引脚如果直接连接电梯接口,那么经过电缆线就容易引入噪声干扰,使得单片机工作不稳定,容易造成硬件损坏、程序停机、程序丢失等问题,并且容易出现在SWD 方式下进行下载、调试时出现错误,所以这些引脚都通过74HC245进行了隔离。

图6 指示灯电路

2.2 驱动电路

接口驱动电路部分由74HC245 芯片构成,其目的是为了实现增强输出电压、电流能力,提高抗干扰能力。74HC245 的1 脚连接+5V,19 脚连接地,数据传输是从A 口进入,B 口输出。单片机对外输出的GPIO 引脚连接74HC245 的输入,经过驱动后连接到电梯接口的输入引脚上;电梯接口的输出引脚连接在74HC245 的输入,经过驱动后连接到单片机GPIO 对外输入引脚上。如果STM 单片机处于复位状态,此时GPIO 引脚是浮空输入模式,不对外输出确定电平,此时电梯容易出现误动作,所以在74245的输入引脚连接有对地电阻,使得74245 的输出为低电平,从而电梯接口输入引脚收到的都是低电平信号,上下行和开关门电机都处于停止状态,不会由于运动而造成事故,这是一个简单而重要的设计。74HC245 的电源使用的是直流5V,这样设计的目的不仅可以延长电梯接口电缆的长度,而且也考虑了STM 的GPIO 可以接受5V 电平下的逻辑信号的情况。

图7 电梯驱动电路

3 系统软件设计

在系统软件设计中,把电梯程序分为驱动和逻辑两层,两层是独立的。

指针是C 语言中的一个重要概念,也是C 语言的一个重要特色。正确而灵活地运用它,可以使程序简洁、紧凑、高效[3]。在驱动层,通过定义结构体,内置指针指向正确的寄存器,主程序操作指针即可完成对硬件的操作。GPIO外设分为输入和输出两种,分别对应不同的结构体。输出GPIO 的结构体定义如下:

判断轿厢是否到达1 层的代码如下:

if( (*gs_IO_Input_LayerSensor[0].pul_IDR) & gs_IO_Input_LayerSensor[0].ulPin)

图8 电梯程序流程图

驱动层用结构体变量,而不是直接使用GPIO 寄存器来进行读写有很大的优点,可以很容易做到修改IO 和电梯硬件的关系,如果修改了电路板,或者更换了单片机,只需要修改定义时的初始化值即可,软件容易修改,如果不使用结构体变量而是在代码里有IO操作,则软件很不容易修改正确。

在逻辑层,把电梯抽象为停止和运动两种行为,这两种行为可以在一定条件下相互转化。在停止状态下,程序判断是否本层内外按键按下过,如果按下过则产生请求,如果请求存在,执行开关门过程;如果上层请求存在而下层请求不存在或者上下请求均存在但是电梯上次运行状态是上行,则启动电梯向上运行;如果下层请求存在而上层请求不存在或者上下请求均存在但是电梯上次运行状态是下行,则启动电梯向下运行。在运行状态下,如果发现轿厢到达某楼层,如果此层是顶层或者底层,或者此层有请求,则电梯停止运行,执行开关门过程。在同时有上下层请求时,根据上次电梯运行状态启动电梯运行,这样设计的目的是防止电梯轿厢在某些层之间出现反复上下运动,而其他层的请求长时间得不到响应,只有尽量保持电梯运行方向不变,才可以使每一层的请求响应机会均等。

如何做到驱动层和逻辑层进行通信呢?在main 函数初始化代码里,启用了SysTick 定时中断,在此中断里,把驱动I/O 的值和电梯结构体变量的各个成员变量进行了相互交换,对逻辑层的各个行为完成了物理实现。

4 系统调试

在调试电梯控制板时,可以直接写一些I/O 的读写语句,然后设断点或者单步运行,观察电梯的各个部分是否正常工作。对于电机的调试有一些复杂,需要在运行语句之后写停止语句,防止电梯运行出现故障。

图9 电梯控制电路板3D 显示图

由于驱动层和逻辑层在定时中断里完成数据交换,所以在操作一些I/O 时,需要添加一些延时语句或者是判断语句,比如:启动了电机运行向上之后,需要判断本层传感器是否输出为0,然后延时几百毫秒,再进行其它的处理,这样做的好处是确保轿厢离开了本层,程序工作起来比较可靠。

5 结束语

通过对CTS1600-I 四层模拟电梯的控制电路板的设计,有了很多收获,并且《综合创新训练》课程也能如期正常进行,对于学生的编程能力、机械相关能力、电路设计能力、电路焊接能力等方面有了很大的提高。

猜你喜欢

开关门低电平轿厢
浅析CR400AF型动车组塞拉门系统功能以及控制原理
铁道车辆高/低电平信号智能发生器设计
轿厢式垂直升降立体车库的研制及应用
安全检查表法在轿厢意外移动风险控制中的应用
2017款凯迪拉克2.8L/3.0L/3.2L/3.6L车型低电平参考电压总线电路图
基于物联网的生猪精细饲喂系统设计
电梯轿厢报警装置失效如何处理
一种轿厢在门区意外移动的有效制停原理
15-MeV电子直线加速器的低电平系统
地铁列车客室侧门系统网络开门功能改造分析