串行通信接口标准(TTL、CMOS、RS232、RS422、RS485、CAN等)

news/2025/9/17 22:41:04/文章来源:https://www.cnblogs.com/Qole/p/19097692

TTL电平

引言

TTL是 Transistor-Transistor Logic(晶体管-晶体管逻辑)的缩写,是早期基于双极性晶体管(BJT)技术的逻辑家族。

电平特点

1. 电源电压:+5V
2. 电平标准

  • Voh:≥ 2.4V;
  • Vol: ≤ 0.4V;
  • Vih:≥ 2.0V;
  • Vil: ≤ 0.8V;

核心特点:

1. 输入悬空:TTL输入引脚如果什么都不接(悬空),默认会被电路视为高电平(1)。但这是不稳定的,易受干扰,好设计应避免悬空。
2. 驱动能力:灌电流(Sink)能力远强于拉电流(Source)能力。即输出低电平(0)时能“吸入”的电流很大。
3. 功耗:相对较高。

LVTTL电平

引言

随着芯片工艺演进,为了降低功耗和适应更低的核心电压而出现的TTL低压版本。

电平特点

1. 电源电压:+3.3V
2. 电平标准

  • Voh:≥ 2.4V;
  • Vol: ≤ 0.4V;
  • Vih:≥ 2.0V;
  • Vil: ≤ 0.8V;

核心特点:

1. 电压降低了,阈值没变:继承了5V TTL电平的阈值电压,但是工作电压降低到了3.3V。
2. 兼容性:一个LVTTL的输入可以安全地接收5V TTL 的输出。

CMOS电平:

引言:

基于MOSFET场效应管

电平特点

1. 电源电压(3.3V):范围很管。
2. 电平标准(以3.3V CMOS为例)

  • Voh:非常接近VCC(≥ 3.2V @ 3.3V);
  • Vol: 非常接近0V(≤ 0.1V @ 3.3V);
  • Vih:> 0.7 * VCC(≥ 2.31V @ 3.3V);
  • Vil: ≤ 0.3 * VCC(≤ 0.9V @ 3.3V);

核心特点:

1. 满幅摆动:输出电平几乎能达到电源轨(Rail - to -Rail),这是巨大优势。
2. 高输入阻抗:输入引脚是绝缘栅极,直流阻抗极高,几乎不消耗直流电流。
3. 禁止悬空CMOS输入引脚绝对不能悬空! 悬空会产生静电积累导致栅极击穿,或造成逻辑振荡和额外功耗。所有未使用的输入脚必须接上拉或下拉电阻。
4. 低功耗:静态功耗极低,功耗主要发生在高低电平切换的瞬间。

TTL电平和CMOS电平混合使用注意事项

1. 3.3VLVTTL/CMOS 可以安全直接驱动 5V TTL。
2. 5V TTL 可以驱动3.3V LVTTL,弹药注意5V TTL的输出电压不超过3.3V的 LVTTL芯片输入脚的绝对最大耐压值。
3. 5V TTL 驱动3.3V CMOS,有风险,建议加电平转换或上拉电阻。
4. 5V CMOS不能驱动任何3.3V芯片。

RS232电平

引言

RS232(Recommended Standard 232)是电子工业协会(EIA)在1960年代早期制定的一种串行通信接口标准,旨在规范数据终端设备(DTE)与数据通信设备(DCE)之间的连接和通信方式。RS232经历了多个版本的迭代和发展,最著名的版本之一是RS-232C,成为了广泛接受的标准。

协议原理:

RS232工作原理是基于异步串行通信,数据以BIT的形式逐位传输,可以实现一对一的全双工通信。仅仅只需要三根线即可实现数据传输:RXD,TXD和GND。如下图所示,其数据传输过程包括起始位、数据位(5~8)、奇偶校验位和停止位。
image

电平标准

RS232是负逻辑电平标准。逻辑“1”通常由负电压表示(-3V ~ -15V),而逻辑“0”则由正电压表示(3V ~ 15V)。

优缺点:

优点

  1. 简单易用:RS-232协议的工作原理简单,易于理解和实现。
  2. 低成本:RS-232接口的硬件成本低,适合大规模生产和应用。

缺点

  1. RS-232协议的传输速率相对较低。
  2. RS-232协议的传输距离有限,最长仅为15米。
  3. S-232协议只支持点对点通信,无法实现多设备之间的通信。

RS422电平

引言

RS422采用差分信号来提高数据传输的可靠性和距离,同时其传输速率可达最高10Mbps

协议原理:

RS422采用一对双绞线来传输每个信号。其一般是四线制,可以实现单点对多点间的全双工通信。两根用于发送(Tx+ 、 Tx-)和两根用于接收(Rx+ 、 Rx-)。
image

电平标准

在RS422中,逻辑状态通过一对导线上的电压差来表示。理想情况下,当发送逻辑“1”时,正相线路相对于负相线路会有+2V到+6V的电压差;发送逻辑“0”时,则为-2V到-6V的电压差。为了防止信号反射和保证信号完整性,RS422通信链路通常需要在接收端添加匹配的终端电阻。在点对点连接中,终端电阻通常只在接收端添加;

RS485电平

引言

RS485通过差分信号传输,支持最长1200米的通信距离和高达10 Mbps的数据传输速率。RS232接口支持多点对多点间的半双工通信,这使得RS485非常适合构建设备网络。

协议原理:

由于RS-485是从RS-422基础上发展而来的,所以RS-485许多电气规定与RS-422相仿。如都采用平衡传输方式、都需要在传输线上接终接电阻等。RS-485可以采用二线与四线方式,二线制可实现真正的多点双向通信。而采用四线连接时,与RS-422一样只能实现点对多的通信,即只能有一个主(Master)设备,其余为从设备,但它比RS-422有改进, 无论四线还是二线连接方式总线上可多接到32个设备。
image

电平标准

RS-485与RS-422的不同还在于其共模输出电压是不同的,RS-485是-7V至+12V之间,而RS-422在-7V至+7V之间,RS-485接收器最小输入阻抗为12k,RS-422是4k。RS-485满足所有RS-422的规范,所以RS-485的驱动器可以用在RS-422网络中应用。

  1. 逻辑1:当A线相对于B线的电压为正值时,即A-B > +200mV,这代表一个逻辑高电平。在实际应用中,这个值通常是+2V到+6V之间。
  2. 逻辑0:当A线相对于B线的电压为负值时,即A-B < -200mV,这代表一个逻辑低电平。在实际应用中,这个值通常是-2V到-6V之间
  3. 在长距离传输时,为了减少信号反射,通常会在RS485网络的两端添加120欧姆的终端电阻。这是因为RS485电缆的特性阻抗一般为120Ω。

电路原理图

image

CAN电平

引言

CAN:局域网(Control Area Network,CAN)是一种全数字、全开放的现场总线控制网络。目前CAN总线被广泛的应用在汽车电子领域和工业的现场总线中。CAN是一种 多主、串行、广播式 的现场总线通信协议,可以实现点对点,单点对多点,多点对多点以及全局广播之间的通信方式。

协议原理

1. 多主:总线上没有传统的主从结构。任何节点都可以在总线空闲的时候主动向任何其他节点发送消息。
2. 广播:发送节点将消息广播到总线上,所有节点都能听到。
3. 基于消息:通信不是通过地址来寻址特定节点,而是通过标识符来标识消息的内容。总线上所有节点都会收到消息,每个节点的CAN硬件只对自己感兴趣的标识符的消息做出反应。
4. 高可靠性:具有强大的错误检测和处理机制,使其能够在恶劣的电磁环境中依然稳定。节点具有在错误严重时自动关闭总线的功能,它可以切断故障点与总线的联系,使总线上的其他节点不受影响。

电平标准:

1. 物理层: 所有节点都挂在一对双绞线上(CAN_H和CAN_L)。
2. 差分信号传输: 使用差分电压来抵抗共模干扰。

  • 显性位:逻辑 ‘0’。CAN_H 电压升高,CAN_L 电压降低,产生差分电压。
  • 隐性位 (Recessive Bit):逻辑 ‘1’。两条线电压均约为 2.5V,差分电压为 0。
  • 特点:显性位会覆盖隐性位,在仲裁中很重要。

电路原理图

image

优劣势

优势:

1. 高可靠性:差分信号和多重错误检测机制使其抗干扰能力极强。
2. 多主结构:灵活性强,无需中央控制器。
3. 优先级仲裁:保证了关键消息(如刹车信号,标识符优先级高)总能优先发送,实时性好。
4. 全局一致性:通过广播和过滤,可以轻松保证所有节点数据的一致性。
5. 成本效益:用简单的双绞线替代了复杂的线束。

局限性

1. 带宽限制:经典CAN最高速率为1 Mbps,且有效数据负载较小(最多8字节/帧),协议开销较大。不适合传输大量数据(如视频流)。
2. 软件复杂性:实现完整的CAN协议栈(尤其是错误处理)比UART等简单协议复杂得多。
3. 需要专用硬件:通常需要CAN控制器和收发器芯片,不能直接用MCU的GPIO模拟。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/906909.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

攻防世界-IgniteMe - xxx

先查壳,发现没加壳,拖入ida-32反汇编了得到主函数 粗略看一下,能得到的信息有 输入的字符串长度为29,前四个字符是EIS{,最后一个字符是}想要输出Congratulations!关键的函数就是这个 4011C0函数,我们点进去看一下…

详细介绍:芯伯乐零漂移轨到轨运放芯片XBL8551/XBL8552/XBL8554系列,微安级功耗高精度信号处理

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

C 语言 之 面向对象(一)

C 语言 之 面向对象(一)C 语言 之 面向对象(一) 了解C语言面向对象之前首先需要对C语言的指针、结构体有基本了解。 指针 正常使用数组: void hello(){#define count 10// shint a[count] = {1, 2, 3, 4, 5, 6, 7…

for_switch

func forCase() {for i := 0; i < 10; i++ {if i == 5 {continue}fmt.Println("位置1 执行 for 语句块 i:", i)}fmt.Println("-------循环 slice ------")list := []int{1, 2, 3, 4, 5}for in…

Linux内存管理章节十九:超越kmalloc:自定义内存分配器开发实战 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

测井数据分析与建模完整教程 - 详解

测井数据分析与建模完整教程 - 详解2025-09-17 22:28 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !imp…

记录我见过的神人

魔丸《待审核》 注:团长高仿号申请进团焯神观察兵古风 古风

虚拟机小结1

虚拟机小结<1>1

DOS指令学习

打开CMD的方式 1.开始+系统+命令指示符 2.Win键+R 输入cmd 打开控制台(推荐使用) 3.在任意的文件下面,按住shift键+鼠标右键点击,在此处打开命令窗口 4.资源管理器的地址栏前面加上cmd路径 管理员方式运行:选择以…

调教分块代码

原型:P4135 作诗、a1a2a3a4a5、输入输出样例 输入 #1 5 3 5 1 2 2 3 1 0 4 1 2 2 2 2 3 3 5 输出 #1 2 0 0 0 1

100 粉粉福

自定: 我将发誓永远不学多项式和计算几何和线性代数(Fwb疑问:尊都假都,回:真)(无私心)。 我宣誓:我在学多项式和计算几何和线性代数我就是刀哥。 买一份德克士,并从自己和粉丝中选取一个赠送(私心不重)。 …

My All Math

哦背背: atan2(△y,△x) :极角 acos(-1):π cos()、sin():。 __builtin_popcount(x)、__builtin_popcountll(x):1 的个数 两直线交点 设两直线方程分别为: \(l_1=P+t\)v \(l_2=Q+t\)w \(t=[(P−Q)\)w\(]/(\)w\(\…

放飞炬人集团:将起草《大国战争人才武(武汉)荆(荆州)襄(襄阳)核心走廊》规划 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

【Azure环境】使用ARM Template部署Policy模板时候报错不支持filed函数: The template function field is not valid.

问题描述 Azure Policy可以帮助治理Azure上的资源, 也可以通过ARM 模板部署。只是当Policy中包含了field 函数的时候,会出现错误!"parameters": {"keyVaultName": {"value": "[f…

TCP粘包问题

TCP粘包问题TCP粘包问题1、C语言 网络编程(十二)TCP通信创建-粘包-阿里云开发者社区 2、TCP数据粘包的处理 | 爱编程的大丙

开源AI大模型、AI智能名片与S2B2C商城小代码:从“不出现=不存在”到“精准存在”的数字化转型路径

开源AI大模型、AI智能名片与S2B2C商城小代码:从“不出现=不存在”到“精准存在”的数字化转型路径pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block …

202509 组合数学与计数类 DP 笔记

1. P2051 [AHOI2009] 中国象棋 一格一格进行考虑做 DP 想不出来,考虑到一行实际上只需要选两格进行操作,因此可以一行一行操作。 设 \(f_{i,j,k}\) 表示考虑到第 \(i\) 行,有 \(m-j-k\) 列有 \(0\) 个棋子,有 \(j\…

edu 106 E(LCS dp + 多源bfs优化)

E 先考虑对两个固定串怎么做:可以确定形成串的末尾一定是 \(a_{i}\) 或者 \(b_{j}\),直接子序列 \(dp\) 即可:\(dp_{i,j,0/1}\) 表示只考虑 \(a\) 长度为 \(i\) 的前缀和 \(b\) 长度为 \(j\) 的前缀,\(0\) 表示形成…

ABC310E NAND repeatedly 题解

https://atcoder.jp/contests/abc310/tasks/abc310_e 一个奇怪的递归式 + \(N \le 10^6\), 试试动态规划 设 \(dp_{i,j}\) 为对于所有 \(1 \le l \le i\) 满足 \(f(l, i)=j\) 的数量, 其中 \(j \in \{0,1\}\). 最后答案…

深度学习之PyTorch核心使用(一)

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …