分类:
2012-05-21 09:29:14
原文地址:基于ARM的嵌入式开发的硬件常识 作者:曾德标
如何理解一个基于ARM内核的微处理器
可以从两方面来理解基于ARM内核的微处理器,一方面是由ARM公司设计的ARM内核,另一方面是由芯片设计厂家在ARM内核上整合的各种外围设备和外围接口控制器。下面我们分别做详细的介绍:
ARM内核:
1.它是由ARM公司设计。
2.是微处理器中的核心部分,相当于人的大脑,控制着整个系统的运行。
3.主要功能是实现程序的自动化执行,包括从哪个地址取指令,进行指令译码,指令执行,从哪个地址取待操作的数据,进行数据的数学运算或逻辑运算,将数据结果存储到哪个地址。
4.某些ARM内核还进行CACHE和MMU的管理。
5.唯一可以配置ARM内核的途径是CP15协处理器接口(JTAG调试口除外)。
6.在ARM内核的眼里,它看不到所有的外围设备,包括GPIO,UART,ADC,NAND FLASH,LCDC等许多的设备,在它眼里,数据和地址就是整个世界。所以别期待ARM内核知道当前在操作系统的哪个外围设备。
7.由ARM内核提供给外部的接口我们也可以知道内核在芯片中起的作用。
下面是ARM926内核结构框图:
外围设备和接口控制器:
外围设备和外围接口控制器是芯片设计厂家在ARM内核上集成的,它由芯片厂家根据自己芯片所面对的市场来集成需要的外围设备和接口,比如GPIO,UART,IIC,SPI,ADC.LCDC.SENSOR,NAND FLASH,DDR,H.263/H.264等等等等。
芯片设计厂家如何分配和组织ARM内核提供的这4G的地址空间,完全取决于芯片厂家的习惯和方便,更何况加入了MMU后,将哪段地址分配给哪个外围设备或外围接口,就更加变得无关紧要了。
外围设备和ARM内核连接的桥梁:
1. 寄存器,下面我们以GPIO来分析一下ARM内核是怎么通过寄存器来控制GPIO的:
通常ARM内核通过如下几个寄存器来控制GPIO:第一个是方向寄存器(方向配置),第二个是数据寄存器,第三个是上拉下拉电阻配置寄存器。ARM内核通过方向寄存器来控制GPIO管脚的输入和输出;通过数据寄存器来输出高电平和低电平,或读取GPIO管脚的高低电平状态;通过上拉下拉配置寄存器来开启上拉下拉电阻。
总结:寄存器一端连接ARM内核的总线(当然,有可能是间接连接),另一端连接外围控制逻辑,是ARM内核和外围的连接桥梁。采用寄存器控制外围的方式除了GPIO,还有UART,IIC,SPI,ADC.LCDC.SENSOR,NAND FLASH,H.263/H.264等其它很多外围控制器。
2. 总线接口 ,下面我们以NOR FLASH的访问来 分析一下ARM内核是怎么通过总线接口来控制NOR FLASH的:
以freescale I.MX27和NOR FLASH 连接图为例:
我们在看下I.MX27存储空间的分配图:
显然,当ARM内核访问地址空间0xC0000000--0xCFFFFFFF时,NOR FLASH控制器就会自动产生访问NOR FLASH所需要的各种信号包括片选信号CS0或者CS1,地址信号A[25:0],数据信号D[15:0]等。