版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、WORD35/39WORD摘 要在对交叉路口车流信息的Internet传输与控制进行设计需求分析和功能分析的基础上,选用ATMEL公司的ATmega128单片机做为智能交通主控芯片,以太网卡控制芯片采用 RTL8019AS芯片将 TCP/IP协议栈嵌入到单片机,提供一个接入Internet的低成本嵌入式系统和网络访问的有效方法。用它的网络传输 、远程监视控制功能和TCP Socket远程控制实时通,设计出新型简单的智能交通控制系统。 本文重点介绍客户端的实现,它跟交通灯控制系统如何利用中断相互控制,和它跟控制中心如何通过网络相互交换信息。关键词 智能交通 InternetATmega128 T
2、CP/IP协议 AbstractOn the foundation of design need analysis andfunction analysis of the Internet information transmission and control of Traffic Crossing,this paper chooses the ATmega128 single-chip microcomputer of ATMEL corporationand as the main chip of intelligent traffic control,RTL8019AS as Ethe
3、rnet control chip and embed the TCP/IP protocol stack into the single-chip.It is a low-cost embedded system for linking with Internet, and an effective way to access the network.Using its network transmission, long-distance watching-control ,and the real-time data communication by socket-technology,
4、 we can implement the develop of new-kind and straightforward intelligent traffic control system.This paper focuses on introducing how to implement the client, with the interrupt it how to mutually control with the traffic light control system ,and it how to mutually exchange information with the co
5、ntrol center through the Internet.Keyword: Intelligent Traffic; Internet; ATmega128; TCP/IP Protocol;目 录 TOC o 1-3 h z u HYPERLINK l _Toc1698643061.绪论 PAGEREF _Toc169864306 h 1HYPERLINK l _Toc1698643071.1 选题的背景和意义 PAGEREF _Toc169864307 h 1HYPERLINK l _Toc1698643081.2 本课题主要研究容研究方法 PAGEREF _Toc1698643
6、08 h 1HYPERLINK l _Toc1698643092.系统分析与设计 PAGEREF _Toc169864309 h 3HYPERLINK l _Toc1698643102.1系统分析 PAGEREF _Toc169864310 h 3HYPERLINK l _Toc1698643112.2方案论证 PAGEREF _Toc169864311 h 3HYPERLINK l _Toc1698643122.3系统设计 PAGEREF _Toc169864312 h 5HYPERLINK l _Toc1698643133.客户端系统的分析与设计 PAGEREF _Toc169864313
7、 h 8HYPERLINK l _Toc1698643143.1 开发工具 PAGEREF _Toc169864314 h 8HYPERLINK l _Toc1698643153.2 系统分析 PAGEREF _Toc169864315 h 11HYPERLINK l _Toc1698643163.3 总体设计 PAGEREF _Toc169864316 h 13HYPERLINK l _Toc1698643174.结果分析 PAGEREF _Toc169864317 h 19HYPERLINK l _Toc1698643185.总结 PAGEREF _Toc169864318 h 21HYP
8、ERLINK l _Toc1698643195.1毕业设计工作的总结 PAGEREF _Toc169864319 h 21HYPERLINK l _Toc1698643205.2工作展望 PAGEREF _Toc169864320 h 21HYPERLINK l _Toc169864321附录 PAGEREF _Toc169864321 h 22HYPERLINK l _Toc169864322参考文献 PAGEREF _Toc169864322 h 35HYPERLINK l _Toc169864323致 PAGEREF _Toc169864323 h 361.绪论1.1 选题的背景和意义1
9、.1.1 选题的背景目前,大多交通路口的信号灯的控制都是固定的、局部的,不能随车流的变化而改变。这对缓解交通拥挤、减少交通事故、节约能耗、降低污染等带来不便。建立实时、准确、高效的交通路口车流自动统计分析与诱导控制系统,通过采集和分析动态信息,然后有针对性地控制诱导,也即建立智能交通系统,将各个交通路口车流信息与时送到控制中心,在控制中心使得整个城市得到实时监控。这对一个城市整体交通拥挤问题得到改善,交通事故能够降低有重大意义。智能交通系统1(简称ITS) ,是将先进的信息技术,计算机技术,数据通信技术,传感技术,电子控制技术,自动控制理论,运筹学,人工智能等有效地综合运用于交通运输,服务控制
10、和车辆制造,加强了车辆,道路和使用者三者之间的联系,从而形成一种定时,准确,高效的综合运输系统。1.1.2 选题的意义(1)有利于缓解交通的阻塞问题。 因为我们在现实生活中经常碰到有很长的车队在等待着绿灯亮。有了这个智能交叉路口控制系统,就能够有效的解决这个问题,不仅提高了交通灯的利用效率,也与时的疏散车流,缓解了交通压力。(2)有利于减少交通事故 在我们的现实生活中经常听到报道,说某个人因抢红绿灯,而导致的车祸的情况也有很多的,追究其原因,那就是赶时间,因为有时交叉路口中的一个车道没有车但是该车道显示绿灯,而有车等待的却是绿灯,所以那些人就抢红绿灯,所以导致了车祸的发生。但是用了这个智能效能
11、控制系统就是够避免这种情况,它能够让有车等待的车道显示绿灯让其通过。1.2 本课题主要研究容研究方法1.2.1 课题研究的容本课题利用Web Client模块部的TCP/IP网络协议5,以与10Base-T网络接口,连接到以太网,方便的实现串口设备的联网。在交叉路口终端,将传感器采集到的信息利用Web Client上网,将信息上传交通监控中心,在监控中心对数据加工处理并通过网络实时监控整个城市的交通。基本的框图如图1-1:图1-1 系统基本框图1.2.2 课题研究的方法本课题采用了客户端/服务器端的编程模式并利用windows socket API函数,把Web Client作为客户端,把监控
12、中心作为服务器端,把从Web Client中的车流信息通过10Base-T网络接口传输到服务器端,服务器端把车流信息保存在数据库,并且对该车流信息进行分析,然后发送控制信息,控制交通信号灯的显示时间与变换。2.系统分析与设计2.1系统分析2.1.1系统简介本系统是交叉路口车流信息的Internet6传输与控制,它主要是把从交叉路口终端采集到的车流信息通过Internet发送给监控中心,监控中心根据交叉路口发送的车流信息发出相应控制命令,以控制交叉路口的交通情况。2.1.2系统详细介绍系统采用客户端/服务端的模式,把车流信息采集终端作为客户端,监控中心作为服务端,因此系统可为三个模块分别是:客户
13、端模块、传输模块、服务端模块。客户端模块:负责采集车流信息,并把车流信息发送给传输模块,也可以接受传输模块的控制命令数据,以控制交通灯的显示情况。传输模块:负责数据在客户端模块与服务端模块之间数据的传输。服务端模块:接收传输模块发送的车流信息,并把控制命令发送给传输模块。2.2方案论证本系统采用高速单片机ATmega1287加 RTL8019AS以太网控制器。用嵌入式 TCPIP3协议,可以实现 TCP网络传输功能。而在交通灯控制系统这部分,我们采用了80C51作为控制芯片。ATmega1287为基于AVR RISC结构的8位低功耗微处理器。由于其先进的指令集以与单周期指令执行时间,ATmeg
14、a128的数据吞吐率高达1MIPS/MHz,从而可以缓减系统在功耗和处理速度之间的矛盾。128K字节的系统可编程Flash(具有在写的过程中还可以读的能力即RWW)、4K 字节的EEPROM、4K 字节的SRAM、53个通用I/O 口线、32个通用工作寄存器、实时时钟RTC、4个灵活的具有比较模式和PWM 功能的定时器/计数器(T/C)、两个USART、面向字节的两线接口TWI、8通道10位ADC、具有片振荡器的可编程看门狗定时器、SPI串行端口、与IEEE1149.1规兼容的JTAG 测试接口,以与六种可以通过软件选择的省电模式。由于ATMEL 的ATmega128 单片机丰富的片资源所以很
15、方便就可以运行一个小型的操作系统如 uC /OS,可以嵌入TCP / IP 协议,从而达到嵌入式 Web Client的目的,同时又大大简化了外围电路,提高了可靠型。RTL8019AS是由睿昱(Realtek)公司生产的一种高度集成的 10M以太网控制器与 NE2000兼容,支持 8位、l6位数据总线;置 16 KB的SRAM作为缓存;可连接同轴电缆和双绞线,并可自动检测所连接的介质。因此利用ATmega128与RTL8019AS就可以组成一个具有TCP/IP协议的并且能够与其它网络通信程序进行通信的设备 WEB Client。两者结合的硬件连接图如图2-1:图2-1 硬件框图它跟控制中心相连
16、接是基于Internet6的网络信息传输,其传输协议是因特网已经成熟的TCP/IP协议,不仅可以完成本地信息的接收和发送而且TCP保证了收到的数据都是准备无误,另外在远距离上可以完成同样的功能,这就使该系统能较少的受地域的限制,应用围广阔。它既是一个网络化的系统,也是一个广义的交通信息传输。跟以住的无线通信智能交通相比,用网络实现智能交通可以利用现有四通八达的网络光缆,只要在各个交叉路口留下网络端口就可以通过网络进行数据的传输,这大大节约的成本,而且不用专门铺设线路和购买专门的设备,用户可以通过手机或者其它方式上网就可以实时的了解交通情况,不仅方便而且快捷。而控制中心服务端的实现,使用Wind
17、ows操作系统下VC5,Microsoft公司的Visual C+平台不仅具有很强的网络程序处理能力,与Visual C+捆绑的MFC提供了大量封装良好的类,为用户开发网络应用程序提供全方位的支持。 由于在客户端用ATmega128芯片基本能实现了跟控制中心通信的功能,所以在交通灯控制系统只用80C51就足够了,而MCS-51的开发环境要求较低,软件资源十分丰富,它置中央处理单元、128字节部数据存储器RAM、32个双向输入/输出(I/O)口、2个16位定时/计数器和5个两级中断结构,一个全双工串行通信口,片时钟振荡电路。MCS-51单片机可以算是相当成功的产品,一直到现在,MCS-51系列或
18、其兼容的单片机仍是应用的主流产品。2.3系统设计2.3.1系统的原理图 根据系统的分析可以作出如原理图2-2:交叉路口交通灯控制系统中断控制通过P3.2P3.3引脚和延时时间的传输通过P0口WEB CLIENT系统PC机服务端数据库发送命令控制WEB CLIETN进行相应的操作或设定延时中断控制通过PORTD0口车流信息经过RJ45网口传输车流信息检测车流信息 图2-2 系统原理图该系统功能是实现交叉路口各个车道车流信息的检测,并且通过基于TCP/IP协议的Internet 将车流信息传输给PC机服务端,PC机服务端把收到的车流信息保存在数据库相对应表中,以供用户网上查询,PC机服务端也可以通
19、过Internet向交叉路口发送控制命令,实现了对交叉路口的远程控制。其叉路口交通灯控制系统主要是控制红绿灯的转换和绿灯的显示时间,交叉路口交通灯控制系统通过向Web Client系统发送中断来获取下一次延时的时间。而Web Client系统主要是把检测到的车流信息通过网络发送给PC机服务端,PC机服务端把收到信息保存在数据库表中,并根据车流信息查询数据库把查询到的延时间发送给Web Client 系统。Web Client系统就把接收到的延时时间从PORTB口输出,交叉路口交通灯控制系统就可以从P0口读取到下次要设定的延时时间,因为PORTB口跟P0口是相连的。PC机服务端也可通过按钮或者人
20、工输入向Web Client系统发送控制命令。2.3.2交通灯控制系统(1)交通灯控制系统的框图根据系统的分析,可以作出如图2-3的结构框图。图2-3中80C51芯片的P1口的段码输出直接至锁存器的输入端,锁存器采用74LS373,通过锁存器来控制数码管LED的显示时间,实现静态扫描。AVR ATmega128芯片跟80C51芯片之间相互连接,实现相互间的中断控制和将延时时间传输给80C51芯片,AVR ATmega128芯片对控制车流量进行统计。AVR ATmega128芯片MCS-51系列的80C51芯片相互中断控制延时时间传输74LS373锁存器锁存数据数码管LED静态扫描显示 图2-3
21、 结构示意图(2)功能说明系统功能:系统将传感器所采集到的车流信息利用设备Web Client上网,将采集的车流信息发送给监控中心。然后通过Web Client接收受监控中心发送的控制命令控制交通灯信号,另外交通灯控制系统根据从Web Client得到的延时时间对红绿灯显示时间进行控制,并用LED把那延时时间显示出来。(3)仿真设计根据系统的原理图可以作出仿真电路图2-3:图2-3中左下角的芯片是ATmega128,用来仿真Web Client。A、B、C、D四个按钮也就对应着Web Client上的PE2、PF2、PF3、PE3四个按钮分别用来模拟四个路口车流检测,按下A按钮即表示该A路口当
22、时有一辆车经过,其余三个按钮B、C、D也是同样道理。接下来AB红灯CD绿灯、AB绿灯CD红灯和紧急情况三个按钮用来模拟控制中心发过的三个基本控制命令操作。图2-3中左上角的芯片是80C51,从图中可以看出它与ATmega128通信是只要是通过P0口跟PORTB口传输的只要是延时的时间信号,而PORTD57是用来控制80C51的中断,80C51的P3.6口是用来控制ATmega128的外部中断INT0,这个信号的产生的时机是交通灯某一次延时完毕要求获得新的延时时间,它使ATmega128执行中断程序,把下一次的延时时间输出到PORTB口,然后80C51读取P0口的数据就得到下一次延时的时间。图2
23、-3中右下角两块芯片是数据锁存芯片,只要是为了方便LED灯的数据显示,它们接收的数据都是从80C51的P2口输出的。而图2-3右上角的就是交通各路口的红绿灯显示,它们是由80C51的P1口控制的。图2-3 仿真电路图 3.客户端系统的分析与设计3.1开发工具3.1.1 ICC AVR简介ImageCraft 的ICCAVR2是一种使用符合ANSI标准的C语言来开发微控制器MCU程序的一个工具它有以下几个主要特点:ICCAVR 是一个综合了编辑器和工程管理器的集成工作环境IDE,其可在WINDOWS9X/NT下工作。源文件全部被组织到工程之中,文件的编辑和工程世界的构筑也在这个环境中完成。编译错
24、误显示在状态窗口,中并且当你用鼠标单击编译错误时,光标会自动跳转到编辑窗口中引起错误的那一行。这个工程管理器还能直接产生您希望得到的可以直接使用的INTELHEX 格式文件,INTEL HEX 格式文件可被大多数的编程器所支持用于下载程序到芯片中去。ICCAVR 是一个32 位的程序支持长文件名。AVR 是哈佛结构的MCU,它的程序存贮器和数据存贮器是分开的,这样的设计是有一些优点。的例如分开的地址空间允许AVR装置比传统结构访问更多的存贮器;例如Atmega 系列允许有超过64K 字(WORD) 的程序存贮器和64K 字节的数据存贮器。将来的MCU装置可能用到更多的程序存贮器,而程序计数器仍
25、保留在16 位上。不幸的是,C不是在这种机器上发明的。特别地,C 指针是任意一个数据指针或函数指针,C 规则已经指定你不可以假设数据和函数指针能被向前和向后修改。可是同是哈佛结构的AVR,要求数据指针能指向任一个数据存和程序存。非标准C解决了这个问题,ImageCraft AVR 编译器使用“const”限定词表示项目是在程序存贮器中。注意对指针描述这个const 限定词可以应用于不同的场合,不管是限定指针变量自己还是指向项目的指针。例如:const int table = 1, 2, 3 ;const char *ptr1;char * const ptr2;const char * con
26、st ptr3;“table”是表格式样分配进程序存贮器,“ptr1”是一个项目在数据存贮器而指向数据的指针在程序存贮器,“ptr2”是一个项目在程序存贮器而指向数据的指针在数据存贮器,最后,“ptr3”是项目在程序存贮器而指向数据的指针也在程序存贮器。在大多数的例子中“table”和“ptr1”是很典型的,C 编译器生成LPM 指令来访问程序存贮器。注意C 标准不要求“const”数据是放入只读存贮器中,而且在传统结构中,除了正确访问就没有要紧的了。因而,在承认参数的C 标准中使用const 限定是非传统的。无论如何这样做与标准C 函数定义是有一定冲突的。3.1.2 Proteus简介Pro
27、teus是由英国Labcenter electronics公司开发的EDA工具软件。它从1989年出现到现在已经有十多年的历史,在全球广泛使用。Proteus安装以后,主要由两个程序组成:Ares和Isis。前者主要用于PCB自动或人工布线与其电路仿真,后者主要采用原理布图的方法绘制电路并进行相应的仿真。除了上述基本应用之外,Proteus革命性的功能在于它的电路仿真是互动的,针对微处理器的应用,可以直接在基于原理图的虚拟原型上编程,并实现软件代码级的调试,还可以直接实时动态地模拟按钮、键盘的输入,LED、液晶显示的输出,同时配合虚拟工具如示波器、逻辑分析仪等进行相应的测量和观测。作为一款ED
28、A仿真软件,Proteus与同类软件有着很多的相似之处。相比之下,其主要的特点有两个:一是对动态元件的实时仿真,它有着数量庞大的元件库。Labcenter公司与相关的第三方软件阵容共同开发了6000多个模拟和数字电路中常用的spice模型以与各种动态元件,基本元件如电阻、电容、各种二极管、三极管、MOS管、555定时器等;74系列TTL 元件和4000系列CMOS 元件;存储芯片包括各种常用的ROM, RAM,EEPROM, 还有常见I2C器件等。在丰富的库元件的支持下,所以它对“人机对话”的模拟增强了系统的真实性;二是虚拟工具箱的功能,Proteus的虚拟工具箱提供了电路测试中的常用工具和仪
29、器,主要用于在实时仿真同时的电路参数观测,测量结果随仿真动态变化并显示,可以满足精度要求不是很高的测量分析,对于电路特性的定性分析可以起到事半功倍的效果,大大节约了测试时间和开发成本。3.1.3 硬件运行平台整个开发板的电路图如图3-1:图3-1 开发板电路图 HYPERLINK :/localhost/admin/EditBox.asp l _Toc104742299 该开发板是一种微型Internet接入模块,可以将分布式串口设备或其它各种用户的智能系统接入到Internet,利用模块部的TCP/IP网络协议,以与10Base-T网络接口,连接到以太网,方便的实现串口设备的联网。通过这个网
30、络连接开发板,串口设备可将自身的运行状态和工作参数等信息以TCP或UDP数据报的方式提供给监控者,亦可实现信息的实时传输。这种实现方法有以下几个优点:简单方便:串口设备通过开发板上网时 ,其接口设备简单,只涉与数据交换,无须涉与到各种复杂的网络协议。无需专线:利用广泛存在的以太网资源,无需铺设现场总线,没有距离和国界的限制,只要有以太网即可通信。传输速率高:串行速率可以达到115.2Kbps,真正做到实时传送。3.1.4软件运行平台双龙公司WebServer System 和 TCP/IP Stack。双龙公司WebServer System包含了文件系统、线程管理、存管理、设备管理和网络管理
31、等功能。系统的基本模块如下:sl/OS API System Initialization Thread Management Thread States Event Management Heap Management Stream I/O Management Timer Management sl/Net API Socket API TCP Sockets UDP Sockets Protocols User Protocols DHCP DNS TCP UDP IP ICMP ARP Ethernet File System API. Micro-ROM File System. D
32、evice Driver API. Serial communication device driver. ATmega On-Chip UART Device Driver ATmega On-Chip UART Devices UART SPI Device Driver SPI UART Device UART I/O Control Functions UART Device Status Flags Network device drivers. Realtek 8019AS device driver Device eth0 Network Buffer Network Strea
33、m Device Driver Sound device drivers. VS1001K device driver. Interrupt Management SPI Digital I/O SPI Flash Devices Debug output functions. Formatted output functions.3.2系统分析3.2.1 系统的简介 本系统是一个客户端的程序,它建立在双龙公司WebServer System And TCP/IP Stack4之上,运行在Web Client的硬件平台。它可以连接控制中心的服务端程序,并且可以接收并响应来自控制中心的控制命令,
34、同时在某一次交通灯延时完毕后接收到一个中断信号,执行中断程序向控制中心发送车流信息。3.2.2 系统的详细介绍在综合考虑现有的软件资源和硬件资源基础上,我们采用以下这种方案:首先考虑到开发板上有两个预留口PORTB和PORTD,它们都是8位的,都有对应的3个I/O端口寄存器PORTx、方向寄存器DDRx、和输入引脚寄存器PINx(x代表B口到D口)。PORTxn、DDRxn和PINxn分别表示这3个I/O寄存器相应的各个位,其中n为07,代表寄存器中的位值。位于方向寄存器DDRx中的第个位DDRxn用于控制一个I/O引脚的输入/输出方向。当DDRxn为1时,对应的Pxn配置为输出引脚;而当DD
35、Rxn写入0时,对应的Pxn配置为输入引脚。当Pxn定义为输出引脚(DDRxn=1)时,PORTxn中的数据为外部引脚的输出电平。即置PORTxn为1,端口引脚被强制驱动为高,输出高电平(输出电流);清零PORTxn,端口引脚被强制拉低,输出低电平(吸入电流)。所以我们将PORTB口设定为输出口,跟交通灯控制系统中的80C51芯片的P0口相连,只要用来传输的开发板Web系统从控制中心接收到的延时时间。而对于PORTD口,我们考虑到它的前四个引脚PORTD03的第二功能,分别对应着外部中断的INT03。对于AVR的外部中断,如果主程序一旦进入中断服务程序,那么AVR芯片将自动的关闭全局中断,在这
36、个期间不再执行其它的中断请求,直到中断程序结束以后芯片才自动的重新开放全局中断。(注意,在这个期间某些中断请求可能会被丢弃,某些请求会留下中断请求标致,一旦当前的中断执行完毕,这个有中断标致的请求就有可能马上得到响应,如INT0的下降沿触发就会留下中断请求标致,而低电平触发就不会流下中断请求标致)。如果你想在执行中断服务程序时响应另外一个更重要的中断,那么就要在中断服务程序中加入一条打开全局中断的语句。接下来介绍一下ATmega128芯片中几个和中断相关的寄存器。外部中断控制寄存器A EICRA7表1 外部中断控制寄存器A EICRABit 7 6 5 4 3 2 1 0ISC31ISC30S
37、IC21ISC20ISC11ISC10ISC01EICRAISC00读写 R/W R/W R/W R/W R/W R/W R/W R/W初始值 0 0 0 0 0 0 0 0ATmega103 兼容模式不能访问这个寄存器,但是INT3:0 的初始值定义为低电平中断。 Bits 7.0 ISC31, ISC30 ISC00, ISC00: 外部中断3 - 0 敏感电平控制位外部中断3 - 0 由引脚INT3:0 激活,如果SREG 寄存器的I 标志和EIMSK 寄存器相应的中断屏蔽位置位的话。触发方式如下表所示。INT3.INT0 的边沿触发方式是异步的。若选择了低电平中断,低电平必须保持到当前
38、指令完成,然后才会产生中断。而且只要将引脚拉低,就会引发中断请求。改变ISCn 时有可能发生中断。因此建议首先在寄存器EIMSK 里清除相应的中断使能位INTn,然后再改变ISCn。最后,不要忘记在重新使能中断之前通过对EIFR 寄存器的相应中断标志位INTFn 写1使其清零。表2 INT30中断方式7ISCn1ISCn0说明 00INTn为低电平时产生中断请求 01保留 10INTn的下降沿产生异步中断请求 11INTn的上降沿产生异步中断请求Note: 1. n =3、2、1 或0。改变ISCn1/ISCn0 时一定要先通过清零EIMSK 寄存器的中断使能位来禁止中断。否则在改变ISCn1
39、/ISCn0 的过程中可能发生中断。外部中断屏蔽寄存器 EIMSK7表3 外部中断屏蔽寄存器 EIMSKEIMSKBit 7 6 5 4 3 2 1 0INT7INT6INT5INT4INT3INT2INT1INT0读写 R/W R/W R/W R/W R/W R/W R/W R/W初始值 0 0 0 0 0 0 0 0 Bits 7.0 INT7 INT0: 外部中断请求7 - 0 使能。当INT7 INT0 为1,而且状态寄存器SREG 的I 标志置位,相应的外部引脚中断就使能了。外部中断控制寄存器 EICRA 和EICRB 的中断敏感电平控制位决定中断是由上升沿、下降沿,还是电平触发的。
40、只要使能,即使引脚被配置为输出,只要引脚电平发生了相应的变化,中断可将产生。据此可以实现软件中断。外部中断标志寄存器 EIFR7表4 外部中断标志寄存器 EIFRBit 7 6 5 4 3 2 1 0INTFINTFINTFINTFINTFINTFINTFEIFRINTF读写 R/W R/W R/W R/W R/W R/W R/W R/W初始值 0 0 0 0 0 0 0 0INT7:0 引脚电平发生跳变时触发中断请求,并置位相应的中断标志INTF7:0 。如果SREG的位I 以与EIMSK 寄存器相应的中断使能位为1, MCU 既跳转到中断例程。中断例程执行时标志被硬件清零。此外,标志位也可
41、以通过写入1的方式来清零。若INT7:0 配置为电平触发,这些标志位总是为0。在睡眠模式下,如果中断是禁止的,则这些引脚的输入缓冲器也是禁止的。这有可能产生逻辑电平的变化并置位INTF3:0。在系统中我们只要用到外部中断INT0,且设定为下降沿触发。从图1.3 仿真电路图中可以看到PORD0跟80C51的P3.6引脚相连,所以只要交通灯系统使P3.6引脚从高电平向低电平跳转则会触发本系统的外部中断INT0,在中断子程序中完成了把当前对应路口检测到的车流信息以一定的格式(如AB:10)发给控制中心,控制中心接收到后就立刻返回一个延时时间。而本系统跟控制中心的通信是通过基于TCP/IP 协议的网络
42、连接来实现。TCP协议为其上的应用层提供了一种可靠传输服务。这种服务的特点是:可靠、全双工、流式和无结构传输。因此可以简单地把系统划分为两个基本模块,它们分别是数据接收模块与数据发送模块。(1)数据接收模块功能:它主要是接收从控制中心发送过来的控制命令并根据相应的命令执行相应控制操作,例如控制交通灯的紧急中断(全部路口的都亮红灯),或者某一车道中断(该车道亮红灯),或者控制中心要求获得交通路口现在的车流信息。(2)数据发送模块功能:根据控制中心的命令信息向控制中心发送某个路口的车流信息,或者当接收到交通灯延时完毕发来的中断信号,就向控制中心发送下次要延时的车流信息。3.3总体设计3.3.1 需
43、求规定本系统的主要的输入项目是控制中心发来的控制控制命令,输出项目是检测到的车流信息。主要的功能需:能够通过网络接收来自控制中心的控制命令,响应控制命令控制红绿灯的亮灭情况或把检测到的车流信息发给控制中心。主要的性能要:能响应控制中心发来的基本控制命令,实现对交通灯的基本控制。3.3.2基本设计理念和处理流程基本设计理念: 本系统是采用TCP/IP5的socket编程中的流式套接字编程,其叉路口作为客户端控制中心作为服务端双方建立一个可靠的连接,然后双方通过以太网进行数据的发送与接收,之所以选择流式套接字是因为它提供了一个面向连接、可靠的数据传输服务,数据无差错、无重复地发送,且按发送顺序接收
44、。处理流程:(请看图3-2)图3-2 TCP传输流程图3.3.3系统结构(1)系统框图与流程图系统框图(图3-3)图3-3 系统框图客户端系统总的流程图(图3-4):图3-4 客户端系统总的流程图客户端系统接收模块流程图(图3-5):图3-5 客户端系统接收模块流程图客户端发送时机与过程流程图(图3-6):在实现以上各流程图时,只要用到的API函数如下:(1)TCPSOCKET *slTcpCreateSocket(void)创建TCP socket。该API函数在堆存中为TCPSOCKET结构分配存空间,并初始它返回一个指向该结构的指针。第一次调用该API函数同时也是TCP计时程序开始的时候
45、,该计时程序用来检测各种不同的超时操作。Returns:最新创建的TCP socket 描述符,或者如果没有足够的存剩余则返回0。Todo: 避免把初始的顺序号固定。配置缓冲区的大小。允许的最大的段的大小。图3-6 客户端发送时机与过程流程图(2)int slTcpConnect(TCPSOCKET *sock, u_long addr, u_short port)连接远程的socket套节字。这函数试图跟过程特定的服务器特定的端口建立连接。调用该函数的线程将暂停运行直到连接成功或者错误发生。该函数通常用在TCP客户端程序。Parameters: sock 套节字描述符。该指针必须调用slTc
46、pCreateSocket()来得到。addr 客户端要连接的IP地址(网络字顺序)port 连接的端口号(主机字顺序)Returns:如果成功则返回0,否则返回-1。能调用slTcpError()来得到特定的错误代码号。(3)int slTcpSend(TCPSOCKET *sock, void *data, u_short len)向已连接的TCP套节字发送数据。Parameters:sock 套节字描述符。该指针必须调用slTcpCreateSocket()来得到。除此之外连接的建立必须调用slTcpConnect或者 slTcpAccept。 data 指向要发送的数据缓冲区的指针。l
47、en 要发送的字节数。Returns: 如果发送成功则返回已经发送的字节数。该字节数可能小于指定要发送的字节数。如果返回-1则意味着重大的错误。(4)int slTcpReceive(TCPSOCKET *sock, void *data, u_short size)从已连接的TCP套节字获得接收数据。Parameters:sock套节字描述符。该指针必须调用slTcpCreateSocket()来得到。除此之外连接的建立必须调用slTcpConnect或者 slTcpAccept。data 指向要接收的数据缓冲区的指针。size接收缓冲区的大小。Returns:如果成功的话则返回已经接收的数
48、据的字节数,该值可能小于特定的缓冲区大小。如果返回-1。(5)NUTDEVICE *slSoStreamCreate(TCPSOCKET *sock)为特定的套节字创建一个虚拟流设备文件。Parameters:Sock套节字描述符。该指针必须调用slTcpCreateSocket()来得到。除此之外连接的建立必须调用slTcpConnect或者 slTcpAccept。Returns:如果创建成功则返回创建的设备结构指针,否则返回0。4.结果分析交通灯某一次延时完毕请求获得新的延时执行的操作,如图4-1:交通灯控制系统WEB CLIENT系统从PORTD0口收到下降沿信号当前一次延时完毕从P3
49、.6口置于低电平服务端得到车流信息储存到数据库中执行中断程序把检测到车流发给服务端WEB CLIENT系统从服务端收到这次要设定的时间查询数据库把车流对应的延时发给开发板交通灯控制系统从P0口读到要设定的延时把要设定的延时从PORTB口输出图4-1 交通灯系统请求延时图详细请看附录代码的INT0中断子程序。控制中心控制交通灯时执行的操作如图4-2:控制中心发送紧急中断命令WEB CLIENT系统收到命令置PORTD5为低电平交通灯控制系统INT0被触发执行紧急中断程序控制中心发送AB道中断命令WEB CLIENT系统收到命令置PORTD7为低电平交通灯控制系统INT1被触发执行AB道中断程序控
50、制中心发送CD道中断命令WEB CLIENT系统收到命令置PORTD6O为低电平交通灯显示控制系统INT1被触发执行CD道中断程序图4-2 控制中心控制交通灯图详细请看附录代码的ProcessRequests函数。一开始系统启动的时间开发板从PORTD0收到一个低电平,产生中断执行中断子程序,此时AB、CD道都没有检测到车流,所以置PORTD7为低电平触发交通灯系统执行中断子程序。本系统只用开发板上的四个按钮来模拟四个路口的车流检测,没有做出实际的车流检测电路。当按下各个按钮可以从超级终端检测到各按钮的按下的次数作为车流数。如图4-3:图4-3各个路口检测到车流图当发送中断时可以终端看到收到这
51、次要设定的延时时间。如图4-4:图4-4接收到延时间图5.总结5.1毕业设计工作的总结本设计完成了交叉路口车流信息的Internet传输与控制的基本功能设计,并对结果进行了测试。测试表明,我们的设计符合功能要求,并具有一定的实用价值。经过测试,发现本设计方案的不足:(1)交通路口只考虑双向行车,而没有考虑左转或者其它情况。 (2)测试车流只用按钮来简单模拟。(3)监控中心对于实时性处理速度有待提高。5.2工作展望我们通过这次毕业设计,提出了我们交叉路口车流信息的Internet传输与控制的设计方案。尽管现在确实存在的一定的不足,但完成可以通过进一步的整改,应用到生活中。今后可以努力的方向有:(
52、1)可以把仿真电路做出实时电路。(2)可以加上电磁感应传感器来进行车流检测。附录部分源代码详解:Init.c头函数略详细请看源代码#define RAMEND 0 x10FF /Last On-Chip SRAM LocationCONFOS confos;externvoid slMain(void *arg) _attribute_ (noreturn);/*! fn slIdle(void *arg) * brief Idle thread. */THREAD(slIdle, arg) slTimerInit(); slThreadCreate(main, slMain, 0, 768)
53、; slThreadSetPriority(255); for(;) slThreadYield(); /*! * brief Load sl/OS configuration from the EEPROM. * This routine is automatically called during system * initialization. * return 0 if OK, -1 if configuration isnt available. */int slLoadConfig(void) eeprom_read_block(&confos, CONFOS_EE_OFFSET,
54、 sizeof(CONFOS); if(confos.size != sizeof(CONFOS) | confos.magic0 != O | confos.magic1 != S) return -1; return 0;/*! * brief Save sl/OS configuration in the EEPROM. * return 0 if OK, -1 on failures. */int slSaveConfig(void) u_char *cp; int i; confos.size = sizeof(CONFOS); confos.magic0 = O; confos.m
55、agic1 = S; for(cp = (u_char *)&confos, i = 0; i 384) slHeapAdd(&_bss_end, (u_short)RAMEND - 256 - (u_short)(&_bss_end); slHeapAdd(void *)(RAMEND + 1), 0 x7FFF - RAMEND); slThreadCreate(idle, slIdle, 0, 384); return 0;Uart.c头函数略详细请看源代码/*! * brief Wait for input. * This function checks the input buffe
56、r for any data. If * the buffer is empty, the calling ref xrThread thread * will be blocked until at least one new character is * received or a timeout occurs. * param dev Indicates the UART device. * return 0 on success, -1 on timeout. */int MyUartAvrInput(NUTDEVICE *dev,u_long timeout) int rc = 0;
57、 IFSTREAM *ifs = dev-dev_icb; UARTDCB *dcb; slEnterCritical(); if(ifs-if_rd_idx = ifs-if_rx_idx) dcb = dev-dev_dcb; /* * Changing if into a while loop fixes a serious bug: * Previous receiver events without any waiting thread * set the event handle to the signaled state. So the * wait returns immedi
58、ately. Unfortunately the calling * routines rely on a filled buffer when we return 0. */do rc = slEventWait(&dcb-dcb_rx_rdy, timeout); while(rc = 0 & ifs-if_rd_idx = ifs-if_rx_idx); slExitCritical(); return rc;/* * Get IP string from inputbuff */u_char *GetIP(NUTDEVICE *uart,u_char *prompt, u_char *
59、value) staticconstchar BIA = rnBad IP address;static u_char inbuff256; for(;) slPrintFormat(0, rn%s(%s): , prompt, value); if(slDeviceGetLine(uart,inbuff, sizeof(inbuff) = 0) break; if(inet_addr(inbuff) != -1) strcpy(value, inbuff); break; slPrintString_P(0,BIA); return value;Traffic.c头函数和部分全局变量定义略详
60、细请看源代码#define SERVERPORT 1234static u_short roadFlag = 0; /0 stand for AB road greed light and 1 stand for CD road greed lightstatic u_char *road2 = CD,AB;/conversion the ASCII to decimal int hex2bin(char c) if(c = 0 & c = a & c = A & c = F ) return c - A + 10; return 0;/#pragma interrupt_handler in
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 虎年作文课件
- 智能制造生产线技术及应用 课件 项目6 生产线设备数据交互
- 痛风危象病因介绍
- 多面体欧拉定理的发现课件
- 生殖感染病因介绍
- 滴虫性龟头炎病因介绍
- 沙眼衣原体肺炎病因介绍
- (高考英语作文炼句)第16篇译文老师笔记
- (高考英语作文炼句)第50篇译文老师笔记
- 某五星酒店样板间装修(施工组织设计)
- 部编版九年级历史下册第15课-第二次世界大战-练习题(含答案)
- 家庭教育工作评估实施细则
- 职业技能培训认证体系建设方案
- 第27章 畸形学概述课件
- 内控案防培训
- 护士2024年终总结
- 河道保洁员培训
- 学生矛盾处理协议书(2篇)
- 2024年高考真题英语(新高考Ⅰ卷)
- 穿越河道顶管工程施工方案
- 2024年度质量员(设备安装)专业技能复习题库及答案(共四套)
评论
0/150
提交评论