精华内容
下载资源
问答
  • 本应用指南面向的读者是数字系统设计师,他们在研发过程中会用到模拟数字元器件,包括采用串行总线... 串行总线协议简介多年来,并行总线一直是基于微控制器 DSP 的设计与外设器件通信的主要方法。微控制器 D...

    本应用指南面向的读者是数字系统设计师,他们在研发过程中会用到模拟和数字元器件,包括采用串行总线的微控制器和 DSP 系统。本文讨论调试串行总线设计所面临的挑战和新的解决方案,这些串行总线包括控制器局域网(CAN)、集成电路间总线(I2C)、串行外设接口(SPI) 或通用串行总线(USB)。

    串行总线协议简介

    多年来,并行总线一直是基于微控制器和 DSP 的设计与外设器件通信的主要方法。微控制器和 DSP 广泛用于各式各样的应用,例如蜂窝电话这样的消费类产品,汽车中的电气系统控制,以及工业应用中的各种嵌入式系统。在这些应用中,总线速度通常为数十兆赫兹或更低。但这些应用的复杂程度在不断提高,而同时又要保持最低的成本,因此串行总线成为器件与外设间通信的主要方法。串行总线除了成本低之外,它还具有更低的功率,更少的引脚数,因而只需要较少的电路板空间。

    串行总线只需要最少的控制线和连接,就能在串行线上传输数据。目前,许可制造商都按串行协议接口设计种类繁多的器件。这些总线广泛应用于微控制器和 DSP 与 EEPROM、模数转换器、传感器、激励源和各种其他外设的接口。在电视设备、蜂窝电话、汽车和许多其他工业应用中,其内部的控制总线和网络常常采用串行总线通信协议。

    串行总线的主要优点是只需要较少的信号,缺点是难以兼顾速度。微控制器的 I/O 端口与串行器件的通信要花相当多的时间。在混合的模拟和数字设计中,采用串行端口的另一个缺点是系统的调试问题。目前,要想从长长的串行数据流中提取协议自身的信息并确定器件间的交互作用还是相当困难。

    使用混合信号示波器调试串行总线系统

    在调试混合模拟和数字串行总线设计时, 会遇到不同类型的测量问题。设计师可能需要调试串行总线协议本身的行为,也可能要用某种现成的串行协议实现子系统或器件间的通信和协调工作,以完成整个设计。对于前者,用户往往会使用示波器调试协议的物理层,测量上升和下降时间、建立和保持时间等参数,分析系统中时钟和数据线上的信号电平。对于后者,设计师可能会查找系统中功能和集成方面的问题,也许还要分析相关时序和总线上的数据内容。

    使用传统方法调试目前的串行总线设计是一个非常大的挑战。调试这些系统的一般方法是使用逻辑分析仪和示波器。不过, 由于数据是逐位读出的,并非所有数据都有时间参考,因此在所关注的串行总线上进行触发可能很困难。而过去用逻辑分析仪调试并行总线时,可通过设置码型触发或状态触发直接找到所关注的互动。

    但是,要根据长串行数据流中的内容设置逻辑分析仪触发则是另一个话题。要在串行协议中的码型上触发逻辑分析仪,就需要创建一个状态机在协议中寻找您关注的码流和帧信号。但大多数逻辑分析仪的状态仅有 16 级,不能满足查找长数据流问题的级数要求。

    该解决方案需要进繁琐的测量设置,这可能使用户受到极大的困扰。如果用户需要在系统上执行参数测量,那么将逻辑分析仪与示波器相关联将更加耗时。而且这将要求两种仪器上都有深存储器,以观察长串行数据流。由于设计具有严格的进度计划和项目完成日期,多数设计师都认为在调试串行总线相关设计时,需要有更好的技术和测量仪器。

    为应对这些挑战,是德科技在 1996 年推出了混合信号示波器 (MSO) 来作为调试串行总线接口的一个有效方法。混合信号示波器拥有专门针对串行协议的触发和解码能力。这些特性解决了在特定协议条件下使用逻辑分析仪和示波器进行触发的难题。Keysight 混合信号示波器 MSO 能在长串行数据流中自动找到要求的码型,而无需在逻辑分析仪中建立复杂的状态机。混合信号示波器是带宽高达 1 GHz,具有 16 个数字定时通道和 2 个或 4 个模拟示波器通道的仪器。此外,混合信号示波器还使用 Keysight Mega Zoom III 技术,拥有非常深的存储器采集记录。这些触发特性很容易设置,能缩短采用串行总线通信的嵌入式系统的调试时间。

    Keysight 混合信号示波器 的串行总线应用特性使其能够对带有同步时钟的串行总线 (例如 I2C)、带有分立时钟和数据线的 SPI 总线以及带异步时钟 (如 RS232 和其他 UART 协议) 的总线进行触发和解码。此外,Keysight 混合信号示波器 还能建立触发,并对数据流中具有嵌入式时钟的串行总线 (例如 CAN 和 USB) 进行K解码。这些强大的触发和解码特性使它更容易关联串行数据和长数据流上的定时。

    Keysight 混合信号示波器具有高达8 M 的MegaZoom I I I 深存储器, 能轻松、快速地捕获和分析长串行数据流。在这样一台拥有Mega Zoom III 深存储器和仪器上,您能够观察快速的数字信号,并将这些信号和长串行数据数据流中的慢模拟信号建立关联。另外,MSO 的 16 个数字通道和 2 个或 4 个模拟通道采集可自动进行时间关联。MegaZoom III 深存储器解决了需要触发两次来获得长时间捕获信号观察信号细节的两难问题。

    图 1 显示了一个基于微控制器设计的实例,使用微控制器控制和监测家庭中的各种电气设备。微控制器通过SPI 总线与射频收发信机、RS232 桥接器、EEPROM、小键盘和显示器通信。MSO 是调试这一设计的理想工具。通过将其模拟通道和数字通道结合使用,用户可以建立串行总线活动与系统其他部分发生事件的关系。从而更容易找到串行总线问题的原因,例如丢失确认信息、信息交换不符合规范或包数据的无意丢失。此外,触发和解码特性还提供了实时观察问题的能力,以代替过去先捕获数据,然后通过后期处理观察数据记录的方法。这样,用户就能确保所观察的信号是系统中当前定时关系的精确表示。
    许多设计中都使用一种以上的串行通信接口。例如,设计中可能用 I2C 总线与本地EEPROM 通信,而另一器件可能用 SPI 总线与其他外设通信。整个设计也许会通过 USB 或 CAN 连接到外部网络。用一台仪器调试系统的多个部分可缩短调试时间、降低成本和减少挫折。
    使用具有 Mega Zoom III 深存储器及特定协议触发和解码能力的 Keysight MSO 应对新挑战,就能在目前采用串行总线的嵌入式设计中找到和观察长串行数据流中的问题。这篇应用指南为您介绍Keysight MSO 串行协议,包括I2C、SPI、CAN 和 USB 协议的触发和解码特性,以及这些特性如何比过去更容易和更有效地调试基于微控制器和DSP 的设计。

    0a88b5ba8515a0df42af607492485ff7.png

    图1. 一个基于微控制器设计的实例,使用微控制器控制和监测家庭中的各种电气设备。微控制器使用 SPI 总线与射频收发信机、RS232 桥接器、EEPRPOM、小键盘和显示器通信。

    可能的应用

    控制和监视家庭中的所有可控系统, 如:
    - 供暖系统
    - 报警系统
    - 烟雾探测器
    - 仪表系统(电表和水表等

    集成电路间总线(I2C) 简介

    I2C (集成电路间) 总线最初由 Philips 公司开发, 用于电视接收机中各器件间的通信。现在,I2C 已用于多种应用,以实现高效的集成电路间控制,并得到大量半导体厂商的支持。I2C 总线包括两条双向的信号线总线,即 SCL (串行时钟) 和 SDA (串行数据)。所有 I2C 总线器件都有芯片上接口,允许彼此间直接通信。大多数 I2C 器件的工作速度高达 400 Kbps,也有一些达到了几兆赫兹的范围。
    I2C 协议具有严格的定义,并制定了寻址方式,因此不需要芯片选择或逻辑控制。这是嵌入式设计中连接多个器件的简单而经济的解决方案。在 I2C 总线协议首次推出时采用的是 7 位寻址。为适应对更大的地址空间要求,现在允许进行 10 位寻址,速度提升至 3.4 MHz,并可向后兼容。由于它价格较低,因此在许多产品中都得到广泛应用,包括蜂窝电话、音频/ 射频仪器、医疗设备和各种工业应用。事实上, 目前已有数百种 I2 C 器件。例如,嵌入式系统中的 I2C 器件,其中包括EEPROM、热传感器和实时时钟。

    I2C 总线在物理上包括 2 个有源信号和 1 个接地连接。信号 SDA 和 SCL 均为双向信号。每一个与总线连接的元器件都有其专有地址,无论是 CPU、LCD 驱动器,还是EEPROM。这些芯片根据其功能作为接收机和/或发射机,还可拥有一个或多个总线主器件。总线上数据传输的发端器件通常被认为是总线主器件。主器件通常为微控制器、微处理器或 DSP。图 2 显示了具有I2C 总线的嵌入式系统实例。

    f943dd4c44801da7db60cb0fd44b96cc.png

    图2. I2C 总线系统实例。I2C 总线包括2 个有源信号SDA 和SCL。总线上的每一个器件都有自己的专有地址。

    使用Keysight 混合信号示波器 的触发特性调试I2C 总线系统

    用传统示波器进行调试并确定长串行数据流中的数据和定时关系既费时又费力。典型的问题是微控制器向器件 (例如 LCD 控制器) 发出信息请求,但未能由从器件中得到任何信息。要想使用传统示波器调试该问题,需要用边沿或码型触发记录长长的串行数据流。然后,用户要通过一帧一帧地滚动数据搜索特定问题。这种方法非常耗时。
    使用具有 I2C 触发特性和深存储器的 MSO 是调试 I2 C 总线器件问题的理想解决方案。它具有 4 个模拟通道和 16 个数字定时通道,可在探测两个总线信号的同时探测其他信号,例如 EEPROM 上的数据线和地址线,查看系统中实际产生的问题。凭借这些特性,就可以轻松地通过触发和设置地址和数据条件调试共用 I2C 总线的条件,问题既可能出在系统行为上,也可能出在特定I2C 帧上。

    I2C 触发特性

    设置 I2C 触发特性非常简单。所有特性均可通过 MSO 易于使用的界面访问。将数据(SDA) 和时钟(SCL) 分配给特定示波器通道后,用户便可以选择I2C 串行触发选件, 如图 3 所示。总线中的这两条线可使用数字定时通道或模拟示波器通道来探测,并在屏幕上自动标记时钟线和数据线。

    223ec61d9c3b1cdaa79a135662c8182e.png

    图3. 在混合信号示波器上设置I2C 触发。MSO 的快速帮助屏幕给出了如何使用I2C 触发特性的详细说明。

    内容触发: 在特定地址值和数据值的读写帧上触发

    典型的 I2C 帧中有一个起始条件,一个用以配置某一从器件的读写操作的控制字节、一个有效确认时钟脉冲以及代表数据的其他字节。MSO 可以很容易配置为根据控制字节或副字节的地址和/或数据进行触发。

    这是一种强大的触发特性,当某特定地址的器件写入或读出某一数据值时,MSO 可使用户看到 I2C 内的帧触发。例如在图4 中,当微控制器把十六进制数据值 41 写入 I2C 总线地址为十六进制值 50 的小键盘时,MSO 就触发。这一特性对查找软件例程中讲不正确数据写入器件的错误是非常有用的。

    EEPROM 数据读触发

    在 I2C 协议中,EEPROM 有预先确定的总线地址,即二进制的 1010xxx。EEPROM 数据读触发查找SDA 线上与此码型匹配的地址,该地址后是读位和确认位。当数据符合用户设置的限定条件时,MSO 便在发送数据后的确认时钟沿上触发。

    Keysight 混合信号示波器 MSO 可在 "当前地址读" 周期、"随机读" 周期或 "连续读" 周期中的任何数据字节上触发。MSO 触发硬件首先查找适当的控制字节,接着查找符合用户限定要求的任何数据字节。这些限定包括小于、大于、等于、不等于和无所谓。

    例如,假定微控制器把来自温度传感器的校准数据保存在存储器中,以备在日后的程序中使用。但在读回数据时发生了错误,造成传感器提供不正确的数据。MSO 的触发特性使用户可以轻松快速地跟踪及调试从系统的 EEPROM 中读出的数据。

    1852bd2e3325124997f133cc9c4570a8.png

    图4. 在带有地址和数据的写入帧上进行I2C 触发。当某特定地址的器件写入或读出某一数据值时, 这一强大的触发特性可使用户看到I2C 内的帧触发。

    I2C 总线启动和停止触发

    使用 I2C 协议,在任何总线事务产生前必须有一个启动条件。启动条件以信号的形式, 通知所有连接器件,总线上将有消息发送。这样,所有连接的芯片都将监听总线。在发送消息后产生停止条件。停止条件也以信号的形式,通知所有总线器件,总线已再次处于空闲状态。芯片在消息发送期间被访问,之后将处理接收到的信息。

    使用边沿触发的传统示波器很难找到 I2C 总线上的启动和停止条件,而且往往需要用户通过水平滚动屏幕在数以百计的脉冲中寻找。使用如图 5 所示的 I2C 启动条件触发,通过在 SCL (时钟) 线为高时查找SDA (数据) 线从高到低的跳变,MSO 即可在检测到启动条件时触发。

    I2C总线重新启动触发

    在一条消息内可能有帧的多个启动条件。具有 I2C 触发能力的 MSO 可在启动条件产生后的帧中找到重新启动。

    I2C 总线确认丢失触发

    在传输完每个字节后,通常都会发送确认消息。SDA 线被上拉到高后,SCL 线上有脉冲出现,就会发出对应一个确认消息。如果此期间一直未发送确认命令,就会使总线挂起,从而难以找到问题所在。是否微控制器未能发送正确的地址信息或者从器件没有响应? 将MSO 设置为确认丢失触发,可以非常快地隔离这一问题。它能在任何大小12C 帧的地址/控制字节或数据的任何地方找到丢失的确认事件。

    10 位写入触发

    10 位寻址允许使用多达 1024 个地址,可解决随 I2C 器件数量扩展的从地址分配问题。如果码型中的所有数据均匹配,MSO 即会在10 位写入帧内地址时触发。

    专为 I2C协议设计的 MSO触发特性使用户能够比过去更容易地调试 I2C总线,并可实时查找问题,无论问题是在协议设计本身,还是与系统中的器件相关。

    2b770f189d3e5187cb618e0fc839f02b.png

    图 5. 帧启动触发。通过在 SCL (时钟) 线为高时查找 SDA (数据) 线从高到低的跳变,Keysight 混合信号示波器 即可在检测到启动条件时触发。

    使用Keysight 混合信号示波器 MSO 的硬件加速解码特性调试I2C 总线系统

    目前,由于混合信号嵌入式设计广泛使用I2C串行协议来实现EEPROM、DAC、ADC和其他外设与微控制器、微处理器和DSP的芯片间通信;该协议以串行方式传输数据, 使用传统的示波器触发很难发现嵌入式系统中的具体情况。凭借 MSO 集成的模拟和数字通道触发能力,我们通过硬件加速解码解决方案可以使示波器同步显示特定的线性调频,并验证串行数据传输

    硬件加速解码: 更快地查找和调试间歇性串行总线错误和信号完整性问题

    其他具有串行总线触发和协议解码的示波器解决方案,通常使用软件后期处理技术来对串行数据包/帧进行解码。使用这些软件技术,通常只能达到较低的波形更新速率和解码更新速率 (有时每更新一次需要数秒钟),特别是在使用深存储器时, 往往要求捕获多个封包的串行信号。硬件快速解码支持更快的解码更新速率,可以提高示波器捕获偶发性串行通信误码的几率。MSO 是验证和调试当今的嵌入式设计的关键性工具,这些嵌入式设计往往同时涉及模拟信号、串行流量和高速数字控制信号。MSO 提供了一种综合解决方案,能够捕获和解码如图 6 所示的各种不同速率的多个模拟信号、串行信号和数字信号,并确定这些信号在时间上的关系。

    彩色编码, 硬件加速数据解码

    解码 I2C 串行总线非常简单,只需点击按钮,打开串行解码和选择菜单,选择正在使用的串行模式即可。通过屏幕上串行数据包的彩色编码显示,您可以轻松地建立数据包解码与MSO 捕获的模拟或数字信号的关系。在解码I2C 串行数据流时,Keysight 混合信号示波器 MSO 还可以在嵌入式系统的另一种信号上触发。这就形成了一个验证混合信号嵌入式设计的完整的嵌入式系统调试解决方案。

    bfff5d46ae31bed095962b92794c156a.png

    图6. 屏幕上显示的是I2C 数据包的串行解码与MSO 捕获的模拟和数字波形的时间关系

    串行外设接口(SPI) 简介
    串行外设接口 (SPI) 最初是 Motorola 公司为与许多常用通信处理器和微控制器接口所引入的串行总线标准。与 I2C 一样,SPI 能够与间歇访问的速度较慢的外设器件进行良好通信,例如与 EEPROM 和实时时钟的通信。但是,对于处理大量数据流的应用,SPI 比 I2C 更适合,因为它有高带宽(几十照赫兹),而 I2C 需要通过从器件寻址完成读写操作。数据流应用的一个实例是微处理器、微控制器、A/D 转换器、D/A 转换器或DSP 间的数据通信。

    SPI 总线上的器件使用主/从关系通信,这里主器件通常使用微控制器来启动数据传输。当主器件生成时钟信号并选择好从器件后,数据便可向任一方向或同时在两个方向传输 (称为全双工模式)。根据帧中每一位数据的值,协议就可以帮助器件确实数据是否为有效信号。

    SPI 总线包括两条数据线和两条控制线。数据线为 MOSI (主器件数据输出/从器件数据输入) 和 MISO (主器件数据输入/从器件数据输出)。控制线包括 SCLK (串行时钟) 和 SS (从器件选择)。主器件能以任何数据速率发送数据。串行时钟控制线由主器件驱动,它控制数据比特流和每个比特的发送周期。从器件选择控制线允许从器件在硬件控制下打开或关闭。与 I2C 不同,SPI 协议没有帧启动;芯片选择或从器件选择 (SS) 变为高或低 (取决于器件) 便构成一帧数据。图 7 显示网络电话的方框图,这是多从器件系统的一个实例。

    c360b885421bf71e35ace0b59b1c214e.png

    图7. 网络电话方框图, 这是基于DSP 系统的多从器件SPI 总线的一个实例。

    使用MSO 的触发特性调试SPI 总线系统

    由于 SPI 还没有正式标准,因此有多种不同的实现方法。SPI 系统中的一般调试问题包括配置控制器的时钟速率,以及每个外设时钟数据在输入和输出时的相位和极性。例如在图 8 所示的网络电话中,某些器件可能使用时钟的相同极性和相位输入和输出时钟数据,也可能不输入和输出时钟数据。因此,配置总线上的器件可能相当困难。
    配置错误可能引发系统问题,而具有 SPI 触发特性和深存储器的 MSO 是调试长串行数据流的强大工具。在之前的网络电话设计中,用户可利用 MegaZoom III 深存储器,通过一次采集同时精确捕获 20 kHz 范围音频事件与 10 MHz 的 DSP 数字事件,并观察它们之间的互动关系。用户可在目标系统中连接时钟、数据 (MISO 或MOSI) 和芯片选帧 (SS) 信号。如图 8 所示,两个模拟通道可以监测数据和时钟, 16 个数字定时通道可以监测连接到外设器件的芯片选择线。
    Keysight 混合信号示波器 在帧周期间的串行数据码型上触发。时钟斜率可设置为上升或下降边沿。串行数据串的长度可规定为 4 至 32 位,帧内的各位值可指定为 L、H 或 X (无所谓) 条件。为使工作更容易,MSO 将在屏幕上自动为源通道设置CS、Clock 和Data 标记。
    用户必须为 MSO 串行触发硬件选择一个帧信号来进行检测。这个帧信号可以是片选高有效 (SCS) 也可以是片选低 (˜CS) 有效。MSO 也可以在用户指定的时钟不活动时间后生成自己的帧信号。MSO 要求从帧信号为真到第一个有效时钟边沿有50 ns 的建立时间。数据建立时间和保持时间分别为 10 ns 和 5 ns。如果指定的数据码型为真,MSO 将在第 N 个时钟边沿(4 至32) 上触发。

    这种解决方案不仅功能强大,而且易于使用,特别是和传统的逻辑分析仪和示波器组合方案相比,后者往往不能适应串行总线系统调试。使用 MSO,用户不必手动建立逻辑分析仪的状态机制,以便在串行数据流中找到要求的码型,也不必将逻辑分析仪测试结果与示波器测试结果相关联。MSO 只需几个简单的步骤便可找到相关码型。调试 SPI 总线在过去是非常困难的事情,但 Keysight 混合信号示波器 具有专门的调试功能,可为设计师节省大量的调试时间,从而把更多的时间用在项目设计上。

    9555b7eda7123b9073bd58c52273339b.png

    图8. 在SPI信号上进行设置和触发。如果指定的数据码型为真, MSO将在第N个时钟边沿(4至32) 上触发。

    控制器局域网(CAN) 简介

    控制器区域网 (CAN) 是 ISO 为实时应用定义的串行通信总线。它在二十世纪八十年度由 Bosch 公司推出,用于为汽车电子设备提供经济高效的通信。CAN 串行总线的数据速率高达 1 Mb/s,具有出色的错误检测能力,而且极为可靠。基于这些特性,CAN 串行通信总线在汽车行业一直得到广泛应用,并且在制造、航空航天和其他许多涉及数据通信的工业领域中也越来越多地使用这一总线进行系统和子系统间的通信。

    图 9 是汽车中 CAN 总线系统的实例。典型的汽车系统可能有几个工作于不同速度、执行不同任务的 CAN 网络。例如,用于机械传动系统的高速网络,以及用于环境控制、照明和防抱死系统的若干网络。

    CAN 串行总线系统具有多主器件能力,这意味着所有 CAN 节点都可发送数据,多个CAN 节点也可同时向总线请求数据。

    与传统网络不同,CAN 不是从一个点向另一个点发送消息。在 CAN 网络中,器件没有通常意义上的地址,因为是由数据而不是由器件给出识别符。优先级方案称为带冲突检测的载波侦听多址连接 (CSMA/ CD),它将定义哪个器件是特定时间的总线控制器。具有最小数值的识别符有最高优先级,并获得对总线的控制。任何潜在的总线冲突都可在硬件内解决。消息在网络中广播,任何节点若想获取该消息,都可获取。此外,CAN 总线是双线总线, 总线信号称为 CAN_高 和 CAN_低。由于采用差分电压设计,CAN 总线有良好的噪声抗扰度和容错能力。

    7fd5b6f8ef5e1c70bc88829fc9c175d2.png

    图9. CAN 汽车系统实例。(Motorola 公司许可使用此图)

    许多半导体厂商都可提供低价位CAN 控制器、内嵌有 CAN 控制器的微控制器及接口器件。图 10 显示了典型的 CAN 节点, 包括使用外部地址总线的微控制器和专门的 CAN 控制器。某些控制器具有与地址总线上的并行器件相连的专门接口,也可使用另一种串行总线接口,例如 SPI。CAN 收发信机包括发送边和接收边,可同时在总线上进行读写操作。图 10 给出了CAN 节点的一个实例,常用于汽车中的电动窗、引擎监测或悬架控制。

    56d3c6a6cf37e71337ca88a6eb12afaa.png

    图10. CAN 节点实例。

    使用Keysight 混合信号示波器 MSO 的触发特性调试CAN 总线系统

    CAN 总线上有 4 种不同类型的通信。消息帧包括应用数据、远程帧向网络请求数据、错误帧向各节点报告错误,节点接收机电路未就绪时 CAN 帧传输产生的过载帧延迟。MSO CAN 触发模式提供与任何消息帧、延迟传输请求帧及过载帧的同步功能。

    由于信息帧通常知道 CAN 节点的过载地点,因而能同步查看特定 CAN 节点上的其他信号。图 11 显示了对 CAN 标准帧格式的MSO 快速帮助说明。

    帧的起始是Start Of Frame (SOF) 位。用户可以使用 MSO 的触发能力将示波器的采集与 CAN 帧的起始同步,从而查看所设计电路中的其他操作以及与 CAN 总线数据流具有时间关联的信号。这些触发特性可使用 29 位识别符的 CAN 2.0B 格式或 11 位识别符的 2.0 A 格式。

    我们用一个实例来说明这些特性如何用于汽车应用中的实时调试。例如,一条消息使引擎启动,但也把引擎噪声引入电子控制系统。该噪声与 Start of Frame 同步,

    而且很难隔离。如果使用边沿触发查找问题,用户便需要水平移动波形,观察一个个脉冲,即便如此,也很难使数据保持同步并建立关联。但是通过 SOF 触发功能, 这一活动便可与 MSO 触发保持同步。用户可以使用模拟通道进行探测,查看信号的噪声成分。然后通过MegaZoom III深存储器,用户可以及时地回顾帧内的事件, 从而隔离问题,并通过分析找出噪声问题的起因。

    cf4703ca77a05b3693357a42a77b7445.png

    图11. CAN 触发快速帮助说明。用户可通过Keysight 混合信号示波器 触发能力将示波器采集与CAN 帧的起始同步。

    CAN 触发特性

    用户可使用MSO 中的4 个模拟通道或16 个数字定时通道,或者模拟和数字通道组合检测 CAN 信号。当使用其中一个通道与 CAN 帧同步时,另外 17 个通道都可用于观察设计。这17 个通道与是德科技公司MegaZoom III深存储器相结合,可使您深入了解复杂的嵌入式CAN节点设计和交互。

    规定波特率

    为与总线流量正确同步,用户可规定系统波特率。波特率应遵循 CiA ( CAN in Automation) 商会推荐的波特率。

    触发信号包括CAN_H、CAN_L、Rx 或Tx

    用户还可指定需要监测的 CAN 信号, 可以是差分 CAN 信号、CAN_H 信号或 r CAN_L 信号。这些对于监测总线非常有用,特别是用户只能访问这些信号时。MSO 还可用于观察这些信号的参考信息,包括噪声尖峰、振铃和定时测量。但由于这是专为噪声环境设计的差分信号,在观察 CAN_H 或 CAN_L 信号时,噪声尖峰可能造成假触发。解决这一问题的方案是使用差分探头,例如 Keysight N2772A 20 MHz 差分探头来观察实际的抗噪差分信号。请在菜单系统中选择标题为'Differential' 的信号类型。

    用户也可在数字边收发信机信号上检测Rx 和 Tx。Rx 信号给出了总线数据流的全面情况,访问起来也很方便。Rx 信号对物理总线 CAN_H 和 CAN_L 上的噪声/电平漂移不敏感。Tx 线可提供更多信息,因为它只有在源节点发送总线消息时才有活动。对该线的检测有助于隔离特定节点的流量。

    实时触发能力、MegaZoom III 深存储器、4 个模拟通道和 16 个定时通道相结合, 使 MSO 成为调试 CAN 系统的强大工具。MSO 的 CAN 协议触发特性帮助用户轻松地同步需要的数据帧,以便找出汽车和工业设计中的问题。对于汽车电子模块内的通信,一般采用 SPI 接口。由于 MSO 能够在多种串行总线上触发,因而它不仅是调试汽车应用中 CAN 系统,而且也是用于各种工业控制系统的强大测量仪器。

    7564f9299ef4aaa133b9e4a810e437fe.png

    图12. 用户可指定需要监测的CAB 信号。此处显示的是CAN-L 信号。

    通用串行总线(USB) 简介

    通用串行总线 (USB) 具有高数据速率, 可提供从 PC 到各种多媒体和网络 USB 外设器件的简单连接。用户可以使用 PC 的USB 端口将外设添加到系统中,而无需打开系统机箱。此外,用户还能通过 USB 由一台 PC 控制多种设备,例如打印机、扫描仪、数码相机和音箱。

    集线器和主机等这类外设执行全速率(12 Mb/s) 或低速率 (1.5 Mb/s)。这一速率完全满足鼠标或键盘等设备对速度的要求;但新一代图像和视频设备,例如高分辨率打印机和扫描仪、视频会议摄像机和读写 (R/W) DVD 驱动器对速率要求较高,

    因此该速率无法满足要求。高速USB 在全速 USB 的基础上把数据吞吐量提高了 40 倍,达到了 480-Mb/s,以满足这类设备的要求。USB 2.0 版融入了低速、全速和高速,这三种速率使用相同的电缆、连接器和软件接口,是 USB 1.1 的向后兼容扩展版本。

    USB 还支持即插即用,可进行自动识别和安装。USB 已成为 PC 业界标准;现在几乎每台新 PC 都有一个或多个 USB 端口。图 13 显示 PC 通过集线器连接到多个外设的典型USB 系统。

    fdb30e3b2242bc9b3780d345da2f0b99.png

    图13. USB 系统实例。

    使用Keysight 混合信号示波器 的触发特性调试USB 系统

    如何调试USB 设备的物理层往往取决于对系统的可视性。例如,一个USB 键盘控制器往往将微控制器、EEPROM 和其他器件封装到一个芯片中。在这种情况下,用户只能访问键盘的 USB 接口线,而不能检测到控制器的内部器件。如果按下 CAPS LOCK 键 ( 大写键) , 不能接通键盘上的LED 灯,这一问题可能有几种原因造成, 可能是软件设置问题,还可能是器件故障或协议错误,亦或其他原因。为了查看相关情况和设置条件,测试设备需要能隔离出USB 包,以便找到系统中可能产生问题的地方。

    USB 串行协议有以主机为中心的总线,这意味着主机是所有事务的发射端。图 14 是 MSO 的 USB QuickHelp 说明的一个数据包实例。主机生成的第一个数据包是对后面信息的描述,包括数据处理是读还是写。下一个数据包通常是有效载荷数据包,紧跟着是数据包信息交换报告,通知数据或令牌是否成功接收,还是终点设备无法接收数据。

    USB 数据包字段包括同步字段、包 ID 字段、地址字段、终点字段、循环冗余校验字段和包结束字段。所有包都必须由同步字段开始,使发射机与接收机的时钟同步。包 ID 字段用于识别所发送的包类型,地址字段规定包所指向的设备。循环冗余校验对包中的有效载荷数据进行校验,跟着这些字段的是包结束字段。

    USB 串行总线是 4 线信号系统,信号包括VBUS、D-、D+ 和接地。D- 和D+ 是差分信号,并且是信息的主要载体。VBUS 信号向设备提供电源(通常来自主机或集线器)。

    d6c27516d3ab30d9687e705b9768da05.png

    图14. Keysight 混合信号示波器 USB QuickHelp 说明。Keysight MSO 可在低速和全速USB 上触发。

    USB 触发特性

    在 USB 触发模式中,Keysight MSO 可在低速和全速 USB 上触发。用户可通过下面的触发模式,从 2 条模拟线或 16 条数字定时线中任意选择检测线,以检测差分线D+ 和D-。

    包开始(SOP), 包结束(EOP)

    SOF 包包括 11 位帧号。Keysight 混合信号示波器 在包开始的同步位处触发。

    包结束是 USB 包中的字段,并由一定位时间的单端 0 (SE0) 标记出来。Keysight 混合信号示波器在包结束的SE0 部分触发。

    进入挂起, 退出挂起

    当总线在 3.0-ms 以上没有活动时,USB 设备将进入挂起。即,总线空闲 3-ms 以上时,MSO 触发。在退出挂起触发模式下,当退出空闲状态 10 ms 以上时,MSO 触发,以便查看挂起/恢复过渡转变。

    复位完成(RC)

    在复位完成触发模式下,MSO 将在单端 0 (SE0) 大于10 ms 时触发。

    有许多 USB 触发模式用于调试 USB 协议物理层的实例。有了这些触发模式,用户就能同步主机与 USB 外设间 USB 连接通信的USB 包,从而更轻松地建立协议内的关联,找出系统中的问题。

    edc37669d07d803ddcf76556d2b9e775.png

    图15. Keysight 混合信号示波器在包开始的同步位处触发。

    总结-
    新技术的发展总伴随着新的设计和调试挑战。是德科技Keysight 混合信号示波器 (MSO) 添加了新方法,以解决调试融合了串行总线的基于微控制器和 DSP 的设计时的问题。是德科技通过提供具有专门设计调试和解码能力的 MSO 的独特解决方案,已经解决了调试串行总线接口方面的问题,使您能够轻松地调试总线协议和器件间的相互关系。使用一台易于使用的仪器调试系统的多个部分,就可缩短调试时间、降低调试成本和减少挫折感,使设计更快地投入生产。使用Keysight 混合信号示波器 的优点有:

    ‾ 这些强大的串行触发特性允许实时触发,从而为使用I2C、SPI、CAN、LIN、RS-232/UART 或 USB 串行协议的微控制器和/或 DSP 设计确立定时关系。

    ‾ 串行协议触发特性易于使用和设置;无需设计逻辑分析仪中复杂的状态机制, 来调试串行协议。

    ‾ Keysight MSO 具有 4 个模拟通道和 16 个数字通道, 可在一台仪器中完成所有参数、定时和功能测量。

    ‾ MSO 拥有高达 8 MB 的 MegaZoom III 深存储器, 能够在一次采集中轻松、快速地捕获和分析长串行数据流, 并将快速数字信号与慢速模拟信号相关联。

    ‾ Keysight MSO 具有业界最快的波形更新速率, 最快可达100,000 波形/秒(处理模拟、数字和串行信号),以及 256 级亮度的 12.1 英寸高清晰、超快响应显示屏, 能够显示出大多数其他示波器可能错失的微小波形细节。

    ‾ QuickHelp 说明 (有 11 语言) 提供如何使用这些强大功能的细节。

    无论是是德科技独特的 2+16 和 4+16 通道混合信号示波器 (MSO),还是传统的 2 和4 通道示波器都经过优化,为验证和调试带串行总线的基于微控制器和 DSP 的设计提供所需的适当功能。该组合功能专门为您提供需要的测量功能,以便更快地将高质量的产品投放市场。

    示波器

    示波器 | Keysightwww.keysight.com
    21fb72aac273eea94975bf264d43da8c.png

    Keysight 是德科技示波器 ( 原安捷伦示波器)解决方案。模拟和数字示波器,便携式,高带宽和深存储器示波器解决方案,示波器探头和附件。是德科技拥有各类价格的示波器、KEYSIGHTCARE 服务与支持。

    展开全文
  • I2C串行总线协议的VHDL实现

    千次阅读 2012-11-09 17:15:15
    串行总线和并行总线相比具有结构简单、占用引脚少、成本低的优点。常见的串行总线有USB、IEEE1394、I2C等,其中I2C总线具有使用简单的特点,在单片机、串行E2PROM、LCD等器件中具有广泛的应用。 I2C(Inter IC BUS...

     串行总线和并行总线相比具有结构简单、占用引脚少、成本低的优点。常见的串行总线有USB、IEEE1394、I2C等,其中I2C总线具有使用简单的特点,在单片机、串行E2PROM、LCD等器件中具有广泛的应用。

    I2C(Inter IC BUS)是Philips公司开发的用于芯片之间连接的总线。 I2C总线用两根信号线进行数据传输,一根为串行数据线(SDA),另一根为串行时钟线(SCL)。I2C总线允许若干兼容器件(如存储器、A/D转换器、D/A转换器、LCD驱动器等)共享总线。I2C总线理论上可以允许的最大设备数,是以总线上所有器件的总电容(其中包括连线本身的电容和连接端的引出电容)不超过400pF为限,总线上所有器件依靠SDA线发送的地址信号寻址,不需要片选线。任何时刻总线只能由一个主器件控制,各从器件在总线空闲时启动数据传输。I2C总线数据传输的标准模式速率为100kbps,快速模式速率为400kbps,高速模式速率为3.4Mbps。

    用VHDL和CPLD设计数字系统具有传统方法无可比拟的优越性,它已经成为大规模集成电路设计最为有效的一种手段。为简单起见,本文采用VHDL设计标准模式的I2C总线控制电路。

    1 I2C总线上的数据传输

    I2C总线包含时钟线SCL和数据线SDA两条连线,SCL由主机产生。I2C总线的数据传输流程如图1所示。其传输过程为:首先主机产生起始位,然后传送第一个字节。8位数据中首先传送的是数据的最高位MSB,最低位LSB为读写指示位,1表示主机读,0表示主机写,高7位地址可使主机寻址128个从器件。

    从机收到第一字节数据后发响应位,主机收到响应位后接着发送第二个字节的数据。数据发送完毕后产生结束位,数据传送结束。数据传送时,只有时钟SCL为低电平时SDA才允许切换,SCL为高电平时SDA必须稳定,此时SDA的电平就是总线转送的数值。

      在SCL为高电平时,SDA线由高到低切换表示起始位,SDA线由低到高切换表示停止位。起始位和停止位由主机产生,在起始位产生后总线处于忙状态,停止位出现并经过一定时间后总线进入空闲状态。发送器每发送一个字节后,接收器必须产生一个响应位。响应位的驱动时钟由主机产生则接收器将SDA线拉低产生响应位。如果主机是接收器,则接收最后一个字节时,响应位为1,通知从机结束发送,否则响应位为0。当从机不能响应从机地址(例如它正在执行一些实时函数,不能接收或发送)时,或响应了从机地址但在传输一段时间后不能接收更多的数据字节,此时从机可以通过响应位为1通知主机终止当前的传输,于是主机产生一个停止位终止传输,或者产生重复开始位开始新的传输。

    SDA线上传送的数据必须为8位,每次传送可以发送的字节数量不受限制。如果从机要完成一些其他功能(例如执行一个内部中断服务程序)才能接收或发送下一个数据字节,则从机可以使SCL维持低电位,迫使主机进入等待状态。从机准备好接收或发送下一个数据字节时,释放SCL,数据传输继续。

    SDA和SCL都是双向线路,使用时通过上拉电阻连接到电源。总线空闲时这两条线路都是高电平,连接到总线的器件的输出级必须是漏极开路或集电极开路,这样总线才能执行“线与”的功能。

    主机发完第一个字节后,数据传输方向的变化可能存在三种情况。(1)传输方向不变,如主机向从机写;(2)传输方向改变,如主机从从机读数据;(3)传输方向改变多次,如主机对从机进行多次读写。

    2 时钟同步与仲裁

    I2C总线在任何时刻只能有一个主机,当I2C总线同时有两个或更多的器件想成为主机时,就需要进行仲裁;时钟同步的目的就是为仲裁提供一个确定的时钟。时钟SCL的同步和仲裁通过“线与”来执行,SCL的低电平时间取决于低电平时间最长的主机,高电平时间取决于高电平时间最短的主机。

    仲裁过程在数据线SDA线上进行,当SCL为高电平时,如果SDA线上有主机发送低电平,则发送高电平的主机将关闭输出级。因为总线的状态和自身内部不一样,于是发送低电平的主机赢得仲裁。仲裁可以持续多个位,在实际通信过程中,仲裁的第一阶段比较地址位,如果多个主机寻址同一个从机,则继续比较数据位(主机是发送机)或响应位(主机是接收机)。由于I2C总线上的地址和数据由赢得总线的主机决定,因此仲裁过程中不会丢失信息。如果一个主机具有从机功能,则当它失去仲裁时,必须立即切换到从机状态,因为它可能正在被其他主机寻址。

    3 I2C总线控制器设计

    I2C总线控制器的主要作用是提供微控制器(μC)和I2C总线之间的接口,为两者之间的通信提供物理层协议的转换。在串行应用系统中,外围器件(如串行E2PROM、LCD、实时钟等)连接在I2C总线上,再通过I2C总线控制器和μC连起来。其典型的应用,如现在许多彩电的控制系统都基于I2C总线。为了使设计清晰明了,本文将控制器的设计分成两部分。一部分为微控制器(μC)接口,另一部分为I2C接口,如图2所示。

    μC接口部分主要包含状态寄存器(MBSR)、控制寄存器(MBCR)、地址寄存器(MADR)、数据寄存器(MBDR)和地址译码/总线接口模块。状态寄存器指示I2C总线控制器的当前状态,如传输是否完成、总线是否忙等信息。控制寄存器是μC控制I2C总线控制器的主要途径,通过置0/1完成I2C总线控制器使能、中断使能、主/从(Master/Slave)模式选择、产生起始位等操作。地址寄存器保存着I2C总线控制器作为从机时的地址。数据寄存器用于保存接收的数据或是待发送的数据。

    I2C接口的核心是主状态机,它控制着整个I2C接口的运作。和I2C总线直接相连的模块有起始/停止位产生模块、I2C Header寄存器、I2C数据寄存器和仲裁及起始/停止位检测模块。当控制器是Master时,起始/停止位产生模块用于在I2C总线上产生起始位和停止位;I2C数据寄存器用于保存总线上传送的数据;仲裁及起始/停止位检测模块的作用是执行仲裁,并检测I2C总线上的起始/停止位,以便为主状态机提供输入。其他模块包括:I2C状态寄存器,用于记录I2C总线的状态;地址比较模块,用于比较总线上传送的地址和本机的从机地址是否一致,如果一致,说明其他主机正在寻址本控制器,控制器必须立即切换到从机状态,同时发出响应位。

    3.1 μC接口设计

    μC接口用于连接I2C接口电路和μC,主要实现两者之间的信号交互握手机制。设计时可以用VHDL提供的状态机来描述信号交互机制中的工作状态切换,如图3(a)所示。

    μC接口电路中使用的四组寄存器的地址是24位的,高16位为I2C总线控制器的基址(MBASE),占用μC的地址空间,低8位用于区别不同的寄存器。寄存器本身是8位的,图3(b1)为控制寄存器,图3(b2)为状态寄存器。图中示出了每一位的含义。

    3.2 I2C接口设计

    I2C接口用于连接μC接口电路和I2C总线,由两个状态机构成:一个是I2C接口主状态机,用于执行发送和接收操作;另一个为“SCL/SDA/ STOP 产生”状态机,当I2C总线控制器为主机时,这个状态机产生SCL/START/STOP信号。

    I2C接口用于I2C总线的驱动和接收,当I2C总线控制器为主机时,I2C接口必须按I2C总线规范驱动总线;当总线控制器为从机时,I2C必须能正确接收满足I2C总线规范的信号。I2C设计规范对总线的时序作了详细的定义,在不同模式下这些参数的具体数值都有明确的规定。“SCL/START/STOP 产生”状态机的状态转换如图4所示, I2C接口主状态机的转移图如图5所示。

    4 仿真与硬件实现

    本文中仿真工具采用Mentor公司的ModelSim Plus 6.0 SE,其显著的优越性能是提供了一个混合语言仿真环境,已在产业界广泛应用。为了测试验证系统的功能,本文采用了Atemel公司提供的采用I2C总线协议的AT24C02 E2PROM芯片(256B 8bit)的VerilogHDL仿真模型(AT24C02.v)作为从器件对象,用VerilogHDL语言构建了testbench(测试向量),对所设计I2C总线控制器进行仿真。

    图6和图7为μC通过I2C总线控制器对E2PROM进行数据写/读的仿真波形(将数据FFH~0HH写进地址0~255单元,然后将它们再按顺序读的模式读出)。往E2PROM写入时需要给出所写起始单元的地址(图6中为00H); 从E2PROM顺序读时不用给出起始单元地址而从当前地址处开始读(本文中写完256B数据后,地址指针又回到0处)。相关状态及数据已在图中作了标示。由此可见,所设计的总线控制器完全符合标准I2C串行协议的时序要求。

    本文设计的系统实现平台采用Xilinx公司的XC95216-10-PQ160 CPLD芯片,总逻辑门个数为4 800。经综合、适配、布局布线后占用器件资源的情况为:宏单元120/216(56%)、寄存器111/216(52%)、功能块331/432(77%)、乘积项分配器544/1080(51%)。可见,系统占用约一半的资源,相当精简。整个系统下载到CPLD后在2MHz时钟频率下运行正常。

    展开全文
  • 并行总线相比串行总线具有许多优点。串行总线连接引脚数量少,连接简单,成本较低,系统可靠性高。串行总线对系统体系结构具有重大的影响,它的应用有助于数据流计算机体系结构的实现。 对于高速
  •  在当今的电信计算机产品上,相比传统的并行总线,电路中的串行总线越来越多,速率越来越快。比如通信产品中的10GBase-KR、CPRI2代,计算机中的PCIeGen2、SATA6G,存储产品中的SAS6G、FC8.5G,这些串行总线都陆续...
  • VHDL实现IIC,IIC原理介绍

    千次阅读 2018-08-15 10:20:24
    串行总线和并行总线相比具有结构简单、占用引脚少、成本低的优点。常见的串行总线有USB、IEEE1394、I2C等,其中I2C总线具有使用简单的特点,在单片机、串行E2PROM、LCD等器件中具有广泛的应用。 I2C(Inter IC BUS)是...

    串行总线和并行总线相比具有结构简单、占用引脚少、成本低的优点。常见的串行总线有USB、IEEE1394、I2C等,其中I2C总线具有使用简单的特点,在单片机、串行E2PROM、LCD等器件中具有广泛的应用。

    I2C(Inter IC BUS)是Philips公司开发的用于芯片之间连接的总线。 I2C总线用两根信号线进行数据传输,一根为串行数据线(SDA),另一根为串行时钟线(SCL)。I2C总线允许若干兼容器件(如存储器、A/D转换器、D/A转换器、LCD驱动器等)共享总线。I2C总线理论上可以允许的最大设备数,是以总线上所有器件的总电容(其中包括连线本身的电容和连接端的引出电容)不超过400pF为限,总线上所有器件依靠SDA线发送的地址信号寻址,不需要片选线。任何时刻总线只能由一个主器件控制,各从器件在总线空闲时启动数据传输。I2C总线数据传输的标准模式速率为100kbps,快速模式速率为400kbps,高速模式速率为3.4Mbps。

    用VHDL和CPLD设计数字系统具有传统方法无可比拟的优越性,它已经成为大规模集成电路设计最为有效的一种手段。为简单起见,本文采用VHDL设计标准模式的I2C总线控制电路。

    1 I2C总线上的数据传输

    I2C总线包含时钟线SCL和数据线SDA两条连线,SCL由主机产生。I2C总线的数据传输流程如图1所示。其传输过程为:首先主机产生起始位,然后传送第一个字节。8位数据中首先传送的是数据的最高位MSB,最低位LSB为读写指示位,1表示主机读,0表示主机写,高7位地址可使主机寻址128个从器件。

    从机收到第一字节数据后发响应位,主机收到响应位后接着发送第二个字节的数据。数据发送完毕后产生结束位,数据传送结束。数据传送时,只有时钟SCL为低电平时SDA才允许切换,SCL为高电平时SDA必须稳定,此时SDA的电平就是总线转送的数值。

      在SCL为高电平时,SDA线由高到低切换表示起始位,SDA线由低到高切换表示停止位。起始位和停止位由主机产生,在起始位产生后总线处于忙状态,停止位出现并经过一定时间后总线进入空闲状态。发送器每发送一个字节后,接收器必须产生一个响应位。响应位的驱动时钟由主机产生则接收器将SDA线拉低产生响应位。如果主机是接收器,则接收最后一个字节时,响应位为1,通知从机结束发送,否则响应位为0。当从机不能响应从机地址(例如它正在执行一些实时函数,不能接收或发送)时,或响应了从机地址但在传输一段时间后不能接收更多的数据字节,此时从机可以通过响应位为1通知主机终止当前的传输,于是主机产生一个停止位终止传输,或者产生重复开始位开始新的传输。

    SDA线上传送的数据必须为8位,每次传送可以发送的字节数量不受限制。如果从机要完成一些其他功能(例如执行一个内部中断服务程序)才能接收或发送下一个数据字节,则从机可以使SCL维持低电位,迫使主机进入等待状态。从机准备好接收或发送下一个数据字节时,释放SCL,数据传输继续。

    SDA和SCL都是双向线路,使用时通过上拉电阻连接到电源。总线空闲时这两条线路都是高电平,连接到总线的器件的输出级必须是漏极开路或集电极开路,这样总线才能执行“线与”的功能。

    主机发完第一个字节后,数据传输方向的变化可能存在三种情况。(1)传输方向不变,如主机向从机写;(2)传输方向改变,如主机从从机读数据;(3)传输方向改变多次,如主机对从机进行多次读写。

    2 时钟同步与仲裁

    I2C总线在任何时刻只能有一个主机,当I2C总线同时有两个或更多的器件想成为主机时,就需要进行仲裁;时钟同步的目的就是为仲裁提供一个确定的时钟。时钟SCL的同步和仲裁通过“线与”来执行,SCL的低电平时间取决于低电平时间最长的主机,高电平时间取决于高电平时间最短的主机。

    仲裁过程在数据线SDA线上进行,当SCL为高电平时,如果SDA线上有主机发送低电平,则发送高电平的主机将关闭输出级。因为总线的状态和自身内部不一样,于是发送低电平的主机赢得仲裁。仲裁可以持续多个位,在实际通信过程中,仲裁的第一阶段比较地址位,如果多个主机寻址同一个从机,则继续比较数据位(主机是发送机)或响应位(主机是接收机)。由于I2C总线上的地址和数据由赢得总线的主机决定,因此仲裁过程中不会丢失信息。如果一个主机具有从机功能,则当它失去仲裁时,必须立即切换到从机状态,因为它可能正在被其他主机寻址。

    3 I2C总线控制器设计

    I2C总线控制器的主要作用是提供微控制器(μC)和I2C总线之间的接口,为两者之间的通信提供物理层协议的转换。在串行应用系统中,外围器件(如串行E2PROM、LCD、实时钟等)连接在I2C总线上,再通过I2C总线控制器和μC连起来。其典型的应用,如现在许多彩电的控制系统都基于I2C总线。为了使设计清晰明了,本文将控制器的设计分成两部分。一部分为微控制器(μC)接口,另一部分为I2C接口,如图2所示。

    μC接口部分主要包含状态寄存器(MBSR)、控制寄存器(MBCR)、地址寄存器(MADR)、数据寄存器(MBDR)和地址译码/总线接口模块。状态寄存器指示I2C总线控制器的当前状态,如传输是否完成、总线是否忙等信息。控制寄存器是μC控制I2C总线控制器的主要途径,通过置0/1完成I2C总线控制器使能、中断使能、主/从(Master/Slave)模式选择、产生起始位等操作。地址寄存器保存着I2C总线控制器作为从机时的地址。数据寄存器用于保存接收的数据或是待发送的数据。

    I2C接口的核心是主状态机,它控制着整个I2C接口的运作。和I2C总线直接相连的模块有起始/停止位产生模块、I2C Header寄存器、I2C数据寄存器和仲裁及起始/停止位检测模块。当控制器是Master时,起始/停止位产生模块用于在I2C总线上产生起始位和停止位;I2C数据寄存器用于保存总线上传送的数据;仲裁及起始/停止位检测模块的作用是执行仲裁,并检测I2C总线上的起始/停止位,以便为主状态机提供输入。其他模块包括:I2C状态寄存器,用于记录I2C总线的状态;地址比较模块,用于比较总线上传送的地址和本机的从机地址是否一致,如果一致,说明其他主机正在寻址本控制器,控制器必须立即切换到从机状态,同时发出响应位。

    3.1 μC接口设计

    μC接口用于连接I2C接口电路和μC,主要实现两者之间的信号交互握手机制。设计时可以用VHDL提供的状态机来描述信号交互机制中的工作状态切换,如图3(a)所示。

    μC接口电路中使用的四组寄存器的地址是24位的,高16位为I2C总线控制器的基址(MBASE),占用μC的地址空间,低8位用于区别不同的寄存器。寄存器本身是8位的,图3(b1)为控制寄存器,图3(b2)为状态寄存器。图中示出了每一位的含义。

    3.2 I2C接口设计

    I2C接口用于连接μC接口电路和I2C总线,由两个状态机构成:一个是I2C接口主状态机,用于执行发送和接收操作;另一个为“SCL/SDA/ STOP 产生”状态机,当I2C总线控制器为主机时,这个状态机产生SCL/START/STOP信号。

    I2C接口用于I2C总线的驱动和接收,当I2C总线控制器为主机时,I2C接口必须按I2C总线规范驱动总线;当总线控制器为从机时,I2C必须能正确接收满足I2C总线规范的信号。I2C设计规范对总线的时序作了详细的定义,在不同模式下这些参数的具体数值都有明确的规定。“SCL/START/STOP 产生”状态机的状态转换如图4所示, I2C接口主状态机的转移图如图5所示。

    4 仿真与硬件实现

    本文中仿真工具采用Mentor公司的ModelSim Plus 6.0 SE,其显著的优越性能是提供了一个混合语言仿真环境,已在产业界广泛应用。为了测试验证系统的功能,本文采用了Atemel公司提供的采用I2C总线协议的AT24C02 E2PROM芯片(256B 8bit)的VerilogHDL仿真模型(AT24C02.v)作为从器件对象,用VerilogHDL语言构建了testbench(测试向量),对所设计I2C总线控制器进行仿真。

    图6和图7为μC通过I2C总线控制器对E2PROM进行数据写/读的仿真波形(将数据FFH~0HH写进地址0~255单元,然后将它们再按顺序读的模式读出)。往E2PROM写入时需要给出所写起始单元的地址(图6中为00H); 从E2PROM顺序读时不用给出起始单元地址而从当前地址处开始读(本文中写完256B数据后,地址指针又回到0处)。相关状态及数据已在图中作了标示。由此可见,所设计的总线控制器完全符合标准I2C串行协议的时序要求。

    本文设计的系统实现平台采用Xilinx公司的XC95216-10-PQ160 CPLD芯片,总逻辑门个数为4 800。经综合、适配、布局布线后占用器件资源的情况为:宏单元120/216(56%)、寄存器111/216(52%)、功能块331/432(77%)、乘积项分配器544/1080(51%)。可见,系统占用约一半的资源,相当精简。整个系统下载到CPLD后在2MHz时钟频率下运行正常。

    转载自https://blog.csdn.net/gong_1/article/details/8167225

    展开全文
  • USB总线结构

    千次阅读 2009-05-14 10:40:00
    USB(通用串行总线),由Intel公司提出,带宽为12Mbps,与传统接口总线相比,主要优点有三个,1.可接入多达127个设备,目前计算机外设越来越多,PC机内有限的插槽接口已经不能满足要求,USB缓解了这一矛盾。2.可以...

     USB(通用串行总线),由Intel公司提出,带宽为12Mbps,与传统接口总线相比,主要优点有三个,1.可接入多达127个设备,目前计算机外设越来越多,PC机内有限的插槽和接口已经不能满足要求,USB缓解了这一矛盾。2.可以热插拔,在电脑通电的情况下可以随时热插拔所连接的设备。3.可即插即用。

      设计USB的设备就必须深入了解USB的体系结构。USB通用串行总线同其他串行并行接口不同,它是一个软硬件相结合的系统体系,对于刚刚进入USB设计的工程师来说,这个结构是复杂的。为此,下面论述了USB的一些体系结构和基本概念。
    USB总线的总体结构
    整个USB总线可以分为3个部分进行描述:USB连接、USB设备、USB主机(如图1)。
    USB连接
      USB连接是指USB主机和USB设备的通信方式与方法,包括:总线拓扑(USB主机和设备之间的连接方式);层内关系(USB总线每一层中的任务);数据流模式(数据在USB总线上的流动方式);USB调度(USB提供一个共享的服从调度的互连)。
      USB设备是通过USB总线连接到USB主机上的。USB总线上的物理连接是一个分层的星形拓扑。处于每个星形拓扑中央的是hub(USB集线器)。在主机和一个hub或者一个应用之间以及在hub和其它hub或应用之间都是一个点对点的连接。图1表示了USB的拓扑类型。
    USB主机
      在USB总线中只有一个主机。USB总线与计算机主机系统的接口部分就是主机控制器,它可被看做一个硬件、固件和软件的结合体。主机系统中集成了一个根hub来提供一个或多个连接点。
    USB设备
      首先USB设备可被分为两大类:hub类(提供附加USB接入点的设备)和功能 设备类(为系统实现某些功能的设备,如ISDN适配器、数字游戏杆等)。
      按照功能,USB设备又可分为很多类,如:音频、人机交互、显示、通信、电源、打印机、海量存储、物理反馈等设备。每个USB设备都必须提供自鉴定信息和通用的设置。
      USB设备都有一个标准的USB接口,它的作用为:解释USB协议;对标准USB操作的响应,如挂起和设置等;提供设备的一些描述信息。
      在实际的设计应用中,USB设备的接口有自已的特点。USB接口的正确设计与设备的性能紧密相关,在USB接口设计之前必须要对设备的功能、指标进行详细的分析。
      连接在USB接口上的设备通过基于令牌和主机控制的协议来共同享用整个USB带宽。在其它设备正常工作的前提下,USB允许某设备连接、设置、运行和断开连接。
    USB数据传逻辑结构
      USB设备在逻辑上分成了几个层次,分别是设备层、配置层、接口层和节点层。
    USB设备中各层的逻辑关系如图2所示:

       1.节点:每个设备内有一个或多个逻辑连接点,称为节点。
       2.接口:一个设备对主机表现为一组合适的节点,一组相关的节点称为一个接口。有多个接口的设备称为组合设备。
       3.配置:设备可以有多组接口,每一组称为一个配置,一次只能有一个配置是活动的。但是,当前配置中的所有接口(和它们的节点)可以同时是活动的。大多数设备只有一个配置和一个接口。当一个设备第一次插入系统时,Windows提示用户选择合适的配置。
       4.管道:在USB中,传输是在USB设备的某一具节点和主机软件之间进行的,这个相关的结构就称为管道,即为设备的一个节点与主机之间的数据传输的模型。管道有两种:流管道和消息管道。其中消息管道的数据结构是USB定义好的,而流管道没有固定的结构。另外,数据传输带宽、传输类型、节点的特性(如方向和缓冲大小)都影响着它的管道特性。大多数的管道在USB设备配置好之后就产生了。其中有一个最重要的消息管理是“缺省控制管道”,这个管道在设备一加电的时候就存在了,它提供设备的配置和状态等信息的控制。
    管道可以是单向的也可以是双向的。一个USB设备可以有很多个管道,管道之间是相互独立的,比如设备的一个管道可以从主机接收数据而另一个管道可以发送数据。在一个设备配置中每一个管道(即每一个节点)只能支持下述的一个数据传型。
       5.传输类型:USB总线包括4种传输类型(传输管道):
        ●控制传输类型:用于传输控制信息,如:在连接时配置设备,控制其它管道的状态以及完成一些设备自定的用途。
        ●块数据传输类型:用于传输相对比较大的和突发性强的数据,一般这种传输的动态范围比较宽。数据传输的可靠性由硬件层错误检测来保证,对错误的数据可进行重复发送。块传输 是连续的,它的带宽占用依据其它USB设备的使用情况而不同。这种传输类型一般用于打印机、扫描仪等。
        ●中断数据传输类型:数据量小,延迟短,通常用于传输设备反馈回计算机的字符和坐标信息,多用于人机交互设备,如鼠标,键盘、游戏杆等。
        ●同步数据传输类型:占用预先分配的带宽,实时传输。对于同步传输管道,带宽的要求与设备的采样率有关,时延的要求与每个节点的缓冲大小有关。为保证数据的实时传输,在传输过程中的一些误码是不被纠正的(如不进行重试等),则实际上USB的心位错误率是十分小的,它完全可以被忽略掉,不足以形成问题。
    USB数据传输的逻辑模型如图3所示:
      根据实际应用中得出的经验,工程技术人员需要预先计划好的USB接口指标包括:所设计的USB设备的带宽,由此确定设备为低速设备还是全速设备;是否采用多重配置;是否采用多个接口,即设备是否是复合设备,是否包括多个功能;设备的每个功能都分别包括几个管道(节点),各个管道的传输方式和它们之间有什么关系。只有把这些问题都分析清楚,才可以着手进行下一下的详细设计。
    结束语
      随着USB2.0协议的推出,USB的应用范围将更为扩大。USB2.0所定义的带宽为480Mbps,它的出现将彻底改变USB只能在低速设备上应用的现状。由于有相同的USB高速模式的结构,从现有的USB1.1外设向USB2.0转移相对来说比较容易的,所以全面了解USB的体系结构对于USB1.1和USB2.0设备的设计都是非常重要的。
    展开全文
  • USB总线的体系结构

    千次阅读 2009-08-07 11:01:00
    USB(通用串行总线),由Intel公司提出,带宽为12Mbps,与传统接口总线相比,主要优点有三个,1.可接入多达127个设备,目前计算机外设越来越多,PC机内有限的插槽接口已经不能满足要求,USB缓解了这一矛盾。2.可以...
  • 串行护展总线技术是新...与并行扩展总线相比串行扩展总线有突出的优点:电路结构简单,程序编写方便,易于实现用户系统软硬件的模块化、标准化等。本文是把I2C总线应用到MSP430单片机温度控制系统中的一个典型实例。
  • 引言  近年来软件无线电(SDR)得到了飞速的发展,在很多...与传统的并行PCI总线相比,PCIE采用串行总线点对点连接,具有更高的传输速率可扩展性。例如本文采用的8通道1代PCIE 2.0硬核的理论传输速率是4 GB/s[1],
  • 串行护展总线技术是新一代单片机...与并行扩展总线相比串行扩展总线突出优点:电路结构简单,程序编写方便,易于实现用户系统软硬件的模块化、标准化等。本文是把I2C总线应用到MSP430温度控制系统中的一个典型实例。
  • 总线相关问题介绍

    千次阅读 2011-01-17 17:30:00
    1、并行总线的主要缺点——传输速度慢。原因:并行总线具有...相比之下串行总线具有自定时的功能,所发送的数据都有特定标记位,告之何时开始结束,不需要脉冲时钟的存在,可以达到很高的传输速率。2、PCI总线多主
  • 并行扩展总线相比串行扩展总线有突出的优点:电路结构简单,程序编写方便,易于实现用户系统软硬件的模块化、标准化等。本文是把I2C总线应用到MSP430单片机温度控制系统中的一个典型实例。 I2C总线是用2根双向I/O...
  • 引言  近年来软件无线电(SDR)得到了飞速的发展,在很多...与传统的并行PCI总线相比,PCIE采用串行总线点对点连接,具有更高的传输速率可扩展性。例如本文采用的8通道1代PCIE 2.0硬核的理论传输速率是4 GB/s[1],
  •  PCIE是串行协议,与原有的PCI并行总线相比,它没有大量的数据控制线,对于硬件电路设计者来说,省去了很多硬件设计工作。PCIE的传输速度远远大于PCI总线,PCIE1.1版本单个链路的单向吞吐量能达到250 MB/s
  • PCIE是串行协议,与原有的PCI并行总线相比,它没有大量的数据控制线,对于硬件电路设计者来说,省去了很多硬件设计工作。PCIE的传输速度远远大于PCI总线,PCIE1.1版本单个链路的单向吞吐量能达到250MB/s。对于需要...
  •  PCIE是串行协议,与原有的PCI并行总线相比,它没有大量的数据控制线,对于硬件电路设计者来说,省去了很多硬件设计工作。PCIE的传输速度远远大于PCI总线,PCIE1.1版本单个链路的单向吞吐量能达到250 MB/
  • I2C总线应用系统设计

    热门讨论 2008-09-05 12:30:21
    并行扩展总线相比串行扩展总线有突出的优点:电路结构简单,程序编写方便,易于实现用户系统软硬件的模块比、标准化等。目前I2C总线技术已为许多著名公司所采用,并广泛应用于视频音像系统中。推广I2C总线技术将...
  • 这是一种完全不同于并行ATA的新型硬盘接口类型,由于采用串行方式传输数据而得名。SATA总线使用嵌入式时钟信号,具备了更强的纠错能力,与以往相比其最大的区别在于能对传输指令(不仅仅是数据)进行检查,如果发现...
  • 相比并行总线串行连接的物理紧密度链路韧性具有很多优势。因此,很多传输领域都转向了串行传输,如笔记本电脑显示互连、高速背板互连存储器内部互连。该系统涉及到的技术主要包括:光纤传输、PCIE(PCI-...
  • 1 引言 I2C总线是Philips公司推出的串行总线,整个系统仅靠数据线(SDA)时钟线(SCL)实现完善的全双工数据传输,即CPU与各个外围器件仅靠这两条线实现信息交换。I2C总线系统与传统的并行总线系统相比具有结构...
  • 文章介绍了用于 USB 总线数据传输的CRC 校验的原理算法,并且采用并行电路实现 USB2.0 中的 CRC产生CRC校验,与传统的串行电路实现相比并行电路实现方法虽然在芯片面积上大于串行电路实现, 但由于降低了时钟...
  • 1 眼图概述1.1 串行数据的传输由于通讯技术发展的需要,特别是以太网技术的爆炸式应用发展,使得电子系统从传统的并行总线转为串行总线。串行信号种类繁多,如PCI Express 、SPI、USB 等,其传输信号类型时刻在...
  • PCF8591芯片A/D编码

    千次阅读 2018-12-05 12:37:30
    I2C总线是Philips公司推出的串行总线,整个系统仅靠数据线(SDA)时钟线(SCL)实现完善的全双工数据传输,即CPU与各个外围器件仅靠这两条线实现信息交换。I2C总线系统与传统的并行总线系统相比具有结构简单、可...
  • 由 于通讯技术发展的需要,特别是以太网技术的爆炸式应用发展,使得电子系统从 传统的并行总线转为串行总线。串行信号种类繁多,如 PCI Express、SPI、USB 等,其传 输信号类型时刻在增加。为何串行总线目前应用...
  • 传统的实时信号分析系统数据通讯接口一般采用串行口、并行口、PCI总线或USB的方式。与其相比,Ethernet的优势在于性能价格比高、远距离数据传输分布式运行等特点,而且可以将网络技术应用到信号分析系统领域。在...
  • 采用并行接口时,传输数据信号的总线是复用的,传输速率会受到一定限制。如若提高传输速率,那么传输的数据信号往往会产生干扰,导致错误。在这种情况下,串行接口技术就产生了。 SAS硬盘与SATA硬盘的区别 性能...
  • 并行通信相比串行通信的引脚数量少、扩展能力强、采用点对点的连接方式,而且能提供比并行通信更高带宽,因此现已广泛用于高速数据传输多个领域。当时先进的FPGA、CPU、DSP、交换芯片等内部都集成了S...
  • IIC详解

    千次阅读 2010-03-07 20:36:00
    I2C总线详解2010年01月26日 星期二 上午 11:33 近年来,单片机串行扩展技术得到了发展,并正在成为单片机应用系统扩展的主流。... I2C总线基础 (1)串行扩展总线的特点 与并行扩展相比串行扩展具有如下特点: 能最

空空如也

空空如也

1 2 3
收藏数 47
精华内容 18
关键字:

串行总线和并行总线相比