· Yorian Chiong · Communication  · 阅读时长 ≈ 8分钟

嵌入式开发接口Interfaces

嵌入式开发中,经常遇到很多接口,比如串口、COM口、UART口, TTL、RS-232、RS-485,这里重点讲一下他们之间的关系。

嵌入式开发中,经常遇到很多接口,比如串口、COM口、UART口, TTL、RS-232、RS-485,这里重点讲一下他们之间的关系。

首先说一下结论:

  • 串口、UART口、COM口、USB口是指的物理接口形式(硬件)。而TTL、RS-232、RS-485是指的电平标准(电信号)。

  • 嵌入式单片机上中说的串口,一般是指UART口。4个pin(Vcc,GND,RX,TX),用TTL电平。

  • PC中的COM口即串行通讯端口,简称串口。9个Pin,用RS232电平。

  • COM口一般是RS232,只是把UART的高电平电压增大了,以便传得更远,而RS485又在此基础上把低电平改成了负电压,从而把信号改成了差分信号,增加了抗干扰能力。其实信号的本质并没有变化。

  • 嵌入式里面说的串口,一般是指UART口,UART可以说是一个逻辑电路,但是大部分都抽象化了以模块形式在用,更偏向于协议,COM口更像是硬件资源,USB-D用UART协议也不少。

UART是单片机串口的俗称,COM口是电脑串口的俗称

UART是单片机串口的俗称,COM口是电脑串口的俗称,它们都是异步串行口;而I2C、SPI都属于同步串行口 TTL、RS-232、RS-485区别于硬件接口,它们是指的电平标准(电信号)。

UART与COM(硬件接口)

UART

UART属于硬件接口,叫通用异步收发传输器,传输器就表明中这是一种装置属于硬件层面,特性:两根线,全双工,异步传输,UART有4个pin(VCC, GND, RX, TX), 用的TTL电平, 低电平为0(0V),高电平为1(3.3V或以上)。

COM

正如前面所说UART是单片机串口的俗称,COM口是电脑串口的俗称,电脑COM口使用DB9连接器,遵循RS-232标准,RS-232规定了通信口的电气特性(比如多少伏为逻辑“1”)和接口机械特性(形状,针脚定义)等内容。COM口多见于旧式电脑,用于连接鼠标,调制调解器等设备,现在已被USB取代。

TTL电平标准

输出 L: <0.8V ; H:>2.4V。

输入 L: <1.2V ; H:>2.0V

TTL器件输出低电平要小于0.8V,高电平要大于2.4V。输入低于1.2V就认为是低电平(0),高于2.0就认为是高电平(1)。

接线方式:

完整的 UART 接口通常需要至少四根线,包括:

  1. VCC:电源。
  2. GND:接地。
  3. RX:接收数据。
  4. TX:发送数据。

主板和外部设备可能已经通过其他方式共享电源和接地,因此UART不需要额外的 VCC 和 GND 针脚。

RS-232 和 RS-485 的连接方式有所不同:

RS-232

最少需要三根线:

  1. TX(发送)
  2. RX(接收)
  3. GND(地)

其他可选信号线:用于硬件流控制,如 RTS、CTS、DTR、DSR 等。

RS-485

最少需要两根线:

  1. A(数据线+)
  2. B(数据线-)

可选第三根线:用于接地(GND),提高通信稳定性。

RS-485 支持差分信号传输,适合长距离和抗干扰环境。

串口、UART口、COM口、USB口是指的物理接口形式(硬件)

串口:串口是一个泛称

UART接口:通用异步收发器(Universal Asynchronous Receiver/Transmitter),UART是串口收发的逻辑电路,这部分可以独立成芯片,也可以作为模块嵌入到其他芯片里。单片机、SOC、PC里都会有UART模块。

COM口:特指台式计算机或一些电子设备上的D-SUB外形(一种连接器结构,VGA接口的连接器也是D-SUB)的串行通信口,应用了串口通信时序和RS232的逻辑电平。

USB口:通用串行总线,和串口完全是两个概念。虽然也是串行方式通信,但由于USB的通信时序和信号电平都和串口完全不同,因此和串口没有任何关系。USB是高速的通信接口,用于PC连接各种外设,U盘、键鼠、移动硬盘、当然也包括“USB转串口”的模块。(USB转串口模块,就是USB接口的UART模块)。

TTL,RS232,RS485都是一种逻辑电平的表示方式

TTL(Transistor-Transistor Logic): TTL全名是晶体管-晶体管逻辑集成电路(Transistor-Transistor Logic),这种串行通信,对应的物理电平,始终是在0V和Vcc之间,其中常见的Vcc是5V或3.3V。TTL 高电平1是>=2.4V,低电平0是<=0.5V(对于5V或3.3V电源电压),这里是正逻辑。

RS232:是电子工业协会(Electronic Industries Association,EIA) 制定的异步传输标准接口,同时对应着电平标准和通信协议(时序),其电平标准:+3V~+15V对应0,-3V~-15V对应1。rs232 的逻辑电平和TTL 不一样但是协议一样。

RS485:RS485是一种串口接口标准,为了长距离传输采用差分方式传输,传输的是差分信号,抗干扰能力比RS232强很多。两线压差为-(26)V表示0,两线压差为+(26)V表示1

RS-485:半双工、(逻辑1:+2V—+6V 逻辑0: -6V---2V)这里的电平指AB 两线间的电压差。

遇到问题

在内容集合中使用本地图像时,开始这样写相对路径报错:

---
image: ../../attachments/post/device-interfaces-uart-ttl.jpg
---

报错:

Possible dynamic routes being matched: src/pages/[...blog]/[category]/[...page].astro, src/pages/[...blog]/[tag]/[...page].astro, src/pages/[...blog]/[...page].astro, src/pages/[...blog]/index.astro.
17:44:44 [404] /attachments/post/device-interfaces-uart-ttl.jpg 19ms
17:44:44 [WARN] [router] A `getStaticPaths()` route pattern was matched, but no matching static path was found for requested path `/attachments/post/device-interfaces-uart-ttl.jpg`.

经询问ChatGPT

问:image: z.string().optional(),这样写时,可以用src目录下的本地图片吗

在 image: z.string().optional() 中,使用本地图片路径可以这样做:

---
title: 嵌入式开发接口Interfaces
image: '/src/attachments/post/device-interfaces-uart-ttl.jpg'
---

因为在src/content/config.ts中看到了image: z.string().optional()这样的语句。

参考文献

另外:“IcmsObsidianVault\为什么选择 Astro.md”有安装使用记录

参考文献

声明:以上内容为博主记录的博客文章,仅供参考。本文素材来源网络,版权归原作者所有。如涉及作品版权问题,请与我联系删除。

返回博客列表

Related Posts

View All Posts »