在电子设备的运行中,总线起着连接各个部件、实现数据传输和通信的关键作用。下面将详细介绍几种常见的总线,包括 IIC、IIS、SPI、UART、JTAG、CAN、SDIO 和 GPIO。
IIC 总线是由 PHILIPS 公司开发的两线式串行总线,主要用于连接微控制器及其外围设备。它采用 OD(Open Drain,开漏)输出,大部分 IIC 总线由时钟线和数据线两条线构成,通常用于传输控制信号。其工作模式为在微控制器和外部设备之间进行串行通讯,或者在主设备和从设备之间实现双向数据传送。例如,在一些智能家电的控制板中,IIC 总线可用于连接主控芯片和各种传感器,实现对传感器数据的读取和控制信号的传输。
IIS 是飞利浦公司为数字音频设备之间的音频数据传输制定的总线标准。它有三个主要信号:
- 串行时钟 SCLK:也叫位时钟,对应数字音频的每一位数据,SCLK 会产生一个脉冲。
- 帧时钟 LRCK:用于切换左右声道的数据。当 LRCK 为 “1” 时,表示正在传输左声道的数据;为 “0” 时,则表示正在传输右声道的数据。
- 串行数据 SDATA:是以二进制补码表示的音频数据。此外,为了使系统间更好地同步,还可能会传输一个主时钟 MCLK,也称为系统时钟(Sys Clock)。在音频播放器、音响设备等中,IIS 总线被广泛应用于音频数据的传输,确保高质量的音频播放。
SPI 是 Motorola 首先在其 MC68HCXX 系列处理器上定义的。它主要应用在 EEPROM、FLASH、实时时钟、AD 转换器,以及数字信号处理器和数字信号解码器之间。SPI 接口以主从方式工作,通常有一个主器件和一个或多个从器件。其接口包含四种信号:
- MOSI:主器件数据输出,从器件数据输入。
- MISO:主器件数据输入,从器件数据输出。
- SCLK:时钟信号,由主器件产生。
- /SS:从器件使能信号,由主器件控制。在一些嵌入式系统中,SPI 总线可用于连接主控制器和外部存储设备,实现快速的数据读写操作。
UART 的主要功能是将计算机内部的并行数据转换为输出的串行数据流,同时将计算机外部的串行数据转换为字节供内部使用并行数据的器件使用。它还会在输出的串行数据流中加入奇偶校验位,并对从外部接收的数据流进行奇偶校验;在输出数据流中加入启停标记,并从接收数据流中删除启停标记。此外,UART 还能处理键盘或鼠标发出的中断信号,以及计算机与外部串行设备的同步管理问题。一些的 UART 还提供输入输出数据的缓冲区。常用的引脚有 TXD、RXD、/RTS、/CTS。在计算机与串口设备(如串口打印机、串口传感器等)的通信中,UART 发挥着重要作用。
JTAG 是一种国际标准测试协议(IEEE1149.1 兼容),主要用于芯片内部测试。标准的 JTAG 接口有四条线:TMS(模式选择)、TCK(时钟)、TDI(数据输入)和 TDO(数据输出),测试复位信号(TRST,一般以低电平有效)通常作为可选的第五个端口信号。对于含有 JTAG Debug 接口模块的 CPU,只要时钟正常,就可以通过 JTAG 接口访问 CPU 的内部寄存器和挂在 CPU 总线上的设备,如 FLASH、RAM、内置模块的寄存器(如 UART、Timers、GPIO 等)。在芯片的生产测试和调试过程中,JTAG 总线是不可或缺的工具。
CAN 全称为 “Controller Area Network”,即控制器局域网,是国际上应用广泛的现场总线之一。初,CAN 被设计用于汽车环境中的微控制器通讯,在车载各电子控制装置 ECU 之间交换信息,形成汽车电子控制网络。例如,发动机管理系统、变速箱控制器、仪表装备、电子主干系统中,都嵌入了 CAN 控制装置。在一个由 CAN 总线构成的单一网络中,理论上可以挂接无数个节点,但实际应用中,节点数目受网络硬件的电气特性限制。例如,当使用 Philips P82C250 作为 CAN 收发器时,同一网络中允许挂接 110 个节点。CAN 可提供高达 1Mbit/s 的数据传输速率,便于实现实时控制,并且其硬件的错误检定特性增强了抗电磁干扰能力。在工业自动化、智能交通等领域,CAN 总线也有广泛的应用。
SDIO 是 SD 型的扩展接口,除了可以连接 SD 卡外,还能连接支持 SDIO 接口的设备。支持 SDIO 接口的 PDA、笔记本电脑等可以连接 GPS 接收器、Wi - Fi 或蓝牙适配器、调制解调器、局域网适配器、条形码读取器、FM 无线电、电视接收器、射频身份读取器或数码相机等采用 SD 标准接口的设备。这使得设备的功能扩展更加方便,例如,在一些平板电脑上,通过 SDIO 接口可以连接无线网卡,实现无线网络的接入。
GPIO(通用输入 / 输出)或总线扩展器利用工业标准 I2C、SMBus?或 SPI?接口简化了 I/O 口的扩展。当微控制器或芯片组没有足够的 I/O 端口,或者系统需要采用远端串行通信或控制时,GPIO 产品能够提供额外的控制和监视功能。每个 GPIO 端口可通过软件分别配置成输入或输出。在一些小型的嵌入式系统中,GPIO 端口可用于连接一些简单的外设,如 LED 灯、按键等,实现对外设的控制和状态的读取。