博文
ARM9处理器与ARM7处理器比较(2008-09-26 19:09:00)
摘要:摘要:ARM处理器是世界上最流行的嵌入式处理器,广泛应用于个人通信等嵌入式领域。ARM7处理器虽然功能强大,但是目前已经开始退出主流应用领域,代替它的是性能更加强大的ARM9系列处理器。介绍了ARM9处理器与ARM7处理器的不同之处,并且给出了ARM9的应用实例。
关键词:ARM9 ARM7 流水线 指令周期
ARM9系列处理器是英国ARM公司设计的主流嵌入式处理器,主要包括ARM9TDMI和ARM9E-S等系列。本文主要介绍它们与ARM7TDMI的结构以及性能比较。
以手机应用为例,2G手机只需提供语音及简单的文字短信功能,而目前的2.5G和未来的3G手机除了提供这两项功能外,还必须提供各种其他的应用功能。主要包括:(1)无线网络设备:手机上网、电子邮件及其他定位服务等功能;(2)PDA功能:含有用户操作系统(Windows CE、Symbian OS、Linux等)及其他功能;(3)高性能功能:音频播放器、视频电话、手机游戏等。在2.5G和3G的应用中ARM9已经全面替代了ARM7。因为ARM9的新特性能够满足各种新需求的同时减少产品研发时间并降低研发费用。
新一代的ARM9处理器,通过全新的设计,采用了更多的晶体管,能够达到两倍以上于ARM7处理器的处理能力。这种处理能力的提高是通过增加时钟频率和减少指令执行周期实现的。
1 时钟频率的提高
ARM7处理器采用3级流水线,而ARM9采用5级流水线,如图1、2、3所示。增加的流水线设计提高了时钟频率和并行处理能力。5级流水线能够将每一个指令处理分配到5个时钟周期内,在每一个时钟周期内同时有5个指令在执行。在同样的加工工艺下,ARM9TDMI处理器的时钟频率是ARM7TDMI的1.8~2.2倍。
图1、图2和图3
2 指令周期的改进
指令周期的改进对于处理器性能的提高有很大的帮助。性能提高的幅度依赖于代码执行时指令的重叠,这实际上是程序本身的问题。对于采用最高级的语言,一般来说,性能的提高在30%左右。
2.1 loads 指令矛n stores指令
指令周期数的改进最明显的是loads指令和stores指令。从ARM7到ARM9这两条指令的执行时间减少了30%。指令周期的减少是由于ARM7和ARM9两种处理器内的两个基本的微处理结......
arm9和arm7的比较(2008-09-26 19:05:00)
摘要:新一代的ARM9处理器,通过全新的设计,采用了更多的晶体管,能够达到两倍以上于ARM7处理器的处理能力。这种处理能力的提高是通过增加时钟频率和减少指令执行周期实现的。
1 时钟频率的提高
ARM7处理器采用3级流水线,而ARM9采用5级流水线,如图1、2、3所示。增加的流水线设计提高了时钟频率和并行处理能力。5级流水线能够将每一个指令处理分配到5个时钟周期内,在每一个时钟周期内同时有5个指令在执行。在同样的加工工艺下,ARM9TDMI处理器的时钟频率是ARM7TDMI的1.8~2.2倍。
2 指令周期的改进
指令周期的改进对于处理器性能的提高有很大的帮助。性能提高的幅度依赖于代码执行时指令的重叠,这实际上是程序本身的问题。对于采用最高级的语言,一般来说,性能的提高在30%左右。
2.1 loads 指令和 stores指令
指令周期数的改进最明显的是loads指令和stores指令。从ARM7到ARM9这两条指令的执行时间减少了30%。指令周期的减少是由于ARM7和ARM9两种处理器内的两个基本的微处理结构不同所造成的。
(1)ARM9有独立的指令和数据存储器接口,允许处理器同时进行取指和读写数据。这叫作改进型哈佛结构。而ARM7只有数据存储器接口,它同时用来取指令和数据访问。
(2)5级流水线引入了独立的存储器和写回流水线,分别用来访问存储器和将结果写回寄存器。
以上两点实现了一个周期完成loads指令和stores指令。
2.2 互锁(interlocks)技术
当指令需要的数据因为以前的指令没有执行完而没有准备好就会产生管道互锁。当管道互锁发生时,硬件会停止这个指令的执行,直到数据准备好为止。虽然这种技术会增加代码执行时间,但是为初期的设计者提供了巨大的方便。编译器以及汇编程序员可以通过重新设计代码的顺序或者其他方法来减少管道互锁的数量。
2.3 分枝指令
ARM9和ARM7的分枝指令周期是相同的。而且ARM9TDMI和ARM9E-S并没有对分枝指令进行预测处理。
附:哈佛结构是一种将程序指令存储和数据存储分开的存储器结构。中央处理器首先到程序指令存储器中读取程序指令内容,解码后得到数据地址,再到相应的数据存储器中读取数据,并进行下一步的操作(通常是执行)。程序指令存储和数据存储分开,可以使指令和......
ARM9与ARM7的比较及优化(2008-09-26 19:04:00)
摘要:ARM9与ARM7的比较及优化
目前越来越多的嵌入式系统设计开始采用ARM9处理器。理解ARM9与ARM7的差别,以及如何针对ARM9进行系统优化,成为了一个令人关注的话题。本文通过对ARM9处理器的特点介绍,介绍针对ARM9处理器进行系统优化的一些有效方法。 随着更多应用在嵌入式系统中的实现,嵌入式系统设计向着更高级、更复杂的方向发展。作为32位结构体系中的翘楚,ARM在各种应用领域里得到了极其广泛的应用,成为目前国内电子设计领域里面的焦点之一(2005年一项针对国内嵌入式系统开发者的调查表明,有63%的工程师把ARM作为32位CPU的首选)。过去几年里,绝大部分ARM系统都是基于ARM7处理器,最近一年里,基于ARM9处理器的产品越来越多,研究ARM9的特点以及如何优化从ARM7到 ARM9的移植,成为很多嵌入式系统设计者所关注的热点问题。 我们惯称的ARM9系列中又存在ARM9与ARM9E两个系列,其中ARM9 属于ARM v4T架构,典型处理器如ARM9TDMI和ARM922T;而ARM9E属于ARM v5TE架构,典型处理器如ARM926EJ和ARM946E。因为后者的芯片数量和应用更为广泛,所以我们提到ARM9的时候更多地是特指ARM9E系列处理器(主要就是ARM926EJ和ARM946E这两款处理器)。下面关于ARM9的介绍也是更多地集中于ARM9E。 ARM7处理器和ARM9E处理器的流水线差别 对嵌入式系统设计者来说,硬件通常是第一考虑的因素。针对处理器来说,流水线则是硬件差别的最明显标志,不同的流水线设计会产生一系列硬件差异。让我们来比较一下ARM7和ARM9E的流水线,如图1。 可以看到ARM9E从ARM7的3级流水线增加到了5级,ARM9E的流水线中容纳了更多的逻辑操作,但是每一级的逻辑操作却变得更为简单。比如原来 ARM7的第三级流水,需要先内部读取寄存器、然后进行相关的逻辑和算术运算,接着处理结果回写,完成的动作非常复杂;而在ARM9E的5级流水中,寄存器读取、逻辑运算、结果回写分散在不同的流水当中,使得每一级流水处理的动作非常简洁。这就使得处理器的主频可以大幅度地提高。因为每一级流水都对应 CPU的一个时钟周期,如果一级流水中的逻辑过于复杂,使得执行时间居高不下,必然导致所需的时钟周期变长,造成CPU的主频不能提升。所以流......
嵌入式Linux下ARM处理器与DSP的数据通信(2)(2008-09-22 22:23:00)
摘要:4.3 驱动程序的系统调用接口
为对处于总线地址0x4000_0000的DSP板进行操作,首先应用open打开设备,该设备可以通过mknod建立(本例建立的是/dev/hpi)。然后mmap完成映射。
Int dev_hpi_open(str_HPI *ss)
{size_t length=1024;
int i;
if((*ss).hpi_number==0)
{
(*ss).hpi_fd=open(/dev/hpi,O_RDWR);
}
if((*ss).hpi_fd==-1)return -1;
(*ss).hpi_mmap_start =mmap(NULL,length,PROT_READ|PROT_WRITE,MAP_SHARED,((*ss).hpi_fd),0); //获得映射区内存的起始地址
return 0;
} //dev_hpi_open
mmap的作用是将文件内容映射到内存中。函数的原形及各参数定义如下:
*mmap(void *start,size_length,int prot,int flags,intfd,off_t offset)
start指向欲对应的内存地址,size-length的含义是要映射的量;prot代表映射区域的保护方式;flag会影响映射区域的各种特性;fd为文件描述符;offtoffset代表文件的偏移量,通常设置为零。
示例程序中的结构体变量ss用来总知各种变量。通过mmap可以获得映射后的内存地址,用(*ss).hpi_mmap_start表示。
一旦获得了这个起始地址,就能对0x4000_0000起始的总线地址进行操作,因为映射已经完成,对(*ss).hpi_mmap_start的操作就是对0x4000_0000起始的总线地址进行操作,而DSP板HPI接口的控制线正是在这个位置。这样就实现了物理地址和用户空间的转换。
4.4 用户程序接口部分
下面以HPI接口读写中最复杂的自增读方式用户程序为例说明用户接口程序的设计过程。要完成自增读的操作,对于HPI一侧,假设采用软件握手的方式。要完成的工作如下:
首先读HPIC以查询其中的HRDY位......
嵌入式Linux下ARM处理器与DSP的数据通信(1)(2008-09-22 22:23:00)
摘要:1 引言
基于ARM核心处理器的嵌入式系统以其自身资源丰富、功耗低、价格低廉、支持厂商众多的缘故,越来越多地应用在各种需要复杂控制和通信功能的嵌入式系统中。
内核源码开放的Linux与ARM体系处理器相结合,可以发挥Linux系统支持各种协议及存在多进程调度机制的优点,从而使开发周期缩短,扩展性增强。作为数字处理专用电路,DSP的数字信号处理能力十分强大,但对诸如任务管理、通信、人机交互等功能的实现较为困难。
如果将这三者结合起来,即由DSP结合采样电路采集并处理信号,由ARM处理器作为平台,运行Linux操作系统,将经过DSP运算的结果发送给用户程序进行进一步处理,然后提供给图形化友好的人机交互环境完成数据分析和网络传输等功能,就会最大限度的发挥三者所长。
2 系统结构
该系统硬件由二部分组成,其中一部分为若干块DSP板,各自独立承接数据采集和信号处理。另一部分为以ARM为核心处理器的CPU板。系统硬件框图如图1所示(仅接口部分)。
3 接口硬件部分设计
3.1 HPI接口简介
HPI接口是TI公司新一代、高性能DSP上用以完成与主机或其他DSP之间数据交换的接口,这里主要介绍实际电路中使用的控制引脚和时序。
HCNTL0和HCNTL1为访问控制选择。用来确定主机(ARM)究竟对TMS320C6711中的哪一个HPI寄存器进行处理。具体功能如表1所列。
HHWIL:半字节定义选择,与HPIC寄存器中的HWOB位进行配合可以选择当前传输的是高半字还是低半字。低电平是第一个半字,高电平是第二个半字。
HCS:选通脉冲(Strobe),与HDS1、HDS2相互配合完成内部信号HSTROBE的生成。逻辑关系如图2所示。
将HDS1、HDS2分别固定为高电平和低电平,这样HCS就和HSTROBE完全一致。
HSTROBE读时序如图3所示。
3.2 接口电路
ARM处理器通过DSP的HPI接口与DSP进行连接的硬件原理如图4所示(以单板DSP为例)。其中SN74LVTH16245为16位(二个8位)双向三态总线收发器,主要起总线驱动和方向控制的作......
DSP与单片机通信的多种方案设计(2008-09-22 22:22:00)
摘要:基于嵌入式系统发展的需要,提出TMS320VC5402 DSP与AT89C51单片机通信的三种设计方案。利用TMS320VC5402的多通道缓冲串口MCBSP分别实现TMS320VC5402与AT89C51的SCI和SPI串行通信,以及通过TMS320VC5402的8位增强主机接口HPI一8实现TMS320VC5402与AT89C5l并行通信。就硬件接口电路和软件编程进行详细的阐述。
将DSP和单片机构成双CPU处理器平台,可以充分利用DSP对大容量数据和复杂算法的处理能力,以及单片机接口的控制能力。而DSP与单片机之间快速正确的通信是构建双CPU处理器的关键问题。下面就此问题分别设计串行SCI、SPI和并行HPI三种连接方式。
1 串行通信设计与实现
1 1 SCI串行通信设计
1.1.1 多通道缓冲串行口McBSP原理
TMS320VC5402(简称VC5402)提供了2个支持高速、全双工、带缓冲、多种数据格式等优点的多通道缓冲串行口McBSP。MCESP分为数据通路和控制通路。①数据通路负责完成数据的收发。CPU或DMAC能够向数据发送寄存器DXR写入数据,DXR中的数据通过发送移位寄存器XSR输出到DX引脚。DR引脚接收数据到接收移位寄存器RSR,再复制到接收缓冲寄存器RBR,最后复制到数据接收寄存器DRR。这两种数据多级缓冲方式使得数据搬移和片外数据通信能够同时进行。②控制通路负责内部时钟产生,帧同步信号产生,信号控制和多通道选择。另外.还具有向CPU发送中断信号和向DMAC发送同步事件的功能。MCBSP时钟和帧同步信号通过CLKR、CLKX、FXR、FSX引脚进行控制,接收器和发送器可以相互独立地选择外部时钟和帧同步信号,也可以选择由内部采样率发生器产生时钟和帧同步信号。帧同步脉冲有效表示传输的开始。
1.1.2 SCI串行接口设计
设置VC5402的McRSP输出时钟和帧同步信号由内部采样率发生器产生,内部数据时钟CLKG和帧同步信号FSG驱动发送时钟CLKX和帧同步FSX(CLKXM=l,FSXM=l,FSGM=1),输入时钟也由内部采样率发生器产生,内部数据时钟CLKG驱动接收时钟CLKR(CLKRM=1),同时由CPU时钟驱动采样率发生器......
影响IT人员未来发展的五个IT新技术方向(2008-07-08 08:44:00)
摘要:计算机和软件技术日新月异,作为一名合格的IT工程师,必须善于学习,及时了解和把握新技术、新方法。然而新技术、新方法总是层出不穷,经常让IT人员无所适从,疲惫应付。下面我想谈谈我对新技术、新方法的一个归类性的介绍,以使大家心中有一个全局的把握,并理清自己感爱好的方向,从而作进一步研究,专注而专业地从事IT工作。
一、信息安全新技术
主要包括密码技术、入侵检测系统、信息隐藏技术、身份认证技术、数据库安全技术、 网络容灾和灾难恢复、网络安全设计等。随着网络时代的到来,网络已经改变了人们的生活和工作方式。互联网技术、无线网络技术以及信息化的不断深入和发展,已经出现了在线购物、在线炒股、手机银行及网上办公等各种各样的信息应用。这些技术和方法是任何一位从事信息安全相关工作的人士必须具备的知识。
二、信息化新技术
信息化新技术主要涉及电子政务、电子商务、城市信息化、企业信息化、农业信息化、服务业信息化等。例如根据国家的信息化指导方针,城市信息化必须与工业化结合进行,城市信息化必须以工业化为基础,在推进工业化的基础上推进信息化,因此,工业化就成为信息化的应用基础。
三、软件新技术
软件新技术主要关注嵌入式计算与嵌入式软件、基于构件的软件开发方法、中间件技术、数据中心的建设、可信网络计算平台、软件架构设计、SOA与RIA技术、软件产品线技术等。随着对象技术与分布式计算技术的发展,两者相互结合形成了分布对象计算,并发展为当今软件技术的主流方向。
四、网络新技术
网络新技术包括宽带无线与移动通信、光通信与智能光网络、家庭网络与智能终端、宽带多媒体网络、IPv6与下一代网络、分布式系统等。虽然有线的资源是无限,而无线资源是有限,但以WLAN为代表的无线宽带网技术将无线和有线无缝地结合起来,从而创造出无限资源和无限应用。
五、计算机新技术
计算机新技术主要关注网格计算、人机接口、高性能计算和高性能服务器、智能计算、磁存储技术、光存储技术、中文信息处理与智能人机交互、数字媒体与内容治理、音视频编/解码技术等。其中网格技术有一个角度是发展IPv6,将地址空间由32位扩展到128位,这样,原......
基于ARM的综合测试仪设计(2008-07-08 08:43:00)
摘要:摘要:在野外工作,要求将多种测量功能集成于一体,以方便完成野外对多种物理气候的测量。在本文中,介绍了一种以ARM控制芯片为核心,可测量多种气候参数的综合测量仪器,其中包括湿度,海拔,温度,并对系统的硬件和软件设计也做了较详细的介绍。实际应用证明,该系统具有很好的实用性,工作稳定。
关键词:湿度传感器;ARM核;固件程序设计;
1引言
我国的疆域广阔,时区分布不同,海拔以及温度,湿度等气候差异都很大,实时的了解我们所处位置的气候情况对工作和生活是很重要的。尤其对一些野外工作的科研人员来说,需要测试海拔,温度,湿度等物理量作为参考因素。为了测量这些物理量需要我们携带多种测试设备,这对野外工作很不方便。为了实时方便的了解我们所处的海拔高度和天气情况,我们需要有更便捷,功能更齐全的综合测量仪器。同时可以将现场的数据送到PC,以方便今后的进一步分析和处理。
2系统组成以及基本原理
整个综合测试仪主要由五个部分组成。分别是核心控制单元,湿度测量,海拔高度测量,温度测量,以及测量数据显示部分。湿度测量是通过湿度传感器将环境湿度物理量变换为电信号,最终将处理后的模拟信号经过A/D后送到CPU。海拔测量主要是通过间接测量大气压强,经过计算来得出当地的海拔高度,其中也考虑到其他因素的影响而采取了软件修正的方法。温度测量采用数字温度测量芯片DS1820来实现,这是一个应用的比较广泛,也是得到了实践验证,确切可行的一种测量方法。所有采集的物理量经过A/D转换后,在CPU中经过处理,反映出各自代表的物理量后,送到显示电路,以提供使用者信息,也可送到PC,让PC机上的数据分析软件做进一步的处理和存储。
3系统硬件整体设计
系统控制器单元
本设计采用LPC2104作为控制器的控制芯片[1][3]。LPC2104是PHILIPS公司专为嵌入式应用提供的高性价比微控制器解决方案。它采用ARM公司的16位/32位RISC结构,内核是ARM7TDMI-S,CPU操作频率可达60MHz,片上集成:具有ISP和IAP功能的128KB Flash程序存储器、16KB静态RAM、2个UART、1个I2C串行接口、1个SPI串行接口,多达6路输出的PWM、2个定时器,分别具有4路捕获/比较通道、实时时钟及看门狗定时器等,能够与常用的外围设备实现无缝连接,本系统以LPC2104为核心......
逻辑器件的使用指南(2008-06-23 14:47:00)
摘要:1:多余不用输入管脚的处理
在多数情况下,集成电路芯片的管脚不会全部被使用。例如74ABT16244系列器件最多可以使用16路I/O管脚,但实际上通常不会全部使用,这样就会存在悬空端子。所有数字逻辑器件的无用端子必须连接到一个高电平或低电平,以防止电流漂移(具有总线保持功能的器件无需处理不用输入管脚)。究竟上拉还是下拉由实际器件在何种方式下功耗最低确定。 244、16244经测试在接高电平时静态功耗较小,而接地时静态功耗较大,故建议其无用端子处理以通过电阻接电源为好,电阻值推荐为1~10K。
2:选择板内驱动器件的驱动能力,速度,不能盲目追求大驱动能力和高速的器件,应该选择能够满足设计要求,同时有一定的余量的器件,这样可以减少信号过冲,改善信号质量。 并且在设计时必须考虑信号匹配。
3:在对驱动能力和速度要求较高的场合,如高速总线型信号线,可使用ABT、LVT系列。板间接口选择ABT16244/245或LVTH16244/245,并在母板两端匹配,在不影响速度的条件下与母板接口尽量串阻,以抑制过冲、保护器件,典型电阻值为10- 200Ω左右,另外,也可以使用并接二级管来进行处理,效果也不错,如1N4148等(抗冲击较好)。
4:在总线达到产生传输线效应的长度后,应考虑对传输线进行匹配,一般采用的方式有始端匹配、终端匹配等。
始端匹配是在芯片的输出端串接电阻,目的是防止信号畸变和地弹反射,特别当总线要透过接插件时,尤其须做始端匹配。 内部带串联阻尼电阻的器件相当于始端匹配,由于其阻值固定,无法根据实际情况进行调整,在多数场合对于改善信号质量收效不大,故此不建议推荐使用。始端匹配推荐电阻值为10~51 Ω,在实际使用中可根据IBIS模型模拟仿真确定其具体值。
由于终端匹配网络加重了总线负载,所以不应该因为匹配而使Buffer的实际驱动电流大于驱动器件所能提供的最大Source、Sink电流值。
应选择正确的终端匹配网络,使总线即使在没有任何驱动源时,其线电压仍能保持在稳定的高电平。
5:要注意高速驱动器件的电源滤波。如ABT、LVT系列芯片在布线时,建议在芯片的四组电源引脚附近分别接0.1 μ或0.01 μ电容。
6:可编程器件任何电源引脚、地线引脚均不能悬空;在每个可编程器件的电源和地间要并接0.......
单片机复位电路设计(2008-05-09 10:41:00)
摘要:
一、概述
影响单片机系统运行稳定性的因素可大体分为外因和内因两部分:
1、外因
射频干扰,它是以空间电磁场的形式传递在机器内部的导体(引线或零件引脚)感生出相应的干扰,可通过电磁屏蔽和合理的布线/器件布局衰减该类干扰;
电源线或电源内部产生的干扰,它是通过电源线或电源内的部件耦合或直接传导,可通过电源滤波、隔离等措施来衰减该类干扰 。
2、内因
振荡源的稳定性,主要由起振时间频率稳定度和占空比稳定度决定 起振时间可由电路参数整定稳定度受振荡器类型温度和电压等参数影响复位电路的可靠性。
二、复位电路的可靠性设计
1、基本复位电路
复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。图1所示的RC复位电路可以实现上述基本功能,图3为其输入-输出特性。但解决不了电源毛刺(A 点)和电源缓慢下降(电池电压不足)等问题 而且调整 RC 常数改变延时会令驱动能力变差。左边的电路为高电平复位有效 右边为低电平 Sm为手动复位开关 Ch可避免高频谐波对电路的干扰 调频FM发射话筒制作套件
图1 RC复位电路
图2所示的复位电路增加了二极管,在电源电压瞬间下降时使电容迅速放电,一定宽度的电源毛刺也可令系统可靠复位。图3所示复位电路输入输出特性图的下半部分是其特性,可与上半部比较增加放电回路的效果 电子元件邮购
图2 增加放电回路的RC复位电路
使用比较电路,不但可以解决电源毛刺造成系统不稳定,而且电源缓慢下降也能可靠复位。图4 是一个实例 当 VCC x (R1/(R1+R2) ) = 0.7V时,Q1截止使系统复位。Q1的放大作用也......