UART:
(《基于 FPGA 与 RISC-V 的嵌入式系统设计》顾长怡)
MCU 微控制器、MPU 微处理器
MCU 的优势更在于其拥有丰富的外围设备
UART(Universal Asynchronous Receiver Transmitter,(异步)串行口)
当用 FPGA 来实现 UART 接口时,一个需要注意的地方就是应尽量将接收信号的采样点选在每个符号周期中点的位置,以提高接受的稳定性(顾长怡 P 167)
I2 C 和 SMBus:
I2 C 总线是飞利浦半导体公司(NXP 公司前身)提出的一种同步共享主线
可以在同一总线上支持多个主设备和多个从设备
I2 C 总线只包含两个信号:SCL(Serial Clock Line,串行时钟线)和 SDA(Serial Data Line,串行数据线)。和 UART 不同的是,I2 C 总线信号采用六楼几开路/集电极开路驱动方式,而不是 UART 的推挽/图腾柱驱动方式,因此在这两个信号线上都需要放置上拉电阻(顾长怡 P 167)
I2 C 总线的 帧结构 包括“起始位”“设备地址”“读写标记”“数据位”“终止位”等
双向二线制串行总线协议的定义见夏宇闻 P 226
EEPROM 与 FLASH 通俗易懂的UART协议帧格式 - 知乎 (zhihu.com)
SPI:
SPI(Serial Peripheral Interface)总线是一种全双工串行总线,包含以下 4 个信号:
SCLK(Serial Clock):串行总线时钟
SS#(Slave Select):从设备选择,通常低有效
MOSI(Master Out,Slave In):从主设备到从设备的数据信号
MISO(Master In,Slave Out):从从设备到主设备的数据信号
SPI 并不存在一个官方的标准化组织,所以不同设备生产商的 SPI 参数需要自己查找。具体反映在对时钟的极性(Clock Polarity,CPOL)和时钟的相位(Clock Phase,CPHA)的选择
PWM:
PWM(Pulse Width Modulation,脉冲宽度调制)有两个主要参数:占空比和频率。(顾长怡 P 171)
MicroSD 存储卡:
在嵌入式系统中有着广泛运用,microSD 存储卡有 8 根信号线(顾长怡 P 172)
目前在嵌入式系统中一般都以 SPI 方式来访问 microSD
PS/2 接口
PS/2 接口曾是 PC 鼠标和键盘的标准接口配置,现在已经很少使用,但是在嵌入式的小键盘中还是很多使用
目前 PS/2接口已经慢慢的被 USB 所取代,只有少部分的台式机仍然提供完整的 PS/2键盘及鼠标接口,少部分机器则已无 PS/2,大部分的机器仅提供一组键盘及鼠标可以共享之 PS/2接口或是仅可供键盘使用
在 hdlbits 中也有相关题目 HDLBits (133) — PS/2 数据包解析器 - 哔哩哔哩 (bilibili.com)
对 Keypad 来说,每次从 PS/2接口收到的 8 位数据正好对应一个键盘按键的扫描码
了解UART总线工作原理看这一篇就够了! - 知乎 (zhihu.com)
通俗易懂的UART协议帧格式 - 知乎 (zhihu.com)
旋转编码器:
旋转编码器(Rotary Encoder)有时也称轴编码器,通常用来调整音量、亮度等参数
可分为绝对式旋转编码器、增量式旋转编码器
对于增量式旋转编码器有 3 个基本操作
顺时针旋转
逆时针旋转
按压设置旋转
通常设置有 5 个信号:Vcc、GND、SW(switch)(通常接上上拉电阻,当旋钮被按下时,该信号变为低电平)、DT(data)、CLK(clock)