硬件协议总结

   日期:2024-12-26    作者:jgu9l 移动:http://oml01z.riyuangf.com/mobile/quote/32143.html

,协议分类

  • 并行通信在同一时刻发送多位数据(可以是多根线)。优点:发送速度快;缺点:传输距离短,资源占用多。
  • 串行通信用一根线在不同的时刻发送8位数据。优点:传输距离远,占用资源少;缺点:发送速度慢。

, 通信方式分类

  • 单工通信:只能接受或者发送。例如:收音机、遥控器等,一般只有一根线
  • 半双工通信:在同一时刻只能发送或者接收。例如:对讲机,至少有两根线
  • 全双工通信:在同一时刻既能接收又能发送。例如:电话,至少有两根线。

 三,常见硬件通信协议

1. SPI协议

1)协议介绍

SPI是串行外设接口Serial Peripheral Interface)的缩写。SPI是一种高速的、全双工、同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,如今主流的微控制器都集成有SPI接口,如Stm32家族。

2)原理

SPI的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(单向传输时)。

产生时钟的一侧称为主机,另一侧称为从机。总是只有一个主机(一般来说可以是微控制器/MCU,但是可以有多个从机(后面详细介绍

数据的采集时机可能是时钟信号上升沿(从低到高)或下降沿(从高到低)。

SPI总线包括4条逻辑线,定义如下

  • MISO: 主机输入,从机输出(数据来自从机
  • MOSI: 主机输出,从机输入(数据来自主机
  • SCLK : 串行时钟信号,由主机产生发送给从机
  • CS:片选信号,由主机发送,以控制与哪个从机通信,通常是低电平有效信号。

其中,CS是从芯片是否被主芯片选中的控制信号,也就是说只有片选信号为预先规定的使能信号时(通常为低电平有效,主芯片对此从芯片的操作才有效。这就使在同一条总线上连接多个SPI设备成为可能。

整体的传输大概可以分为以下几个过程

  • 主机先将信号拉低,这样保证开始接收数据
  • 接收端检测到时钟的边沿信号时,它将立即读取数据线上的信号,这样就得到了一位数据(1);
  • 主机发送到从机:主机产生相应的时钟信号,然后数据一位一位地将从信号线上进行发送到从机
  • 主机接收从机数据:如果从机需要将数据发送回主机,则主机将继续生成预定数量的时钟信号,并且从机会将数据通过信号线发送。

图源见水印

3)SPI模式

a. 时钟极性:CKP/Clock Polarity 或 CPOL

除了配置串行时钟速率(频率)外,SPI主设备还需要配置时钟极性

时钟极性和相位共同决定读取数据的方式,比如信号上升沿读取数据还是信号下降沿读取数据

CKP可以配置为1或0。可以根据需要将时钟的默认状态(IDLE)设置为高或低。

  • :时钟空闲为低电平 
  • :时钟空闲为高电平。

b. 时钟相位:CKE /Clock Phase (Edge 或 CPHA

除配置串行时钟速率和极性外,SPI主设备还应配置时钟相位(或边沿

顾名思义,时钟相位/边沿,也就是采集数据时是在时钟信号的具体相位或者边沿

  • :在时钟信号的第一个跳变沿采样
  • :在时钟信号的第二个跳变沿采样。

c. 模式编号

SPI ModeCPOLCPHA0 [00]001 [01]012 [10]103 [11]11

4)多从机模式

a. 多NSS

  1. 通常,每个从机都需要一条单独的SS线。
  2. 如果要和特定的从机进行通讯,可以将相应的信号线拉低,并保持其他信号线的状态为高电平;如果同时将两个信号线拉低,则可能会出现乱码,因为从机可能都试图在同一条线上传输数据,最终导致接收数据乱码。

b. 菊花链

在数字通信世界中,在设备信号(总线信号或中断信号)以串行的方式从一个设备依次传到下一个设备,不断循环直到数据到达目标设备的方式被称为菊花链

  1. 菊花链的最大缺点是因为是信号串行传输,所以一旦数据链路中的某设备发生故障的时候,它下面优先级较低的设备就不可能得到服务了
  2. 另一方面,距离主机越远的从机,获得服务的优先级越低,所以需要安排好从机的优先级,并且设置总线检测器,如果某个从机超时,则对该从机进行短路,防止单个从机损坏造成整个链路崩溃的情况

菊花链模式充分使用了SPI其移位寄存器的功能,整个链充当通信移位寄存器,每个从机在下一个时钟周期将输入数据复制到输出。

5)优缺点

a. 优点

  • 全双工串行通信
  • 高速数据传输速率
  • 简单的软件配置
  • 极其灵活的数据传输,不限于8位,可以是任意大小的字
  • 非常简单的硬件结构。从机不需要唯一地址(与I2C不同;从机使用主机时钟,不需要精密时钟振荡器/晶振(与UART不同;不需要收发器(与CAN不同)。

b. 缺点

  • 没有硬件从机应答信号(主机可能在不知情的情况下无处发送
  • 通常仅支持一个主设备
  • 需要4根引脚(与I2C不同
  • 没有定义硬件级别的错误检查协议
  • 与RS-232和CAN总线相比,传输距离非常短

2. IIC协议

1)协议介绍

I2CIIC)属于两线式串行总线,由飞利浦公司开发用于微控制器(MCU)和外围设备(从设备)进行通信的一种总线,属于(一主多从一个主设备(Master,多个从设备(Slave)的总线结构总线上的每个设备都有一个特定的设备地址,以区分同一I2C总线上的其他设备

物理I2C接口有两根双向线串行时钟线(SCL串行数据线(SDA组成,可用于发送和接收数据,但是通信都是由主设备发起,从设备被动响应,实现数据的传输。

IIC极低的工作电流,降低了系统的功耗,完善的应答机制大大增强通讯的可靠性。

a. IIC的5种传输速率

I2C协议可以工作在以下5种速率模式下,不同的器件可能支持不同的速率。

  • 标准模式(Standard:100kbps
  • 快速模式(Fast:400kbps
  • 快速模式+(Fast-Plus:1Mbps
  • 高速模式(High-speed:3.4Mbps
  • 超快模式(Ultra-Fast:5Mbps(单向传输

其中超快模式是单向数据传输,通常用于LED、LCD等不需要应答的器件,和正常的I2C操作时序类似,但是只进行写数据,不需要考虑ACK应答信号。

b. 4种信号

I2C协议最基础的几种信号起始、停止、应答和非应答信号

(a)起始信号

(b)停止信号

过程如下

I2C协议对数据的采样发生在SCL高电平期间,除了起始和停止信号,在数据传输期间,SCL为高电平时,SDA必须 保持稳定,不允许改变,在SCL低电平时才可以进行变化。

(c)应答信号

I2C最大的一个特点就是有完善的应答机制,从机接收到主机的数据时,会回复一个应答信号来通知主机表示“我收到了”。

应答信号出现在1个字节传输完成之后,即第9个SCL时钟周期内,此时主机需要释放SDA总线,把总线控制权交给从机,由于上拉电阻的作用,此时总线为高电平,如果从机正确的收到了主机发来的数据,会把SDA拉低,表示应答响应。

使用MCU、FPGA等控制器实现时,需要在第9个SCL时钟周期把SDA设置为高阻输入状态,如果读取到SDA为低电平,则表示数据被成功接收到,可以进行下一步操作。

(d)非应答信号

当第9个SCL时钟周期时,SDA保持高电平,表示非应答信号。

(e)数据有效性

I2C协议对数据的采样发生在SCL高电平期间,除了起始和停止信号,在数据传输期间,SCL为高电平时,SDA必须保持稳定,不允许改变,在SCL低电平时才可以进行变化。

c. 读写时序

向指定寄存器地址写入指定数据操作时序

从指定寄存器地址读取数据操作时序

读数据时有两次起始信号:S和Sr。

d. 为什么IIC要加上拉电阻

I2C协议中规定I2C的SCL和SDA都是开漏(OD)输出,开漏输出只能输出低电平不能输出高电平。根据I2C总线规范,总线空闲时两根线都必须为高,故需要上拉电阻来使其能够稳定地输出高电平。

总结

  1. 给I/O确定的电平,不易受外界干扰
  2. 接上拉的开漏输出结构可以作为外部的输入I/O。

e. IIC上拉电阻该如何选择

 

3. CAN协议

1)协议介绍

控制器局域网总线(CANController Area Network)是一种用于实时应用的串行通讯协议总线,它可以使用双绞线来传输信号,是世界上应用最广泛的现场总线之一。CAN协议用于汽车中各种不同元件之间的通信,以此取代昂贵而笨重的配电线束。该协议的健壮性使其用途延伸到其他自动化和工业应用。CAN协议的特性包括完整性的串行数据通讯、提供实时支持、传输速率高达1Mb/s、同时具有11位的寻址以及检错能力。

2)通信原理

CAN总线使用串行数据传输方式,可以1Mb/s的速率在40m的双绞线上运行,也可以使用光缆连接,而且在这种总线上总线协议支持多主控制器。CAN与I2C总线的许多细节很类似,但也有一些明显的区别。当CAN总线上的一个节点(站)发送数据时,它以报文形式广播给网络中所有节点。对每个节点来说,无论数据是否是发给自己的,都对其进行接收。每组报文开头的11位字符为标识符,定义了报文的优先级,这种报文格式称为面向内容的编址方案。在同一系统中标识符是唯一的,不可能有两个站发送具有相同标识符的报文。当几个站同时竞争总线读取时,这种配置十分重要。

当一个站要向其它站发送数据时,该站的CPU将要发送的数据和自己的标识符传送给本站的CAN芯片,并处于准备状态;当它收到总线分配时,转为发送报文状态。CAN芯片将数据根据协议组织成一定的报文格式发出,这时网上的其它站处于接收状态。每个处于接收状态的站对接收到的报文进行检测,判断这些报文是否是发给自己的,以确定是否接收它。由于CAN总线是一种面向内容的编址方案,因此很容易建立高水准的控制系统并灵活地进行配置。我们可以很容易地在CAN总线中加进一些新站而无需在硬件或软件上进行修改。当所提供的新站是纯数据接收设备时,数据传输协议不要求独立的部分有物理目的地址。它允许分布过程同步化,即总线上控制器需要测量数据时,可由网上获得,而无须每个控制器都有自己独立的传感器。

4. UART协议

1)协议介绍

通用异步收发传输器Universal Asynchronous Receiver/Transmitter),通常称作UART,是一种异步收发传输器,是电脑硬件的一部分。它将要传输的资料在串行通信与并行通信之间加以转换。作为把并行输入信号转成串行输出信号的芯片,UART通常被集成于其他通讯接口的连结上。

具体实物表现为独立的模块化芯片,或作为集成于微处理器中的周边设备。一般是RS-232C规格的,与类似Maxim的MAX232之类的标准信号幅度变换芯片进行搭配,作为连接外部设备的接口。在UART上追加同步方式的序列信号变换电路的产品,被称为USART(Universal Synchronous Asynchronous Receiver Transmitter)。

2)通信原理

UART作为异步串口通信协议的一种,工作原理是将传输数据的每个字符一位接一位地传输。

其中各位的意义如下

  • 起始位:先发出一个逻辑”0”的信号,表示传输字符的开始。
  • 数据位:紧接着起始位之后,通常采用ASCII码。从最低位开始传送,靠时钟定位。
  • 奇偶校验位:数据位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验),以此来校验资料传送的正确性。
  • 停止位:它是一个字符数据的结束标志。可以是1位、1.5位、2位的高电平。由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。
  • 空闲位:处于逻辑“1”状态,表示当前线路上没有资料传送。
  • 波特率:是衡量资料传送速率的指标。表示每秒钟传送的符号数(symbol)。一个符号代表的信息量(比特数)与符号的阶数有关。例如资料传送速率为120字符/秒,传输使用256阶符号,每个符号代表8bit,则波特率就是120baud,比特率是 120×8=960�/� 。

5. USB协议

1)协议简介

通用串行总线Universal Serial Bus,USB)是连接计算机系统与外部设备的一种串口总线标准,也是一种输入输出接口的技术规范,被广泛地应用于个人电脑和移动设备等信息通讯产品,并扩展至摄影器材、数字电视(机顶盒)、游戏机等其它相关领域。

a. 通信接口

b. 编码方式

这种编码方式也称为反向不归零编码(NRZI

位填充:在数据进行编码前,每6个连续的信号之后都会插入1个信号,以避免长时间电平保持不变带来的同步漂移。

2)标准USB接口

下图为标准USB A型连接器(左)及B型连接器(右)。

标准USB接口的信号使用分别标记为D_+和D_-的双绞线传输,它们各自使用半双工差分信号并协同工作,以抵消长导线的电磁干扰。

3)USB Type-C接口

USB Type-C,又称USB-C,是一种通用串行总线(USB)的硬件接口形式,外观上最大特点在于其上下端完全一致,与USB Type-A相比不再区分USB正反面。

a)引脚说明

母头,内凸

公头,内凹避免线路外露

(仅用于学习总结,借鉴知乎@Furan


特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号