710 likes | 951 Views
嵌入式系统设计与实例开发 —— ARM 与 C/OS-Ⅱ 第四讲 嵌入式微处理器体系结构. 第四讲、 ARM 微处理器体系统结构分析. 1. 嵌入式微处理器分类. ARM 嵌入式微处理器简介. 2. 3. ARM 指令集. ARM JTAG 调试. 4. 5. ARM 体系结构. 6. 嵌入式微处理器分类. ( 1 )、嵌入式微控制器. 嵌入式微控制器的典型代表是单片机,这种8位的电子器件目前在嵌入式设备中仍然有着极其广泛的应用。
E N D
嵌入式系统设计与实例开发 ——ARM与C/OS-Ⅱ 第四讲 嵌入式微处理器体系结构
第四讲、ARM微处理器体系统结构分析 1 嵌入式微处理器分类 ARM嵌入式微处理器简介 2 3 ARM指令集 ARM JTAG调试 4 5 ARM体系结构 6
(1)、嵌入式微控制器 嵌入式微控制器的典型代表是单片机,这种8位的电子器件目前在嵌入式设备中仍然有着极其广泛的应用。 单片机芯片内部集成ROM/EPROM、RAM、总线、总线逻辑、定时/计数器、看门狗、I/O、串行口、脉宽调制输出、A/D、D/A、Flash RAM、EEPROM等各种必要功能和外设。
微控制器的最大特点是单片化,体积大大减小,从而使功耗和成本下降、可靠性提高。微控制器的最大特点是单片化,体积大大减小,从而使功耗和成本下降、可靠性提高。 微控制器是目前嵌入式系统工业的主流。微控制器的片上外设资源一般比较丰富,适合于控制,因此称为微控制器。
由于MCU低廉的价格,优良的功能,所以拥有的品种和数量最多,比较有代表性的包括8051、MCS-251、MCS-96/196/296、P51XA、C166/167、68K系列以及MCU 8XC930/931、C540、C541,并且有支持I2C、CAN-Bus、LCD及众多专用MCU和兼容系列。 近来Atmel推出的AVR单片机由于其集成了FPGA等器件,所以具有很高的性价比,势必将推动单片机获得更高的发展。
(2)、嵌入式DSP处理器 • DSP处理器是专门用于信号处理方面的处理器,其在系统结构和指令算法方面进行了特殊设计,在数字滤波、FFT、谱分析等各种仪器上DSP获得了大规模的应用。 • DSP的理论算法在70年代就已经出现,但是由于专门的DSP处理器还未出现,所以这种理论算法只能通过MPU等由分立元件实现。1982年世界上诞生了首枚DSP芯片。在语音合成和编码解码器中得到了广泛应用。DSP的运算速度进一步提高,应用领域也从上述范围扩大到了通信和计算机方面。 • 目前最为广泛应用的嵌入式DSP处理器是TI的TMS320C2000/C5000系列,另外如Intel的MCS-296和Siemens的TriCore也有各自的应用范围。
(3)、嵌入式微处理器(Micro Processor Unit) MPU嵌入式微处理器是由通用计算机中的CPU演变而来的。 与计算机处理器不同的是,在实际嵌入式应用中,只保留和嵌入式应用紧密相关的功能硬件,去除其他的冗余功能部分,这样就以最低的功耗和资源实现嵌入式应用的特殊要求。
和工业控制计算机相比,嵌入式微处理器具有体积小、重量轻、成本低、可靠性高的优点。目前主要的嵌入式处理器类型有Am186/88、386EX、SC-400、Power PC、68000、MIPS、ARM/ StrongARM系列等
(4)、嵌入式片上系统(System On Chip) SoC 就是System on Chip ,SoC嵌入式系统微处理器就是一种电路系统。 它结合了许多功能区块,将功能做在一个芯片上,像是ARM RISC、MIPS RISC、DSP或是其他的微处理器核心,加上通信的接口单元,像是通用串行端口(USB)、TCP/IP通信单元、GPRS通信接口、GSM通信接口、IEEE1394、蓝牙模块接口等等,这些单元以往都是依照各单元的功能做成一个个独立的处理芯片。
SoC是追求产品系统最大包容的集成器件,SOC最大的特点是成功实现了软硬件无缝结合,直接在处理器片内嵌入操作系统的代码模块。SoC是追求产品系统最大包容的集成器件,SOC最大的特点是成功实现了软硬件无缝结合,直接在处理器片内嵌入操作系统的代码模块。 运用VHDL等硬件描述语言不需要再像传统的系统设计一样,绘制庞大复杂的电路板,一点点的连接焊制,只需要使用精确的语言,综合时序设计直接在器件库中调用各种通用处理器的标准,然后通过仿真之后就可以直接交付芯片厂商进行生产。
由于SOC往往是专用的,所以大部分都不为用户所知,如Philips的Smart XA。Siemens的TriCore,Motorola的M-Core,某些ARM系列器件,Echelon和Motorola联合研制的Neuron芯片等。 SOC芯片也将在声音、图像、影视、网络及系统逻辑等应用领域中发挥重要作用。
SoC嵌入式系统微处理器所具有的其他的好处可以分为下列几点:SoC嵌入式系统微处理器所具有的其他的好处可以分为下列几点: • 利用改变内部工作电压,降低芯片功耗。 • 减少芯片对外管脚数,简化制造过程。 • 减少外围驱动接口单元及电路板之间的信号传递,可以加快微处理器数据处理的速度。 • 内嵌的线路可以避免外部电路板在信号传递时所造成系统杂讯。
二、ARM结构微处理器简介 ARM即Advanced RISC Machines的缩写。 1985年4月26日,第一个ARM原型在英国剑桥的Acorn计算机有限公司诞生,由美国加州San Jose VLSI技术公司制造。 20世纪80年代后期,ARM很快开发成Acorn的台式机产品,形成英国的计算机教育基础。 1990年成立了Advanced RISC Machines Limited。 20世纪9年代,ARM32位嵌人式RISC(Reduced Instruction Set Computer)处理器扩展到世界范围,占据了低功耗、低成本和高性能的嵌入式系统应用领域的领先地位。 32位RISC处理器受到青睐,领先的是ARM嵌入式微处理器系列。 ARM公司虽然只成立10多年,但在1999年因移动电话火爆市场,其32位RISC处理器占市场份额超过了50%,成为业界龙头老大。2001年初,ARM公司的32位RISC处理器市场占有率超过了75%,引起业界的极大关注。ARM公司是知识产权供应商,是设计公司。ARM公司本身不生产芯片,靠转让设计许可,由合作伙伴公司来生产各具特色的芯片。
ARM公司商业模式的强大之处在于其价格合理,全世界范围有超过100个合作伙伴--包括半导体工业的著名公司。ARM公司专注于设计,其内核耗电少、成本低、功能强,特有16/32位双指令集。ARM已成为移动通信、手持计算、多媒体数字消费等嵌入式解决方案的RISC标准。ARM公司商业模式的强大之处在于其价格合理,全世界范围有超过100个合作伙伴--包括半导体工业的著名公司。ARM公司专注于设计,其内核耗电少、成本低、功能强,特有16/32位双指令集。ARM已成为移动通信、手持计算、多媒体数字消费等嵌入式解决方案的RISC标准。 • 在所有ARM处理器系列中,ARM7处理器系列应用最广,采用ARM7处理器作为内核生产芯片的公司最多。
ARM处理器的特点 ARM处理器的3大特点如下: • 小体积、低功耗、成本低、高性能; • 16位/32位双指令集; • 全球众多的合作伙伴。 当前ARM体系结构的扩充包括: • Thumb:16位指令集,用以改善代码密度; • DSP:用于DSP应用的算术运算指令集; • Jazeller:允许直接执行Java安节码的扩充。 ARM处理器系列提供的解决方案包括: • 在无线、消费电子和图像应用方面的开放平台; • 存储、自动化、工业和网络应用的嵌入式实时系统; • 智能卡和SIM卡的安全应用。
ARM处理器本身是32位设计,但也配备16位指令集,以允许软件编码为更短的16位指令。与等价的32代码相比,占用的存储器空间节省高达35%,然而保留了32位系统所有的优势。 ARM还提供了两个前沿特性——嵌入式ICE—RT逻辑和嵌入式跟踪宏核系列,用以辅助带深嵌入式处理器核的、高集成的SOC器件的调试。 ARM业界领先的跟踪解决方案——嵌入式跟踪宏单元(ETM,Embeddeb Trace Macrocell),被设计成驻留在ARM处理器上,用以监控内部总线,并能以核速度无妨碍地跟踪指令和数据的访问。
ARM产品系列 ARM处理器当前有5个产品系列:ARM7、ARM9、ARM9E、ARM10和SecurCore。进一步的产品来自于合作伙伴,例如Intel Xccale微体系结构和StrongARM产品。 ARM7、ARM9、ARM9E和ARM10是4个通用处理器系列。每个系列提供一套特定的性能来满足设计者对功耗、性能、和体积的需求。 Secur Core是第5个产品系列,是专门为安全设备而设计的。性能高达1200MIPS(Xscale微体系结构),功耗测量为μW/MHz,并且所有体系结构兼容。
ARM体系结构的主要特征 • 大量的寄存器,都可用于多种用途; • Load-Store体系结构 • 3地址指令(两个源操作数寄存器和结果寄存器独立设定) • 每条指令都条件执行包含非常强大的多寄存器Load和Store指令 • 能在单时钟周期执行的单条指令内完成一项普通的移位操作和一项普通的ALU操作 • 能过协处理器指令集来扩展ARM指令集,包括在编程模式下增加了新的寄存器和数据类型 • 在Thumb体系结构中以高密度16位压缩形式表示指令集
ARM有三种类型的数据指令 1)数据处理指令:这类指令只能使用和改变寄存器中的值 2)数据传送指令:这类指令把存储器中的值拷贝寄存器(Load)或把寄存器的值拷贝到存储器中(Store) 3)控制流指令:一般指令在执行时使用存储于连续的存储器地址中的指令。控制流指令使执行切换到不同的地址。切换是永久的或保存返回地址以恢复原来的执行顺序,或者陷入系统代码。
1、数据处理指令 • 功能:完成寄存器的数据的算术和逻辑操作 • 典型特征:需要两个操作数,产生单个结果 • 使用原则: 1)所有的操作数是32位宽,或来自寄存器,或在指令中定义的立即数 2)如果有结果,则结果为32位宽,放在一个寄存器中 3)每一个操作数寄存器和结果寄存器都在指令中独立的指定,即使用3地址模式 例:ADD r0,r1,r2; r0=r1+r2
ARM数据处理指令一览 1)简单的寄存器操作 • 算术操作:ADD、ADC、SUB、SBC、RSB、RSC • 按位逻辑与:AND、ORR、EOR、BIC • 寄存器传送操作:MOV、MVN • 比较操作:CMP、CMN、TST、TEQ 2)立即数操作:如ADD r1,r1,#1 3)寄存器移位操作:LSL、LSR、ASL、ASR、ROR、RRX 例 ADD r3,r2,r1,LSL #3 4)设置条件码 5)乘法:MUL、MLA
2、数据传送指令 1)单寄存器的Load和Store指令 2)多寄存器的Load和Store指令 3)单寄存器交换指令
3、控制流指令 1)转移指令 2)子程序返回指令 3)监控程序调用指令
例子 AREA HelloW,CODE,READONLY ;声明代码区 SWI_WriteC EQU &0 ;输出r0中的字符 SWI_Exit EQU &11 ;程序结束 ENTRY ;代码入口 START ADR r1,TEXT ;r1---“Hello World” LOOP LDRB r0,[r1],#1 ;读取下一字节 CMP r0,#0 ;检查文本终点 SWINE SWI_WriteC ;若非终点,则打印 BNE LOOP ;并返回LOOP SWI SWI_Exit ;执行结束 TEXT = “Hello World”,&0a,&0d,0 END ;程序结束
几种常用的调试方法 • 指令集模拟器 一种利用PC机端的仿真开发软件模拟调试的方法。 • 驻留监控软件 驻留监控程序运行在目标板上,PC机端调试软件可通过并口、串口、网口与之交互,以完成程序执行、存储器及寄存器读写、断点设置等任务 • JTAG仿真器 通过ARM芯片的JTAG边界扫描口与ARM核进行通信,不占用目标板的资源,是目前使用最广泛的调试手段 • 在线仿真器 使用仿真头代替目标板上的CPU,可以完全仿真ARM芯片的行为。但结构较复杂,价格昂贵,通常用于ARM硬件开发中
ARM的JTAG调试结构 Angel JTAG
宿主机调试器 • 宿主机调试器通过固定的协议控制下位机(协议转换器)。比如,SDT中通过Angel协议或者第三方调试器所提供的协议 • 宿主机调试器只发送宏观的命令,比如:程序运行、终止。读些内存、ARM寄存器等 • 通讯的介质可以是串口、并口、以太网、USB等
JTAG与Angel • JTAG调试:协议转换器解释上位机传送过来的命令,通过JTAG控制ARM执行。 • Angel调试:协议转换器可以直接做为目标板的Firmware的一部分。直接执行从宿主机传送过来的调试命令;并回送相应的数据。 • Angel可以节省专门的JTAG仿真器,但是,它需要软件,或者是嵌入式操作系统的支持,做不到完全的实时仿真。而JTAG仿真是通过硬件和控制ARM的EmbeddedICE实现的,可以做到实时仿真。
什么是JTAG? • JTAG是Joint Test Action Group的缩写;是IEEE1149.1标准 • JTAG的建立使得集成电路固定在PCB上,只通过边界扫描便可以被测试 • 在ARM7TDMI处理器中,可以通过JTAG直接控制ARM的内部总线,IO口等信息,从而达到调试的目的
JTAG的典型接口 • TMS: 测试模式选择(Test Mode Select),通过TMS信号控制JTAG状态机的状态 • TCK :JTAG的时钟信号 • TDI:数据输入信号 • TDO :数据输出信号 • nTRST:JTAG复位信号,复位JTAG的状态机和内部的宏单元(Macrocell)
ARM7TDMI的JTAG标准链(2) • Scan Chain 0:包括ARM核的所有的IO和总线的输入输出控制信号 • Scan Chain 1:包括ARM核的数据总线和一个断点控制信号。通过控制这个条链,可以控制ARM核执行指定的指令。 • Scan Chain 2:通过控制EmbeddedICE宏单元,实现对ARM执行指令的断点、观察点的控制
ARM7TDMI中断点的设置 • 设置EmbeddedICE的两个watchpoint单元主要包括:地址、数据、控制信号等 • 当一个(或者两个)watchpoint中的地址(也可以包括数据)和ARM所执行的当前的指令相同的时候,ARM就从运行状态进入Debug状态
断点的类型 • 硬件断点:在ARM中直接设定watchpoint中的地址,当ARM运行到制定的地址时,就进入Debug状态 • 软件断点:改变存储器中的ARM指令为一个特殊的数据X(ARM的未定义指令),同时,设置watchpoint中的断点数据也为X,当ARM把X数据作为指令读入的时候,ARM就进入Debug状态
硬件断点和软件断点的优缺点 • 硬件断点:数目受EmbeddedICE中的Watchpoint数目的限制;但是,可以在任何地方设置断点 • 软件断点:数目不受限制,但是,软件断点是通过替换系统的断点地址的指令实现的,所以,软件断点只能在可写的存储器的地址中设置(比如:RAM),而不能在ROM(比如:Flash)中设置
五、ARM体系结构 • ARM体系结构的主要特征 • 大量的寄存器,都可用于多种用途; • Load-Store体系结构 • 3地址指令(两个源操作数寄存器和结果寄存器独立设定) • 每条指令都条件执行包含非常强大的多寄存器Load和Store指令 • 能在单时钟周期执行的单条指令内完成一项普通的移位操作和一项普通的ALU操作 • 能过协处理器指令集来扩展ARM指令集,包括在编程模式下增加了新的寄存器和数据类型 • 在Thumb体系结构中以高密度16位压缩形式表示指令集
Samsung S3C44B0X • Samsung S3C44B0X微处理器是三星公司专为手持设备和一般应用提供的高性价比和高性能的微控制器解决方案,它使用ARM7TDMI核,工作在66MHZ。为了降低系统总成本和减少外围器件,这款芯片中还集成了下列部件: • 8KB Cache、外部存储器控制器、LCD控制器、4个DMA通道、2通道UART、1个多主I2C总线控制器、1个IIS总线控制器,5通道PWM定时器及一个内部定时器、71个通用I/O口、8个外部中断源、实时时钟、8通道10位ADC等。
S3C44B0X 体系结构: • 用于手持设备和通用嵌入式应用的完整系统; • 16/32位RISC结构和带ARM7DMI CPU核的功能强大的指令集; • Thumb协处理器在保证性能的前提下使代码密度最大; • 片上ICE中断调试JTAG调试方式 • 328位硬件乘法器;
系统管理: • 支持大/小端模式 • 地址空间:每个Bank32MB(一共256MB); • 每个Bank支持8/16/32位数据总线编程; • 固定的Bank起始地址和7个可编程的Bank; • 1个起始地址和尺寸可编程的Bank; • 8个内存Bank::6个用于ROM、SRAM;2个用于ROM/SRAM/DRAM; • 所有内存Bank的可编程寻址周期; • 在能量低的情况下支持DRAM/SDRAM自动刷新模式; • 支持DRAM的非对称/对称寻址;
缓冲内存和内部SRAM • 4路带8K字节的联合缓存; • 不使用缓存的0/4/8K内容SRAM • 伪LRU(最近最少使用)的替代算法; • 通过在主内存和缓冲区内容之间保持一致的方式写内存; • 当缓冲区出错时,请求数据填充技术;
时钟和能量管理 l低能耗; l时钟可以通过软件选择性地反馈回每个功能块 l能量模式: u正常模式:正常运行模式; u低能模式:不带PLL的底频时钟; u休眠模式:只使CPU的时钟停止; u停止模式:所有时钟都停止; l用EINT或RTC警告中断从停止模式唤醒
中断控制器 l30个中断源(看门狗定时器,6个定时器,6个UART,8个外部中断,4个DMA,2个RTC,1个ADC,1个I2C,1个SIO; l矢量IRQ中断模式减少中断响应周期; l外部中断源的水平/边缘模式; l可编程的水平/边缘极性; l对紧急中断请求支持FIQ(快速中断请求);
带PWM的定时器 l5个16位带PWM的定时器/1个16位基于DMA或基于中断的定时器; l可编程的工作循环,频率和极性 l死区产生 l支持外部时钟源