智能停车引导系统的设计与研究Word下载.docx
《智能停车引导系统的设计与研究Word下载.docx》由会员分享,可在线阅读,更多相关《智能停车引导系统的设计与研究Word下载.docx(21页珍藏版)》请在冰豆网上搜索。
![智能停车引导系统的设计与研究Word下载.docx](https://file1.bdocx.com/fileroot1/2023-1/5/e17e2b72-dc43-4f73-b58f-9588dd2ef45e/e17e2b72-dc43-4f73-b58f-9588dd2ef45e1.gif)
1.3本系统的研究思路
1.3.1研究内容
本系统就停车场“智能停车引导系统”的设计进行探讨。
本设计通过模拟停车场引导系统,设计一个停车场模型来模拟这个系统来了解系统结构和原理。
1.3.2.系统设计的基本思路
本设计使用单片机为停车场的核心控制器,单片机系统采用C语言编程,接受外部输入信号,控制引导的显示;
采用微型计算机为显示中心和数据处理核心中心,显示程序采用Delphi语言;
采用无线串行通信为单片机和微型计算机的数据传输通道;
外部信号的采集是通过红外传感器,将探测到的车位信息送交从单片机;
人机接口方面采用LED灯,可以通过LED灯来显示引导信息;
同时为了配合上述实现,还需要A/D转换器,电平标准转换等多种元器件或者芯片。
2系统方案选择与论证
2.1设计要求
“智能停车引导系统”应用到实际领域有很多不同要求,但是其大体思路与程序结构及功能都是类似的。
由于实际条件限制,本设计自行规定了一系列设计要求,以该要求作为本设计的最终目的:
1.下位机检测车位信息,通过无线串行通信传输给上位机,接收上位机引导信息并显示;
2.上位机实时显示停车场状态,并根据引导方式显示引导信息,引导信息通过无线串行通信传输给下位机。
2.2系统基本方案
根据课题要求,可将系统分为车位检测及引导显示模块、无线通信模块和上位机显示程序模块。
其中车位检测及引导显示模块包括:
主控制器、车位检测模块、引导显示模块;
无线通信模块包括:
下位机无线通信模块和上位机无线通信模块。
图2.1:
“智能停车引导系统”的基本模块方框图
2.2.1各模块方案选择和论证
为实现各模块的功能,以下对各个模块分别做了几种不同的设计方案并进行了论证,并最终选择合适的方案。
1.控制模块
核心控制处理模块是整个系统的关键性单元。
第一它是车位信息的收集单元,通过车位检测的信息将在核心控制处理模块汇集,可以即时更新整个停车场的车位信息。
第二它控制着一个无线通信模块,把即时车位信息通过无线通信模块传输给中央计算机。
第三它通过无线通信模块接收中央计算机传输过来的引导数据,通过处理控制相应的引导灯显示,给予泊车者停车的引导信息。
根据以上要求可供选择的方案有:
方案一:
FPGA/CPLD
“FPGA/CPLD(现场可编程逻辑器件/复杂可编程逻辑器件)具有传统的门阵列的所有特点,内部阵列化的单元排列,具有通用性强、设计灵活、集成度高的特点,既适应集成工艺规则化的特点,又能满足不同用户多功能的要求。
它采用严格的同步逻辑设计,没有反馈环路、多时钟路径、三态逻辑、锁存器和异步复位、置位触发器等,只用了D触发器和逻辑门。
也就是借助综合工具,达到有效控制关键路径的延时,并预测具体实现技术的性能。
”当然,这样会牺牲一部分FPGA资源,但由于硅技术的迅猛发展,硬件资源的浪费已显得微不足道。
方案二:
单片机
“单片机是一种集成电路芯片,采用超大规模技术把具有数据处理能力(如算术运算,逻辑运算、数据传送、中断处理)的微处理器(CPU),随机存取数据存储器(RAM),只读程序存储器(ROM),输入输出电路(I/O口),可能还包括定时计数器,串行通信口(SCI),显示驱动电路(LCD或LED驱动电路),脉宽调制电路(PWM),模拟多路转换器及A/D转换器等电路集成到一块单块芯片上,构成一个最小却比较完善的计算机系统。
这些电路能在软件的控制下准确、迅速、高效地完成程序设计者事先规定的任务。
采用单片机实现可减少系统的外围电路,使系统结构更加简洁、性能更加安全可靠且使功能更加容易修改和扩展
。
”
虽然FPGA/CPLD与单片机相比有更高的学习效率和更高的运行效率,但是由于本系统需要的运算速度和基本数据处理能力单片机已大大满足,考虑到成本及复杂度,选用单片机已经足够。
并且根据实际情况,选用AT89S52单片机比较合适。
2.车位检测传感器
“智能停车引导系统”的一个技术难点就是如何精确的检测停车位状态。
微处理器和中央计算机只有通过正确的车位状态信息才能对车位显示和引导路线的选择进行正确的控制,所以说一个精确的车位检测方法是这个系统实现的一个重要前提。
现今,主流的泊车位检测方法主要有四类:
超声波车位监测,地感线圈车位检测,视频图像车位检测和红外检测。
方案一:
超声波检测
“由于超声波车位检测器不易受干扰,安装方便,将超声波传感器安装在车位上面,向下发射超声波,超声波经过地面或车辆顶部反射又由传感器接收,可获取超声波传输的时间,从而计算出超声波传输的距离
当泊位有车时,超声波传输的距离与无车时是不同的,由此可判断泊位上有无车辆停放。
超声波车位检测器的工作原理是通过测量距离来实现车位检测的。
它由三个部分构成:
单片机控制模块、超声波发射模块和超声波接收模块。
1.单片机控制模块主要负责40kHz超声波脉冲的产生与超声波在介质中传播的时间进行精确的计时。
2.超声波发射模块。
“为了提高发射强度,发射电路由反相器74LS04和超声波换能器构成,用推挽形式将方波信号加到超声波换能器两端,可以提高超声波的发射强度。
输出采用两个反相器并联,用于提高驱动能力
”,如图2。
[6]图2.2:
由74ls04组成的超声波发射电路
3.超声波接受模块。
接收将超声波调制脉冲变为交变电压信号,经运算放大器放大后加至LM567,如图3。
LM567是带有锁定环的音频译码集成块,通过调整能购鉴别40HZ的信号,然后通过一个信号线向外输出信号。
[7]图2.3:
超声波接收电路
方案二:
地感线圈车位检测
地感线圈检测车辆的基本原理如图4所示:
[8]图2.4:
地感线圈检测原理图
车位检测的核心器件是与地感线圈相连接的车辆感应器。
车辆感应器采用先进的锁相环技术。
当线圈上面没有车辆时,车辆感应器和地感线圈之间产生一个平衡点,车辆感应器输出一个低电平到CPU;
当地感线圈上面有车辆时,地感线圈形成的磁场分布状况发生改变,车辆感应器输出高电平到CPU。
检测系统通过对两个信号进行检测判断,即可得到所需的车辆检测信号。
地感线圈检测具有以下优点:
1、使用简单,感应器只需要220V市电和12V直流供电;
2、检测准确,采用了先进的锁相环技术;
3、灵敏度高,具有很高的检测灵敏度,灵敏度可根据需要进行调节。
方案四:
视频图像车位检测
通常,一个摄像头可以同时监控多个车位,但是在检测现场的视频图像中,车位信息极易受到周边物体如树木、建筑物等的阴影和天气变化下雨天和太阳光照较强时等因素的影响通过对大量的检测现场视频图像的分析表明,发现车位上是否泊车存在3个特点:
1.对于单个车位,没有泊车时,该区域具有非常接近的灰度值,从而具有较小的方差有车辆停留时,车位范围内的车体、地面、车窗、车轮等具有不同的灰度,体现为较大的方差;
2.对于单个车位,没有泊车时,尽管由于天气、环境、光照等的影响,该区域图像与背景图像存在一定的线性相关性。
有车停留时,车位范围内车辆的信息与背景图像没有线性相关关系;
3.车辆不论颜色、大小都具有比较丰富的边缘信息,在天气变化时边缘信息也会保留,没有泊车时,车位内边缘信息较少,尽管有阴影,但阴影的边缘信息相对较少而有车停留时,车位内的车辆信息边缘丰富。
然后利用合适的图像处理方法来处理图像进行判别。
例如:
多特征车位检测算法利用了车位内有、无泊车特征差异的特点,提取出每个车位的多个特征参数,并利用这些参数进行联合判决,从而得出该车位有无泊车的结论。
方案五:
红外车位检测
红外光是一种不可见光波,它具有光的直线传播特性,红外光发射器发出红外光后,若遇阻碍物阻挡,将会产生红外光漫反射,当反射足够强时,红外光接收器能够接收并解调出该红外光信号。
换言之,当红外光接收器接收到红外光发射器所发射的信号后,说明在有效探测区域中有阻碍物存在。
当车位上有物体时就能在接收信号上出现变化,从而判别车位上是否有车。
由于基于视频图像技术的车位检测投入较大,成本较高,但精确程度高,适用于资金投入大,技术要求高的大型或超大型停车场。
超声检测和地感线圈检测技术,相对成本低,而且技术成熟,适用范围广。
超声检测装置安装需要安装在车辆上方一般适用于地下停车场,而地感线圈检测装置安装需要破坏地面,一般适用室外停车场。
虽然红外探测技术精确度不高而且受环境影响大,但考虑到实验条件以及课题要求,红外车位检测已经能满足所有要求,所以选择红外车位检测法。
3无线通信
无线通信主要实现无线数据传输功能。
无线传输的正确率与可靠率是整个系统的关键,它是整个系统的通信信道。
现今的无线通信方式主要有:
无线电、蓝牙和无线收发模块。
无线电(卫星通信)
“卫星通信是一种利用地球上空的同步或非同步通信卫星作为中转来完成远距离通信的一种通信方式,主要特点是传输距离远、带宽大、频率高。
中频带通软件无线电结构即数字中频结构可以实现卫星通信,首先将数千兆的射频信号经过下变频处理,变换到几十兆至上百兆的中频频率,然后在中频上进行软件无线电的数字处理,即数字中频技术。
在卫星通信的体系结构中,最关键的环节就是调制解调器。
它不仅是数字基带信号和模拟信号之间相互转换的节点,也是无线电通信技术从起源至今的核心概念。
卫星通信调制解调器采用数字中频结构对信号在中频进行宽带数字化处理,不仅在一定程度上简化了接收机前端电路设计,而且配以后续的数字化处理,具有更好的信号带宽适应性以及可扩展性,是一种优化的设计方案
”
蓝牙通信
“蓝牙无线技术采用的是一种扩展窄带信号频谱的数字编码技术,通过编码运算增加了发送比特的数量,扩大了使用的带宽。
蓝牙使用跳频方式来扩展频谱。
跳频扩频使得带宽上信号的功率谱密度降低,从而大大提高了系统抗电磁干扰、抗串话干扰的能力,使得蓝牙的无线数据传输更加可靠。
在频带和信道分配方面,蓝牙系统一般工作在2.4GHz的ISM频段。
起始频率为2.402GHz,终止频率为2.480GHz,还在低端设置了2MHz的保护频段,高端设置了3.5MHz的保护频段。
共享一个公共信道的所有蓝牙单元形成一个微网,每个微网最多可以有8个蓝牙单元。
在微网中,同一信道的各单元的时钟和跳频均保持同步
方案三:
无线串行通信
无线通信模块来实现无线数据传输,现在无线通信模块比较多,所以以普通无线通信模块为例,一般接口为TTL电平,可以直接和单片机的异步通信口连接。
数据的发送和接收都是透明式的,用户无需详知其通信的具体原理,只需简单的设置和使用就行。
本系统下位机系统电路为TTL电路,而上位机系统是标准的RS-232接口,所以需要进行电压标准转换。
MSC-51单片机通过无线传输模块接收上位机(PC机)发来的命令,判断后执行相应的程序。
电脑COM插座,为一八针插座,插针位置及各接口定义如下。
图2.5:
插针位置
图2.6:
各接口定义
4计算机显示程序编程语言
在点对点通讯或双级微机控制系统中,常常要进行Windows串行通讯编程。
而在Windows环境下,VisualBasic和Delphi都是功能十分强大的编程工具,而且它们不要求程序员掌握内部运行机制。
1.VB中有专门管理通讯的控件。
“其对应文件名为:
Mscomm.vbx,可加入到工具箱中。
此控件有几个重要属性通讯编程时要用到:
CommPort属性用于设定通信控制及与哪个串行口连接;
Settings属性设定通信的信息格式;
PortOpen属性置True或False可打开或关闭通讯口;
Inputlen属性表示允许从接收器中读取的字符个数,一般都置零即全部读出;
Input,Output为读取接收器中的字符或将字符写入发送器中;
InBufferCount、OutBufferCount属性值是串行口当前实际读入或写出的字节数;
DTREnable、RTSEnable属性值置True或Flase表示收发器是否准备就绪。
此外CommEvent属性在程序运行时返回通讯错误产生的对应值,用以在程序中了解通讯的情况
2.用Delphi实现串口通信,常用的方法有:
使用控件,如Mscomm和Spcomm控件等;
使用API函数;
在Delphi中调用其它串口通信程序。
使用API方法的优点是比较适合于编写较为复杂的低层次通信程序,但缺点是编写串口通信程序较为复杂,需要掌握大量通信知识。
Spcomm是Small-PigTeam开发的一个第三方Delphi串口控件,该控件具有丰富的与串口通信密切相关的属性及事件,提供了对串口的各种操作,且编程简单、通用性强、可移植性好。
在Delphi软件开发中已经成为一个被广泛应用的串口通信开发控件。
“Spcomm共实现了三个类:
串口类Tcomm、读线程类TreadThread以及写线程类TwziteThread[1]。
Tcomm的某个实例在方法StartComm中打开串口,并实例化了一个读线程ReadThread和一个写线程WriteThread,它们和主线程之间进行消息的传递,实现串口通信
VB是解释性语言而Delphi可以通过编译生成真正的可执行文件,加之
它对硬件直接操作,因而后者的运行速度比前者快。
而且考虑到我对语言熟悉程度选择Delphi比较适合。
2.2.2方案选择
(1)控制模块:
AT89S52;
(2)车位检测模块:
红外传感器TCRT5000+TLC549;
(3)引导显示模块:
发光二极管;
(4)无线串行模块:
MAX232CPE+无线收发模块;
(5)显示程序模块:
Delphi语言。
3系统硬件的设计与实现
3.1系统硬件的基本组成部分
本设计模块选择如上,但是其实现及测试还需要进一步完善。
主要设计如下:
3.2主要单元电路的设计
3.2.1车位检测模块电路设计
TCRT5000传感器是采用高发射功率红外光电二极管和高灵敏度光电晶体管组成。
主要应用领域是:
电度表脉冲数据采样,传真机碎纸机纸张检测,障碍检测和黑白线检测。
“在检测过程中传感器的红外发射二极管不断发射红外线,当发射出的红外线没有被发射回来或被反射回来但强度不够大的时,光敏三极管一直处于关断状态,此时模块的输出端为低电平,指示二极管一直处于熄灭状态;
被检测物体出现在检测范围内时,红外线被反射回来且强度足够大,光敏三极管饱和,此时模块的输出端为高电平
”根据TCRT5000红外传感器的数据手册显示,红外线反射接收到之后输出的电流约为0.001A,因此串联一个5欧电阻输出其电压。
通过AD转换芯片(TLC549)进行AD转换,单片机根据数据判断停车位状态。
主要电路图如图3.1所示:
图3.1:
红外检测及A/D转换电路图
由P00来发出片选信号,启动TLC549进行A/D转换。
运行时红外传感器产生的电压转换到ANLGIN上,经AD数据转换后,单片机可以通过P20读取相应的磁场的数值量。
3.2.2功能控制部分的单元电路设计
(1)主控制器电路的设计
主控制电路即单片机的最小系统,如图3.2所示。
图3.2:
AT89S52的最小系统和外围电路
(2)LED引导灯电路设计
LED引导灯电路就是简单的发光二极管电路,如图3.3:
图3.3:
LED引导灯电路
(3)无线串行模块电路设计
无线串行模块分为两部分:
单片机无线模块和上位机无线模块。
单片机通过P3.0口(RXD)和P3.1口(TXD)传发数据,无线模块同样以这两个口收发。
在无线模块和上位机相连的电路中,因为无线模块电压标准与上位机不同。
无线模块电压为2.7-3.6V,可以与单片机的I/O口直连,但是上位机电压标准为RS232标准(逻辑“1”为-5V~-15V,逻辑“0”为+5V~+15V),所以需要接MAX232芯片进行电压转换。
具体电路图如下:
图3.4:
单片机无线模块电路
图3.5:
上位机无线模块电路
4系统的软件设计与实现
4.1单片机软件设计
单片机系统的软件设计主要采用C语言,对单片机进行编程实现各项功能。
[14]
程序设计环境:
PC机,WindowsXP;
程序设计软件:
KeilVision软件及星研仿真软件。
程序功能:
实现单片机通过红外传感器对车位的检测、对信息发送与接收以及LED灯按信息显示等功能。
4.1.1红外传感器检测
实现停车场智能引导的前提是如何准确的把车位信息通过有效的方式检测
出来。
在本设计中采用了红外传感器进行车位的检测。
根据上面电路原理,红外传感器检测主要通过检测反射红外线的强弱,输出相应的电压,通过A/D转换输出数字信号,从而进行判断。
图4.1:
红外检测流程图
红外传感器电压数据的采集是通过AD转换器TLC549来完成的。
每次要采集A/D上元件的电压值时,先选中TLC549的片选信号线,使其进行转换工作,然后进过一定的延时后,依照TLC549的数据手册上的时序图,从数据口读取数据。
图4.2:
数据采集流程图
TlC549的时序操作根据下图可知,先将CS拉低选中A/D转换器,再给CLOCK8个下跳沿用于数据采集,之后拉高CS放弃选中,再拉低CS,之后的8个CLOCK下跳沿后就可以读出该次转换的数据。
[15]图4.3:
TLC549时序图
“
”[15]
公式4.1:
TLC549(8位ADC)读取数值的转换公式
4.1.2无线模块软件设计
为保证单片机与上位机之间串行通信的准确率,需要双方约定一定的协议,但考虑到传输的数据帧比较小而且传输的距离不远,因此采用较为简单的数据检错格式。
双方传输的一个数据帧为两个字节,第一个字节为信息字节,即所有信息都包含在这以一字节内。
第二个字节为检错字节,检错的方法是:
两个字节相加为0XFF(十进制255)为准确信息,其它为错误信息。
程序开始时双方的握手信号为0XFF,0XFF。
单片机使用定时器1作为波特率发生器,串行发送使用查询方式,接收使用终端方式,具体流程图如下:
图4.4:
单片机串行通信流程图
4.2上位机显示程序软件设计
上位机显示程序系统的软件设计采用Delphi编程语言,主要是对PC机串口编程与图像的显示。
Delphi7.0。
通过串口接收下位机传送的车位,进行实时的现实停车场所有车位状况,并且依照引导方式计算引导路径显示路径,并把路径信息转换后传输给单片机。
程序主要分三个模块:
串行通信函数模块、图像显示模块和附加功能模块。
4.2.1串行通信函数模块
上位机串行通信的协议与单片机串行协议相同。
具体通信流程如下:
图4.5:
上位机串行通信流程图
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(pDataToWrite:
PChar;
dwSizeofDataToWrite:
Word)方法是带有布尔型返回值的函数,其中参量pszStr-ingToWrite是要写入串行口的字符串,DwSizeaf-DataToWrite是要写入的字符串的长度。
该函数通过一个写线程向串行口输出缓冲区发送数据。
发送操作将在后台默认执行。
如果写线程PostMessage成功,则返回值是True,若写线程失败,返回值是False。
OnReceiveData(Buffer:
Pointer;
BufferLength:
Word),其中Buffer是指向输入缓冲区的指针。
BufferLength是从缓冲区收到的数据长度。
当输入缓冲区收到数据时,该事件被触发。
当输入缓存有数据时将触发该事件,对从串口收到的数据进行处理。
4.2.2图像显示模块
图像显示主要的功能是:
1.根据车位信息显示停车场总体状况;
2.依据计算的引导路径显示路径。
图4.6:
图像显示流程图
4.2.3附加功能模块
附加功能模块主要是VIP的设定,当然这只是一个简单的VIP设定,并没有连接数据库,因此只能在程序运行时作一个简单的演示,一旦程序关闭将不能保存VIP信息。
设定VIP车位之后,在此车位显示不能停靠,在车位引导时不作为空车位引导。
附加功能模块还包括帮助模块和关于我们模块,这两模块不做实际作用。
5系统测试与分析
为了确定整个系统的功能性、稳定性以及与系统要求的符合程度,我对系统关键部分和系统功能进行实际的测试。
主要的目的是发现系统的错误和不足之处,找出原因并根据这些原因对系统的硬件及软件进行修改以达到系统要求。