ARM

据IC Insights市场研究报告统计,受物联网、汽车电子、人工智能等行业应用带动,微控制器(MCU)销售规模预计将从2016年的166亿美元上升至2020年的209亿美元,年均增长率为5.5%。Arm嵌入式与汽车事业部市场营销高级总监Rhonda Dirvin日前接受了《电子工程专辑》的采访,不但畅谈了Arm在人工智能、先进工艺、异构处理方面的最新进展,也对与RISC-V架构的竞争做出了回应。

MCU喜迎AI新机遇,但先进工艺恐成“拦路虎”?看看Arm怎么说
Arm嵌入式与汽车事业部市场营销高级总监Rhonda Dirvin

电子工程专辑:自2017年以来,包括MCU在内的很多电子元器件、分立器件都传出缺货消息。您对2018年MCU市场需求状况是如何看待的?MCU价格走势是否会发生较大变化?

Rhonda Dirvin:据ICInsights预测,2018年全球电子系统市场将增长5%,至16220亿美元,而今年全球半导体市场预计将飙升14%,至5091亿美元,首次超过5000亿美元的水平。如果2018年的预测实现,每个电子系统中的半导体产品平均占比将达到31.4%,打破2017年创下的28.8%的历史记录。

Arm预计MCU市场在未来十年将会有巨大增长,尤其是在物联网的推动下。然而,其中许多芯片的成本将非常低,而这将不可避免地导致芯片的平均价格下降。

为了帮助芯片创新企业降低初期财务支出、风险并加快上市时间,Arm DesignStart提供了一条无需预付授权费即可获取嵌入式IP的途径。对于那些希望快速生产定制SoC的团队来说,这是一个理想的起点,因为它包括CPU和系统IP、免费的软件工具试用版,以及可获取广泛的Arm生态系统和知识库资源。

我们看到越来越多的Cortex-A处理器被应用于深度嵌入式应用程序,如果将这些Cortex-A设备视为MCU类,可能会增加MCU的平均价格。

电子工程专辑:人工智能、智能制造、自动驾驶是当前最为热门的应用领域,MCU在其中扮演着怎样的角色?

Rhonda Dirvin:工业自动化、机器人和自动驾驶汽车无疑为更加智能的微控制器提供了契机。AI芯片如果想取代传统芯片,需要具备更强的能力。例如,电机控制器可带有附加传感器来检测振动或噪声,以收集正在运行的电机的信息,然后使用机器学习算法进行电机的自动调节,提高电机运行效率。

目前来看,这些新兴应用尚处于起步阶段,规模并不大。但是,AI功能可以集成到每个MCU中。人工智能的一个子集是机器学习(ML),机器学习技术正被广泛应用于所有市场。有一个明显的趋势是,机器学习推理向“边缘”移动,甚至向最小的嵌入式设备移动,有时也被称为“远边缘”。用于Cortex-M CPU的CMSIS-NN软件库在M级设备上提供了优化的机器学习性能。这使得在“永久在线”的使用情况下,能够高效地执行机器学习应用程序,例如关键词检索和图像对象检测。

而自动驾驶需要不同类型的处理过程。某些部件需要确定性的实时响应和最高水平的系统性功能,以实现功能安全,基于Cortex-R和Cortex-M的部件可以提供这种功能组合;在一些解决方案中需要有不同安全级别的相关软件,Arm不仅提供了经过认证的工具链,许多实时操作系统也经过了认证,比如已经发布的Compiler 6和Keil RTX安全认证版本,以及平台安全架构(PSA),通过提供安全的基本构建模块,包括可信固件和示例案例分析,让安全实施变得更容易。

电子工程专辑:Arm如何将自己无可比拟的低功耗技术优势与人工智能应用相结合?

Rhonda Dirvin:AI本身也是可以节能的。例如,电机控制器可以通过附加传感器检测振动或噪声,以收集正在运行的电机的信息,然后使用机器学习算法进行电机的自动调节,提高电机运行效率。电机节省的功耗将比处理器使用的功耗大许多倍。

为了降低处理器消耗的功率,Arm拥有多种不同性能的处理器。一些用于低成本微控制器的Arm嵌入式处理器具有附加功能,用来加速机器学习算法中使用的数学函数,这可以减少其它芯片的面积和功耗。

大多数MCU都是使用较旧的节点工艺(55nm甚至更大)制造的,在这种情况下静态功耗基本不是问题。但当走向更小节点时,静态功耗就变成一个越发重要的因素。Arm的处理器与物理IP配合使用,可降低动态和静态功耗,这包括关闭当前未运行的功能块和降低电压,从而降低运行处理器所需的功耗。Arm为其Cortex-M微处理器及其神经网络处理器分别引入了优化的物理IP库,分别为POP和机器学习POP。

我们也确实看到许多领先的MCU厂商正在向更小节点演进(如40纳米)。例如,目前基于40纳米的NXP iMX RT处理器包含一个运行速度高达600MHz的Arm Cortex - M7处理器;瑞萨(Renesas)在其协同微控制器中使用40纳米工艺,而意法半导体(ST)在其近期发布的基于Cortex-M的STM32芯片中同时使用40纳米和90纳米工艺;SoC供应商RDA在其基于Cortex-M4的Wi-Fi SoC中采用了40纳米工艺。因为嵌入式闪存可用性仍然是许多MCU供应商的关键要求之一,所以要采用超过40纳米的工艺可能更具挑战性。

电子工程专辑:在MCU市场,同构和异构多核技术正成为主要趋势,您对其未来的发展有何看法?

Rhonda Dirvin:考虑MCU+MCU组合也很重要——例如,恩智浦和意法半导体都提供许多基于Cortex-M的微控制器产品,它们可以跟不同的Cortex-M处理器在非对称多处理(AMP)安排下协同工作。当然,在某些情况下,MCU+DSP、DSP+FPGA或MCU+FPGA是行得通的。但是由于在学习不同类型的技术知识以及使不同的内核能够有效地协同工作方面的挑战,采用这些组合可能收效缓慢或是有限。当然也有成功的案例——例如,赛灵思Zynq系列和Intel(Altera) Arria系列都提供基于Cortex-A处理器的部件,而Arm也在与各种供应商合作,为异构多处理领域提供新的创新解决方案。

在信号处理方面,Arm提供带有可选DSP指令集的MCU处理器解决方案,提供一体化控制和数据处理解决方案。嵌入式工程师可以非常方便地使用Arm Cortex-M处理器设计信号处理功能,节省开发时间、精力和芯片面积。此外,这也意味着工程师可以获得对广泛的Cortex-M生态系统、Arm软件库和合作伙伴软件编解码器的访问权限,为涉及传感器融合、语音和音频交互等技术的应用程序创造新机遇。

电子工程专辑:RISC-V架构最近的发展势头看上去不错,Arm是否感受到了压力?

Rhonda Dirvin:一直以来都存在相互竞争的架构,尤其是在MCU市场,RISC-V也不例外。Arm多年来已经证明,我们拥有得到广泛生态系统支持的一流技术。Arm的IP产品超越了CPU,还提供安全的、系统级的解决方案、软件和开发工具,以及广泛的第三方生态系统。Arm也有不同的授权模式来支持广泛的客户。中国客户特别感兴趣的是DesignStart计划,该计划提供免预付授权金的Arm IP。在过去12个月中,在300家DesignStart Pro项目授权厂商中,有40%来自中国,这使得很多初创公司能够设计生产定制化芯片。我相信由于Arm的持续投资并提供我们的合作伙伴和行业所需的解决方案,Arm将继续在MCU市场及其他领域取得成功。

电子工程专辑:您认为中国MCU企业这两年发展情况怎么样?如何看待中国MCU未来的发展?

Rhonda Dirvin:从全球来看,8/16位MCU约占总销售额的40%,32位MCU占60%。Arm是目前32位MCU的市场领导者,我们估计占有超过80%的市场份额。在中国市场,目前Arm在中国的授权客户数量已超过150家,中国半导体公司共累计出货了140亿颗基于Arm的芯片,中国公司制造的复杂SoC中约95%是基于Arm架构的。

中国本土的MCU供应商正在不断成长。他们与OEM厂商有着密切的关系,这样OEM厂商才能帮助他们针对最相关的终端应用产品来更好地定制芯片,同时进一步改进他们的MCU产品,以便在全球范围内竞争。一个很好的例子是兆易创新(Gigadevice),他们已经出货了超过2亿颗GD32 MCU,这是Arm帮助中国MCU合作伙伴实现双赢的一个很好的例子。他们选择了Cortex-M处理器,从而在Arm广泛的生态系统中获得了广泛的选择和灵活性。

此外,在日常产品中引入智能化的需求推动了对智能传感器和智能模拟SoC的需求,这种需求推动了定制化芯片的扩张并带来了许多好处,比如降低了组件成本、增加了功能和产品差异化。

为了推动芯片领域的创新,Arm还推出了Arm DesignStart项目,努力以最快、最简单、最低风险的方式来评估定制化芯片并将其商业化。它包括两个最受欢迎的嵌入式处理器(Cortex-M0和Cortex-M3)及其相应的系统IP,以及软件工具试用版、专家支持和丰富的资源,所有这些都无需预付授权费。

本文来源:电子工程专辑
作者:邵乐峰

围观 7
30

芯片的加密,保证了芯片内部信息的安全性。有工程师会问:芯片加密后别人还能解密吗?这芯片安全吗?本文将为大家介绍几种不同类型芯片的加密方式。

随着信息技术的发展,信息的载体——芯片的使用也越来越多了,随之而来的是各个芯片厂商对芯片保密性要求越来越高,用芯片加密的方式来确保芯片内部信息的安全性。其实芯片的安全加密问题与芯片的类型有关,不同类型的芯片加密后有不一样的效果。

市面上现有的芯片种类很多,主要包括Flash,MCU,ARM,DSP,CPLD等。

一、Flash类芯片加密

Flash类芯片包含SPI Nor FLASH ,并行Nor FLASH,NAND FLASH,EMMC等,这些Flash类的芯片都没有非常牢固的加密功能,对code区进行加密后,只能进行写保护,如果有人想复制你的代码,只要读取母片即可,所以这类芯片安全性较低。

你的芯片够安全吗?

将上图所示的信息设置好写入芯片后,对应的区域即进入保护状态,不能编程,擦除,只能通过清空加密寄存器中的信息,才能从新对芯片进行擦除,编程操作。

二、MCU,ARM类芯片加密

经常会有人就MCU加密保护后能否二次使用的问题进行咨询。对于加密后的芯片能不能二次使用这个问题,得具体看是哪个类型的芯片,类似于TI 的MSP430系列芯片加密后即不可进行二次使用,这个加密为OTP(One Time Programmable)型,只能进行一次烧录。其原理是通过高压烧断熔丝,使外部设备再也无法访问芯片,这个是物理性,不可恢复,如要加密,请慎用!

但对于大部分ARM芯片来说,加密后芯片还是可以进行二次使用的。类似于NXP ARM类型芯片有3级可选的加密,即Level 1,Level 2,Level 3。其中Level 1 就是不做读保护级别,即可以读出芯片中的数据,但不能对芯片进行编程,擦除操作。如果芯片被设置为Level 2保护,这种状态下,不能读取芯片内的程序代码内容,也不能对芯片再次做存储空间的擦写或芯片调试了。而Level 3级别的保护是不可逆的,保护后即不能进行其他操作。综上,3个级别当中的Level 1和Level 2加密后还是可以通过解密的方式对芯片进行第二次操作,这种加密等级设置是比较人性化的。下图为P800系列编程器加密设置操作界面。

你的芯片够安全吗?

三、DSP类芯片加密

该类型的芯片加密形式是通过在特定的区域写入客户的密码进行加密。这种加密是可逆的,可以通过输入对的密码进行任何操作。但是有一种方式是不可逆的,即密码为全“0”。其P800系列编程器加密设置窗口如下。

你的芯片够安全吗?

四、CPLD、FPGA类芯片加密

这类芯片加密后一般都可以通过擦除方式进行解密,不能对加密的芯片进行读取操作,这种加密对芯片来说还是比较安全的。

以上便是几种常见类型芯片的加密方式以及加密后的效果,用户可以根据芯片类型选择对应的加密方式,最大程度确保芯片内部信息的安全。

你的芯片够安全吗?

转自:ZLG致远电子 研发部

围观 3
152

ARM嵌入式系统硬件设计

图1是系统硬件结构图“系统采用外部3.6864MHz的晶振产生内核所需要的18.432MHz、36.864MHz、49.152MHz或73.728MHz的时钟。

一招教你ARM嵌入式系统硬件怎么用?

以下主要针对此硬件开发平台,进行结构、储存器扩展、主要接口、显示及其外设方面设计的介绍。

1、电源部分设计

电源是系统可靠工作的保证,包括供电和复位电路部分。系统复位模块提供CS89712启动信号。系统采用nPOR信号作为复位信号,使用复位芯片产生复位信号。如图2:

一招教你ARM嵌入式系统硬件怎么用?

整个系统的外部电源输入采用直流18V-36V,系统的供电较为复杂,电压等级多,其中CS89712芯片I/0和内核分别采用3.3V.2.5V供电,而扩展的MAX125、LCD显示器采用5V供电,同时LCD对比度调节需负电压偏置(选用MAX686芯片);而模拟量采集MAX125前向通道中滤波和电压跟随电路所用运放电源电压为正、负12V。

这里采用Ericsson的DC/DC电源模块PKC2131PI,提供隔离的正负12V和+5V,同时选用MICREL公司MIC2211-2.5/3.3BML型双输出LDO提供CS89712的3.3V和2.5V。图3为CS89712双电源供电电路:

一招教你ARM嵌入式系统硬件怎么用?

2、存储器部分设计

本系统采用FLASH存储程序和参数,使用SDRAM作为程序的运行空间。数据及堆栈。CS89712内置了SDRAM控制器和内存接口。其中FLASH部分采用2片Intel公司TE28F320B3BA110,构成32位宽8MB的FLASH,SDRAM采用2片NEC公司uPD-4564163G5,构成32位宽16MB的SDRAM,如图4:

一招教你ARM嵌入式系统硬件怎么用?

3、LCD硬件扩展设计

液晶显示器(LCD)具有显示信息丰富、功耗低、体积小、重量轻等其他显示器无法比拟的优势,目前在智能仪表仪器和低功耗电子产品中得到了广泛的应用。

CS89712内置了LCD控制器,LCD控制器就相当于嵌入式系统的显卡,接口有以下信号:DD[0:3](数据线)、FRM(帧同步信号)、CL1(行同步信号)、CL2(象素数据时钟)、M(交流偏置信号)。这里我们扩展的是一个STN的彩色LCD,该LCD显示屏提供8位数据接口。表1为CS89712和该LCD控制信号接线对应表。

一招教你ARM嵌入式系统硬件怎么用?

4、触摸屏硬件扩展设计

触摸屏输入部分由触摸屏、触摸屏控制器组成,和LCD配合可以实现完整的人机操作界面。图7为实际的触摸屏输入系统部分,采用四线电阻式触摸屏,触摸屏控制器采用T[(BB)公司的ADS7846,其可以通过SPI接口直接和CS89712相接。

一招教你ARM嵌入式系统硬件怎么用?

5、以太网接口的设计

由于CS89712内部集成了CS8900A以太网控制器其本身带有802.3MAC引擎、Buffer、串行EEP-ROM接口和10BASE-T的模拟前端。只需增加I/O隔离滤波器和RJ45接口即可。此部分电路如图8:

一招教你ARM嵌入式系统硬件怎么用?

6、数据采集硬件扩展设计

MAX125是MAXIM公司生产的高速2X4通道同步采样14位逐次比较型A/D转换芯片,其模拟输入范围为正负5V,内部具有2.5V参考电源,内置有四个采样/保持放大器(T/H)。输入分为A、B两组,通过开关的切换可以对八个通道进行采集,转换所得的数字量都存储在4X14的RAM中。

其并行接口数据访问和总线释放的定时特性与CS89712芯片总线的特性兼容,故两者可以直接相连而不需等待状态。由于MAXI25为+5V供电,在与I/O电源电压为3.3V的CS89712联接时需要使用总线电平转换芯片74LVC245A,其中采用读写控制信号控制总线转换方向,转换完成后自动申请CS89712的外部中断EINT1,读取A/D数据自动会撤消该中断。通过在前向通道加接限幅保护、电压跟随和滤波输入电路,即可完成模拟数据采集电路的设计。

税控收款机应用举例

一、基于S3C44B0的税控收款机

1、采用嵌入式CPU(S3C44B0)
2、从系统结构上改变目前收款机应用系统中出现的高端机(由PC机组成系统)成本过高与低端机(由单片机组成系统)资源不足的状况,使嵌入式系统在税控收款机上得到广泛应用。

二、税控收款机组成框图

一招教你ARM嵌入式系统硬件怎么用?

三、税控收款机硬件组成

1、CPU:S3C44B0
2、存储器:FLASH、SDRAM、NANDFLASH
3、显示器:LCD、VFD
4、触摸屏:四线电阻式触摸屏
5、PS/2外设接口:键盘、条码扫描器、磁卡扫描器
6、RS232、并行口扩展接口:用外设扩展芯片实现
7、网络扩展接口
8、电源模块:主板电源、MODEM电源、VFD电源等

四、POS机软件组成

1、操作系统
1)采用uCLinux操作系统,不需要MMU支持,内核可裁减
2)包括了完善的TCP/IP协议栈,PPP拨号网络

2、图形系统
采用MiniGUI,中国人自行开发,界面美观,移植简单

3、应用程序
1)商业功能模块
2)税控功能模块
3)报表功能模块
4)管理设置功能模块
5)其它功能模块

来自:电源网

围观 8
296

那么A系列的处理器,会有一个相关的术语,这些术语在这里会给大家做一个介绍,大概这些术语要给大家说一下,首先是流水线,流水线就是底层架构的术语。

流水线:

流水线其实是底层架构涉及到的术语,就比如说中间是个CPU,然后外面一个转盘围绕着它在转,它们在多任务分时的处理,那么在处理的过程中,CPU会得到指令,并且处理一些指令,那么它的过程,应该先从某个地方去取指令(F),取完指令之后要译码然后在执行,也就是基于FDE,那么这个就是我们在某一个时刻它应该做的三步操作,就这三步操作我们才能完成CPU正在进行运算,因为它必须要取指令,然后这些指令是ARM指令,CPU默认的情况下不一定认可,所以就要进行一个翻译,翻译成最简单的然后再去执行,那么这个就是第一个时刻“F-D-E”,然后马上它又转到另外一个任务里面,那么就会有一段时间的延后,那么又是一个“F-D-E”的过程,后面同样的延后又会是同样的过程,这样看来就会像一个流水线,所以我们就称为流水线,这就是CPU运转的一个机制,而这样三步就称为三级流水。后来我们在这个过程中又增加一些步骤,我们可以有多级流水,所以这个就知道这是CPU在去读取指令和运行的一个机制。

DSP-数字信号处理:

还有就是DSP-数字信号处理,这个可以把它理解为一个单独的芯片,它能够专门针对数字信号,特别是多媒体是典型的语音数字信号,它可以来单独处理,因为这块数字信号处理对芯片独占性要求挺高,如果我们用主CPU去处理,别的任务就有可能不能兼顾。

Jazelle:Jazelle是ARM里面针对JAVA这块的编程模型。

ThumbEE:这个就是Thumb指令,它的全称是Thumb的环境变量,Thumb是辅助ARM指令的另外一个指令,它是十六位的,后面的Thumb-2是Thumb的延伸,认为它有一些缺陷,就又升级了,成为十六位和三十二位并存的。

TrustZone:是ARM体系里面的安全架构。

VFP:是适量的福点运算机制。

Advanced:(SIMD NEON)

LPAE(Large Physical Address Extension)有了它之后,我们将来甚至于从硬件层次,我们就可以把我们的内存虚拟为1T,当然这个也需要依赖于我们的虚拟技术。

Virtualization:虚拟技术

big.LITTLE:什么叫做大小?就是从现在越来越强大的处理器前面,ARM的架构往往就会有一个处理器和一个协处理器,处理器我们用A15,协处理器我们用A8,那么一般情况下,任务量要求比较大的时候,就是用A15去处理,在系统没有大的使用的时候,就不需要使用A15,所以我们就切换到A8的模式,就进行一个大小的切换。切换的好处就是越来越省电,所以这个模式的主要功能就是省电。据说这种方式能比一直使用主处理器省电百分之七十左右。

A系列关键技术点:

1,32位RISC处理器,有16个32位可见寄存器。

2,哈佛结构(不是普林斯顿结构)就像写程序的时候代码区和数据区如果是存在一起的就是普林斯顿结构,如果是分开为两个地址,就是哈佛结构,哈佛结构这种形式明显扩展性要好得多。(指令和数据分开存储)

3,Thumb-2指令支持。

4,VFP和NEON可选。

5,向后兼容

6 ,4GB虚拟地址空间和最小4GB物理地址(4GB寻址)

7,内存虚拟页大小4KB,64KB,1MBand16MB

8,大小端数据访问支持。

A8处理器结构图:

ARM体系结构常用术语解释

ARM体系结构常用术语解释

它会告诉我们它有很强大的RG缓存机制,各种各样的缓存,同时他在处理这个指令的时候是基于了我们说的三级流水。就是先取码,然后再译码,还有执行,那么执行完了过后,它的重点就在加载和存取方面,这个里面有很多各种各样的接口的定义,这些接口只是为了后面的芯片商所服务的。

VS A15处理器结构图:

ARM体系结构常用术语解释

这些都是一些逻辑图,相当于它的片上系统是怎么去设计的,我们只需要关心怎么去使用它。

下面我们就开始用它,那么要用到它,我们就需要一些工具,包括交叉编译念。现在我们先给大家介绍一些工具,这些工序据有些比较大有些较小。

1,QEMU:QEMU实际上就是一个虚拟机,是一个模拟器,而且是一个软件模拟器,它可以用来模拟PC硬件,它是一套由Fabrice Bellard所编写的模拟处理器的自由软件,它与Bochs,PearPC近似,但其具有某些后两者所不具备的特性,如高速度及跨平台的特性,经由kqemu这个开源的加速器。QEMU能模拟至接近真实电脑的速度。

2,BusyBox:它实际上就是用来做linux根文件系统的,简单的说BusyBox就好像是个大工具箱,它集成压缩了Linux的许多工具和命令,也包含了Android系统的自带的shell。我们知道在linux根文件系统下面有bin,sbin这些东西,当我们从零去做ROM的时候,我们要把bin里面的工具,全都从网站下载下来编好,然后放到相应的地方,这样子之后相当于把内核这块都编好之后,就把内核挂载上文件系统,就开始把整个文件夹结构全部读出来,但是这些文件夹结构内容应该要手动的去编写,这里面就有很多工具,要一个个的去编写就很麻烦,这就需要这个工具BusyBox,这个工具就很方便,能够针对不同的平台去自动的生成这里面的东西,这样整个根文件系统就建立成功了。

3,Scratchbox:其实也是一个交叉编译平台,是帮助嵌入式Linux跨平台编译工具的集合,其目的主要是使得嵌入式Linux应用程序开发更加容易,他也提供了完整的集成工具链以用来跨平台编译集成出一个Linux发布版。

4,U-Boot:是一个大名鼎鼎的开源,是遵循GPL条款的开放源码项目。

5,UEFI and Tianocore:UEFI称为统一可扩展部件接口,它的诞生是出于一个什么样的目的?

比如说现在出现的win8,他不希望人人都去装盗版,所以他就对你的硬件有了要求,会规定必须是什么体系结构,所以这就是一种统一的相当于硬件和操作系统适配的一种标准,也就是说它指定了装操作系统可以扩展哪些硬件部件这样一些接口,这样就限定了,在有的时候做ARM开发,硬件可能不是那么规范和标准,这样就会被限定,然后我们就可以通过这个工具来模拟符合它标准的硬件,然后绕过去能够把一些ARM的OS给装上去。

介绍和安装ARM软件工具链:

ARM体系结构常用术语解释

工具链就是一个集合工具链的作用过程是由C语言然后编译,包括汇编,然后编译成一个中间代码,然后中间这个目标代码在经过连接,包括集成的内库和相应的脚本连接成,可执行的镜像,这个就是它的一个工作过程。

在ARM体系里面其实推荐了两套工具链,一套是GNU Compiler开源的工具链,还有一套是ARM本身的工具链,也就是说ARM系统本身也有工具链。

GNU Toolchain:GNU工具链即可以用来开发内核也可以用来开发应用程序。

GNU就包括make,GCC,GDB,autotools等等。

怎么去安装?

ARM体系结构常用术语解释

Eabi:e就是嵌入式,a就是应用程序,b就是二进制,i就是接口,全称就是嵌入式应用程序二进制接口,所以它编译出来的就是嵌入式Linux应用程序的二进制文件。
ARM体系结构常用术语解释

来源:麦子学院
原文链接:
http://www.maiziedu.com/wiki/arm/noun/

围观 7
309

1.ARM中一些常见英文缩写解释

MSB:最高有效位;

LSB:最低有效位;

AHB:先进的高性能总线;

VPB:连接片内外设功能的VLSI外设总线;

EMC:外部存储器控制器;

MAM:存储器加速模块;

VIC:向量中断控制器;

SPI:全双工串行接口;

CAN:控制器局域网,一种串行通讯协议;

PWM:脉宽调制器;

ETM:嵌入式跟踪宏;

CPSR:当前程序状态寄存器;

SPSR:程序保护状态寄存器;

2.MAM 使用注意事项:

答:当改变 MAM 定时值时,必须先通过向 MAMCR 写入 0 来关闭 MAM,然后将新值写入 MAMTIM。最后,将需要的操作模式的对应值写入MAMCR,再次打开MAM。

对于低于 20MHz 的系统时钟,MAMTIM 设定为 001。对于 20MHz 到 40MHz 之间的系统时钟,建议将Flash访问时间设定为2cclk,而在高于40MHz的系统时钟下,建议使用3cclk。

3.VIC 使用注意事项

答:如果在片内RAM当中运行代码并且应用程序需要调用中断,那么必须将中断向量重新映射到Flash地址0x0。这样做是因为所有的异常向量都位于地址 0x0及以上。通过将寄存器MEMMAP(位于系统控制模块当中)配置为用户RAM模式来实现这一点。用户代码被连接以便使中断向量表装载到0x4000 0000。

4. ARM启动代码设计

答:ARM启动代码直接面对处理器内核和硬件控制器进行编程,一般使用汇编语言。启动代码一般包括:

中断向量表

初始化存储器系统

初始化堆栈初始化有特殊要求的端口、设备

初始化用户程序执行环境

改变处理器模式

呼叫主应用程序

5.IRQ 和 FIQ 之间的区别

答:IRQ和FIQ是ARM处理器的两种编程模式。IRQ是指中断模式,FIR是指快速中断模式。对于 FIQ 你必须尽快处理你的事情并离开这个模式。IRQ 可以被 FIQ 所中断,但 IRQ 不能中断 FIQ。为了使 FIQ 更快,所以这种模式有更多的影子寄存器。FIQ 不能调用 SWI(软件中断)。FIQ 还必须禁用中断。如果一个 FIQ 例程必须重新启用中断,则它太慢了,并应该是 IRQ 而不是 FIQ。

6.ARM处理器对异常中断的响应过程

答:ARM处理器对异常中断的响应过程如下所述:

保存处理器当前状态、中断屏蔽位以及各条件标志位;

设置当前程序状态寄存器CPSR中的相应位;

将寄存器lr_mode设置成返回地址;

将程序计数器值PC,设置成该异常中断的中断向量地址,跳转到相应异常中断处执行。

7.ARM指令与Thumb指令的区别

答:在ARM体系结构中,ARM指令集中的指令是32位的指令,其执行效率很高。对于存储系统数据总线为16位的应用系统,ARM体系提供了Thumb指令集。Thumb指令集是对ARM指令集的一个子集重新编码得到的,指令长度为16位。通常在处理器执行ARM程序时,称处理器处于ARM状态;当处理器执行Thumb程序时,称处理器处于Thumb状态。Thumb指令集并没有改变ARM体系地层的程序设计模型,只是在该模型上加上了一些限制条件。 Thumb指令集中的数据处理指令的操作数仍然为32位,指令寻址地址也是32位的。

8.什么是ATPCS

答:为了使单独编译的C语言程序和汇编程序之间能够相互调用,必须为子程序之间的调用规定一定的规则。ATPCS就是ARM程序和Thumb程序中子程序调用的基本规则。这些规则包括寄存器使用规则,数据栈的使用规则,参数的传递规则等。

9.ARM程序和Thumb程序混合使用的场合

答:通常,Thumb程序比ARM程序更加紧凑,而且对于内存为8位或16位的系统,使用Thumb程序效率更高。但是,在下面一些场合下,程序必须运行在ARM状态,这时就需要混合使用ARM和Thumb程序。

强调速度的场合,应该使用ARM程序;

有些功能只能由ARM程序完成。如:使用或者禁止异常中断;

当处理器进入异常中断处理程序时,程序状态切换到ARM状态,即在异常中断处理程序入口的一些指令是ARM指令,然后根据需要程序可以切换到Thumb状态,在异常中断程序返回前,程序再切换到ARM状态。

ARM处理器总是从ARM状态开始执行。因而,如果要在调试器中运行Thumb程序,必须为该Thumb程序添加一个ARM程序头,然后再切换到Thumb状态,执行Thumb程序。

10.ARM处理器运行模式

答:ARM微处理器支持7种运行模式,分别为:

用户模式(usr):ARM处理器正常的程序执行状态;

快速中断模式(fiq):用于高速数据传输或通道管理;

外部中断模式(irq):用于通用的中断处理;

管理模式(svc):操作系统使用的保护模式;

数据访问终止模式(abt):当数据或指令预取终止时进入该模式,用于虚拟存储及存储保护;

系统模式(sys):运行具有特权的操作系统任务;

未定义指令中止模式(und):当未定义指令执行时进入该模式,可用于支持硬件协处理器的软件仿真

11.ARM体系结构所支持的异常类型

答:ARM体系结构所支持的异常和具体含义如下(圈里面的数字表示优先级):

复位①:当处理器的复位电平有效时,产生复位异常,程序跳转到复位异常处执行(异常向量:0x0000,0000);

未定义指令⑥:当ARM处理器或协处理器遇到不能处理的指令时,产生为定义异常。可使用该异常机制进行软件仿真(异常向量:0x0000,0004);

软件中断⑥:有执行SWI指令产生,可用于用户模式下程序调用特权操作指令。可使用该异常机制实现系统功能调用(异常向量:0x0000,0008);

指令预取中止⑤:若处理器的预取指令的地址不存在,或该地址不允许当前指令访问,存储器会向处理器发出中止信号,当预取指令被执行时,才会产生指令预取中止异常(异常向量:0x0000,000C);

数据中止②:若处理器数据访问的指令的地址不存在,或该地址不允许当前指令访问,产生数据中止异常(异常向量:0x0000,0010);

IRQ④(外部中断请求):当处理器的外部中断请求引脚有效,且CPSR中的I位为0时,产生IRQ异常。系统的外设可以该异常请求中断服务(异常向量:0x0000,0018);

FIQ③(快速中断请求):当处理器的快速中断请求引脚有效,且CPSR中的F位为0时,产生FIQ异常(异常向量:0x0000,001C)。

说明:其中异常向量0x0000,0014为保留的异常向量。

12.ARM体系结构的存储器格式

答:ARM体系结构的存储器格式有如下两种:

大端格式:字数据的高字节存储在低地址中,字数据的低字节存放在高地址中;

小端格式:与大端存储格式相反,高地址存放数据的高字节,低地址存放数据的低字节。

13.ARM寄存器总结:

ARM有16个32位的寄存器(r0到r15)。

r15充当程序寄存器PC,r14(link register)存储子程序的返回地址,r13存储的是堆栈地址。

ARM有一个当前程序状态寄存器:CPSR。

一些寄存器(r13,r14)在异常发生时会产生新的instances,比如IRQ处理器模式,这时处理器使用r13_irq和r14_irq

ARM的子程序调用是很快的,因为子程序的返回地址不需要存放在堆栈中。

14.存储器重新映射(Remap)的原因:

使Flash存储器中的FIQ处理程序不必考虑因为重新映射所导致的存储器边界问题;

用来处理代码空间中段边界仲裁的SRAM和Boot Block向量的使用大大减少;

为超过单字转移指令范围的跳转提供空间来保存常量。

ARM中的重映射是指在程序执行过程中通过写某个功能寄存器位操作达到重新分配其存储器地址空间的映射。一个典型的应用就是应用程序存储在 Flash/ROM中,初始这些存储器地址是从0开始的,但这些存储器的读时间比SRAM/DRAM长,造成其内部执行频率不高,故一般在前面一段程序将代码搬移到SRAM/DRAM中去,然后重新映射存储器空间,将相应SRAM/DRAM映射到地址0,重新执行程序可达到高速运行的目的。

15.存储异常向量表中程序跳转使用LDR指令,而不使用B指令的原因:

LDR指令可以全地址范围跳转,而B指令只能在前后32MB范围内跳转;

芯片具有Remap功能。当向量表位于内部RAM或外部存储器中,用B指令不能跳转到正确的位置。

16.锁相环(PLL)注意要点:

PLL在芯片复位或进入掉电模式时被关闭并旁路,在掉电唤醒后不会自动恢复PLL的设定;

PLL只能通过软件使能;

PLL在激活后必须等待其锁定,然后才能连接;

PLL如果设置不当将会导致芯片的错误操作。

17.ARM7与ARM9的区别:

ARM7内核是0.9MIPS/MHz的三级流水线和冯&S226;诺伊曼结构;ARM9内核是五级流水线,提供1.1MIPS/MHz的哈佛结构。

ARM7没有MMU,ARM720T是MMU的;ARM9是有MMU的,ARM940T只有Memory protection unit.不是一个完整的MMU。

ARM7TDMI提供了非常好的性能——功耗比。它包含了Thumb指令集快速乘法指令和ICE调试技术的内核。ARM9的时钟频率比ARM7更高,采用哈佛结构区分了数据总线和指令总线。

18.VIC的基本操作如下:

答:设置IRQ/FIQ中断,若是IRQ中断则可以设置为向量中断并分配中断优先级,否则为非向量IRQ。然后可以设置中断允许,以及向量中断对应地址或非向量中断默认地址。当有中断后,若是IRQ中断,则可以读取向量地址寄存器,然后跳转到相应的代码。当要退出中断时,对向量地址寄存器写0,通知VIC 中断结束。当发生中断时,处理器将会切换处理器模式,同时相关的寄存器也将会映射。

19.使用外部中断注意

把某个引脚设置为外部中断功能后,该引脚为输入模式,由于没有内部上拉电阻,所以必须外接一个上拉电阻,确保引脚不被悬空;

除了引脚连接模块的设置,还需要设置VIC模块,才能产生外部中断,否则外部中断只能反映在EXTINT寄存器中;

要使器件进入掉电模式并通过外部中断唤醒,软件应该正确设置引脚的外部中断功能,再进入掉电模式。

20.UART0的基本操作方法

设置I/O连接到UART0;

设置串口波特率(U0DLM、U0DLL);

设置串口工作模式(U0LCR、U0FCR);

发送或接收数据(U0THR、U0RBR);

检查串口状态字或等待串口中断(U0LSR)。

21.I2C的基本操作方法

答:I2C主机基本操作方法:

设置I2C管脚连接;

设置I2C时钟速率(I2SCLH、I2SCLL);

设置为主机,并发送起始信号(I2CONSET的I2EN、STA位为1,AA位为0);

发送从机地址(I2DAT),控制I2CONSET发送;

判断总线状态(I2STAT),进行数据传输控制;

发送结束信号(I2CONSET)。

I2C从机基本操作方法:

设置I2C管脚连接;

设置自身的从机地址(I2ADR);

使能I2C(I2CONSET的I2EN、AA位为1);

判断SI位或等待I2C中断,等待主机操作;

判断总线状态I2STAT,进行数据传输控制。

22. PWM基本操作方法:

连接PWM功能管脚输出,即设置PINSEL0、PINSEL1;

设置PWM定时器的时钟分频值(PWMPR),得到所要的定时器时钟;

设置比较匹配控制(PWMMCR),并设置相应比较值(PWMMRx);

设置PWM输出方式并允许PWM输出(PWMPCR)及锁存使能控制(PWMLER);

设置PWMTCR,启动定时器,使能PWM;

运行过程中要更改比较值时,更改之后要设置锁存使能。

使用双边沿PWM输出时,建议使用PWM2、PWM4、PWM6;使用单边PWM输出时,在PWM周期开始时为高电平,匹配后为低电平,使用PWMMR0作为PWM周期控制,PWMMRx作为占空比控制。

来源:博客园 - 「大魔王」

围观 9
648

SWP和SWPB是ARM指令集中对存储单元的原子操作。即对存储单元的一次读和一次不可被切割。
SWP和SWPB分别完毕存储器和寄存器之间 一个字(32bit)和一个字节(8bit)的数据交换。

SWP指令主要是完毕ARM体系架构处理器的同步操作。在Linux操作系统中实现信号量的操作。可是此指令在ARMv6架构后就没有採用了,而是通过扩展的LDREX和STREX实现。本片文章主要介绍SWP的功能,对于LDREX和STREX以后再介绍。

SWP的指令格式例如以下:

SWP {}{B} Rd, Rm, [Rn]

当中Rd是目的寄存器,从存储器中读到的值存放于此寄存器中

Rm寄存器是操作数。会将此寄存器中的值存放于存储单元中

[Rn]是寄存器间接寻址,Rn保存的是某个存储单元的地址

如果[Rn]中存放的是信号量。当某程序要改动信号量时,则会调用SWP指令完毕对信号量的操作,即对这个存储单元的读和写是一个原子操作。不会被打断,命令的运行步骤例如以下图1所看到的:

ARM指令集—SWP指令

当多个程序要訪问他们共享的资源时,我们必需要做好同步机制以保证数据的安全。通常,共享的资源能够是一段共享内存或者是外部设备。訪问这些资源的能够使CPU、进程或者是线程。

为了完毕同步机制,会採用一个原子变量来保存资源的状态。

比例如以下图2所看到的,用一个二元信号量(0或者1)来实现共享资源的同步,当进程A 和 进程B都要訪问信号量Semaphore。

ARM指令集—SWP指令

对于A进程。先訪问到信号量Semaphore发现状态可用,应该立即会改动Semaphore的状态。告诉其它进程此资源正在被使用。可是可能因为时间片恰好用完,系统调度到进程B。

进程B訪问到信号量时发现状态也可用。于是改动Semaphore告诉其它进程此资源正在被使用,等到系统再次调度到进程A时,进程A却不知道进程B已改动了Semaphore而且使用了公共资源,于是接着上次未完毕的任务,開始改动Semaphore而且開始使用公共资源。因此。遇到这种情况的话,信号量形同虚设并没有起到同步的作用。

所以假设使用SWP指令,通过上面的介绍,SWP指令时完毕对存储单元的一次读和写的原子操作。就能够避免这种情况。

以下的汇编代码是通过SWP实现相互排斥的样例

EXPORT lock_mutex_swp
lock_mutex_swp PROC
LDR r2, =locked
SWP r1, r2, [r0] ; Swap R2 with location [R0], [R0] value placed in R1
CMP r1, r2 ; Check if memory value was ‘locked’
BEQ lock_mutex_swp ; If so, retry immediately
BX lr ; If not, lock successful, return
ENDP
EXPORT unlock_mutex_swp
unlock_mutex_swp
LDR r1, =unlocked
STR r1, [r0] ; Write value ‘unlocked’ to location [R0]
BX lr
ENDP

当然,除了上面的情况,还可能因为中断的产生导致读和写的操作被打断。

在一些任务比較简单的系统中,能够在关键的代码中利用禁止中断的方式来保证对数据操作的原子性,然而对于如今复杂的多任务操作系统,禁止中断的做法显然不是有效的解决方法。

所以SWP通过特殊的訪问方式,不须要禁止中断。可是这样也会延长中断的响应时间。随着处理器的高速发展,多核处理器已经显示出了强大的优势,同步的问题显得更加明显。如图3所看到的,一个系统由一个Cortex-A8和Cortex-M4组成。他们都会訪问一同一段存储空间。

ARM指令集—SWP指令

SWP指令在这样的模式下。就显得非常尴尬了,假设依旧採用原来的特殊訪问模式,可能会大大减少多核处理的性能。

所以从ARMv6架构以后。不再使用SWP指令实现同步的功能,而是添加了LDREX和STREX指令完毕相关的操作。

来源:博客园 - cynchanpin

围观 7
373

全新的MCU结合业内一流的低功耗、耐水、抗扰电容式触摸技术

随着物联网(IoT)终端的蓬勃发展,安全有时被许多设计人员抛之脑后,这增加了泄漏知识产权(IP)和敏感信息的风险。为了满足日益增长的安全需求,Microchip Technology Inc.(美国微芯科技公司)日前推出全新的SAM L10和SAM L11 MCU系列。欲了解更多信息,请访问www.microchip.com/SAML11

全新的MCU系列基于Arm® Cortex®-M23内核,SAM L11提供适用于Armv8-M的Arm TrustZone® , 这一可编程环境可以在认证库(certified libraries)、IP和应用代码之间提供硬件隔离。Microchip通过加入芯片级的抗干扰、安全启动和安全密钥存储技术实现稳健的安全性,结合TrustZone技术可以保护客户应用免受远程攻击和物理攻击。

两个MCU系列均提供业内最低的功效,同时具备电容式触摸功能以及一流的耐水性和抗扰性。在进行功耗基准测试时,SAM L10获得了ULPMark™ 405分的高分,超过由EEMBC®(嵌入式微处理器基准评测协会)认证的性能最接近的竞品200%。Microchip利用享有专利的picoPower®技术,在工作模式和所有休眠模式下提供行业领先的低功耗。

Microchip的MCU32业务部副总裁Rod Drake表示:“物联网终端通常要求低功耗和高安全性,但物联网节点的发展如此之快,以至于安全有时跟不上。SAM L11能提供客户在设计流程早期进行安全规划所需的功能。”

除了TrustZone技术之外,SAM L11的安全功能还包括支持高级加密标准(AES)、伽罗瓦计数器模式(GCM)和安全散列算法(SHA)的板载密码模块。具备篡改检测功能的安全启动和安全密钥存储技术建立了硬件信任根。它还提供用于安全固件升级的安全自举程序。Microchip与Trustonic(Microchip的安全设计合作伙伴计划成员)共同提供完善的安全解决方案框架,可简化安全措施的实施,让客户能够更快推出最终产品。Microchip还与Secure Thingz和Data I/O Corporation合作,为拥有可靠安全框架的SAM L11客户提供安全配置服务。

两个MCU系列均提供Microchip最新一代的外设触摸屏控制器(PTC),以实现电容式触摸功能。设计人员可以轻松添加触摸界面,在潮湿和噪声环境中提供流畅且高效的用户体验,同时保持低功耗。触摸界面让这些器件成为各种汽车、家电、医疗和消费类人机接口(HMI)应用的理想选择。

开发支持

SAM L10 和 SAM L11 Xplained Pro 评估工具包可用于入门级开发。所有SAM L10/L11 MCU均受Atmel Studio 7集成开发环境(IDE)、IAR Embedded Workbench、Arm Keil® MDK 和Atmel START(一款对外设和软件进行配置的免费在线工具,可加快开发)支持。START还支持用于配置和部署安全应用的TrustZone技术。电源调试器和数据分析工具可用于实时监控和分析电量消耗情况,并在运行过程中对耗能数据进行微调,满足应用要求。还可以使用Microchip的 QTouch® 模块库、2D 触摸表面库和QTouch 配置器简化触摸应用的开发。

供货

SAM L10和SAM L11器件目前已投入量产,提供各种引脚数量和封装选择。

  •   SAM L10系列器件10000件起售。
  •   SAM L11系列器件10000件起售。
  •   SAM L10 和SAM L11 Xplained Pro 评估工具包已开始发售(部件编号分别为DM320204和DM320205 )。

如需了解详细信息,请联系Microchip销售代表或者全球授权分销商,也可以访问Microchip网站。如果需要购买文中提及的产品,请访问Microchip的全方位服务渠道microchipDIRECT,也可以联系Microchip的授权分销合作伙伴。

围观 7
389

单片机的特点:

(1) 受集成度限制,片内存储器容量较小,一般内ROM:8KB以下;
(2) 内RAM:256KB以内。
(3) 可靠性高
(4) 易扩展
(5) 控制功能强
(6) 易于开发

ARM的特点:

(1)自带廉价的程序存储器(FLASH)和非易失的数据存储器(EEPROM)。这些存储器可多次电擦写,使程序开发实验更加方便,工作更可靠。

(2)高速度,低功耗。在和M51单片机外接相同晶振条件下,AVR单片机的工作速度是M51单片机的30-40倍;并且增加了休眠功能及CMOS技术,使其功耗远低于M51单片机。

(3) 工业级产品。具有大电流输出可直接驱动SSR和继电器,有看门狗定时器,防止程序走飞,从而提高了产品的抗干扰能力。

(4) 超功能精简指令,具有32个通用工作寄存器,相当于M51单片机中32个累加器!从而克服了单一累加器工作的瓶颈效应。

(5)程序下载方便。AVR单片机即可并行下载也可串行下载,无需昂贵的编程器。此外,还可以在线下载!也就是说可以直接在电路板上进行程序修改和烧录。

(6) 具有模拟比较器、脉宽调制器、模数转换功能。使得工业控制中的模拟信号处理更为简单方便。

(7) 并行口、定时计数器、中断系统等单片机内部重要资源的功能进行了大幅度提升,使之更适合工业生产过程的实时控制。

(8) 其时钟频率既可外接也可使用单片机内部自带的振荡器,其频率可在1MHz-8MHz内设置,使得硬件开发制作更为简洁。

(9)强大的通讯功能,内置了同步串行接口SPI、通用串行接口UAST、两线串行总线接口TWI(I2C ),使网络控制、数据传送更为方便。

(10)超级保密功能,应用程序可采用多重保护锁功能。可低价快速完成厂家产品商品化等等。 除上述特点外“零外设”也是AVR嵌入式单片机的重要特征。由于该芯片已内置了程序存储器、晶振并增加了在线汇编功能。

所以AVR单片机芯片接上直流电源,下载个程序就可以独立工作。无需附加外部设备,无需使用昂贵的编程器和仿真装置。这给我们学习和开发带来了便利条件。

FPGA的特点:

(1)采用FPGA设计ASIC电路(专用集成电路),用户不需要投片生产,就能得到合用的芯片。 
 
(2)FPGA可做其它全定制或半定制ASIC电路的中试样片。  

(3)FPGA内部有丰富的触发器和I/O引脚。  

(4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。 

(5)FPGA采用高速CMOS工艺,功耗低,可以与CMOS、TTL电平兼容。  

可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。 
 
FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。  

加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。

嵌入式系统的特点:

(1)系统内核小
由于嵌入式系统一般是应用于小型电子装置的,系统资源相对有限,所以内核较之传统的操作系统要小得多。比如Enea公司的OSE分布式系统,内核只有5K,而Windows的内核?简直没有可比性。  

(2)专用性强
嵌入式系统的个性化很强,其中的软件系统和硬件的结合非常 紧密,一般要针对硬件进行系统的移植,即使在同一品牌、同一系列的产品中也 需要根据系统硬件的变化和增减不断进行修改。同时针对不同的任务,往往需要 对系统进行较大更改,程序的编译下载要和系统相结合,这种修改和通用软件的 “升级”是完全两个概念。  

(3)系统精简
嵌入式系统一般没有系统软件和应用软件的明显区分,不要求 其功能设计及实现上过于复杂,这样一方面利于控制系统成本,同时也利于实现系统安全。 

(4)高实时性的系统软件(OS)是嵌入式软件的基本要求。而且软件要求固态存储,以提高速度;软件代码要求高质量和高可靠性。  

(5)嵌入式软件开发要想走向标准化,就必须使用多任务的操作系统
嵌入式系统的应用程序可以没有操作系统直接在芯片上运行;但是为了合理地调度多任 务、利用系统资源、系统函数以及和专家库函数接口,用户必须自行选配RTOS (Real-Time Operating System)开发平台,这样才能保证程序执行的实时性、 可靠性,并减少开发时间,保障软件质量。  

(6)嵌入式系统开发需要开发工具和环境。
由于其本身不具备自举开发能力, 即使设计完成以后用户通常也是不能对其中的程序功能进行修改的,必须有一套 开发工具和环境才能进行开发,这些工具和环境一般是基于通用计算机上的软硬 件设备以及各种逻辑分析仪、混合信号示波器等。开发时往往有主机和目标机的 概念,主机用于程序的开发,目标机作为最后的执行机,开发时需要交替结合进行。

转自:小丑l

围观 30
390

本文主要介绍的是ARM里的RAM和SDRAM有什么区别,首先介绍了RAM的类别及特点,其次对SDRAM做了详细阐述,最后介绍了RAM和SDRAM的区别是什么。

RAM介绍

Random-Access Memory(随机存取存储器),在计算机的组成结构中,有一个很重要的部分,就是存储器。存储器是用来存储程序和数据的部件,对于计算机来说,有了存储器,才有记忆功能,才能保证正常工作。存储器的种类很多,按其用途可分为主存储器和辅助存储器[或者内存储器和外存储器],主存储器简称内存,内存在电脑中起着举足轻重的作用,一般采用半导体存储单元。因为RAM是内存其中最重要的存储器,所以通常我们直接称之为内存。内存就是存储程序以及数据的地方,比如当我们在使用WPS处理文稿时,当你在键盘上敲入字符时,它就被存入内存中,当你选择存盘时,内存中的数据才会被存入硬(磁)盘。

RAM就是既可以从中读取数据,也可以写入数据。当机器电源关闭时,存于其中的数据就会丢失。我们通常购买或升级的内存条就是用作电脑的内存,内存条(SIMM)就是将RAM集成块集中在一起的一小块电路板,它插在计算机中的内存插槽上,以减少RAM集成块占用的空间。目前市场上常见的内存条有 128M/条、256M/条、512M/条等。

RAM的类别

根据存储单元的工作原理不同, RAM分为静态RAM和动态RAM。
  
静态随机存储器(SRAM)

静态存储单元是在静态触发器的基础上附加门控管而构成的。因此,它是靠触发器的自保功能存储数据的。

动态随机存储器(DRAM)

动态RAM的存储矩阵由动态MOS存储单元组成。动态MOS存储单元利用MOS管的栅极电容来存储信息,但由于栅极电容的容量很小,而漏电流又不可能绝对等于0,所以电荷保存的时间有限。为了避免存储信息的丢失,必须定时地给电容补充漏掉的电荷。通常把这种操作称为“刷新”或“再生”,因此DRAM内部要有刷新控制电路,其操作也比静态RAM复杂。尽管如此,由于DRAM存储单元的结构能做得非常简单,所用元件少,功耗低,已成为大容量RAM的主流产品。

RAM的特点

1、随机存取

所谓“随机存取”,指的是当存储器中的数据被读取或写入时,所需要的时间与这段信息所在的位置或所写入的位置无关。相对的,读取或写入顺序访问(SequenTIal Access)存储设备中的信息时,其所需要的时间与位置就会有关系。它主要用来存放操作系统、各种应用程序、数据等。

2、易失性

当电源关闭时RAM不能保留数据。如果需要保存数据,就必须把它们写入一个长期的存储设备中(例如硬盘)。RAM和ROM相比,两者的最大区别是RAM在断电以后保存在上面的数据会自动消失,而ROM不会自动消失,可以长时间断电保存。

3、对静电敏感

正如其他精细的集成电路,随机存取存储器对环境的静电荷非常敏感。静电会干扰存储器内电容器的电荷,引致数据流失,甚至烧坏电路。故此触碰随机存取存储器前,应先用手触摸金属接地。

4、访问速度

现代的随机存取存储器几乎是所有访问设备中写入和读取速度最快的,存取延迟和其他涉及机械运作的存储设备相比,也显得微不足道。

5、需要刷新(再生)

现代的随机存取存储器依赖电容器存储数据。电容器充满电后代表1(二进制),未充电的代表0。由于电容器或多或少有漏电的情形,若不作特别处理,数据会渐渐随时间流失。刷新是指定期读取电容器的状态,然后按照原来的状态重新为电容器充电,弥补流失了的电荷。需要刷新正好解释了随机存取存储器的易失性。

SDRAM介绍

SDRAM(Synchronous Dynamic Random Access Memory)同步动态随机存取存储器,同步是指Memory工作需要步时钟,内部的命令的发送与数据的传输都以它为基准;动态是指存储阵列需要不断的刷新来保证数据不丢失;随机是指数据不是线性依次存储,而是由指定地址进行数据读写。目前的168线64bit带宽内存基本上都采用SDRAM芯片,工作电压3.3V电压,存取速度高达7.5ns,而EDO内存最快为15ns。并将RAM与CPU以相同时钟频率控制,使RAM与CPU外频同步,取消等待时间,所以其传输速率比EDO DRAM更快。

SDRAM从发展到现在已经经历了四代,分别是:第一代SDR SDRAM,第二代DDR SDRAM,第三代DDR2 SDRAM,第四代DDR3 SDRAM.

第一代与第二代SDRAM均采用单端(Single-Ended)时钟信号,第三代与第四代由于工作频率比较快,所以采用可降低干扰的差分时钟信号作为同步时钟。

SDR SDRAM的时钟频率就是数据存储的频率,第一代内存用时钟频率命名,如pc100,pc133则表明时钟信号为100或133MHz,数据读写速率也为100或133MHz。

之后的第二,三,四代DDR(Double Data Rate)内存则采用数据读写速率作为命名标准,并且在前面加上表示其DDR代数的符号,PC-即DDR,PC2=DDR2,PC3=DDR3。如PC2700是DDR333,其工作频率是333/2=166MHz,2700表示带宽为2.7G。

DDR的读写频率从DDR200到DDR400,DDR2从DDR2-400到DDR2-800,DDR3从DDR3-800到DDR3-1666。

很多人将SDRAM错误的理解为第一代也就是 SDR SDRAM,并且作为名词解释,皆属误导,SDR不等于SDRAM。

  Pin:模组或芯片与外部电路电路连接用的金属引脚,而模组的pin就是常说的“金手指”。
  SIMM:Sigle In-line Memory Module,单列内存模组。内存模组就是我们常说的内存条,所谓单列是指模组电路板与主板插槽的接口只有一列引脚(虽然两侧都有金手指)。
  DIMM:Double In-line Memory Module,双列内存模组。是我们常见的模组类型,所谓双列是指模组电路板与主板插槽的接口有两列引脚,模组电路板两侧的金手指对应一列引脚。
  RDIMM:registered DIMM,带寄存器的双线内存模块
  SO-DIMM:笔记本常用的内存模组。
  工作电压:
  SDR:3.3V
  DDR:2.5V
  DDR2:1.8V
  DDR3:1.5V

ARM里的RAM和SDRAM有什么区别

RAM包括SRAM和DRAM,前者是静态随机存储器,主要是依靠触发器存储数据,无需刷新,而后者是动态随机存储器,依靠MOSFET中栅电容存储数据,需不断刷新以补充释放的电荷。由于单管就可以实现数据存储,集成度可以做到更高,功耗也更低,更为主流。需要注意的是由于刷新牵涉电容的充放电过程,DRAM的存取速度不及SRAM。

至于SDRAM,为同步动态随机存储器,属于DRAM的一种,其工作过程需要同步时钟的配合,因此可以不考虑路线延时不同的影响,避免不定态。普通的DRAM属于异步传输,存取数据时,必须等待若干个时钟以后才进行操作(考虑不定态),因为会花费较多的时间,影响了数据的传输速率。随着时钟频率的不断增高,这个瓶颈的限制就会越来越明显,SDRAM的优势也就更能体现出来。

本文转载自:电子产品世界

围观 10
380

一、什么是AMBA总线

AMBA总线规范是ARM公司提出的总线规范,被大多数SoC设计采用,它规定了AHB (Advanced High-performance Bus)、ASB (Advanced System Bus)、APB (Advanced Peripheral Bus)。AHB用于高性能、高时钟频率的系统结构,典型的应用如ARM核与系统内部的高速RAM、NAND FLASH、DMA、Bridge的连接。APB用于连接外部设备,对性能要求不高,而考虑低功耗问题。ASB是AHB的一种替代方案。

二、AHB

AHB总线的强大之处在于它可以将微控制器(CPU)、高带宽的片上RAM、高带宽的外部存储器接口、DMA总线master、各种拥有AHB接口的控制器等等连接起来构成一个独立的完整的SOC系统,不仅如此,还可以通过AHB-APB桥来连接APB总线系统。AHB可以成为一个完整独立的SOC芯片的骨架。

下图是一个典型的AHB系统总线的结构示意图

AMBA总线协议AHB、APB

三、APB

主要应用在低带宽的外设上,如UART、 I2C,它的架构不像AHB总线是多主设备的架构,APB总线的唯一主设备是APB桥(与AXI或APB相连),因此不需要仲裁一些Request/grant信号。APB的协议也十分简单,甚至不是流水的操作,固定两个时钟周期完成一次读或写的操作。其特性包括:两个时钟周期传输,无需等待周期和回应信号,控制逻辑简单,只有四个控制信号。APB上的传输可用如图所示的状态图来说明。

1、系统初始化为IDLE状态,此时没有传输操作,也没有选中任何从模块。

2、当有传输要进行时,PSELx=1,,PENABLE=0,系统进入SETUP状态,并只会在SETUP状态停留一个周期。当PCLK的下一个上升沿到来时,系统进入ENABLE状态。

3、系统进入ENABLE状态时,维持之前在SETUP状态的PADDR、PSEL、PWRITE不变,并将PENABLE置为1。传输也只会在ENABLE状态维持一个周期,在经过SETUP与ENABLE状态之后就已完成。之后如果没有传输要进行,就进入IDLE状态等待;如果有连续的传输,则进入SETUP状态。

来源:feipeng8848

围观 9
351

页面

订阅 RSS - ARM