首页 > 范文大全 > 正文

基于STM32和组态王的停车场短信预约系统的设计

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于STM32和组态王的停车场短信预约系统的设计范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘 要:提出基于stm32组态王停车场短信预约系统设计思想,实现了PC机、STM32单片机和GSM模块之间的通信,完成了停车场短信预约系统的硬件设计和软件设计,并成功应用于立体停车场的智能控制系统。有利于提高停车场服务的智能化和人性化,更方便人们出行停车。系统以具有组态王的PC机作为上位机,以STM32F407ZGT6芯片设计的控制模块作为下位机,GSM模块为短信收发模块,通过组态王编写的监控界面进行停车场预约数据和信息的处理,实现以短信方式自动预约停车位的功能。该系统是对现有网上预约、电话预约方式的一种补充,对需要预约服务的场所具有一定的理论意义和实际应用价值。

关键词:STM32;预约系统;GSM模块;FreeModbus协议;ModbusRTU;组态王

中图分类号:TP332.3 文献标识码:A 文章编号:2095-1302(2015)06-00-03

0 引 言

近年来,随着城市的快速发展,中心城区的停车难问题日益凸显,停车资源没有得到有效利用是造成停车难的原因之一,而预约系统可以让用户与资源提供者进行远程交流,从而缓解这种供求矛盾。随着移动通信技术的快速发展,手机已经成为人们必备的通讯工具。将手机短信服务应用于预约系统,可以使服务更加人性化,更便于人们使用。基于STM32和组态王的停车场短信预约系统,让停车场真正实现智能化、人性化,使中心城区停车资源得到有效利用,对改善城区交通具有一定的积极作用。

1 系统结构设计与功能

本系统采用了ARMCor-tex-M4内核的STM32F407ZGT6作为主控芯片,STM32F407ZGT6是意法半导体(STMicroelectronics)基于ARMCor-tex-M4内核推出的专门用于高性能、低成本、低功耗嵌入式领域的32位微处理器[1]。采用SIMCOM公司的SIM900A作为通信芯片,通过通信(GSM)模块与STM32实现短信的发送和接受。基于FreeModbus协议的RTU模式的通信方式,通过RS 232接口实现STM32单片机与组态王之间的通信,将短信内容和用户手机号码传给上位机组态王,并通过组态王对停车场进行监控,从而实现短信自动预约停车位的功能。该系统整体硬件结构设计如图1所示。

该停车场短信预约系统的工作过程如下:当系统正常运行时,若客户需要提前预约停车位,可通过手机发送短信至系统设定的主机号码,通过GSM网络和SIM900A短信收发模块接收预约短信,并通过RS 232接口与STM32主机进行通信。该请求被STM32检测并产生一个中断,读取信息及用户号码,并存储在寄存器中,通过FreeModbus协议和RS 232接口将短信内容和用户号码传给组态王,组态王读取并记录用户号码。组态王软件通过查询停车位数据库,监测停车场车位数,若有空余车位,则STM32指令自动发送“预约成功”短信到客户手机上;若无空余车位,则发送“车位已满”短信。

图1 系统总体结构图

停车场短信预约系统主要由四个功能模块构成,即主控模块、通信(GSM)模块、电源模块、数据传输模块[2]。主控模块采用STM32作为主控芯片,来控制短信的收发与数据的传输;GSM模块采用SIM900A进行无线通信;电源模块采用12 V独立电源和USB接口(COM1)相结合的供电方式;数据传输模块由两部分组成,STM32与GSM模块之间通过RS 232接口(COM3)实现通信,与PC机之间通过USB转RS 232接口(COM2)实现通信。远程终端是手机和装有组态王的上位机(PC),将用户发送的信息和手机号码经过处理之后,储存下来,方便信息的查询。

2 软件设计

该系统以MDK5软件为开发平台,通过调用库函数的方法,进行程序设计,应用串口助手和ModbusPoll实现程序的设计和调试。

2.1 短信收发子系统的设计

为了实现STM32与SIM900A模块之间的数据传输,实现短信收发,首先要对STM32进行初始化,然后配置系统时钟、中断控制器、输入输出的GPIO以及相应的串口。STM32初始化流程图如图2所示。参数配置时,需要对照原理图进行编写,查看芯片端口的使用情况及其作用,然后对该子系统进行配置,以保证模块能够正常运行。

图2 STM32初始化流程图

短信功能的实现主要涉及到两个关键部分,一个是AT命令,另一个是串口的读写。AT命令是主控芯片STM32和SIM900A之间的通信协议,以此完成对SIM900A的控制。短信的收发主要有两种模式,一种是文本模式,该模式只支持英文内容,另一种是PDU模式[3]。本系统选择PDU模式进行短信的收发。

SIM900A的短信功能主要分为两个部分,分别为读取短信和发送短信。接收短信的设置命令为AT+CMGR,我们将接收到的短信内容放在一个长度为30的BUF中,再将BUF写入到串口3中,然后再读取串口3中的内容,这样,短信的编号就获取完毕。获取了短信的编号之后,就能去获取短信的具体内容,而短信的内容则存放在ALPHA中,它处于响应的第三个位置,通过SIM_AT_RESPONSE(1)函数,检查GSM模块发送过来的数据,及时上传给电脑,就获取了短信的内容。发送短信的设置命令为:AT+CIPSEND,首先将发送短信的电话号码存入到一个BUF中,将这个BUF写入到串口3中,以此获取手机号码。最后将固定的短信内容写到串口3,通过SIM900A发送给手机用户,具体短信发送接收流程图如图3所示[4]。

该系统若要实现自动预约的功能,则在实现短信收发功能的基础上,通过Modbus协议使STM32与上位机组态王进行通信,从而实现短信的自动读取和发送。短信内容是根据组态王软件对停车场车位使用情况的监控而选择发送写好的固定信息,若监控显示有空余车位,则发送“预约成功,欢迎您的光临” ,若监控显示无空余车位,则发送“对不起,车位已满”。该子系统主程序流程图如图4所示。

图3 短信发送接收流程图

图4 STM32主程序流程图

2.2 STM32与组态王通信子系统的设计

FreeModbus是一个针对嵌入式应用的免费(自由)的通用Modbus协议的移植。目前,Modbus协议的异步串行传输通信方式,对应的通信模式是ModbusRTU和ModbusASCII[5]。组态王内置的单片机通信协议都有这两种模式,ASCII码协议内容较为简单,但其传输数据类型的局限性大,可用于传输数据的寄存器少,而本系统要求进行字符的发送和接收,传输的数据量较大,因此我们选择了ModbusRTU模式对控制器STM32进行配置。

为了实现组态王和STM32单片机之间的通信,在设计中,选择移植FreeModbus协议,通过程序设计将STM32配置为FreeModbus从机,可以通过组态王进行数据的读写。

STM32和组态王的通信子系统可分为:初始化模块、数据接收模块和数据处理及发送模块[6]。初始化模块主要完成波特率设置、串口中断和定时器设置。其中,ModbusRTU是基于串口的数据传输模式,为了实现组态王和STM32单片机之间的通信,必须设置相同的传输模式和串口参数。数据接收模块主要完成串口接收中断和信息帧接收超时的定时器中断处理。数据处理及发送主要根据信息帧完成相关的工作及给主机回复的相关信息。其配置程序流程图如图5所示。

图5 STM32与组态王的通信流程图

2.3 STM32与组态王通信子系统的调试

采用ModbusPoll作为RTU主站软件,用户可以通过该人机界面选择从站地址来查看下位机的操作(读寄存器操作和写寄存器操作)。ModbusRTU的测试目标是RTU主站能否对RTU从站发出请求帧完成相应功能,从站能否解析请求帧及时响应主站请求,发出应答帧。与PC机相连之后,分别对两种功能服务进行若干测试,并根据ModbusRTU协议的内容验证所得到的结果是否正确。主站PC机通信测试如图6所示。

图6 主站PC机通信测试界面图

3 组态监控界面的设计

进入组态王运行系统,显示出组态王运行系统画面,如图7所示,即可看到预约指示灯按照预约状态动态变化和实时的车位数量信息,达到了实时监控的预期目标,保证系统正常运行。通过组态监控画面实时反映预约系统的运行状态,当有预约信息到来时,“请求预约”指示灯1闪烁,“客户信息”处显示当前预约手机号,没预约时指示灯亮绿灯。发送“预约已成功”信息时,“预约已成功”指示灯2闪烁,发送成功亮绿灯,发送失败亮红灯;发送“车位已满”信息时,“车位已满”指示灯3闪烁,发送成功亮绿灯,发送失败亮红灯。

图7 停车场短信预约系统监控画面

4 结 语

组态王和STM32单片机以及GSM模块可以组合成一套经济可靠的数据采集、信息传输系统,应用于停车场,管理人员在监控室就可以了解整个停车场的使用情况,对停车位进行远程监测、调度,降低了劳动成本、提高工作效率,同时使停车资源得到有效利用,对改善城区交通具有一定的积极作用。该系统还可以推广应用到其他需要短信预约系统的场所,这种系统不但可靠、实用、经济,而且设计简单,易于扩充,具有较高的推广价值。

参考文献

[1] STM32F4开发指南V1.1C库函数版本:ALIENTEK探索者STM32F407开发板教程[A].

[2]李涛,马殷元,杨东.基于STM32的GPRS远程监测终端设计[J].电子世界,2012(11):126-127.

[3]霍涛,贾振堂.基寸STM32和SIM900A的无线通信模块设计与实现[J].电子设计工程,2014,22(17):106-110.

[4] SIM900A_AT命令手册_V1.05[Z].2011-10-25.

[5] 严良文,赖雪峰,韩 涛,等.基于 STM32的中央空调控制策略通信方法与实现[J].机械与电子,2014(9):63-65.

[6]宋磊,彭道刚,赵斌斌,等.基于嵌入式STM32的MODBUSRTU协议实现[J].仪表技术,2014(11):33-36.