UART通信原理,以及它和RS232和COM口的关系

      串口通信是电子工程师面对的最基本的问题,但是往往大家对UART,RS232, COM口这三者的关系理解的不是很透彻,百度他们的区别,网上各种网友自己本身一知半解,更不敢看做出的解答。于是下决心一定要搞清楚他们的关系。抽象的解释固然听起来高大上,但是往往出自已经对该问题有了比较深刻的理解的人之口。对于初学者,看到那些抽象的解释往往解决不了心中的疑惑。
      在学习借鉴了好几篇博客和微信推送之后,整理出下面对他们的解释:

      UART: 通用异步收发传输 器(当作硬件来看),通常称作UART。
                       异步通信协议 (当作软件来看)
                 特性:两根线,全双工,异步通信,速度慢,也就是一根线发送一根线接收。并且电平逻辑是时间的函数,如何理解这句话?发送和接收一个bit有一个固定的时间宽度,也就是等于这个时间宽度时才认为是1bit,为了约定这个时间宽度,就产生了一个比特率的概念:表示一秒可以传输多少bit的数据。 单位bps=bit per second。

     RS232: RS232是物理层的电气接口要求,是 一种接口和总线标准,UART可以使用RS232通信,
                      另一种解释: RS232RS499RS423RS422RS485等,是对应各种异步串行通信口的接口标准和总线标准,它规定了通信口的电气特性、传输速率、连接特性和接口的机械特性等内容。实际上是属于通信网络中的物理层(最底层)的概念,与通信协议没有直接关系。
          总的来说对于一项通信任务,通信协议可以使用UART协议,而通信协议可以使用COM口( cluster communication port COM口是指针对串行通信协议的一种端口,是PC上异步串行通信口的简写,大部分为9针孔D型。COM口里分RS232RS422RS485,传输功能依次递增) 即串行通讯端口来实现硬件连接,此协议下的传输方式可以选用RS232或者RS485,RS422等等。
   
     下面用一个形象生动的比喻来解释UART和RS***的关系是什么:

这个比喻借鉴网上的资源,实在找不到出处了。这里声明转载
通讯问题和交通是一样的,串口通信,我们这里可以和公交运输类比。
公交运行可以被分为两个部分:
1:车站(决定车上装什么人,怎么发送班次)
2:公路(当汽车上路了就要遵守交通规则,过桥有过桥的规则,高速有高速的规则,就和车站没用关系了)
回到问题本身,其实UART就相当于车站,而RS232/RS485等等就相当于公路的规则。
     那么它要完成什么功能呢?它的最基本功能,是 串行数据和并行数据之间的转换 。我们知道,计算机中的数据以Byte为基本单位,对一个Byte的存取是并行的,即,同时取得/写入8个bit。而串行通信,需要把这个Byte“打碎”,按照时间顺序来收发以实现串行。
UART协议格式:信号线上空闲的时候为高电平,当出现下跳到低电平的时候表示数据的起始位,接着是先发送低位再发送高位的数据流,尾部可以加奇偶校验位,最后加停止位,停止位长度可以定义,下面例子无奇偶校验位,1bit停止位。
这就是UART要做的工作,一个Byte就是发一班车,两个Byte就是发两班车,UART控制两班车之间间隔多长时间。
那么道路上的规定是怎么样的呢?
 RS232/RS485是两种不同的电气协议,也就是说,是对电气特性以及物理特性的规定,作用于数据的传输通路上,它并不内含对数据的处理方式更具体的,电气的特性也决定了线路的连接方式,比如RS232,规定用电平表示数据,因此线路就是单线路的,用两根线才能达到全双工的目的;而RS485, 使用差分电平表示数据,因此,必须用两根线才能达到传输数据的基本要求,要实现全双工,必需用4根线。但是,无论使用RS232还是RS485,它们与UART是相对独立的,但是由于电气特性的差别,必须要有专用的器件和UART连接,才能完成数据在线路和UART之间的正常流动。
RS232甚至规定了接口的具体样式,图为DB9接口
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值