几种通信总线详尽总结_第1页
几种通信总线详尽总结_第2页
几种通信总线详尽总结_第3页
几种通信总线详尽总结_第4页
几种通信总线详尽总结_第5页
免费预览已结束,剩余3页可下载查看

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

微处理器中常用的集成串行总线是通用异步 接收器传输总线 UART 串行通信接口 SCI 和 通用串行总线 USB 等 这些总线在速度 物理接口要求和通信方法学上都有所不同 本文详细介绍了嵌入式系统设计的串行总线 驱动器和物理接口的特性 并为 总线最优选择提供性能比较和选择建议 由于在消费类电子产品 计算机外设 汽车和工业应用中增加了嵌入式功能 对低成本 高速和高可靠通信介质的要求也不断增长以满足这些应用 其结果 是越来越多的处理器和控制器用不同类型的总线集成在一起 实现与 PC 软件 开发系统 如仿真器 或网络中的其它设备进行通信 目前流行的通信一般采用 串行或并行模式 而串行模式应用更广泛 微处理器中常用的集成串行总线是通用异步接收器传输总线 串行通信接口 同步外设接口 SPI 内部集成电路 I2C 和通用串行总线 以及车用串行总线 包括控制器区域网 CAN 和本地互连网 LIN 这些总线在速度 物理接口要求 和通信方法学上都有所不同 本文将对嵌入式系统设计的串行总线 驱动器和 物理接口这些要求提供一个总体介绍 为选择最优总线提供指导并给出一个比 较图表 表 1 为了说明方便起见 本文的阐述是基于微处理器的设计 串行与并行相比串行与并行相比 串行相比于并行的主要优点是要求的线数较少 例如 用在汽车工业中的 LIN 串行总线只需要一根线来与从属器件进行通信 Dallas 公司的 1 Wire 总线只 使用一根线来输送信号和电源 较少的线意味着所需要的控制器引脚较少 集 成在一个微控制器中的并行总线一般需要 8 条或更多的线 线数的多少取决于 设计中地址和数据的宽度 所以集成一个并行总线的芯片至少需要 8 个引脚来 与外部器件接口 这增加了芯片的总体尺寸 相反地 使用串行总线可以将同 样的芯片集成在一个较小的封装中 另外 在 PCB 板设计中并行总线需要更多的线来与其它外设接口 使 PCB 板面 积更大 更复杂 从而增加了硬件成本 此外 工程师还可以很容易地将一个 新器件加到一个串行网络中去 而且不会影响网络中的其它器件 例如 可以 很容易地去掉总线上旧器件并用新的来替代 串行总线的故障自诊断和调试也非常简单 可 以很容易地跟踪网络中一个有故障的器件并用 新器件替换而不会干扰网络 但另一方面 并行总线比串行速度快 例如 Rambus 公司 的 Redwood 总线速度可高达 6 4GHz 而 最高的串行速度不会超过几个兆赫 在工业和汽车应用中常用的串行协议在工业和汽车应用中常用的串行协议 1 1 UARTUART UART 是一种通用串行数据总线 用于异步通 信 该总线双向通信 可以实现全双工传输 和接收 在嵌入式设计中 UART 用来与 PC 进行通信 包括与监控调试器和其它器件 如 EEPROM 通信 a a UARTUART 通信通信 UART 首先将接收到的并行数据转换成串行 数据来传输 消息帧从一个低位起始位开始 后面是 7 个或 8 个数据位 一个可用的奇偶位和一个或几个高位停止位 接收 器发现开始位时它就知道数据准备发送 并尝试与发送器时钟频率同步 如果 选择了奇偶 UART 就在数据位后面加上奇偶位 奇偶位可用来帮助错误校验 在接收过程中 UART 从消息帧中去掉起始位和结束位 对进来的字节进行奇偶 校验 并将数据字节从串行转换成并行 UART 也产生额外的信号来指示发送和 接收的状态 例如 如果产生一个奇偶错误 UART 就置位奇偶标志 b b 数据方向和通信速度数据方向和通信速度 数据传输可以首先从最低有效位 LSB 开始 然而 有些 UART 允许灵活选择先 发送最低有效位或最高有效位 MSB 微控制器中的 UART 传送数据的速度范围为每秒几百位到 1 5Mb 例如 嵌入在 ElanSC520 微控制器中的高速 UART 通信的速度可以高达 1 1152Mbps UART 波 特率还受发送和接收线对距离 线长度 的影响 目前 市场上有只支持异步通信和同时支持异步与同步通信的两种硬件可用于 UART 前者就是 UART 名字本身的含义 在摩托罗拉微控制器中被称为串行通信 接口 SCI Microchip 微控制器中的通用同步异步收发器 USART 和在富士通 微控制器中的 UART 是后者的两个典型例子 c c 计算机中的计算机中的 UARTUART UART 是计算机中串行通信端口的关键部分 在计算机中 UART 相连于产生兼 容 RS232 规范信号的电路 RS232 标准定义逻辑 1 信号相对于地为 3 到 25 伏 而逻辑 0 相对于地为 3 到 25 伏 所以 当一个微控制器中的 UART 相 连于 PC 时 它需要一个 RS232 驱动器来转换电平 2 2 同步外设接口同步外设接口 同步外设接口 SPI 是由摩托罗拉公司开发的全双工同步串行总线 该总线大量 用在与 EEPROM ADC FRAM 和显示驱动器之类的慢速外设器件通信 a a SPISPI 通信通信 该总线通信基于主 从配置 它有以下 4 个信号 MOSI 主出 从入 MISO 主入 从出 SCK 串行时钟 SS 从属选择 芯片上 从属选择 slave select 的引脚数决定了可连到总线上的器件数量 在 SPI 传输中 数据是同步进行发送和接收的 数据传输的时钟基于来自主处 理器的时钟脉冲 摩托罗拉没有定义任何通用 SPI 的时钟规范 然而 最常用 的时钟设置基于时钟极性 CPOL 和时钟相位 CPHA 两个参数 CPOL 定义 SPI 串 行时钟的活动状态 而 CPHA 定义相对于 SO 数据位的时钟相位 CPOL 和 CPHA 的设置决定了数据取样的时钟沿 b b 数据方向和通信速度数据方向和通信速度 SPI 传输串行数据时首先传输最高位 波特率可以高达 5Mbps 具体速度大小取 决于 SPI 硬件 例如 Xicor 公司的 SPI 串行器件传输速度能达到 5MHz c c SPISPI 与与 UARTUART 比较比较 SPI 通信快于 UART 通信 两者都可以用在中等速度外设的通信中 例如非易失 性 EEPROM 存储器 然而 SPI 更常用于 EEPROM 或数模变换器的通信中 有些 UART 能支持 SPI 通信 在这种情况下 会用一个通用 IO 作为从属选择引 脚 3 3 I I2 2C C 总线总线 I2C 是由飞利浦公司开发的双线同步总线 像 SPI 一样 该总线可用来与 EEPROM ADC DAC 和 LCD 这类慢速器件进行通信 a a I I2 2C C 通信通信 I2C 是一个半双工 多主总线 该总线网络有一个或几个主控器件和很多个从器 件 信息由两条串行线传输 串行数据线 SDA 和串行时钟线 SCL 图 1 显示 了使用两个主控和三个从器件相连接的例子 网络中的每一个器件都预指定一个 7 位或 10 位的地址 飞利浦会给器件制造商 分配地址 也有一个特定的地址用于高速通信 以及一个通用呼叫地址用于与 网络中所有器件的通信 10 位寻址的优点是允许更多的器件 高达 1024 个 布 置在网络中 然而 总线中器件的数目取决于总线的电容量 必须限制在 400pF 以内 主控器件发起数据传送 并提供用于通信的时钟信号 通信开始于 SCL 为高电 平时 SDA 由高到低的转换 紧接着是一个 7 位或 10 位的从地址 一个数据方向 位 R W 一个应答位和停止状态 停止状态定义为在时钟信号为高时数据线电 平由低到高的转换 每一个数据字节长度为 8 位 单次传送的字节数并没有限 制 由于 I2C 是一个多主总线 因此可能有两个或更多的主控器件同时试图访问总 线 在时钟信号为高电平时在总线上置 1 的主控器件赢得总线仲裁 I2C 有三种不同的运行模式 标准 快速和高速模式 在使用快速和高速模式时 可能某个从属器件不能像主控器件那么快地处理数据 此时 从属器件会将 SCL 线拉至低电平来保持总线 这迫使主控器件进入等待状态 直至从属器件 准备就绪 b b 数据方向和通信速度数据方向和通信速度 数据传输首先从最高位开始 I2C 总线设计用于三种数据传输速度 每个都向下 兼容性 低速 数据传输率为 0 到 100kbps 快速 数据传输率可以高达 400kbps 高速 数据传输率可以高达 3 4Mbps c c I I2 2C C 与与 SPISPI 比较比较 I2C 和 SPI 都能用于低速器件的通信 而 SPI 的数据传输速率高于 I2C 此外 SPI 具有一个内在地址功能 不需要设计一个额外的寄存器来测试地址 从而 减少软件和硬件的设计开销 4 4 控制器区域网络控制器区域网络 控制器区域网络 CAN 是一个多主异步串行总线 由于它具有优良的错误处理机 制及可靠的数据传送性能 该总线在汽车工业中非常普遍 在高安全系数要求 的医疗行业中也正在得到普及 CAN 最初由德国的 Robert Bosch 公司开发 提供给汽车电子系统所用的低成本 通信总线 现在已经成为国际标准 被采用为高速应用的 ISO11898 标准和用于 低速应用的 ISO11519 标准 a a CANCAN 通信通信 当总线空闲时 任何 CAN 节点都可以开始数据发送 如果两个或更多的节点同 时开始发送 就使用标识符来进行按位仲裁以解决访问冲突 CAN 是一个广播 类型的总线 所有节点都接收总线上的数据 硬件上的过滤机制决定消息是否 提供给该接点用 b b 四种消息帧的类型四种消息帧的类型 数据帧 该帧从一个发送器承载数据到一个接收器 根据 CAN 规范有两种数据 帧格式 它们的唯一本质区别在于标识符的长度 CAN 标准帧 也称为 CAN2 0A 支持 11 位长度的标识符 另一个是 CAN 扩展帧 也称为 CAN2 0B 支持 29 位长度的标识符 图 2 显示了两种规范的 CAN 数据帧 远程帧 此帧由一个接收 CAN 节点发送 用来请求带有远程帧中规定的标识符 的数据帧 错误帧 此帧将任何总线错误通知其它单元 在接收到这个帧时发送器会自动 进行消息重发 超载帧 超载帧由一个忙的 CAN 节点送出 以请求在前后数据帧之间增加一个 额外的延迟 c c CANCAN 硬件术语硬件术语 基本 CAN Basic CAN 控制器 这是一种廉价的 CAN 控制器 具有有限的发送 接收消息缓冲器 以及有限的 CAN 消息过滤机制 完全 CAN Full CAN 控制器 完全 CAN 是一个高成本 高性能的 CAN 控制器 具有能缓冲 8 个或更多消息的缓冲器用于接收和发送 例如 富士通的集成 CAN 微控制器能提供 16 个消息缓冲器用于接收和发送 此外 富士通的 MB90443 微控制器能灵活地将两个 CAN 控制器的消息缓冲器组合在一个中 以 形成能缓冲 32 个消息的缓冲器 标准 CAN 控制器 该 CAN 控制器能够处理仅 有 11 位标识符的消息 扩展 CAN 控制器 该控制器能够处理含有 11 位和 29 位标识符的消息 时间触发 CAN TTCAN 控制器 该 CAN 控制器 根据时间和事件的触发来安排 CAN 消息 增 强了 CAN 网络的总体性能和行为的确定性 d d 数据方向和通信速度数据方向和通信速度 数据字节的传输首先从最高位开始 一个 8 位的数据字节能在一次发送中进行传输 最大的 CAN 总线速度是 1Mbps e e CANCAN 在汽车中的应用在汽车中的应用 图 3 的例子显示了 CAN 网络是如何通过富士通的 16 位 CAN 微控制器在汽车中应 用 f f 物理接口物理接口 大多数 CAN 微控制器需要一个外部收发器来连接物理总线 目前市场上提供以 下一些收发器 高速 CAN 收发器有飞利浦的 82C251 TI 的 SN65 75LBC031 Bosch 的 CF150 C250 Unitrode 的 UC5350 低速 CAN 收发器有飞利浦 82C252 TJA1053 西门子 TLE 6252G 单线 CAN 收发器有飞利浦 AU5790 英飞凌 TLE 6255 Delphi DK166153 5 5 本地互连网络本地互连网络 本地互连网络 LIN 是一个低成本 单线串行总线 能执行全双工串行通信 LIN 用在汽车的分布式电子系统中 例如与智能传感器和传动器的通信 LIN 协 议能采用低成本的 UART SCI 接口来实现 几乎所有的微控制器都提供这些接口 a a LINLIN 通信通信 LIN 网络由一个主控和多个从器件组成 主控器件发起所有的通信 所有节点执行包括发送和接收任务在内的从属通信任务 此外 主节点执行主 控发送任务 主控任务能决定什么时候 哪一个帧将在总线上传输 在该方式 中 没有总线仲裁 并且在最坏情况下每个 消息的时间很容易计算 当一个消息帧发送 时 在接收和过滤标识符后 仅有一个从器 件得到激活 总线上的所有消息以帧的形式发送 帧由一 个帧头和响应字段 response field 组成 主控器件始终在总线上发送帧头 帧头至少 由一个 13 位字段 一个同步字节和一个 6 位标识符组成 该标识符的范围为 0 到 63 响应字段由两个 四个和八个数据字节和具有倒置 8 位和的校验和字段 以及 所有的数据字节和标识符组成 图 4 显示了在一个消息帧上所有字段的排列顺序 b b 数据方向和通信速度数据方向和通信速度 数据字节的传送首先从 LSB 开始 LIN 总线的最大速度是 20kbps c c 物理接口物理接口 只有很少微控制器集成有专用的 LIN 硬件 大多数供应商用 SCI 或 UART 来提供 支持 因为 LIN 物理层是一个从汽车自诊断用 ISO9141 标准引出的单线 12V 总 线 所以需要一个外部 LIN 收发器来转换电平 例如当前市场上已有供货的摩 托罗拉 IMC33689 LIN 和英飞凌公司的 TLE6259 2G 收发器 d d CANCAN 与与 LINLIN 的比较的比较 CAN 和 LIN 两者都使用在汽车工业中 CAN 用于汽车中的高速和低速网络 而 LIN 仅用于低速网络 如门控制单元 在很多方面 CAN 比 LIN 更贵也更可靠 必需在可靠性和为设计硬件与软件支付额外成本之间进行权衡 由于 LIN 的成 本较低且容易在 UART 中实现 故在低速网络应用方面 LIN 有望替代 CAN 6 6 其它通用串行总线其它通用串行总线 用在微控制器工业中的其它总线有 RS422 RS485 USB 和 Microwire RS422 和 RS485 通信可以用一个 UART 来执行 因此 在用于这些总线时微控制 器中不需要增加另外的硬件 USB 总线的普及性极大地鼓舞了微控制器制造商把 USB 控

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论