毕业设计论文基于单片机的人行过马路智能交通灯系统的设计.doc

上传人:sccc 文档编号:4866877 上传时间:2023-05-20 格式:DOC 页数:43 大小:9.53MB
返回 下载 相关 举报
毕业设计论文基于单片机的人行过马路智能交通灯系统的设计.doc_第1页
第1页 / 共43页
毕业设计论文基于单片机的人行过马路智能交通灯系统的设计.doc_第2页
第2页 / 共43页
毕业设计论文基于单片机的人行过马路智能交通灯系统的设计.doc_第3页
第3页 / 共43页
毕业设计论文基于单片机的人行过马路智能交通灯系统的设计.doc_第4页
第4页 / 共43页
毕业设计论文基于单片机的人行过马路智能交通灯系统的设计.doc_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《毕业设计论文基于单片机的人行过马路智能交通灯系统的设计.doc》由会员分享,可在线阅读,更多相关《毕业设计论文基于单片机的人行过马路智能交通灯系统的设计.doc(43页珍藏版)》请在三一办公上搜索。

1、 摘要 摘要纵观单片机的发展和应用, 51 单片机越来越无法满足用户的需求, ARM 高速32位单片机的出现,缔造了嵌入式系统的新纪元.嵌入式系统是指以应用为中心,以计算机技术为基础,软件,硬件可裁减,适应应用系统对功能、可靠性、成本、体积、和功耗严格要求的专用计算机系统。嵌入式系统已广泛地渗透到科学研究、工程设计、军事等各种领域、甚至商业、文化、艺术、及人们日常生活的方方面面。随着国内外各种嵌入式产品的进一步开发和推广,嵌入式技术的重要性日益凸显,使得我们不得不将注意力转移到它身上。ARM的应用已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场。此设计采用了ARM7

2、微处理器LPC2103作为核心处理器。本文介绍了一个智能交通灯系统的设计。该智能交通灯控制系统可以实现的功能有:对某人行马路的交通路口进行控制和对红绿灯的闪亮控制;各路口有固定的工作周期。人行过马路交通灯控制系统不仅可以缓解交通拥堵,还能阻止一些交通事故的发生。它采用LPC2103来实现对红绿灯的控制。其中通过设置LPC2103的GPIO功能用定时器来实现LED灯的亮灭与闪亮。关键词: ARM7 LPC2103 LED灯III Abstract Abstract Throughout the development and application of SCM, 51 SCM increasi

3、ngly unable to satisfy the demand of users, ARM speed 32bit MCU embedded systems, creates the new era of embedded system. Refer to the application for the center to computer technology as the foundation, software, hardware, can adapt to function, application system reliability, cost, volume, and the

4、 power of the strict specialized computer system. The embedded system has been widely permeates scientific research and engineering design, military and other fields, or even commercial, culture, art, and all aspects of Peoples Daily life. With the further development of embedded products, and the i

5、mportance of the embedded technology allows us to increasingly prominent, divert attention to it. The ARM of the application in industrial control, consumer electronics, communication system, network system, wireless systems and other kinds of product market. This design uses the LPC2103 ARM7 microp

6、rocessor core processors . This article describes an intelligent traffic light system. The intelligent traffic light control system functions can be achieved: the road trip against a person to control the traffic junctions and traffic lights to flash control; the intersection with a fixed duty cycle

7、. Pedestrian crossing traffic light control system can not only ease traffic congestion, but also prevent a number of traffic accidents. It uses LPC2103 to realize the control of traffic lights. LPC2103s GPIO by setting them with a timer function to achieve bright LED lights off and shine.Key words:

8、ARM7 LPC2103 LED lights 目录 目录摘要IABSTRACTII目录III1 引言11.1背景11.2现状问题22 工作硬件原理32.1 LPC2103简介32.1.1 概述32.1.2 管脚信息32.2 ARM2103底板原理图42.2.1 电源电路42.2.2 时钟电路42.2.3 JTAG接口电路42.2.4 LPC2103电路原理图和最小系统实物图52.2.5 人行过马路交通灯控制系统电路原理图63 工程建立和调试73.1 ADS 1.2集成开发环境的组成73.1.1 CodeWarrior IDE简介83.2 工程的编辑93.2.1 建立工程93.2.2 建立文件

9、103.2.3 添加文件到工程103.2.4 编辑连接工程113.3 工程的调试124 LPC2103基础知识详解134.1 引脚链接模块134.1.1 概述134.1.2 寄存器描述134.2 GPIO154.2.1 概述154.2.2 寄存器描述164.3 向量中断控制器174.3.1 概述174.3.2 寄存器描述174.3.3 向量IRQ中断184.4 定时器0和定时器1194.4.1 概述194.4.2 特性194.4.3 引脚描述204.4.4 寄存器描述204.4.5 定时器中断235 带闪烁人行过马路交通灯控制系统的设计与实现265.1 带闪烁人行过马路交通灯控制的基本规则26

10、5.2 人行过马路交通灯点亮与熄灭的原理285.3 ARM定时器控制的原理285.4 ARM中断控制的原理295.5 人行过马路交通灯控制系统的硬件设计295.6 人行过马路交通灯控制程序的设计295.61 定时器0初始化程序295.62 定时器1初始化程序315.63 中断服务程序315.64 主程序326 总结与体会336.1 总结336.2 体会336.3 致谢346.4 参考文献34附录A 源程序35IV 引言 39 1 引言 随着我国改革开放的不断深入 ,城市化进程不断加快 ,交通事业飞速发展 ,交通拥挤已成为城市经济发展的“瓶颈”,特别是大、中城市不断增加的车辆和有限的道路空间矛盾

11、日益加剧。 目前我国城市里的人行过马路交通系统大都采用定时来控制(不排除繁忙路段或高峰时段用交警来取代交通灯的情况),这样必然产生如下弊端:当某条路段的车流量很大时却要等待红灯,而此时另一条是空道或车流量相对少得多的道却长时间亮的是绿灯,这种多等少的尴尬现象是未对实际情况进行实时监控所造成的,不仅让司机乘客怨声载道,而且对人力和物力资源也是一种浪费。缓解道路交通拥堵 ,减少交通事故 ,改善道路交通环境 ,节约交通能源 ,减轻驾驶疲劳等功能 ,最终实现安全、舒适、快速、经济的交通环境是目前急需解决的城市交通管理系统的关键技术之一。 本文采用的设计是使用ARM32位LPC2103芯片,作为带闪烁人

12、行过马路交通灯控制系统的核心部件,利用ARM32位芯片定时器的优势,对带闪烁人行过马路交通灯精确的控制;可根据车流量的大小,合理的和精确的控制每一个人行过马路通道的时间,来减少道路上车辆拥塞的时间。达到路口车辆畅通的的同时减少车辆的停留时间,从而有利于减轻城市马路空气污染的目的。1.1背景当人类历史跨入21世纪的时候,全球社会、经济、市场、产业结构及科学技术等发生着深刻的变革:国际和国内市场向着大竞争大合作的方向发展;产业结构向着以信息产业为主的方向发展;基础科学、信息科学、材料科学、管理科学和现代控制理论与制造科学等获得了突破性的进展,而且相互交叉融合。以网络为基础的科学活动环境研究对未来的

13、计算模式和科研活动产生了深刻的影响,同时也提出了挑战,如:无序成长性与动态有序性的统一;自治条件下的协同性及安全保证;海量信息的结构化组织与管理等。在此背景下,网络技术与先进制造技术的有效融合形成了一种全新的生产制造模式-网络化制造。网络化制造技术的出现和发展,引起了全球制造领域的极大关注。网络化制造涉及的技术问题多且内容复杂,许多技术问题都有待于深入研究和解决。在这些技术内容和技术问题中,网络化协同产品开发将是今后相当一段时间网络化制造的主要研究课题。网络环境下新产品的研究、开发、设计、制造、管理、营销、服务不再局限于一座城市、一个地区甚至一个国家。同时,企业间的兼并和收购成为激烈竞争的必然

14、结果,这使得企业规模急剧膨胀,其内部生产、管理和决策支持系统多种多样系统间的信息和知识交换成为瓶颈。而且,随着现代产品的复杂度和技术含量的提高,单一企业常常受到技术和资源等方面的限制,不能胜任产品开发的全过程。于是,利用现代计算机和网络技术,进行企业间的合作和同盟,以便充分利用各自的资源和技术优势,取长补短,获得整体优化。上述产品开发模式随着Internet变成网络应用平台而越来越具有可实现性。但是,从总体上讲,网络化协同产品开发的研究还不够深入,缺乏系统的理论体系和支持工具,研究成果与实际需求尚有一定的差距。因此,探索网络环境下的协同产品开发方法和关键技术,并开发出相应的支持系统,是一项具有

15、重要理论意义和广泛应用前景的研究课题。理论不可能产生在实践之前,它需要实践经验作为其构成的基本要素;理论也不是产生在实践的终点,因为它负有指导后续实践使之有更多成功机会的责任。本论文针对网络化协同产品开发业务流程和软件技术架构进行了深入的研究。1.2现状问题近来有不少市民反映,由于一些道路红绿灯设置不甚合理,给行人过马路带来不便,甚至险象环生,成为诱发交通事故的原因之一。在车流繁杂的路口,因为人行道的绿灯时间太短,导致通常都要小跑才能过马路,这对老年人和儿童来讲的确是件难事。 红绿灯时间究竟多久才能让行人从容通过?专业人士介绍,红绿灯时间设置有固定的计算公式,主要以所在路口的车流量、人流量等数

16、据为指标,结合常人行走平均速度(大约1.3米/秒),并考虑行人的过路时间得来的。交通问题在现在乃至将来的一段时间内仍是制约国内各大中城市发展的主要问题之一,因此合理的设置人行过马路交通灯控制系统成为交通系统中的一个重要问题。 工作硬件原理 2 工作硬件原理2.1 LPC2103简介2.1.1 概述LPC2103是一个基于支持实时仿真的16/32位ARM7 TDMI-S CPU的微控制器,并带有32kB的嵌入高速Flash存储器,128位宽度的存储器接口和独特的加速结构使32位代码能够在最大时钟速率下运行。 较小的封装和极低的功耗使LPC2103适用于访问控制器和POS机等小型应用系统中;由于内

17、置了宽范围的串行通信接口(2个UART、SPI、SSP和2个I2C)和8KB的片内SRAM,LPC2103也适合用在通信网关和协议转换器中。32/16位定时器、增强型10位ADC、定时器输出匹配PWM特性、多达13个边沿、电平触发的外部中断、32条高速GPIO,使得LPC2103微控制器特别适用于工业控制和医疗系统中。 2.1.2 管脚信息 图2.1 PLC2103管脚配置2.2 ARM2103底板原理图2.2.1 电源电路 LPC2103控制器需要双电源供电,1.8V内核电压和3.3V功能外设电压,5V电源由变压器或USB电源线输入,二极管1N5819可以防止电源反接。电路采用SPX1117

18、系列LDO芯片SPX1117M-3.3和SPX1117M-1.8将电压稳至3.3V和1.8V,0欧的电阻用来隔离数字电源和模拟电源、数字地和模拟地。 SPX1117系列LDO芯片是EXAR公司生产的低压差芯片,其特点是输出电流大,输出电压精度高,稳定性高,宽电压输入(这里选择的是5V输入)。此系列LDO芯片的输出电流高达800mA,输出电压的精度在1之内,可广泛应用于手持式仪表、数字家电、工业控制等领域。注意在电路输入输出端接一个10F的电容,可改善瞬态响应和稳定性。 2.2.2 时钟电路 LPC2103微控制器可使用外部晶振或外部时钟源,内部PLL电路可调整系统时钟,使系统运行速度更快(CP

19、U的操作频率最大可达70MHz)。若不使用片内PLL功能及ISP下载功能,则外部晶振频率为130MHz,外部时钟频率为150MHz;若使用片内PLL功能或ISP下载功能,则外部晶振频率为1025MHz,外部时钟频率为1025MHz。ARM2103开发板使用外部晶振11.0592MHz,实时时钟为32.768KHz,电路原理如图2.2所示。用11.0592MHz的外部晶振使串口的波特率更精确,同时能支持LPC2103微控制器内部的PLL电路及ISP(在系统编程)功能。图 2.2 时钟电路2.2.3 JTAG接口电路 JTAG接口电路采用ARM公司提出的标准20脚JTAG仿真调试接口,JTAG接口

20、与LPC2103引脚之间的连接如图2.3所示。在RTCK引脚处接一个4.7K的下拉电阻,将在系统复位后使能JTAG调试接口。 图 2.3 JTAG接口电路2.2.4 LPC2103电路原理图和最小系统实物图最小系统电路原理图如下图2.4所示:图2.4最小系统电路原理图最小系统实物图如下图2.5所示: 图2.5最小系统实物图 工程建立和调试 2.2.5 人行过马路交通灯控制系统电路原理图人行过马路交通灯控制系统LED红绿灯与闪亮控制的电路原理图如下图2.6所示:图2.6电路原理图3 工程建立和调试 本章将介绍在ADS1.2开发环境里如何建立、编译连接工程及对工程进行调试的基本方法,进而说明基于L

21、PC2103 ARM微控制器的工程模板。 3.1 ADS 1.2集成开发环境的组成ADS集成开发环境是ARM公司推出的ARM核微控制器集成开发工具,英文全称为ARM Developer Suite,成熟版本为ADS1.2。ADS1.2支持ARM10之前的所有ARM系列微控制器,支持软件调试及JTAG硬件仿真调试,支持汇编、C、C+源程序,具有编译效率高、系统库功能强等特点,可以在Windows98、Windows2000、Windows XP以及RedHat Linux上运行。 ADS 1.2由6个部分组成,如表3.1所示。表 31 ADS 1.2的组部分名称描述使用方式代码生成工具ARM 汇

22、编器ARM 的 C、C+编译器 Thumb 的 C、C+编译器 ARM 连接器由 CodeWarrior IDE 调用集成开发环境CodeWarrior IDE工程管理,编译连接调试器AXD ADW/ADUarmsd仿真调试指令模拟器ARMulator由 AXD 调用ARM 开发包底层的例程实用程序(如 fromELF)实用程序由 CodeWarrior IDE调用ARM 应用库C、C+函数库等用户程序使用由于用户一般直接操作的是 CodeWarrior IDE 集成开发环境和 AXD 调试器,所以本文只介绍这两部分的使用,其它部分的详细说明参考 ADS 1.2 的在线帮助文档。3.1.1 C

23、odeWarrior IDE简介ADS 1.2使用了CodeWarrior IDE集成开发环境,并集成了ARM汇编器、ARM的C/C+编译器、Thumb的C/C+编译器、ARM连接器,包含工程管理器、代码生成接口、语法敏感(对关键字以不同颜色显示)编辑器、源文件和类浏览器等。 CodeWarrior IDE主窗口如图3.1所示。 图 3.1 CodeWarrior 开发环境3.1.2 AXD调试器简介 图3.2 AXD调试器AXD调试器ARM Extended Debugger是ARM扩展调试器,包括ADW/ADU的所有特性,支持硬件仿真和软件仿真。AXD能够装载映像文件到目标内存,具有单步、

24、全速和断点等调试功能,可以观察变量、寄存器和内存的数据等,AXD调试器主窗口如图3.2所示。3.2 工程的编辑 3.2.1 建立工程 点击WINDOWS操作系统的【开始】【程序】【ARM Developer Suite v1.2】【CodeWarrior for ARM Developer Suite】启动Metrowerks CodeWarrior,启动ADS1.2 IDE如图3.3所示。 图3.3 启动ADS1.2 IDE 点击【File】菜单,选择【New】即弹出New对话框,如图3.4所示。 图 3.4 New 对话框选择工程模板为 ARM 可执行映象(ARM Executable I

25、mage)或 Thumb 可执行映象 (Thumb Executable Image),或 Thumb、ARM 交织映象(Thumb ARM Interworking Image), 然后在【Location】项选择工程存放路径,并在【Project name】项输入工程名称,点击【确定】按钮即可建立相应工程,工程文件名后缀为 mcp(下文有时也把工程称为项目)。3.2.2 建立文件建立一个文本文件以便输入用户程序。点击“New Text File”图标按钮,然后在新建的文件中编写程序,点击“Save”图标按钮将文件存盘(或从【File】菜单选 择【Save】),输入文件全名,如 TEST1.

26、S。注意,请将文件保存到相应工程的目录下,以 便于管理和查找。当然,您也可以New对话框选择【File】页来建立源文件,或使用其它文 本编辑器建立或编辑源文件。3.2.3 添加文件到工程 在工程窗口中【Files】页空白处点击鼠标右键,弹出浮动菜单,选择“AddFiles”即可弹出“Select files to add”对话框,选择相应的源文件(可按着Ctrl键一次选 择多个文件),点击【打开】按钮即可。图 3.5 Select files to add对话框 另外,用户也可以在【Project】菜单中选择【Add Files】来添加源文件,或使用New 对话框选择【File】页来建立源文件

27、时选择加入工程,即选中“Add to Project”项。添加文 件操作如3.5所示。3.2.4 编辑连接工程如图 3.6所示为工程窗口中的图标按钮,通过这些图标按钮,您可以快速地进行工程设置、编译连接、启动调试等等。在不同的菜单项上可以分别找到对应的菜单命令。图 3.6 工程窗口中的图标按钮 点击“DebugRel Settings”图标按钮,即可进行工程的地址设置、输出文件设置、编 译选项等。在“ARM Linker”对话框设置连接地址,在“Language Settings” 中设置各编译器的编译选项。对于简单的软件调试,可以不进行连接地址的设置,直接点击工程窗口的“Make”图 标按钮

28、,即可完成编译连接。若编译出错,会有相应的出错提示,双击出错提示行信息, 编辑窗即会使用光标指出当前出错的源代码行。Touch栏用于标记文件是否已编译,若打上“”则表明对应文件需要重新编译。可以通过单击该栏位置来设置/取消符号“”,或将工程目录下的*.tdt文件删除 也可以使整个工程源文件均打上“”。重新编译之前,建议将原来生成的目标文件都删除,方法如下,点选“project”下拉菜 单的“Remove Object code”-“All Targets”,删除了旧目标文件后,所有 文件都被“touch”上了,此时可对整个工程进行重新编译。3.3 工程的调试 图3.7 Choose Targe

29、t 窗口当工程编译连接通过后,在工程窗口中点击“Debug”图标按钮 即可启动AXD(也可以通过【开始】菜单起动AXD)。点击菜单【Options】选择【Configure Target】,即弹出Choose Target窗口,如图3.7所示。在没有添加其它仿真驱动程序前,Target 项中只有两项,分别为ADP(JTAG硬件仿真)和ARMUL(软件仿真)。选择仿真驱动程序后,点击【File】选择【Load Image】加载 ELF 格式的可执行文件,即*.axf 文件。 (说明:当工程编译连接通过后,在“工程名工程名_Data当前的生成目标”目录下就会生成一个*.axf 调试文件。如工程 T

30、EST,当前的生成目标 Debug,编译连接通过后,则在TESTTEST_DataDebug目录下生成 TEST.axf 文件。 LPC2103基础知识详解 4 LPC2103基础知识详解4.1 引脚链接模块4.1.1 概述LPC2103 控制器的引脚都具有多种功能,但是每个引脚在某一时刻只能选择一种功能。图4.1是LPC2103 引脚P0.0 的一个功能选择示意图,通过配置引脚功能选择寄存器即可选择相应的功能。 当使用一个功能外设时,如果需要相应的引脚参与(如 GPIO 等),则必须在实现这一功能之前先设置好引脚的功能,否则无法实现该外设功能。 图4.1 引脚链接模块示意图4.1.2 寄存器

31、描述LPC2103具有两个PINSEL寄存器,PINSEL0和PINSEL1,它们都是32位宽度的,详细描述如表4.1所列。 表4.1 引脚连接模块寄存器描述名称 描述 访问 复位值1 地址PINSEL0 引脚功能选择寄存器0 读/写 0x00000000 0xE002C000 PINSEL1 引脚功能选择寄存器1 读/写 0x00000000 0xE002C004 1:复位值仅反映已使用位中保存的数据,不包含保留位的内容。 PINSEL0和PINSEL1寄存器中的每两个位控制着一个引脚的功能,所以一个引脚最多可以有4种不同的功能选择。PINSEL0和PINSEL1寄存器就是按照如表4.2、表

32、4.3所列的设定来选择P0口的引脚功能。表4.2 引脚功能选择寄存器0PINSE0引脚名称00011011复位值1:0P0.0GPIO P0.0TxD0(UART0)MAT3.1(定时器3)保留003:2P0.1GPIO P0.1RxD0(UART0)MAT3.2(定时器3)保留005:4P0.2GPIO P0.2SCL0(I2C0)CAP0.0(定时器0)保留007:6P0.3GPIO P0.3SDA0(I2C0)MAT0.0(定时器0)保留009:8P0.4GPIO P0.4SCK0(SPI0)CAP0.1 (定时器0)保留0011:10P0.5GPIO P0.5MISO0(SPI0)MA

33、T0.1 (定时器0)保留0013:12P0.6GPIO P0.6MOSI0(SPI0)CAP0.2(定时器0)保留0015:14P0.7GPIO P0.7SSEL0(SPI0)MAT2.0(定时器2)保留0017:16P0.8GPIO P0.8TxD1 (UART1)MAT2.1(定时器2)保留0019:18P0.9GPIO P0.9RxD1(UART1)MAT2.2(定时器2)保留0021:20P0.10GPIO P0.10RTS1 (UART1)CAP1.0(定时器1)AIN30023:22P0.11GPIO P0.11CTS1(UART1)CAP1.1 (定时器1)AIN40025:2

34、4P0.12GPIO P0.12DSR1(UART1)MAT1.0 (定时器1)AIN50027:26P0.13GPIO P0.13保留MAT1.1 (定时器1)DTR1 (UART1)0029:28P0.14GPIO P0.14EINT1SCK1(SSP1)DCD1 (UART1)0031:30P0.15GPIO P0.15EINT2保留RI1 (UART1)00表4.3 引脚功能选择寄存器1PINSEL1引脚名称00011011复位值1:0P0.16GPIO P0.16EINT0MAT0.2(定时器0)保留003:2P0.17GPIO P0.17SCL1 (I2C1)CAP1.2 (定时器

35、1)保留005:4P0.18GPIO P0.18SDA1 (I2C1)CAP1.3 (定时器1)保留007:6P0.19GPIO P0.19MISO1 (SPI1)MAT1.2(定时器1)保留009:8P0.20GPIO P0.20MOSI1 (SPI1)MAT1.3(定时器1)保留0011:10P0.21GPIO P0.21SSEL1 (SPI1)MAT3.0(定时器3)保留0013:12P0.22GPIO P0.22保留保留AIN00015:14P0.23GPIO P0.23保留保留AIN10017:16P0.24GPIO P0.24保留保留AIN20019:18P0.25GPIO P0.

36、25保留保留AIN60021:20P0.26GPIO P0.26保留保留AIN70023:22P0.27GPIO P0.27TRST (JTAG)CAP2.0(定时器2)保留0125:24P0.28GPIO P0.28TMS (JTAG)CAP2.1(定时器2)保留0127:26P0.29GPIO P0.29TCK (JTAG)CAP2.2(定时器2)保留0129:28P0.30GPIO P0.30TDI (JTAG)MAT3.3(定时器3)保留0131:30P0.31GPIO P0.31TDO (JTAG)保留保留004.2 GPIO 4.2.1 概述 LPC2103只有1个32位的通用I/

37、O口P031:0,由于与引脚的其它功能复用,在使用前要进行相关的引脚设置,然后才能进行操作。其中,P0.27P0.31是JTAG调试引脚,在复位时,如果DEBUG引脚为高,则P031:27是不能作为GPIO使用的,只能作为JTAG调试引脚;反之,如果复位时DEBUG引脚为低,则P031:27引脚可以由用户设置,此时,调试禁止。 LPC2103的GPIO有两种模式:高速GPIO和低速GPIO。高速GPIO的控制寄存器位于CPU的局部总线上,可进行高速的读写操作,低速GPIO的控制寄存器挂在VPB总线上。P0口作为高速GPIO使用时,将不能在调试环境下观察GPIO在VPB总线上的寄存器。4.2.2

38、 寄存器描述LPC2103的GPIO由表4.4、表4.5、表4.6中所列的寄存器来控制。 表4.4所列寄存器是用来选择GPIO的操作模式。当GPIO0M位的值为0时,选择低速GPIO,当GPIO0M位的值为1时,选择高速GPIO。在使用引脚的GPIO时,必须选择GPIO的操作模式。 表4.5所列是低速GPIO的相关寄存器,挂在VPB总线上。表4.4 系统控制和状态标志寄存器(SCS-0xE01F C1A0)位 名称 描述 复位值 0 GPIO0M 0:低速GPIO在GPIO端口0上使能,通过VPB地址访问GPIO端口0,与先前的LCP2000器件兼容 0 1:高速GPIO在GPIO端口0上使能

39、,通过片内存储器范围的地址来访问,该模式包括端口屏蔽特性 31:1 - 保留,用户软件不要向其写入1。从保留位读出的值未被定义 NA 表4.5 GPIO控制寄存器(通过VPB总线访问的寄存器) 通用名称描述访问复位PORT0地址&名称IOPINGPIO端口管脚值寄存器。不管管脚的方向如何设定,GPIO配置端口管脚的当前状态都可从该寄存器中读出R/WNA0xE002 8000IO0PINIOSETGPIO端口输出置位寄存器。该寄存器和IOCLR寄存器一起控制输出管脚的状态。写入1使对应管脚输出高电平。写入0无效R/W00xE002 8004IO0SETIODIRGPIO端口方向控制寄存器。该寄存

40、器单独控制每个I/O口的方向R/W00xE002 8008IO0DIRIOCLRGPIO端口输出清零寄存器。该寄存器控制输出管脚的状态。写入1使对应管脚输出低电平并清零IOSET寄存器中的对应位。写入0无效WO00xE002 800CIO0CLR4.3 向量中断控制器 4.3.1 概述 向量中断控制器VIC(Vectored Interrupt Controller)具有32个中断请求输入。可将这些中断编程分为3类:FIQ、向量IRQ、非向量IRQ。 快速中断请求FIQ(Fast Interrupt reQuest)具有最高的优先级。如果分配给FIQ的请求超过1个,VIC将中断请求相“或”后向

41、ARM处理器产生FIQ信号。当只有1个中断被分配为FIQ时,可实现最短的FIQ等待时间,因为FIQ服务程序只要简单地启动器件的处理即可。但分配给FIQ级的中断多于1个时,FIQ服务程序需要读取FIQ状态寄存器来识别产生中断请求的FIQ中断源。 向量IRQ(Vectored IRQ)具有中等优先级。该级别可分配32个中断请求中的16个。32个请求中的任意一个都可分配到16个向量IRQ slot中的任意一个,其中slot0具有最高优先级,而slot15则为最低优先级。 非向量IRQ(Non-vectored IRQ)的优先级最低。VIC将所有向量IRQ和非向量IRQ相“或”,向ARM处理器产生IR

42、Q信号。IRQ服务程序可通过读取VIC的一个寄存器来启动并跳转到相应的地址。如果有任意一个向量IRQ发出请求,VIC则提供最高优先级请求IRQ服务程序的地址;否则提供所默认程序的地址。该默认程序由所有非向量IRQ共用。默认程序可读取IRQ状态寄存器,来确定哪个IRQ被激活。 4.3.2 寄存器描述VIC所包含的常用寄存器如表4.6所列。表4.6 VIC控制寄存器名称描述访问复位值地址VICIntSelect中断选择寄存器。该寄存器将32个中断请求分配为FIQ或IRQR/W00xFFFF F00CVICIntEnable中断使能寄存器。该寄存器控制32个中断和软件中断的使能R/W00xFFFF

43、F010VICIntEnClear中断使能清零寄存器。该寄存器允许将中断使能寄存器的一个或多个位清零W00xFFFF F014VICVectAddr向量地址寄存器。当发生一个IRQ中断时,IRQ服务程序可读出该寄存器并跳转到读出的地址R/W00xFFFF F030VICVectAddr0-15向量地址0-15寄存器。向量地址寄存器015保存了16个向量IRQ slot的中断服务地址R/W00xFFFF F1000xFFFF F13CVICVectCntl0-15向量控制0-15寄存器。向量控制寄存器015分别控制16个向量IRQ slot中的一个。slot0优先级最高,而slot15优先级最低R/W00xFFFF F2000xFFFF F23C向量中断控制器所包含的寄存器的位与外设中断的分配关系如表4.7所列: 表4.7向量中断寄存器的位与外设中断的分配关系位 31 30 29 28 27 26 25 24 对应外设 - - - - TIMER3 TIMER2 - - 位 23 22

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号