细嗦MCU与电脑的通讯方式-串口

原创 云深之无迹 2025-01-07 10:48

你这个小板子和电脑通讯,做个上位机,最常用的接口是什么?我想大家闭眼说-串口!

串口是什么?

串行接口(Serial port),也称串行接口或串行端口,串行通信接口,COM接口,简称串口。

就字面意思,一根线就可以传输,也就是说,其实传输的是帧数据,那不免得就要说一帧里面有什么?

我在之前的文章里面说,一个协议最重要的就是抓住01到底是怎么传输的,以及我们如何设计一些东西,可以找到这个帧数据的头和尾如何把数据载荷取出来。

你看这个就是头+尾+8bit数据,不就是一个字节,这就是包装出来的一帧数据。

更加详细的是这样

当两个设备需要通过UART协议进行通讯时,它们需要同时约定好以下内容:
  1. 每一位信号的时间长度T(波特率 = 1/T)
  2. 帧结构中每一项的具体位数
  3. 是否有校验位,以及校验位的机制(奇/偶/..)
有了这些约定,接收设备只需要等待起始位的到来,再对之后的波形进行固定间隔的采样即可获得传输的具体信息。以字符‘D‘的波形为例:

取样的波形

波特率是UART协议,或者说所有异步串行协议,非常重要的一个概念,即单位时间内(1秒)可表示的bit位个数,或者也可以表述为bit位宽的倒数。例如一个波特率为115200的UART波形表示1秒可容纳115200个bit位,也就是说每一位bit数据占大约8.68uS的时长。

UART等异步串行协议,为了简化信号物理连接,降低通讯成本,一般只有一根信号线,无法同时传输数据和时钟信号。

收/发设备为了正确解析波形就需要在相同的波特率设置下。而相同的波形使用不同的波特率获取的信息可能会完全不同。对于接收设备来讲,只有起始位可以作为一帧数据的同步点,其它数据都是通过波特率来确定具体的取样位置。

波特率错误

空闲时持续的高电平

UART接收端会一直检测信号线上的电平变化,开始传输数据时,发送端将信号线从高电平拉到低电平结束空闲状态,并保持一个bit位的时长。

接收器检测到高低电平转换时,开始接收信号。

而我们现代的协议其实是分层的

我们关心的是具体数据的意思,但是物理层走的确实高高低低的电平。物理层就是数据手册里面的东西,这个电平范围什么的,IO的速度什么的,因为一翻转就是一个01出来了。然后这么多的01,交给协议层,就是01如何分配,把里面的头尾校验这些都分离出来。然后把我们感兴趣的数据再传一层,拥有着实际意义的应用层。

为什么我这一次说了这个协议分层?因为串口的物理层有点多。

针对不同的通讯需求,便可以使用不同的物理层实现。例如简单的板内通讯,或者常见的设备调试场景,使用简单的LVTTL/TTL电平即可在两个设备间进行UART协议通讯。

梦源的图

通用的串口则使用的是RS232电平,可以增加传输距离,并且抵抗一定程度的信号干扰。
付出的成本则是在物理层需要对应的电平转换芯片来实现,发送端需要将内部的高低电平信号转换成电压更高的+/-电压信号,接收端需要将+/-电压信号转换成内部的高低电平信号。

这里使用这个芯片,就好像是一个外置的RF芯片,01还是哪个01,但是物理层做了一些更改。

电压大了,这个传输的时候,其实能量也强了

在工业通讯的场景下,为了进一步提高传输距离,以及增强信号的可靠性,一般会采用RS485的电平标准。
在发送端将普通的高低电平信号转换成一对差分信号,在接收端将差分信号再转换成普通的高低电平信号。另外,RS485允许总线上连接多达128收发器,而TTL或者RS232则是点对点的连接。

也就是说,工业设备要追求抗干扰和稳定,一个节点数据量不大,但是又需要通讯,那这个RS485就大显身手了。

可以看到,就是AB两个线就可以传输了

甩来甩去

我们使用的最多的是TTL电平

还是梦源的图

我们看这些MCU的特性里面一定会有,这个支持的模式

同步通讯是有时钟的,大家在一个线上面采集。

也就是要三个线

高级功能

还可以设置时钟

  1. 串口同步通信:在约定的通信速率下,发送端和接收端的时钟信号频率和相位始终保持同步,以保证通信双方在发送和接收数据时具有完全一样的定时关系。
  2. 串口异步通信:也称为起止式异步通信,是以字符为单位进行传输的,字符之间没有固定的时间间隔要求,每个字符中的各位则以固定的时间传送。
后者也叫字符同步,大家一般都是选这个的多。
上面就是咱们的基础知识了,来看看具体在MCU,SOC里面的样子

我这里选了英伟达 Jetson Nano:

可以看到,直接给了3个串口

不愧是说SOC,性能就是好,时钟200M,还有FIFO

三组

可以看到,再牛逼也得用串口调试

那其实我们的电脑只有USB和Type-C接口了,根本没有串口!!!那咋办?

所以就需要一个USB转串口的芯片!

CP2102,明星产品,也是贵族了

中规中矩的异步串口功能

这里

虚拟串口,全平台适配

框图也简单,如果异步通讯的话,就TX和RX就行了

这也简单,电源就是滤波,然后USB就是保护,RST是上拉

还有一个2104

1. CP2104更便宜。

2. CP2104体积更小,占地面积不同。CP2104是QFN24(4x4mm); CP2102是QFN28(5x5mm)。

会小一点

3. CP2104具有 I/O 电源引脚,可通过外部电阻承受VDD至5V的电压。

4. CP2104支持RS-485; CP2102没有。

5. CP2104具有GPIO引脚; CP2102没有。

6. CP2104具有一次性可编程存储器(OTP); 只能自定义一次CP2104。CP2102具有可重新编程的闪存; 可以多次自定义CP2102。

一模一样,无所谓

还有咱们的WCH

就是它的封装不好看,有点大

微小型的 10 脚贴片-MSOP-10,这个好

这个是什么画的?PADS?

就和我不出油的笔有一拼。

还有下载电路,数据手册里面介绍了不少应用例子,不错

反正就是这三个吧!

MCU还是要说一下:

CW32还有个好玩的,就是TX和RX互换功能,再也不怕连错了

在CR2这个寄存器这里改

这个也值得一看,别的MCU也可以用的上

除了MCU有串口,需要一个USB桥以外,还有自己带MCU USB IP的。

哈哈哈哈,没想到吧?每次买东西凑单的货,有这种好玩的东西。也就是说可以不使用额外的芯片,就直接一个USB线就可以通讯了。

直接这样就ok

推荐这本书

STM32F103 自带的 USB 符合 USB2.0 规范,不过 STM32F103 的 USB 都只能用来做设备,而不能用作主机。
标准 USB 共四根线组成,除 VCC/GND 外,另外为 D+,D-; 这两根数据线采用的是差分电压的方式进行数据传输的。
在 USB 主机上,D-和 D+都是接了 15K 的电阻到低的,所以在没有设备接入的时候,D+、D-均是低电平。而在 USB 设备中,如果是高速设备,则会在 D+上接一个 1.5K 的电阻到 VCC,而如果是低速设备,则会在 D-上接一个 1.5K 的电阻到 VCC。这样当设备接入主机的时候,主机就可以判断是否有设备接入,并能判断设备是高速设备还是低速设备。
STM32F103 的 MCU 自带 USB 从控制器,符合 USB 规范的通信连接;PC 主机和微控制器之间的数据传输是通过共享一专用的数据缓冲区来完成的,该数据缓冲区能被 USB 外设直接访问。
这块专用数据缓冲区的大小由所使用的端点数目和每个端点最大的数据分组大小所决定,每个端点最大可使用 512 字节缓冲区(专用的 512 字节,和 CAN 共用),最多可用于 16 个单向或 8 个双向端点。USB 模块同 PC 主机通信,根据 USB 规范实现令牌分组的检测,数据发送/接收的处理,和握手分组的处理。整个传输的格式由硬件完成,其中包括 CRC 的生成和校验。

这个是设置页面

  1. Speed:Full Speed 12MBit/s(固定为全速)
  2. Low Power:默认 Disabled(在任何不需要使用usb模块的时候,通过写控制寄存器总可以使USB模块置于低功耗模式(low power mode ,suspend模式)。在这种模式下,不产生任何静态电流消耗,同时USB时钟也会减慢或停止。通过对USB线上数据传输的检测,可以在低功耗模式下唤醒USB模块。也可以将一特定的中断输入源直接连接到唤醒引脚上,以使系统能立即恢复正常的时钟系统,并支持直接启动或停止时钟系统。)
USB 的 DP 引脚必须上拉 1.5K 欧的电阻,电脑才能检测到 USB,否则检测不到。

如果USB端口出现感叹号设备无法启动的问题,可适当将堆改大,如0x400。

就是这么多了。

IIC支持热拔插吗?(附有详细CW32 IIC协议解读)

SPI协议,这篇就够了!

梦源逻辑分析仪分析IIC,SPI协议

这样看就低速协议全面了。

https://blog.csdn.net/qq_36347513/article/details/127404464
https://blog.csdn.net/qq_36347513/article/details/127404464
https://dreamsourcelab.cn/logic-analyzer/uart/
https://zh.wikipedia.org/wiki/%E4%B8%B2%E8%A1%8C%E7%AB%AF%E5%8F%A3
https://www.silabs.com/documents/public/data-sheets/CP2102-9.pdf

评论
  • 这篇内容主要讨论三个基本问题,硅电容是什么,为什么要使用硅电容,如何正确使用硅电容?1.  硅电容是什么首先我们需要了解电容是什么?物理学上电容的概念指的是给定电位差下自由电荷的储藏量,记为C,单位是F,指的是容纳电荷的能力,C=εS/d=ε0εrS/4πkd(真空)=Q/U。百度百科上电容器的概念指的是两个相互靠近的导体,中间夹一层不导电的绝缘介质。通过观察电容本身的定义公式中可以看到,在各个变量中比较能够改变的就是εr,S和d,也就是介质的介电常数,金属板有效相对面积以及距离。当前
    知白 2025-01-06 12:04 198浏览
  • 大模型的赋能是指利用大型机器学习模型(如深度学习模型)来增强或改进各种应用和服务。这种技术在许多领域都显示出了巨大的潜力,包括但不限于以下几个方面: 1. 企业服务:大模型可以用于构建智能客服系统、知识库问答系统等,提升企业的服务质量和运营效率。 2. 教育服务:在教育领域,大模型被应用于个性化学习、智能辅导、作业批改等,帮助教师减轻工作负担,提高教学质量。 3. 工业智能化:大模型有助于解决工业领域的复杂性和不确定性问题,尽管在认知能力方面尚未完全具备专家级的复杂决策能力。 4. 消费
    丙丁先生 2025-01-07 09:25 103浏览
  • 本文介绍编译Android13 ROOT权限固件的方法,触觉智能RK3562开发板演示,搭载4核A53处理器,主频高达2.0GHz;内置独立1Tops算力NPU,可应用于物联网网关、平板电脑、智能家居、教育电子、工业显示与控制等行业。关闭selinux修改此文件("+"号为修改内容)device/rockchip/common/BoardConfig.mkBOARD_BOOT_HEADER_VERSION ?= 2BOARD_MKBOOTIMG_ARGS :=BOARD_PREBUILT_DTB
    Industio_触觉智能 2025-01-08 00:06 63浏览
  • 村田是目前全球量产硅电容的领先企业,其在2016年收购了法国IPDiA头部硅电容器公司,并于2023年6月宣布投资约100亿日元将硅电容产能提升两倍。以下内容主要来自村田官网信息整理,村田高密度硅电容器采用半导体MOS工艺开发,并使用3D结构来大幅增加电极表面,因此在给定的占位面积内增加了静电容量。村田的硅技术以嵌入非结晶基板的单片结构为基础(单层MIM和多层MIM—MIM是指金属 / 绝缘体/ 金属) 村田硅电容采用先进3D拓扑结构在100um内,使开发的有效静电容量面积相当于80个
    知白 2025-01-07 15:02 122浏览
  • 每日可见的315MHz和433MHz遥控模块,你能分清楚吗?众所周知,一套遥控设备主要由发射部分和接收部分组成,发射器可以将控制者的控制按键经过编码,调制到射频信号上面,然后经天线发射出无线信号。而接收器是将天线接收到的无线信号进行解码,从而得到与控制按键相对应的信号,然后再去控制相应的设备工作。当前,常见的遥控设备主要分为红外遥控与无线电遥控两大类,其主要区别为所采用的载波频率及其应用场景不一致。红外遥控设备所采用的射频信号频率一般为38kHz,通常应用在电视、投影仪等设备中;而无线电遥控设备
    华普微HOPERF 2025-01-06 15:29 147浏览
  • 根据Global Info Research项目团队最新调研,预计2030年全球封闭式电机产值达到1425百万美元,2024-2030年期间年复合增长率CAGR为3.4%。 封闭式电机是一种电动机,其外壳设计为密闭结构,通常用于要求较高的防护等级的应用场合。封闭式电机可以有效防止外部灰尘、水分和其他污染物进入内部,从而保护电机的内部组件,延长其使用寿命。 环洋市场咨询机构出版的调研分析报告【全球封闭式电机行业总体规模、主要厂商及IPO上市调研报告,2025-2031】研究全球封闭式电机总体规
    GIRtina 2025-01-06 11:10 115浏览
  • 本文介绍Linux系统更换开机logo方法教程,通用RK3566、RK3568、RK3588、RK3576等开发板,触觉智能RK3562开发板演示,搭载4核A53处理器,主频高达2.0GHz;内置独立1Tops算力NPU,可应用于物联网网关、平板电脑、智能家居、教育电子、工业显示与控制等行业。制作图片开机logo图片制作注意事项(1)图片必须为bmp格式;(2)图片大小不能大于4MB;(3)BMP位深最大是32,建议设置为8;(4)图片名称为logo.bmp和logo_kernel.bmp;开机
    Industio_触觉智能 2025-01-06 10:43 87浏览
  • 在智能家居领域中,Wi-Fi、蓝牙、Zigbee、Thread与Z-Wave等无线通信协议是构建短距物联局域网的关键手段,它们常在实际应用中交叉运用,以满足智能家居生态系统多样化的功能需求。然而,这些协议之间并未遵循统一的互通标准,缺乏直接的互操作性,在进行组网时需要引入额外的网关作为“翻译桥梁”,极大地增加了系统的复杂性。 同时,Apple HomeKit、SamSung SmartThings、Amazon Alexa、Google Home等主流智能家居平台为了提升市占率与消费者
    华普微HOPERF 2025-01-06 17:23 182浏览
  • 彼得·德鲁克被誉为“现代管理学之父”,他的管理思想影响了无数企业和管理者。然而,关于他的书籍分类,一种流行的说法令人感到困惑:德鲁克一生写了39本书,其中15本是关于管理的,而其中“专门写工商企业或为企业管理者写的”只有两本——《为成果而管理》和《创新与企业家精神》。这样的表述广为流传,但深入探讨后却发现并不完全准确。让我们一起重新审视这一说法,解析其中的矛盾与根源,进而重新认识德鲁克的管理思想及其著作的真正价值。从《创新与企业家精神》看德鲁克的视角《创新与企业家精神》通常被认为是一本专为企业管
    优思学院 2025-01-06 12:03 142浏览
  • By Toradex 秦海1). 简介嵌入式平台设备基于Yocto Linux 在开发后期量产前期,为了安全以及提高启动速度等考虑,希望将 ARM 处理器平台的 Debug Console 输出关闭,本文就基于 NXP i.MX8MP ARM 处理器平台来演示相关流程。 本文所示例的平台来自于 Toradex Verdin i.MX8MP 嵌入式平台。  2. 准备a). Verdin i.MX8MP ARM核心版配合Dahlia载板并
    hai.qin_651820742 2025-01-07 14:52 78浏览
  • 根据环洋市场咨询(Global Info Research)项目团队最新调研,预计2030年全球无人机锂电池产值达到2457百万美元,2024-2030年期间年复合增长率CAGR为9.6%。 无人机锂电池是无人机动力系统中存储并释放能量的部分。无人机使用的动力电池,大多数是锂聚合物电池,相较其他电池,锂聚合物电池具有较高的能量密度,较长寿命,同时也具有良好的放电特性和安全性。 全球无人机锂电池核心厂商有宁德新能源科技、欣旺达、鹏辉能源、深圳格瑞普和EaglePicher等,前五大厂商占有全球
    GIRtina 2025-01-07 11:02 100浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦