常见外设

这一章介绍嵌入式开发中最常碰到的外设,及其工作原理。

一、GPIO(General Purpose Input/Output)

1. 用途

2. 关键概念

3. Linux 操作

# 导出引脚
echo 17 > /sys/class/gpio/export
# 设置方向
echo out > /sys/class/gpio/gpio17/direction
# 设置值
echo 1 > /sys/class/gpio/gpio17/value
# 读值
cat /sys/class/gpio/gpio17/value
# 取消导出
echo 17 > /sys/class/gpio/unexport

现代内核推荐 libgpioddevice tree + gpio-keys 驱动。


二、UART(Universal Asynchronous Receiver/Transmitter)

1. 协议

2. 应用场景

3. 关键参数


三、I2C(Inter-Integrated Circuit)

1. 特点

2. 时序

3. 常见设备


四、SPI(Serial Peripheral Interface)

1. 特点

2. 模式(CPOL/CPHA)

Mode CPOL CPHA 空闲 SCL 采样边沿
0 0 0 上升沿(第一边沿)
1 0 1 下降沿(第二边沿)
2 1 0 下降沿(第一边沿)
3 1 1 上升沿(第二边沿)

3. 常见设备


五、ADC / DAC

1. ADC 关键参数

2. DAC


六、PWM(Pulse Width Modulation)

1. 用途

2. 参数


七、Timer / Counter

1. 类型


八、其他常见外设(简述)

外设 用途 备注
CAN 汽车 / 工业总线 差分、可靠、多主
USB Host / Device / OTG 复杂协议栈
Ethernet MAC 网络 需外接 PHY
HDMI / LVDS / MIPI-DSI 显示
CSI / ISP 摄像头
I2S / PCM / SPDIF 音频
SD/MMC 存储卡 单线 / 4 线 / 8 线
NAND / eMMC 控制器 大容量存储