|
||
嵌入式系统硬件基础 | |||||||||||||||||||||||||||||||||||||||
如对此感兴趣,请拨打电话02l-228l84l9,QQ微信,微博 诚招各地区市场各行业应用推广合作伙伴。查看详细联系方式。 欢迎提出产品建议,思路,合作信息,我们计入产品股份,享有对应的分红权。 整个嵌入式系统的开发涉及到两个方面:硬件部分与软件部分。硬件部分提供整个嵌入式系统开发可见的或可触摸的“实体”,而软件部分相当于这个“实体”内部的功能逻辑。这两个部分缺一不可。嵌入式系统开发对硬件要求非常高,这与其它类型系统的开发有所不同。许多嵌入式的开发都是针对具体的应用,针对项目中特定硬件资源,如微处理器、FLASH、外围接口等。这样,程序员就需要熟悉系统中的硬件资源,比如涉及到一些底层编程,就需要知道系统处理器提供的指令集;要对FLASH编程,就需要知道FLASH编程的指令系列和流程等 。 1.嵌入式处理器 嵌入式系统的核心部件是各种类型的嵌入式微处理器。嵌入式处理器就像系统的控制神经中枢,通过数据线、地址线和控制信号线等神经网线与各种神经末梢,如RS-232接口、USB接口、LCD接口等相连。新一代嵌入式设备还需要具备IEEE1394,USB,CAN,Bluetooth或IrDA通信接口,同时也需要提供相应的通信组网协议软件和物理层驱动软件。为了支持应用软件的特定编程模式,如Web或无线Web编程模式,还需要相应的浏览器,如HTML,XML等。 根据现状,嵌入式处理器可以分为以下几类: (1)嵌入式微处理器(Embedded Micro Processor Unit ,EMPU),一般指通用计算机中的CPU。它与标准微处理器基本相同,但在工作温度、抗电磁干扰、可靠性等方面都做了增强。与工业控制计算机相比,它具有体积小,重量轻,成本低。可靠性高等优点;但在电路板上必须包括ROM,RAM,FLASH、总线接口、各种外设等器件,从而降低了系统的可靠性,技术保密性也较差。在应用中,将微处理器装配在专门设计的电路板上,然后在电路板上配上必要的扩展外围电路,如存储器的扩展电路、I/O的扩展电路和一些专用的接口电路等,这样就可基本完成嵌入式系统的一些功能。特点:1)内部具有精确的晶振电路,对实时多任务具有很强的支持能力。2)嵌入式系统的软件结构已模块化,具有功能很强的存储区保护功能。3)采用可扩展的处理器结构,留有很多扩展接口。4)提供丰富的调试功能。在嵌入式系统开发中,基本的开发模型就是宿主机对目标机的开发。一方面要求宿主机上有相应的开发工具,另一方面要求目标机上的微处理器应提供必要的调试接口以方便用户开发。一般调试方式有硬件仿真调试,软件调试,模拟调试等。常见的调试接口有JTAG,BDM方式等。5)许多嵌入式处理器提供几种工作模式,如正常工作模式、备用模式、省电模式(power down)等,嵌入式微处理器在设计中考虑到低功耗。信息社会是以网络以及移动计算和通信设备为基础的,这样需要嵌入式微处理器消耗非常低的能量。现在便携式和无线应用中靠电池操作的嵌入式微处理器设计中最重要的指标是功耗而不是性能,现在已不用主频率MHz比较处理器而用功耗mW或?W比较处理器了。同时,功率的传送和能量的消耗已成为性能和集成度的主要限制。 (2)嵌入式微控制器(Embedded Microcontroller Unit,EMU),一般又称为单片机,就是将整个计算机系统集成到一块芯片中的控制器。它一般以某一种微处理器内核为核心,芯片内部集成ROM/EPROM,RAM,FLASH、总线、总线逻辑、定时/计数器、WatchDog、I/O,串行口、脉宽调制输出、A/D,D/A等各种必要功能模块和外设。为适应不同需要,一般一个系列的单片机具有很多的衍生产品,但是每种衍生产品的处理器内核是相同的,不同的是存储器和外设的配置及封装。 与嵌入式微处理器相比,微控制器的最大特点是单片化、体积小,从而使功耗和成本下降,可靠性提高。微控制器是目前嵌入式系统工业中的主流产品。微控制器的片上外设资源一般比较丰富,适合于控制,因此称为微控制器。 (3)嵌入式DSP处理器(Embedded Digital Signal Processor,EDSP)。普通DSP处理器对系统结构和指令进行了特殊设计,使其适合执行DSP算法,编译效率和指令执行速度都较高。在数字滤波、FFT、谱分析等方面,DSP算法正在大量引入嵌入式领域;DSP应用正从通用单片机中以普通指令实现DSP功能,过渡到采用嵌入式DSP处理器。嵌入式DSP处理器有两个发展来源,一是DSP处理器经过单片化,EMC改造,增加片上外设成为嵌入式DSP处理器,如TI公司的TMS320C2000/C5000等。二是在通用单片机或SOC中增加DSP协处理器,如Intel公司的MCS-296等。 现在,嵌入式DSP处理器已得到快速的发展和应用,特别在嵌入式系统的智能化系统中,例如,各种带智能的消费类产品、生物信息识别终端、带加解密算法的键盘、ADSL接入、实时语音压接系统、虚拟现实显示等。这类智能化算法一般运算量较大,特别是向量运算、指针线性寻址等较多,而这些正是DSP处理器的优势所在。德州仪器公司(TI)推出TMS320C64x DSP系列中的最新产品,作为最高性能数字信号处理器(DSP),使高效能嵌入式应用大大受益。与同类竞争产品相比,该新型芯片提供了性价比更高、功耗更小的百万级乘法累加器(MMACS),并支持各种创新应用项目。凭借该器件,TI公司拓展了C64xTM DSP系列产品的应用空间,满足了更低功耗和成本的高效能应用需求,包括小区媒体服务器、安全/监视系统、电信/数据通信系统及硬拷贝设备应用。 (4)嵌入式片上系统(Embedded System On Chip,ESOC),随着EDI的推广和VLSI设计的普及,以及半导体工艺的迅速发展,在一个硅片上实现一个更为复杂的系统的时代已来临,这就是System On Chip (SOC)。各种通用处理器内核将作为SOC设计公司的标准库,与许多其他嵌入式系统外设一样,成为VLSI设计中一种标准的器件。它用标准的VHDL等语言描述,存储在器件库中。用户只需定义出其整个应用系统,仿真通过后就可以将设计图交给半导体工厂制作样品。这样,除个别无法集成的器件以外,整个嵌入式系统大部分均可集成到一块或几块芯片中去。应用系统电路板将变得很简洁,对于减少体积和功耗,提高可靠性非常有利。 SOC可以分为通用和专用两类,通用系列包括Infineon(Siemens)的TriCore,Motorola的M-Core,某些ARM系列器件,Echelon和Motorola联合研制的Neuron芯片等。专用SOC一般用于某个或某类系统中,不为一般用户所知。一个有代表性的产品是PHILIPS的Smart XA,它将XA单片机内核和支持超过2048位复杂RSA算法的CCU单元制作在一块硅片上,形成一个可加载Java或C语言的专用的SOC,用于公众互联网如Internet安全网。 嵌入式系统实现的最高形式是单一芯片系统,而SOC的核技术是IP核(即知识产权核Intellectual Property Kernels)构件。IP核分为硬件核、软件核和固件核。硬件核主要指8/16/32/64位MPU核或DSP核。硬件提供商以数据软件库的形式,将其久经验证的处理器逻辑和芯片版图数据供EDA工具调用,在芯片上直接配置MPU/DSP功能单元。软件核是指软件提供商将SOC所需的RTOS内核软件或其他功能软件,如通信协议软件、FAX功能软件等构成标准API方式和IP核形式的构件。此构件供IDE和EDA工具调用制成FLASH或ROM可执行代码单元,加速SOC嵌入式系统定制和开发。目前,一些嵌入式软件供应商纷纷把成熟的RTOS内核和功能扩展件以软件IP核构件形式出售,Microtec的VRTXoc for ARM就是典型例子。 由上可见,嵌入式片上系统的设计的关键是IP核的设计。IP核技术是嵌入式的重要支持技术。在设计嵌入式系统时,可以通过使用IP核技术完成系统硬件的设计。 IP设计技术是一种集成电路设计技术,是以电路模块知识产权使用为核心的电子系统设计技术。在IP技术中把不同功能的电路模块称为IP,这些IP都是经过实际制作并证明是正确的。在EDA实际工具中把这些IP组织在一个IP元件库中,供用户使用。设计电子系统时,用户需要知道IP模块的功能和技术性能。通过把不同的IP模块镶嵌在一个硅片上,形成完整的应用系统。IP技术极大地简化了SOC的设计过程,缩短了设计时间,因此已经成为目前电子系统设计的重要基本技术。 2.嵌入式调试 整个嵌入式系统的开发离不开嵌入式系统的调试工具和优秀的开发平台;嵌入式调试包括硬件调试、软件调试、模拟调试。嵌入式开发平台包括嵌入式操作系统和嵌入式开发工具。在嵌入式开发工具中有编程器、调试器和跟踪器等。1)实时在线仿真系统ICE(In-Circuit Emulator),它不仅是软件、硬件排错工具,同时也是提高和优化系统性能指标的工具。调试功能强大,但其硬件的费用较高,在一般的嵌入式调试中很少用到。2)Monitor调试。实际上是一段监控程序,主要完成接受宿主机传送过来的控制命令,然后对其解析,并在目标机上执行。然后把目标机的一些结果和状态反馈给宿主机。在EPSON提供的调试开发中,Monitor调试提供了两种形式:硬Monitor调试,即用硬件来完成监控功能和软Monitor调试,即用一段监控程序来完成监控功能。使用硬件完成监控功能的这种调试尽管成本较高,但调试起来比较可靠和稳定。如果用一段监控程序来监控,首先就需要将这段监控程序下载在目标系统中,并对监控程序所在的存储区进行保护,方便但在调试过程有时表现不稳定。3)模拟模式(Simulator)。不需要目标机,在宿主机上可以仿真目标机的环境,运行本应在目标机上执行的程序。它仅是逻辑功能上的验证。一般情况下,在嵌入式系统的调试中首先进行模拟调试,对用户程序进行逻辑验证,然后再进行在线仿真调试,对实际环境进行仿真验证。经过这两极的调试,最后用户的程序就可在目标系统中正常工作了。 3.嵌入式FLASH的编程 (1)编程器编程 它是最原始的编程的方法。在编程芯片焊装到电路板之前使用专门的编程器对芯片进行代码或数据的写入,然后将编程的芯片安装到电路板上。使用编程器特别使用于DIP封装的芯片,如果是其他类型的封装(如TSOP56、PLCC、DFP、PSOP、SOIC、SSOP、SDIP等)则需要相应的适配器。 常用的编程器有SUPERPRO/V,LABTOOL-48等。 (2)普通接口编程 这种编程方式不需要系统板长的处理器提供特殊的编程接口,如JTAG,BDM接口。它直接通过串口或者网口就从主机把程序写到FLASH中,从而实现对FLASH的编程。如,EPSON提供的调试方式中的MON调试方式,就是利用串口对FLASH编程的。这种编程方式直接简单,并不需要对处理器有特殊等要求。 (3)JTAG编程 1)JTAG接口 这种方法是直接利用电路板上带JTAG接口的器件(如CPU,CPLD,FPGA等),再通过同样接口的JTAG仿真器将目标板与宿主机连接起来,对目标机上FLASH进行编程的。 一般高档的微处理器都带JTAG接口。通过JTAG接口既可对目标系统进行测试,也可对目标系统的存储单元,如FLASH进行编程。目标机上存储器的数据总线、地址总线、控制接口直接连在微处理器上;通过执行宿主机相关程序,将编程数据和控制信号送到JTAG接口芯片上;利用相应的指令按照FLASH芯片的编程时序从微处理器引脚输出到FLASH存储器中。 2)JTAG介绍 面对复杂电路设计,整板测试的难度及表面贴装技术带来的有限测试引脚等问题,不得不逊找一个标准加以解决,于是提出了JTAG(Joint Test Action Group)。 JTAG技术是一种嵌入式调试技术。它的接口标准是IEEE1149.1,此标准是用来测试端口和边界扫描的。边界扫描接口技术起始于1980年,用于解决物理存取问题。这个技术在芯片机中封装了测试电路,形成一种板级测试协议JTAG接口标准,将极其复杂的电路板测试转换成具有良好结构性的测试,可以通过软件简单而灵活地处理。这个标准定义了可用于完成功能和互连测试以及内建自测过程的各种指令。 3)JTAG接口的内部结构 在硬件结构上,JTAG接口包括两个部分:JTAG接口控制器和与JTAG接口兼容的器件,可以是微处理器(MCU),PLD,CPL,FPGA,ASIC或其他符合IEEEE1149.1规范的芯片。IEEE1149.1标准规定对应数字集成电路的每个引脚都设有一个移动寄存器单元,这些单元称为边界扫描单元BSC。它将JTAG电路与内核逻辑电路逻辑联系起来,同时隔离内核电路和芯片引脚。有集成电路的所有边界扫描构成单元扫描寄存器BSR,边界扫描寄存器仅在进行JTAG测试时有效,在继承电路正常工作时无效,但不影响集成电路的工作。 用JTAG接口测试的逻辑电路由3个部分组成:①测试当问端口TAP控制器。TAP控制器提供对嵌在JTAG兼容器件内部的用于测试功能电路的访控制。TAP控制器是一个同步状态机,每一个JTAG兼容器件都有自己的TAP控制器。通过测试模式选择TMS和TCK控制状态的转移,实现由IEEE1149.1标准确定的测试逻辑电路时序。②指令寄存器。它是基于电路的移动寄存器,通过它可以串行输入执行各种操作指令。③数据寄存器。它是一组基于电路的移位寄存器,操作指令被串行装入由当前指令所选择的数据寄存器,随着操作的执行,测试结构被移出。 4)JTAG引脚定义 JTAG接口主要包括5个引脚:TMS,TCK,TDI,TDO及一个可选配的引脚TRST,这些引脚用于驱动电路模块和控制执行规定的操作。 TCK(Test Clock)——测试时钟。为TAP控制器和寄存器提供测试参考。在TCK的同步作用下,通过TDI和TDO引脚串行出入或移出数据及指令。 TMS(Test Mode Selector)——TAP控制器模式选择器。TCK上升沿时刻的TMS状态来确定TAP控制器的状态。 TDI(Test Data Input)——JTAG指令和数据寄存器的串行数据输入端。通过TAP控制器和当前状态以及保持在指令寄存器中的具体指令,来指定一个特定的操作由TDI装入哪个寄存器。并在TCK的上升沿时刻被采样,结果送到JTAG寄存器组。 TDO(Test Data Output)——JTAG指令和数据寄存器的串行数据输出端。通过TAP控制器和当前状态以及保持在指令寄存器中的具体指令,来决定在一个特定的操作中哪个寄存器的内容送到TDO输出。对于任何操作,在TDI和TDO之间只能由一个寄存器处于有效连接状态。 TRST(Test Reset)——测试复位输入信号,低电平有效,为TAP控制器提供异步初始化信号。 5)TAP控制器转换 TAP实际上是一个16种状态的同步状态机,每一种状态的转换是由TMS和TCK来触发的。测试访问状态机的主要目的是选择指令寄存器或者数据寄存器,使其连接到TDI和TDO之间。 TAP复位状态是很重要的。当要进入TAP复位状态时,一般要保持TMS为高电平。当由其他状态转换到测试逻辑复位状态时,将对JTAG口和测试逻辑复位,但并不对CPU和外设复位。 6)JTAG的寄存器扫描
7)JTAG闪存编程层次图 用JTAG端口访问FLASH的编程层次图。 从编程层次图可以看出,对FLASH的操作通过转换为对相应的FALASH寄存器进行操作;而对这些FLASH寄存器的操作又是通过转化为JTAG接口的基本操作来实现的。 8)用JTAG接口对FLASH编程 为了说明利用JTAG接口对FLASH的编程思想,下面以一个网络评估板为例。此评估板采用的CPU是S3C4510B,FLASH芯片采用的是Intel 28F320J3A,除此之外,还有一些SRAM和外围接口(如以太网、串行接口等)。 利用JTAG接口对FLASH编程的实物连接模型。
Intel 28F320J3A采用高密度对称块体系结构;它有32个块,每一块容量为64KB。一般的FLASH设备有两种模式:X8模式(传输数据的有效位是8位)和X16模式(传输数据的有效位是16位)。 对FLASH编程时,一般首先要检查FLASH设备的识别码(包括厂商代码和设备代码);然后进行擦除命令,或擦除整个块,或者擦除所需的块;最后对擦除过的块进行写入字节或者字。下面是一个利用JTAG接口对FLASH编程的流程图。
4.基本嵌入式系统的外围接口 (1)预分频器(Prescaler) 预分频器就是将系统时钟源按需求分频来提供给内部的外围电路。它的分频率可根据需要来设定,分频后的时钟可以提供给系统内部的可编程定时器,A/D转换器等。通常实现分频器的电路是计数器电路。32768Hz的信号分频为1Hz的分频倍数为32768或215,实现给分频功能的计数器相当于15级二进制计数器。 在TTL和CMOS数字集成电路中,实现分频次数最高的计数器有两种CMOS计数器电路:CD4060和CD4040。其中,CD4060计数器为14级二进制计数器,可以将32768Hz的方波信号分频为2Hz。 如下图,以S1C33209预分频器的结构为例,这个预分频器中包括分频比率选择器、控制寄存器、分频输出控制等部分。预分频器将源时钟OSC3,PLL输出时钟或者OSC1时钟分频后输出给内部的外围电路,其中的分频比率可在程序中设定,如1/2,1/2,1/4,1/8,1/16等。预分频器分频后的时钟作为6路16位的可编程定时器,4路8位可编程定时器和A/D转换器的时钟源。
它是常见的外围接口,它一般具有定时和计数功能。一般,多任务的时间片调度、分频、定时中断等操作都要用到定时和计数功能。 常见的定时有一下3种方法: 软件定时——靠执行一个循环程序来进行时间延迟。 硬件定时——通过电路中的元件参数来调节定时时间。 可编程定时器定时——采用对系统的时钟脉冲计数,通过初始设定计数值来改变定时的时间。 一般有8位和16位的可编程定时器,Intel MCS-51单片机有两个可编程的定时器/计数器,他们都是16位的,相当于计数周期为216,通过此定时器来设定计数的初始值,进行定时和计数控制。 S1C33209中的8位可编程的定时器有一个8位预值计数器、8位递减计数器和溢出的控制电路等。首先在8位预值计数器中设定初始值,然后根据时钟脉冲对初始值递减,当8位递减计数器中的值为零时,将由相应的控制电路产生一个时钟信号给内部的外围电路或者一个中断信号给中断控制器,让它们进行相应的处理。 (3)PWM(脉宽调制) PWM脉宽调制信号即脉冲的宽度可根据需要调制,一个PWM与一个低通滤波器(RC电路)相结合可以用做简单廉价的数/模转换器DAC。其输出可用于驱动电压控制器件或需要模/数转换器ADC采样受控参数的反馈控制系统中。PWM常用于电机控制系统中。 PWM包含两步分:一个用于产生给定周期和占空度的PWM定时器;另一个用于将PWM波形转换为模拟电压输出的低通滤波器。 脉冲宽度调制PWM是通过改变一个脉冲的宽度或周期波形的占空比来对数据进行编码的。一般,使用一个定时器为某个端口引脚的高低电平切换进行定时产生所需要的PWM波形。按给定占空比生成的PWM波形被输入到一个低通滤波器,该滤波器将消除PWM波形的大部分。低通滤波器将PWM波形高电平持续时间转换成系统输出端的电压。 (4)Watch Dog Timer(看门狗定时器) 在嵌入式系统中,由于环境恶劣,很容易造成系统处理器执行错误的程序。 使系统进入死循环。在这种情况下,看门狗定时器是一个有用的外围设备,用于捕获和复位已失去了控制的处理器。 看门狗定时器是一个简单的计数器,经过一个指定的间隔时间来复位微处理器。在一个较好的系统中,软件将定时监视或重新置位看门狗定时器。当系统启动后,看门狗定时器每经过一个预定的时间间隔来计数。当软件与设备正常工作时,软件通过定时来重置看门狗定时器。当软件和设备无效工作时,看门狗将得不到置位,这样不断计数,直到溢出;一旦溢出,将产生一个复位信号并重新复位系统。 看门狗定时器可设计在芯片内部或外部。设计在芯片内部的看门狗定时器可充分利用微处理器使用的高精度的晶振时钟,准确地计数和复位,而不是采用精度不高的RC晶振时钟。
这是EPSON S1C33209处理器的看门狗定时器,此看门狗定时器计数器采用了芯片内部的16位可编程定时器。EWD是看门狗定时使能信号,当溢出后将产生不可屏蔽的中断信号NMI,并通过它来复位系统。 (5)A/D或者D/A转换 A/D或D/A转换电路用在专门的系统或者作为扩展的外围电路中。A/D转换器用于实现模拟信号向数字信号的转换。其原理是先对模拟信号采样,然后进行量化使模拟信号转换为数字信号。A/D转换的精度与信号的采样精度和量化位数都有密切的关系。D/A转换就是将数字信号经过相应的信号处理,然后经过低通滤波得到所需的模拟信号。 通常,为了使A/D输出信号经过D/A还原后能更好地反映输入模拟信号的变化,根据采样定理,采样频率一般要高于或至少等于输入信号中最高频率分量的两倍,这样才可以使被采样的信号能够被还原为原始的输入信号。在输入信号频率不是太高的实际应用中,一般取采样频率为最高频率的4~8倍。 在设计A/D转换器和微机接口时需要注意以下几个方面:1)A/D转换其的输出和CPU的接口方式,主要有两种连接方式。一种是A/D芯片输出端直接与系统总线相连;另一种是A/D芯片输出端通过接口电路与总线相连。2)A/D转换器的分辨率和微机数据总线的位数匹配。当10位以上的A/D转换器与8位数据总线连接时,由于数据要按字节分时读出,因此从8位数据线上需分两次来读取转换数据。设计接口时,数据寄存器要增加读写控制逻辑。3)A/D转换的时间和CPU的时间的配合,要注意A/D转换的启动方式,通常启动信号分为电平控制启动和脉冲启动两种。还要注意转换后信号的处理。4)应注意A/D的控制和状态信号。因为A/D转换器的控制与状态信号的类型和特征对接口有很大影响,所以在设计时必须注意分析控制和状态信号的使用条件。5)应注意输入模拟电压的连接,特别是多路模拟电压的切换控制。6)对于接地问题,为了减轻数字信号脉冲对模拟信号的干扰,数字地和模拟地需要正确连接。 在设计D/A转换器和微机接口时需要注意以下两点:1)要了解选用的D/A转换器本身是否带数据锁存器。若芯片内部带锁存器,就可以直接与CPU的数据总线相连接;若不带,在接口电路中就需要通过数据锁存器来连接CPU的数据总线和D/A转换器的数据线。2)要注意D/A转换器的位数和所要连接的微机数据总线的位数是否一致,以使决定在需要添加数据锁存器时,添加几级锁存器。如CPU的数据总线是8位,应使用大于8位的D/A转换器,通常采用两级缓冲结构与CPU数据总线相连。 A/D按转换的原理可分为4种:计数式A/D转换器、双积分式A/D转换器、逐次逼近式A/D转换器和并行式A/D转换器。目前,使用最多的A/D转换器是双积分和逐次逼近式A/D转换器。 (6)I2C(Intel Integrated Circuit)总线接口 当处理器内部I/O比较局限时,需要进行外部I/O扩展。一般的I/O扩展有两种形式:并行总线扩展和串行总线扩展。串行总线扩展通过串行接口来实现,这样减少了芯片的引脚数,简化了系统的体系,增加了系统的灵活型。目前,串行总线扩展有I2C共用双总线和SPI三线总线等。 引入I2C总线接口的原因:在消费电子、通信和工控的一些系统设计上都有很多相似部分,其中 包括1)都有一些智能控制,如使用微处理器;2)都有一些通用的电路,如LCD驱动、I/O端口、RAM、EEPROM和一些数据转换电路;3)有面向应用的电路,如数字解调和数字信号处理等。为了充分利用以上设计的相似之处,使硬件工作更有效,电路更简单,引入了I2C总线。I2C总线是一个简单的双向两总线。通过此总线对IC进行控制非常方便。 I2C总线的特点:1)它仅有两条总线信号线:SDA(Serial Data Line串行数据信号线)和SCL(Serial Clock Line串行时钟信号线)。2)每一个连在此总线的设备是可编址的。采用I2C总线连接的设备处于主从模式,主方既可接受数据,也可发送数据。3)I2C总线是一个真正多主总线,含冲突检测和竞争功能,从而确保当多个主方同时发送数据时不会造成数据冲突。4)I2C总线是一个串行的8位双向数据传送总线。在标准模式下,数据传输速率为100Kb/s;在快模式下,数据传输数率为400Kb/s;在高速模式下,数据传输数率为3.4Mb/s。 I2C总线的术语:传送器——将数据送到总线的设备 接收器——从总线上接收数据的设备 主设备——一个能发起传输,产生时钟同步和终止传输的设备 从设备——能被一个主设备寻址的设备 多主方——在同一时间有多个主设备想控制总线 竞争——当存在多主方时,这些主方必须竞争确保只有一个获得总线 I2C总线是一种用于IC器件之间进行连接的二进制总线。它通过两根信号线(SDA和SCL)传输信息,并通过地址来识别连接此总线接口的设备,如存储器,键盘接口等。 SDA和SCL都是双向的I/O线,它们通过上拉电阻连接到正电源。当总线空闲时,两条信号线都是高电平,连接在总线上的器件的输出级必须是开漏或集电极开路,以实现线与功能。 I2C总线的数据传输可以从位传输和字节传输两方面介绍。当位传输时,必须有一个时钟脉冲产生。因此在I2C总线中接口连接器件的制作工艺不同(如CMOS,NMOS等),位的逻辑0和1的电平不是固定的,它根据连接的电源VDD来确定。 SDA数据线上数据要保持稳定,必须使时钟信号线为高电平;如果SDA数据线上的数据高低状态要变化,就需等待SCL时钟信号线为低电平。 在位传输时,有两个重要的传输位:START(开始位)和STOP(结束位)。START位处在当SDA信号线的状态由高到低转换且SCL信号线为低时。STOP位处在当SDA信号线的状态由低到高转换且SCL信号线为高时。 在字节传输时,传送到SDA线上的每一个字节必须为8位;每次传送的字节数不限;每一个字节后面必须跟一个响应位。数据在传输时,首先传输最有意义位(Most Significant Bit,MSB)。如果在传输的过程中,从设备不能一次接收完一个字节,此时它就使时钟置为低电平,迫使主设备等待;当从设备能接收下一个数据字节后,将释放SCL线,继续后面的数据传输。 (7)SPI总线接口 SPI总线是一个4线的串行通信接口总线。它也是一个同步的串行数据连接,支持在CPU和其他支持SPI的设备之间进行低(或者中)带宽的网络连接。它基本上是一个简单的同步串行接口,可用很少的信号线连接外部低速的设备。它工作在主从模式下。当两个设备通过SPI总线连接时,一个作为主设备,另一个作为从设备。主设备驱动串行时钟。当使用SPI时,数据可同时接收和发送,即SPI总线接口是全双工的接口。 SPI接口是Motorola在其MC68HCXX系列中定义的标准接口。它有4条信号线。 SCK(Serial Clock,串行时钟)信号线——由SPI总线上的主设备驱动。它可调整数据比特流。主设备可在不同的波特率下传输数据。SCK根据传输的每一位来循环。 MOSI(Master Out Slave In,主输出、从输入)信号线——数据从SPI总线的主设备输出,然后从SPI从设备输入。 MISO(Master In Slave Out,主输入、从输出)信号线——数据从SPI总线的从设备输出,然后从SPI的主设备输入。只有一个被选择的从设备能驱动从MISO输出。 SS(Slave Select,从设备选择)信号线——此信号通过硬件控制选择一个特殊的从设备,没被选中的从设备不与SPI总线交互。 SPI总线特性如下:具有全双工,3线同步传输;有主从工作模式;有1.05MHz的最大主机位速率;有4中可编程的主机位速率;可发送结束中断标志;有写冲突保护;有总线竞争保护。 |
|||||||||||||||||||||||||||||||||||||||