基于S3C44B0+uClinx平台的交通绿波控制系统的设计方案_第1页
基于S3C44B0+uClinx平台的交通绿波控制系统的设计方案_第2页
基于S3C44B0+uClinx平台的交通绿波控制系统的设计方案_第3页
基于S3C44B0+uClinx平台的交通绿波控制系统的设计方案_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、    基于S3C44B0+uClinx平台的交通绿波控制系统的设计方案    基于S3C44B0+uClinx平台的交通绿波控制系统的设计方案    类别:电子综合      摘要:针对交通信号单点控制方式的不足,提出了基于S3C44B0+uClinx平台的交通绿波控制系统的设计方案,讨论了系统的硬件构成以及软件编程实现,经在虎门应用表明, 本系统减少了车辆在每个交叉口的延误时间,解决了虎门交通拥挤问题,具有良好的

2、应用价值。关键词:S3C44B0;uClinux;绿波控制;socket 早期的交通信号控制多采用固定配时方案的单点控制方式,虽然提高了单个交叉口的通行能力,但也带来了一些问题。当考察重点从单个交叉口变为整条主干道时,车辆在主干道上行驶几乎要在每个交叉口停车,沿途停车次数多,行驶速度低,行程时间长,造成整个主干道的通行能力和通行效率下降,交通高峰期车辆堵塞的可能性也大大增加。因此,改善现有的交通控制方式与管理手段是提高现有道路的通行能力、缓解交通堵塞问题的一条有效途径。 交通绿波控制,就是指将一条主干道上若干个连续交叉口的信号灯进行协调控制。即在一定时间差内,各个路口绿灯依次亮起,使行驶在该道

3、路上的车辆可以不遇红灯或少遇红灯而通过。从该道路各交叉口的灯色来看,绿灯一个接一个就像波浪一样,所以称为“绿波控制”。近年来,交通绿波控制的研究已在很多城市展开。南京将有42条道路178个路口采取信号“绿波控制”技术;武汉市公安交管部门计划在汉口解放大道、建设大道等几条主干道上实施交通信号“绿波带”控制;芜湖也在加快交警“数字化”建设,实现“绿波带”控制。交通绿波控制的研究在众多城市展开,迫切需要一种有效的解决方案。本文从硬件设计开发的角度,提出了一种基于S3C44B0+uClinux开发平台的交通绿波控制系统的解决方案,满足了这一需要。经在虎门实施应用表明,本系统明显改善了虎门的交通拥挤问题

4、,减少了车辆在每个交叉口的延误时间,具有良好的推广应用价值。1.系统构成本系统由路口信号机、控制中心服务器和用户终端三部分组成。路口信号机采用S3C44B0硬件开发平台,采用uClinux软件平台;控制中心服务器的硬件平台为普通PC机,软件平台为Redhat 9.0;用户终端的硬件平台为普通PC机,运行控制请求程序,通过网络访问控制中心服务器。系统结构如下图一所示。500)this.style.width=500;" border=0 1.1路口信号机路口信号机的作用:一是通过线圈检测器得到交通流数据,包括车流量,车速和占有率等,并将这些数据通过通信网络传给控制中心服务器;二是在路口

5、信号机与控制中心服务器联网的情况下,路口信号机接收控制中心服务器的方案控制路口信号灯的运行。1.2控制中心服务器控制中心服务器的作用:一是接收来自路口信号机的数据,并生成相应的控制方案,协调控制各个路口信号机的信号机的运行;二是提供用户终端对路口信号机的工作状态和参数进行查询和修改。一个控制中心服务器可以协调控制多台路口信号机工作,也可以同时供多个用户终端进行查询和修改。1.3用户终端用户终端是用户访问服务器的窗口。根据拥有的权限的不同,将用户分为管理员、业务主任和操作员三类,其中管理员的级别最高,可以对系统管理、维护和参数修改;业务主任次之;操作员的级别最低,仅能浏览各种状态,进行有限的操作

6、和参数修改。将用户终端的PC机、控制中心的服务器和路口信号机通过网络组成一个局域网,用户在普通PC机上的IE浏览器中输入控制中心服务器的IP地址,回车后即进入交通信号控制系统图形用户界面,提示用户输入用户名和密码。待输入正确的用户名和密码,点击“确定”按扭,登录画面消失,出现系统的主画面,此时就可以查询信号机的工作状态和对参数进行修改。2.系统功能实现2.1路口信号机的实现路口信号机采用基于ARM7TDMI内核的32位嵌入式S3C44B0微处理器 。S3C44B0包含一个使用了66MHz和单周期精简指令处理器,其内建8k高速缓存器,2通道通用DMA,2通道UART带有握手协议,1通道SIO,1

7、通道多主IIC-BUS控制器,5个PWM定时器,71个通用I/O口,并且能够与常用的外围设备实现无缝连接,简化外围电路设计,降低产品成本、体积和功耗。路口信号机开发板的设计采用16M SDRAM和2M Flash的内存构架。其中,Flash型号是SST39VF160,主要用于存放BIOS程序、uClinux内核映像以及ROMFS文件系统。SDRAM则采用两片HY57V641620,共同组成16M、32位宽的系统主存储器。外设方面,用PDIUSB12芯片扩展了一个USB接口,串口控制芯片采用常见的MAX232,网口控制芯片采用RTL8019扩展1个10100M的网卡设备。在对路口信号机编程调试完

8、成后,就要进行uClinux在S3C44B0上的移植和路口信号机程序下载两个过程。2.1.1 uClinux在S3C44B0上的移植 uClinux是专门针对没有MMU的CPU,适合嵌入式系统小型化应用,具有稳定的移植性,优秀的网络功能,完备的对各种文件系统的支持以及标准丰富的API,而且系统升级也非常容易,因此路口信号机选用uClinux作为嵌入式操作系统。在S3C44B0上对uClinux内核进行移植的过程为:(1)make menuconfig进入菜单化的源代码配置工具(2)make clean清除所有的编译结果(3)make dep设置文件依赖关系(4)make lib_only编译库

9、文件(5)make user_only编译应用程序(6)make romfs编译文件系统(7)make image生成映像文件 (8)make 完成整个编译过程。编译完成后,在image下产生3个文件:image.ram,image.rom和romfs.img。2.1.2路口信号机程序下载 将路口信号机与普通PC机的串口和网口用串口线和网线连接起来,并使PC机的IP与路口信号机的IP处于同一网段下(路口信号机的默认IP为28),在PC机上运行Netterm软件,程序下载的步骤如下:(1) 单击工具条中的按钮Phone Directory,在弹出的窗口中选择Emulatio

10、n为VT100,Connection为Modem,Keys为DEFAULT;(2) 单击Modem Setting按钮,在弹出的窗口中将Port设为笔记本电脑与信号机的串口(一般为COM1),将Baud Rate设为128k,将Data Bits设为8,将Parity设为None,将Stop Bits设为1;(3)单击OK退回到上一窗口,在此窗口中点击连接按钮;(4)接通信号机电源,单击空格键,在Netterm中显示hfrkS3C44B0提示符说明已建立连接,此时等待键入命令;(5)分别键入下列命令并回车,setenv ipaddr 28路口信号机的默认IP,setenv

11、 serverip PC机上的IP,依情况而变,saveenv保存设置,erase 0x50000 0x1fffff擦除该区间范围内的内容;(6)在PC机上运行tftpd32.exe,选择在上一节介绍的移植过程中生成的image.rom文件,在Netterm的提示符下键入tftpboot 0xc008000 image.rom命令,即将信号机的镜像文件下载到地址为0xc008000处。执行完上述过程上电复位,信号机即开始运行。2.2控制中心服务器的实现控制中心服务器作为一个数据载体,通过网络实现与用户终端和路口信号机传输数据。网络所用的协议是TCP/IP,编程的基础是so

12、cket。Socket即“套接字”,表示网络通信进程的ID。常用的有流式套接字和数据报套接字两种,在linux中分为称为“SOCK_STREAM”和“SOCK_DGRAM”。Socket通信采用server/client模式 ,即服务器的应用程序用于接受客户端的连接请求、接收客户端的信息、处理客户端的计算请求、向客户端发送计算结果以及应答信息等。客户端的应用程序用于申请与服务器的连接、向服务器发送计算请求、处理服务器发回的计算结果和其它信息。当这三者进行通讯时,控制中作为服务器,用户终端和路口信号机均作为客户端。基于socket通信所要调用的主要库函数如下:(1)socket int sock

13、et(int domain,int type,int protocal)此函数用来建立一个新的socket,以通知系统建立一个通信端口。函数中的domain参数用于指定使用何种地址类型;type参数用于指定套接字类型;protocal参数通常为0,表示使用默认协议。(2)bind int bind(int sockfd,struct sockaddr *myaddr,int addrlen)bind函数可把socket返回的套接字端口与网络上的物理位置相关联。其中sockfd参数是函数socket返回的套接字描述符;myaddr参数是本地地址;addrlen参数是套接字地址结构的长度。服务器和

14、客户端都可以调用函数bind来绑定套接定地址,但一般是由服务器调用函数bind来绑定自已的公认端口号。(3)listen int listen(int sockfd,int backlog)利用该函数可以使socket端口接受从客户端发送来的连接请求。Backlog参数是所能接受的客户机的最大数目。对socket、bind、listen三个函数的综合调用最终可在服务器上产生一个能接受客户机请求的监听文件描述符sockfd。(4)accept int accept(int sockfd,struct sockaddr *address,int *address_len)当有客户机发出连接请求时,

15、此函数初始化这个连接。其中参数address用来存储客户机的信息,此信息由accept填入。当与客户机连接时,客户机的地址与端口将填到此处;address_len是客户机地址长度的字节数。(5)connect int connect(int sockfd,struct sockaddr *address,int address_len)客户机调用socket建立传输端口后,接着将调用connect函数来建立与远程服务器相连的连接线路。此函数的参数调用同bind。2.2.1服务器端在服务器端创建一个socket后,再用bind()命令把一个地址绑定到这个端口上,然后,服务器端使用listen()

16、侦听连接请求,当远程的客户机试图用connect()连接linsten()正在监听的端口时,连接将会在对列中等待,直到使用accept()处理它。在accecpt()处理了连接请求后,将会生成一个新的描述这个连接端口的套接字,利用这个套接字就可以发送和接收数据了。如果listen()一直没有侦听到连接请求,那么服务器就在accept()处阻塞,一直等到有连接请求到来。连接程序如下:sockfd=socket(AF_INET,SOCK_STREAM,0);memset(char *)&server,0,sizeof(server);server.sin_family=AF_NET;ser

17、ver.sin_addr.s_addr=htonl(INADDR_ANY);servaddr.sin_port=htons(80);bind(sockfd,(struct sockaddr *)&servaddr,sizeof(servaddr);listen(sockfd,5);for(;)client=sizeof(cliaddr); connfd=accept(sockfd,(struct sockaddr *)&cliaddr,&client);/接收客户机挂机的连接if(connfd<0) break; handleconnection(connfd);

18、 /处理报文请求close(connfd);close(sockfd); /关闭套接字 2.2.2客户端对于客户机来说,它也需要先用socket()建立一个通信端口,但是它不必bind()把一个本地地址绑定到这个端口上,而是直接使用connect()向指定的服务器发送连接请求,如果请求被接收,下一步就可以进行数据流通信了。实现上述过程的代码的主要部分如下:sockfd=socket(AF_INET,SOCK_STREAM,0);connect(sockfd,(struct sockaddr *)(&server_addr),sizeof(struct sockaddr); /客户机向指定的服务器发送连接请求recv(sockfd,buffer,RECVBUFSIZE); /接收到服务器端发来的buffer信息, RECVBUFSIZE为buffer的字节数close(sockfd); /关闭连接的套接口文件描述符3.应用实例本系统在东莞虎门连升路得到了应用。连升路是虎门的两条主干道之一,它北起六号路,经太宝路、虎门大道、教育路、金龙南路,止于十号路,共九个交叉口,全长3153米。利用反映车流运动的时间距离图 ,初步建立交互式或同步式协调系统,然后再对通过带速度和周期时长进行反复调整,从而确定相位差,最终获得一条理想的绿波带,即通过带。将原来单点定时控制改造为干线交通绿波控

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论