UART 基础知识

UART

通用异步收发传输器(Universal Asynchronous Receiver/Transmitter,通常称为UART)是一种异步收发传输器,是电脑硬件的一部分,将数据透过串列通信进行传输。UART通常用在与其他通信接口(如EIA RS-232)的连接上。

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

功能

UART是通用异步收发器(异步串行通信口)的英文缩写,它包括了RS232、RS449、RS423、RS422和RS485等接口标准规范和总线标准规范,即UART是异步串行通信口的总称。而RS232、RS449、RS423、RS422和RS485等,是对应各种异步串行通信口的接口标准和总线标准,它规定了通信口的电气特性、传输速率、连接特性和接口的机械特性等内容。实际上是属于通信网络中的物理层(Physical Layer)的概念,与通信协议没有直接关系。而通信协议,是属于通信网络中的数据链路层(Data Link Layer)的概念。COM是PC(个人计算机)上,异步串行通信口的简写。由于历史原因,IBM的PC外部接口配置为RS232,成为实际上的PC界默认标准。所以,现在PC机的COM均为RS232。若配有多个异步串行通信口,则分别称为COM1、COM2... 。

原理

通用异步接受器-发送器(UART)把数据的字节按照比特顺序发送1。另一端的UART把比特组装为字节。每个UART包含一个移位寄存器。通过一根线或其他介质的串行通信比通过多根线的并行通信具有更低成本。

UART通常并不直接产生或接收其他设备的外部信号。独立接口设备用于转换信号的逻辑电平给UART。

通信可以是单工、全双工或半双工。

数据帧

articles/2022/20221003165847_a6ab5e25f3cb510ce5095b2f241104ee.png

空闲状态,即没有数据传输,是高电平。这是从(有线)电报时代的历史遗存。线路保持高电平表明线路与传输设备没有损坏。每个字符表示为一个帧,以逻辑低电平为开始比特,然后是数据比特,可选的奇偶校验比特,最后是一个或多个停止比特(逻辑高电平)。大部分应用都是先传最低位的数据比特(the least significant data bit),但也有例外(如IBM 2741打印终端)。

如果线路长期(至少大于传输一帧的时间)保持低电平,这被UART检测为Break condition.

接收器

UART硬件受一个内部时钟信号控制。该时钟信号是数据传输率的倍频,典型是比特率的8或16倍。接收器在每个时钟脉冲时测试接收到的信号状态是否为开始比特。如果开始比特的低电平持续传输1个比特所需时间的一半以上,则认为开始了一个数据帧的传输;否则,则认为是毛刺脉冲并忽略。到了下一个比特时间后,线路状态被采样并送入移位寄存器。约定的表示一个字符的所有数据比特(典型为5至8个比特)接收后,移位寄存器可被接收系统使用。UART将设置一个标记指出新数据可用,并产生一个处理器中断请求主机处理器取走接收到的数据。

简化的UART在开始比特下降沿开始重新同步时间,然后在每个数据比特的中心时刻采样。

UART的标准特性之一是在接收下一个字符时在缓冲区保存上一个接收到的字符。这种“双缓冲区”允许接收计算机用一个字符的传输时段来获取缓冲区内的上一个字符。许多UART有更大的FIFO缓冲区,允许主机一次处理多个字符,这特别适用于高传输数据率的串行通信同时处理器中断频率有限(通常中断间隔大于1毫秒)。

发送器

UART把一个字符放入移位寄存器,就开始产生一个数据帧。对于全双工通信,发送与接受使用不同的移位寄存器。使用更大的FIFO使得主机处理器或DMA放置多个字节后由UART自主完成传输。 UART用一个标志位表示busy。

应用

接收与发送的UART必须达成数据帧协议。如果接收方发现这方面错误,会向主机报告"framing error"标志。

典型的连接modem的串口,使用8个比特表示一个字节,没有奇偶校验位,1个停止位。比特率除以10就是发送ASCII字符的传输速率。

超低成本的嵌入式系统没有UART而是用处理器来实现异步串行通信。

立即搭建您的物联网平台?

接入物联网设备,搭建可视化看板,生成 App,仅需不到 30 分钟。

进入控制台

设备轻松上云

设备统一接入

打破不同厂商设备上云孤岛,无需重复建设,海量设备接入同一个平台,搞定数据互通和智能联动。

开放接入协议
支持各类物联网设备,提供快捷且安全的接入服务。
全球接入点
支持国内及海外多地域接入,助您物联网业务全球化。
按需扩容
无需高额一次性投入,可随业务发展不断扩容。

数据采集

洞察数据价值

从设备数据采集,到实时控制,不需要复杂的操作和配置。

多数据类型
支持基本和复合数据类型,覆盖各行业物联网场景。
数据聚合分析
内置强大的历史数据分析,快速挖掘数据价值。
数据计算规则
内置规则引擎,支持云函数,实现任意业务需要。

可视化

数据及控制看板

一键添加数据和控制组件,支持丰富个性化样式,还可生成共享 URL。

50+ 可视化组件
持续新增可视化组件,助力各行业物联网场景。
个性化样式
从背景图到组件标题,每一处样式都可以灵活设置。
发布共享
生成看板共享 URL,每个看板就是一个小型应用。

App 应用

零代码 App 开发

不需要写一行代码,为您的物联网项目生成与众不同的 App。

多平台支持
公版 ThingsX App 支持 iOS/Android/微信小程序/Webapp。
OEM App
可生成您的专属 App,拥有自己的 App 名称、Logo。
多用户支持
内置用户账号体系,用户可认领设备。

SaaS 应用

一键生成 SaaS 后台

为您的客户生成独立管理后台,快速落地物联网项目。

个性化样式
从登录页到主题色,您可以设置不同的视觉效果。
自定义域名
可绑定您的域名,实现独立品牌推广。
关联看板
将精心设计的可视化看板,一键放置到 SaaS 应用中。

设备告警

简单易用的告警规则

不仅可通知项目成员,还可通知设备所属用户。

灵活的告警规则
快捷的多条件设置,让告警通知更加有效。
丰富的通知方式
支持短信、邮件、钉钉群机器人、企业微信、微信公众号。
集成自有公众号
用您的公众号为用户推送告警通知,积累私域粉丝。

API

带给您无限可能

ThingsCloud 支持完善的 API 服务,您可以基于 API 开发任意应用。

全方位开放
支持 HTTP API、MQTT 实时消息、Webhook。
集成到方案中
将 ThingsCloud 作为您的物联网中台,成为行业方案的基础设施。
应用定制服务
提供基于 API 的应用定制开发服务。

应用场景

全球 80% 的数据将来自物联网,不论是传统行业还是新兴行业,都将利用更多有价值的数据来驱动业务,实现降本增效。