您的位置 首页 被动

I2C SPI UART和CAN通信协议的差异

I2C的数据输入输出用的是一根线,SPI则分为dataIN和dataOUT。由于这个原因,采用I2C时CPU的端口占用少,SPI多一根。但是由于I2C的数据线是…

I2C的数据输入输出用的是一根线,SPI则分为dataIN和dataOUT。由于这个原因,选用I2C时CPU的端口占用少,SPI多一根。可是由于I2C的数据线是双向的,所以阻隔比较杂乱,SPI则比较简略。所以系统内部通讯可用I2C,若要与外部通讯则最好用SPI带阻隔(能够进步抗搅扰才干)。可是I2C和SPI都不合适长距离传输。长距离时就要用485了。
榜首:
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不可;
个人认为:
I2C线更少,我觉得比UART、SPI更为强壮,可是技能上也愈加费事些,由于I2C需求有双向IO的支撑,并且运用上拉电阻,我觉得抗搅扰才干较弱,一般用于同一板卡上芯片之间的通讯,较少用于远距离通讯。SPI完结要简略一些,UART需求固定的波特率,便是说两位数据的距离要持平,而SPI则无所谓,由于它是有时钟的协议。
I2C的速度比SPI慢一点,协议比SPI杂乱一点,可是连线也比规范的SPI要少。
SPI总线系统是一种同步串行外设接口,它能够使MCU与各种外围设备以串行办法进行通讯以交流信息。外围设置FLASHRAM、网络操控器、LCD显现驱动器、A/D转化器和MCU等。SPI总线系统可直接与各个厂家出产的多种规范外围器材直接接口,该接口一般运用4条线:串行时钟线(SCK)、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOST和低电平有用的从机挑选线SS(有的SPI接口芯片带有中止信号线INT或INT、有的SPI接口芯片没有主机输出/从机输入数据线MOSI)。
SPI的通讯原理很简略,它以主从办法作业,这种方法一般有一个主设备和一个或多个从设备,需求至少4根线,事实上3根也能够(单向传输时)。也是一切依据SPI的设备共有的,它们是SDI(数据输入),SDO(数据输出),SCK(时钟),CS(片选)。
(1)SDO – 主设备数据输出,从设备数据输入
(2)SDI – 主设备数据输入,从设备数据输出
(3)SCLK – 时钟信号,由主设备发生
(4)CS – 从设备使能信号,由主设备操控
其间CS是操控芯片是否被选中的,也便是说只要片选信号为预先规则的使能信号时(高电位或低电位),对此芯片的操作才有用。这就答应在同一总线上衔接多个SPI设备成为或许。
接下来就担任通讯的3根线了。通讯是经过数据交流完结的,这儿先要知道SPI是串行通讯协议,也便是说数据是一位一位的传输的。这便是SCK时钟线存在的原因,由SCK供给时钟脉冲,SDI,SDO则依据此脉冲完结数据传输。数据输出经过 SDO线,数据在时钟上升沿或下降沿时改动,在紧接着的下降沿或上升沿被读取。完结一位数据传输,输入也运用相同原理。这样,在至少8次时钟信号的改动(上沿和下沿为一次),就能够完结8位数据的传输。
要留意的是,SCK信号线只由主设备操控,从设备不能操控信号线。相同,在一个依据SPI的设备中,至少有一个主控设备。这样传输的特色:这样的传输办法有一个长处,与一般的串行通讯不同,一般的串行通讯一次接连传送至少8位数据,而SPI答应数据一位一位的传送,乃至答应暂停,由于SCK时钟线由主控设备操控,当没有时钟跳变时,从设备不收集或传送数据。也便是说,主设备经过对SCK时钟线的操控能够完结对通讯的操控。SPI仍是一个数据交流协议:由于SPI的数据输入和输出线独立,所以答应一起完结数据的输入和输出。不同的SPI设备的完结办法不尽相同,主要是数据改动和收集的时刻不同,在时钟信号上沿或下沿收集有不同界说,详细请参阅相关器材的文档。
在点对点的通讯中,SPI接口不需求进行寻址操作,且为全双工通讯,显得简略高效。在多个从设备的系统中,每个从设备需求独立的使能信号,硬件上比I2C系统要略微杂乱一些。
最终,SPI接口的一个缺陷:没有指定的流操控,没有应对机制承认是否接纳到数据。
AT91RM9200的SPI接口主要由4个引脚构成:SPICLK、MOSI、MISO及 /SS,其间SPICLK是整个SPI总线的共用时钟,MOSI、MISO作为主机,从机的输入输出的标志,MOSI是主机的输出,从机的输入,MISO 是主机的输入,从机的输出。/SS是从机的标志管脚,在相互通讯的两个SPI总线的器材,/SS管脚的电平低的是从机,相反/SS管脚的电平高的是主机。在一个SPI通讯系统中,有必要有主机。SPI总线能够装备成单主单从,单主多从,互为主从。SPI的片选能够扩大挑选16个外设,这时PCS输出=NPCS,说NPCS0~3接4-16译码器,这个译码器是需求外接4-16译码器,译码器的输入为NPCS0~3,输出用于16个外设的挑选。
SPI协议举例
SPI是一个环形总线结构,由ss(cs)、sck、sdi、sdo构成,其时序其实很简略,主要是在sck的操控下,两个双向移位寄存器进行数据交流。
假定下面的8位寄存器装的是待发送的数据10101010,上升沿发送、下降沿接纳、高位先发送。
那么榜首个上升沿来的时分 数据将会是sdo=1;寄存器=0101010x。下降沿到来的时分,sdi上的电平将所存到寄存器中去,那么这时寄存器=0101010sdi,这样在 8个时钟脉冲今后,两个寄存器的内容相互交流一次。这样就完结里一个spi时序。
举例:
假定主机和从机初始化安排妥当:并且主机的sbuff=0xaa,从机的sbuff=0x55,下面将分步对spi的8个时钟周期的数据状况演示一遍:假定上升沿发送数据
这样就完结了两个寄存器8位的交流,,sdi、sdo相对于主机而言的。其间ss引脚作为主机的时分,从机能够把它拉底被迫选为从机,作为从机的是时分,能够作为片选脚用。依据以上剖析,一个完好的传送周期是16位,即两个字节,由于,首要主机要发送指令曩昔,然后从机依据主机的指令预备数据,主机鄙人一个8位时钟周期才把数据读回来。 SPI 总线是Motorola公司推出的三线同步接口,同步串行3线办法进行通讯:一条时钟线SCK,一条数据输入线OSI,一条数据输出线MISO;用于CPU与各种外围器材进行全双工、同步串行通讯。SPI主要特色有:能够一起宣布和接纳串行数据;能够当作主机或从机作业;供给频率可编程时钟;发送完毕 中止标志;写抵触维护;总线竞赛维护等。下图示出SPI总线作业的四种办法,其间运用的最为广泛的是SPI0和SPI3办法 (实线表明):
SPI总线四种作业办法 SPI 模块为了和外设进行数据交流,依据外设作业要求,其输出串行同步时钟极性和相位能够进行装备,时钟极性(CPOL)对传输协议没有严峻的影响。假如 CPOL=0,串行同步时钟的闲暇状况为低电平;假如CPOL=1,串行同步时钟的闲暇状况为高电平。时钟相位(CPHA)能够装备用于挑选两种不同的传输协议之一进行数据传输。假如CPHA=0,在串行同步时钟的榜首个跳变沿(上升或下降)数据被采样;假如CPHA=1,在串行同步时钟的第二个跳变沿(上升或下降)数据被采样。SPI主模块和与之通讯的外设备时钟相位和极性应该共同。
SPI总线包含1根串行同步时钟信号线以及2根数据线。
SPI模块为了和外设进行数据交流,依据外设作业要求,其输出串行同步时钟极性和相位能够进行装备,时钟极性(CPOL)对传输协议没有严峻的影响。假如CPOL=0,串行同步时钟的闲暇状况为低电平;假如CPOL=1,串行同步时钟的闲暇状况为高电平。时钟相位(CPHA)能够装备用于挑选两种不同的传输协议之一进行数据传输。假如CPHA=0,在串行同步时钟的榜首个跳变沿(上升或下降)数据被采样;假如CPHA=1,在串行同步时钟的第二个跳变沿(上升或下降)数据被采样。SPI主模块和与之通讯的外设音时钟相位和极性应该共同。
弥补:
上文中最终一句话:SPI主模块和与之通讯的外设备时钟相位和极性应该共同。个人了解这句话有2层意思:其一,主设备SPI时钟和极性的装备应该由外设来决议;其二,二者的装备应该保持共同,即主设备的SDO同从设备的SDO装备共同,主设备的SDI同从设备的SDI装备共同。由于主从设备是在SCLK的操控下,一起发送和接纳数据,并经过2个双向移位寄存器来交流数据。
上升沿主机SDO发送数据1,一起从设备SDO发送数据0;紧接着在SCLK的下降沿的时分从设备的SDI接纳到了主机发送过来的数据1,一起主机也接纳到了从设备发送过来的数据0.
SPI协议心得
SPI接口时钟装备心得:
在主设备这边装备SPI接口时钟的时分一定要弄清楚从设备的时钟要求,由于主设备这边的时钟极性和相位都是以从设备为基准的。因而在时钟极性的装备上一定要搞清楚从设备是在时钟的上升沿仍是下降沿接纳数据,是在时钟的下降沿仍是上升沿输出数据。但要留意的是,由于主设备的SDO衔接从设备的SDI,从设备的SDO衔接主设备的SDI,从设备SDI接纳的数据是主设备的SDO发送过来的,主设备SDI接纳的数据是从设备SDO发送过来的,所以主设备这边SPI时钟极性的装备(即SDO的装备)随从设备的SDI接纳数据的极性是相反的,随从设备SDO发送数据的极性是相同的。下面这段话是Sychip Wlan8100 Module Spec上说的,充分说明了时钟极性是怎么装备的:
The 81xx module will always input data bits at the rising edge of the clock, and the host will always output data bits on the falling edge of the clock.
意思是:主设备在时钟的下降沿发送数据,从设备在时钟的上升沿接纳数据。因而主设备这边SPI时钟极性应该装备为下降沿有用。
又如,下面这段话是摘自LCD Driver IC SSD1289:
SDI is shifted into 8-bit shift register on every rising edge of SCK in the order of data bit 7, data bit 6 …… data bit 0.
意思是:从设备SSD1289在时钟的上升沿接纳数据,并且是依照从高位到位置的次序接纳数据的。因而主设备的SPI时钟极性相同应该装备为下降沿有用。
时钟极性和相位装备正确后,数据才干够被精确的发送和接纳。因而应该对照从设备的SPI接口时序或许Spec文档说明来正确装备主设备的时钟。
软件进程改善
SPI: Software Process Improvement. 软件进程改善。是软件企业项目进程质量的改善,CMM,ISO9000-3说的便是这个。
UART
敞开分类: 核算机、通讯、信息
UART: Universal Asynchronous Receiver/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。

区别在电气信号线上:

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不可;

第四,看看牛人们的定见吧!

A:I2C线更少,我觉得比UART、SPI更为强壮,可是技能上也愈加费事些,由于I2C需求有双向IO的支撑,并且运用上拉电阻,我觉得抗搅扰才干较弱,一般用于同一板卡上芯片之间的通讯,较少用于远距离通讯。SPI完结要简略一些,UART需求固定的波特率,便是说两位数据的距离要持平,而SPI则无所谓,由于它是有时钟的协议。

B:I2C的速度比SPI慢一点,协议比SPI杂乱一点,可是连线也比规范的SPI要少。

———————————————————————————————————————————–

SPI 是一种答应一个主设备发动一个与从设备的同步通讯的协议,然后完结数据的交流。也便是SPI是一种规则好的通讯办法。这种通讯办法的长处是占用端口较少,一般4根就够根本通讯了。一起传输速度也很高。一般来说要求主设备要有SPI操控器(但可用模仿办法),就能够与依据SPI的芯片通讯了。

SPI 的通讯原理很简略,它需求至少4根线,事实上3根也能够。也是一切依据SPI的设备共有的,它们是SDI(数据输入),SDO(数据输出),SCK(时 钟),CS(片选)。其间CS是操控芯片是否被选中的,也便是说只要片选信号为预先规则的使能信号时(高电位或低电位),对此芯片的操作才有用。这就答应 在同一总线上衔接多个SPI设备成为或许。

接下来就担任通讯的3根线了。通讯是经过数据交流完结的,这儿先要知道SPI是串行通讯协议,也便是说数据是一位一位的传输的。这便是SCK时钟线存在的原 因,由SCK供给时钟脉冲,SDI,SDO则依据此脉冲完结数据传输。数据输出经过SDO线,数据在时钟上沿或下沿时改动,在紧接着的下沿或上沿被读取。 完结一位数据传输,输入也运用相同原理。这样,在至少8次时钟信号的改动(上沿和下沿为一次),就能够完结8位数据的传输。

要留意的是,SCK信号线只由主设备操控,从设备不能操控信号线。相同,在一个依据SPI的设备中,至少有一个主控设备。

这样传输的特色:这样的传输办法有一个长处,与一般的串行通讯不同,一般的串行通讯一次接连传送至少8位数据,而SPI答应数据一位一位的传送,乃至答应暂停,由于SCK时钟线由主控设备操控,当没有时钟跳变时,从设备不收集或传送数据。也便是说,主设备经过对SCK时钟线的操控能够完结对通讯的操控。

SPI仍是一个数据交流协议:由于SPI的数据输入和输出线独立,所以答应一起完结数据的输入和输出。

不同的SPI设备的完结办法不尽相同,主要是数据改动和收集的时刻不同,在时钟信号上沿或下沿收集有不同界说,详细请参阅相关器材的文档。

I2C

? 只要求两条总线线路:一条串行数据线SDA 一条串行时钟线SCL

? 每个衔接到总线的器材都能够经过仅有的地址和一向存在的简略的主机从机联系软件设定地址主机能够作为主机发送器或主机接纳器

? 它是一个实在的多主机总线假如两个或更多主机一起初始化数据传输能够经过抵触检测和裁定,避免数据被损坏

? 串行的8 位双向数据传输位速率在规范方法下可达100kbit/s 快速方法下可达400kbit/s 高速方法下可达3.4Mbit/s

? 片上的滤波器能够滤去总线数据线上的毛刺波确保数据完好

? 衔接到相同总线的IC 数量只遭到总线的最大电容400pF 约束

UART

UART总线是异步串口,因而一般比前两种同步串口的结构要杂乱许多,一般由波特率发生器(发生的波特率等于传输波特率的16倍)、UART接纳器、UART发送器组成,硬件上由两根线,一根用于发送,一根用于接纳。

显着,假如用通用IO口模仿UART总线,则需一个输进口,一个输出口。

UART常用于操控核算机与串行设备的芯片。有一点要留意的是,它供给了RS-232C数据终端设备接口,这样核算机就能够和调制解调器或其它运用RS-232C接口的串行设备通讯了。

显着能够看出,SPI和UART能够完结全双工,但I2C不可。

———————————————————————————————————————————–

什么是CAN总线?

===========================

CAN 全称为Controller Area Network,即操控器局域网,由德国Bosch 公司最早提出,是国际上运用最广泛的现场总线之一。CAN 是一种多主办法的串行通讯总线,根本规划规范要求有高的位速率、高抗电磁搅扰性,并且要能够检测出总线的任何过错。当信号传输距离达10Km 时CAN 仍可供给高达50Kbit/s 的数据传输速率。CAN 具有十分优胜的特色:

A、较低的本钱与极高的总线运用率;

B、 数据传输距离可长达10Km,传输速率可高达1Mbit/s;

C、牢靠的过错处理和检错机制,发送的信息遭到损坏后可自动重发;

D、节点在过错严峻的状况下具有自动退出总线的功用;

E、报文不包含源地址或方针地址仅用标志符来指示功用信息和优先级信息;

由于人为、天然、其它外界环境的影响和人们对公交系统的安全牢靠性、实在、实时性的寻求,使得咱们对通讯办法,通讯设备有了更高的要求,依据CAN总线的网络则成为咱们最佳的挑选

——————————————————————————————————–

CAN总线

现场总线是当今自动化领域技能开展的热门之一,被誉为自动化领域的核算机局域网。它的出现为分布式操控系统完结各节点之间实时、牢靠的数据通讯供给了强有力的技能支撑。CAN(Controller Area Network)归于现场总线的领域,它是一种有用支撑分布式操控或实时操控的串行通讯网络。较之现在许多RS-485依据R线构建的分布式操控系统而言, 依据CAN总线的分布式操控系统在以下方面具有显着的优胜性:

首要,CAN操控器作业于多主办法,网络中的各节点都可依据总线拜访优先权(取决于报文标识符)选用无损结构的逐位裁定的办法竞赛向总线发送数据,且CAN协议废除了站地址编码,而代之以对通讯数据进行编码,这可使不同的节点一起接纳到相同的数据,这些特色使得CAN总线构成的网络各节点之间的数据通讯实时性强,并且简略构成冗余结构,进步系统的牢靠性和系统的灵活性。而运用RS-485只能构成主从式结构系统,通讯办法也只能以主站轮询的办法进行,系统的实时性、牢靠性较差;

其次,CAN总线经过CAN操控器接口芯片82C250的两个输出端CANH和CANL与物理总线相连,而CANH端的状况只能是高电平或悬浮状况,CANL端只能是低电平或悬浮状况。这就确保不会出现象在RS-485网络中,当系统有过错,出现多节点一起向总线发送数据时,导致总线出现短路,然后损坏某些节点的现象。并且CAN节点在过错严峻的状况下具有自动封闭输出功用,以使总线上其他节点的操作不受影响,然后确保不会出现象在网络中,因单个节点出现问题,使得总线处于“死锁”状况。

并且,CAN具有的完善的通讯协议可由CAN操控器芯片及其接口芯片来完结,然后大大下降系统开发难度,缩短了开发周期,这些是只仅仅有电气协议的RS-485所无法比拟的。别的,与其它现场总线比较而言,CAN总线是具有通讯速率高、简略完结、且性价比高级许多特色的一种已构成国际规范的现场总线。这些也是现在 CAN总线运用于许多领域,具有微弱的市场竞赛力的重要原因。

CAN (Controller Area Network)即操控器局域网络,归于工业现场总线的领域。与一般的通讯总线比较,CAN总线的数据通讯具有杰出的牢靠性、实时性和灵活性。由于其杰出的性能及共同的规划,CAN总线越来越遭到人们的注重。它在轿车领域上的运用是最广泛的,世界上一些闻名的轿车制造厂商,如BENZ(奔跑)、BMW(宝马)、PORSCHE(保时捷)、ROLLS-ROYCE(劳斯莱斯)和JAGUAR(美洲豹)等都选用了CAN总线来完结轿车内部操控系统与各检测和执行机构间的数据通讯。一起,由于CAN总线自身的特色,其运用规模现在已不再局限于轿车行业,而向自动操控、航空航天、帆海、进程工业、机械工业、纺织机械、农用机械、机器人、数控机床、医疗器械及传感器等领域开展。CAN现已构成国际规范,并已被公认为几种最有出路的现场总线之一。其典型的运用协议有: SAE J1939/ISO11783、CANOpen、CANaerospace、DeviceNet、NMEA 2000等。

什么是CAN总线?

CAN意为Controller Area Network的缩写,意为操控区域网络。是国际上盛行的现场总线中的一种。是一种特别合适于组成互连的设备网络系统或子系统。

2. CAN总线特色?

l CAN是到现在为止为数不多的有国际规范的现场总线

l CAN通讯距离最大是10公里(设速率为5Kbps),或最大通讯速率为1Mbps(设通讯距离为40米)。

CAN总线上的节点数可达110个。通讯介质可在双绞线,同轴电缆,光纤中挑选。

CAN选用非损坏性的总线裁定技能,当多个节点一起发送数据时,优先级低的节点会自动退出发送,高优先级的节点可持续发送,节约总线裁定时刻。

CAN是多主办法作业,网上的任一节点均可在恣意时刻自动地向网络上其他节点发送信息。

CAN选用报文辨认符辨认网络上的节点,然后把节点分红不同的优先级,高优先级的节点享有传送报文的优先权。

报文是短帧结构,短的传送时刻使其受搅扰概率低,CAN有很好的效验机制,这些都确保了CAN通讯的牢靠性。

———————————————————————————————————————————–

SPI一般有SCK时钟,STB片选,DATA数据信号三个信号。 I2C一般有 SDA数据和SCL时钟两个信号。

SPI:Motorola推出的同步串行通讯办法,三线同步总线,硬件强壮,软件相对简略,cpu有更多时刻处理其他业务。SCK时钟,STB片选,DATA数据信号三信号。多了一个片选信号

I2C:PHilips推出的串行总线,一根SDA串行数据线,一根串行时钟线SCL。依照地址来核算的

———————————————————————————————————————————–

UART

Universival Asychronous Receiver/Transmitter(通用异步串行口),UART是一种较为通用的数据传输的办法(即Start Bit+Data+Check+StopBit),而COM口中Rx、Tx的数据格局即为UART。UART和RS232是两种异步数据传输规范.核算机中的COM1和COM2都是RS232串行通讯规范接口。当Uart接口连到PC机上时,需求接RS232电平转化电路。

UART运用发送数据线TXD和接纳数据线RXD来传送数据,接纳和发送能够独自进行也能够一起进行。它传送数据的格局有严厉的规则,每个数据以相同的位串方法传送,每个串行数据由开始位,数据位,奇偶校验位和中止位组成。从开始位到中止位完毕的时刻称为一帧(frame),即一个字符的完好通讯格局。

SPI

Serial Perheral Interface,是一种全双工同步串行接口规范,串行通讯的两边用四根线进行通讯,这四根连线分别是:片选信号,I/O时钟,串行输入,串行输出,这种接口的特色是快速,高效,并且操作起来比I2C要简略一些,接线也比较简略,TLC2543供给SPI接口。

I2C

Inter-Integrated Circuit(集成电路之间), I2C总线是一种由PHILIPS公司开发的两线式双向串行总线,用于衔接微操控器及其外围设备。I2C总线发生于在80年代,开始为音频和视频设备开发,现在主要在服务器办理中运用,其间包含单个组件状况的通讯。例如办理员可对各个组件进行查询,以办理系统的装备或把握组件的功用状况,如电源和系统电扇。可随时监控内存、硬盘、网络、系统温度等多个参数,添加了系统的安全性,方便了办理。I2C归于两线式串行总线,它由数据线SDA和时钟SCL构成的串行总线,可发送和接纳数据。在CPU与被控IC之间、ICIC之间进行双向传送,最高传送速率100kbps。各种被操控电路均并联在这条总线上,但就像电话机相同只要拨通各自的号码才干作业,所以每个电路和模块都有仅有的地址,在信息的传输进程中,IC2总线上并接的每一模块电路既是主控器(或被控器),又是发送器(或接纳器),这取决于它所要完结的功用。CPU宣布的操控信号分为地址码和操控量两部分,地址码用来选址,即接通需求操控的电路,确认操控的品种;操控量决议该调整的类别(如对比度、亮度等)及需求调整的量。这样,各操控电路尽管挂在同一条总线上,却相互独立,互不相关。

CAN

Controller Area Network(区域网络操控器),CAN 全称为Controller Area Network,即操控器局域网,由德国Bosch 公司最早提出,是国际上运用最广泛的现场总线之一。CAN 是一种多主办法的串行通讯总线,根本规划规范要求有高的位速率、高抗电磁搅扰性,并且要能够检测出总线的任何过错。当信号传输距离达10Km 时CAN 仍可供给高达50Kbit/s 的数据传输速率。现场总线是当今自动化领域技能开展的热门之一,被誉为自动化领域的核算机局域网。它的出现为分布式操控系统完结各节点之间实时、牢靠的数据通讯供给了强有力的技能支撑。CAN归于现场总线的领域,它是一种有用支撑分布式操控或实时操控的串行通讯网络。较之现在许多RS-485依据R线构建的分布式操控系统而言, 依据CAN总线的分布式操控系统具有显着的优胜性。

榜首,称号
spi(serial peripheral interface:串行外设接口);
i2c(inter ic bus:意为ic之间总线)
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不可;
第四,看看牛人们的定见吧!

i2c线更少,我觉得比uart、spi更为强壮,可是技能上也愈加费事些,由于i2c需求有双向io的支撑,并且运用上拉电阻,我觉得抗搅扰才干较弱,一般用于同一板卡上芯片之间的通讯,较少用于远距离通讯。spi完结要简略一些,uart需求固定的波特率,便是说两位数据的距离要持平,而spi则无所谓,由于它是有时钟的协议。
i2c的速度比spi慢一点,协议比spi杂乱一点,可是连线也比规范的spi要少

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/beidong/238169.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部