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 描述的是 "电信号长什么样、用几根线、能传多远"。

相关推荐
极客 - L U15 小时前
卡尔曼滤波从零到精通
c语言·数据结构·单片机·嵌入式硬件·mcu
橘色的喵21 小时前
嵌入式Linux编程,如何把硬件中断交给用户态--UIO 的机制
linux·mcu·isr·中断·uio
笨笨饿2 天前
#143_屏幕画撕裂的问题及解决方法
linux·stm32·单片机·嵌入式硬件·mcu·lvgl·嵌入式实时数据库
李永奉2 天前
杰理可视化SDK开发-音频录制功能使用教程
笔记·单片机·嵌入式硬件·mcu·物联网·音视频
艾络迅Acceleronix2 天前
气象监测:STM32+EG800Z AT + 艾络迅平台实战|气压/光照/雨量采集全流程
stm32·单片机·嵌入式硬件·mcu·物联网·1024程序员节
李永奉2 天前
杰理可视化SDK开发-【BUG】AC7006F8芯片开启一拖二和双麦DNS通话算法后,大概率通话时蓝牙自动断连,RAM空间爆了问题处理
单片机·嵌入式硬件·mcu·物联网·电脑·bug
笨笨饿4 天前
# 59_CSDN博客自动写流程文章
linux·jvm·stm32·单片机·嵌入式硬件·mcu·51单片机
硅基手札4 天前
操作系统设计思想系列 05 · RTOS 核心矛盾 — 资源受限 × 时间确定性的设计决策树
linux·mcu·架构·操作系统·嵌入式开发·rtos·设计思想
李永奉5 天前
杰理可视化SDK开发-【BUG】AC7006F8芯片开启一拖二和双麦通话语音算法后,设置触摸音在唤醒语音助手和通话时触摸音没作用问题
单片机·嵌入式硬件·mcu·物联网·电脑·bug
硅基手札6 天前
SPI技术系列 12 · SPI 设备驱动实战
linux·驱动开发·单片机·嵌入式硬件·mcu·性能优化·系统架构