当前位置: 首页 > 技术分享  > 电脑技术 > 操作系统

什么是UART?

2012/7/25 9:05:01 人评论

通用异步收发器(UART)是一种串行接口,许多微处理器和微控制器中都包含这种外设接口。异步串行接口提供了一种简单的途径,使两个器件无需共享同一个时钟信号就能进行通信。如果再加入一个合适的电平转换器,串口还能用在RS-232和RS-485网络中通信,或者与计算机的COM端口连接。串...

通用异步收发器(UART)是一种串行接口,许多微处理器和微控制器中都包含这种外设接口。异步串行接口提供了一种简单的途径,使两个器件无需共享同一个时钟信号就能进行通信。如果再加入一个合适的电平转换器,串口还能用在RS-232和RS-485网络中通信,或者与计算机的COM端口连接。串口只需两根信号线(Rx和Tx)即可实现,而且只要两端器件都采用同样的位格式和波特率,那么它们无需其它任何对方的信息就可以成功传输数据。

软件UART的意义

  如今,可提供功能完善的硬件串口的微控制器比比皆是,那么我们为什么还要费力地用微控制器的端口管脚来实现软件UART呢?主要有以下几个原因:

  首先,尽管确实有许多微控制器都包含了硬件UART,但仍有许多没有包含这种接口。在系统设计中,选择微控制器时,可能很难找到一款各方面都很理想的产品。例如,电压范围合适的微控制器可能内部存储器不够大,而存储器大小足够的可能又没有足够的端口管脚,无法满足设计需求。因此,通过软件方式实现某些系统需要的外设接口,从而弥补一款微控制器性能上的缺陷,就能增加可供设计选择的微控制器的数量和种类,从而增大设计的灵活性。

  第二,即便一款微控制器包含了一个功能完善的硬件UART,由于某种原因,这对即将进行的设计来说可能仍然不够。例如,可能是微控制器需要与之通信的外设所用的协议与串口协议稍有不同,也可能是硬件UART所提供的位数、奇偶校验功能或输入和输出缓存无法完全满足应用的要求。这时,通过构建一个软件UART接口,我们在定义UART的功能和串口协议的细节上就更灵活。

  第三,一款微控制器的硬件UART也许能够很好地满足应用的需求,但只是数量不够。例如,微控制器包含两个UART,而设计中的应用却需要三个。此时,我们不必仅仅为了增加串口的数量就另外增加一块新的芯片,而只需增加一个与该微控制器上现有的UART具备同样功能和特性的软件UART。

需要注意的问题

  此外,还有一个很重要的问题是,软件UART会从主应用中占用多大带宽?因为采用硬件UART(或其它硬件串行通信接口)的一个主要原因首先就是将微控制器解放出来,使其无需费时去处理串口协议底层的细节。像位采样(bit-sampling)、时隙计算以及输入输出移位这类繁琐的操作都在硬件中完成,然后UART通过中断或其它标志位的方式告诉主微控制器,它已经收到了一个字符或者已经发送完一个字符。接着,微控制器就可以快速地从UART缓存中上载数据或者向缓存中下载数据,然后返回继续执行其核心任务。

  如果实现一个软件UART时,在UART检查端口管脚的串行活动时,需要占用大量时间,让应用程序停滞,这会使得软件UART没有意义。好在情况并非如此,我们来看看标准的10位异步串行协议(包含一个起始位,一个停止位和8个数据位)收发一个字符时的情况。

相关技术

  • AutoKMS后台修改系统配置安装OPENVPN

    采用AutoKMS激活了本地OFFICE,大家都懂的。今天使用电脑时,360报告,修改本地多项配置。软件已经激活了,也没有到定期再次激活时间,AutoKMS你是要挖后门呀。桌面弹出OpenVPN软件安装界面,果断卸载AutoKMS。留你不得。

    2017/12/8 10:12:47
  • WIN7、WIN8关闭休眠模式

    电脑C盘空间不多,造成缩略图不显示。果断关闭电脑休眠模式,释放空间,再清理垃圾临时文件,问题解决。以下为关闭休眠模式方法:在开始…

    2015/6/25 16:59:46
  • 远程会话超出了所允许的失败登录最大次数

    早上管理员点检服务器,发现日志上多了很多错误信息(如上图)。来自客户端名 a 的远程会话超出了所允许的失败登录最大次数。强行终止了会话。很多情况下,本类错误发生时会耗占系统较大资源,假如服务器配置较低,容易引起服务器宕机,程序挂起等各种异常发生

    2014/11/14 8:28:43
  • 离开电脑一键锁定电脑系统

    我们在操作电脑时,时常碰到这样的情况:由于要做某件急事,需要暂时离开计算机,但又不想别人随便登陆计算机使用,怎么办?下边有种方…

    2014/9/25 13:44:13

共有条评论 网友评论

验证码: 看不清楚?