《SPIICUARTUSB串行总线协议的区别.docx》由会员分享,可在线阅读,更多相关《SPIICUARTUSB串行总线协议的区别.docx(9页珍藏版)》请在第一文库网上搜索。
1、SPkI2C、UART、USB串行总线合同的区别SPkI2C、UART三种串行总线合同的区别第一种区别固然是名字:SPI(Seri1PeripheraIInterface:串行外设接口);I2C(INTERICBUS)UART(UniversaIAsynchronousReceiverTransmitter:通用异步收发器)第二,区别在电气信号线上:SPI总线由三条信号线构成:串行时钟(SC1K).串行数据输出(SDO)s串行数据输入(SDI)。SP1总线可以实现多种SP1设备互相连接。提供SPI串行时钟时SP1设备为SP1主机或主设备(Master),其他设备为SP1从机或从设备(SIaVe
2、)。主从设备间可以实现全双工通信,当有多种从设备时,还可以增长一条从设备选择线。如果用通用Q口模拟SP1总线,必须要有一种输出口(SDO),-个输入口(SDI),另一种口则视实现的设备类型而定,如果要实现主从设备,则需输入输出口,若只实现主设备,则需输出口即可,若只实现从设备,则只需输入口即可。I2C总线是双向、两线(SC1、SDA)s串行、多主控(mu1timaster)接口原则,具有总线仲裁机制,非常适合在器件之间进行近距离、非常常性的数据通信。在它的合同体系中,传播数据时都会带上目的设备的设备地址,因此可以实现设备组网。如果用通用Q口模拟I2C总线,并实现双向传播,则需一种输入输出口(S
3、DA),此外还需一种输出口(SC1)。(注:12C资料理解得比较少,这里的描述也许很不完备)UART总线是异步串口,因此一般比前两种同步串口的构造要复杂诸多,一般由波特率产生器(产生时波特率等于传播波特率的16倍)、UART接受器、UART发送器构成,硬件上由两根线,一根用于发送,一根用于接受。显然,如果用通用IO口模拟UART总线,则需一种输入口,一种输出口。第三,从第二点明显可以看出,SPI和UART可以实现全双工,但I2C不行;第四,看看牛人们的意见吧!wudnyu:I2C线更少,我觉得比UART、SP1更为强大,但是技术上也更加麻烦些,由于2C需要有双向Q的支持,并且使用上拉电阻,我觉
4、得抗干扰能力较弱,一般用于同一板卡上芯片之间的通信,较少用于远距离通信。SP1实现要简朴某些,UART需要固定的波特率,就是说两位数据的间隔要相等,而SPI则无所谓,由于它是有时钟时合同。quiCkmouse:I2C的速度比SP1慢一点,合同比SP1复杂一点,但是连线也比原则的SPI要少。UARTUART:Uivers1AsychronousReceiver/Trasmitter,通用异步接受/发送装置,UART是一个并行输入成为串行输出的芯片,一般集成在主板上,多数是16550AFN芯片。由于计算机内部采用并行数据,不能直接把数据发到Modem,必须通过UART整顿才干进行异步传播,其过程为
5、:CPU先把准备写入串行设备的数据放到UART的寄存器(临时内存块)中,再通过FIFO(FirStInputFirstOUtPUt,先入先出队列)传送到串行设备,若是没有FIFO,信息将变得杂乱无章,不也许传送到MOdemo它是用于控制计算机与串行设备的芯片。有一点要注意的是,它提供了RS-232C数据终端设备接口,这样计算机就可以和调制解调器或其他使用RS-232C接口时串行设备通信了。作为接口的一部分,UART还提供如下功能:将由计算机内部传送过来时并行数据转换为输出的串行数据流。将计算机外部来时串行数据转换为字节,供计算机内部使用并行数据的器件使用o在输出的串行数据流中加入奇偶校验位,并
6、对从外部接受时数据流进行奇偶校验。在输出数据流中加入启停标记,并从接收数据流中删除启停标记。解决由键盘或鼠标发出的中断信号(键盘和鼠标也是串行设备)。可以解决计算机与外部串行设备的同步管理问题。有某些比较高档的UART还提供输入输出数据的缓冲区,目前比较新的UART是16550,它可以在计算机需要解决数据前在其缓冲区内存储16字节数据,而一般的UART是8250o目前如果您购买一种内置的调制解调器,此调制解调器内部一般就会有16550UARTo什么是UARTUART是一种通用串行数据总线,用于异步通信。该总线双向通信,可以实现全双工传播和接受。在嵌入式设计中,UART用来与PC进行通信,涉及与
7、监控调试器和其他器件汝口EEPROM通信。UART通信UART一方面将接受到时并行数据转换成串行数据来传播。消息帧从一种低位起始位开始,背面是7个或8个数据位,一种可用的奇偶位和一种或几种高位停止位。接受器发现开始位时它就懂得数据准备发送,并尝试与发送器时钟频率同步。如果选择了奇偶,UART就在数据位背面加上奇偶位。奇偶位可用来帮助错误校验。在接受过程中,UART从消息帧中去掉起始位和结束位,对进来的字节进行奇偶校验,并将数据字节从串行转换成并行。UART也产生额外的信号来批示发送和接受的状态。例如,如果产生一种奇偶错误,UART就置位奇偶标志。数据方向和通信速度数据传播可以一方面从最低有效位
8、(1SB)开始。然而,有些UART容许灵活选择先发送最低有效位或最高有效位(MSB)o微控制器中的UART传送数据的速度范畴为每秒几百位到1.5Mbo例如,嵌入在日QnSC520微控制器中的高速UART通信时速度可以高达1.1152Mbps。UART波特率还受发送和接受线对距离(线长度)的影响。目前,市场上有只支持异步通信和同步支持异步与同步通信的两种硬件可用于UART。前者就是UART名字自身的含义,在摩托罗拉微控制器中被称为串行通信接口(SC1);Mic。chip微控制器中的通用同步异步收发器(USART)和在富士通微控制器中时UART是后者的两个典型例子。UART是通用异步收发器(异步串
9、行通信口)的英文缩写,它涉及了RS232、RS499、RS423、RS422和RS485等接口原则规范和总线原则规范,即UART是异步串行通信口的总称。而RS232、RS499、RS423、RS422禾口RS485等,是相应多种异步串行通信口的接口原则和总线原贝J,它规定了通信口的电气特性、传播速率、连接特性和接口的机械特性等内容。事实上是属于通信网络中的物理层(最底层)的概念,与通信合同没有直接关系。而通信合同,是属于通信网络中的数据链路层(上一层)的概念。CoM口是PC(个人计算机)上,异步串行通信口的简写。由于历史因素,IBM的PC外部接口配备为RS232,成为事实上的PC界默认原则。因
10、此,目前PC机的COM口均为RS2O若配有多种异步串行通信口,则分别称为CoM1、COM2.USARTUSART:(UniversaISynchronousZAsynchron0usReceiverTrnsmitter)通用同步/异步串行接受/发送器USART是一种全双工通用同步/异步串行收发模块,该接口是一种高度灵活的串行通信设备。其重要特点如下:#全双工操作(互相独立的接受数据寄存器和发送数据寄存器);#支持同步和异步操作;#同步操作时,可主机时钟同步,也可从机时钟同步;#独立的高精度波特率发生器,不占用定期/计数器;#支持5、6、7、8和9位数据位,1或2位停止位的串行数据桢构造;#由硬
11、件支持的奇偶校验位发生和检查;#数据溢出检测;#桢错误检测;#涉及错误起使位的检测噪声滤波器和数字低通滤波器;#三个完全独立的中断,TX发送完毕、TX发送数据寄存器空、RX接受完毕;#支持多机通信模式;#支持倍速异步通信模式。USART收发模块一般分为三大部分:时钟发生器、数据发送器和接受器。控制寄存器为所有的模块共享。时钟发生器由同步逻辑电路(在同步从模式下由外部时钟输入驱动)和波特率发生器构成。发送时钟引脚XCK仅用于同步发送模式下,发送器部分由一种单独时写入缓冲器(发送UDR)、一种串行移位寄存器、校验位发生器和用于解决不同淡构造的控制逻辑电路构成。使用写入缓冲器,实现了持续发送多渍数据
12、无延时时通信。接受器是USART模块最复杂的部分,最重要的是时钟和数据接受单元。数据接受单元用作异步数据时接受。除了接受单元,接受器还涉及校验位校验器、控制逻辑、移位寄存器和两级接受缓冲器(接受UDR)。接受器支持与发送器相似的桢构造,同步支持桢错误、数据溢出和校验错误的检测。SPISPI接口时全称是Seri1PeripheraIInterfQCe”,意为串行外围接口,是Motoro1a一方面在其MC68HCXX系列解决器上定义的。SP1接口重要应用在EEPROM,F1ASH,实时时钟,AD转换器,尚有数字信号解决器和数字信号解码器之间。SP1接口是以主从方式工作时,这种模式一般有一种主器件和
13、一种或多种从器件,其接口涉及如下四种信号:(I)MOSI-主器件数据输出,从器件数据输入M1SO-主器件数据输入,从器件数据输出(3)SC1K-时钟信号,由主器件产生(4)/SS-从器件使能信号,由主器件控制IICI2C(Iter-1tegratedCircuit)总线是一种由PHI1IPS公司开发时两线式串行总线,用于连接微控制器及其外围设备。I2C总线是一种串行数据总线,只有二根信号线,一根是双向的数据线SDA,另一根是时钟线SC1o在I2C总线上传送的一种数据字节由八位构成。总线对每次传送的字节数没有限制,但每个字节后必须跟一位应答位。(这是与SP1总线最明显的不同之处)。AxbbPos
14、tat-12-1321:17:24IIS2S(Inter-ICSoundBUS)是飞利浦公司为数字音频设备之间的音频数据传播而制定的一种总线原则。I2S有3个重要信号:1.串行时钟SC1K,也叫位时钟,即相应数字音频的每一位数据BC1K有1个脉冲。2.帧时钟1RCK,用于切换左右声道的数据。1RCK为“1”表达正在传播时是左声道的数据,为“0”则表达正在传播时是右声道的数据。3.串行数据SDATA,就是用二进制补码表达的音频数据。有时为了使系统间可以更好地同步,还需要此外传播一种信号MC1K,称为主时钟,也叫系统时钟(SySCI。ck_Grjo_AxbbPostt-12-1321:17:46U
15、ARTUART(Universa1AsynchronousReceiverTrasmitter)通用异步收发器将由计算机内部传送过来时并行数据转换为输出的串行数据流。将计算机外部来时串行数据转换为字节,供计算机内部使用并行数据的器件使用。在输出时串行数据流中加入奇偶校验位,并对从外部接受的数据流进行奇偶校验。在输出数据流中加入启停标记,并从接受数据流中删除启停标记。解决由键盘或鼠标发出的中断信号(键盘和鼠票也是串行设备)O可以解决计算机与外部串行设备的同步管理问题。有某些比较高档的UART还提供输入输出数据的缓冲区。手机中常用TXD,RXD,/RTS,/CTSo-AXbbPostat-12-1321:18:16JTAGJTAG(JoitTestActionGroup联合测试行动小组)是一种国际原则测试合同(IEEE1149.1兼容),重要用于芯片内部测试。原则的JTAG接口是4线:TMSsTCKsTDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。测试复位信号(TRST-般以低电平有效)一般作为可选的第五个端口信号。一种具有JTAGDebUg接口模块的CPU,只要时钟正常,就可以通过JTAG接口访问CPU的内部寄存器和挂在CPU总线上的设备,如F1ASHzRAM,内置模块的寄存器,象UART,Timers,GPIO等等的寄存器。A