常常弄混的总线分类,你能分清吗?

你知道常常弄混的总线分类吗?总线是什么?度娘的完整定义总线是计算机各种功能部件之间传送信息的公共通信干线 , 它是由导线组成的传输线束 , 按照计算机所传输的信息种类 。
其实 , 笔者认为 , 总线就是是一种内部结构 , 它是 cpu、内存、输入、输出设备传递信息的公用通道 。工程师为了简化硬件电路设计、简化系统结构 , 常用一组线路 , 配置以适当的接口电路 , 与各部件和外围设备连接 , 这组共用的连接线路被称为总线 。另外就是采用总线结构便于部件和设备的扩充 , 尤其制定了统一的总线标准则容易使不同设备间实现互连 。
总线分类
1、总线按功能和规范可分为五大类型:数据总线、地址总线、控制总线、扩展总线及局部总线 。
数据总线、地址总线和控制总线也统称为系统总线 , 即通常意义上所说的总线 。常见的数据总线为 ISA、EISA、VESA、PCI 等 。
地址总线:是专门用来传送地址的 , 由于地址只能从 CPU 传向外部存储器或 I/O 端口 , 所以地址总线总是单向三态的 , 这与数据总线不同 , 地址总线的位数决定了 CPU 可直接寻址的内存空间大小 。
控制总线:用来传送控制信号和时序信号 。控制信号中 , 有的是微处理器送往存储器和 I/O 接口电路的;也有是其它部件反馈给 CPU 的 , 比如:中断申请信号、复位信号、总线请求信号、设备就绪信号等 。
2、按照传输数据的方式划分 , 可以分为串行总线和并行总线 。串行总线中 , 二进制数据逐位通过一根数据线发送到目的器件;并行总线的数据线通常超过 2 根 。常见的串行总线有 SPI、I2C、USB 及 RS232 等 。
3、按照时钟信号是否独立 , 可以分为同步总线和异步总线 。同步总线的时钟信号独立于数据 , 而异步总线的时钟信号是从数据中提取出来的 。SPI、I2C 是同步串行总线 , RS232 采用异步串行总线 。
4、微机中总线一般有内部总线、系统总线和外部总线 。内部总线是微机内部各外围芯片与处理器之间的总线 , 用于芯片一级的互连;而系统总线是微机中各插件板与系统板之间的总线 , 用于插件板一级的互连;外部总线则是微机和外部设备之间的总线 , 微机作为一种设备 , 通过该总线和其他设备进行信息与数据交换 , 它用于设备一级的互连 。
那么多分类 , 笔者也只能选择一种介绍了 , 就选择内部总线、系统总线和外部总线咯 。
内部总线
I2C 总线:I2C(Inter-IC)总线 10 多年前由 Philips 公司推出 , 是近年来在微电子通信控制领域广泛采用的一种新型总线标准 。它是同步通信的一种特殊形式 , 具有接口线少 , 控制方式简化 , 器件封装形式小 , 通信速率较高等优点 。在主从通信中 , 可以有多个 I2C 总线器件同时接到 I2C 总线上 , 通过地址来识别通信对象 。
SCI 总线:串行通信接口 SCI 也是由 Motorola 公司推出的 。它是一种通用异步通信接口 UART , 与 MCS-51 的异步通信功能基本相同 。
IIS:I2S(Inter-IC Sound Bus)是飞利浦公司为数字音频设备之间的音频数据传输而制定的一种总线标准 。I2S 有 3 个主要信号:1. 串行时钟 SCLK , 也叫位时钟 , 即对应数字音频的每一位数据 , SCLK 有 1 个脉冲 。2. 帧时钟 LRCK , 用于切换左右声道的数据 。LRCK 为“1”表示正在传输的是左声道的数据 , 为“0”则表示正在传输的是右声道的数据 。3. 串行数据 SDATA , 就是用二进制补码表示的音频数据 。有时为了使系统间能够更好地同步 , 还需要另外传输一个信号 MCLK , 称为主时钟 , 也叫系统时钟(Sys Clock) 。
SPI:SPI(Serial Peripheral Interface:串行外设接口);SPI 是 Motorola 首先在其 MC68HCXX 系列处理器上定义的 。SPI 接口主要应用在 EEPROM , FLASH , 实时时钟 , AD 转换器 , 还有数字信号处理器和数字信号解码器之间 。SPI 接口是以主从方式工作的 , 这种模式通常有一个主器件和一个或多个从器件 , 其接口包括以下四种信号:(1)MOSI – 主器件数据输出 , 从器件数据输入 (2)MISO – 主器件数据输入 , 从器件数据输出 (3)SCLK – 时钟信号 , 由主器件产生(4)/SS – 从器件使能信号 , 由主器件控制 。
UART:UART(Universal Asynchronous Receiver Transmitter:通用异步收发器) 。将由计算机内部传送过来的并行数据转换为输出的串行数据流 。将计算机外部来的串行数据转换为字节 , 供计算机内部使用并行数据的器件使用 。在输出的串行数据流中加入奇偶校验位 , 并对从外部接收的数据流进行奇偶校验 。在输出数据流中加入启停标记 , 并从接收数据流中删除启停标记 。处理由键盘或鼠标发出的中断信号(键盘和鼠票也是串行设备) 。可以处理计算机与外部串行设备的同步管理问题 。有一些比较高档的 UART 还提供输入输出数据的缓冲区 。常用 TXD , RXD , /RTS , /CTS 。
JTAG:JTAG (Joint Test Action Group 联合测试行动小组)是一种国际标准测试协议(IEEE1149.1 兼容) , 主要用于芯片内部测试 。标准的 JTAG 接口是 4 线:TMS、TCK、TDI、TDO , 分别为模式选择、时钟、数据输入和数据输出线 。测试复位信号(TRST , 一般以低电平有效)一般作为可选的第五个端口信号 。一个含有 JTAGDebug 接口模块的 CPU , 只要时钟正常 , 就可以通过 JTAG 接口访问 CPU 的内部寄存器和挂在 CPU 总线上的设备 , 如 FLASH , RAM , 内置模块的寄存器 , 象 UART , Timers , GPIO 等等的寄存器 。
CAN:CAN 全称为“Controller Area Network” , 即控制器局域网 , 是国际上应用最广泛的现场总线之一 。最初 , CAN 被设计作为汽车环境中的微控制器通讯 , 在车载各电子控制装置 ECU 之 间交换信息 , 形成汽车电子控制网络 。比如:发动机管理系统、变速箱控制器、仪表装备、电子主干系统中 , 均嵌入 CAN 控制装置 。一个由 CAN 总线构成的单一网络中 , 理论上可以挂接无数个节点 。实际应用中 , 节点数目受网络硬件的电气特性所限制 。例如 , 当使用 Philips P82C250 作为 CAN 收发器时 , 同一网络中允许挂接 110 个节点 。CAN 可提供高达 1Mbit/s 的数据传输速率 , 这使实时控制变得非常容易 。另外 , 硬件的错误检定特性也增强了 CAN 的抗电磁干扰能力 。
SDIO:SDIO 是 SD 型的扩展接口 , 除了可以接 SD 卡外 , 还可以接支持 SDIO 接口的设备 , 插口的用途不止是插存储卡 。支持 SDIO 接口的 PDA , 笔记本电脑等都可以连接象 GPS 接收器 , Wi-Fi 或蓝牙适配器 , 调制解调器 , 局域网适配器 , 条型码读取器 , FM 无线电 , 电视接收 器 , 射频身份认证读取器 , 或者数码相机等等采用 SD 标准接口的设备 。
GPIO:GPIO (General Purpose Input Output 通用输入 / 输出)或总线扩展器利用工业标准 I2C、SMBus?或 SPI?接口简化了 I/O 口的扩展 。当微控制器或芯片组没有足够的 I/O 端口 , 或当系统 需要采用远端串行通信或控制时 , GPIO 产品能够提供额外的控制和监视功能 。
系统总线
ISA 总线:ISA(industrialstandardarchitecture)总线标准是 IBM 公司 1984 年为推出 PC/AT 机而建立的系统总线标准 , 所以也叫 AT 总线 。它是对 XT 总线的扩展 , 以适应 8/16 位数据总线要求 。它在 80286 至 80486 时代应用非常广泛 , 以至于现在奔腾机中还保留有 ISA 总线插槽 。ISA 总线有 98 只引脚 。
EISA 总线:EISA 总线是 1988 年由 Compaq 等 9 家公司联合推出的总线标准 。它是在 ISA 总线的基础上使用双层插座 , 在原来 ISA 总线的 98 条信号线上又增加了 98 条信号线 , 也就是在两条 ISA 信号线之间添加一条 EISA 信号线 。在实用中 , EISA 总线完全兼容 ISA 总线信号 。
VESA 总线:VESA(videoelectronicsstandardassociation)总线是 1992 年由 60 家附件卡制造商联合推出的一种局部总线 , 简称为 VL(VESAlocalbus)总线 。它的推出为微机系统总线体系结构的革新奠定了基础 。该总线系统考虑到 CPU 与主存和 Cache 的直接相连 , 通常把这部分总线称为 CPU 总线或主总线 , 其他设备通过 VL 总线与 CPU 总线相连 , 所以 VL 总线被称为局部总线 。它定义了 32 位数据线 , 且可通过扩展槽扩展到 64 位 , 使用 33MHz 时钟频率 , 最大传输率达 132MB/s , 可与 CPU 同步工作 。是一种高速、高效的局部总线 , 可支持 386SX、386DX、486SX、486DX 及奔腾微处理器 。
PCI 总线:PCI(peripheralcomponentinterconnect)总线是当前最流行的总线之一 , 它是由 Intel 公司推出的一种局部总线 。它定义了 32 位数据总线 , 且可扩展为 64 位 。PCI 总线主板插槽的体积比原 ISA 总线插槽还小 , 其功能比 VESA、ISA 有极大的改善 , 支持突发读写操作 , 最大传输速率可达 132MB/s , 可同时支持多组外围设备 。PCI 局部总线不能兼容现有的 ISA、EISA、MCA(microchannelarchitecture)总线 , 但它不受制于处理器 , 是基于奔腾等新一代微处理器而发展的总线 。
外部总线
RS-232-C 总线:RS-232-C 是美国电子工业协会 EIA 制定的一种串行物理接口标准 。RS 是英文“推荐标准”的缩写 , 232 为标识号 , C 表示修改次数 。RS-232-C 总线标准设有 25 条信号线 , 包括一个主通道和一个辅助通道 , 在多数情况下主要使用主通道 , 对于一般双工通信 , 仅需几条信号线就可实现 , 如一条发送线、一条接收线及一条地线 。RS-232-C 标准规定的数据传输速率为每秒 50、75、100、150、300、600、1200、2400、4800、9600、19200 波特 。RS-232-C 标准规定 , 驱动器允许有 2500pF 的电容负载 , 通信距离将受此电容限制 , 例如 , 采用 150pF/m 的通信电缆时 , 最大通信距离为 15m;若每米电缆的电容量减小 , 通信距离可以增加 。传输距离短的另一原因是 RS-232 属单端信号传送 , 存在共地噪声和不能抑制共模干扰等问题 , 因此一般用于 20m 以内的通信 。
RS-485 总线:在要求通信距离为几十米到上千米时 , 广泛采用 RS-485 串行总线标准 。RS-485 采用平衡发送和差分接收 , 因此具有抑制共模干扰的能力 。加上总线收发器具有高灵敏度 , 能检测低至 200mV 的电压 , 故传输信号能在千米以外得到恢复 。RS-485 采用半双工工作方式 , 任何时候只能有一点处于发送状态 , 因此 , 发送电路须由使能信号加以控制 。RS-485 用于多点互连时非常方便 , 可以省掉许多信号线 。应用 RS-485 可以联网构成分布式系统 , 其允许最多并联 32 台驱动器和 32 台接收器 。
IEEE-488 总线:IEEE-488 总线用来连接系统 , 如微计算机、数字电压表、数码显示器等设备及其他仪器仪表均可用 IEEE-488 总线装配起来 。它按照位并行、字节串行双向异步方式传输信号 , 连接方式为总线方式 , 仪器设备直接并联于总线上而不需中介单元 , 但总线上最多可连接 15 台设备 。最大传输距离为 20 米 , 信号传输速度一般为 500KB/s , 最大传输速度为 1MB/s 。
USB 总线:通用串行总线 USB 是由 Intel、Compaq、Digital、IBM、Microsoft、NEC、NorthernTelecom 等 7 家世界著名的计算机和通信公司共同推出的一种新型接口标准 。它基于通用连接技术 , 实现外设的简单快速连接 , 达到方便用户、降低成本、扩展 PC 连接外设范围的目的 。它可以为外设提供电源 , 而不像普通的使用串、并口的设备需要单独的供电系统 。
另外 , 汽车电子最近这么火 , 笔者想谈一下汽车网络中的 LIN 与 CAN 总线:
早在 1983 年 , 博世公司开始开发控制器局域网(CAN)总线 , 并且在 1986 年正式发布相关协议 。目前有多种不同汽车总线标准 , 但是 CAN 仍然是最流行的标准 。在 CAN 网络中 , 所有节点(源于不同的 ECU)都担当主节点(即 , 不存在主从拓扑结构) , 而且并不分配具体地址 。而是由消息携带标识符 。
在给定时间 , 多个节点可以同时向 CAN 总线发送数据 。然后由消息标识符帮助确定消息的优先级 。最高优先级的消息会使 CAN 总线进入显性状态 , 而所有其他节点会停止发送 。这些节点实际上是收发器 , 除发送消息之外 , 其可以根据特定功能从总线查找特定消息 。因此 , CAN 总线所连接的不同节点之间会出现信息流 。
由于 CAN 会进行填充错误、误码、校验和错误、误帧以及应答错误等多项错误检查 ,  因此具有高可靠性 。CAN 支持高达 1Mbps 的数据传输速率 , 从而成为连接汽车关键功能 ECU(如:变速箱、温度传感器等)的默认选择 。
但汽车为什么选择 LIN?
汽车电子的作用并非仅仅局限于这些关键单元 。车身电子市场多年来一直在增长 。典型车身控制应用包括座椅、车窗、智能雨刷以及汽车空调传感器等 。对车身电子的关键要求是确保汽车更舒适、更安全 。尽管这些系统可能不要求像关键 ECU 那样的高安全性 , 但是它们仍然需要一定的汽车网络通信标准 。
LIN 与 CAN 对比:
实现 CAN 比实现 LIN 的成本高 。导致 CAN 成本更高的因素包括:
CAN 网络中的每个节点都需要时钟发生器或晶体;
CAN 的芯片级实现起来更复杂;
采用双线传输 。
【常常弄混的总线分类,你能分清吗?】 最重要的是 , 整个昂贵的架构对于不需要高可靠性和高数据速率的应用来说过于奢侈 。以上就是常常弄混的总线分类 , 希望对大家有些帮助 。

    推荐阅读