新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > UART的软件实现

UART的软件实现

作者:科浪国际集团(上海)有限公司 张曙晖时间:2004-08-03来源:电子产品世界收藏


2004年4月A版

摘  要:本文讨论了UART的软件实现方法,介绍了Holtek在工业应用中用软件构成UART的接口电路。

关键词:UART;接口技术;软件外设

  在各种MCU应用系统中,经常需要与其他的设备或系统进行数据通讯,UART是比较常用的一种通讯模式。当应用系统要求多路UART,或者基于性能、成本综合考虑选用了不带UART的MCU时,我们可以考虑用软件构建UART以实现系统的数据通讯要求。

  有人对软件UART工作效率和可靠性持否定态度。事实上系统要求的各项功能的实现是采用软件还是硬件,通常要综合考虑系统要求、可支配资源、成本。最后的结果总是在考虑上述因素之后的一个折衷。如果系统本身实时性要求不是很高,而MCU的其他资源又允许的话,完全可以以软件的方式构造合乎使用要求的软件UART。

UART

  串行数据通讯时,数据按位传送,任何时候线上仅有一位数据。因此收、发双方必须同步,以从二进制位流中正确地读出每一位数据。异步串行通讯中,收、发方的同步不采用时钟线来进行,而是由通讯双方约定一个波特率,每一个传送单元通过一个“起始位”来同步。当接收方监测到一个有效起始位,便按照约定的波特率的一个倍频(例如16倍频)对数据进行采样接收。由于每一个传送单元的位数较少(通常不超过11位),而接收采样的频率要高于通讯波特率,即使收发双方的时基存在一定误差,仍然可以保证准确的通讯。

  在空闲状态,传送线为逻辑“1”状态。数据的传送总是以一个“起始位”开始的,接着是要传送的若干数据位,低位先行,最后是一个“1”状态的“停止位”。例如在文档中用“9600 N.8.1”描述一个UART,就表示UART使用9600bps的波特率,帧格式为一个起始位、8个数据位、一个停止位。

  当接收方检测到一个“1”向“0”的跳变,便视为可能的起始位。起始位被确认后,依次接收数据位和停止位,若检测不到正确的停止位,可视为传送出错而放弃。

  下面以Holtek的HT49R70在复费率电表中的应用为例,说明如何实现一个符合实际使用要求的软件UART。

硬件接口

  HT49R70片内集成了41



关键词: 单片机 嵌入式

评论


相关推荐

技术专区

关闭