您的位置 首页 电路

各品牌ARM SoC技能比较剖析

本文将介绍三个常见的ARMSoC,包含ARM7和ARM9,并试着分析与比较它们的性能。ARM7族群低耗电量和低成本是ARM7的优点。不过,ARM7的最大执行速率不到100MHz,因此,在应

  本文将介绍三个常见的ARM SoC,包括ARM7和ARM9,并试着剖析与比较它们的功用。

  ARM7族群

  低耗电量和低本钱是ARM7的长处。不过,ARM7的最大履行速率不到100 MHz,因而,在运用上,它和8051之类的微操控器(MCU)相似,但在功用上,ARM7一般优于MCU。

  因为一般的MCU都是8-bit,并且不支撑操作体系(O.S.),所以运用MCU开发运用产品的本钱一般会比运用ARM7来得廉价。可是,就简略的运用而言,ARM7也能够不需求操作体系,只运用朴实的韧体,照样能够到达和MCU相同或优于MCU的效能。

  TI的TMS470

  它的CPU中心是ARM7TDMI,16/32-bit RISC。其正常形式的体系时脉是28 MHz、管线形式是48 MHz。内含128K Bytes的FLASH和8K Bytes的SRAM。其它电路单元还包括:

  零脚位锁相回路(ZPLL)时脉模块。

  模仿的看门狗定时器(analog watchdog timer;AWD)。

  实时中止模块(real-time interrupt;RTI)。

  两个”序列外围接口”(SPI)模块。

  两个”序列通讯接口”(SCI)模块。

  规范的”操控局域网络”(control area network;CAN)操控器(SCC)。

  第二类序列界面(C2SIa)。

  10-bit、16个输入信道多重缓冲”模仿数字转化器”(MibADC)。

  高阶定时器(high-end timer;HET),操控16个输收支端口(I/O)。

  外部时脉预分频器(external clock prescale;ECP)。

  共49个I/O脚位,1个只能输入的脚位。

  TMS470的体系功用有:

  地址译码。

  维护内存。

  监督内存和各外围的总线。

  重置(reset)和撤销(abort)的破例办理。

  一切内部中止源的排序(prioritization)。

  设备的时脉操控。

  平行的特性记号(signature)剖析(PSA):是一种主动检测毛病的功用,能够运用多个输入的特性记号来检测数据流。这个特性记号能够用来断定处理器是处于好的或坏的状况。

  上述的ZPLL、HET、MibADC是TMS470的特别功用。ZPLL包括了一个PLL、一个时脉监督(clock-monitor)电路、一个时脉致能(clock-enable)电路和一个预分频器(预分频值是从1~8)。ZPLL的功用是将外部的参阅电压乘以预分频值,以获得较高的频率,供应TMS470内部运用。ZPLL供给ACLK给TMS470的体系模块,之后,体系模块会发生体系时脉(SYSCLK)、实时中止时脉(RTICLK)、CPU时脉(MCLK)、外围接口时脉(ICLK)。所谓”零脚位”是指ZPLL没有供给外部滤波器的接脚,亦即不需求衔接外部滤波器的意思。

  许多不熟悉TI芯片的硬件工程师,常常不知道要如何将石英振荡器(crystal oscillator)或外部的时脉信号衔接到TI芯片上。其实,TMS470内部现已具有一个振荡器电路(在ZPLL内),但若要发动它,外部需求衔接一个4MHz~20 MHz的石英或谐振器(resonator),并且要在OSCIN和OSCOUT脚位之间衔接负载电容,如图2(a)所示。这个负载电容的巨细应该由石英振荡器的供货商供给,假如施予不正确的载电容值,或许无法使TMS470正常开机和作业。

  此外,假如不运用TMS470内部的振荡器,而改用外部的参阅时脉或外部的振荡器输出信号,此刻要将1.8V的时脉信号衔接到OSCIN脚位,并将OSCOUT脚位坚持开路的状况,如附图2(b)所示。当然,不同厂牌的芯片的时脉来历之衔接方法不尽相同,硬件工程师事先应细心查阅它们的技能手册。

  HET是一种先进的智能型定时器,它为实时的运用供给准确的计时功用。此定时器是由软件操控的,运用精简的指令集、特别的微电路架构、I/O端口。它能够运用于数据比较、收集,或当成GPIO,特别适用于对多个传感器(sensor)的输入数据做比较,或输出杂乱的和准确的时刻脉冲(如:PWM脉冲)来驱动起动器(actuator)。

  HET的周边具有”XOR—共享”的功用,此功用能够让两相邻的HET通道被XOR在一起,和HET的规范输出脉冲比较,这能够输出更小的脉冲信号。

  为了让运用者可认为FLASH、RAM、HET RAM寻址,TMS470有供给“内存挑选”(memory selection)的功用。每一个“内存挑选”具有它自己的“内存根本地址缓存器(memory base address register)”—MFBAHRx和MFBALRx(别离是高位和低位元),用来界说各个内存区块的开始(根本)地址、区块巨细和维护方法。每一个“内存挑选”的根本地址是透过缓存器来设定的,它们应该要契合附图3中的映像地址之鸿沟值—有必要是区块巨细的整数倍。图4是TMS470的“内存挑选”的分配景象。

  MibADC承受一个模仿信号,并将它转化成一个10-bit的数字信号。MibADC具有两个形式:相容vs.缓冲形式。在兼容形式中,TMS470的“程序模型”(programmer‘s model)和TMS470的ADC模块兼容,并且MibADC的数字输出是贮存在“数字输出缓存器”(digital result register)中;“程序模型”包括:缓存器、寻址形式(addressing mode)和中止。兼容形式能让ADC的程序规划作业变得比较简单,因为只需直接读取数字输出缓存器即可获得转化后的数字数据。在缓冲形式中,数字元输出缓存器被3个FIFO缓冲存储器替代—别离表明不同的转化群组(事情、群组1、群组2)。在兼容形式中,MibADC的FIFO是被“中止服务例程(ISR)”读取。

  Philips的LPC2214

  它的CPU中心是16/32-bit ARM7TDMI-S,S是“可组成”(synthesizable)的意思,可让SoC规划业者能将ARM7TDMI中心快速地和灵敏地与其它IP组成。LPC2214的首要特性如下:

  内建有256 Kbytes的FLASH、16 Kbytes的SRAM,作业速率60 MHz。128-bit的“内存加快模块”(memory accelerator module;MAM),能使CPU快速攫取到(prefetch)下一个ARM指令,因而,履行速率能够到达60 MHz。

  透过芯片内的开机加载软件(boot loader),能够到达“体系内编程”(In-System Programming;ISP)和“运用中编程” (In-Application Programming;IAP)的功用。

  所谓”体系内编程”是指运用JTAG和软件,能够在很短的时刻内(约30秒~40秒),将运用者体系程序写入FLASH中,或铲除FLASH的一切内容;在这进程中,并不需求从主机板中将处理器或FLASH撤除,因而能够节约本钱和时刻。这有利于产品的开发;或能让技能人员到客户端更新软件或参数,且不需求拆机壳大翻修。现在大多数的MCU、SoC、DSP、FPGA/CPLD都有供给相似的东西和功用。

  所谓“运用中编程”是指运用两组FLASH,能够在长途将韧体版别晋级。当将第一组FLASH的程序代码被铲除或被从头写入时,处理器运用第二组FLASH的程序代码来履行。当第一组FLASH的写入作业完结之后,体系能够立刻切换去履行第一组FLASH里边的程序代码。这个功用对网络通讯设备而言,是很重要的,因为当韧体版别晋级时,这些设备的操作体系是不能中止的。

  支撑EmbeddedICE-RT和Embedded Trace接口,透过RealMonitor软件能够进行实时除错。

  8个通道的10-bit ADC,转化时刻小于2.44μs。

  2个32-bit定时器(4个收集信道和4个比较信道),1个PWM单元(6个输出)、1个实不时脉发生器(real time clock)、1个看门狗定时器。

  多种序列接口,这包括:2个UART、1个快速I2C(400 Kbps)、2个SPI。

  1个向量式中止操控器(可设定中止的优先级和中止向量的地址)。

  可设定的外部内存接口,最多可设定4个内存排组(bank),每排最长16M-bit和8/16/32-bit的数据宽度(因而,支撑的最大内存空间是64 MBytes)。

  最多112个GPIO脚位(5V)。9个外部中止脚位(边际或水平触发)。

  内建有PLL,支撑的最大CPU时脉为60 MHz。

  内建有石英振荡器,作业频率规模是1 MHz~30 MHz。

  两种低功率形式:搁置(Idle)和功率下降(Power-down)。

  透过外部中止,能够将处于“功率下降形式”的处理器唤醒。

  为了使功率的运用能够到达最佳化,能够敞开(enable)或封闭(disable)单个的周边功用。

  LPC2214也和TMS470相同有支撑ADC的功用,因而,它们都很合适用来开发数据收集用处的设备,例如:条形码扫描机等。不过,TMS470的MibADC能够支撑16个通道,但LPC2214只支撑8个通道。

  其实,LPC2214的PWM的运作原理和定时器相同。定时器是按照7个比较缓存器(match register)来核算外围设备的时脉周期数目,并发生中止;或当定时器的计数数目到达特定值时,体系就会去履行指定的作业。因为它能够别离操控上升缘和下降缘的方位,所以运用较广。例如:多相(multi-phase)马达的操控一般需求3个不重迭的(non-overlapped)PWM输出,别离操控3个脉冲宽度和方位。7个比较缓存器能够供给最多6个单边(single edge)操控的,或3个双方(double edge)操控的PWM输出脉冲。

  LPC2214的内存映像(图4)是固定的,在从头映像时,不需求再规划其它杂乱的程序代码,以便在不同的地址区块履行。其间,CPU中止向量能够被从头映像,好让中止向量能贮存于芯片内的FLASH中(默认值为0x00000000),或贮存于芯片内的SRAM中。藉由设定MEMMAP缓存器的值,就能够进行从头映射,从头映射完结后,开机码区块(boot block)将被搬移(relocate)至芯片内存储器映像的最上方。

  LPC2000系列的SoC都具有下列三种作业形式或开机状况:

  开机加载形式:被硬件重置发动,之后,开机加载程序会被履行。开机码区块里的中止向量会被映像至内存映像(FLASH)的最下方,以便于在开机加载进程,能够处理破例和中止请求。

  运用者FLASH形式:当开机加载程序发现FLASH里有运用者程序存在时,并且开机加载程序不需求再履行时(没有被强制履行),就进入此形式。(这很像PC的BIOS开机进程,若一向按F1或DEL键,就会进入BIOS形式;若不按此键,则操作体系会正常运作。)在此形式中,中止向量不会被映射,依然坐落FLASH的最下方。

  运用者RAM形式:被运用者程序发动。中止向量被从头映射至SRAM的最下方。

  ARM9族群

  ARM9大约能够到达180MHz~200 MHz的作业速率。因而,它能驱动的周边设备比ARM7多,运用规模也比较广。下面举Atmel的AT91RM9200来阐明。

  Atmel的AT91RM9200

  它的CPU中心是16/32-bit的ARM920T,其首要功用简述如下:

  内建有16 Kbytes的SRAM和128 Kbytes的ROM。

  外部总线接口(External Bus Interface;EBI):能够支撑SDRAM、SRAM、“暴量传输的(burst)”FLASH(亦即NOR FLASH)、能直接(glueless)和CompactFlash、SmartMedia、NAND FLASH衔接。

  7个外部中止来历,1个快速中止来历。

  4个32-bit可程序I/O操控器,122个可程序I/O脚位,每个I/O脚位具有输入变化中止和”开路泄极”(open-drain)的功用。“开路泄极”是指在芯片内部的MOS FET输出电路上的泄极没有衔接任何组件(电阻)。一般,它能够用来驱动高电流或高电压的负载;或者说,多个外部设备能够和此单一线路做双向通讯。

  具有20个信道的周边设备操控器(DMA)。

  4个可程序外部时脉信号。

  内建2个振荡器,以及2个PLL。

  软件操控的功率最佳化功用。

  实不时脉发生器具有警报中止功用。

  中止操控器具有8个不同等级的优先级。能单个屏蔽的向量式中止来历,可抑制寄生信号对中止信号的搅扰。

  支撑以太MAC 10/100 Base-T、MII或RMII,整合了28-byte的FIFO和专属的DMA传收通道。

  支撑USB 2.0(12 Mbps)主机端口(host port)和设备端口(device port)。主机端口有整合FIFO和专属的DMA。

  多媒体记忆卡接口(multimedia card interface;MCI):支撑主动的通讯协议操控、和主动化的数据快速传输;与MMC和SD规范兼容,最多可支撑2个SD记忆卡。

  3个同步的序列操控器(SSC):每个传送器和接纳器都具有独立的时脉和讯包同步信号。支撑I2S模仿接口,选用分时多任务技能。

  4个万用同步/异步接纳传送器(USART):可支撑RS485、IrDA、调制解调器(modem)、ISO 7816的T0/T1 Smart Card。

  主从式序列外围接口(SPI):8到16-bit的可程序数据长度,能够挑选4个外部外围芯片。

  2组3-通道、16-bit的定时器/计数器(TC):3个外部输入时脉、每个通道具有2个多用处I/O脚位。能够发生双PWM信号。

  双线路界面(two-wire interface;TWI):支撑主控形式(master mode),支撑Atmel一切的双线路EEPROM。

  一切数字脚位都支撑IEEE 1149.1 JTAG鸿沟扫描。

  AT91RM9200算是功用十分强壮的SoC,它能够用来开发通讯、贮存、操控等产品。因为它的功用许多,所以本文无法逐项具体阐明,在此仅介绍它的USB 2.0主机端口。

  它的USB 2.0主机端口支撑“开放式主机操控器接口”(Open Host Controller Interface;OHCI) v1.0规范,以及USB v2.0全速(12 Mbps)和低速(1.5 Mbps)规范的信讯协议。它整合了1个“根部集线器”(root hub)和下流的2个USB传收器。规范的OHCI USB通讯仓库驱动程序能够轻易地移植到此架构中,不需求顾忌硬件的兼容问题;能够履行现有悉数的USB类别驱动程序,这表明一切规范的USB类别设备(class device)都能被主动侦测,让运用者运用。图5是其内部架构图。

  在主机操控器和主机操控器驱动程序之间,有两个通讯信道。第一个信道运用主机操控器内部的作业缓存器组,这个信道的通讯目标(目的地)便是主机操控器。这组缓存器包括了操控、状况、串行指针(list pointer)缓存器。它们都被映像至体系总线(ASB)的映像区域内。其间有一个目标是指向处理器的地址空间—称为“主机操控器通讯区域”(Host Controller Communication Area;HCCA)。HCCA正是第二个通讯信道。在此信道内,主机操控器是通讯主控(主导)者。HCCA包括一些开始目标(head pointer),别离指向中止形式的“端点描绘者”(Endpoint Descriptor)串行、已处理完毕的行列(done queue),和“讯框开始”(start-of-frame;SOF)所代表的状况信息。

  此接口的根本建构区块包括:端点描绘者(ED)和传输描绘者(Transfer Descriptor;TD)。主机操控器对体系内的每一个端点各异分配一个ED,TD行列连接至特定的ED上。

  虽然有了硬件的USB 2.0主机端口,可是USB的软件驱动程序依然是不可或缺的。图7是它的USB驱动程序架构。USB的数据处理作业是透过下列的通讯层完结的:

  主机操控器硬件和序列引擎(serial engine):在总线上,传送和接纳USB数据。

  主机操控器驱动程序:驱动主机操控器硬件和处理USB通讯协议。

  USB总线驱动程序和集线器驱动程序:处理USB指令和“罗列”(enumeration)。供给一个硬件的独立接口。

  迷你驱动程序(mini driver):处理USB设备特有的指令。不同厂牌的USB设备或许具有不同功用的特别指令。

  类别驱动程序:处理规范的设备及其指令。某一规范类别的USB设备之类别驱动程序都具有一起的特性,或相似的程序代码和逻辑;例如:人机接口设备(HID)的驱动程序。

  功用比较剖析

  现在在国外市场上TMS470、LPC2214、AT91RM9200等ARM SoC很遭到欢迎。当然,还有其它厂牌的ARM SoC也很受欢迎,比如:Samsung、Analog等。虽然在价格上它们不见得是最廉价的,可是因为它们的功用优异、简单运用,所以具有许多忠诚的用户。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/dianlu/203155.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部