目前,随着我国经济的高速发展,大家的生活水平都有所提升,而汽车市场的繁荣也引发出停车的难题。据了解,根据我国机动车数量与停车位之比,以及国外发达国家停车产业的发展来看,停车难问题催生出了一个巨大的智能停车场管理设备市场。因此新型的智能停车系统作为停车场管理系统的有力补充,从而形成了智能化更高的停车场管理系统。那这个
一、单片机软件设计
单片机系统的软件设计主要采用C语言,对单片机进行编程实现各项功能。
红外传感器检测
实现停车场智能引导的前提是如何准确的把车位信息通过有效的方式检测出来。根据电路原理,红外传感器检测主要通过检测反射红外线的强弱,输出相应的电压,通过A/D转换输出数字信号,从而进行判断。
红外传感器电压数据的采集是通过AD转换器TLC549来完成的。每次要采集A/D上元件的电压值时,先选中TLC549的片选信号线,使其进行转换工作,然后进过一定的延时后,依照TLC549的数据手册上的时序图,从数据口读取数据。
无线模块软件设计
为保证单片机与上位机之间串行通信的准确率,需要双方约定一定的协议,但考虑到传输的数据帧比较小而且传输的距离不远,因此采用较为简单的数据检错格式。双方传输的一个数据帧为两个字节,第一个字节为信息字节,即所有信息都包含在这以一字节内。第二个字节为检错字节,检错的方法是:两个字节相加为0XFF(十进制255)为准确信息,其它为错误信息。程序开始时双方的握手信号为0XFF,0XFF。单片机使用定时器1作为波特率发生器,串行发送使用查询方式,接收使用终端方式。
二、上位机显示程序软件设计
串行通信函数模块
上位机串行通信的协议与单片机串行协议相同,具体通信流程如下:
Spcomm串口通信控件的基本属性、方法和事件说明如下:
CommName属性:计算机串口端口号的名字,COM1、COM2……,在打开串口前,必须填写好此值。
Parity属性:校验位 None、Odd、Even、Mark、Space等。
BaudRate:设定支持串口通信用的波特率9600,4800等,根据实际需要来定,在串口打开后也可更改波特率,实际波特率随之更改。
ByteSize属性:表示一个字节中,使用多少个数据位收发数据,根据具体情况设定5、6、7、8等。
StopBits属性:表示一个字节中,使用停止位的位数,根据具体情况设定1、1.5、2等。
SendDataEmpty属性:布尔属性,为True时表示发送缓存为空,或者发送队列里没有信息;为False时表示表示发送缓存不为空,或者发送队列里有信息。
StartComm方法:用来打开通信串口,开始通信。如果失败,则会导致串行口错误。错误类型大致分为串行口己处于打开状态,所以不能打开串行口,不能创建读写进程,不能建立串行口缓冲区等。
StopComm方法:用来停止通信串行口的所有进程,关闭串口。
WriteCommData方法是带有布尔型返回值的函数,其中参量pszStr-ingToWrite是要写入串行口的字符串DwSizeaf-
DataToWrite是要写入的字符串的长度。该函数通过一个写线程向串行口输出缓冲区发送数据。发送操作将在后台默认执行。如果写线程PostMessage成功,则返回值是True,若写线程失败,返回值是False。
OnReceiveData,其中Buffer是指向输入缓冲区的指针。BufferLength是从缓冲区收到的数据长度。当输入缓冲区收到数据时,该事件被触发。当输入缓存有数据时将触发该事件,对从串口收到的数据进行处理。
附加功能模块
附加功能模块主要是VIP的设定,当然这只是一个简单的VIP设定,并没有连接数据库,因此只能在程序运行时作一个简单的演示,一旦程序关闭将不能保存VIP信息。设定VIP车位之后,在此车位显示不能停靠,在车位引导时不作为空车位引导。附加功能模块还包括帮助模块和关于我们模块,这两模块不做实际作用。