2. UART与TTL UART、CMOS UART、RS232、RS422、RS485、tod

2. UART

2.1 是什么?

Universal Asynchronous Receiver/Transmitter

通用异步接收器/发送器,是一种广泛应用于嵌入式领域的串行、异步、全双工通信协议

2.1.1 异步:收发双方无共享时钟,靠起始 / 停止位同步.

同步通信 vs 异步通信

  1. 同步通信(I2C/SPI):有共享时钟线
    设备之间多一根时钟信号线 SCL/SCK
    主机输出统一时钟脉冲;
    收发双方看着同一个时钟节拍,时钟到了就采 1bit;
    双方时钟完全同步,不需要标记一帧数据的开头结尾。
  2. 异步通信(UART):没有时钟线
    只有 TX、RX 两根数据线,双方各有独立本地晶振,两套时钟互不相连。
    问题来了:
    两边晶振不可能 100% 精准,频率略有偏差,时间久了 bit 读取会错位,不知道哪一位是数据、哪一位是空。
    所以 UART 必须靠起始位、停止位标记一帧的边界,重新对齐。

2.1.2 一般成为串口,原因是

内部把并行字节拆成一串 bit,bit 一个接一个串行流出;数据一位接一位,按顺序排队依次在同一根线上传输。对应英文:Serial Port,直译就是串行端口,简称串口。

2.1.3 协议标准定义了什么

--- 数据链路层协议标准

在协议层中,规定了数据包的内容,由起始位、主要数据、校验位和停止位组成。双方的数据包格式必须约定一致,才能正常发送和接收数据。

2.2 tod

2.2.1 是什么

TOD (Time of Day) :属于【应用层】协议;TOD 明确规定了数据包里必须包含时间信息(年、月、日、时、分、秒,甚至毫秒),以及数据包的格式。

NMEA 协议的GPRMC或GPRMC或GPRMC或GPZDA 语句

NMEA 协议 (GPRMC/GPZDA) = TOD (Time of Day) 包。它是以 纯文本 (ASCII 字符) 通过串口吐出来的。

2.2.2 与uart 关系

TOD 协议的数据,通常是通过 UART 协议这条"传送带"发送出去的。 UART 负责把 TOD 的打包数据转换成电信号传走。

2.2.3 tod 数据

2.3 物理层相关

TTL UART、CMOS UART、RS232、RS422、RS485

这些为物理层标准。

RJ45是一个机械接口标准;物理形态是---千兆网线的接口

案例:

2.3.1 测试1pps+tod

在FPGA阶段 测试1pps+tod 功能时,通过SMA接口进行输出、输入的,该接口的电平是TTL电平。TTL 电平是单端信号,一般有RX、TX、GND 三根线。

测试仪Paragon-X 接收pps、tod 的接口是RJ45,电平是RS422电平。RS422电平 是差分信号,所以接收或者发送方向皆有两根线:RX+ 和 RX- ;TX+ 和 TX-.

2.3.2 测试IRIGB

在FPGA阶段 测试irigb时,B码产生器 通过DB9公头 输出信号;接收B码端需要用DB9母头 接收信号。该信号为RS422差分信号,作为接收,TIME+ 、TIME-、GND。

2.3.3 单端、差分信号

可以简单的理解为:单端信号的发送用一根线完成;接收用1根线完成;单端信号:测的是 信号线对 GND 的电压。

差分信号指的是:发送需要有两根线传信号;接收需要有两根线传信号;测的是 两根线之间的电压差 V_AB = A − B。

2.3.4电路图解读

AM26LV31EIPWR、AM26LV32EIPWR 为两个RS-422 电平转换器芯片,实现电平转换。

图中表示有P、N 表示差分信号某个信号的正极、负极,

2.3.4.1 AM26LV31EIPWR

把单片机发出的 3.3V 数据,翻译成 RS-422 的长距离差分信号,发送到 1000 米外的设备去

2.3.4.2 AM26LV32EIPWR

是把 1000 米外传过来的 RS-422 差分信号,翻译回单片机能看懂的 3.3V 数据

2.4 uart 与TTL UART、CMOS UART、RS232、RS422、RS485 区别

UART 描述的是 "数据怎么在时间上排列"(起始位、数据位、校验位、停止位);

而 RS232 / RS422 / RS485 描述的是 "电信号长什么样、用几根线、能传多远"。

相关推荐
wuyk5551 分钟前
《WiFi 嵌入式物联网开发全套实战》| 第01章 WiFi整体架构详解:BSS/ESS/AP/STA模式彻底区分
开发语言·stm32·单片机·嵌入式硬件·mcu·物联网·51单片机
芯片设计-曾工4 小时前
YL1621(SSOP28)国产段码LCD驱动芯片|PIN‑PIN兼容HT1621,储能电量显示板CH2505B国产化替换方案
stm32·单片机·嵌入式硬件·mcu·硬件工程
DevHub1 天前
STM32 USB HID 教程:TinyUSB 实现键盘设备,从描述符到枚举
arm开发·stm32·单片机·嵌入式硬件·mcu·计算机外设
etc95272 天前
keil下如何指定stack和heap地址
ide·mcu
DevHub2 天前
probe-rs 教程:一行命令替代 OpenOCD 烧写调试 Cortex-M
arm开发·嵌入式硬件·mcu·rust
etc95272 天前
IAR下如何同时指定section的LMA和VMA
arm开发·嵌入式硬件·mcu
花月mmc2 天前
Arduino UNO R4 ——电压电流数据显示
嵌入式硬件·mcu·物联网
笨笨饿3 天前
#109_BK7258 蓝牙 A2DP 音频数据通路深度解析
python·stm32·单片机·mcu·物联网·编辑器·音视频
国产HT1621B3 天前
外挂 YL1621 SSOP48 芯片 vs MCU 内置 LCD 控制器深度对比
科技·单片机·嵌入式硬件·mcu·lcd驱动
ltqshs5 天前
STM32-FreeRTOS函数名规律总结
mcu