I2C和SPI总线以及通信
创始人
2025-06-01 09:42:53
0

通讯属性 概括

  • Serial/parallel 串行/并行
  • Synchronous/asynchronous 同步/异步
  • Point-to-point / bus 点对点 总线
  • Half-duplex/full-duplex 半双工/全双工
  • Master-slave/ equal partners 主从/对等
  • single-ending / differential 单端/差分

点对点和总线

  • 点对点通讯
    只有两个通讯点 only two comunication partners
    没有地址请求 no addressing required
  • 总线通讯
    若干个通信点 several communication partners
    地址请求 addressing required

同步(Synchronous)和异步(Asynchronous)

  • 同步
    时钟接收者和时钟发送者共享一个时钟。 Clock of receiver is linker to clock of sender
    快速通信。Fast communication
  • 异步
    约定好通信速率 进行通讯。independent clocks for sender and receiver
    Receiver knows the transmission speed in advance
    Requires packet frame with start/stop bit
    Normally an over-samping scheme is required
    Communication is slower

Half duplex 半双工和Full duplex 全双工

  • 半双工
    只有一个通信通道。需要进行发送和接收的时候占用通道。不用的时候,应当释放信道。你发我听, 我发你听。
  • 全双工
    双方都可以通信。

对等(Equal partners)和 主从(Master-slave)方式

  • 对等
    any node may transmit if medium(媒介) is free。
    Arbitration(仲裁) is required 需要仲裁
  • 主从
    主从设备之间没有对等的权利
    只有主设备可以开始通信。Only master can start a communication.
    Slave get permission to communicate form master.
    e.g. USB鼠标和PC的主从通信。PC作为通信的host,USB作为通信的device。鼠标和PC的通讯时,PC按照一定的频率去读取鼠标的中断方式的通讯信息。

通信信号区分

  • Single-ended 单端信号
    以单线的电平高低判断信号
  • differential 差分信号
    用两根双绞线传递这两个差模(差分)的信号。承载差模信号的数字信号0或者1的判断,是以两根线的信号的差值来判断。

iic简介

IIC(Inter-Integrated Circuit)总线是两线式串行总线,用于连接MCU和外设。由数据线SDA和时钟线SCL构成串行总线,可发送和接受数据。高速IIC总线速率可达400Kbps以上。
I2C总线在传送数据过程中分三种类型信号

信号SCLSDA
开始信号由高变低开始传送数据
结束信号由低变高结束传送数据,可不要
应答信号接收ic向发送ic发出特定的低电平,表示己收到数据

IIC总线时序图
IIC总线时序图

spi简介

SPI(Seial Peripheral interface)串行外围设备接口。SPI(Serial Peripheral Interface) 同步串行通讯方式,适用于短距离通讯。
可用接各种外设和芯片。e.g. ADC/RTC/LCD/ROM/DAC/Sensor。
SPI是一种高速的,全双工、同步的通信总线。
spi是4线同步串行通讯接口。实现SPI的主从设备还要第5根线GND。

SPI的特点

  • 串行接口 Serial Interface
  • 同步 Synchronous
  • 主从配置 Master-slave configuration
  • 数据交换-DMA/PIO Date Exchange
  • 全双工 Full duplex operation(一主)
  • 灵活的时钟极性/相位格式 Flexible clock polarity/phase format
  • 4到16位的可变字节帧
  • 总线竞争保护

spi内部简明图

在这里插入图片描述
从上图看,SPI有4个线通信

引脚描述
MOSI(Master Out Slave In)主出从入,主设备发送到从设备的信号
MISO(Master IN slave OUT)主入从出。从设备发送到主设备的信号
SCKserial clock,由主设备控制产生的SPI工作时钟,每个SCK周期完成一个bit的传输。SCK信号必须干净,有毛刺会带来严重的干扰
SS/CSSlave/Chip Select,从设备选择端,当从设备收到该段为低电平时,设备有效;对于主设备,该端平时为高电平,可以用于在有效传输周期内给出低电平选通。

spi工作方式

spi模块要与外设进行数据交互,需要配置串行同步时钟极性和相位在相同的工作模式。
CPOL时钟极性

CPOL描述
0串行同步时钟的空闲状态为低电平
1串行同步时钟的空闲状态为高电平

CPHA时钟相位可选择2种传输协议

CPHA描述
0在串行同步时钟的第一个跳变沿(上升或下降)数据被采样
1在串行同步时钟的第二个跳变沿(上升或下降)数据被采样

工作流程

SS片选信号拉低(或拉高)–> 主从机双方准备传递信息,MISO MOSI引脚开始把数据准备好 --> 当时钟的第一个边沿出现时(上升沿或下降沿),开始观察各自的输入引脚进行bit采样 --> 当时钟出现第二边沿时,主从机驱动自己的输出引脚准备发送第二个bit。

传输时序

在这里插入图片描述

主模式

  • 控制整个传输过程
    • 通过SS信号选择对应的通信从节点
    • 决定SCK波特率,相位,极性
    • 产生SCK时钟信号
    • 驱动MOSI信号
    • 采用MISO信号
  • CPU通过向SPIx_D写入数据来启动一次传输过程

从模式 Slave mode

  • 响应主节点的信号
    • 当SS信号被选通时才激活
    • 根据预先约定的相位/极性来检测SCK
    • 按照主机的通信速度驱动MISO信号
    • 采样MOSI信号

注意点 Point to notice

  • 通常,SPI是点对点结构的
  • 必须预先约定SCK时钟的相位/极性和数据帧位数
  • 从节点的CPU需要在数据帧开始前 将待发数据准备好并写入SPIx_D
  • SCK信号必须干净不能有毛刺 SCK保证主从机都能接收的范围

相关内容

热门资讯

安卓共有多少种系统,究竟有多少... 你有没有想过,安卓这个我们每天不离手的操作系统,竟然有那么多不同的版本呢?没错,安卓系统就像一个大家...
安卓系统怎么播放swf,And... 你有没有遇到过这种情况:手里拿着一部安卓手机,想看一个SWF格式的动画,结果发现怎么也打不开?别急,...
pos机安卓系统跟win系统,... 你有没有想过,那些在我们生活中默默无闻的POS机,竟然也有自己的操作系统呢?没错,就是安卓系统和Wi...
俄罗斯封禁安卓系统,本土化替代... 俄罗斯封禁安卓系统的背后:技术、经济与社会的影响在数字化浪潮席卷全球的今天,智能手机已成为我们生活中...
安卓系统总是弹出权限,安卓系统... 手机里的安卓系统是不是总爱和你玩捉迷藏?每次打开一个应用,它就跳出来问你要不要给它开权限,真是让人又...
安卓系统测血氧,便捷健康生活新... 你知道吗?现在科技的发展真是让人惊叹不已!手机,这个我们日常生活中不可或缺的小玩意儿,竟然也能变身成...
蓝光助手安卓系统的,深度解析与... 你有没有发现,现在手机屏幕越来越大,看视频、刷抖音,简直爽到飞起!但是,你知道吗?长时间盯着屏幕,尤...
安卓系统如何隐藏提示,Andr... 你是不是也和我一样,在使用安卓手机的时候,总是被那些弹出来的提示信息打扰到?别急,今天就来教你怎么巧...
安卓6.0系统如何分区,And... 你有没有想过,你的安卓手机里那些神秘的分区到底是怎么来的?别急,今天就来给你揭秘安卓6.0系统如何分...
安卓系统图片怎么涂鸦,指尖上的... 你有没有想过,在安卓系统的手机上,那些单调的图片也能变得生动有趣呢?没错,就是涂鸦!今天,就让我来带...
安卓系统40g,40GB存储空... 你有没有发现,最近你的安卓手机突然变得有点“胖”了呢?没错,就是那个传说中的40G!别急,别慌,今天...
安卓5.0系统怎么重置,轻松实... 手机用久了是不是感觉卡得要命?别急,今天就来教你怎么给安卓5.0系统来个彻底的重置,让它焕发新生!一...
安卓系统是不是快要,安卓系统即... 你有没有发现,最近安卓系统好像有点儿“不安分”了呢?是不是快要发生什么大事情?咱们一起来探个究竟吧!...
安卓6系统和8系统差别,全面对... 你有没有发现,手机更新换代的速度简直就像坐上了火箭呢?这不,安卓系统也跟着时代的步伐,从6系统一路升...
安卓11系统推荐下载,体验全新... 你有没有发现,最近手机界又掀起了一股热潮?没错,就是安卓11系统!这款全新的操作系统一经推出,就吸引...
原生安卓系统怎样升级,从基础到... 你有没有发现,你的安卓手机用久了,有时候就像老牛拉车一样,慢吞吞的?别急,今天就来给你支个招,让你的...
安卓13系统怎么开发,开发者的... 你有没有听说安卓13系统已经发布了?这可是个大新闻呢!作为一个热衷于手机开发的小伙伴,你是不是也跃跃...
安卓q系统镜像下载,轻松升级体... 你有没有听说安卓Q系统已经发布了?这可是安卓家族里的一大亮点呢!今天,我就要来给你详细介绍一下安卓Q...
安卓系统色彩校正软件,打造个性... 你有没有发现,手机屏幕的色彩有时候会让人感觉不太对劲?有时候,画面看起来有点灰蒙蒙的,有时候又太艳丽...
苹果能否下个安卓系统,开启新篇... 你有没有想过,苹果的iOS系统会不会有一天突然宣布,它要拥抱安卓的大家庭呢?想象iPhone和iPa...