
串行通信概念与串行总线.docx
6页串行通信概念所谓“串行通信”是指外设和计算机间使用一根数据信号线(另外需要地线,可能还需要控 制线),数据在一根数据信号线上一位一位地进行传输,每一位数据都占据一个固定的时间长 度如图1-1所示这种通信方式使用的数据线少,在远距离通信中可以节约通信成本,当 然,其传输速度比并行传输慢由于CPU与接口之间按并行方式传输,接口与外设之间按串行方式传输,因此,在串 行接口中,必须要有“接收移位寄存器”(串f并)和“发送移位寄存器”(并f串)典型的 串行接口的结构如1-2所示在数据输入过程中,数据1位1位地从外设进入接口的“接收移位寄存器”,当“接收移位寄 存器”中已接收完1个字符的各位后,数据就从“接收移位寄存器”进入“数据输入寄存器” CPU从“数据输入寄存器”中读取接收到的字符并行读取,即D7〜D0同时被读至累加器 中)接收移位寄存器”的移位速度由“接收时钟”确定在数据输出过程中,CPU把要输出的字符(并行地)送入“数据输出寄存器”,“数据输 出寄存器”的内容传输到“发送移位寄存器”,然后由“发送移位寄存器”移位,把数据1位1位 地送到外设发送移位寄存器”的移位速度由“发送时钟”确定接口中的“控制寄存器”用来容纳CPU送给此接口的各种控制信息,这些控制信息决定接 口的工作方式。
状态寄存器”的各位称为“状态位”,每一个状态位都可以用来指示数据传输过程中的状 态或某种错误例如,用状态寄存器的D5位为“1”表示“数据输出寄存器”空,用D0位表示“数 据输入寄存器满”,用D2位表示“奇偶检验错”等能够完成上述“串<-->并”转换功能的电路,通常称为“通用异步收发器”(UART:Universal Asynchronous Receiver and Transmitter),典型的芯片有:Intel 8250/8251,16550.******SPI:高速同步串行口3〜4线接口,收发独立、可同步进行UART :通用异步串行口按照标准波特率完成双向通讯,速度慢SPI:一种串行传输方式,三线制,网上可找到其通信协议和用法的3根线实现数据双向传输串 行夕卜围接口 Serial peripheral interfaceUART(Universal Asynchronous Receiver/Transmitter):通用异步收发器UART 是用于控制计 算机与串行设备的芯片有一点要注意的是,它提供了RS-232C数据终端设备接口,这样 计算机就可以和调制解调器或其它使RS-232C接口的串行设备通信了。
作为接口的一部分, UART还提供以下功能:将由计算机内部传送过来的并行数据转换为输出的串行数据流 将计算机外部来的串行数据转换为字节,供计算机内部使用并行数据的器件使用在输出 的串行数据流中加入奇偶校验位,并对从外部接收的数据流进行奇偶校验在输出数据流 中加入启停标记,并从接收数据流中删除启停标记处理由键盘或鼠标发出的中断信号(键 盘和鼠票也是串行设备)可以处理计算机与外部串行设备的同步管理问题有一些比较高 档的UART还提供输入输出数据的缓冲区,现在比较新的UART是16550,它可以在计算 机需要处理数据前在其缓冲区内存储16字节数据,而通常的UART是8250现在如果您购 买一个内置的调制解调器,此调制解调器内部通常就会有16550 UARTI2C:能用于替代标准的并行总线,能连接的各种集成电路和功能模块I2C是多主控总线, 所以任何一个设备都能像主控器一样工作,并控制总线总线上每一个设备都有一个独一无 二的地址,根据设备它们自己的能力,它们可以作为发射器或接收器工作多路微控制器能 在同一个I2C总线上共存方C总线:I2C总线最主要的优点是其简单性和有效性由于接口直接在组件之上,因此I2C总线占用 的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。
总线的长度可高 达25英尺,并且能够以10Kbps的最大传输速率支持40个组件I2C总线的另一个优点是, 它支持多主控(m ultimastering),其中任何能够进行发送和接收的设备都可以成为主总线 一个主控能够控制信号的传输和时钟频率当然,在任何时间点上只能有一个主控UART:单端,远距离传输大多数计算机包含两个基于RS232的串口串口同时也是仪器仪表设备 通用的通信协议;很多GPIB兼容的设备也带有RS-232口同时,串口通信协议也可以用 于获取远程采集设备的数据串口通信的概念非常简单,串口按位(bit)发送和接收字节 尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根 线接收数据它很简单并且能够实现远距离通信比如IEEE488定义并行通行状态时,规定 设备线总常不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长 度可达1200米具体的适用范围就可多了,军用,医疗...到处到能用第一个区别当然是名字: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不行;第四,看看牛人们的意见吧!wudanyu: I2C线更少,我觉得比UART、SPI更为强大,但是技术上也更加麻烦些, 因为I2C需要有双向IO的支持,而且使用上拉电阻,我觉得抗干扰能力较弱,一般用于同 一板卡上芯片之间的通信,较少用于远距离通信SPI实现要简单一些,UART需要固定的 波特率,就是说两位数据的间隔要相等,而SPI则无所谓,因为它是有时钟的协议 quickmouse: I2C的速度比SPI慢一点,协议比SPI复杂一点,但是连线也比标准的SPI 要少第一种说法:UART (universal asynchronous receiver/transmitter)是通用异步收发器,是串行通讯接口的 总称RS232是美国EIA制定的串行通讯标准第二种说法:UART: Universal Asynchronous Receiver/Transmitter 通用异步接收/发送装置,UART 是一个 并行输入成为串行输出的芯片,通常集成在主板上,多数是16550AFN芯片。
因为计算机内 部采用并行数据数据,不能直接把数据发到Modem,必须经过UART整理才能进行异步传 输,其过程为:CPU先把准备写入串行设备的数据放到UART的寄存器(临时内存块)中, 再通过FIFO(First Input First Output,先入先出队列)传送到串行设备,若是没有FIFO, 信息将变得杂乱无章,不可能传送到Modem第三篇文章说法:UART (Universal Asynchronous Receiver/Transmitter)通用异步收发器UART是用于控制计算机与串行设备的芯片有一点要注意的是,它提供了 RS-232C数据 终端设备接口,这样计算机就可以和调制解调器或其它使用RS-232C接口的串行设备通信了 作为接口的一部分,UART还提供以下功能:将由计算机内部传送过来的并行数据转换为输出的串行数据流将计算机外部来的串行 数据转换为字节,供计算机内部使用并行数据的器件使用在输出的串行数据流中加入 奇偶校验位,并对从外部接收的数据流进行奇偶校验在输出数据流中加入启停标记, 并从接收数据流中删除启停标记处理由键盘或鼠标发出的中断信号(键盘和鼠 串行设备)。
可以处理计算机与外部串行设备的同步管理问题有一些比较高档的UART 还提供输入输出数据的缓冲区,现在比较新的UART是16550,它可以在计算机需要处理 据前在其缓冲区内存储16字节数据,而通常的UART是8250现在如果您购买一个内置的 调制解调器,此调制解调器内部通常就会有16550 UART***小弟新手请教高人,UART和RS232有哪些区别?还有两者的应用 谢谢高人的指教啊--作者:xiangjiaopi-- 发布时间:2007-4-18 13:54:52最主要的应该是工作电压不一样吧作者:Llaneking发布时间:2007-4-24 9:24:32仅就目前知道的发表点观点RS232是PC与串行设备通信的标准,波特率是几个固定的值UART也是串行接口,但是不仅仅需要两根线就可以搞定,波特率也可以改变的请指正--作者:man_optimism--发布时间:2007-4-28 13:38:43个人的理解为:UART接口是指作为DCE和DTE定义为RS232的标准,但UART是其数据是 异步传输方式;最终从UART出来的信号是附合RS232标准的电气特性吧!请指正-- 作者:FirstFirst--发布时间:2007-6-20 14:38:40UART指异步串行通讯接口,对电平信号没有规定;RS232是指一个规定了信号电平的异步串 行通讯接口; UART所指含义更宽,RS232规定相对狭窄!--作者:chenhj--发布时间:2007-12-27 17:52:28UART包含了 R232,R422,R425,具体各种电平规定不同,传输方式也有所不同,个人认为!--作者:perennial--发布时间:2007-12-27 18:28:37UART串并转换。
UART & RS232 & COMUART是通用异步收发器(异步串行通信口)的英文缩写,它包括了RS232、RS499、 RS423、RS422和RS485等接口标准规范和总线标准规范,即UART是异步串行通信口的总 称而RS232、RS499、RS423、RS422和RS485等,是对应各种异步串行通信口的接口标 准和总线标准,它规定了通信口的电气特性、传输速率、连接特性和接口的机械特性等内容 实际上是属于通信网络中的物理层(最底层)的概念,与通信协议没有直接关系而通信协 议,是属于通信网络中的数据链路层(上一层)的概念COM 口是PC (个。
