嵌入式接口介绍

本文详细介绍了嵌入式系统中常见的GPIO、UART、I2C和SPI接口的工作原理和应用场景。GPIO用于输入输出控制,UART是通用异步收发传输,I2C是低速半双工总线,SPI则为高速全双工接口。这些接口在硬件设计和通信中扮演着重要角色。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

GPIO

  • 通用型输入输出(General-purpose input/output)
  • input: 读外围HW的电平信号,例如读取按键信号
  • output: 控制HW行为,例如控制外围芯片供电,控制外围LED亮灭等等
  • 可以SW模拟其他对外接口,例如I2C/SPI等
  • HW线路:1根管脚
    参考下图:
    在这里插入图片描述

针对某个GPIO的通常用法:

  1. register 设置 GPIO模式(通常GPIO可复用其他功能)
  2. register 设置input/output 功能
  3. register 读取/写入 input/output 电平
  4. 其他:上拉/下拉/悬空状态设置

UART

  • 通用异步收发传输器(Universal Asynchronous Receiver/Transmitter)
  • TX/RX
  • 收发两端需要预先指定传输信息,例如波特率/位数(putty/securecrt)
  • 起始位/数据位/校验位/停止位
  • RS232、 RS449、 RS423、 RS422
    和 RS485 不同的模拟电气特性
  • HW: 2根管脚

在这里插入图片描述

默认高电平,拉低表示起始位,然后按照固定的波特率采样信号线上的电平
在这里插入图片描述

I2C/IIC Bus

  • Inter-Integrated Circuit Bus:IC之间总线
  • SDA:双向数据线
  • SCL:时钟线
  • 低速,半双工,由主机发起读写信号
  • HW: 2根线

在这里插入图片描述
一般流程:

  1. 默认SDA/SCL为高电平
  2. master 拉低SDA表示传输开始START
  3. 在SCL上升沿时,采样SDA的数据信号,表示读取一位数据
  4. 读完8位数据,slave会拉低SDA,表示ACK,如果不拉低,表示slave读取失败,master需要重传数据
  5. ACK 以后,master可以继续发送下一个byte的数据
  6. 在SCL高电平期间,拉高SDA线,表示传输结束STOP

常用场景:
1 读写外部IC的寄存器
在这里插入图片描述

SPI

  • Serial Peripheral interface 串行外围设备接口
  • 高速的,全双工
  • MISO: 主设备输入/从设备输出引脚。
  • MOSI: 主设备输出/从设备输入引脚。
  • SCLK:串行时钟信号,由主设备产生。
  • CS/SS:从设备片选信号,由主设备控制。它的功能是用来作为“片选引脚”,也就是选择指定的从设备,让主设备可以单独地与特定从设备通讯,避免数据线上的冲突。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

常用场景:
SPI flash的读/写/擦除,通常为块操作,
所以读写速度较快,I2C为寄存器操作,需要双向发送地址/命令,速度较慢。

I2S

  • I2S(Inter—IC Sound)总线, 又称集成电路内置音频总线
  • 串行时钟SCK,也叫位时钟(BCLK),每bit一个方波
  • 帧时钟WS/LRCLK,与采样率一致,控制左右声道数据
  • 串行数据信号SD,通常两根信号,录音与放音
  • MCLK 可选,有时master需要提供clock给slave

在这里插入图片描述

CAN

SDIO

USB

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值