嵌入式课程设计基于ARM9的S3C2410微处理器的设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于ARM9的S3C2410微处理器的设计
摘要
嵌入式系统(Embedded System)是一种包括硬件和软件的完整的计算机系统,它的定义是:“嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可剪裁,适用于应用系统对功能、可靠性、成本、体积和功耗有严格要求的专用计算机系统。
”嵌入式系统所用的计算机是嵌入到被控对象中的专用微处理器,但是功能比通用计算机专门化,具有通用计算机所不能具备的针对某个方面特别设计的、合适的运算速度、高可靠性和较低比较成本的专用计算机系统。
嵌入式系统是以应用为中心,与计算机技术为基础,软硬件可配置,对功能、可靠性、成本、体积、功耗有严格约束的专用系统,所用的计算机称为嵌入式计算机。
传统的计算机分类是按照计算机的处理字长、体系结构、运算速度、结构规模、适用领域进行的,如通常所说的大型计算机、中型机、小型机和微型计算机,并以此标准来组织学科和产业分工。
关键词:嵌入式系统;嵌入式浏览器;微处理器;ARM9
目录
1嵌入式简介 (1)
1.1嵌入式系统的概念 (1)
1.2嵌入式系统的架构 (1)
1.3嵌入式系统的发展历程及现状 (1)
1.4嵌入式操作系统的特点 (2)
1.5嵌入式系统的应用领域 (2)
1.6嵌入式系统在机顶盒中的应用 (3)
1.7嵌入式系统的发展趋势 (3)
2 ARM处理器 (4)
2.1ARM处理器特点 (4)
2.2ARM体系结构的扩充 (4)
3 RAM和ROM总线外接图 (5)
4 ARM I/O结构 (5)
5 S3C2410A提供一组完整的系统外围设备 (6)
6 S3C2410的I/O口工作原理 (8)
总结 (9)
致谢 (10)
参考文献 (11)
1嵌入式简介
1.1嵌入式系统的概念
嵌入式系统(Embedded System)是一种包括硬件和软件的完整的计算机系统,它的定义是:“嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可剪裁,适用于应用系统对功能、可靠性、成本、体积和功耗有严格要求的专用计算机系统。
”嵌入式系统所用的计算机是嵌入到被控对象中的专用微处理器,但是功能比通用计算机专门化,具有通用计算机所不能具备的针对某个方面特别设计的、合适的运算速度、高可靠性和较低比较成本的专用计算机系统。
1.2嵌入式系统的架构
嵌入式系统作为一类特殊的计算机系统,自底向上包含有3个部分:(1)硬件环境:是整个嵌入式操作系统和应用程序运行的硬件平台,硬件平台包括嵌入式处理器和外围设备。
嵌入式处理器是嵌入式系统的核心,是控制、辅助系统运行的硬件单元。
(2)嵌入式操作系统:完成嵌入式应用的任务调度和控制等核心功能。
具有内核较精简、可配置、与高层应用紧密关联等特点。
嵌入式操作系统具有相对不变性。
(3)嵌入式应用程序:运行于操作系统之上,利用操作系统提供的机制完成特定功能的嵌入式应用。
不同的系统需要设计不同的嵌入式应用程序。
1.3嵌入式系统的发展历程及现状
嵌入式系统是先进的计算机技术、半导体技术、电子技术以及各种具体应用相结合的产物,是技术密集、资金密集、高度分散、不断创新的新型集成知识系统。
它起源于微型机时代,近几年网络、通信、多媒体技术的发展为嵌入式系统应用开辟了广阔的天地,使嵌入式系统成为继PC和Internet之后,IT界的新技术热点。
20世纪70年代发展起来的微型计算机,由于体积小、功耗低、结构简单、可靠性高、使用方便、性能价格比高等一系列优点,得到了广泛的应用和迅速的普及。
微型机表现出的智能化水平引起了控制专业人士的兴趣,要求将微型机嵌入到一个对象体系中,实现对象体系的智能化控制。
进入20世纪90年代,嵌入式技术全面展开,目前已成为通信和消费类产品的共同发展方向。
在通信领域,数字技术正在全面取代模拟技术。
20世纪90年代后,伴随着网络时代的来临,网络、通信、多媒体技术得以发展,8/16位单片机在速度和内存容量上已经很难满足这些领域的应用需求。
而由于集成电路技术的发展,32位微处理器价格不断下降,综合竞争能力已可以和8/16位单片机媲美。
32位微处理器面向嵌入式系统的高端应用,由于速度快,资源丰富,加上应用本身的复杂性、可靠性要求等,软件的开发一般会需要操作系统平台支持。
1.4嵌入式操作系统的特点
这些年来掀起了嵌入式系统应用热潮的原因主要有几个方面:一是芯片技术的发展,使得单个芯片具有更强的处理能力,而且使集成多种接口已经成为可能,众多芯片生产厂商已经将注意力集中在这方面。
另一方面的原因就是应用的需要,由于对产品可靠性、成本、更新换代要求的提高,使得嵌入式系统逐渐从纯硬件实现和使用通用计算机实现的应用中脱颖而出。
(1)系统内核小;
(2)专用性强;
(3)系统精简;
(4)高实时性的系统软件(OS)是嵌入式软件的基本要求。
而且软件要求固态存储,以提高速度;软件代码要求高质量和高可靠性【2】。
(5)嵌入式软件开发要想走向标准化,就必须使用多任务的操作系统。
嵌入式系统的应用程序可以没有操作系统直接在芯片上运行;但是为了合理地调度多任务、利用系统资源、系统函数以及和专家库函数接口,用户必须自行选配RTOS(Real-Time Operating System)开发平台,这样才能保证程序执行的实时性、可靠性,并减少开发时间,保障软件质量。
(6)嵌入式系统开发需要开发工具和环境。
由于设计完成以后用户通常是不能对其中的程序功能进行修改的,必须有一套开发工具和环境才能进行开发,这些工具和环境一般是基于通用计算机上的软硬件设备以及各种逻辑分析仪、混合信号示波器等。
开发时往往有主机和目标机的概念,主机用于程序的开发,目标机作为最后的执行机,开发时需要交替结合进行。
1.5嵌入式系统的应用领域
嵌入式系统技术具有非常广阔的应用前景,其应用领域可以包括:
(1)工业控制;
(2)交通管理;
(3)信息家电;
(4)家庭智能管理系统;
(5)POS网络及电子商务:
(6)环境工程与自然:。
(7)机器人这些应用中,可以着重于在控制方面的应用。
就远程家电控制而言,除了开发出支持TCP/IP的嵌入式系统之外,家电产品控制协议也需要制订和统一,这需要家电生产厂家来做。
同样的道理,所有基于网络的远程控制器件都需要与嵌入式系统之间实现接口,然后再由嵌入式系统来控制并通过网络实现控制。
所以,开发和探讨嵌入式系统有着十分重要的意义【4】。
1.6嵌入式系统在机顶盒中的应用
数字电视技术的不断发展,使得广播电视从模拟时代进入数字化时代成为历史的必然,因为采用全数字传输,不仅能提高视听质量,节约频率资源,而且服务内容和形式会更加丰富多彩,作为模拟电视到数字电视过渡技术的数字机顶盒技术将在我国长期存在和发展。
1.7嵌入式系统的发展趋势
信息时代,数字时代使得嵌入式产品获得了巨大的发展契机,为嵌入式市场展现了美好的前景,同时也对嵌入式生产厂商提出了新的挑战,从中我们可以看出未来嵌入式系统的几大发展趋势:
(1)嵌入式开发是一项系统工程,因此要求嵌入式系统厂商不仅要提供嵌入式软硬件系统本身,同时还需要提供强大的硬件开发工具和软件包支持。
(2)网络化、信息化的要求随着因特网技术的成熟、带宽的提高日益提高,使得以往单一功能的设备如电话、手机、冰箱、微波炉等功能不再单一,结构更加复杂。
(3)网络互联成为必然趋势。
未来的嵌入式设备为了适应网络发展的要求,必然要求硬件上提供各种网络通信接口。
传统的单片机对于网络支持不足,而新一代的嵌入式处理器已经开始内嵌网络接口,除了支持TCP/IP协议,还有的支持IEEE1394、USB、CAN、Bluetooth或IrDA通信接口中的一种或者几种,同时也需要提供相应的通信组网
协议软件和物理层驱动软件。
软件方面系统内核支持网络模块,甚至可以在设备上嵌入Web浏览器,真正实现随时随地用各种设备上网。
(4)精简系统内核、算法,降低功耗和软硬件成本。
嵌入式设备能与用户亲密接触,最重要的因素就是它能提供非常友好的用户界面。
图像界面,灵活的控制方式,使得人们感觉嵌入式设备就象是一个熟悉的老朋友。
这方面的要求使得嵌入式软件设计者要在图形界面,多媒体技术上痛下苦功。
手写文字输入、语音拨号上网、收发电子邮件以及彩色图形、图像都会使使用者获得自由的感受。
目前一些先进的PDA在显示屏幕上已实现汉字写入、短消息语音发布,但一般的嵌入式设备距离这个要求还有很长的路要走【1】。
2 ARM处理器
2.1ARM处理器特点
(1)小体积、低功耗、成本低、高性能;
采用RISC指令集
大量使用寄存器,指令执行速度更快
ARM/THUMB指令支持
三/五级流水线
(2)高效的指令系统,支持Thumb(16 位)/ARM(32 位)双指令集,能很好的兼容8 位/16 位器件;
2.2ARM体系结构的扩充
(1)Thumb:16位指令集,用以改善代码密度;
(2)DSP:用于DSP应用的算术运算指令集;
(3)Jazeller:允许直接执行Java代码的扩充【2】。
ARM9采用哈佛(Harvard)结构,程序存储器与数据存储器分开,提供了较大的存储器带宽。
同时,大多数DSP都采用此结构。
ARM9为五级流水(取指,译码,执行,缓冲/数据,回写),平均功耗为0.7mW/MHz。
时钟速度为120MHz-200MHz,每条指令平均执行1.5个时钟周期。
ARM9系列微处理器包含ARM920T、ARM922T和ARM940T三种类型,以适用于不同的应用场合如下表1
表一ARM9 Family
3 RAM和ROM总线外接图
ARM架构的处理器,有的带有指令Cache和数据Cache,但片内不带有片内RAM和片内ROM,系统所需的RAM和ROM须通过总线外接,如下图1。
图1 RAM与ROM总线外接图
4 ARM I/O结构
ARM架构中的处理器核和处理器内核一般都没有I/O的部件和模块,构成ARM架构的处理器中的I/O可通过AMBA总线来扩充。
(1)存储器映像I/O
ARM采用存储器映像I/O的方式,即把I/O端口地址作为特殊的存储器地址。
不过I/O的输入/输出与真正的存储器读/写仍然有所不同:存储器的单元重复读多次的值是一致的;而I/O设备的连续2次输入,其输入值可能会有所不同【3】。
(2)直接存储器存取DMA
在I/O的数据流量比较大,中断处理比较频繁的场合,会明显影响系统的性能。
因此,许多系统就采用了直接存储器存取DMA,这样,I/O的数据块传送至存储器的缓冲器区域就不需要处理器介入。
而中断也仅仅出现在出现出错时或缓冲器满时。
(3)中断IRQ和快速中断FIQ
一般的ARM没有DMA的功能,为了提高I/O处理的能力,对于一些要求I/O处理速率比较高的事件,系统安排快速中断FIQ(Fast Interrupt),而对其余的I/O源仍安排一般中断IRQ。
S3C2410是Samsung公司推出的16/32位RISC处理器,主要面向手持设备以及高性价比、低功耗的应用。
CPU内核采用的是ARM公司设计的16/32位ARM920T RISC处理器。
5 S3C2410A提供一组完整的系统外围设备
1.8V/
2.0V内核供电,
3.3V存储器供电,3.3V外部I/O供电;具有16KB的ICache 和16KB的DCache以及MMU;外部存储器控制器;LCD控制器提供1通道LCD专用DMA;4通道DMA并有外部请求引脚;3通道UART和2通道SPI;1通道多主机IIC总线和1通道IIS总线控制器;SD主接口版本1.0和MMC卡协议2.11兼容版;2个USB主设备接口,1个USB从设备接口;4通道PWM定时器和1通道内部定时器;看门狗定时器;117位通用I/O口和24通道外部中断源;电源控制模式包括:正常、慢速、空闲和掉电四种模式;8通道10位ADC和触摸屏接口;具有日历功能的RTC;使用PLL的片上时钟发生器【4】。
如下图2 S3C2410A系统外围设备
S3C2410存储器控制器特性:
支持小/大端(通过软件选择)
地址空间:每bank有128M字节(总共有8个banks,共1G字节)
除bank0(只能是16/32位宽)之外,其他bank都具有可编程的访问大小(可以是8/16/32位宽)
总共有8个存储器banks(bank0~bank7)
其中6个banks用于ROM,SRAM等
剩下2个banks用于ROM,SRAM,SDRAM等
7个固定的存储器bank(bank0~bank6)起始地址
最后一个bank(bank7)的起始地址是可调整的
最后两个bank(bank6~bank7)的大小是可编程的
所有存储器bank的访问周期都是可编程的
总线访问周期可以通过插入外部等待来延长
支持SDRAM的自刷新和掉电模式
图2 S3C2410A系统外围设备
6 S3C2410的I/O口工作原理
S3C2410A共有117个多功能复用输入输出口(I/O口),分为8组PORT A~PORT H。
PORT A除了作为功能口外,它只作为输出口使用;其余的PORT B~PORT H都可以作为输入输出口使用。
8组I/O口按照其位数的不同【5】,可分为:
1个23位的输出口(PORT A)
2个11位的I/O口(PORT B 和PORT H)
4个16位的I/O口(PORT C、PORT D、PORT E、PORT G)
1个8位的I/O口(PORT F)
与配置I/O口相关的寄存器包括:
端口控制寄存器(GPACON~GPHCON)
端口数据寄存器(GPADAT~GPHDAT)
端口上拉寄存器(GPBUP~GPHUP)
杂项控制寄存器
外部中断控制寄存器(EXTINTN)
ARM的中断原理
ARM系统包括两类中断:一是IRQ中断,一是FIQ中断。
处理中断的步骤下:
(1)保存现场。
保存当前的PC值到R14,保存当前的程序运行状态到SPSR。
(2)模式切换。
根据发生的中断类型,进入IRQ模式或FIQ模式。
(3)获取中断源。
以异常向量表保存在低地址处为例,若是IRQ中断,则PC指针跳到0x18处;若是FIQ中断,则跳到0x1C处。
IRQ或FIQ的异常向量地址处一般保存的是中断服务子程序的地址,所以接下来PC指针跳入中断服务子程序处理中断【6】。
(4)中断处理。
为各种中断定义不同的优先级别,并为每一个中断设置一个中断标志位。
当发生中断时,通过判断中断优先级以及访问中断标志位的状态来识别到底哪一个中断发生了。
进而调用相应的函数进行中断处理。
(5)中断返回,恢复现场。
当完成中断服务子程序后,将SPSR中保存的程序运行状态恢复到CPSR中,R14中保存的被中断程序的地址恢复到PC中,进而继续执行被中断的程序。
总结
本文主要介绍了基于ARM的嵌入式系统,在S3C2410的平台上如何设计存储控制器接口、中断、I/O口的工作原理等相关外围硬件模块,详细讲述了他们的工作原理并给出了相应图示,通过本次设计,学习如何设计存储控制器接口、中断、I/O口的工作原理的相关知识。
了解了ARM程序的设计方法。
特别是ARM的程序设计的模块式方法有了更深的体会。
嵌入式操作系统是在多种硬件平台上发展起来的,随着嵌入式系统的广泛应用,信息交换、资源共享机会增多,由此相关的标准问题将日渐突出,如何建立相关标准成为业界关注的问题。
随着宽带网络和数字电视的发展,嵌入式浏览器在机顶盒中的地位越来越重要。
将来嵌入式浏览器还应对两项重要的技术提供更好的支持:一个是XML技术,它良好的扩展性、自我描述性特别适合快速发展数字电视业务;另一项是Java,它能为数字电视带来更强劲的交互功能,当然这需要数字机顶盒在硬件上取得更大的发展。
嵌入式系统应用领域千差万别,嵌入式操作系统与嵌入应用软件共同发展,我们要充分重视他们,这将对开发和探讨嵌入式系统有着十分重要的意义。
致谢
此次课程设计,学到了很多课内学不到的东西,比如独立思考解决问题,出现差错的随机应变,和与人合作共同提高,都受益非浅,今后的制作应该更轻松,自己也都能扛的起并高质量的完成项目。
在此,感谢于老师的细心指导,也同样谢谢其他各组同学的无私帮助!
最后,再次向帮助我完成这篇论文的指导老师王志刚老师和亲爱的同学们表示最诚挚的感谢!
同时,在此期间,我也从我的室友和同学们得到许多帮助,是他们在我苦无头绪之时帮我找资料,在我有疑难时耐心给我解答,并一直给予我鼓励和支持,支持我认真细致的完成这篇设计。
我也要向他们致以谢意。
在设计中遇到了很多专业知识问题,最后在老师的辛勤指导下,终于游逆而解。
同时,在老师的身上我们学也到很多实用的知识,在次我们表示感谢!同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!
参考文献
[1] 王明臣.数字电视与高清晰度电.中国广播电视出版社,2003
[2] 方涛.数字电视业务信息及其编码.国防工业出版社,2003
[3] 张大波.嵌入式系统原理、设计与应用.机械工业出版社,2005
[4] 沈连丰.嵌入式系统及其开发应用.电子工业出版社,2005
[5] 田泽.嵌入式系统开发与应用.北京航空航天大学出版社,2005
[6] 符意德.嵌入式系统设计原理及应用.北京:清华大学出版社,20。