今日推荐:常用的器件/外设接口


GPIO

输入 - 用于状态监测
  • 开关 - switch
  • 按键 - push button
    • 消抖动
  • 传感器状态 - 比如光敏
  • 逻辑电平0、1、未确定的区间
输出
  • 每个器件的输出阻抗不同、输出电流不同,需要查询数据手册
  • 很多FPGA器件的输出阻抗是可编程
  • 应用:
    • 驱动LED
      • LED有前向电压,供电要高于前向电压
      • LED的亮度取决于流过的电流,通过限流电阻调节零度
    • 驱动大的直流负载
      • 阻性负载 - 采用三极管、MOSFET
      • 感性负载 - 需要续流二极管进行保护
    • PWM
      • 控制LED亮度
      • 用作DAC产生直流电压
      • 电机调速、控制伺服电机

并行接口

构成
  • 数据总线 - 8、16、32位
  • 地址总线 - 取决于寻址空间的大小
  • 控制线 - 读、写、使能
优点
  • 处理器/控制器端内部逻辑功能简单
  • 在低速/短距离的场景下数据传输带宽高
缺点
  • 太多的连线,占用太多的管脚, 收发端都要有
  • 传输距离长的情况下速率受限

串行接口

连线较少、成了MCU的标配
电路的核心是移位寄存器
同步串行接口
    • Serial Peripheral Interface - 串行外设接口
    • 高速(50Mbps)、同步、全双工(SCLK、MISO、MOSI、nCS)
    • 主、从结构,1主n从,靠nSS(或nCS)来寻址不同的外设
    • 根据时钟的极性和相位有4种工作模式,收发端要一致
    • 广泛应用在
      • 传感器
      • 信号调理
      • 高速串行接口的ADC或DAC
    • 优点:
      • 简单、方便、低成本
      • 用MCU指令或FPGA的逻辑来实现比较容易
    • 局限性:
      • 没有来自接收端的应答确认
      • 没有寻址机制,多个从设备需要多个片选信号,占用太多管脚
      • 没有纠错的机制
    • Inter-Integrated Circuit,短距离的IC之间的连接
    • 起源于Philips公司为其音、视频器件开发的一种总线
    • 半双工、同步串行接口
    • 只需要两根线(SCL、SDA),具有寻址和应答功能
    • 两根线都需要上拉电阻才能正常工作
    • 多个从设备连接时的电容效应会影响到传输速率
    • 每个节点都可以做主/从,每个从设备都有一个地址
    • 广泛应用在:
      • 低速传感器接口
      • 低速串行接口外设的配置
    • 优点:
      • 物理连接简单,只需要2根线,可以配置更复杂的网络,增减节点比较方便
      • 可靠性相对较高
    • 局限性
      • 速度较慢
      • 数据不够安全
      • 很难应用在医疗、汽车和高可靠的应用中
      • 用MCU代码或FPGA逻辑实现相对于SPI复杂度高
  • 同步串行接口的优点
    • 逻辑实现简单
    • 时钟频率灵活
  • 同步串行接口的缺点
    • 每个数据传输需要一个多余的时钟信号线(SPI的SCLK或I2C的SCL)
    • 时钟的带宽至少是数据带宽的2倍,限制了数据的传输速度
    • 长距离传输数据和时钟信号会失去同步
异步串行接口
  • 特点:
    • 接收端提取时序信息
    • 速率是确定的 - 每个节点需要准确且稳定的时钟源
    • 每个Byte或Word都以Start和Stop位成帧
    • Universal Asynchronous Receiver/transmitter - 异步收发
    • TXD/RXD,全双工
    • 可达3Mbps
    • 设计中要注意的问题:
      • 在接收端需要根据发送端的波特率进行正确设置
      • TXD/RXD不要接反
    • 最常用的总线
    • PnP应用
    • 分为Host、Slave、OTG(On The Go)模式,要正确选取
    • 1.5Mbps(低速)、12Mbps(全速)、480Mbps(高速)、10Gbps(Type C)
    • D+/D-/Vcc/GND四线连接,D+/D-为差分信号,要等延时走线
  • Ethernet
    • IEEE802.3标准,支持速率10Mbps、100Mbps、1Gbps、100Gbps
    • 差分收、发信号TX+/TX-、RX+/RX-
    • 以太网串行接数据包按帧进行封装传输,每一帧有收、发两端的MAC地址
    • 以太网的数据采用曼切斯特编码以便时钟信号的提取
  • CAN总线
    • Controller Area Network
    • 异步、半双工、固定比特率
    • 最高1Mbps
    • 所有节点都是平等的,配置为P2P
    • 有仲裁机制确定各个节点的通信优先级
    • 节点数没有限制
    • 总线节点没有地址,但有“信息过滤”的机制
    • 数据成帧进行传输
    • 高度的数据安全级别、错误检查

模拟接口

内置了ADC、DAC
内置了温度传感器
Cypress的PSoC器件


苏老师的几篇关于串行接口的公众号文章: