1、ARM处理器本身是32位设计,但也配备16位指令集,一般来讲比等价32位代码节省达35%,却能保留32位系统的所有优势。其广泛地使用在许多嵌入式系统设计。由于节能的特点,ARM处理器非常适用于行动通讯领域,符合其主要设计目标为低耗电的特性。111 ARM处理器特点ARM处理器的三大特点是:耗电少功能强、16位/32位双指令集和合作伙伴众多。体积小、低功耗、低成本、高性能;支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件;大量使用寄存器,指令执行速度更快;大多数数据操作都在寄存器中完成;寻址方式灵活简单,执行效率高;指令长度固定。在今日,ARM家族占了所有32位嵌
2、入式处理器75%的比例,使它成为占全世界最多数的32位架构之一。ARM处理器可以在很多消费性电子产品上看到,从可携式装置(PDA、移动电话、多媒体播放器、掌上型电子游戏,和计算机)到电脑外设(硬盘、桌上型路由器)甚至在导弹的弹载计算机等军用设施中都有他的存在。在此还有一些基于ARM设计的派生产品,重要产品还包括Marvell的XScale架构和德州仪器的OMAP系列。112 ARM处理器体系结构1 CISC(ComplexInstructionSetComputer,复杂指令集计算机)在CISC指令集的各种指令中,大约有20%的指令会被反复使用,占整个程序代码的80%。而余下的指令却不经常使用
3、,在程序设计中只占20%。2 RISC(ReducedInstructionSetComputer,精简指令集计算机)RISC结构优先选取使用频最高的简单指令,避免复杂指令;将指令长度固定,指令格式和寻址方式种类减少;以控制逻辑为主,不用或少用微码控制等3寄存器结构ARM处理器共有37个寄存器,被分为若干个组(BANK),这些寄存器包括:(1)31个通用寄存器,包括程序计数器(PC指针),均为32位的寄存器。(2)6个状态寄存器,用以标识CPU的工作状态及程序的运行状态,均为32位,只使用了其中的一部分。4指令结构ARM微处理器的在较新的体系结构中支持两种指令集:ARM指令集和Thumb指令集
4、。其中,ARM指令为32位的长度,Thumb指令为16位长度。Thumb指令集为ARM指令集的功能子集,但与等价的ARM代码相比较,可节省30%40%以上的存储空间,同时具备32位代码的所有优点。1.2S3C2410处理器S3C2410处理器是Samsung公司基于ARM公司的ARM920T处理器核,采用FBGA封装,采用0.18um制造工艺的32位微控制器。该处理器拥有:独立的16KB指令Cache和16KB数据Cache,MMU,支持TFT的LCD控制器,NAND闪存控制器,3路UART,4路DMA,4路带PWM的Timer ,I/O口,RTC,8路10位ADC,Touch Screen接
5、口,IIC-BUS 接口,IIS-BUS 接口,2个USB主机,1个USB设备,SD主机和MMC接口,2路SPI。S3C2410处理器最高可运行在203MHz。121 S3C2410处理器规格核心板的尺寸仅相当于名片的2/3大小。开发商可以充分发挥想象力,设计制造出小体积,高性能的嵌入式应用产品。芯片封装:272-FBGA封装。主要有两种型号:S3C2410A-20、S3C2410A-26。前者主频最高为200MHZ、后者主频最高为266MHZ。122 S3C2410处理器功能(1)内部1.8V,存储器3.3V,外部I/O3.3V,16KB数据Cache,16KB指令Cache,MMU。(2)
6、内置外部存储器控制器(SDRAM控制和芯片选择逻辑)。(3)LCD控制器,一个LCD专业DMA。(4)4个带外部请求线的DMA。(5)3个通用异步串行端口(IrDA1.0,16-Byte Tx FIFO,16-Byte Rx FIFO),2通道SPI。(6)一个多主I2C总线,一个I2S总线控制器。(7)SD主接口版本1.0和多媒体卡协议版本2.11兼容。(8)两个USB HOST,一个USB DEVICE(VER1.1)。(9)4个PWM定时器和一个内部定时器。(10)看门狗定时器。117个通用I/O。(11)56个中断源,24个外部中断。(12)电源控制模式:标准、慢速、休眠、掉电。(13
7、)8通道10位ADC和触摸屏接口。(14)带日历功能的实时时钟,芯片内置PLL。(15)设计用于手持设备和通用嵌入式系统。(16) 16/32位RISC体系结构,使用ARM920TCPU核的强大指令集。(17)带MMU的先进的体系结构支持WinCE、EPOC32、Linux。1.3ADS集成环境简介ADS是ARM公司的集成开发环境软件,他的功能非常强大。他的前身是SDT,SDT是ARM公司几年前的开发环境软件,目前SDT早已经不再升级。ADS包括了四个模块分别是:SIMULATOR;C编译器;实时调试器;应用函数库。ADS的编译器调试器较SDT都有了非常大的改观, ADS1.2提供完整WIND
8、OWS界面开发环境。C编译器效率极高,支持C以及C+,使工程师可以很方便的使用C语言进行开发。提供软件模拟仿真功能,使没有Emulators的学习者也能够熟悉ARM的指令系统。配合FFT-ICE使用,ADS1.2提供强大的实时调试跟踪功能,片内运行情况尽在掌握。ADS1.2需要硬件支持才能发挥强大功能。目前支持的硬件调试器有Multi-ICE以及兼容Multi-ICE的调试工具如FFT-ICE。ADS包括三种调试器:(1)AXD(ARM eXtended Debugger):ARM扩展调试器(2)armsd(ARM Symbolic Debugger):ARM 符号调试器。(3)与老版本兼容的
9、Windows或Unix下的ARM调试工具,ADW/ADU其中AXD 不仅拥有低版本ARM调试器的所有功能,还新添了图形用户界面,更方便的视窗管理数据显示,格式化和编辑以及全套的命令行界面。该产品还包括RealMonitor(可以在前台调试的同时断点续存并且在不中断应用的情况下读写内存跟踪调试工具)。第2章 电路设计硬件电路由S3C2410主芯片、电源电路部分、按键电路部分、发光二极管电路部分、时钟电路部分和NORFLASH等部分组成,以下是各个电路部分的具体情况。(1)S3C2410主芯片如图4-1所示。图4-1控制整个系统的正确运行(2)按键电路部分如图4-2所示。图4-2提供按键支持(3
10、)发光二极管电路部分如图4-3所示。图4-3显示输出状态(4)时钟电路部分如图4-4所示。图4-4提供时钟支持(5)电源电路部分如图4-5所示。图4-5 为系统提供稳定的电源(6)NORFLASH部分如图4-6所示。图4-6启动方式(8)以上硬件电路所需元件清单如表1所示。表1 元件清单元件清单序号名称数量封装1电阻24个AXIAL0.32电容19个RAD0.23S3C2410芯片1个DIP804MULTI_ICEDIP205变压器TRANSI6发光二极管7个DIODE0.47按键SW-PB8电桥BRIDGE29电源稳压器3个TO-12610电源2个CON211晶振XTAL112SST39VF
11、13CON114HY57V561620CT1574LS145个DIP-14第3章 程序流程图及代码设计C程序部分,主要由以下4个模块成:GPIO端口配置模块、LED灯状态配置模块、键值读取模块、工作模式模块,下面是各个模块的具体情况。3.1 C程序流程图3.2 C程序程序代码321 C程序GPIO端口配置模块voidgpio_init(void) rGPECON = rGPECON &( ( 311 * 2) | ( 312 * 2) ) | ( ( 111 * 2) | ( 112 * 2) );rGPHCON = rGPHCON6 * 2) | ( 34 * 2) )6 * 2) | (
12、14 * 2) );rGPGCON = rGPGCON &(0xf4);rGPGCON = rGPGCON | (0xa rGPGCON = rGPGCON(36 * 2);rGPGCON = rGPGCON | (1 322 C程序LED灯状态配置模块Void LED0_Off(void)rGPEDAT = rGPEDAT | (1 11); Void LED1_Off(void)rGPEDAT = rGPEDAT |(112);LED2_Off(void)rGPHDAT=rGPHDAT |LED3_Off(void)6);LED0_On(void)rGPEDATrGPEDAT &(111)
13、;LED1_On(void)LED2_On(void)rGPHDAT &LED3_On(void)323 C程序键值读取模块intkeyScan(void)keyValue=0,tValue; tValuerGPGDAT;if(!(tValue&(13)keyValue1;else2)2;returnkeyValue;324 C程序工作模式模块void MODE1() switch(conter1) case 0: LEDALL_off();LED0_On();Delay(10000);break;case 1:LED1_On();case 2:LED2_On();case 3:LED3_On
14、(); break;conter1+;if(conter1=4)conter1=0;MODE2()switch(conter2)case0:LEDALL_off();1:2:3:conter2+; if(conter2=4)conter2=0;以上是C程序部分,而汇编程序部分,则主要由以下2个模块成:GPIO端口配置模块、LED灯状态配置模块,下面分别设计各个模块。3.3 汇编流程图3.4 汇编程序代码341 汇编程序GPIO端口配置模块;GPE,GPH配置bldelayldrr0,=GPECON r1,r0bic r1,r1,#(311*2)|(312*2)orrr1,r1,#(111*2)
15、|(1str r0,=GPHCONr1,r1,#(36*2)|(34*2) r1,r1,#(16*2)|(1r1,r0342 汇编程序LED灯状态配置模块LED0_ONstmfd sp!,r3,lr LEDALL_OFF r2,=GPEDATr3,r2bic r3,r3,#(0x111)ldmfd sp!mov pc,lrLED1_ONstmfd sp!r2,=GPEDAT r3,r212)ldmfdLED2_ONLEDALL_OFFr2,=GPHDAT4)LED3_ON6)pc,lrLED0_OFFORRLED1_OFFLED2_OFFLED3_OFFbl LED2_OFF LED3_OFF
16、第4章 总结两周时间很快就过去了,关于在ARM嵌入式实验平台上运行流水灯程序的工程训练已经结束了。经过这前前后后的准备、思考、实施、总结,我终于成功的完成了这次工程训练。在此次实训中我完成了从资料收集、确定方案、计划制定、电路图设计、程序的调试、检查和评估等一系列任务,实现了流水灯程序在ARM嵌入式实验平台上运行的设计和制作,收获许多也成长了许多,最终圆满地完成了实训任务。纵观整个的实训过程,经常出现这样那样的困难,比如电路图画错、编程出现错误、软件不会使用,论文不知道怎样去写等,在这期间着实费了我不少时间,我还是努力认真的去学习检查和修改,虽然这个过程非常艰难,但还是值得我回味的。在整个课程
17、设计过程,我查阅了大量地相关书籍和文献资料,从中学习了一些ARM的工作原理以及怎样去设计一个电子电路,还参照了一些以前做过的课程设计。对于这次实验,自己总结了如下几点。首先,要熟悉电路图,对各种功能进行分析,并且结合所学知识及所给的元器件和电路图认真分析每一部分电路的功能和原理。这是进行以后实验的基础。其次,实验线路连接要有层次,有条理。最后,编写好程序代码是非常重要的一部分。这不仅考验了我们对嵌入式知识的了解程度,还考核了我们对C语言,汇编语言的理解和运用。通过这次课程设计,我不仅加深了对以前学过课本知识得以理解和应用,并且对于其在电路中的使用有了更多的认识。通过这次课程设计原先有些课本上理
18、论问题总是弄不懂,这次通过自己亲自动手去实践,以前很多问题就感觉通俗易懂了,此间还掌握了不少理论知识。认识来源于实践,只有通过实践才能得以检验自己所学的理论知识。我也真正提高了自己的各项能力,比如独立思考解决问题的能力,与人协作的能力,亲自动手实践的能力,真正的提高了自己的实践技能,培养了自己的创新能力,为今后完成更高质量的项目打下基础。本次设计让我将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,这次课程设计结束了,但在以后的社会发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到退缩,一定要不厌其烦的发现问题所在,然后一一解决,只有这样,才能成功的做成想做的事情通过亲手实践,体会到了收获成果的喜悦。参考文献1 邱铁. ARM嵌入式系统结构与编程.清华大学出版社,2013.3 邱关源.电路第五版M.高等教育出版社,2006.4 谭浩强.C语言程序设计M.清华大学出版社,2005.5 刘建军.电子电工基础.人民邮电出版社,2011.6 广嵌GEC2410B实验箱材料-GEC2410B实验箱用户手册V1.1.pdf.7 徐英慧等.ARM9嵌入式系统设计.北京:北京航空航天大学出版社,2015.8 张智超等.嵌入式Linux应用开发详解M.北京:机械工业版社,2004.如有侵权请联系告知删除,感谢你们的配合!
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1