嵌入式系统在智能电梯中的应用研究 下载本文

从而有效的防止死机的情形发生。如图6.11所示。

图6.11 看门狗模块

6.7、低电压复位模块

在系统上断电过程中电源部分可能出现过电压过低的情况,此时DSP可能在非正常电压工作时产生错误,为防止类似情形产生,系统中加入低电压压复位模块。因为DSP供电电压为3.3V,所以选用CAT809S作为复位芯片。如图6.12所示。CAT809S的复位电压为2.93V,当DSP供电电压低于此值时,CAT809S将发出RESET信号,复位DSP。

图6.12 低电压复位模块

15

6.8、电流检测模块

电流检测模块用于检测这个系统运行过程中的电流情况。系统可以根据电流情况调整电机的速度,电梯内风扇的开关,还可以有效的防止过电流的发生,保障系统安全。如图6.13所示。

电流检测模块采用正向运算放大器组成的电压放大电路,输入端的电压被滤波并放大11倍后送入DSP的AD采样通道,DSP将实际中的模拟量通过AD模块转换成相应的数字量,最后通过计算,判断获得希望的控制模式。

由于DSP的管脚耐压值有限,电压经运算放大器放大后,可能超出正常范围,所以在DSP的管脚输入端接有二极管限幅电路,使得当DSP管脚处电压输入过大时被有效的限制在允许的范围内。

图6.13 电流检测模块

6.9、故障报警模块

当系统出项故障时,DSP在完成系统停机保护的同时,输出GPIO端口将发出高电平,Q2三极管导通,故障灯与响铃同时得电,发出声光报警提示用户。如图6.14所示。

16

图6.14 故障报警模块

6.10、编程与仿真接口

可以通过串行接口RS232进行通讯及仿真,方便了嵌入式程序的编辑与调试。如图6.15所示。

图 6.15 编程及仿真接口

17

七、系统软件设计

嵌入式实时操作系统(Embedded RealTime Operating System)是一种实时的、支持嵌入式系统应用的操作系统软件,它是嵌入式系统(包括硬、软件系统)极为重要的组成部分,通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器等。

7.1、主程序流程设计

本设计将重点运用μC/OS—Ⅱ嵌入式实时操作系统作为软件开发平台,进行应用系统软件的设计。电梯控制系统控制策略与方法以流程图表示,如图7.1所示

开始控制器内部功能和操作系统初始化故障处理任务的建立任务间及任务与中断间信息的传递的消息邮箱的建立SCI总线数据处理任务的建立开关量输入及处理任务的建立系统断电数据保存任务的建立正常工作任务的建立软件定时器任务的建立检修任务的建立电梯控制模块启动

图 7.1 主程序流程图

18

7.2、初始化模块

初始化模块是电梯控制系统初始运行部分,负责初始化系统的各种参数,根据情况把电梯设置成一种初始上电运行状态。初始化模块包括:

(1) DSP系统初始化函数SYS_INIT()。完成DSP系统的配置寄存器和接口模块时钟控制。主要包括系统控制和状态寄存器、中断优先级和中断向量表、外设中断扩展控制器、中断向量、CPU中断寄存器、外设中断寄存器等。

(2) 定时器初始化函数EVB_init()。DSP有四个通用定时器,选择定时器3做为整个软件程序定时的基准。完成定时器内外时钟的选择,设置可编程定标器的初值,选择计数时钟频率,计数模式等,并向操作系统时钟节拍函数OSTimeTick()提供基本计时单位。完成初始化各个定时标志的初始化的工作。

(3) 光电编码器初始化函数EVA_init()。选择定时器2作为光电编码器输入脉冲处理的基本时钟信号。完成正交编码信号计数模式,计数方向等。

(4) I/O初始化函数I几init()。在电梯上电的的初始状态,系统的I/O状态是随机的,这样对电梯造成的极大的危险。I/O初始化主要是根据初始情况设置I/O口的输入输出状态,是电梯达到一个比较稳定、安全的状态。

(5) 复杂可编程逻辑器件(CPLD)接口初始化函数Cpld_Init()。数字信号处理器(DSP)通过数据总线向CPLD输出初始状态数据,完成CPLD初始化。

(6) CAN控制器的初始化CAN_init()。对DSp320LF2407中的CAN控制段中的寄存器进行初始化,设置CAN控制器的波特率、各个邮箱的功,接收屏蔽码等。

(7) 串行通信接口初始化函数SCI_init()。主控制器与液晶显示模块采用串行通信接口进行通讯。完成串行通信口可编程的数据格式、波特率的设置等。

(8) 串行外设接口初始化函数SPI_init()。主控制器采用串行外设接口 (SPI)对串行EEPR伽管理,用于系统断电后非易失数据保存。初始化函数完成完成串行外设接口可编程的数据格式、波特率的设置等。内存初始化函数Meomory_Init()。完成内存中变量及标志的初始化。

(9) 嵌入式实时操作系统μC/OS—Ⅱ操作系统初始化函数OSinit()。完成初始μC/OS—Ⅱ所有变量和数据结构。

19