当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]本文将介绍三个常见的ARM SoC,包含ARM7和ARM9,并试着分析与比较它们的性能。ARM7族群低耗电量和低成本是ARM7的优点。不过,ARM7的最大执行速率不到100 MHz,因此,在应用

本文将介绍三个常见的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都有提供类似的工具和功能。[!--empirenews.page--]

所谓“应用中编程”是指利用两组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主机端口。[!--empirenews.page--]

它的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等。虽然在价格上它们不见得是最便宜的,但是由于它们的性能优异、容易应用,所以拥有许多忠实的用户。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

近日,Arm推出了Arm® Ethos™-U85神经网络处理器(NPU)和Arm Corstone™-320物联网参考设计平台,旨在满足海量的数据处理和大规模计算,加速推进边缘AI的发展进程。

关键字: ARM

为了赶超云计算市场上的竞争对手,谷歌正试图通过定制的Arm服务器芯片降低云计算服务成本。

关键字: 谷歌 ARM 定制芯片

嵌入式开发作为一个融合了计算机软硬件和系统工程的综合性领域,其成功与否往往取决于三个核心要素的有效整合与协调。这三个要素分别是:硬件平台的选择与设计、软件开发及其优化、以及系统级的设计与集成。深入理解并熟练掌握这三个方面...

关键字: 嵌入式开发 ARM

随着汽车软件数量爆发式的增长,整个行业都需要重新思考汽车产品的开发流程。为此,Arm推出了丰富的硬件IP、新的系统IP,以及全新的汽车计算与计算子系统产品路线图,旨在为各种汽车应用实现性能、功能安全、可扩展等方面的支持。

关键字: ARM 汽车电子

知名移动芯片设计公司ARM最近迈出重要一步,它正式推出汽车芯片设计。ARM推出的芯片设计方案名叫Neoverse,随同芯片一起推出的还有面向汽车制造商、汽车供应商的新系统。

关键字: ARM 汽车芯片 芯片

随着通用人工智能的发展,数据中心的计算需求逐步提高。针对多模态数据、大模型的推理和训练需要更高的算力支持,而随着算力提升与之而来的还需更关注在功耗方面的优化。对于头部云计算和服务厂商而言,针对专门用例提高每瓦性能变得至关...

关键字: ARM 服务器 AI Neoverse CSS

一直以来,riscv架构都是大家的关注焦点之一。因此针对大家的兴趣点所在,小编将为大家带来riscv架构的相关介绍,详细内容请看下文。

关键字: riscv ARM riscv架构

嵌入式处理器是一种特殊的计算机处理器,它被设计用于嵌入到各种设备和系统中,以实现特定的功能。由于其低功耗、高性能和可靠性等特点,嵌入式处理器在许多领域都有广泛的应用,如汽车电子、工业控制、医疗设备等。本文将对嵌入式处理器...

关键字: 嵌入式处理器 嵌入式系统

最新消息报道,知情人士透露Arm近日裁掉了中国70多名软件工程师,并会将部分职位转移到中国以外的地区。Arm通过“全球服务”部门已经将支持其中国客户的工作外包给安谋科技,该部门曾经拥有约200名员工。

关键字: ARM 裁员

凭借着在个人计算机领域的广泛应用打下的坚实基础,X86自始至终统治着整个服务器生态。而这并不是业界希望看到的,因此Arm服务器被给予厚望。业界期盼Arm能够带来新的服务器CPU替代:打破一个同质化的数据中心架构,实现更高...

关键字: ARM 服务器 AI
关闭
关闭