摘 要
铁路与公路在平面上的交叉被称作平交道口,是维护铁路和公路交通安全的有效手段。其中,平交道口的道口是交通信号必不可少的一部分,道口信号解决了铁路行车与公路车辆的协调运行问题,大大减少了交通事故的
发生。
本课题为基于单片机的平交道口信号防护系统设计与仿真,首先设计了平交道口防护系统的硬件电路,包括预
警部分、显示部分、栏木控制部分和检测部分。并在Protues8软件中绘制出仿真硬件电路图。然后利用Keil5软件对
单片机AT89C51进行软件编程,将编译程序烧录到仿真软件Protues8中,最终调试仿真实现平交道口防护系统正常运
作工作状态和故障停止状态。其中,正常工作状态下,当列车接近平交道口时,红灯闪亮、栏木落下并发出警报,
当列车通过平交道口后,红灯熄灭白灯亮起、栏木升起、停止报警并恢复自检状态;故障工作状态下,停止道口设
备运作,便于工作人员检修和保证人员安全。
关键字:单片机,平交道口,Protues,Keil
1绪论
1.1平交道口现状及问题
当下,我国有平交道口11676处,有人看守的平交道口有2316处、无人看守的平交道口有9360处[7]。
为推动国民经济快速持续健康发展,提高我国在交通运输行业上的话语权,也为适应市场经济的需要,铁路经
过了多次大改造,便捷人们的出行,缩短了人们的行程时间,但极快的列车运行速度也同样引起了新的安全问题,
道口安全面临更大的挑战。在2003年道口交通事故频频发生,其中机动车辆与火车抢道造成的事故占道口交通事故
的92%以上[8]。无人看守道口的交通事故更是在所有道口交通事故的绝大部分[9],是造成人员伤亡的“危险深
渊”。
1.2研究的目的和意义
平交道口为铁路与公路的交汇处,列车与汽车交叉行驶,稍微管理不当就会导致交通事故的发生。为保障平交
道口处的交通安全,避免因无人看守道口或看守人员疏忽导致交通事故的发生,采取自动控制将是一种万全之策。
道口自动报警系统提高了道口来车报警的可靠性和准确性,可以有效的降低误报、错报事件的几率,从而有效
的避免道口交通事故的发生。
而且,道口安全问题说到底还是人的问题,只要及时准确的将来车情况知道口工和行人,并且道口工采取放杆
禁止通行、立岗接车,行人自动停止等待列车通过,这样皆可以避免事故的发生,而且由于我国铁路的实际条件和经济状况考虑,国外铁路的一些设备和措施在我国也不是效果很好,所以立足我国铁路实际情况,开发适合的道口
报警设备具有重大意义[10]。
1.3平交道口交通事故原因分析
中国很多公路没有设置机动车中间分隔带,以分开不同流向的交通流;也没有设置机动车与非机动车或行人分
隔带,以分离机车与非机动车或行人交通;平交道口设计也几乎没有采用接入管理技术[11]。所以,在平交道口处
会存在行人与列车没有进行合理的分流的情况,会存在拥堵问题,加大交通事故发生的几率。尤其是在中国农村,
人口基数大,在城乡结合部或者村庄附近的平交道口,因为没有合理的交通管制规则和严格的检查措施,且部分交
叉口使用者安全意识淡薄,致使机动车、非机动车在平交道口出现混行现象,导致平交道口的交通事故发生几率大
大增加。
总结一下,平交道口发生事故的重要原因:
(1)交通信号设计不合理,信号设备性能差。信号相位不合适,清场时间不够,信号灯亮度差,高度和尺寸不
合理,信号灯可视性不好[12]。
(2)平交道口对事故发生前的及时应对能力,和事后处理能力不足。
(3)平交道口交通标志设置存在不合理或标志破损的现象存在,使司机对道路信息 没有得到了解,加大事故
发生的可能性。即使有些平交道口虽然设置交通标志,由于位置设置存在问题,会收到树木等遮挡,造成司机对路
况信息缺失的情况。
(4)平交道口建立位置不合理。在早期建设平交道口时,由于技术不成熟,对平交道口位置的选取没有科学的
衡量,这些保留至今平交道口许多仍在使用,部分位于几何水平曲线或斜坡上,会造成视距不良,进而导致驾驶员
反应时间不充足,造成操作上失误。
(5)路面平整度和抗滑性不好,排水困难,排雪不及时、照明设施不完善等。交通环境错综复杂,机动车和非
机动车混行,机动车和行人混行,非机动车和行人混行,另外平交道口还存在随意停车现象。
(6)平交道口部分存在周围公共场所多,街道化严重。加油站、公交站点、商店等人流大的设施距离平交道口
过近,即影响了平交道口视距,也导致交通事故的发生几率增加。
1.4平交道口安全改善对策
(1)对平交道口信号机进行合理设置,提升信号灯性能。必须对信号相位进行合理设计。及时对信号灯进行升
级换代,保证安全。也可设置行人专用过街信号灯。
(2)在列车接近时,采用信号标识,报警提示,栏木自动阻挡等方式禁止行人通行,对行人与非机动车提供必要的
保护举措。
(3)合理规划好平交道口交通标识位置。各标志都应按照国标《道路交通标志和标线》(GB 5768-1999)设
置。在道口处应设置限速标志。另外在某些可视性不好区域,可采用将立柱式交通标志改为悬臂式或悬挂式。定期
对交通标志进行检查养护,保证完好性和可视性。
(4)对早期保留下来的平交道口进行改位重建,进行科学细致的研究后,合理重建道口。如存在无法移位的情
况,需设置平交道口警告标志和限速标志,尽可能的清除视距内的障碍物,保持视距良好,减少交通事故的发生。
(5)严格对平交道口进行管理,优化交通环境。严禁道口停车,对大量交通流进行分流,避免因拥堵而导致交
通事故。对路面质量进行提升,完善排水、排雪和照明设施等,且需定期检查。
(6)对影响平交道口正常运作的场所进行拆迁,维持交通安全,避免发生交通事故,对平交道口附近的用地进
行严格管理。
1.5 研究思路及章节安排
使用上下行接近点、到达点三个传感器模拟列车经过时的状况,列车的压力使传感器感应出电信号,转换后传
递到单片机中,再经过单片机的运算处理,再将数字量转化为模拟量发送给道口栏木、信号机及报警器。如设备需
要检修或发生突发情况时,故障按钮的设置也是必要的。防护系统原理图如图1.1所示。
图1.1 防护系统原理框架图
本论文基于单片机的平交道口信号防护系统设计与仿真将从四部分进行介绍,绪论、平交道口防护系统概括、
基于单片机的平交道口信号防护系统硬件电路设计、基于单片机的平交道口信号防护系统硬件电路设计。章节安排
如下:
本章为论文第一部分(绪论部分),从大体上介绍了平交道口在当代的现状和存在的安全隐患、为什么要研究
基于单片机的平交道口信号防护系统及实现后的意义、对平交道口问题进行分析及对策,以及论文的整体思路,描
绘出本论文的整体框架。
第二章通过对当前仍在使用的平交道口信号进行简单介绍,了解平交道口运行机制和道口设备的功能。
第三章通过对第二章的分析,选取仿真的元件来模拟平交道口信号防护系统,对所选取的器件进行介绍,来执
行道口设备的哪些功能,以及硬件电路的绘制过程,对进行仿真设计后的电路进行介绍,将平交道口区域化,介绍
各部分实现功能。
第四章根据第三章所绘制的硬件电路,编写代码,驱动栏木、信号机、报警器等设备,实现仿真,并对驱动各
器件的代码进行简单介绍。
2平交道口防护系统概括
2.1系统简介
DX-TH2型道口自动信号设备是一种磁电传感器复式采样、多路信息采集、有线传输、集中自动控制的新型道口
安全预警设备。适用于不同牵引类型,不同闭塞制式的单线、复线、多线区段的区间道口或邻近车站的道口。系统
自成一体,与其他设备无电气联系。
2.2系统适用范围
DX-TH2型道口自动信号设备的可靠性(无漏检漏报)、安全性(设备故障反应能力)符合铁路道口信号的标
准,成为上海铁路局的局标产品,广泛使用在国铁线路上。
2.3平交道口平面布置图
平交道口可划分为接近点部分、到达点部分、室内部分。其平面布置图如图2.1所示。
图2.1 平交道口平面布置图
(1)接近点
接近点区域由接线盒、接近发送器、接线端子、防雷单元、聚磁差动磁电传感器(简称磁头)、引接线组成,
如图2.2所示。
(2)到达点
到达点区域由磁头、信号机、音响器、接线盒、引接线等组成,如图2.3所示。
(3)室内设备
图2.4 平交道口室内设备平面布置图
Figure 2.4 Level crossing indoor equipment layout
室内设备由机柜、主机、电源盒、蓄电池、闪光控制器、电缆配线板、显示控制盘等组成,如图2.4所示。
2.4工作原理
(1)正常工作时
设备正常的情况下:平时处于自检守侯状态,显示控制盘每约20秒可见模拟一趟列车接近道口的自检过程,室
内喇叭发出一次“嘀、嘟”声,公路信号机亮白灯。
当列车到达上行(或下行)接近点时,两个车轮先后有序地通过接近点的两只聚磁差动磁电传感器(简称磁
头),磁头输出车轮正向运行的脉冲,接近控制器即以阻断正常自检脉冲的形式使主机发出该方向列车接近的报警
声。
公路信号机白灯熄灭红灯闪亮,同时发出“当、当、当”的钟声和交替的语音“行人车辆请注意,火车来了,请不
要抢道,抢道危险”。
当全部车轮通过到达点磁头后约7秒钟,主机自动停止报警,设备恢复自检状态。
当列车从另一个接近点驶离道口时,由于磁头车轮输出反向运行的脉冲,不会引起误报警。
(2)设备出现重要故障时
例如:接近点两个磁头同时故障(被盗)、接近控制器故障、电缆故障、相关信号传输的防雷系统故障、主机
故障等,室内喇叭发出“注意、设备故障”的提示,显示控制盘上正常的自检状态停止,光带指示出现故障的通
道。公路信号白灯熄灭,表示道口信号设备停用。
例如单个传感器故障,某个指示灯故障、公路信号灯板故障等都通过显示控制盘上示意给使用者,便于及时维
修。
2.5传感器的特点
道口接近点的列车接近信息用两只聚磁差动磁电传感器(简称磁头)复式采样(安装在同一钢轨上相距约一
米),具有以下优点:
(1)设备正常情况下,列车接近时车轮必定按次序、有方向地通过两只磁头才为接近控制器所确认,有效地克
服了人为用铁器触碰磁头造成的误报警。
(2)磁头因环境恶劣属于故障易发部件,系统时刻对其进行检测,一旦发现其中一只故障,自动转换工作方
式——由单磁头确认列车运行方向,保证系统正常工作。同时通过显示盘向使用者发出指明方位的故障告警,磁头
故障不必停用设备,为设备检修提供了时间。
2.6系统特点
在设计中严格执行国标《铁路站内道口信号设备技术条件》(GB-10493-89)及《铁路区间道口信号设备技术条
件》(GB-10494-89)的技术及安全要求,建立了严密的环路自检系统,随时将故障状态通过显示控制盘反映给道口
看守人员,技术性能符合铁路信号设备B/T2615—94 铁路信号故障—安全原则。
接近点设备与主机以两芯电缆连接,由接近控制器控制传输低频脉动电流,具有接近点设备可远距离设置,抗
干扰能力强,系统工作稳定的特点。
(1) 将磁头、接近控制器、电缆等设备纳入主机检测系统,形成一个整体,可及时发现各部位故障并发出告
警。
(2)使系统设备配置灵活,投资低廉。
(3)严密的交叉自检环路使电路的各部分器件在动态中受到全面的检查;检查过程模拟列车接近道口的报警过
程并通过控制显示盘反映给使用者;具备完善故障报警显示及语音报警提示功能。
(4)采用直观形象的道口显示控制盘,以光带指示列车运行的过程,全自动控制。
(5)电源采用交流电源加后备电源系统,交流停电后,公路信号机停止工作,但室内报警功能可维持72小时以
上,适用于无专用铁路电源的乡村道口。
(6)具备完善的防雷功能:防雷设备布置在交流电源、接近点设备以及电缆在机柜的接入端。
(7)室内设备集中安装在机柜内。
(8)DX-TH2型闪光控制器控制信号机按道口信号国标要求,在设备正常且无列车接近的情况下亮白灯,当列车
接近报警时红灯闪亮。发生影响列车接近报警的故障时,白灯熄灭。道口信号点灯单元采用超高亮LED灯板,视觉效
果良好。
(9)符合国标要求的道口信号机构,采用铝合金铸压成型;各种告知标牌采用铝合金反光膜,无论白天还是黑
夜都能醒目地提醒过往道口的车辆行人。
(10)室外设备按铁路电务设备的要求设计和安装,与现有铁路设施一致,减少设备被盗事件发生。满足
TB10070-2000 铁路区间道口信号设计规范。
3基于单片机的平交道口信号防护系统硬件电路设计
3.1 CPU部分
CPU使用单片机进行控制,经过比较后,选取AT89C51芯片来实现对整个仿真电路控制和运作,达到全区域控制
的目的。
3.1.1 AT89C51简介
AT89C51是一种带4K字节FLASH存储器的低电压、高性能CMOS 8位微处理器。此单片机具有功能全、功耗小、工
作稳定的特点,且芯片内部集成有可擦写EPROM程序存贮器,能够让硬件电路连接变得更加简洁,而且能够大大提高
系统的抗干扰能力。AT89C51芯片还具有多组I/O接口,能够控制大量的电路元件,提高整个硬件电路的多种控制功
能。
P0口是一组具有8位漏极开路型双向I/O口,又为地址/数据总线复用口。当此引脚作为输入口使用时,每位能驱
动8TTL逻辑门电路,对端口写“1”可作为高阻抗输入端使用。在访问外部数据存储器或程序存储器时,这组口
线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。
P1是一个8位双向I/O口,且内部自带上拉电阻,P1的输出缓冲级可驱动4个TTL逻辑门电路。对端口写“1”,需
经过内部上拉电阻把端口拉到高电平。作为输入口使用时,由于上拉电阻的存在,某个引脚被外部信号拉低是
会输出一个电流。
P2是一个8位双向I/O口,且内部自带上拉电阻P2的输出缓冲级可驱动4个TTL逻辑门电路。在基于P1口的功能
上,P2在访问外部程序存储器或16位地址的外部数据存储器时P2口送出高8位地址数据。在访问8位的外部数据
存储器时,P2口线上的内容在整个访问期间不改变。
P3是一个8位双向I/O口,且内部自带上拉电阻P2的输出缓冲级可驱动4个TTL逻辑门电路。同时为闪烁编程和编
程校验接受一些控制信号。P3的引脚除具有P1的功能外,还具有第二功能。P3.0也为RXD具有串行输入口的功
能,P3.1也为TXD具有串行输出口的功能,P3.2也为INT0具有外部中断0的功能,P3.3也为INT1具有外部中断1的
功能,P3.4也为T0具有计数器0外部输入的功能,P3.5也为T1具有计数器1外部输入的功能,P3.6也为WR具有外
部数据存储器写选通的功能,P3.7也为RD具有外部数据存储器读选通的功能。
根据AT89C51引脚特性,我们选取不需要外接上拉电阻的P1、P2、P3口进行连接,简化电路,且这32各接口为双
向I/O口,功能相似,便于处理。
3.1.2 单片机最小系统基本电路
(1)时钟电路
时钟电路进行定时发送和接收命令,当AT89C51接收到脉冲信号时,就开始执行一次或多次命令。保证信号的传
输,AT89C51中具有精度和稳定性高的振荡器进行振荡提供计时,根据振荡的频率来决定AT89C51运行程序的速度。
图3.2为单片机的时钟电路:
图3.2 时钟电路示意图
FIG. 3.2 Schematic diagram of clock circuit
(2)复位电路
电路每次开始运行或工作完毕进行下次循环时,不可能以上次工作时的命令为起点,会造成整个线路完全随
机,具有很大的不确定性,因此为保证每次电路工作时,要回到最初的工作状态,所以复位电路必不可少。为保证
系统能够可靠的复位,就必须保证RST引脚的高电平时间,图3.3为AT89C51的复位电路:
3.2电源部分
考虑到各部分元件正常工作电压以及资源利用率,使用+5V电源为各芯片供电,以及蜂鸣器、传感器等进行供
电。
3.3面板显示部分
在平交道口处信号灯采用双灯信号显示,当无列车靠近接近点时,处于自检状态,公路信号机白灯常亮。当列
车靠近到达点时,公路信号机白灯熄灭,红灯开始闪亮。
在仿真电路图中,显示模块为白灯和红灯显示的二显示灯位。当无列车接近时,接近点U3、U7传感器和到达点
传感器U5显示均小于100Kpa,此时信号机亮白灯(因为Protues8中不含有白色LED灯元件,故采用白炽灯灯泡表
示),并处于自检状态。当上行列车通过接近点传感器U3时,U3感受到压力变化,显示高于100Kpa,AT89C51芯片传
递上行列车接近信号,使信号机的红色灯光闪烁,表示列车接近平交道口,提醒行人和车辆注意安全。而当,列车
经过到达点时,即传感器U5大于100Kpa时,表示列车已经过平交道口,平交道口信号机的红色灯光闪烁7秒后,红灯
熄灭,白灯亮起,道口恢复自检状态。由于为上行列车经过,所以当列车经过传感器U7时,会提供反向脉冲,不会
引起信号灯的红灯闪烁。列车下行通过同理。图3.4与图3.5表示两种状态下的灯位显示。
本设计采用两种连接方式,两种连接方式都可以,白炽灯的连接方式保证了供电的稳定性,红灯的连接方式则
便于实施,节约成本。需根据实际情况,择优选择。
3.4栏木控制部分
平交道口的栏木采用直流电动机进行控制,依靠电动机的正转与反转来控制对道口栏木的上升与落下。对电动
机的控制使用L293D芯片进行控制。
3.4.1直流电动机简介
直流电动机结构由永磁体(定子)、线圈(转子)和换向器组成。
直流电动机是一种将电能转化为机械能的元件。直流电动机一般有两个电机,当电级正接时,电动机正转,当电极
反接时,电动机反转。
3.4.2 L293D芯片
L293D为思路高电流板H驱动器。可用于连接控制电动机的运作,每个输出都是一个完整的图腾柱驱动电路,带
有一个达林顿晶体管和一个伪达林顿源。内部具有钳形二极管,具有过热保护的优点,保证电路安全,防止发生意
外。且可以控制速度和方向,满足本次设计的要求,故选用L293D芯片。L293D芯片引脚及位置如图3.6所示。
表3.2 L293D引脚与功能
Tab. 3.2 L293D pin and functions
引脚 功能
1,2EN 启用驱动器通道1和2(高可用有效输入)
(1-4)A 驱动器输入,同相
(1-4)Y 驱动输出
3,4EN 启用驱动器通道3和4(高允许有效输入)
散热器和接地 设备接地和散热器引脚。通过多个实心通孔连接到印刷电路板接地层
VCC 1 用于内部逻辑转换的5V电源
VCC 2 驱动器的电源VCC 4.5 V至36 V
当L293D芯片的EN引脚为低电平时,控制直流电动机断电,直流电动机处于停止运作状态。当L293D芯片一号输
入引脚为高电平,二号输入引脚为低电平,EN引脚为高电平时,控制直流电动机转动,直流电动机处于顺时针转动运作状态。当L293D芯片一号输入引脚为低电平,二号输入引脚为高电平,EN引脚为高电平时,控制直流电动机转
动,直流电动机处于逆时针转动运作状态。当L293D芯片一号输入引脚为低电平,二号输入引脚为低电平,EN引脚为
高电平时,直流电动机处于待机状态,不转动。当L293D芯片一号输入引脚为高电平,二号输入引脚为高电平,EN引
脚为高电平时,直流电动机刹停,瞬时结束运作停止转动。
表3.3 L293D功能表
Tab. 3.3 L293D function table
1A/3A 2A/4A EN 电机状态
X X 0 停止
1 0 1 顺时针转动
0 1 1 逆时针转动
0 0 1 停止
1 1 1 刹停
在仿真电路中,栏木控制模块为L293D与直流电动机相组合,AT89C51将接收到的信号经过P2.0,P2.1引脚处理
传递到L293D的IN1,IN2引脚,根据输入信号的高低电平信号计算处输出信号的电位,在经过OUT1、OUT2引脚作用在
电动机上,实现直流电动机的正转与反转,达到栏木升降的目的。如图3.7所示。
3.5预警部分
预警板采用蜂鸣器进行报警,采用两种不同频率的蜂鸣来进行预警提示,当无列车接近时,室内喇叭会处于自
检状态,当列车接近时,会放出“当、当、当”的钟声和交替的语音“行人车辆请注意,火车来了,请不要抢道,
抢道危险”,我们用另一种频率的蜂鸣器来代替,模拟实验。
在仿真电路中,预警部分与显示部分工作状态类似,在接近点传感器U3、U7与到达点传感器U5均显示小于
100Kpa时,即无列车接近时,beep1蜂鸣器在室内不断发出声响,表示处于自检状态,而当上行接近点传感器U3或下
行传感器U7显示高于100Kpa时,表示列车接近平交道口,beep1蜂鸣器停止声响,改为道口处的beep2蜂鸣器发出不
同声响的警示声,提醒列车接近该平交道口。当到达点传感器U5显示高于100Kpa时,列车已通过平交道口,beep2蜂
鸣器将在7秒后停止声响,beep1蜂鸣器开始响起,恢复自检状态。
3.6传感器
3.6.1聚磁差动磁电传感器的器件选择
聚磁差动磁电传感器在Protues8软件中无该元件,且该元件不易在该软件中进行模拟,难以实现仿真,只能采
用相近的传感器进行代替。
压力传感器是系统的重要组件,本次毕业设计采取美国摩托罗拉公司的集成压力传感器。该传感器能够发出与
所施加压力呈线性关系高精度模拟输出电压。且可以简化电路,提高稳定性和抗干扰能力,且满足平交道口要求,
具有温度补偿能力的压力传感器。MPX4115压力传感器具有薄膜镀金属,且采用了高级微电机技术,是一个硅压力传感器。
由表3.3和表3.4可知,MPX4115的一号引脚为输出引脚,将传感器信息通过ADC0832传递到单片机中,二号引脚
为接地引脚,三号引脚接入电源,供电电压为4.85V到5.35V,所以采用+5V电压。该传感器能高质量的模拟输出信号
并持续提供一个均衡压力。当温度在0℃到85℃时,误差不超过1.5%,具有-40℃到125℃的温度补偿。且响应速度
快,有利于信息的及时传输。
本设计采用三个MPX4115传感器来代替聚磁差动磁电传感器,其中U3传感器为上行接近点磁头,U5传感器为到达
点磁头,U7传感器为下行传感器磁头。
表3.3 MPX4115管脚说明
1 2 3 4 5 6
VOUT GND VS N/S N/S N/S
Tab. 3.3 DESCRIPTION of MPX4115 pins
表3.4 MPX4115特性参数
Tab. 3.4 MPX4115 Feature Parameters
参数 符号 最小 典型 最大 单位
压力范围 Pop 15 - 115 KPa
供电压力 Vs 4.85 5.1 5.35 Vdc
供电电流 Lo - 7.0 10 mAdc
最大压力偏置(0℃-85℃)@VS=5.0V Vpss 0.135 0.204 0.273 Vdc
满量程输出(0℃-85℃)@VS=5.0V Voff 4.725 4.794 4.863 Vdc
满量程比例(0℃-85℃)@VS=5.0V VFSS 4.521 4.590 4.695 Vdc
精度(0℃-85℃) - - - ±1.5 %VPSS
灵敏度 V/P - 45.9 - mV/KPa
响应时间(10%-90%) tR - 1.0 - ms
3.6.2模数转换芯片选择
MPX4115生成的是模拟电压,无法传递给AT89C51单片机数字信号,必须采取其他媒介进行模数转换才能传达电
信号。根据电路的实际需求,以及电路实现的难易程度和相应的性能指标,可以采取ADC0832来实现模拟量的转
化。
3.6.3 ADC0832简介
ADC0832是本设计采用的一种具有双通道A/D转换的8位分辨率的一种芯片,该芯片在5V电源供电时输入电压在0~5V之
间,
Fig. 3.8 ADC0832 pin representation diagram
15
表3.5 芯片引脚说明
Tab. 3.5 Description of chip pins
引脚 功能
CS_ 片选使能,低电平芯片使能。
CH0 模拟输入通道0,或作为IN+/-使用。
CH1 模拟输入通道1,或作为IN+/-使用。
GND 芯片参考0 电位(地)。
DI 数据信号输入,选择通道控制。
DO 数据信号输出,转换数据输出。
CLK 芯片时钟输入。
Vcc/REF 电源输入及参考电压输入(复用)。
3.6.4数据处理
检测模块为压力传感器MPX4115来代替聚磁差动磁电传感器使用,一节列车重量约为20吨,与普通汽车重量相差
甚远,且分布在道口较远处钢轨上,避免产生错误信号,一节列车进行单位换算大约200000Kpa,MPX4115最大量程
为115Kpa,可将所以将所传达的信号进行放大2000倍,满足传感器要求与道口压力仿真,即以MPX4115的100标度为
标准线,传递列车接近信号。
检测模块产生的电信号传递到ADC0832的CH0引脚在芯片内进行模数转换,将模拟量电信号转化为数字量通过DO引脚
传递到单片机的P1.4引脚,通过AT89C51下达指令。
MPX4115在15Kpa到115Kpa时遵循线性变换,如图3.9所示,根据MPX4115转换数据后得到的数值为:当压力为
15Kpa时,经过AD转换后采集到的数值为13,当压力为115Kpa时,经过AD转换后采集到的数值为243,可根据数值得
出线性变换公式:
(3.1)
根据修补后得到数据,得出补偿值为10.1Kpa,可得出线性区间标度变换公式:
(3.2)
图3.9 MPX4115压力与电压变化关系图
Fig. 3.9 MPX4115 pressure and voltage change diagram
3.7故障按钮部分
故障按钮是平交道口不可或缺的部分,平交道口需定期检修,不可能在平交道口正常运作时进行检修,当设备
故障或某零件被盗时,按下故障按钮,使整个系统处于停电状态,便于工作人员去检修和排查,保障安全。当检查
完毕时,再次按下故障按钮,即可恢复整个系统的正常的运作。
4基于单片机的平交道口信号防护系统程序设计
该毕业设计是以单片机为核心进行设计与仿真,因为Keil5与AT89C51的指令集完全兼容,所以可以用Keil5软件
进行编写代码,来驱动AT89C51芯片实现终端控制。程序设计基于如下图4.1的程序流程图进行设计,程序的设计必
须满足流程图,层次递进,进行编写代码。
图4.1 程序流程图
Fig. 4.1 Program flow chart
4.1引脚部分
(1)直流电动机引脚声明
sbit IN1=P2^0; //定义直流电动机1号输入口在P2.2引脚
sbit IN2=P2^1; //定义直流电动机2号输入口在P2.1引脚
sbit EN1=P2^2; //定义EN在P2.2引脚
(2)报警部分和显示部分引脚声明
sbit beep1=P2^5; //定义蜂鸣器1在P2.5引脚
sbit beep2=P2^6; //定义蜂鸣器2在P2.6引脚
sbit led1=P2^4; //定义白灯在P2.4引脚
sbit led2=P2^7; //定义红灯在P2.7引脚
(3)故障按钮引脚声明
sbit K1=P1^0; //定义故障按钮在P1.0引脚
(4)传感器引脚声明
sbit ADCS =P1^2; //定义ADC0832-1片选使能端在P1.2引脚
16
sbit ADDI =P1^4; //定义ADC0832-1 信号输入端在P1.4引脚
sbit ADDO =P1^4; //定义ADC0832-1 信号输出端在P1.4引脚
sbit ADCLK =P1^3; //定义ADC0832-1 时钟输入端在P1.3引脚
sbit ADCS2 =P1^5; //定义ADC0832-2 片选使能端在P1.5引脚
sbit ADDI2 =P1^7; //定义ADC0832-2 信号输入端在P1.7引脚
sbit ADDO2 =P1^7; //定义ADC0832-2 信号输出端在P1.7引脚
sbit ADCLK2 =P1^6; //定义ADC0832-2 时钟输入端在P1.6引脚
sbit ADCS3 =P3^7; //定义ADC0832-3片选使能端在P3.7引脚
sbit ADDI3 =P3^5; //定义ADC0832-3 信号输入端在P3.5引脚
sbit ADDO3=P3^5; //定义ADC0832-3 信号输出端在P3.5引脚
sbit ADCLK3 =P3^6; //定义ADC0832-3 时钟输入端在P3.6引脚
4.2显示及报警电路驱动程序设计
{
17
TMOD=0x01; //赋初值0000 0001
TH0=(65536-10000)/256; //对55536进行整除,在高四位赋值。
TL0=(65536-10000)%256; //对55536进行取余,在低四位赋值。
ET0=1;
EA=1;
TR0=1;
IN2=0;
}
4.3.2中断函数
本课题采用中断函数1,表示定时器/计数器的T0中断。中断函数优先级更高,当满足中断条件可优先执行中断
函数内部程序,可跳出主函数。
void timer_isr() interrupt 1
{
TH0=valueh[count]; //对电动机的高8位,进行赋值。
TL0=valueh[count]; //对电动机的低8位,进行赋值。
IN2=~IN2;
count++; //依次对valueh中函数进行提取
count%=2; //valueh中赋了两个初值,当选取第三个数据是,
} 对数据取余,使valueh在从第一位数据开始。
4.4传感器电路驱动程序设计
(1)对传感器输出的数值进行AD转化,使数字量转化为模拟量,信息的收集需有端口从高电平到低电平产生下降
沿后,才能采集到。根据电平拉低时间的不同,执行发送和读取信息的命令,代码如下:
unsigned int Adc0832(unsigned char channel) //AD转换,返回结果
{
unsigned char i=0;
unsigned char j;
unsigned int dat=0;
unsigned char ndat=0;
if(channel0)channel=2;
if(channel1)channel=3;
ADDI=1;
nop();
nop();
ADCS=0; //拉低CS端
nop();
nop();
ADCLK=1; //拉高CLK端
nop();
nop();
ADCLK=0; //拉低CLK端,形成下降沿1
nop();
nop();
ADCLK=1; //拉高CLK端
ADDI=channel&0x1;
nop();
nop();
ADCLK=0; //拉低CLK端,形成下降沿2
18
nop();
nop();
ADCLK=1; //拉高CLK端
ADDI=(channel>>1)&0x1;
nop();
nop();
ADCLK=0; //拉低CLK端,形成下降沿3
ADDI=1; //控制命令结束
nop();
nop();
dat=0;
for(i=0;i<8;i++)
{
dat|=ADDO; //收数据
ADCLK=1;
nop();
nop();
ADCLK=0; //形成一次时钟脉冲
nop();
nop();
dat<<=1;
if(i7)dat|=ADDO;
}
for(i=0;i<8;i++)
{
j=0;
j=j|ADDO; //收数据
ADCLK=1;
nop();
nop();
ADCLK=0; //形成一次时钟脉冲
nop();
nop();
j=j<<7;
ndat=ndat|j;
if(i<7)ndat>>=1;
}
ADCS=1; //拉高CS端
ADCLK=0; //拉低CLK端
ADDO=1; //拉高数据端,回到初始状态
dat<<=8;
dat|=ndat;
return(dat); //return ad k
}
(2)数据处理
由于采集到的数据,为传感器数字量信号,与实际数据有误差,根据第三章3.6.4部分的理论分析对采集到的数
据进行处理,可得到压力值。为方便对列车通过位置进行描述,所以对列车通过不同位置进行赋值,如:列车通过上行的第一个传感器U3,第一个传感器产生电信号,电位升高,因此赋值100,其他同理。
void math()
{
getdata=Adc0832(0); //进行键位读取
getdata2=Adc08322(0);
getdata3=Adc08323(0);
press=((10.0/23.0)getdata)+10.1; //测试时补偿值为10.1 ,
temp=(int)(press10); //放大10倍,便于后面计算 press2=((10.0/23.0)getdata2)+10.1; //同理
temp2=(int)(press210);
press3=((10.0/23.0)getdata3)+10.1;
temp3=(int)(press310);
if(press >100&&press2 <=100&&press3<=100) //100
{
mat=0x04;
}
else if(press >100&&press2 >100&&press3<=100) //110
{
mat=0x06;
}
else if(press >100&&press2 >100&&press3>100) //111
{
mat=0x07;
}
else if(press <=100&&press2 >100&&press3>100) //011
{
mat=0x03;
}
else if(press <=100&&press2 <=100&&press3>100) //001
{
mat=0x01;
}
else if(press <=100&&press2 <=100&&press3<=100) //000
{
mat=0x00;
}
}
4.5主程序
4.5.1 故障状态
当故障或检修时,需停止所有设备。下列代码为故障或检修停止运作的程序:
if(K10) //故障按钮按下
{
while(K11)
{
led1=1; //led1熄灭
beep1=1; //蜂鸣器1关闭
led2=0; //led2熄灭
beep2=1; // 蜂鸣器2关闭
20
IN1=0; //电动机停止运行
IN2=0;
EN1=0;
}
}
4.5.2正常运行状态
列车通过平交道口划分为两种模式,当上行列车通过时,程序定为模式1,进入模式1循环,通过列车所在位置
道口做出不同防护程序。当下行列车通过时,程序定为模式2,进入模式2循环,根据列车所在位置做出与模式1不同
的防护程序。每次列车通过平交道口后,模式变为0,即进入自检状态。代码主要是根据列车执行不同循环,并实施
更新列车位置,进入不同循环。部分代码如下所示(完整代码请见附录):
else if(K11)
{
if(press >100&&press2 <=100&&press3<=100) //上行列车通过启用模式1
{
tt=1;
}
else if(press <=100&&press2 <=100&&press3>100) //下行列车通过启用模式2
{
tt=2;
}
if(tt1) //模式1下工作
{
xx=0x05;
while(xx!=0x00) //列车位置000
{
while(xx!=0x01) //列车位置001
{
while(xx!=0x03) //列车位置011
{
while(xx!=0x07) //列车位置111
{
while(xx!=0x06) //列车位置110
{
while(xx!=0x04) //列车位置100
{
math(); //键位读取
xx=mat; //更新列车位置
}
}
}
}
}
}
tt=0 //跳出模式1循环,进入模式0
}
if(tt2) //模式2下工作
{
21
xx=0x05;
while(xx!=0x00) // 列车位置000
{
while(xx!=0x04) // 列车位置100
{
while(xx!=0x06) // 列车位置110
{
while(xx!=0x07) // 列车位置111
{
while(xx!=0x03) // 列车位置011
{
while(xx!=0x01) // 列车位置001
{
math(); //键位读取
xx=mat; //更新列车位置
}
}
}
}
}
}
tt=0 //跳出模式2循环,进入模式0
}
结 论
本课题为基于单片机的平交道口信号防护系统设计与仿真,采用先设计硬件电路再进行软件设计的方式,由表
及里进行设计。设计思路为设计道口正常运行状态与故障状态两种模式,道口处于正常运行状态下,当列车接近
时,列车经过接近点道轨的磁头,产生电信号控制平交道口处的栏木落下,同时红灯闪亮发出提示音,防止汽车经
过,保证列车正常行驶。当列车离去后,列车经过到达点道轨的磁头,产生电信号控制栏木升起,延时7秒后红灯停
止闪亮,信号机亮白灯,提示音关闭,进入自检状态。同时,在实际铁路运行过程中,也会出现设备故障,进行检
修的情况,所以需要加入故障状态来停止线路上各器件的运作,保护检修人员的安全。
基于设计思路先使用Protues8软件进行对平交道口硬件电路进行绘制,担任本课题的肌体部分,再用Keil5软件
进行代码的编写,配合单片机芯片对平交道口的各部分进行协调运作,担任本课题的中枢部分,来实现该设计的演
示。本课题对平交道口划分为检测模块、栏木控制模块、显示模块、报警模块以及基本的单片机电路,对平交道口
列车与汽车运行情况进行分析,对每种状况执行相应的规则,保护交通安全。
此外本次设计为自行查阅文献与总结,在设计方面会有一定的欠缺,且限于编程水平有限,故障判断问题还可
以再优化一下。