网站首页
IC库存
IC展台
电子资讯
技术资料
PDF文档
我的博客
IC72论坛
ic72 logo
资料首页最新产品 技术参数 电路图 设计应用 解决方案 代理商查询 IC替换 IC厂商 电子辞典
关键字: 技术文章 PDF资料 IC价格 电路图 代理商查询 IC替换 IC厂商 电子辞典

嵌入式硬件通信接口协议-UART(一)协议基础

  UART,全称UniversalAsynchrONous Receiver/Transmitter,译为通用异步收发器。

  串口的出现是在1980年前后,数据传输率是115kbps~230kbps。串口出现的初期是为了实现连接计算机外设的目的,初期串口一般用来连接鼠标和外置Modem以及老式摄像头和写字板等设备。串口也可以应用于两台计算机(或设备)之间的互联及数据传输。由于串口(COM)不支持热插拔及传输速率较低,目前部分新主板和大部分便携电脑已开始取消该接口。目前串口多用于工控和测量设备以及部分通信设备中。

  在几乎所有的MCU中都会有UART接口。

  from 百度百科串行接口

  每当口中提到“串口”,很容易让人想到的名词有UART、USART、COM口、TTL/CMOS、RS-232、RS-422、RS-485。其中:

  UART,“串口”时序协议的名称,定义了各个信号时序协议;

  USART,相比UART增加了同步信号,可实现ISO-7816智能卡接口;

  COM口,在PC等操作系统上,区别于USB、SATA接口的串行接口,定义了在操作系统中的规范;

  TTL/CMOS,嵌入式硬件系统的信号电平;

  RS-232,在UART基础上再定义了信号的电气特性

  RS-422,在RS-232基础上定义了差分信号传输的电气特性

  RS-485,在RS-422基础上定义了半双工模式

  二、 信号线

  信号线的命名,都是基于当前终端设备而定义的。

  UART常用的信号线有:

  RxD,当前终端设备的接收管脚

  TxD,当前终端设备的发送管脚

  GND,当前终端设备的地

  如上所述,信号线的命名基于当前终端设备而做的标记,在手工接线时,可以快速判断连接的线序。

  一般的,设计者在设计PCB时,对外连接做的一些预留接口,标记接口管脚时,都会添加丝印标记,这时标记的都是当前终端设备的管脚信息。

  例如标记着RxD的引脚,应该与外部的UART接口TxD连接。

  

  三、 信号时序

  信号线空闲时,处于高电平,当有数据发送时,信号线以1个bit时长的低电平标志开始通信,通信过程中,单个字节在信号线上的帧结构如下图:

  

  信号管脚传输每个数据时,在管脚上呈现的是电气信号为高低电平的变化,对应数据每个bit的逻辑“1”和“0”。

  组成UART帧结构时,附带的起始位、停止位,实现了对传输数据流每个字节的界定,该过程实现了起始式协议。同时在停止位前可选择地插入校验位,实现了对数据帧正确性的校验。

  如下图是常见的UART通信过程中使用的配置参数8-N-1对应的时序:

  

  配置参数(8-N-1):8bit数据、无校验位、1bit停止位

  四、 接口配置项

  在启用UART接口时,需要通信双方对接口进行相同参数的配置,才能够正确通信。而UART可配置的参数有:

  (一)波特率Baudrate:

  由于UART属于异步通信,在通信过程中没有同步时钟CLK来提供给接收方,接收方也就无法同步地确定每个bit的宽度,也就无法对每个bit进行正确的采样。因此接收方必须依靠设置与发送方相同的波特率参数,这样接收方对信号管脚进行采样和解码时,才能正确判断每个bit的值是“1”还是“0”,这也就是异步通信的特点。

  在各类MCU的UART配置中,常用的波特率值有:

  4800Bd、9600Bd、19200Bd、115200Bd,单位Bd。常见有如下代码截图:

  

  要想理解波特率,来的维基百科中查询一番

  

  在维基百科的介绍中,可看到,波特率的值,直接以bit/s的单位取倒数后得到单位s/bit,同时在示波器端对UART发出的波形进行抓取,可见每bit的宽度在误差允许范围内基本就是波特率的倒数值。

  在百度百科的词条《波特》介绍中,波特率是指:

  调制速率,指的是有效数据信号调制载波的速率,即单位时间内载波调制状态变化的次数。它是对符号传输速率的一种度量,1波特即指每秒传输1个符号,而通过不同的调制方式,可以在一个码元符号上负载多个bit位信息。 单位“波特”本身就已经是代表每秒的调制数,以“波特每秒”(Baud per second)为单位是一种常见的错误。

  它代表的是信号的变化,而不是传输数据的多少。它表示每秒钟内通信线路状态改变的次数。如果数据不压缩,波特等于每秒钟传输的数据位数,如果数据进行了压缩。那么每秒钟传输的数据位数通常大于调制速率,使得交换使用波特和比特/秒有时会产生错误。

  但是在现代的实际使用中,多数情况下,配置了MCU的波特率后,对输出信号进行观测发现,此时波特率等于比特率。也正是因为此时传输的符号即8bit一个Byte的数据量,从而波特率等于比特率。

热门搜索:DRV8313PWPR B10-8000-PCB SS240806 2920120 602-15 2811271 SS7619-15 TLP76MSG 02M0500JF TLP712 02B0500JF 2856142 TLP825 B30-8000-PCB BQ25895MRTWR TLM812SA 2320306 IS-1000 TLM825SA LCR2400 UL603CB-6 PS6020 2839570 PS3612 6SPDX
COPYRIGHT:(1998-2010) IC72 达普IC芯片交易网
客户服务:service@IC72.com 库存上载:IC72@IC72.com
(北京)联系方式: 在线QQ咨询:点击这里给我发消息 联系电话:010-82614113 传真:010-82614123
京ICP备06008810号-21 京公网安备 11010802032910 号 企业资质