历史上的今天
返回首页

历史上的今天

今天是:2025年06月25日(星期三)

正在发生

2021年06月25日 | 基于ARM核的音频解码器单芯片系统研究

2021-06-25 来源:eefocus

引 言

  EP7209是世界上第一片既支持流行的MP3标准,也支持诸如Microsoft Audio等快速涌现的互联网音频压缩标准的数字音频解码器片上系统。EP7209在74MHz下运行时其性能与基于100MHz英特尔奔腾芯片的个人计算机相同,且消耗的功率特别小:在2.5V电压下,功耗不足170mW。它的ARM核提供了一个优秀的数字信号处理器所能够提供的处理能力,因此,互联网音频处理仅占用了该芯片50%的处理能力。这给嵌入式系统的设计人员留下了高达25MIPS(百万条指令每秒)的处理能力用于实现其它功能。本文着重讨论EP7209的结构、功能、接口特性等及其在嵌入式系统中的应用。

一、功能框图及功能块描述

  图1是EP7209的功能框图。由图1可知EP7209含有如下功能块。



  (1)ARM720T处理器含有如下功能子块:

  ① ARM7TDMI CPU核。该CPU核支持Thumb指令集、核调试、增强的乘法器、JTAG以及嵌入式ICE。它的时钟速率可编程为18MHz、36MHz、49MHz、74MHz。

  ② 内存管理单元(MMU)与ARM710核兼容,并增加了对Windows CE的支持。该内存管理单元提供了地址转换和一个有64个项的转换旁路缓冲器。

  ③ 提供了8KB的单一的指令和数据高速缓冲存储器以及一个四路相联高速缓冲存储器控制器。

  ④ 写缓冲器。

  (2)38400字节的片上SRAM,可以在LCD控制器和通用应用之间共享。

  (3)内存可以和高达6个独立的扩展段接口,每个扩展段有256MB,且等待状态可编程。

  (4)27位的通用I/O,可以多路复用,以在需要时提供额外的功能。

  (5)数字音频接口(DAI)可以直接与CD音质的DAC和编解码器相连。

  (6)中断控制器。

  (7)先进的系统状态控制及电源管理。

  (8)2个16550A兼容的全双工UART,含16字节的发送及接收FIFO。

  (9)SIR协议红外线数据编解码器,速率最高达115.2kbps。

  (10)LCD控制器,16级灰度,可编程为1、2或4位每像素。

  (11)片上的启动ROM,已固化了用于串行加载的启动代码。

  (12)2个16位的通用定时计数器。

  (13)1个32位的实时时钟(RTC)和比较器。

  (14)2个同步串行接口,用于诸如ADC等Microwire或SPI外围器件。一个接口支持主模式和从模式,另一个仅支持主模式。

  (15)完全的JTAG边界扫描和嵌入式ICE支持。

  (16)2个可编程的脉冲宽度调制接口。

  (17)1个用于和1或2个Cirrus Logic CL-PS6700 PC卡控制器器件相连的接口,可支持2个PC卡插槽。

  (18)振荡器和锁相环,用于由外部的3.6864 MHz的晶振产生内核所需要的18.432MHz、36.864 MHz、 49.152MHz或73.728MHz的时钟。此外还有一个外部时钟输入端(在13MHz模式下使用)。

  (19)一个低功耗的32.768kHz的振荡器,用于产生实时时钟所需要的1Hz时钟。

  所有的外部存储器和外围器件都应连接到32位的数据总线D[0:31]上,并应使用28位的地址总线A[0:27]和其它控制信号。

二、基本工作原理

  EP7209的核心逻辑功能是建立在一个ARM720T嵌入式处理器之上的。对EP7209的设计,以低功耗为目的进行了优化,并使用完全静态的 0.25μm的CMOS制造工艺。低功耗的思想同样体现在状态设计、时钟使用的方式上。下面将有选择地介绍EP7209的工作原理。

  1.CPU内核

  ARM720T由一个ARM7TDMI 32位RISC处理器、一个单一的高速缓冲和一个存储器管理单元(MMU)所构成。8KB的高速缓冲有一个四个项的相联寄存器,并被组织成512线四字(4×512×4字节)。高速缓冲直接与ATM7TDMI相连,因而高速缓冲来自CPU的虚拟地址。当所需的虚拟地址不在高速缓冲中时,由MMU将虚拟地址转换为物理地址。一个64个项的转换旁路缓冲器(TLB)被用来加速地址转换过程,并减少页表读取所需的总线传送。仅通过转换高速缓冲中未存储的地址,MMU就能够节约功率。

  2.状态控制

  EP7209支持如下的电源管理状态:操作、空闲和后备(节能),如图2所示。正常的程序执行状态为操作状态。这是一个完全性能状态,时钟和外围器件都被使能。除了CPU时钟被暂停外,空闲状态与操作状态是一样的。一个中断或唤醒将使空闲状态返回到操作状态。后备状态下功耗最小,选择此模式会关闭主振荡器,只对实时时钟和相关逻辑提供电源。当EP7209处于后备状态时,为保证系统能够正常唤醒,所有电源和地引脚仍然与电源和地相连是非常重要的。后备状态唯一能够变迁到的状态是操作状态。



  3.复 位

  EP7209有三个异步复位信号:nPOR、nPWRFL和nURESET。如它们中的任一个有效,系统复位将由内部产生。除了RTC数据和匹配寄存器外,所有的EP7209内部寄存器都将被复位。为了使系统时间在用户复位或电源失败的状况下得以保持,RTC数据和匹配寄存器仅由nPOR引起的复位所清除。

任何复位都将复位CPU,并在EP7209返回操作状态时使CPU从复位矢量处开始执行程序。

  4. 时 钟

  EP7209有两个时钟模式:外部时钟输入和片上PLL。时钟源的选取是由端口E的第2脚(PE[2])的一个陷阱选项来实现的。如果PE[2]在nPOR的上升沿处为高(例如上电时),外部时钟模式被选取;如果PE[2]为低,那么,片上PLL模式被选取。上电以后,PE[2]可用作通用输入输出端口。

  EP7209器件有几个独立的逻辑部分,每一个都有自己的时钟频率要求。当EP7209处于外部时钟模式时,外围器件的真实频率将不同于PLL模式时的频率。

  5. 中断处理

  在程序的执行期间,当一个不可预测事件 (如中断或存储器错误) 发生时,通常要产生一个例外。当这些例外在同一时间发生时,将由固定优先权服务体系决定其被处理的次序。表1显示了所有例外的优先权次序。


  EP7209中断控制器有两个中断类型:中断请求(IRQ)和快速中断请求(FIQ)。中断控制器有能力控制来自22个不同的FIQ和IRQ中断源的中断。这22个之中,有17个被映射为IRQ输入,而另5个源被映射为FIQ输入。FIQ较IRQ有较高的优先级。如果来自于同一个组(IRQ或FIQ)的两个中断被接收到的话,其服务次序必须由软件来解决。所有中断均为电平敏感,也就是说,它们必须与下列的次序一致。

  (1)中断器件(内部或者外部)产生适当的中断。

  (2)如果中断屏蔽寄存器中适当的位已被设置,那么一个FIQ或IRQ将由中断控制器产生。

  (3)如中断被使能的话,处理器将跳转到适当的地址。

  (4)中断调度软件读中断状态寄存器,以确定中断源并调用相应的中断服务例程。

  (5)中断服务例程中的软件将清除中断源,这是通过对申请中断的器件采取一些由该器件特定的行动来实施的(如,读UART RX寄存器)。

  然后,中断服务例程可以重新使能中断。任何其它未处理的中断都将以相同的方法被服务。或者,它可以返回到中断调度软件。此软件能检查任何其它的未处理中断并能相应地调度它们。"End of Interrupt"类型的中断将被锁存。所有其它的中断源(如外部中断源)必须保持有效,直到相应的服务例程开始执行为止。

  6. EP7209的启动方式

  片上启动ROM的128字节中包含有一个指令序列。此指令序列能够初始化器件,然后配置UART1以接收2048字节的串行数据。这些数据接收后将置于片上的SRAM中。一旦下载传送完成,执行将跳转到片上SRAM的起始处。这将允许诸如在产品的制造过程中将代码下载并编程到系统Flash中这样的操作。

  是否从片上启动ROM启动系统是由nMEDCHG引脚在电源复位期间的状态决定的。如果nPOR有效时,nMEDCHG为高,那么,EP7209将从连接到CS[0]的外部存储器器件启动(正常启动模式);如果nMEDCHG为低,那么,启动将从片上ROM处开始。注意:在两种情形下,上电复位结束后,EP7209将处于后备态,而且为了真正地开始执行启动序列,需要在WAKEUP引脚上有一个由低到高的跳变。

  片上ROM启动的结果是对所有片选的解码都翻转了。控制启动选项的信号由nPOR锁存,这意味着地址和总线宽度的重新映射将继续应用,直到nPOR的再一次有效为止。从ROM启动后,启动ROM的内容可从地址0x0000000处读回来;而在正常操作状态下,启动ROM的内容可从地址范围0x70000000中读回。

  7. 存储器和I/O扩展接口

  EP7209能够解码6个分立的线性存储器或扩展段。其中的两个可为PC Card卡预留,每一个接口连接到一个独立的单个CL-PS6700器件。每一个段的大小为256MB。两个附加段(除了这6个段以外的)被用于片上SRAM和片上ROM。片上ROM空间被完全解码,SRAM空间也被完全解码到编程在LCDCON寄存器中的视频帧缓冲器的最大容量中(128KB)。超出此地址范围的SRAM空间不被完全解码(即超出128KB范围的任何存取将绕回到128KB范围内)。6个段中的任一个可配置成与传统SRAM接口一致的接口相连接,而且能单独地被编程为8、16或32位宽,支持页模式存取,并且在执行非连续存取时可插入1~8个等待状态,执行触发模式存取时可插入0~3个等待状态。零等待状态连续存取特性被设计成支持触发模式的ROM。对使用nMWE引脚的可写存储器件,不允许零等待状态连续存取,至少应插入一个等待状态(等待状态数应编程到适当的MEMCFG寄存器的连续域中)。总线周期也可以通过使用EXPRDY输入信号来进行扩展。

  8. 大端配置与小端配置

  EP7209对内部寄存器使用小端(little endian)配置。然而,连结器件到用大端(big endian)配置的外部存储器系统上是可能的。ARM720T控制寄存器中的大端/小端位设置了EP7209在处理存储器中的字时是按大端格式还是小端格式进行。存储器被认为是从0开始向前编号的字节的线性组合。字节0~3容纳第1个被存储的字,字节4~7容纳第2个字,等等。在小端规划中,字中编号最低的字节认为是字的最低位字节,而编号最高的字节被认为是字的最高位字节。存储系统的Byte0在这个规划中应当连到数据线7到0(D[7:0])。在大端规划中,字的最高位字节被存储于编号最低的字节中,而最低字节存储于编号最高的字节中。因此,存储器系统的Byte0应当连到数据线31到24(D[31:24])。装载和存储指令是被大小端配置影响的唯一指令。

  9. 支持片上帧缓冲器的LCD控制器

LCD控制器提供了所有需要的控制信号以便直接与一个单面板复合LCD接口。面板的大小是可编程的,可以是以16像素为增量,从32到1024像素的任何宽度(线长度)。总的视频帧缓冲大小可编程为高达128KB。这等同于理论上最大的面板大小1024×256像素(每像素4个位 )。视频帧缓冲器可定位于任何一个片选所控制的存储器中。在任何一个片选所控制的存储器中,它的起始地址固定于地址0X00000000。LCD视频帧缓冲器的起始地址定义在寄存器FBADDR[3:0]中,这些位将成为外部地址总线的最重要nibble(半字节)。缺省起始地址为0XC0000000(FBADDR=0XC)。一个使用片上SRAM(OCSR)建立的系统将把片上SRAM用于LCD视频帧缓冲以及用于各种数据的存储。LCD视频帧缓冲器起始地址在这个系统中应当设置为0X6。

三、内存映射

  地址空间的低2GB分配给了存储器。在EP7209中,恰好在2GB下的8KB的空间是为内部寄存器所准备的且不可存取,EP7209的MMU应被编程为在访问这一区域时产生一个中断例外。

  通过从十六进制地址8000.0000到8000.3FFF的一组内部存储器位置来寻址内部外围部件。这些内存位置在EP7209中被认为是内部寄存器。从0x8000.0000到0x8000.1FFF含有与CL-PS7111兼容的寄存器,包含了这些寄存器是为了向下兼容并称它们为旧的内部寄存器。

  表2显示了ARM720T处理器的4GB地址空间范围在EP7209中是如何被映射的(当从片上启动ROM启动时将有不同的内存映射),所显示的内存映射假定两个CL-PS6700卡控制器连结上了。如果此功能不需要的话,那么nCS[4]和nCS[5]存储器空间是可用的。外部启动ROM没有被完全解码(即:启动代码在0x7000.0000到0x8000.0000的256MB字节空间内将重复)。SRAM可被完全解码至最大的大小,即128KB,对超出此范围的任何位置的存取将绕回到这个范围内。


四、基于EP7209的最大系统

  基于EP7209的最大配置系统如图3所示。此系统假定ROM为16位宽的器件。键盘可以连接到比图3所示更多的通用输入输出端口位,以支持多于64个键;然而,这些额外引脚将不能引线到WAKEUP引脚。


  需要注意的是,三个串行接口(DAI、CODEC和SSI2)的输入/输出是多路复用同一组外部接口引脚的。因此,在任一时刻,系统只能使用这三个外围器件接口中的一个。

结束语

  本文介绍了一种基于ARM核的音频解码器单芯片系统EP7209。描述了EP7209的整体结构、各功能块以及ARM处理器的地址空间在EP7209中是如何映射的。对EP7209的基本工作原理进行了讲解。最后给出了基于EP7209所能够构建的最大系统。希望本文能够使嵌入式系统的开发人员了解EP7209并加深对ARM核的理解。

参考文献

1 EP7209 Datasheet。Cirrus Logic, Dec., 1999
2 Jaggar Dave. ARM Architecture Reference Manual. Prentice Hall, 1996(7)


推荐阅读

史海拾趣

ADL [ADL Embedded Solutions Inc]公司的发展小趣事

ADL Embedded Solutions Inc. 是一家专注于嵌入式计算解决方案的公司,以下是该公司发展的五个相关故事:

  1. 公司创立与早期发展: ADL Embedded Solutions Inc. 成立于1994年,总部位于美国科罗拉多州科罗拉多斯普林斯市。公司初期致力于为工业、军事、航空航天等领域提供嵌入式计算解决方案。其产品包括工业级嵌入式计算板卡、系统、模块等。

  2. 技术创新与产品推出: ADL 在嵌入式计算领域不断进行技术创新,并推出了多款具有竞争力的产品。公司的产品具有高性能、低功耗、高可靠性等特点,得到了客户的广泛认可。其产品广泛应用于军事航空、医疗、交通、工业自动化等领域。

  3. 客户合作与项目案例: ADL 与各行业的领先企业建立了长期稳定的合作关系,并参与了众多重要项目。例如,公司为航空航天领域的客户提供了符合严格标准的嵌入式计算解决方案,为医疗设备制造商提供了可靠的嵌入式计算板卡等。

  4. 全球市场拓展与国际化发展: ADL 通过不断拓展国内外市场,实现了全球化发展。公司在美国、欧洲和亚洲等地设有销售办事处和服务中心,为客户提供本地化的技术支持和服务。同时,ADL 的产品远销全球各地,深受国际客户的青睐。

  5. 未来展望与持续发展: ADL 将继续致力于技术创新和产品开发,满足客户不断变化的需求。公司将不断扩大在工业、军事、医疗等领域的市场份额,加强与客户的合作,保持行业领先地位,实现业务的持续增长和发展。

AnalogicTech公司的发展小趣事

AnalogicTech深知品质是企业生存和发展的关键。因此,公司建立了严格的质量管理体系,从原材料采购到产品出厂的每一个环节都进行严格把控。同时,公司还注重客户反馈和需求,不断优化产品和服务,以满足客户的期望和需求。这种对品质的执着追求和对客户的深度关注,使得AnalogicTech赢得了众多客户的信任和忠诚。

法思特(FAST)公司的发展小趣事
定期对控制电路进行检查和维护,确保各元件性能良好、连接可靠。
FCI [First Components International]公司的发展小趣事
有序启动可以确保每个热水器都有足够的时间来加热和稳定水温,从而保证水温的均匀性。
Dfx公司的发展小趣事

某消费电子公司在生产过程中经常遇到质量问题,导致产品退货率居高不下。为了解决这个问题,该公司引入了DFX的设计理念,对产品设计、生产和测试等环节进行了全面优化。通过改进生产工艺、优化材料选择和加强质量控制等手段,该公司成功提高了产品的质量和可靠性,降低了退货率,赢得了消费者的信任。

ECS公司的发展小趣事

ECS公司成立于XXXX年,由一群热衷于云计算技术的工程师创立。在创立初期,公司就明确了以提供高效、弹性的云服务为目标。他们深入研究了虚拟化技术、自动化管理等关键技术,成功推出了ECS服务,为客户提供按需分配的计算资源。这一创新的服务模式迅速吸引了众多客户的关注,ECS公司开始在云服务市场崭露头角。

问答坊 | AI 解惑

建筑智能化系统工程施工图设计主要问题(转载)

摘要:本文指出建筑设计院和系统集成商承担建筑智能化系统工程设计的状况将长期存在。由于种种原因,施工图设计质量不尽如人意,存在较多的问题。精心设计、精心施工,才能提高智能化系统工程的设计质量和工程技术水平,需要领导重视,设计人员敬业 ...…

查看全部问答>

无线电基础与收音机

基本的电子书,不错…

查看全部问答>

运行Keil故障

运行Keil 时出现“MISSING DEVICE (R003:SECURITY KEY NOT FOUND0)”是怎么会事??…

查看全部问答>

串口不能多次写入

大家好:     我现在在学习单片机,用的周立功DP51-H和DPFLASH下载软件。刚往单片机上烧写小程序还行,但是只要一上20k的程序,就很有问题.具体的情况就是:20k以上的代码,只能烧写一次。第二次烧写,DPFLASH就会提示通讯口出现错误, ...…

查看全部问答>

PIC单片机?

我想通过PIC18F6622的芯片,来完成一个智能火焰监测系统 但我现在出现了一点问题,就是想知道,最能检测火焰的硅光电池哪种型号的比较好用?? 还有硅光电池连接AD转换器,这个AD转换器应该连接芯片的哪个引脚??? 请求帮忙。。。…

查看全部问答>

GPIO数据寄存器

谁写过操作LPC1114的GPIO数据寄存器读写数据的操作!!分享下!!…

查看全部问答>

DouleX太阳能卡片计算器

这是来自国内创意品牌DouleX的一款创新产品:太阳能计算器,它采用太阳能供电,节能环保,在室外阳光下或室内灯光下都可以应用,仅为信用卡般大小,可以很方便的放进钱包里面,随身 携带以备不时之需。     …

查看全部问答>

STR710FZ2T6与STR710RZT6的区别是不是只有FLASH?

                                 在datasheet上没有看见STR710RZT6的相关说明,请问是不是除了没有FLASH,在功能、封装等等与STR710FZ2T6一样?…

查看全部问答>

求教:LF2407如何外扩存储器?

不知那位大哥用过LF2407,我想请教一下:如果我想用LF2407外扩一片64Kx16的数据RAM和一片64Kx16的程序RAM,我的LF2407的引脚应该怎样搭建?另想问一下:/STRB这个引脚有何作用?在外扩存储器时  是否可以不用这个脚? …

查看全部问答>

2812烧写求助

急 各位大侠看一下--2812密码保护 小弟今天第一次烧flash ,结果程序烧进去了 但是password(3f7ff8-)段被写入数值了,flash被保护了,在map文件中找到 .reset     0    003f7ff6    00000002  &n ...…

查看全部问答>