uart与usb对比分析

uart与usb对比分析,第1张

  什么是uart

  通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART,是一种异步收发传输器,是电脑硬件的一部分。它将要传输的资料在串行通信与并行通信之间加以转换。作为把并行输入信号转成串行输出信号的芯片,UART通常被集成于其他通讯接口的连结上。

  具体实物表现为独立的模块化芯片,或作为集成于微处理器中的周边设备。一般是RS-232C规格的,与类似Maxim的MAX232之类的标准信号幅度变换芯片进行搭配,作为连接外部设备的接口。在UART上追加同步方式的序列信号变换电路的产品,被称为USART(Universal Synchronous Asynchronous Receiver Transmitter)。

  UART是一种通用串行数据总线,用于异步通信。该总线双向通信,可以实现全双工传输和接收。在嵌入式设计中,UART用于主机与辅助设备通信,如汽车音响与外接AP之间的通信,与PC机通信包括与监控调试器和其它器件,如EEPROM通信。

uart与usb对比分析,uart与usb对比分析,第2张

  什么是usb

  USB,是英文Universal Serial Bus(通用串行总线)的缩写,是一个外部总线标准,用于规范电脑与外部设备的连接和通讯。是应用在PC领域的接口技术。USB接口支持设备的即插即用和热插拔功能。USB是在1994年底由英特尔、康柏、IBM、Microsoft等多家公司联合提出的。

  下一代USB接口将会有改动方向,下一代的Type-C USB接口,可支持正反两面插,并且传输数据信号强,但目前(2014年)生产商有限。

  理论上USB接口可用于连接多达127个外设,如鼠标、调制解调器和键盘等。USB自从1996年推出后,已成功替代串口和并口,并成为二十一世纪个人电脑和大量智能设备的必配的接口之一。

  usb作为一种串行接口,应用日益广泛。如同每个工程设计人员必须掌握I2C,RS232这些接口一样,我们也必须掌握usb.

  但是usb的接口协议实在有点费解,linux uhci驱动作者之一Alan Stern曾经就说过“The USB documentaTIon is downright evil. Most of it is just crap, written by a committee. You‘re better off ignoring most of it ”。

  本文将从整体上介绍usb协议,包括usb host ,usb hub,usb funcTIon。希望能给读者一个总体上的了解。也因此,文章将分成相应的三部分讲解 。

  一、usb funcTIon

  1。初识usb.usb是一种串行接口协议,它靠d+,d-两条数据线构成的差分线来进行数据传输,这让我们非常感兴趣它到底和我们通常熟悉两线 rs232/485有何区别。了解这种区别有助于我们对usb作一个深入的了解。那么让我们回想一下到底一个两线rs232的数据是如何传送的,

uart与usb对比分析,uart与usb对比分析,第3张

  在这里我们的重点在于,我们发现要在串行口传送数据一个最体码的要求恐怕就是:要知道数据传输何时开始,何时结束。即如何delimit.那么 rs232怎么做的。显然,在idle(空闲)时,即无数据传送时,数据线处于高电平,等到有数据开始传送,发送方首先拉低数据线(start),表示数 据传输开始,接受端也因为这个“start”信号开始准备接受即将到来的数据,类似一次握手,随后,在两者之间的数据传送开始,结束后主方再次拉高数据 线,表示结束传输,自此两者重新进入Idle状态。等待下一轮传送开始。

  了解了rs232,那么我们自然想到usb如何做到这个呢,既然是串行位流传输,也理所当然的解决这个问题。没错,Usb协议必然要解决这个问题,让我们作一个类似rs232的比较吧!类似于rs232,usb的传输桢如图二:

  

  (这里我们暂时忽略这个传输所代表的意义)为了说明问题,我们对一些问题简化,我们定义这样几个状态:

  假设D+,D-分别表示usb信号线的电平信号。那么对于usb full speed funcTIon(high speed ,low speed是不同的),我们定义差分数据线上可能出现的四个状态:

  Data J state:D+=1,D-=0;

  Data K state:D+=0,D-=1;

  SE0:D+=D-=0;

  SE1:D+=D-=1

  这个对usb full speed function来说,idle状态将处于Data J state,se0表示一桢结束。看这个图是不是很像我们熟悉的rs232。没错!!!他们确实很相似。在无数据传输时,它们都处于Idle状态,当要开 始传输数据时,先发一个sync(同步信号,rs232为start,usb为一sync字节,见协议说明)信号进行“握手”,而后开始传输,当传输要结 束时,发一stop信号(usb为一个se0状态表示要结束传输),最后又进入idle态等待新的传输。不过,你可能更加注意到,他们还是不同的。不同在 于usb是按“packet” 进行传输的,就是说它传输的最小单位是packet,而rs232是按字节传送的,也即它的最小传送单位是字节。既然是按pakcet传送,想想我们相较 于rs232的按字节单位传输,我们可以得到哪些“好处”。想想看,pakcet的好处不就在于我们可以灵活的定义数据的传送格式,传送方式,从而可以适 应各种各样的串行设备,这不就是所谓的“通用串行总线”吗?

  简介:从本节开始,我们将介绍usb的传输机制。这节先介绍usb现有传输方式的背景知识,做为对下节将要展开的四种传输类型,描述符,等相关知识的一个导引。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2492122.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-04
下一篇 2022-08-04

发表评论

登录后才能评论

评论列表(0条)

保存