多种工业应用串行总线特性及比较(SPI_UART_IIC_CAN)
SPI_I2C_UART 比较
SPI/I2C/UART 比较SPI: Serial Peripheral Interface 串行外设接口SPI总线可以实现多个SPI设备互相连接。
提供SPI串行时钟的SPI设备为SPI主机或主设备(M aster),其他设备为SPI从机或从设备(Slave)。
I2C: INT E R IC BUS IC之间总线I2C总线是双向、串行、多主控(multi-master)接口标准,具有总线仲裁机制,非常适合在器件之间进行近距离、非经常性的数据通信。
在它的协议体系中,传输数据时都会带上目的设备的设备地址,因此可以实现设备组网。
UART: Universal Asynchronous Receiver T ransmitter 通用异步收发器UART总线是异步串口,因此一般比前两种同步串口的结构要复杂很多,一般由波特率产生器(产生的波特率等于传输波特率的16倍)、UART接收器、UART发送器组成,硬件上由两根线,一根用于发送,一根用于接收。
总线SPI I2C UART双工全双工半双工全双工电气特性MOSI – 主器件数据输出,从器件数据输入MISO – 主器件数据输入,从器件数据输出SCLK – 时钟信号,由主器件产生CS – 从器件使能信号,由主器件控制SCL(串行时钟)SDA(串行数据)RX(数据接收)TX(数据发送)传输速率通常可以达到10Mbps标准模式:100Kbps快速模式:400Kbps高速模式:3.4Mbps每秒几百位到1.5Mbps(高速串口也仅有1Mbps左右)1:I2C总线支持多主控,其中任何能够进行发送和接收的设备都可以成为主总线, 通过SDA上的地址信息来锁定从设备。
一个主控能够控制信号的传输和时钟频率。
当然,在任何时间点上只能有一个主控。
而SPI总线只有一个主设备,主设备通过CS片选来确定从设备2:I2C的数据输入输出用的是一根线,SPI则分别为MOSI 和MISO 。
SPI,UART,I2C的区别以及RS232与RS485的区别
SPI,UART,I2C 的区别以及RS232与RS485的区别详细的区别:第一个区别当然是名字:SPI(Serial Peripheral In terface :串行外设接口);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),另一个口则视实现的设备类型而定,如果要实现主从设备,则需输入输出口,若只实现主设备,贝嚅输出口即可,若只实现从设备,贝U只需输入口即可。
I2C总线是双向、两线(SCL、SDA)、串行、多主控(multi-master )接口标准,具有总线仲裁机制,非常适合在器件之间进行近距离、非经常性的数据通信。
在它的协议体系中,传输数据时都会带上目的设备的设备地址,因此可以实现设备组网。
如果用通用IO 口模拟I2C总线,并实现双向传输,则需一个输入输出口(SDA),另外还需一个输出口(SCL)。
(注:I2C资料了解得比较少,这里的描述可能很不完备)UART总线是异步串口,因此一般比前两种同步串口的结构要复杂很多,一般由波特率产生器(产生的波特率等于传输波特率的16倍)、UART接收器、UART发送器组成,硬件上由两根线,一根用于发送,一根用于接收显然,如果用通用10 口模拟UART总线,贝U需一个输入口,一个输出口。
第三,从第二点明显可以看出,SPI和UART可以实现全双工,但I2C不行;第四,I2C线更少,比UART、SPI更为强大,但是技术上也更加麻烦些,因为I2C 需要有双向I0的支持,而且使用上拉电阻,我觉得抗干扰能力较弱,一般用于同一板卡上芯片之间的通信,较少用于远距离通信。
SPII2CUART三种串行总线的原理区别及应用
简单描述: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等小容易存储器连接。
几种常用的总线标准(UART、SPI、I2C、CAN)介绍
几种常用的总线标准(UART、SPI、I2C、CAN)介绍UARTUniversival Asychronous Receiver/Transmitter(通用异步串行口),UART 是一种较为通用的数据传输的方法(即StartBit+Data+Check+StopBit),而COM 口中Rx、Tx 的数据格式即为UART。
UART 和RS232 是两种异步数据传输标准.计算机中的COM1 和COM2 都是RS232 串行通信标准接口。
当Uart 接口连到PC 机上时,需要接RS232 电平转换电路。
UART 使用发送数据线TXD 和接收数据线RXD 来传送数据,接收和发送可以单独进行也可以同时进行。
它传送数据的格式有严格的规定,每个数据以相同的位串形式传送,每个串行数据由起始位,数据位,奇偶校验位和停止位组成。
从起始位到停止位结束的时间称为一帧(frame),即一个字符的完整通信格式。
SPISerial Perheral Interface,是一种全双工同步串行接口标准,串行通信的双方用四根线进行通信,这四根连线分别是:片选信号,I/O 时钟,串行输入,串行输出,这种接口的特点是快速,高效,并且操作起来比I 2C 要简单一些,接线也比较简单,TLC2543 提供SPI 接口。
I2CInter-Integrated Circuit(集成电路之间), I2C 总线是一种由PHILIPS 公司开发的两线式双向串行总线,用于连接微控制器及其外围设备。
I2C 总线产生于在80 年代,最初为音频和视频设备开发,如今主要在服务器管理中使用,其中包括单个组件状态的通信。
例如管理员可对各个组件进行查询,以管理系统的配置或掌握组件的功能状态,如电源和系统风扇。
可随时监控内存、硬盘、网络、系统温度等多个参数,增加了系统的安全性,方便了管理。
I2C 属于两线式串行总线,它由数据线SDA 和时钟SCL 构成的串行总线,可发送和接收数据。
SPII2CUART三种串行总线的原理区别及应用
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的快速模式。
-支持多主设备,可以同时连接多个主设备。
SPIICISUARTCANSDIOGPIO的介绍
SPI、I2C、I2S、UART、GPIO、SDIO、CAN的介绍;各自的特点是什么SPI:SPISerial Peripheral Interface是MOTOROLA公司提出的同步串行总线方式..高速同步串行口..3~4线接口;收发独立、可同步进行.因其硬件功能强大而被广泛应用..在单片机组成的智能仪器和测控系统中..如果对速度要求不高;采用SPI总线模式是个不错的选择..它可以节省I/O端口;提高外设的数目和系统的性能..标准SPI总线由四根线组成:串行时钟线SCK、主机输入/从机输出线MISO..主机输出/从机输入线MOSI和片选信号CS..有的SPI接口芯片带有中断信号线或没有MOSI..SPI总线由三条信号线组成:串行时钟SCLK、串行数据输出SDO、串行数据输入SDI..SPI 总线可以实现多个SPI设备互相连接..提供SPI串行时钟的SPI设备为SPI主机或主设备Master;其他设备为SPI从机或从设备Slave..主从设备间可以实现全双工通信;当有多个从设备时;还可以增加一条从设备选择线..如果用通用IO口模拟SPI总线;必须要有一个输出口SDO;一个输入口SDI;另一个口则视实现的设备类型而定;如果要实现主从设备;则需输入输出口;若只实现主设备;则需输出口即可;若只实现从设备;则只需输入口即可..I2C:Inter-Integrated Circuit总线是一种由PHILIPS公司开发的两线式串行总线;用于连接微控制器及其外围设备.I2C总线用两条线SDA和SCL在总线和装置之间传递信息;在微控制器和外部设备之间进行串行通讯或在主设备和从设备之间的双向数据传送..I2C是OD输出的;大部分I2C都是2线的时钟和数据;一般用来传输控制信号..I2C是多主控总线;所以任何一个设备都能像主控器一样工作;并控制总线..总线上每一个设备都有一个独一无二的地址;根据设备它们自己的能力;它们可以作为发射器或接收器工作..多路微控制器能在同一个I2C总线上共存..I2SInter-IC Sound Bus是飞利浦公司为数字音频设备之间的音频数据传输而制定的一种总线标准..I2S则大部分是3线的除了时钟和数据外;还有一个左右声道的选择信号;I2S主要用来传输音频信号..如STB、DVD、MP3等常用UART:通用异步串行口..按照标准波特率完成双向通讯;速度慢.UART总线是异步串口;因此一般比前两种同步串口的结构要复杂很多;一般由波特率产生器产生的波特率等于传输波特率的16倍、UART接收器、UART发送器组成;硬件上由两根线;一根用于发送;一根用于接收..UART是用于控制计算机与串行设备的芯片..有一点要注意的是;它提供了RS-232C数据终端设备接口;这样计算机就可以和调制解调器或其它使用RS-232C接口的串行设备通信了..作为接口的一部分;UART还提供以下功能:将由计算机内部传送过来的并行数据转换为输出的串行数据流..将计算机外部来的串行数据转换为字节;供计算机内部使用并行数据的器件使用..在输出的串行数据流中加入奇偶校验位;并对从外部接收的数据流进行奇偶校验..在输出数据流中加入启停标记;并从接收数据流中删除启停标记..处理由键盘或鼠标发出的中断信号键盘和鼠标也是串行设备..可以处理计算机与外部串行设备的同步管理问题..有一些比较高档的UART还提供输入输出数据的缓冲区;现在比较新的UART是16550;它可以在计算机需要处理数据前在其缓冲区内存储16字节数据;而通常的UART是8250..现在如果您购买一个内置的调制解调器;此调制解调器内部通常就会有16550 UART..GPIO General Purpose Input Output 通用输入/输出或总线扩展器利用工业标准I2C、SMBus 或SPI 接口简化了I/O口的扩展..当微控制器或芯片组没有足够的I/O端口;或当系统需要采用远端串行通信或控制时;GPIO产品能够提供额外的控制和监视功能..每个GPIO端口可通过软件分别配置成输入或输出..Maxim的GPIO产品线包括8端口至28端口的GPIO;提供推挽式输出或漏极开路输出..提供微型3mm x 3mm QFN封装..GPIO的优点端口扩展器低功耗:GPIO具有更低的功率损耗大约1μA;μC的工作电流则为100μA..集成IIC从机接口:GPIO内置IIC从机接口;即使在待机模式下也能够全速工作..小封装:GPIO器件提供最小的封装尺寸― 3mm x 3mm QFN低成本:您不用为没有使用的功能买单快速上市:不需要编写额外的代码、文档;不需要任何维护工作灵活的灯光控制:内置多路高分辨率的PWM输出..可预先确定响应时间:缩短或确定外部事件与中断之间的响应时间..更好的灯光效果:匹配的电流输出确保均匀的显示亮度..布线简单:仅需使用2条IIC总线或3条SPI总线SDIOSDIO是SD型的扩展接口;除了可以接SD卡外;还可以接支持SDIO接口的设备;插口的用途不止是插存储卡..支持 SDIO接口的PDA;笔记本电脑等都可以连接象GPS接收器;Wi-Fi或蓝牙适配器;调制解调器;局域网适配器;条型码读取器;FM无线电;电视接收器;射频身份认证读取器;或者数码相机等等采用SD标准接口的设备..I2S和PCM接口都是数字音频接口;而蓝牙到cpu以及codec的音频接口都是用PCM接口;是不是两个接口有各自不同的应用呢先来看下概念..PCM PCM-clock、PCM-sync、PCM-in、PCM-out脉冲编码调制;模拟语音信号经过采样量化以及一定数据排列就是PCM了..理论上可以传输单声道、双声道、立体声和多声道..是数字音频的raw data..脉冲编码调制就是把一个时间连续;取值连续的模拟信号变换成时间离散;取值离散的数字信号后在信道中传输..脉冲编码调制就是对模拟信号先抽样;再对样值幅度量化;编码的过程PCM:pulse coded modulation脉冲编码调制;是将模拟信号抽样量化;然后使已量化值变换成代码..通常pcm有4跟信号线:pcm-clk;pcm-sync;pcm-in;pcm-out..在使用pcm之前;应该配置好pcm接口..通常会设定frame sync;bit samples;tristate edge;pcm -sync;Enable GCI mode;Mute等等..市面上有很多codec;分单声道和立体声..举个例子;mc14583是一种单声道的codec;它的作用就是将从mic进来的模拟信号;转换成pcm-in 信号;或者将pcm-out的信号变换为模拟信号从spk端输出..I2S是音频数字化后数据排列的一种格式;所传输的就是PCM;支持单声道和立体声..PCM是一个通称、混称;I2S是对原始PCM进行数据排序处理;本质就是PCM;可以说I2S 是PCM的子集..所以我想蓝牙芯片上的PCM接口同样可以用I2S来传输..CPU和codec上的PCM和I2S接口也是为支持更多硬件提供的资源..一般cpu到蓝牙的通话实时音频使用pcm;有的蓝牙芯片内置MP3codec;mp3走uart/usb 更合适..PCM和I2S的区别在于;pcm一般是固定8k的采样率的单声道音频;最早似乎和固定电话的编码有直接关系;之后所有的话音编码几乎都是在pcm编码基础上再次编码得到的..而I2S则多了一个专门的信号线;采样率也可以配置到较高的频率;如44k..手机通话时候的编码一般都会被解码成8k采样率的pcm码;高了也没有用..因为本来手机通话的话音频段就是300~3400Hz而已;编码也是按8k采样的..某些手机平台并没有I2S 接口;相对来说基本上都会有pcm接口..A2DP应该还是走的UART;8k的采样率; 而且很多蓝牙芯片都内置mp3 codec;走ACL的UART更合适目前很多蓝牙;芯片内置了mp3解码器;所以mp3格式的音频并不需要bb这边做解码;从我自己经验看;记得只有最开始的时候做蓝牙有考虑这方面问题;后来的蓝牙项目基本上只有话音走pcm;其他的走UART..CANCAN;全称为“Controller Area Network”;即控制器局域网;是国际上应用最广泛的现场总线之一..最初;CAN被设计作为汽车环境中的微控制器通讯;在车载各电子控制装置ECU之间交换信息;形成汽车电子控制网络..比如:发动机管理系统、变速箱控制器、仪表装备、电子主干系统中;均嵌入CAN控制装置..一个由CAN 总线构成的单一网络中;理论上可以挂接无数个节点..实际应用中;节点数目受网络硬件的电气特性所限制..例如;当使用Philips P82C250作为CAN收发器时;同一网络中允许挂接110个节点..CAN 可提供高达1Mbit/s的数据传输速率;这使实时控制变得非常容易..另外;硬件的错误检定特性也增强了CAN的抗电磁干扰能力..什么是CSMA/CDCSMA/CD是“载波侦听多路访问/冲突检测”Carrier Sense Multiple Access with Collision Detect的缩写..利用CSMA访问总线;可对总线上信号进行检测;只有当总线处于空闲状态时;才允许发送..利用这种方法;可以允许多个节点挂接到同一网络上..当检测到一个冲突位时;所有节点重新回到‘监听’总线状态;直到该冲突时间过后;才开始发送..在总线超载的情况下;这种技术可能会造成发送信号经过许多延迟..为了避免发送时延;可利用CSMA/CD方式访问总线..当总线上有两个节点同时进行发送时;必须通过“无损的逐位仲裁”方法来使有最高优先权的的报文优先发送..。
I2C,SPI,UART总线的区别详解
I2C,SPI,UART总线的区别详解控制器SPI:高速同步串行口。
3~4线接口,收发独立、可同步进行。
(是一种允许一个主设备启动一个与从设备的同步通讯的协议,从而完成数据的交换。
也就是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设备的实现方式不尽相同,主要是数据改变和采集的时间不同,在信号上沿或下沿采集有不同定义,具体请参考相关器件的文档。
SPII2CUART三种串行总线协议及其区别
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协议的优势在于可以连接多个设备,节省了引脚,适用于多设备之间的通信,如传感器、温度传感器、压力传感器等。
CAN、I2S、I2C、SPI、SSP总线的介绍和比较
一、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主模块和与之通信的外设音时钟相位和极性应该一致。
SPI、I2C、UART
SPI、I2C、UART三种串行总线协议的区别和SPI接口介绍(2014-02-17 14:38:31)转载▼分类:单片机、嵌入系统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总线,则需一个输入口,一个输出口。
I2C,SPI,UART和CAN的区别
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)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。
SPI、IIC、UART区别(精华)
SPI、IIC、UART区别区别SPI(摩托罗拉)IIC(飞利浦)UART名字Serial PeripheralInterface:串行外设接口Inter-IntegratedCircuit:内部集成电路UniversalAsynchronousReceiverTransmitter:通用异步收发器控制器区域网络串/并行串行串行串行同/异步同步同步异步半/全工主/从全双工主/从半双工全双工信号线三线:串行时钟(SCLK)、串行数据输出(SDO)、串行数据输入(SDI)两线:串行数据线(SDA)、串行时钟线(SCL)两线:TXD、RXD信号四种信号:SDI(串行数据输入),SDO(串行数据输出),SCK(串行移位时钟),CS(从使能信号)三种信号:开始信号,结束信号,应答信号方式四种工作方式:SPI0、SPI1、SPI2、SPI3多设备SPI主设备(Master):提供SPI串行时钟。
SPI从设备(Slave):其他设备。
当有多个从设备时,还可以增加一条从设备选择线。
实现多个SPI设备互相连接。
多主控(multi-master):在它的协议体系中,传输数据时都会带上目的设备的设备地址,因此可以实现设备组网。
多主适合该总线大量用在与EEPROM、ADC、FRAM和显示驱动器之类的慢速外设器件通信。
具有总线仲裁机制,非常适合在器件之间进行近距离、非经常性的数据通信。
用于汽车中的高速低速网络技术实现简单。
技术麻烦。
需固定波特率。
硬件要有双向IO的支持,而且使用上拉电阻,抗干扰能力较弱,一般用于同一板卡上芯片之间的通信,较少用于远距离通信。
数据方向首先传输最高位从最高位开始从最高位开始速度高达5Mbps低速,0~100kbps;快速,高达每秒几百位到1.5Mb1Mbps400kbps;高速,高达3.4Mbps。
传输主要是在SCK的控制下,两个双向移位寄存器进行数据交换。
SPI具有一个内在地址功能,不需要设计一个额外的寄存器来测试地址,从而减少软件和硬件的设计开销。
UART,SPI,IIC对比和总结
UART,SPI,IIC对⽐和总结UART, SPI, IIC对⽐、总结UART、SPI、IIC是经常⽤到的⼏个数据传输标准,下⾯就分别总结⼀下:UART(Universal Asynchronous Receive Transmitter):也就是我们经常所说的串⼝,基本都⽤于调试。
主机和从机⾄少要接三根线,RX、TX和GND。
TX⽤于发送数据,RX⽤于接受数据(收发不是⼀根线,所以是全双⼯⽅式)。
注意A和B通信A.TX要接B.RX,A.RX要接B.TX(A⽤TX发B当然要⽤RX来收了!)如果A是PC机,B是单⽚机,A和B之间还要接⼀块电平转换芯⽚,⽤于将TTL/CMOS(单⽚机电平)转换为RS232(PC机电平)。
因为TTL/CMOS电平范围是0~1.8/2.5/3.3/5V(不同单⽚机范围不同),⾼电压表⽰1,低电压表⽰0。
⽽RS232逻辑电平范围-12V~12V,-5~-12表⽰⾼电平,+5~+12V表⽰低电平(对!你没有听错)。
为什么这么设置?这就要追溯到调制解调器出⽣时代了,有兴趣⾃⼰去查资料!数据协议:以PC机A给单⽚机B发数据为例(1为⾼电平,0为低电平):A.TX to B.RX。
刚开始B.RX的端⼝保持1,当A.TX发来⼀个0作为起始位告诉B我要发数据了!然后就开始发数据,发多少呢?通常⼀次是5位、6位、7位、8位,这个双⽅事先要⽤软件设置好。
PC机⼀般会⽤串⼝助⼿设置,单⽚机会在uart的驱动中设置。
⼀⼩帧数据发送完了以后,A.TX给个⾼电平告诉B.RX我发完了⼀帧。
如果还有数据,就再给个0然后重复上⼀步。
如果双⽅约定由校验位,还要在发停⽌位1之前发送个校验位,不过现在⼀般都不需要校验位了,因为出错的概率太⼩了,⽽且⼀般⽤于调试,所以...呵呵呵!⼀般在串⼝助⼿上还有个RTS/CTS流控选项,也叫握⼿,我从来没⽤过。
搬⼀段我能理解的介绍:RTS(请求发送),CTS(清除发送)。
SPI、I2C、UART三种串行总线的原理、区别及应用
简单描述: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等小容易存储器连接。
几种常用的总线标准
什么是CAN总线?
CAN意为Controller Area Network的缩写,意为控制区域网络。是国际上流行的现场总线中的一种。是一种特别适合于组建互连的设备网络系统或子系统。
2. CAN总线特点?
l CAN是到目前为止为数不多的有国际标准的现场总线
l CAN通讯距离最大是10公里(设速率为5Kbps),或最大通信速率为1Mbps(设通信距离为40米)。
A、较低的成本与极高的总线利用率;
B、 数据传输距离可长达10Km,传输速率可高达1Mbit/s;
C、可靠的错误处理和检错机制,发送的信息遭到破坏后可自动重发;
D、节点在错误严重的情况下具有自动退出总线的功能;
E、报文不包含源地址或目标地址仅用标志符来指示功能信息和优先级信息;
由于人为、自然、其它外界环境的影响和人们对公交系统的安全可靠性、真实、实时性的追求,使得我们对通信方式,通信设备有了更高的要求,基于CAN总线的网络则成为我们最佳的选择
CAN采用报文识别符识别网络上的节点,从而把节点分成不同的优先级,高优先级的节点享有传送报文的优先权。
报文是短帧结构,短的传送时间使其受干扰概率低,CAN有很好的效验机制,这些都保证了CAN通信的可靠性。
3. CAN总线应用领域
CAN总线最初是德国BOSCH为汽车行业的监测,控制而设计的。现已应用到铁路、交通、国防、工程、工业机械、纺织、农用机械、数控、医疗器械机器人、楼宇、安防等方面。
UART使用发送数据线TXD和接收数据线RXD来传送数据,接收和发送可以单独进行也可以同时进行。它传送数据的格式有严格的规定,每个数据以相同的位串形式传送,每个串行数据由起始位,数据位,奇偶校验位和停止位组成。从起始位到停止位结束的时间称为一帧(frame),即一个字符的完整通信格式。
常见总线简介CAN、USART、SPI、SCI等
任何一个微处理器都要与一定数量的部件和外围设备连接,但如果将各部件和每一种外围设备都分别用一组线路与CPU直接连接,那么连线将会错综复杂,甚至难以实现。
为了简化硬件电路设计、简化系统结构,常用一组线路,配置以适当的接口电路,与各部件和外围设备连接,这组共用的连接线路被称为总线。
采用总线结构便于部件和设备的扩充,尤其制定了统一的总线标准则容易使不同设备问实现互连。
微机中总线一般有内部总线、系统总线和外部总线。
内部总线是微机内部各外围芯片与处理器之间的总线,用于芯片一级的互连;而系统总线是微机中各插件板与系统板之间的总线,用于插件板一级的互连;外部总线则是微机和外部设备之间的总线,微机作为一种设备,通过该总线和其他设备进行信息与数据交换,它用于设备一级的互连。
另外,从广义上说,计算机通信方式可以分为并行通信和串行通信,相应的通信总线被称为并行总线和申行总线。
并行通信速度快、实时性好,但由于占用的口线多,不适于小型化产品;而串行通信速率虽低,但在数据通信吞吐量不是很大的微处理电路中则显得更加简易、方便、灵活。
串行通信一般可分为异步模式和同步模式。
随着微电子技术和计算机技术的发展,总线技术也在不断地发展和完善,而使计算机总线技术种类繁多,各具特色。
下面仅对微机各类总线中目前比较流行的总线技术分别加以介绍。
一、内部总线1.I2C总线I2C(Inter-IC)总线10多年前由Philips公司推出,是近年来在微电子通信控制领域广泛采用的一种新型总线标准。
它是同步通信的一种特殊形式,具有接口线少,控制方式简化,器件封装形式小,通信速率较高等优点。
在主从通信中,可以有多个I2C总线器件同时接到I2C总线上,通过地址来识别通信对象。
2.SPI总线串行外围设备接口SPI(serialperipheralinterface;)总线技术是Motorola公司推出的一种同步串行接口。
Motorola公司生产的绝大多数MCU(微控制器)都配有SPI硬件接口,如68系列MCU。
SPI,UART,I2C的区别以及RS232与RS485的区别
SPI,UART,I2C的区别以及RS232与RS485的区别详细的区别:第一个区别当然是名字: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的支持,而且使用上拉电阻,我觉得抗干扰能力较弱,一般用于同一板卡上芯片之间的通信,较少用于远距离通信。
常见总线简介CAN、USART、SPI、SCI等
任何一个微处理器都要与一定数量的部件和外围设备连接,但如果将各部件和每一种外围设备都分别用一组线路与CPU直接连接,那么连线将会错综复杂,甚至难以实现。
为了简化硬件电路设计、简化系统结构,常用一组线路,配置以适当的接口电路,与各部件和外围设备连接,这组共用的连接线路被称为总线。
采用总线结构便于部件和设备的扩充,尤其制定了统一的总线标准则容易使不同设备问实现互连。
微机中总线一般有内部总线、系统总线和外部总线。
内部总线是微机内部各外围芯片与处理器之间的总线,用于芯片一级的互连;而系统总线是微机中各插件板与系统板之间的总线,用于插件板一级的互连;外部总线则是微机和外部设备之间的总线,微机作为一种设备,通过该总线和其他设备进行信息与数据交换,它用于设备一级的互连。
另外,从广义上说,计算机通信方式可以分为并行通信和串行通信,相应的通信总线被称为并行总线和申行总线。
并行通信速度快、实时性好,但由于占用的口线多,不适于小型化产品;而串行通信速率虽低,但在数据通信吞吐量不是很大的微处理电路中则显得更加简易、方便、灵活。
串行通信一般可分为异步模式和同步模式。
随着微电子技术和计算机技术的发展,总线技术也在不断地发展和完善,而使计算机总线技术种类繁多,各具特色。
下面仅对微机各类总线中目前比较流行的总线技术分别加以介绍。
一、内部总线1.I2C总线I2C(Inter-IC)总线10多年前由Philips公司推出,是近年来在微电子通信控制领域广泛采用的一种新型总线标准。
它是同步通信的一种特殊形式,具有接口线少,控制方式简化,器件封装形式小,通信速率较高等优点。
在主从通信中,可以有多个I2C总线器件同时接到I2C总线上,通过地址来识别通信对象。
2.SPI总线串行外围设备接口SPI(serialperipheralinterface;)总线技术是Motorola公司推出的一种同步串行接口。
Motorola公司生产的绝大多数MCU(微控制器)都配有SPI硬件接口,如68系列MCU。
SPI,UART,JTAG,I2C,CAN常用串行协议比较
SPI,UART,JTAG,I2C,CAN常用串行协议比较SPI(serial peripheral bus):与并行总线相比的优点:1. 更低的元件成本, 2. 更小的PCB,3. 简化设计, 4. 较低的功耗不足之处:串行总线是一根数据线传输数据,通常会是一根数据传输输入,一根输入;而并行总线的优点是同时会有多根数据线分别负责数据的输入和输出特点:数据由SO输出, 由SI输入,clk由master发出,可同时在SI和SO上进行数据的收发,但是数据只能在主从之间进行而不能在从与从间进行,在结构上包括SPI device包括了clk,so,si以及使能信号,有些厂家还设有SPI总线总裁端,但是这不是SPI总线规范所要求必须的。
可执行速率高至1Mbit/s的数据全双工传输率。
UART-通用异步收发器UART总线是异步串口,因此结构比较复杂很多,一般由波特率产生器(产生的波特率等于传输波特率的16倍)、UART接收器、UART发送器组成,硬件上由两根线,一根用于发送,一根用于接收。
如果用通用IO口模拟UART总线,则需一个输入口,一个输出口。
UART常用于控制计算机与串行设备的芯片。
有一点要注意的是,它提供了RS-232C数据终端设备接口,这样计算机就可以和调制解调器或其它使用RS-232C接口的串行设备通信了。
I2C/IIC- Inter IC bus:传输速度:standard I2C可达100kbps,fast I2C可达400kbps,high speed I2C可达3.4Mbps。
只有两线通信,SCL和SDA,SCL负责时钟和wait,SDA负责address和data,两线均是双向OC结构,所以是需要外部上拉电阻的。
由于只有一条数据线SDA,所以也就不能实现全双工通信!I2C没有地址选通信号,所以只能在使用之前对其唯一编址,地址编址可多达127个。
JTAG- joint test action group,又名JTAG Boundary Scan。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
多种工业应用串行总线特性及比较由于在消费类电子产品、计算机外设、汽车和工业应用中增加了嵌入式功能,对低成本、高速和高可靠通信介质的要求也不断增长以满足这些应用,其结果是越来越多的处理器和控制器用不同类型的总线集成在一起,实现与PC软件、开发系统(如仿真器)或网络中的其它设备进行通信。
目前流行的通信一般采用串行或并行模式,而串行模式应用更广泛。
微处理器中常用的集成串行总线是通用异步接收器传输总线、串行通信接口、同步外设接口(SPI)、内部集成电路(I2C) 和通用串行总线,以及车用串行总线,包括控制器区域网(CA N)和本地互连网(LIN)。
这些总线在速度、物理接口要求和通信方法学上都有所不同。
本文将对嵌入式系统设计的串行总线、驱动器和物理接口这些要求提供一个总体介绍,为选择最优总线提供指导并给出一个比较图表(表1)。
为了说明方便起见,本文的阐述是基于微处理器的设计。
串行与并行相比串行相比于并行的主要优点是要求的线数较少。
例如,用在汽车工业中的LIN串行总线只需要一根线来与从属器件进行通信,Dallas公司的1-Wire总线只使用一根线来输送信号和电源。
较少的线意味着所需要的控制器引脚较少。
集成在一个微控制器中的并行总线一般需要8条或更多的线,线数的多少取决于设计中地址和数据的宽度,所以集成一个并行总线的芯片至少需要8个引脚来与外部器件接口,这增加了芯片的总体尺寸。
相反地,使用串行总线可以将同样的芯片集成在一个较小的封装中。
另外,在PCB板设计中并行总线需要更多的线来与其它外设接口,使PCB板面积更大、更复杂,从而增加了硬件成本。
此外,工程师还可以很容易地将一个新器件加到一个串行网络中去,而且不会影响网络中的其它器件。
例如,可以很容易地去掉总线上旧器件并用新的来替代。
串行总线的故障自诊断和调试也非常简单,可以很容易地跟踪网络中一个有故障的器件并用新器件替换而不会干扰网络。
但另一方面,并行总线比串行速度快。
例如,Rambus公司的“Redwoo d”总线速度可高达6.4GHz,而最高的串行速度不会超过几个兆赫。
在工业和汽车应用中常用的串行协议1.UARTUART是一种通用串行数据总线,用于异步通信。
该总线双向通信,可以实现全双工传输和接收。
在嵌入式设计中,UART用来与PC进行通信,包括与监控调试器和其它器件,如EEPROM 通信。
1-1、UART通信UART首先将接收到的并行数据转换成串行数据来传输。
消息帧从一个低位起始位开始,后面是7个或8个数据位,一个可用的奇偶位和一个或几个高位停止位。
接收器发现开始位时它就知道数据准备发送,并尝试与发送器时钟频率同步。
如果选择了奇偶,UART就在数据位后面加上奇偶位。
奇偶位可用来帮助错误校验。
在接收过程中,UART从消息帧中去掉起始位和结束位,对进来的字节进行奇偶校验,并将数据字节从串行转换成并行。
UART也产生额外的信号来指示发送和接收的状态。
例如,如果产生一个奇偶错误,UART就置位奇偶标志。
1-2、数据方向和通信速度数据传输可以首先从最低有效位(LSB)开始。
然而,有些UART允许灵活选择先发送最低有效位或最高有效位(MSB)。
微控制器中的UART传送数据的速度范围为每秒几百位到1.5Mb。
例如,嵌入在ElanSC520微控制器中的高速UART通信的速度可以高达1.1152Mbps。
UART波特率还受发送和接收线对距离(线长度)的影响。
目前,市场上有只支持异步通信和同时支持异步与同步通信的两种硬件可用于UART。
前者就是UART名字本身的含义,在摩托罗拉微控制器中被称为串行通信接口(SCI);Microchip 微控制器中的通用同步异步收发器(USART)和在富士通微控制器中的UART是后者的两个典型例子。
1-3、计算机中的UARTUART是计算机中串行通信端口的关键部分。
在计算机中,UART相连于产生兼容RS232规范信号的电路。
RS232标准定义逻辑“1” 信号相对于地为3到25伏,而逻辑“0”相对于地为-3到-25伏。
所以,当一个微控制器中的UART相连于PC时,它需要一个RS232驱动器来转换电平。
2. 同步外设接口同步外设接口(SPI)是由摩托罗拉公司开发的全双工同步串行总线,该总线大量用在与EEP ROM、ADC、FRAM和显示驱动器之类的慢速外设器件通信。
2-1、SPI通信该总线通信基于主-从配置。
它有以下4个信号:MOSI:主出/从入ﻫMISO:主入/从出ﻫ SCK:串行时钟ﻫ SS:从属选择芯片上“从属选择”(slave-select)的引脚数决定了可连到总线上的器件数量。
在SPI传输中,数据是同步进行发送和接收的。
数据传输的时钟基于来自主处理器的时钟脉冲,摩托罗拉没有定义任何通用SPI的时钟规范。
然而,最常用的时钟设置基于时钟极性(C POL)和时钟相位(CPHA)两个参数,CPOL定义SPI串行时钟的活动状态,而CPHA定义相对于SO-数据位的时钟相位。
CPOL和CPHA的设置决定了数据取样的时钟沿。
2-2、数据方向和通信速度SPI传输串行数据时首先传输最高位。
波特率可以高达5Mbps,具体速度大小取决于SP I硬件。
例如,Xicor公司的SPI串行器件传输速度能达到5MHz。
2-3、SPI与UART比较SPI通信快于UART通信,两者都可以用在中等速度外设的通信中,例如非易失性EEPROM存储器。
然而,SPI更常用于EEPROM或数模变换器的通信中。
有些UART能支持SPI通信,在这种情况下,会用一个通用IO作为从属选择引脚。
3.I2C总线I2C是由飞利浦公司开发的双线同步总线。
像SPI一样,该总线可用来与EEPROM、AD C、DAC和LCD这类慢速器件进行通信。
3-1、I2C通信I2C是一个半双工、多主总线,该总线网络有一个或几个主控器件和很多个从器件。
信息由两条串行线传输:串行数据线(SDA)和串行时钟线(SCL)。
图1显示了使用两个主控和三个从器件相连接的例子。
网络中的每一个器件都预指定一个7位或10位的地址。
飞利浦会给器件制造商分配地址,也有一个特定的地址用于高速通信,以及一个通用呼叫地址用于与网络中所有器件的通信。
10位寻址的优点是允许更多的器件(高达1024个)布置在网络中。
然而,总线中器件的数目取决于总线的电容量,必须限制在400pF以内。
主控器件发起数据传送,并提供用于通信的时钟信号。
通信开始于SCL为高电平时SDA由高到低的转换,紧接着是一个7位或10位的从地址,一个数据方向位(R/W),一个应答位和停止状态。
停止状态定义为在时钟信号为高时数据线电平由低到高的转换。
每一个数据字节长度为8位,单次传送的字节数并没有限制。
由于I2C是一个多主总线,因此可能有两个或更多的主控器件同时试图访问总线,在时钟信号为高电平时在总线上置“1”的主控器件赢得总线仲裁。
I2C有三种不同的运行模式:标准、快速和高速模式。
在使用快速和高速模式时,可能某个从属器件不能像主控器件那么快地处理数据。
此时,从属器件会将SCL线拉至低电平来保持总线,这迫使主控器件进入等待状态,直至从属器件准备就绪。
3-2、数据方向和通信速度数据传输首先从最高位开始。
I2C总线设计用于三种数据传输速度,每个都向下兼容性:低速,数据传输率为0到100kbps;快速,数据传输率可以高达400kbps;高速,数据传输率可以高达3.4Mbps。
3-3、I2C与SPI比较I2C和SPI都能用于低速器件的通信,而SPI的数据传输速率高于I2C。
此外,SPI具有一个内在地址功能,不需要设计一个额外的寄存器来测试地址,从而减少软件和硬件的设计开销。
4. 控制器区域网络控制器区域网络(CAN)是一个多主异步串行总线。
由于它具有优良的错误处理机制及可靠的数据传送性能,该总线在汽车工业中非常普遍,在高安全系数要求的医疗行业中也正在得到普及。
CAN最初由德国的Robert Bosch公司开发,提供给汽车电子系统所用的低成本通信总线,现在已经成为国际标准,被采用为高速应用的ISO11898标准和用于低速应用的ISO11519标准。
4-1、CAN通信当总线空闲时,任何CAN节点都可以开始数据发送。
如果两个或更多的节点同时开始发送,就使用标识符来进行按位仲裁以解决访问冲突。
CAN是一个广播类型的总线,所有节点都接收总线上的数据,硬件上的过滤机制决定消息是否提供给该接点用。
4-2、四种消息帧的类型数据帧:该帧从一个发送器承载数据到一个接收器。
根据CAN规范有两种数据帧格式,它们的唯一本质区别在于标识符的长度:CAN标准帧,也称为CAN2.0A,支持11位长度的标识符;另一个是CAN扩展帧,也称为CAN2.0B,支持29位长度的标识符。
图2显示了两种规范的CAN数据帧。
远程帧:此帧由一个接收CAN节点发送,用来请求带有远程帧中规定的标识符的数据帧。
错误帧:此帧将任何总线错误通知其它单元,在接收到这个帧时发送器会自动进行消息重发。
超载帧:超载帧由一个忙的CAN节点送出,以请求在前后数据帧之间增加一个额外的延迟。
4-3、CAN硬件术语基本CAN(Basic CAN)控制器:这是一种廉价的CAN控制器,具有有限的发送/接收消息缓冲器,以及有限的CAN消息过滤机制。
完全CAN(Full CAN)控制器:完全CAN是一个高成本、高性能的CAN控制器,具有能缓冲8个或更多消息的缓冲器用于接收和发送。
例如,富士通的集成CAN微控制器能提供16个消息缓冲器用于接收和发送。
此外,富士通的MB90443微控制器能灵活地将两个CAN控制器的消息缓冲器组合在一个中,以形成能缓冲32个消息的缓冲器。
标准CAN控制器:该CAN控制器能够处理仅有11位标识符的消息。
扩展CAN控制器:该控制器能够处理含有11位和29位标识符的消息。
时间触发CAN(TTCAN)控制器:该CAN控制器根据时间和事件的触发来安排CAN消息,增强了CAN网络的总体性能和行为的确定性。
4-4、数据方向和通信速度数据字节的传输首先从最高位开始。
一个8位的数据字节能在一次发送中进行传输,最大的CAN总线速度是1Mbps。
4-5、CAN在汽车中的应用图3的例子显示了CAN网络是如何通过富士通的16位CAN微控制器在汽车中应用。
4-6、物理接口大多数CAN微控制器需要一个外部收发器来连接物理总线。
目前市场上提供以下一些收发器:高速CAN收发器有飞利浦的82C251,TI的SN65/75LBC031,Bosch的CF150,C250,Unitrode的UC5350;低速CAN收发器有飞利浦82C252、TJA1053,西门子TLE 6252G;单线CAN收发器有飞利浦AU5790,英飞凌TLE 6255,Delphi DK166153。