人的记忆力会随着岁月的流逝而衰退,写作可以弥补记忆的不足,将曾经的人生经历和感悟记录下来,也便于保存一份美好的回忆。相信许多人会觉得范文很难写?下面我给大家整理了一些优秀范文,希望能够帮助到大家,我们一起来看一看吧。
交通信号灯自动控制系统设计篇一
1.设计任务
设计一个十字路口交通控制系统,要求:(1)东西(用a表示)、南北(用b表示)方向均有绿灯、黄灯、红灯指示,其持续时间分别是30秒、3秒和30秒,交通灯运行的切换示意图如图1-1所示。
(2)系统设有时钟,以倒计时方式显示每一路允许通行的时间。
(3)
当东西或南北两路中任意一路出现特殊情况时,系统可由交警手动控制立即进入特殊运行状态,即红灯全亮,时钟停止记时,东西、南北两路所有车辆停止通行;当特殊运行状态结束后,系统恢复工作,继续正常运行。
2.总体框图
本系统主要由分频计、计数器和控制器等电路组成,总体框图如1-2所示。分频计将晶振送来的信号变为1hz时钟信号;当紧急制动信号无效时,选择开关将1hz脉冲信号送至计数器进行倒计时计数,并使控制器同步控制两路红、黄、绿指示灯时序切换;当紧急制动信号有效时,选择开关将紧急制动信号送至计数器使其停止计数,同时控制器控制两路红灯全亮,所有车辆停止运行。
2-1 交通灯总体结构框图 模块设计
(1)分频器
设晶振产生的信号为2mhz,要求输出1hz时钟信号,则分频系数为2m,需要21位计数器。用vhdl设计的2m分频器文本文件如下:
library
ieee;use ;use ;use ;entity fenpin2m is
port(clk:in std_logic;
reset:in std_logic;
--时钟输入
clk_out:out std_logic);end entity fenpin2m;
architecture one of fenpin2m is signal count:integer range 0 to 1999999;
begin
process(clk)
begin
if reset='1' then
count<=0;
clk_out<='0';
else
if clk'event and clk='1'then
if count<999999 then
count<=count+1;
clk_out<='0';
elsif count<1999999 then
count<=count+1;
clk_out<='1';
else
count<=0;
end if;
end if;
end if;
end process;end one;
(2)模30倒计时计数器 采用原理图输入法,用两片74168实现。74168为十进制可逆计数器,当u/dn=0时实现9~0减法计数,记到0时tcn=0;当u/dn=1时实现0~9加法计数,计到9时tcn=0;entn+enpn=0时执行计数,否则计数器保持。该电路执行减法计数,当两片计数器计到0时同步置数,因此该计数器的计数范围是29~0,当系统检测到紧急制动信号有效时,cp=0计数器停止计数。
图3-1 模30减法计数器电路图
图3-2 模30减法计数器仿真波形
(3)显示译码器
显示译码器为动态显示,用vhdl文本输入法设计的七子段译码器如下:
图3-3 显示译码器的仿真波形
library ieee;use ;use ;
--调用库文件
entity xianshi is
--实体开始
port(clk:in std_logic;
datain1:in std_logic_vector(3 downto 0);
datain2:in std_logic_vector(3 downto 0);
--扫描时钟信号
sel:out std_logic_vector(1 downto 0);--数码管选择信号
q: out std_logic_vector(7 downto 0));--数码管八端输入 end xianshi;
--实体结束 architecture one of xianshi is
--结构体开始 begin
process(clk)
--进程开始 variable tmp:std_logic_vector(1 downto 0);variable d:std_logic_vector(3 downto 0);--中间变量
begin
if(clk'event and clk='1')then
--时钟上升沿有效
if(tmp=“00”)then
tmp:=“01”;
d:=datain2;
case d is
when“0000”=>q<=“00111111”;
--0
when“0001”=>q<=“00000110”;
--1
when“0010”=>q<=“01011011”;
--2
when“0011”=>q<=“01001111”;
--3 when“0100”=>q<=“01100110”;
--4 when“0101”=>q<=“01101101”;
--5 when“0110”=>q<=“01111101”;
--6
when“0111”=>q<=“00000111”;
--7
when“1000”=>q<=“01111111”;
--8
when“1001”=>q<=“01100111”;
--9
when others=>q<=“00000000”;--数码管不显示
end case;
elsif(tmp=“01”)then
tmp:=“00”;
--如果tmp为“001”即第2个数码管显示b输入
d:=datain1;
case d is
when“0000”=>q<=“00111111”;
--0
when“0001”=>q<=“00000110”;
--1
when“0010”=>q<=“01011011”;
--2
when“0011”=>q<=“01001111”;
--3
when“0100”=>q<=“01100110”;
--4
when“0101”=>q<=“01101101”;
--5
when“0110”=>q<=“01111101”;
--6
when“0111”=>q<=“00000111”;
--7
when“1000”=>q<=“01111111”;
--8
when“1001”=>q<=“01100111”;
--9
when others=>q<=“00000000”;--数码管不显示
end case;
end if;
end if;sel<=tmp;
--把tmp的值赋予sel
end process;
--进程结束
end one;
(4)控制器
该模块输入为1hz时钟,和紧急制动信号pe,输出为两路红、黄、绿指示灯,当紧急制动信号无效(pe=1)时,两路红、黄、绿灯时序切换。当紧急制动信号有效时,选项开关将紧急制动信号送至计数器使其停止计数,同时使控制器控制两路红灯全亮,所有车辆停止通行。用vhdl文本输入法设计的控制器如下;
图3-4控制器的仿真波形
library
ieee;use ;use ;use ;entity contr is
port(cp1:in std_logic;
pe:in std_logic;
chan:in std_logic;
ra,ga,ya,rb,gb,yb:out std_logic);end entity contr;architecture one of contr is signal count:integer range 0 to 59;
begin
process(cp1)
begin
if pe='0'then
count<=0;
else
if(cp1'event and cp1='1')then
if count<59 then
count<=count+1;
else
count<=0;
end if;
end if;end if;end process;process begin
if pe='1'then
if chan='1' then
if count<30 then
rb<='0';
gb<='1';
yb<='1';
ra<='1';
if count<27 then
ga<='0';
ya<='1';
else
ga<='1';
ya<='0';
end if;
else
rb<='1';
ga<='1';
ya<='1';
ra<='0';
if count<57 then
gb<='0';
yb<='1';
else
gb<='1';
yb<='0';
end if;
end if;
else
if count<30 then
rb<='1';
ga<='1';
ya<='1';
ra<='0';
if count<27 then
gb<='0';
yb<='1';
else
gb<='1';
yb<='0';
end if;
else
rb<='0';
gb<='1';
yb<='1';
ra<='1';
if count<57 then
ga<='0';
ya<='1';
else
ga<='1';
ya<='0';
end if;
end if;
end if;
else
rb<='0';
ra<='0';
gb<='0';
yb<='0';
ga<='0';
ya<='0';
end if;end process;end one;交通灯原理图
图4-1 交通灯原理图
交通信号灯自动控制系统设计篇二
城市交通控制系统是用于城市交通数据监测,交通信号灯控制与交通疏导的计算机综合管理系统,它是现在城市交通监控指挥系统中最重要的组成部分。本文为交通信号灯论文,希望对大家有帮助!
交通信号灯论文:交通信号灯的设计与实现摘要:通过对十字路口的二、三相位设计,使用proteus仿真调试环境模拟相位来完成十字路口信号灯的设计,使用keilc51 开发环境实现对各相位信号灯的控制,以达到交通疏导的目的。
关键词:信号相位;proteus;keilc51;信号灯
当今社会经济高速发展,人们的交通问题也越来越引起关注。人,车,路三者关系的协调,已成为交通管理部门急需解决的重要问题之一。城市交通控制系统是用于城市交通数据监测,交通信号灯控制与交通疏导的计算机综合管理系统,它是现在城市交通监控指挥系统中最重要的组成部分。
本文将使用proteus和keilc51两个软件来实现十字路口二、三相位的设计和控制,模拟十字路口信号灯的实际情况。相位设计
信号相位[1]是指某一交叉路口,其每一种控制状态(一种通行权),即对各进口道不同方向所显示的不同灯色的组合,称为一个相位。相位方案用相位图来表示,如图1是最基本的方案。该文在基本二相位基础上设计三相位,实现二、三相位的仿真。设计结果如图2所示。硬件设计
proteus电路仿真软件是英国lab center electronics公司出版的eda工具软件,它不仅具有其它eda工具软件的仿真功能,还能仿真单片机及外围器件。它是目前比较好的仿真单片机及外围器件的工具,具有很多的特点[2]。因此,可以实现对十字交叉路口实际交通情况的模拟。
2.1 信号灯设计
东西、南北两个干道相交于一点,构成一个十字路口。每个路口都有一组信号灯,包括直行灯、左转向灯、黄灯、红灯,以此来指示车辆和行人的通行。并且每组信号灯交叉显示,左转绿灯亮为可左转,直行绿灯亮为可直行,黄灯闪烁3s,红灯为禁止通行,来控制十字路口的交通疏导。
2.2 电路设计
利用单片机设计应用系统应考虑在满足设计要求的前提下,硬件电路要尽可能地简单,最大限度的用程序设计完成系统的各项功能[3]。该文以at89c52为控制中心,来设计整个控制电路。at89c52其内部组成于引脚[4]如图3所示。
在本系统中应用到了芯片时钟电路、复位电路,以及外部中断系统,使用外部中断int0来进行相位的转换,p0口设置为各方向的信号灯,p1口设置为东西方向数码管时间显示,p2口设置为南北方向数码管时间显示。对于交通硬件使用发光二极管模拟信号灯,时间计时使用七段数码管进行显示。总设计如图4所示。软件设计
keil c51是美国keil software公司出品的51系列兼容单片机c语言软件开发系统。其界面有keiluvision2、keiluvision3、keiluvision4,该文使用经典的keiluvision2环境进行设计,更接近于传统c语言的语法,同时也大大地提高了工作效率和项目开发周期。
软件设计包括了三个板块,led灯显示、数码管显示、外部中断。
3.1 led显示
led显示方法为直接定义p0口,并根据需求点亮设为1,灭设为0。定义如下:
sbit we_red=p0^0;
sbit we_yellow=p0^1;
sbit we_green=p0^2;
sbit we_leftgreen=p0^6;
sbit sn_red=p0^3;
sbit sn_yellow=p0^4;
sbit sn_green=p0^5;
sbit sn_leftgreen=p0^7;
3.2 数码管显示
定义数码管显示函数,来赋给到p1和p2口。定义如下:
void num_display1(uint num){
uint a,b,c;
a=num/10;
b=num%10;
c=b;
a=a<<4;
c=c|a;
dataport1=c;}
3.3 外部中断
使用int0外部中断来进行相位转换,当点击按钮触发中断,调用中断函数来执行相应操作。定义如下:
void exint0(void)interrupt 0{
ea=0;
flag0++;
flag0=flag0%2;
ea=1;}控制模式
将每个相位的周期和此相位与另一个相位的转换周期定义为一个周期。因此,每个相位均有两个条件,即:相位安排和相位转换。
4.1 二相位控制模式
二相位的一种为南北方向禁行,东西方向直行、左转、右转均放行。第一个条件是相位安排:南北方向红灯亮,东西方向所有绿灯亮,所有数码管从8s开始倒计时。条件二是相位转换:当时间为3s时,东西方向绿灯灭,黄灯开始闪烁,3s结束后,转换相位,进入二相位第二种。第二种为南北方向直行、左转、右转均放行,东西方向禁行。其第一条件是相位安排:南北方向所有绿灯亮,东西方向红灯亮,所有数码管从8s开始倒计时。条件二是相位转换:当时间为3s市,南北方向绿灯灭,黄灯开始闪烁,3s结束后,转换相位,进入二相位第一种。以此进行循环。
4.2 三相位控制模式
三相位在二相位基础上增添了一种情况,为南北方向进行,东西方向只有左转放行。第一个条件是相位安排:南北方向红灯亮,东西方向左转绿灯亮,所有数码管从8s开始倒计时。条件二是相位转换:当时间为3s是,东西方向左转绿灯灭,黄灯开始闪烁,3s结束后,转换相位,进入三相位第三种。以此进行循环。结论
本文介绍了信号相位的基本知识和设计方法,详细说明了proteus和keilc51软件的作用和特点。通过proteus进行电路图绘制,利用keilc51进行编程,完成了十字路口二、三相位的设计,实现了对现实路口交通情况的仿真。
本系统以二、三相位进行研究,从根本上了阐述了交通信号灯的工作过程,并引入了时间显示,更好地对交通信号灯上的问题进行研究,具有较强的移植性和扩展性,为今后更合理化地设计打下基础。
参考文献:
[1] 吴兵,李晔.交通管理与控制[m].4版.北京:人民交通出版社,2009.[2] s软件的单片机仿真方法[j].山东轻工业学院学报:自然科学版,2007(1):24-27.[3] 郭海丽.基于proteus与单片机的交通灯控制系统的设计[j].衡水学院学报,2012(4):126-128.[4] 张齐,朱宁西,毕盛.单片机原理与嵌入式系统设计:原理、应用、protues仿真、实验设计[m].北京:电子工业出版社,2011.
交通信号灯自动控制系统设计篇三
交通信号灯控制系统(红绿灯系统)
1、概述
近年来,随着经济发展,营运车辆拥有量的增加使道路市场必须规范有序,交通安全管理必须上一新台阶。按照“高起点规划,高标准建设,高效能管理”的思路,坚持把城市化作为城市经济的一大战略来抓,积极建设城区交通基础设施工程,建立交通安全管理网络。严格抓好交通管理,以加强交通队伍建设和行业文明建设。
对****信号控制系统进行升级改造,在*****新建设一套信号控制系统
2、设计依据
《道路交通信号控制机》(gb25280-2010) 《道路交通信号灯》(gb14887-2011)
《道路交通信号灯设置与安装规范》(gb14886-2006) 《道路交通信号倒计时显示器》(ga/t508-2004)
《道路交通安全违法行为图像取证技术规范》(ga/t832-2009) 《交通信号机技术要求与测试方法》(ga/t47-93) 《道路交通信号机标准》(ga47-2002) 《道路交通信号灯安装规范》(gb14866-94)
3、设计原则
本期工程按“国内领先、国际先进”的原则设计方案,提供完整、最新而成熟的产品,并保证各项技术和设备的先进性、实用性和扩展性。提高交通道路口的车辆通行速度,保证道路畅通。因此该系统是建设畅通工程中的重要措施之一。
信号控制系统的设置应充分结合本路段的工程自身特点,在达到适时、适量地提供交通信息,确保行车安全目的的同时,尽可能与道路的整体效果相结合。
1)设计思路
以有效地管理道路交通,达到安全、经济、合理、美观为目的,严格按照国家有关规定设置信号灯等交通设施。交通拥挤情况主要发生在车流人流相对集中的主要繁华城区路口和路段,根据现有主要交通干道路面宽度划分车道,基本可以满足城区车辆通行的需要。
2)预期实现目标
完善城区交通安全设施布局,规范行车和行人秩序,减少交通事故,一定程度上改善城市形象。
4、交通信号控制系统功能
(1)图形与界面
系统界面中文化、图形化、菜单化。命令操作方式灵活多样,并对错误操作发出警告或禁止执行。
能多用户、多窗口显示,显示窗口可缩放、移动。
具有图形编辑工具,可以对图形的区域背景、路口背景等进行用户化编辑。背景地图可按管理区域和路口进行缩放和漫游显示。
能够实时显示路口设备、路口设备工作状态及信号控制模式等信息。系统可动态、实时地显示路口信号灯的运行状况,并可对某一路口的信号灯变化进行实时显示;还可以根据需要直接对信号机进行手动操作功能。
能够用图表显示交通流量、占有率等统计分析数据。(2)用户管理
系统能够支持至少50个用户的使用和管理,对用户的名称、密码和访问角色等相关内容进行设置。
能够设立访问角色,能够定义相应的访问权限,每个用户可以对应多个角色。组管理:每个组可以有多个用户,所有用户不能重名,不同的组可以管理不同的路口设备。
记录用户登录和退出系统的时间及用户使用过的操作命令,显示用户是否在线。
禁止多用户对同一对象同时进行控制操作,并给出提示信息。(3)日志管理
操作员记录:操作员登录/退出时间、部分重要操作命令记录。记录保存时间:系统至少保留最近12个月的综合日志记录。记录查询:可根据日期范围、时间范围、用户等各种限定,方便快捷地查询各类日志记录。(4)系统数据库
总体要求:支持oracle数据库,具有系统参数设置、交通数据存储、数据管理功能。
参数设置:每个数据项均附有数据定义和有效值范围的在线说明;系统自动检测所有数据项输入数据的合理性,提示并拒绝不合理及非法的数据输入;易于数据修改和更新。
交通数据存储:能够对采集的交通实时数据和历史数据进行储存和管理,保证数据的快速存取、编辑和删除。
数据库管理:
禁止未授权使用者进入数据库操作界面。
多用户同时对不同数据对象的修改、删除无冲突,禁止同时修改同一数据对象并有冲突报警显示。
详细记录数据修改人员、修改内容和时间。支持多用户数据库查询、访问。(5)数据采集存储
中心计算机从现场设备实时(秒级)采集以下交通数据: 路口到达方向分流向(左、直、右)的车流量 路口到达方向分流向(左、直、右)的车辆占有率 路口到达方向分流向(左、直、右)的放行时间 路口到达方向分流向(左、直、右)的断流次数 路口到达方向分流向(左、直、右)的最大断流间隔 以上数据保存15日。
流量、占有率的实时统计数据随时向交通信号控制系统管理平台开放性提供。(6)数据统计分析
中心计算机对采集的交通数据进行各种统计分析,形成设定时间、区域范围的交通统计分析报告,内容包括:路口的交通流量、路口交通占有率; 中心计算机对采集的交通数据进行统计处理,分别形成15分钟和1小时时间段的交通统计数据,并按15分钟数据保存半年、1小时数据保存一年进行存储,并随时向交通信号控制系统管理平台开放性提供。(7)系统状态监视
中心计算机能够实时监视:
系统中心设备、传输设备及路口设备工作状态
路口信号控制模式、控制方案、信号状态等交通控制状态
交通信号状态信息在信号灯色变化时向交通信号控制系统管理平台实时开放性传送。(8)系统故障报警
中心计算机监视以下各类故障: 系统中心软/硬件故障 传输单元故障
信号控制器、车辆检测器等路口设备故障
上述故障均有详细的分类故障代码;故障发生时通过异常信息显示进行报警并生成故障记录;故障消除后或操作员确认后取消报警。(9)时钟校准功能
中心计算机具有如下时钟校准功能:
接受交通信号控制系统管理平台的时钟校准。
对路口信号控制器进行自动时钟校准,校时命令每天执行1次,校时时间可设置。
时钟格式为:年、月、周、日、时、分、秒,校时误差小于1秒。(10)时间表功能
系统具有时间表控制功能
设置时间包括年、月、周、日、时、分、秒。日时段划分不得低于16个,方案数不得少于32个。设置内容应包括事件、控制模式、控制方案等。
系统可分别设置工作日、周末、节日或特别指定日的时间表,系统根据日期自动改变执行时间表。(11)系统优化
根据路口检测的交通流信息自动进行交通控制参数的优化并执行优化配时方案,提高路口通行能力。(12)动态方案选择控制
根据实时交通流检测信息,从预设方案库中调用适宜方案。(13)线协调控制
按照系统时间表设置进行线协调控制。(14)感应式控制
系统能够响应冲突方向的车辆感应请求,进行半感应或全感应控制。(15)行人控制
路口行人过街控制应具有请求式控制方式和预案式控制方式。
系统能够在线协调或区域协调控制的条件下及时响应或等待响应路段行人过街请求,使行人利用交通流间隙过街通行。(16)紧急车辆优先控制
系统能够按预定时间和预定路线进行绿波信号推进,以满足各种重大活动、重大事件及特殊警务的通行需求。
系统对路口信号机强行控制,指定某一阶段放行、黄闪或者全红。能响应特殊情况下的警务、消防、救护、抢险等特种车辆的紧急请求,使车辆迅速通过沿线路口。
(17)方案模拟演示
设置好的配时方案,模拟演示路口信号灯的变化情况,查看运行效果以便于分析配时方案中存在的潜在影响。(18)强制控制
允许系统中心操作员直接控制系统内设置的相位组信号。(19)上下载功能
中心计算机能选择性地上载和动态存储路口信号控制器的基本配置、时间表以及各种控制方案。
中心计算机能选择性地下载基本配置、系统时间表和各种控制方案给路口信号控制器。
5、交通信号控制机
信号机
信号机符合行标《ga47-2002道路交通信号控制机》的标准、国标《gb-25280-2010集中协调式信号机》的标准,并兼容国标gb-t20999的通讯协议。本信号机采用多智能节点分布式架构,各节点以32位微处理器作为控制核心,通过can总线进行内部通讯。32路环型线圈车辆检测或视频车辆检测器(可选)本信号机具有独立硬黄闪功能,可以在不关灯的情况下进行现场维护,给现场维护带来方便。支持无线遥控、点动等现场人工控制功能;持gps模块对本地进行校时;支持多达32组的独立灯组通道输出;支持视频和线圈车流辆检测;具有单灯组输出回路检测功能,对红绿冲突等各种严重故障有着完善的降级处理。本机有着多种人机交互接口,通过本地信号机内的液晶模块、设置终端、指挥中心都可以实现完整的方案设置和信号机运行状态监测。对于各用户的不同控灯需求,方案设置方便、灵活、易于操作。软件系统设计中,有着完善的事务管理机制并能对信号机发生事件、故障等信息进行存储及显示。信号机内具有加热和排风的装置,可根据外界的温度不同自动加热或排风,以适应外界环境温度变化。
信号机具有无缆线控、单点优化、感应控制等功能;在智能交通指挥中心控制系统中可实现线控、区域协调控制、系统优化控制等功能;
1、具备32位微处理器
2、可编程的32相位控制,96路可控硅输出(可选)
3、相位冲突监视和控制,信号灯故障检测及报警
4、掉电时采集数据和配时参数不丢失
5、具有手动、自动、远程控制方式
6、具有强制、黄闪、四面红功能
7、具有本地遥控功能
8、具有固定方式、多时段控制方式、多方案选择控制方式、感应控制方式等多种控制方式
9、在线修改配时参数,在线显示各相位状态、故障状态
10、时段划分多达48个时段,可存储32种控制方案
11、提供4个rs232接口、一个rs485接口,一个以太网接口,可实现电话线、专线、光纤、无线多种通讯
12、适合于单路口控制、主干道控制、区域控制。出现故障自动降级使用
13、时钟、日历显示和修改,支持gps授时功能
14、自动排风、加热功能
15、具有防雷、漏电保护功能
16、提供8路行人过街输入接口 主要特点
1、全中文手动操作界面
2、交通信息存储功能
3、独有的路口协调小面控功能
4、基于车头时距的感应控制功能
5、信号相位与信号灯组的自由编程
6、冲突相位硬件和软件双重监视
7、信号灯故障检测和报警
8、掉电数据不丢失,保存5年以上
9、输入和输出信号全部光电隔离
10、车辆数据检测准确率高
11、具有多相位的强制遥控
12、提供以太网接口和多个串口,便于网络化
13、提供二次开发的透明接口,便于多系统的集成
14、模块化设计,便于维护
15、指挥中心软件可实现信号机的远程控制
16、本地单点路口或区域的自适应协调控制
17、实时检测交通流量数据;并将采集到的实时交通流量数据进行分析、处理,传送至本地、区域或中央控制系统 主要技术指标
1)控制最大相位:32个;控制最多信号灯组:32组;车辆检测最大路数:32路;
2)机柜外壳采用铝合金材料或不锈钢材料;遥控相位:8个;
3)遥控器:每台信号机配2台遥控器,8个相位选择键,1个黄闪键、1个全红键、4)1个全灭键、1个取消键,遥控距离大于50米,遥控器应以灯光、声响或振动方式提示操作人员,交通信号控制机是否成功接收并执行指令。5)为保证信号机用电安全,信号机机柜和驱动线路应采用漏电保护电路装置。
6)信号机的机柜外侧面应设有手动控制门,在仅打开手动控制门的情况下可以实现
7)单点控制、黄闪控制、指定相位控制、关闭信号灯、关闭倒计时器、关闭遥控功能等操作。
智能交通信号控制机属协调式户外网络型的交通信号控制机,适合于单路口多时段定时控制、多方案选择控制、全(半)感应控制,适合于多路口无缆协调、有缆协调的绿波带控制,适合于指挥中心的远程控制、区域控制。在感应控制、多方案选择以及时制计划生成方面均有自己的控制算法。智能交通信号控制机具有技术先进、使用方便、功能齐全、模块化设计、维护简单,控制软件接口透明,便于二次开发。采用自主开发的机动车辆线圈检测器、自有专利技术的单元式检测型负载开关,整机性能价格比高。智能交通信号控制机具有多时段定时控制、多方案选择控制、感应控制、主干道无缆协调控制、集中协调控制等功能。将多个智能交通信号控制机通过调制解调器连成交通控制网,对城市多路口、多条干线进行控制,其基本架构如下:
通过以太网通讯接口,与指挥中心控制系统联成网络、接收指挥中心的远程控制、有缆线控、区域控制,并实现交通流量的自动采集。
6、机动车信号灯
发光单元透光面直径为400mm,红黄绿竖向组灯,光源采用超高亮发光二极管。红满屏+黄满屏内含双色数显+绿满屏,符合2011新国标;倒15秒显示,通讯式(通讯协议为行业标准)信号灯取电,竖装;
7、方向指示信号灯
发光单元透光面直径为400mm,红黄绿竖向组灯,光源采用超高亮发光二极管;红箭头+黄箭头内含双色数显+红箭屏,符合2011新国标;倒15秒显示,通讯式(通讯协议为行业标准)信号灯取电,竖装;
8、人行横道信号灯
发光单元透光面直径为300mm,光源采用超高亮发光二极管;红、绿二色行人图案单屏显示,红、绿二色数显同屏显示(绿色行人静态/非机动车)七字形连接片,2011新国标;倒15秒显示,通讯式(通讯协议为行业标准)信号灯取电;
交通信号灯自动控制系统设计篇四
概述 1.1 设计目的
(1)掌握cpu与各芯片管脚连接方法,提高接口扩展硬件电路的连接能力;
(2)通过对交通灯信号自动系统的模拟控制,进一部提高应用8255a并行接口技术,8253定时功能,8259a中断管理控制器的综合应用能力;
(3)掌握基本汇编源程序编制方法,学会综合考虑各种设计方案的对比和论证。1.2 设计要求
交通信号灯自动控制系统须满足下列要求和功能:(1)首先车行道亮绿灯45s,同时人行道亮红45s;
(2)45s后,车行道黄灯闪烁3次,亮、灭各1s,此时人行道仍维持红灯;
(3)6s后,转为人行道亮绿灯20s,车行道亮红灯20s;(4)20s后,再转到第(1)步,如此循环往复;
(5)当有车闯红灯时,能实现报警信号持续3 s的扩展功能。
1.3 设计方法及步骤
1、设计系统硬件部分
(1)先进行方案论证,确定最终采取硬件定时还是软件定时,是查询方式还是中断方式;(2)在具体甄选设计过程中可能要设计的芯片,分析它们的功能特点,确定它们的工作模式;
(3)按照各芯片的使用特点以及本系统的设计要求逐步连接,画出系统硬件连接图。
2、设计系统的软件部分
(1)先进行程序编制方式的方案论证,讨论分析,确定是采用宏程序调用还是子程序调用模式;
(2)确定本系统设计可能涉及的源程序各个模块,明确各个模块的各自功能,分清它们相互之间的调用关系;(3)画出各个模块的程序流程图;
(4)依据流程图,编制出交通信号灯自动控制系统的完整汇编源程序。
1.4 设计说明
(1)本设计采用共阳极的发光二极管模拟对应的交通信号灯的型式,参见后面“系统硬件部分设计”中“总体设计”这一节;
(2)本设计关于有车闯红灯报警的扩展功能,是通过红外线接收装置实现的,具体分析见后面“可编程芯片说明及其地址范围确定”中“8254定时/计数器”这一节;
(3)在本设计的最初方案中,本来是有电子眼拍摄闯红灯车牌号的这一很实用、很现实化的扩展功能的,但由于实现这种功能的电路芯片资料难以搜集,芯片电路连接复杂以及芯片工作模式,工作环境,工作特点的难以确定,最终被舍弃,只留下报警功能;(4)本设计在很多方面,比如译码器的选择,定时器选型,程序调用方式等等尽量做到不与本组其他成员雷同,程序编制力求简便清晰,硬件连接图在保证每根具体用到的管脚线都能被表示出来的同时,力求线路连接清晰明确,尽量不使线与线之间过于缠绕。2 方案论证
2.1 软件定时与硬件定时
本任务要求交通信号灯能实现自行定时、延时、切换等功能,即能实现交通信号灯自动控制。一般计算机控制系统实现定时或延时有两种基本方法:利用软件定时或使用可编程硬件芯片,即硬件定时。软件定时,即让机器执行一段程序,这个程序没有具体的执行目的,显然利用执行每条指令cpu所花费的时间,可实现延时功能。这种方法容易实现,仅需选用恰当指令并安排循环即可实现,定时时间调整方便,但不能做到精确定时。另外,时间调整是以一条指令执行时间为基准,占用cpu资源,降低cpu利用率。
硬件定时,即使用可编程定时/计数器硬件芯片定时。这种芯片内部有一个可编程定时器,其定时值、定时范围可以很容易地由软件程序改变,定时时间到时可发出某种形式的信号通知外设或cpu。定时器的输出频率和波形等均由程序设定,因而使用灵活,功能强。综合软、硬件定时的各种优缺点,考虑到交通信号灯精确换灯的要求,以及交通信号等需要方便、灵活地调整换灯时间等特点,我选用硬件定时来完成任务。2.2 查询方式与中断方式
定时时间到,比如车道绿灯亮45s后需换成黄灯闪烁,完成这一转换工作,有两种工作方式:查询方式和中断方式。
查询方式即cpu在与外设传输数据(本设计为8086传输数据给8255a从而控制交通信号灯换灯)前,一直不停检查外设状态,当外设准备好时方传输数据(本设计为8086不断测试8255a状态口pc1,当pc1变为低电平时,表明定时时间到),cpu可传输数据,控制信号灯切换。
中断方式可以不让cpu主动去查询外设状态,而是让外设在数据准备好(定时时间到后)之后再通知cpu,cpu继而开始与外设交换数据控制外设工作。
显然查询方式相比与中断方式,使cpu利用率大大降低,因为cpu要用大量时间去执行状态查询程序。但考虑到本课程设计的主要目的是控制信号灯切换,即cpu工作最终目的还是与外设传输数据,控制外设工作,即这种状态查询是有必要的,cpu的不间断的状态查询并非多余的,而且查询方式可使指令执行效率提高,指令执行目的更加明确,软件编程更加简便,避免了中断方式繁琐的中断矢量表的建立,中断程序的汇编等等,因而我选用查询方式来实现交通信号灯的自动控制。
2.3 8253定时/计数器与8254 定时/计数器
8253和8254都是能实现定时,延时功能的可编程定时计数器,可以 轻松地实现所需要的功能。两者的功能与工作方式,工作环境皆类似,区别仅在于8254的工作频率更高,可达到10mhz。另外,8254比8253还多出回读功能。
考虑到本组大多数人都选用8253,为避免重复雷同,我选用8254定时计数器,实际上两者并没多大区别。
2.4 方案确定
综上所述,我选用的方案最终为利用可编程计数器8254实现硬件定时,用查询方式控制8086工作,用并行i/o接口8255a实现8086与外设(本设计采用发光二极管模拟交通信号灯)数据交换,用中断控制器8259a实现闯红灯报警的扩展功能。硬件部分设计 3.1 总体设计
正如a3图纸系统硬件连接图所示,cpu我选用intel公司的8086,它足以满足交通信号灯自动控制系统的功能要求;存储器选用两片型号为6116的静态ram,一片作为奇片,一片作为偶片,总存储容量可达到4kb,既可以读也可以写,足以满足要求;由于8086cpu有16根地址与数据共用线,故有必要将地址码与数据码分开,8086采用了分时传送的方法,即先传送地址码,再传送数据码,故必须用锁存器将地址码锁存起来。我选用74系列的74ls373作为地址锁存器; 由于外设、内存存取数据速度不匹配,故有必要使用缓冲器来暂时记忆存储数据,我选用74系列的74ls245作为数据缓冲器;存储器译码我采用全译码方式,用74ls688比较译码器可减少逻辑组合电路;可编程芯片8255a,8254,8259a的片选信号译码,我采用线译码方式,这样可以保证其端口地址只有8位,易于程序编写。因而74ls138译码器是最好的选择。至于8255a,8254,8259a的选用目的已在前面解释过,这里不再重复。在具体设计该系统时,我选用发光二极管led来模拟红,黄,绿灯的亮和灭。由于实际生活中只需要10盏灯就可实现车行道,人行道的通行,如图所示,故这里我也选用10支二极管,其对应关系如表所示。led1-led5与8255a pa口相连,led6-led10与pb口相连。pc1口作为状态查询口,pc6口输出可实现车闯红灯的报警功能。
图1 信号灯和led对应图 3.2 cpu选型
cpu我选用的是8086,其管脚分配图如图所示。部分管脚采用分时复用方式,构成了40条管脚的双列直插封装,它有两种工作模式,我采用的是最小模式,故33号管脚应接高电平。
8086内部结构由指令执行部件eu和总线接口部件biu两部分构成。eu负责执行指令,biu负责取指令,读出操作数和写入结果。两个单元相互独立工作,有效地加快系统的运算速度。
3.3 存储器选型
存储器我选用两片6116型号的静态ram,容量为4kb片选信号与a0相连的是偶片,主要用于低8位数据总线上进行字节传送。与bhe选中的是奇片,主要用于高8位数据总线上字节传送。当a0和bhe都选中的时候,可进行16位数据总线字传送。
图3 6116 ram存储器管脚图
ram的主要功能是存储程序、变量等。如果计算机关机,这些信息不再存在。本电路中,a12-a19作为片选信号,均为低电平。故存储范围为0h-0fffh。
3.4 可编程芯片说明及其地址范围确定
3.4.1 8254定时/计数器及其地址范围
8254与8253功能类似,但8254工作频率更高,可达10mhz,且8254还可进行回读,但这一功能在本设计中用不上,因而对8254的说明也可看作是对8253的介绍,事实上两者管脚图接近完全相同。
8254芯片包含3个功能完全相同的计数通道,称为通道0,通道1,通道2,有6种工作方式。本设计要求实现的最大45s,故必须采用两个计数器级联方式,工作在方式2分频功能。另一个计数器1工作在方式5,out1门产生中断,实现闯红灯报警3s的功能。三个计数器具体连接图如a3图纸硬件连接图所示,clk0,clk1都通入1.2mhz的脉冲。out0与clk2端相连,均工作在方式2分频,由out2门产生低电平作为状态信号实现延时功能。计数器1工作在方式5,gate1门上升沿触发。如图3所示,当车行道红灯时,则开中断。当有车闯红灯时,就会阻挡安装在人行道上的红外线发射和接受装置的光线,接收装置可将光信号变为电信号的一个脉冲,通入gate1门,上升沿触发,在out1门输出低电平,将此电平通过非门后连在8259a的ir1端,则可以产生中断。经过中断处理便可以控制相关芯片发出3s的报警信号。当然,在车行道绿灯时,应关中断。
图5 车闯红灯报警信号图
8254的端口地址可由硬件连接图确定,由图可知,8254片选信号由y2引出,并与a0组成逻辑电路,输出口送入8254的 端。其地址可由上表可看出,为40-46h中偶地址。
3.4.2 8255a并行i/o接口及其地址范围
8255a是一个标准的40管脚芯片,它有3个数据端口,分别为pa口,pb口,pc口。每个端口有8位。8255a有3种工作方式。本设计选用最简单的方式0——基本输入/输出方式。
本设计用到了pa,pb口,它们分别作为发光二极管的并行输出接口。由于发光二极管,由于二极管为共阳极,故当pa,pb输出为0(低电平)时,相应二极管才会亮。另外,pc1口作为状态查询口,于8254 out2门相连,当pc1输入为0时,表示定时时间到,可交换数据。pc6口作为输出口,作为报警信号的端口。这些在软件编程时要格外注意,将决定各端口控制字的选择和确定。8255a端口地址可硬件连接图确定,由图可知,8255a片选信号由y3引出,并与a0组成逻辑组合电路,作为8255a 信号。其地址可由右表看出,为60h-6中偶地址。
3.4.3 8259a中断控制及其地址范围 8259a可编程芯片中断控制器(pic)称为优先权控制器,它可为cpu处理8级向量中断。本设计中,中断控制器用于扩展电路的报警功能。由硬件图可知,out1门低电平经过非门送入ir1端,故其为高电平有效的电平触发方式。
8259a的端口地址可由硬件图确定。由图可知,8259a片选信号由y4引出,并与a0,a2组成逻辑电路,作为8259a 信号。其地址可由右表看出为80h-82h中偶地址。
3.5 其它选用芯片说明 3.5.1 地址锁存器74ls373
在8086系统中,地址线和数据线时复用的,故有必要锁存地址。74ls373管脚及功能图如图所示。其数据送入是由时钟的约定电平来进行的。e为低电平时,锁存器才能工作。
3.5.2 数据缓冲器74ls245
74ls245是带三态输出的8位双向数据缓冲器,专用于需要双向传输的 数据总线接口。它其实也是一个三态门,为输出使能端,g为低电平时,缓冲器才能工作,m为传输方向控制端。事实上,在8086最小模式时,由于锁存器的作用,数据缓冲器并不是必要的。
3.5.3译码器
3.5.3.1比较译码器74ls688
在存储器扩展时,我选用74ls688作为译码器,其一是为了在全译 码时减少组合逻辑电路,二是为了与本组其他成员相区别。74ls688作译码器时,必须为低电平,且当且仅当对应的8个输入端p与8个输入端q相等时,才会输出低电平。利用这一特性将 低电平作为存储器的片选信号,可实现其译码片选功能。
由硬件连接图可知,在设计中,我将8个输入端q全部接地,即低电平,保证了存储器高8位全部为0。实现了存储器从最低地址0h-0fffh,4kb的存储容量。3.5.3.2 74ls138译码器
74ls138译码器是译码电路中最常用的,在本设计中我也选用74ls138译码器产生8255a,8254,8259a三个芯片的片选信号,如果选用比较译码器74ls688则需要三片,既增加了芯片数量,也增加了电路消耗,同时占用了过多的空间,使线路连接更加复杂,更不直观。由于74ls138的功能及工作模式熟知,这里不再赘述。
3.5.4时钟发生器8284a
8284a是用于8086(或8088)系统的时钟发生器/驱动芯片,它为8086(或8088)以及其他芯片提供所需的信号。
8284a由三部分电路组成:时钟信号发生器,复位生成电路和就绪控制电路。下图是8284a的管脚图。
3.5.5 d触发器
d触发器的工作原理是在cp端脉冲上升沿触发翻转技术,在本电路中,主要用于分频。其将cp端脉冲频率减半,那么为什么要减半频 率呢?
原因是8253的最高工作频率只有2mhz,因此必须将2.4mhz脉冲频率减半8253才能工作。因此,在我选用的8254定时/计数器电路中d触发器并不是必要的了,甚至可以完全省去不用,因为8253最高工作频率可达到10mhz,但为了避免频率过大导致45最长延时时,写入的数据过大,我还是加上了d触发器,无非是为了简化后面的软件编程。3.5.6 7407驱动器
7407ttl集电极开路六正相高压驱动器,其管脚图如下。
3.5.7 功率放大器pwn-2401-ew
该放大器是上海迈高网络技术有限公司生产的,主要工作2.4ghz ism频段的wlan设置的覆盖范围。4 软件总体设计说明 4.1 系统软件部分说明 4.1.1 宏调用与子程序调用
设计延时程序可采用两种方法,一种是子程序调用形式,另一种是宏调用形式。
宏调用形式是在汇编期间展开的,调用一次展开一次,因此它占用的存储空间与调用的次数有关,调用次数越多,占用存储空间越大。宏指令的使用简化源程序,但并不节省内存单元。
子程序是在程序运行期间由主程序调用,在目标代码中只占用它自身内存空间,因而汇编后目标代码少,节省内存空间。但子程序调用每调用一次就要保护断点,保护现场;返回后又恢复现场,恢复断点,增加了额外时间,因此执行时间长,速度慢。宏指令则可免去这些开销,更重要的是,宏调用时用实元取代哑元,调整灵活,程序大大缩减,可读性和可移植性大大提高。
综上所述,我采用宏调用形式,宏程序专门编制待定延时程序,主程序则顺序换灯、循环,而每个过程灯亮时间由宏程序保证。在整个程序的运行期间若发生中断(有车闯红灯),则由中断程序完成相应功能。当然,主程序中也必要包含中断矢量表的建立程序。因而,我所编制的程序由三部分组成:主程序、宏调用程序和中断服务子程序。下面将一一介绍,并且画出其流程图。4.1.2 各时间参数的计算 本设计中涉及的时间参数有:车行道绿灯时间45s,车行道红灯时间20s,车行道黄灯亮、灭的时间各一秒,报警器报警持续时间3s。由于8254 clk端时钟频率为1.2mhz,计数器0和计数器2级联按6000×200方式分频,即计数器0写入6000时,在计数器2 clk2中会有200hz脉冲。对于1s,需对计数器2写入时间参数time1=200;对于3s,time2=600;对于20s,time3=4000;对于45s,time4=9000,都不超过10000,故均可按bcd码写入。
4.2 主程序说明及其流程图
主程序主要实现两项功能:一是填写中断入口地址表,为中断服务提供必要准备;二是实现换灯,循环。其流程图见下图。4.3 宏调用及其流程图
宏程序的功能是实现准确的定时和延时,为主程序中红、黄、绿灯的亮、灭时间,中断服务程序的报警信号持续时间服务。当然,在宏程序中应当特别注意一些寄存器,变量,地址等保护工作,这就需要堆栈。其流程图见下图。
4.4 中断服务程序说明及其流程图
本设计中我编制的中断服务程序显然是为扩展功能——有车闯红灯报警3s服务的。中断服务程序主要是对8255a c口进行操作的,使c口输出高电平,经过放大器后驱动报警装置报警。当然,在编制过程中,也需要注意一些寄存器,变量,地址的保护工作,其流程框图 见下图。
所有三个程序的具体代码及设计编制,见附录。5 总结与体会 5.1 课程设计总结
本次课程设计,要求自制交通信号灯自动控制系统,并能编制该系统工作的汇编源程序。我的设计采用可编制芯片8254硬件定时,用查询方式来控制交通灯的亮与灭,指令执行目的明确,交通灯亮、灭延时时间精确,并且还能实现有车闯红灯的报警功能,因而该系统使用可靠。电路连接也比较简便,芯片花费不多,工作性能良好,能完整地实现城市交通信号灯所需的功能。
我所编制的汇编程序采用宏调用方式,用一个宏程序可实现多种定时功能,有效地避免子程序调用方式模块过多,程序代码繁琐的缺点。并且宏调用方式可以非常简便地调整定时时间,仅仅改变时间参数变量值就可方便地改变灯亮、灭时间,灵活性好这些都是子程序调用无法企及的。
总而言之,我觉得我的设计相角于本组其他同学而言,无论是芯片选择,硬件连接,各种芯片工作模式,源程序编制等等都是比较独特而又不失简便的,我在设计过程尽量避免与本组其他同学的设计雷同,而且尽量将多种方案进行全方位比较与取舍,比如软件定时与硬件定时,查询方式与中断方式,74ls138与74ls688译码器,宏调用与子程序调用,这些我都已在前面说明书中做过很多对比与论证。总之,我对自己的设计比较满意。5.2 感想与体会
关于这次课程设计的体会,我是深有感触的。
首先,我想说,这次课程设计的的确确让我增长了不少见识,使我对《微机接口》这门课程认识更深。比如,在课程设计前,可能都知道cpu与存储器相连能实现存储器扩展,cpu与8255a相连能实现cpu对外设的并行输出和控制,8253能定时计数,8259a能管理中断,但真正的这些芯片之间各端口具体连接,包括每根地址线,数据线的连接,片选信号的产生,8255a,8253,8259a的工作原理和工作模式等等,都是非常模糊的。只有经过这次课程设计的鞭策和逼迫,我们才不得不通过各方面途径去查取相关资料,去自学相关知识,去一个个逐步消解我们学习上的盲点。试想,如果没有这次课程设计,会有多少同学会自觉的那样努力的,刻苦地那样做呢?人都是懒惰的 动物,现实生活中,大多数人不都是言不由衷,违背己意的去做自己不喜欢做,讨厌做却又不得不去做的事情吗?
其次,我想说这次设计过程不开心,不愉快的一些事情。《红楼梦》里关于品尝有云:一杯为品,二杯则是解渴的蠢物,三杯便是饮牛饮驴的。同样,我想说,课程设计,两三个人在一起则是讨论交流;一坨人在一起则是相互推赖,抄袭,敷衍了事。我不明白为什么一个班上只有5个课题设计,一个设计要吸纳七,八个人。就拿我所在组来说,真正为之筹谋计划的少,贪成享乐者甚多。经常是两三个人交流沟通,却要想出五六个不同设计方案为本组其他成员共享。我想说,毕竟大家同学一场,同学之间的企求不好拒绝,所以老师上次“冤枉”我与某人流程图类似让我特委曲难受。参考文献
[1] 张玉清,王春玲.ibm pc 微型计算机原理与接口技术.人民邮电出版社,1997 [2] 彭虎,周佩玲,傅忠谦.微机原理与接口技术(第二版).电子工业出版社,2008 [3] 王永山.ibm pc汇编语言程序设计和接口技术.西安电子科技大学出版社,1989 附录参考程序
title ;程序名
delay macrao time ;延迟宏定义
local l ;局部说明
push al push bl
mov bl mov al bcd码写入 out 46h mov al out 40h mov al out 40h mov al 码写入
out 46h mov al out 44h mou al 2,time,001101001b,al,00,al,60,al , 10110101b , al , 00 , al , bl
;计数器0,方式2,;计数器0写入6000 ;计数器2,方式2,bcd ;时间参数写入计数器23
;送延迟参数 out 44h , al mov al , 01011011b ;计数器1,方式5,bcd码写入
out 46h , al mov al , 5 ;计数器1写入5,5个脉冲后发生中断
out 42h , al l: in 42h , al test al , 00000010b jnz l pop bl pop al endm data segment time1 equ 2 time2 equ 6 time3 equ 40 time4 equ 90 data ends
stack segment para stack db 100 dup(?)
;测试pc1
;为1时再测试,直至为0 ;宏定义结束
;黄灯闪烁时间
;报警持续时间
;车道红灯时间
;车道绿灯时间 'stack' 24
stack ends code segment start: mov ax , data
mov ds , ax mov ax , stack mov ss , ax cli
;关中断
cld mov ax , o ;建立中断入口地址表
mov es , ax mov di , 4*51h mov ax , offset intproc stosw mov ax , seg intproc stosw mov al , 00011011b ;设置8259a,写icw1,高电平触发,无级联
out 80h , al
mov al , 50h ;写icw2,中断矢量基值为50h out 82h , al mov al , 00000011b ;写icw4,完全嵌套,非缓冲,自动eoi out 82h , al mov al , 11111101b ;写ocw1,仅允ir1中断
out 82h , al mov al , 10000001b pc上半口输出,pc下半口输入
out 66h,al sti mov al , 0ffh 置0 out 60h , al out 62h , al mov al , ofh out 64h , al myc: cli
mov al , 00001110b 报警
out 60h , al 灯亮
mov 62h , al delay time4
;设置8255a,pa,pb,;灯全灭,pc1置1,pc6;关中断,防止绿灯时;车道绿灯亮,人道红;延迟宏调用,时间45s
ywn: mov cx , 3 ;设置闪烁次数
mov al , 00010110b
;车道黄灯亮
out 60h , al out 62h , al delay time1
;延迟宏调用,时间1s mov al , 000111001b out 60h , al out 62h , al delay time1 loop ywn sti 则中断
mov al , 00011001b 亮
out 60h , al out 62h , al delay time3
mov ax , 06h mov dl , offh int 21h jmp myc love: mov ah , 4ch
;车道黄灯灭 ;延迟宏调用,时间1s ;开中断,有车闯红灯时;车道红灯亮,人道绿灯;延迟宏调用,时间20s ;判断是否有键按下 27
int 21h ;返回dos code ends ends start intproc proc far ;中断服务子程序
push ax ;保护现场
push bx pushf mov al , 00001101b out 66h , al delay time2 mov al , 00001100b out 66h , al popf
pop bx pop ax iret intproc endp
;pc6置1,报警
;延迟宏调用,时间3s ;pc6置0,报警解除 ;中断返回 28