串行总线协议的区别
- 格式:docx
- 大小:14.59 KB
- 文档页数:14
总线与协议概述在计算机系统中,总线和协议是实现硬件设备之间通信的重要组成部分。
总线是一组电子信号线,用于在计算机各个组件之间传输数据和控制信号。
协议是一套规范,用于定义数据传输的格式、时序和控制方式。
本文将介绍总线的基本概念和常见协议的特点。
总线的基本概念总线是计算机内部各个硬件设备之间传输数据和控制信号的通道。
它将计算机内部的各个组件连接起来,使它们能够相互通信。
总线通常包括地址总线、数据总线和控制总线三部分。
•地址总线用于传输地址信息,指示数据在内存或外设中的位置。
•数据总线用于传输实际的数据。
•控制总线用于传输控制信号,如读写信号、时钟信号等。
总线的宽度指的是总线上能同时传输的位数,例如32位总线能够传输32位的数据。
常见总线协议1. PCI总线PCI(Peripheral Component Interconnect)是一种常见的总线标准,用于连接计算机的内部扩展卡。
PCI总线采用并行传输方式,支持多种设备类型的连接。
它具有高带宽、低延迟和热插拔功能等特点,广泛应用于个人电脑和服务器系统。
2. USB总线USB(Universal Serial Bus)是一种通用的外部设备连接接口,用于连接计算机与外部设备。
USB总线采用串行传输方式,具有热插拔、多设备连接和高速传输等特点。
USB总线广泛应用于鼠标、键盘、打印机、摄像头等外部设备。
3. SATA总线SATA(Serial Advanced Technology Attachment)是一种用于连接存储设备的接口标准。
SATA总线采用串行传输方式,具有高速传输和热插拔功能。
SATA总线主要应用于硬盘、光驱和固态硬盘等存储设备。
4. I2C总线I2C(Inter-Integrated Circuit)是一种用于连接芯片之间的串行总线标准。
I2C 总线采用两根线进行数据传输,具有简单、低速和多设备连接等特点。
I2C总线广泛应用于各种集成电路芯片之间的通信。
SPI、I2C、UART、USART串行总线协议的区别第一个区别当然是名字:SPI(Serial Peripheral Interface:串行外设接口);I2C(INTER IC BUS)UART(Universal Asynchronous Receiver Transmitter:通用异步收发器)第二,区别在电气信号线上:SPI总线由三条信号线组成:串行时钟(SCLK)、串行数据输出(SDO)、串行数据输入(SDI)。
SPI总线可以实现多个SPI设备互相连接。
提供SPI串行时钟的SPI设备为SPI主机或主设备(Master),其他设备为SPI从机或从设备(Slave)。
主从设备间可以实现全双工通信,当有多个从设备时,还可以增加一条从设备选择线。
如果用通用IO口模拟SPI总线,必须要有一个输出口(SDO),一个输入口(SDI),另一个口则视实现的设备类型而定,如果要实现主从设备,则需输入输出口,若只实现主设备,则需输出口即可,若只实现从设备,则只需输入口即可。
I2C总线是双向、两线(SCL、SDA)、串行、多主控(multi-master)接口标准,具有总线仲裁机制,非常适合在器件之间进行近距离、非经常性的数据通信。
在它的协议体系中,传输数据时都会带上目的设备的设备地址,因此可以实现设备组网。
如果用通用IO口模拟I2C总线,并实现双向传输,则需一个输入输出口(SDA),另外还需一个输出口(SCL)。
(注:I2C资料了解得比较少,这里的描述可能很不完备)UART总线是异步串口,因此一般比前两种同步串口的结构要复杂很多,一般由波特率产生器(产生的波特率等于传输波特率的16倍)、UART接收器、UART发送器组成,硬件上由两根线,一根用于发送,一根用于接收。
显然,如果用通用IO口模拟UART总线,则需一个输入口,一个输出口。
第三,从第二点明显可以看出,SPI和UART可以实现全双工,但I2C不行;第四,看看牛人们的意见吧!wudanyu:I2C线更少,我觉得比UART、SPI更为强大,但是技术上也更加麻烦些,因为I2C需要有双向IO的支持,而且使用上拉电阻,我觉得抗干扰能力较弱,一般用于同一板卡上芯片之间的通信,较少用于远距离通信。
简单描述:SPI 与I2C这两种通信方式都就是短距离的,芯片与芯片之间或者其她元器件如传感器与芯片之间的通信。
SPI与IIC就是板上通信,IIC有时也会做板间通信,不过距离甚短,不过超过一米,例如一些触摸屏,手机液晶屏那些很薄膜排线很多用IIC,I2C能用于替代标准的并行总线,能连接的各种集成电路与功能模块。
I2C就是多主控总线,所以任何一个设备都能像主控器一样工作,并控制总线。
总线上每一个设备都有一个独一无二的地址,根据设备它们自己的能力,它们可以作为发射器或接收器工作。
多路微控制器能在同一个I2C总线上共存这两种线属于低速传输;而UART就是应用于两个设备之间的通信,如用单片机做好的设备与计算机的通信。
这样的通信可以做长距离的。
UART与,UART就就是我们指的串口,速度比上面三者快,最高达100K左右,用与计算机与设备或者计算机与计算之间通信,但有效范围不会很长,约10米左右,UART优点就是支持面广,程序设计结构很简单,随着USB的发展,UART也逐渐走向下坡;SmBus有点类似于USB设备跟计算机那样的短距离通信。
简单的狭义的说SPI与I2C就是做在电路板上的。
而UART与SMBUS就是在机器外面连接两个机器的。
详细描述:1、UART(TX,RX)就就是两线,一根发送一根接收,可以全双工通信,线数也比较少。
数据就是异步传输的,对双方的时序要求比较严格,通信速度也不就是很快。
在多机通信上面用的最多。
2、SPI(CLK,I/O,O,CS)接口与上面UART相比,多了一条同步时钟线,上面UART的缺点也就就是它的优点了,对通信双方的时序要求不严格不同设备之间可以很容易结合,而且通信速度非常快。
一般用在产品内部元件之间的高速数据通信上面,如大容量存储器等。
3、I2C(SCL,SDA)接口也就是两线接口,它就是两根线之间通过复杂的逻辑关系传输数据的,通信速度不高,程序写起来也比较复杂。
一般单片机系统里主要用来与24C02等小容易存储器连接。
SPI、CAN、I2C总线总结一、SPI总线(serial peripheral interface)二、CAN总线(Controller area network)CAN是ISO认证的国际标准化串行通信协议。
CAN协议中,所有的消息都以固定的格式发送。
和总线连接的单元没有I2C类似的“地址”信息,但是每个单元都要有相同的通信速率。
CAN总线是可同时连接多个单元总线,可以连接的单元总数理论上是没有限制的,理论上,CAN总线上的节点数几乎不受限制,可达到2000个,实际上受电气特性的限制,最多只能接100多个节点。
三是实际上可连接的单元数受总线上的时间延迟及电器负载的限制。
降低通信速率,可连接的单元数增加;提高通信速率,则可连接的单元数减少。
CAN协议覆盖了ISO规定的OSI基本参照模型中传输层、数据链路层和物理层。
数据链路层分为MAC层和LLC子层。
MAC子层是CAN协议中核心部分。
数据链路层的功能是将物理层收到的信号组织成有意义的消息,并提供传输错误控制等传输控制的流程。
具体就是消息的帧化、仲裁、应答、错误的检测和报告。
数据链路层的功能通常在CAN控制器的硬件中执行。
物理层定义了信息实际的发送方式,位时序、位的编码方式及同步的步骤,具体信号的电平、通信速度、驱动器和总线电器特性由用户根据需求自行确定。
但是ISO 定义了两种不同物理层,一种是通信速度是最高1Mbps,总线最大长度是40m,最大连接数为30;另一种是通信速度最高是125kbps,但是总线长度可达1000m,最大连接数为20。
当两个以上的单元同时发送消息时,根据标识符(ID)来决定优先级,ID并不是表示发送的目的地址,而是表示访问总线的消息的优先级。
两个以上单元同时发送消息时,对各个消息的ID每位进行逐个仲裁比较,仲裁获胜的单元可以继续发送消息。
ID给出的不是目标节点地址,而是这个报文本身的特征。
信息以广播方式在网络上发送,所有节点都可以接收到。
SPII2CUART三种串行总线的原理区别及应用SPI(Serial Peripheral Interface),I2C(Inter-Integrated Circuit)和UART(Universal Asynchronous Receiver/Transmitter)是常见的串行总线通信协议,它们在嵌入式系统中被广泛使用。
以下是对这三种串行总线的原理、区别及应用的详细介绍。
1. SPI(Serial Peripheral Interface)SPI是一种同步的、全双工的串行总线协议,通常由一个主设备和一个或多个从设备组成。
SPI总线上通信是基于时钟信号进行同步的,主设备产生时钟信号,从设备在时钟的边沿上发送和接收数据。
在SPI总线上,主设备控制通信的起始和结束,并通过片选信号选择与之通信的从设备。
SPI总线上的数据传输是基于多线制的,其中包括主设备的时钟线(SCLK)、数据输出线(MOSI)、数据输入线(MISO)和片选线(SS)。
SPI总线具有以下特点:-速度较快,可以达到十几MHz甚至上百MHz的传输速率。
-支持多主设备,但每个时刻只能有一个主设备处于活动状态。
-适用于短距离通信,通常在PCB上的芯片之间进行通信。
-数据传输可靠性较高。
SPI总线广泛应用于各种设备之间的数据传输,例如存储器、传感器、显示模块等。
2. I2C(Inter-Integrated Circuit)I2C也是一种同步的、双向的串行总线协议,由一个主设备和一个或多个从设备组成。
I2C总线上的通信也是基于时钟信号进行同步的,主设备产生时钟信号和开始/停止条件,从设备在时钟边沿上发送和接收数据。
I2C总线上的数据传输是基于两根线—串行数据线(SDA)和串行时钟线(SCL)。
I2C总线具有以下特点:- 通信速度较慢,大多数设备的传输速率为100kbps,但也支持高达3.4Mbps的快速模式。
-支持多主设备,可以同时连接多个主设备。
总线协议有哪些总线协议是指控制多个设备之间数据传输和通信的规范和约定。
它定义了数据传输的格式、时序、电气特性等内容,确保不同设备之间能够有效地进行通信和交互。
下面将介绍一些常见的总线协议。
一、串行总线协议1. 串行通信协议(Serial Communication Protocol)串行通信协议主要用于串行数据传输,通过逐位传输数据来实现设备之间的通信。
常见的串行通信协议有RS-232、RS-485等。
2. I2C(Inter-Integrated Circuit)I2C是一种串行总线协议,适用于连接多个设备的短距离通信。
它采用两根信号线(时钟线和数据线)进行通信,支持多主机和多从机的通信。
3. SPI(Serial Peripheral Interface)SPI是一种同步的串行通信协议,主要用于连接微控制器和外围设备。
它使用四根信号线(时钟线、数据线、主机输出和主机输入线)进行通信,支持全双工通信。
二、并行总线协议1. PCI(Peripheral Component Interconnect)PCI是一种高速并行总线协议,主要用于连接计算机的外围设备。
它使用32位或64位的并行数据传输,支持多个设备同时访问总线。
2. USB(Universal Serial Bus)USB是一种通用的串行总线协议,用于连接计算机和外部设备。
它支持热插拔、即插即用的特性,可以同时连接多个设备。
三、网络总线协议1. EthernetEthernet是一种广泛应用于局域网(LAN)的网络总线协议。
它提供高速、可靠的数据传输,支持多台设备之间的通信。
2. CAN(Controller Area Network)CAN是一种广泛应用于汽车和工业控制领域的网络总线协议。
它支持多个设备之间的通信,并具有高抗干扰能力和可靠性。
四、其他总线协议1. HDMI(High-Definition Multimedia Interface)HDMI是一种高清晰度多媒体接口,用于连接高清视频和音频设备。
SPII2CUART三种串行总线协议及其区别SPI(Serial Peripheral Interface)是一种常见的串行总线协议,主要用于单片机和外部设备之间的通信。
SPI协议需要同时使用多个信号线,包括时钟信号、主从选择信号、数据输入信号和数据输出信号。
SPI协议是一种全双工的通信方式,数据可以双向传输。
SPI通信协议的特点包括以下几点:1.时钟信号:SPI协议中的设备之间使用了共享的时钟信号,时钟信号用于同步数据传输。
时钟信号由主设备控制,并且时钟频率可以根据需要调整。
SPI协议没有固定的时钟频率限制,可以根据实际需求进行调整。
2.主从选择信号:SPI协议中的从设备需要通过主从选择信号进行选择。
主设备通过拉低从设备的主从选择信号来选择与之通信的从设备。
可同时与多个从设备通信。
3.数据传输:SPI协议是一种由主设备控制的同步通信协议,数据在时钟的边沿上升移位。
主设备在时钟的上升沿将数据发送给从设备,从设备在时钟的下降沿将数据发送给主设备。
SPI协议的优势在于速度快、可靠性高,适合于需要高速传输的应用,如存储器、显示器驱动等。
I2C(Inter-Integrated Circuit)是一种常见的串行总线协议,主要用于集成电路之间的通信。
I2C协议仅需要两根信号线:序列时钟线(SCL)和串行数据线(SDA)。
I2C协议是一种半双工通信方式,数据只能单向传输。
I2C通信协议的特点包括以下几点:1.序列时钟线(SCL):SCL是在主设备和从设备之间共享的信号线,用于同步数据传输。
主设备通过拉高和拉低SCL来控制数据传输的时钟频率。
2.串行数据线(SDA):SDA负责数据的传输。
数据在SCL的上升沿或下降沿变化时,主设备或从设备将数据写入或读取出来。
3.地址寻址:I2C协议使用7位或10位的地址寻址,从设备可以根据地址进行选择。
I2C协议的优势在于可以连接多个设备,节省了引脚,适用于多设备之间的通信,如传感器、温度传感器、压力传感器等。
标签:无标签一、 SPI 总线说明串行外围设备接口 SPI (serial peripheral interface)总线技术是Motorola 公司推出的一种同步串行接口, Motorola 公司生产的绝大多数 MCU(微控制器)都配有 SPI 硬件接口,如 68 系列 MCU。
SPI 用于 CPU 与各种外围器件进行全双工、同步串行通讯。
SPI 可以同时发出和接收串行数据。
它只需四条线就可以完成 MCU 与各种外围器件的通讯,这四条线是:串行时钟线(CSK)、主机输入/从机输出数据线(MISO)、主机输出/从机输入数据线(MOSI)、低电平有效从机选择线 CS。
这些外围器件可以是简单的 TTL 移位寄存器,复杂的 LCD 显示驱动器, A/D、D/A 转换子系统或者其他的 MCU。
当 SPI 工作时,在移位寄存器中的数据逐位从输出引脚(MOSI)输出(高位在前),同时从输入引脚(MISO) 接收的数据逐位移到移位寄存器(高位在前)。
发送一个字节后,从另一个外围器件接收的字节数据进入移位寄存器中。
主 SPI 的时钟信号 (SCK) 使传输同步。
其典型系统框图如下图所示。
SPI 主要特点有: 可以同时发出和接收串行数据 ;可以当做主机或者从机工作 ;提供频率可编程时钟 ;发送结束中断标志 ;写冲突保护 ;总线竞争保护等。
图 2 示出 SPI 总线工作的四种方式,其中使用的最为广泛的是 SPI0 和 SPI3 方式(实线表示):SPI 模块为了和外设进行数据交换,根据外设工作要求,其输出串行同步时钟极性和相位可以进行配置,时钟极性(CPOL)对传输协议没有重大的影响。
如果 CPOL="0",串行同步时钟的空暇状态为低电平;如果 CPOL=1,串行同步时钟的空暇状态为高电平。
时钟相位 (CPHA) 能够配置用于选择两种不同的传输协议之一进行数据传输。
如果 CPHA=0,在串行同步时钟的第一个跳变沿(上升或者下降)数据被采样;如果 CPHA=1,在串行同步时钟的第二个跳变沿(上升或者下降) 数据被采样。
SPI、I2C、UART、USB串行总线协议的区别SPI、I2C、UART三种串行总线协议的区别第一个区别当然是名字:SPI(Serial Peripheral Interface:串行外设接口);I2C(INTER IC BUS)UART(Universal Asynchronous Receiver Transmitter:通用异步收发器)第二,区别在电气信号线上:SPI总线由三条信号线组成:串行时钟(SCLK)、串行数据输出(SDO)、串行数据输入(SDI)。
SPI总线可以实现多个SPI设备互相连接。
提供SPI串行时钟的SPI设备为SPI主机或主设备(Master),其他设备为SPI从机或从设备(Slave)。
主从设备间可以实现全双工通信,当有多个从设备时,还可以增加一条从设备选择线。
如果用通用IO口模拟SPI总线,必须要有一个输出口(SDO),一个输入口(SDI),另一个口则视实现的设备类型而定,如果要实现主从设备,则需输入输出口,若只实现主设备,则需输出口即可,若只实现从设备,则只需输入口即可。
I2C总线是双向、两线(SCL、SDA)、串行、多主控(multi-master)接口标准,具有总线仲裁机制,非常适合在器件之间进行近距离、非经常性的数据通信。
在它的协议体系中,传输数据时都会带上目的设备的设备地址,因此可以实现设备组网。
如果用通用IO口模拟I2C总线,并实现双向传输,则需一个输入输出口(SDA),另外还需一个输出口(SCL)。
(注:I2C资料了解得比较少,这里的描述可能很不完备)UART总线是异步串口,因此一般比前两种同步串口的结构要复杂很多,一般由波特率产生器(产生的波特率等于传输波特率的16倍)、UART接收器、UART发送器组成,硬件上由两根线,一根用于发送,一根用于接收。
显然,如果用通用IO口模拟UART总线,则需一个输入口,一个输出口。
第三,从第二点明显可以看出,SPI和UART可以实现全双工,但I2C不行;第四,看看牛人们的意见吧!wudanyu:I2C线更少,我觉得比UART、SPI更为强大,但是技术上也更加麻烦些,因为I2C需要有双向IO的支持,而且使用上拉电阻,我觉得抗干扰能力较弱,一般用于同一板卡上芯片之间的通信,较少用于远距离通信。
I2C,SPI,UART和CAN的区别(转)SPI--Serial Peripheral Interface,(Serial Peripheral Interface:串行外设接口)串行外围设备接口,是Motorola公司推出的一种同步串行通讯方式,是一种三线同步总线,因其硬件功能很强,与SPI有关的软件就相当简单,使CPU有更多的时间处理其他事务.I2C——INTER—IC(INTER IC BUS:意为IC之间总线)串行总线的缩写,是PHILIPS公司推出的芯片间串行传输总线。
它以1根串行数据线(SDA)和1根串行时钟线(SCL)实现了双工的同步数据传输。
具有接口线少,控制方式简化,器件封装形式小,通信速率较高等优点。
在主从通信中,可以有多个I2C总线器件同时接到I2C总线上,通过地址来识别通信对象。
能用于替代标准的并行总线,能连接的各种集成电路和功能模块。
I2C是多主控总线,所以任何一个设备都能像主控器一样工作,并控制总线.总线上每一个设备都有一个独一无二的地址,根据设备它们自己的能力,它们可以作为发射器或接收器工作。
多路微控制器能在同一个I2C总线上共存。
最主要的优点是其简单性和有效性。
它支持多主控(multimastering),其中任何能够进行发送和接收的设备都可以成为主总线.一个主控能够控制信号的传输和时钟频率.当然,在任何时间点上只能有一个主控.UART(Universal Asynchronous Receiver Transmitter:通用异步收发器):单端,远距离传输。
大多数计算机包含两个基于RS232的串口。
串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS—232口。
同时,串口通信协议也可以用于获取远程采集设备的数据。
串口通信的概念非常简单,串口按位(bit)发送和接收字节。
尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。
单片机的串行通信接口技术与总线协议分析在嵌入式系统开发中,单片机的串行通信接口技术与总线协议扮演着至关重要的角色。
本文将深入探讨单片机串行通信接口技术及总线协议的原理与应用,带领读者全面了解这一领域。
一、串行通信接口技术1. 串行通信的基本概念串行通信是指将数据以位的形式逐个传输,相较于并行通信更加节省资源和成本。
在单片机中,串行通信接口可以连接外部设备,实现数据传输和通信控制。
2. 串行通信的常见接口单片机常用的串行通信接口包括UART(通用异步收发器)、SPI (串行外设接口)、I2C(Inter-Integrated Circuit)等。
不同的接口在数据传输速率、传输距离和硬件连接方面有所差异,可根据具体需求选择合适的接口。
3. 串行通信接口的工作原理UART通过接收和发送缓冲区实现异步串行通信;SPI通过主从模式进行全双工通信;I2C采用主从结构,通过两根线路(时钟线和数据线)进行通信。
熟悉各种接口的工作原理有助于准确选择和配置串行通信模块。
二、总线协议分析1. 总线协议的作用总线协议是指在多个设备之间共享数据传输线路时所遵循的规则和标准。
合理的总线协议可以提高系统的数据传输效率和稳定性,降低通信冲突和错误率。
2. 常见的总线协议常见的总线协议包括CAN(Controller Area Network)、RS485、Modbus等。
CAN适用于高速数据传输和实时控制场景;RS485适用于远距离通信和多机通信;Modbus是一种基于串行通信的通信协议,广泛应用于工业自动化领域。
3. 总线协议的特点不同的总线协议具有不同的特点,如通信速率、通信距离、硬件连接方式等。
开发人员应根据具体的应用场景和需求选择合适的总线协议,并合理设计通信架构。
综上所述,单片机的串行通信接口技术与总线协议是嵌入式系统开发中的重要组成部分,对系统的性能和稳定性有着重要影响。
通过深入理解串行通信接口技术和总线协议,开发人员可以更好地设计和调试嵌入式系统,提高系统的可靠性和效率。
总结归纳总线的分类在计算机科学领域中,总线(bus)是一种连接计算机内部各个功能模块的物理通道。
它作为数据传输和通信的基础,起到连接、传递和协调各个硬件组件的作用。
总线的分类主要基于传输方式、功能以及连接的设备类型。
本文将从这三个方面来总结归纳总线的分类。
一、根据传输方式的分类1. 并行总线并行总线是指通过多条数据线同时传输数据的总线。
它能够同时传输多个比特位,速度较快,但受到线缆长度限制,容易产生干扰和噪音。
并行总线适用于近距离通信,常见的应用有IDE总线和PCI总线。
2. 串行总线串行总线是指通过单条数据线依次传输数据的总线。
它通过逐位传输数据,并通过一系列协议进行控制。
串行总线传输速度相对较慢,但可以使用较长的线缆,并能够更好地抵抗干扰。
常见的串行总线有USB总线和SATA总线。
二、根据功能的分类1. 数据总线数据总线用于传输数据信息。
它是计算机内部各个部件之间传递数据的通道,负责传送指令、地址和数据等信息。
数据总线的宽度决定了一次可以传输的比特数目,宽度越大,数据传输速度越快。
2. 地址总线地址总线用于传输访问存储器或者其他设备时的地址信息。
它的宽度决定了可寻址的内存空间大小,地址总线宽度为n位,则可寻址的内存空间大小为2^n字节。
3. 控制总线控制总线用于传输控制信号和命令,控制各个部件的工作状态和数据传输过程。
控制总线包括读写控制、中断请求、设备选择等信号。
三、根据连接的设备类型的分类1. 内部总线内部总线用于连接计算机内部各个组件,如处理器、内存和硬盘等。
它通过内部总线进行数据和控制信号的交互,保证各个组件的正常工作。
2. 外部总线外部总线用于连接计算机与外部设备的数据传输。
它允许计算机和外部设备进行数据交换和通信,如显示器、鼠标、键盘和打印机等。
综上所述,根据传输方式、功能以及连接的设备类型,总线可以分为并行总线和串行总线、数据总线、地址总线和控制总线、内部总线和外部总线等不同类型。
嵌入式总线协议分类
嵌入式总线协议可以分为以下几类:
1. 并行总线协议:并行总线协议是指数据传输时使用多个电路并行传送。
常见的并行总线协议有PCI、ISA、VME等。
2. 串行总线协议:串行总线协议是指数据按照位的顺序依次传输的总线协议。
常见的串行总线协议有USB、Ethernet、CAN、I2C、SPI等。
3. 控制总线协议:控制总线协议是用于连接主控制器和外围设备之间的通信。
常见的控制总线协议有I2C、SPI、USART等。
4. 存储总线协议:存储总线协议是用于处理存储设备与计算机之间的通信。
常见的存储总线协议有ATA、SATA、SCSI、
SD等。
5. 数据总线协议:数据总线协议用于在计算机内部不同模块之间传输数据。
常见的数据总线协议有PCI、AMBA等。
需要注意的是,上述分类并不是完全独立的,有些协议可能同时具备多种特性,例如USB既可作为串行总线协议,也可以
作为控制总线协议使用。
嵌入式系统设计时需要选择合适的总线协议,根据具体应用需求来进行选择和设计。
⾼速串⾏简史(⼀):信号、接⼝、协议及总线在这个系列开篇的时候⼤家提到了希望了解⼀下,其实基本的概念⼤家应该都知道⼀点,但真正要把它写出来,我觉得⼜不是很好下笔,这也是为什么隔了这么久才推出这篇⽂章,我们也是为了对⼤家负责的态度,不能误导了各位忠实的读者,有什么说得不对或者没有说得很清楚的希望⼤家⼀起来探讨。
突然有个问题,我们通常说的PCIE,既可以是PCIE信号,也可以是PCIE接⼝、PCIE总线,还可以是PCIE协议。
之所以难写,其实中间就是涉及到了太多的概念和认知的差异,因为串⾏和并⾏的概念太⼴了。
只要百度⼀下串⾏和并⾏,就会出来很多类似“串⾏通信与并⾏通信”、“串⾏接⼝与并⾏接⼝”、“串⾏总线与并⾏总线”、“串⾏协议与并⾏协议”以及“串⾏传输与并⾏传输”等概念介绍,⽽我们现在要说的串⾏信号应该包括了上⾯所有的这些概念,既有传输(通信)⽅式,⼜有接⼝类型,同时还有数据本⾝的协议特点,信号、协议、总线和接⼝,有时候看起来是⼀样的,但细细思量却还是有差别的,总之不是⼀两句话就能说清楚的(如PCIE信号、PCIE协议、PCIE接⼝以及PCIE总线之间的相互⽠葛就是剪不断理还乱啊)。
举个简单的例⼦,PCI总线说的是⼀组传输通道,⽽PCI接⼝是⼀种连接标准,两者之间的关系就是PCI接⼝的设备都要通过PCI总线来进⾏通信,⽽PCI总线上⾛的设备并不全是PCI接⼝的,像集成声卡,⾛的就是PCI总线。
在这⾥PCI总线提供了⼀种通道,这个通道上可以有不同的符合这种通道要求的接⼝设备或信号(PCI信号或Audio信号)。
打个更进⼀步的⽐⽅:两者关系就像马车(接⼝设备)和马路(总线)⼀样,马车必须在马路上⾛,⽽马路上不⼀定⾛马车(⽜车等)。
如下图所⽰。
车(接⼝、信号)有车(接⼝、信号)的标准(协议),如马车、汽车、⽕车、货车、⾃⾏车等(PCIE、SATA、SAS、USB等信号标准);路(通道、总线)有路的标准,如马路、⼈⾏道、⾼速公路等(PCIE、SATA、SAS、USB等通道标准),所以协议⾥⾯⼜包含通道(总线)协议和信号(接⼝)协议。
总线与协议总线和协议是计算机硬件中非常重要的概念,它们在计算机系统中起着桥梁和规范的作用。
总线是一种用于连接不同功能模块之间的通信线路,通过总线,各个模块可以实现数据的传输和共享。
而协议则是一种规范或约定,用于规定数据传输的方式和格式,以确保通信的可靠性和有效性。
总线和协议的设计对于计算机系统的性能和功能起着至关重要的作用。
一个好的总线设计可以提高系统的传输速度和数据吞吐量,同时减少系统的存储开销。
而一个合理的协议可以确保数据传输的正确性,防止数据的丢失和错误,提高系统的可靠性和稳定性。
在计算机系统中,总线主要分为数据总线、地址总线和控制总线三种。
数据总线用于传输数据,地址总线用于传输模块的地址信息,控制总线用于传输控制信号。
通过这三种总线的组合和配合,各个模块可以实现数据的读写和通信的控制。
总线协议则是对总线通信进行规范的一种约定。
常见的总线协议有PCI、USB、Ethernet等。
这些协议规定了数据的传输方式、传输速度、传输格式等。
例如,PCI协议规定了一种高速的并行总线接口,支持数据的同时传输和并行处理。
USB协议则是一种通用的外部设备接口协议,支持多种设备的连接和通信。
总线和协议的选择和设计需要考虑多种因素,如系统的性能需求、成本限制、兼容性要求等。
不同的总线和协议都有各自的优缺点和适用范围。
因此,在设计计算机系统时,需要根据实际需求和条件来选择合适的总线和协议。
总线和协议的发展和演化一直是计算机技术的重要研究领域之一。
随着计算机系统的发展和应用需求的不断增长,对总线和协议的要求也越来越高。
目前,一些新的总线和协议已经开始出现,如PCI Express、USB 3.0等,它们在传输速度、带宽和兼容性方面都有了较大的提升。
总而言之,总线和协议是计算机硬件中非常重要的概念,它们在计算机系统中起着桥梁和规范的作用。
好的总线和协议设计可以提高计算机系统的性能和功能,保证数据传输的可靠性和有效性。
通信协议简介及区别(串行、并行、双工、RS232等)基本的通讯方式有并行通讯和串行通讯两种。
并行通讯:一条信息的各位数据被同时传送的通讯方式称为并行通讯。
并行通讯的特点是:各数据位同时传送,传送速度快、效率高,但有多少数据位就需多少根数据线,因此传送成本高,且只适用于近距离(相距数米)的通讯。
串行通讯:一条信息的各位数据被逐位按顺序传送的通讯方式称为串行通讯。
串行通讯的特点是:数据位传送,传按位顺序进行,最少只需一根传输线即可完成,成本低但送速度慢。
串行通讯的距离可以从几米到几千米。
根据信息的传送方向,串行通讯可以进一步分为单工、半双工和全双工三种。
信息只能单向传送为单工;信息能双向传送但不能同时双向传送称为半双工;信息能够同时双向传送则称为全双工。
而按照串行数据的时钟控制方式,串行通信又可分为同步通信和异步通信两种方式。
异步通信:接收器和发送器有各自的时钟;同步通信:发送器和接收器由同一个时钟源控制。
1、异步串行方式的特点所谓异步通信,是指数据传送以字符为单位,字符与字符间的传送是完全异步的,位与位之间的传送基本上是同步的。
异步串行通信的特点可以概括为:①以字符为单位传送信息。
②相邻两字符间的间隔是任意长。
③因为一个字符中的比特位长度有限,所以需要的接收时钟和发送时钟只要相近就可以,不需同步。
④异步方式特点简单的说就是:字符间异步,字符内部各位同步。
2、异步串行方式的数据格式异步串行通信的数据格式如图1所示,每个字符(每帧信息)由4个部分组成:①1位起始位,规定为低电0;②5~8位数据位,即要传送的有效信息;③1位奇偶校验位;④1~2位停止位,规定为高电平1。
3、同步串行方式的特点所谓同步通信,是指数据传送是以数据块(一组字符)为单位,字符与字符之间、字符内部的位与位之间都同步。
同步串行通信的特点可以概括为:①以数据块为单位传送信息。
②在一个数据块(信息帧)内,字符与字符间无间隔。
③因为一次传输的数据块中包含的数据较多,所以接收时钟与发送进钟严格同步,通常要有同步时钟。
S P I、I2C、U A R T、U S B串行总线协议的区别SPI、I2C、UART三种串行总线协议的区别第一个区别当然是名字:SPI(Serial Peripheral Interface:串行外设接口);I2C(INTER IC BUS)UART(Universal Asynchronous Receiver Transmitter:通用异步收发器)第二,区别在电气信号线上:SPI总线由三条信号线组成:串行时钟(SCLK)、串行数据输出(SDO)、串行数据输入(SDI)。
SPI总线可以实现多个SPI设备互相连接。
提供SPI串行时钟的SPI设备为SPI主机或主设备(Master),其他设备为SPI从机或从设备(Slave)。
主从设备间可以实现全双工通信,当有多个从设备时,还可以增加一条从设备选择线。
如果用通用IO口模拟SPI总线,必须要有一个输出口(SDO),一个输入口(SDI),另一个口则视实现的设备类型而定,如果要实现主从设备,则需输入输出口,若只实现主设备,则需输出口即可,若只实现从设备,则只需输入口即可。
I2C总线是双向、两线(SCL、SDA)、串行、多主控(multi-mas ter)接口标准,具有总线仲裁机制,非常适合在器件之间进行近距离、非经常性的数据通信。
在它的协议体系中,传输数据时都会带上目的设备的设备地址,因此可以实现设备组网。
如果用通用IO口模拟I2C总线,并实现双向传输,则需一个输入输出口(SDA),另外还需一个输出口(SCL)。
(注:I2C资料了解得比较少,这里的描述可能很不完备)UART总线是异步串口,因此一般比前两种同步串口的结构要复杂很多,一般由波特率产生器(产生的波特率等于传输波特率的16倍)、UART接收器、UART发送器组成,硬件上由两根线,一根用于发送,一根用于接收。
显然,如果用通用IO口模拟UART总线,则需一个输入口,一个输出口。
第三,从第二点明显可以看出,SPI和UART可以实现全双工,但I2C不行;第四,看看牛人们的意见吧!wudanyu:I2C线更少,我觉得比UART、SPI更为强大,但是技术上也更加麻烦些,因为I2C需要有双向IO的支持,而且使用上拉电阻,我觉得抗干扰能力较弱,一般用于同一板卡上芯片之间的通信,较少用于远距离通信。
SPI实现要简单一些,UART需要固定的波特率,就是说两位数据的间隔要相等,而SPI 则无所谓,因为它是有时钟的协议。
quickmouse:I2C的速度比SPI慢一点,协议比SPI复杂一点,但是连线也比标准的SPI要少。
UART UART: Universal AsynchronousReceiver/Transmitter,通用异步接收/发送装置,UART是一个并行输入成为串行输出的芯片,通常集成在主板上,多数是16550AFN芯片。
因为计算机内部采用并行数据,不能直接把数据发到Modem,必须经过UART整理才能进行异步传输,其过程为:CPU先把准备写入串行设备的数据放到UART的寄存器(临时内存块)中,再通过FIFO(First Input First Output,先入先出队列)传送到串行设备,若是没有FIFO,信息将变得杂乱无章,不可能传送到Modem。
它是用于控制计算机与串行设备的芯片。
有一点要注意的是,它提供了RS-232C数据终端设备接口,这样计算机就可以和调制解调器或其它使用RS-232C接口的串行设备通信了。
作为接口的一部分,UART还提供以下功能:将由计算机内部传送过来的并行数据转换为输出的串行数据流。
将计算机外部来的串行数据转换为字节,供计算机内部使用并行数据的器件使用。
在输出的串行数据流中加入奇偶校验位,并对从外部接收的数据流进行奇偶校验。
在输出数据流中加入启停标记,并从接收数据流中删除启停标记。
处理由键盘或鼠标发出的中断信号(键盘和鼠标也是串行设备)。
可以处理计算机与外部串行设备的同步管理问题。
有一些比较高档的UART还提供输入输出数据的缓冲区,现在比较新的UART是16550,它可以在计算机需要处理数据前在其缓冲区内存储16字节数据,而通常的UART 是8250。
现在如果您购买一个内置的调制解调器,此调制解调器内部通常就会有16550 UART。
什么是 UARTUART是一种通用串行数据总线,用于异步通信。
该总线双向通信,可以实现全双工传输和接收。
在嵌入式设计中,UART 用来与PC进行通信,包括与监控调试器和其它器件,如EEPROM通信。
UART通信UART首先将接收到的并行数据转换成串行数据来传输。
消息帧从一个低位起始位开始,后面是7个或8个数据位,一个可用的奇偶位和一个或几个高位停止位。
接收器发现开始位时它就知道数据准备发送,并尝试与发送器时钟频率同步。
如果选择了奇偶,UART就在数据位后面加上奇偶位。
奇偶位可用来帮助错误校验。
在接收过程中,UART从消息帧中去掉起始位和结束位,对进来的字节进行奇偶校验,并将数据字节从串行转换成并行。
UART也产生额外的信号来指示发送和接收的状态。
例如,如果产生一个奇偶错误,UART就置位奇偶标志。
数据方向和通信速度数据传输可以首先从最低有效位(LSB)开始。
然而,有些UART允许灵活选择先发送最低有效位或最高有效位(MSB)。
微控制器中的UART传送数据的速度范围为每秒几百位到1.5Mb。
例如,嵌入在ElanSC520微控制器中的高速UART通信的速度可以高达。
UART波特率还受发送和接收线对距离(线长度)的影响。
目前,市场上有只支持异步通信和同时支持异步与同步通信的两种硬件可用于UART。
前者就是UART名字本身的含义,在摩托罗拉微控制器中被称为串行通信接口(SCI);Microchip 微控制器中的通用同步异步收发器(USART)和在富士通微控制器中的UART是后者的两个典型例子。
UART是通用异步收发器(异步串行通信口)的英文缩写,它包括了RS232、RS499、RS423 、RS422和RS485等接口标准规范和总线标准规范,即UART 是异步串行通信口的总称。
而RS232、RS499、RS423、RS422和RS485等,是对应各种异步串行通信口的接口标准和总线标准,它规定了通信口的电气特性、传输速率、连接特性和接口的机械特性等内容。
实际上是属于通信网络中的物理层(最底层)的概念,与通信协议没有直接关系。
而通信协议,是属于通信网络中的数据链路层(上一层)的概念。
COM口是PC(个人计算机)上,异步串行通信口的简写。
由于历史原因,IBM的PC外部接口配置为RS232,成为实际上的PC界默认标准。
所以,现在PC机的COM口均为RS232。
若配有多个异步串行通信口,则分别称为COM1、COM2... USART USART:(Universal Synchronous/Asynchronous Receiver/Transmitter)通用同步/异步串行接收/发送器USART是一个全双工通用同步/异步串行收发模块,该接口是一个高度灵活的串行通信设备。
其主要特点如下:#全双工操作(相互独立的接收数据寄存器和发送数据寄存器);#支持同步和异步操作;#同步操作时,可主机时钟同步,也可从机时钟同步;#独立的高精度波特率发生器,不占用定时/计数器;#支持5、6、7、8和9位数据位,1或2位停止位的串行数据桢结构;#由硬件支持的奇偶校验位发生和检验;#数据溢出检测;#桢错误检测;#包括错误起使位的检测噪声滤波器和数字低通滤波器;#三个完全独立的中断,TX发送完成、TX发送数据寄存器空、RX接收完成;#支持多机通信模式;#支持倍速异步通信模式。
USART收发模块一般分为三大部分:时钟发生器、数据发送器和接收器。
控制寄存器为所有的模块共享。
时钟发生器由同步逻辑电路(在同步从模式下由外部时钟输入驱动)和波特率发生器组成。
发送时钟引脚XCK仅用于同步发送模式下,发送器部分由一个单独的写入缓冲器(发送UDR)、一个串行移位寄存器、校验位发生器和用于处理不同浈结构的控制逻辑电路构成。
使用写入缓冲器,实现了连续发送多浈数据无延时的通信。
接收器是USART模块最复杂的部分,最主要的是时钟和数据接收单元。
数据接收单元用作异步数据的接收。
除了接收单元,接收器还包括校验位校验器、控制逻辑、移位寄存器和两级接收缓冲器(接收UDR)。
接收器支持与发送器相同的桢结构,同时支持桢错误、数据溢出和校验错误的检测。
SPI SPI接口的全称是"Serial Peripheral Interface",意为串行外围接口,是Motorola首先在其MC68HCXX系列处理器上定义的。
SPI接口主要应用在EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。
SPI接口是以主从方式工作的,这种模式通常有一个主器件和一个或多个从器件,其接口包括以下四种信号:(1)MOSI –主器件数据输出,从器件数据输入(2)MISO –主器件数据输入,从器件数据输出(3)SCLK –时钟信号,由主器件产生(4)/SS –从器件使能信号,由主器件控制IICI2C(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。
I2C总线是一种串行数据总线,只有二根信号线,一根是双向的数据线SDA,另一根是时钟线SCL。
在 I2C总线上传送的一个数据字节由八位组成。
总线对每次传送的字节数没有限制,但每个字节后必须跟一位应答位。
(这是与SPI总线最显着的不同之处)。
--------------------------------------------------------------------------------Axbb Post at 2010-12-13 21:17:24IISI2S(Inter-IC Sound Bus)是飞利浦公司为数字音频设备之间的音频数据传输而制定的一种总线标准。
I2S有3个主要信号:1.串行时钟SCLK,也叫位时钟,即对应数字音频的每一位数据,SCLK有1个脉冲。
2. 帧时钟LRCK,用于切换左右声道的数据。
LRCK为“1”表示正在传输的是左声道的数据,为“0”则表示正在传输的是右声道的数据。
3.串行数据SDATA,就是用二进制补码表示的音频数据。
有时为了使系统间能够更好地同步,还需要另外传输一个信号MCLK,称为主时钟,也叫系统时钟(Sys Clock)。
--------------------------------------------------------------------------------Axbb Post at 2010-12-13 21:17:46UARTUART (Universal Asynchronous Receiver/Transmitter) 通用异步收发器将由计算机内部传送过来的并行数据转换为输出的串行数据流。