硬件开发(8)—IMX6ULL裸机—UART通信

1.串口通信相关基础概念

1.单工通信(Simplex Communication)
  • 核心定义:通信双方的角色完全固定,一方仅作为 “发送端”(只能向外发送数据),另一方仅作为 “接收端”(只能接收数据),数据只能沿单一方向传输,无法反向交互。

  • 硬件特点:仅需 1 根数据线(负责单向数据传输)+ 1 根接地线(提供电平参考),硬件结构最简。

  • 工作过程:发送端持续或按需输出数据,接收端始终处于 “监听” 状态,无需反馈任何信息(也无法反馈)

  • 典型例子

    • 传统广播(电台向听众发送音频信号,听众无法向电台回传信息)

    • 红外遥控器(遥控器向电视发送控制指令,电视不向遥控器反馈)

2.半双工通信(Half-Duplex Communication)
  • 核心定义:通信双方均可作为发送端和接收端(角色可切换),但同一时间只能有一个方向传输数据(即 “发送时不能接收,接收时不能发送”),需通过协议或硬件机制控制角色切换。

  • 硬件特点:通常仅需 1 根数据线(分时复用,既传发送数据也传接收数据)+ 1 根接地线

  • 工作过程

    1. 初始状态下,双方默认处于 “接收模式”,监听数据线;

    2. 当 A 端需要发送数据时,通过控制信号切换为 “发送模式”,向 B 端传输数据,此时 B 端保持 “接收模式”;

    3. A 端发送完成后,切换回 “接收模式”;若 B 端需要回传数据,再切换为 “发送模式”,A 端转为 “接收模式”。

  • 典型例子

    • 对讲机(按下 “说话键” 时为发送端,松开后为接收端,双方不能同时说话)

3.全双工通信(Full-Duplex Communication)
  • 核心定义:通信双方可同时进行双向数据传输(即 A 端发送数据的同时,B 端也能向 A 端回传数据),无需切换角色,实现 “双向同步交互”

  • 硬件特点:至少需要 2 根数据线(1 根专门用于 A→B 发送,1 根专门用于 B→A 接收)+ 1 根接地线;数据线独立工作,互不干扰

  • 工作过程:双方的发送端和接收端始终处于激活状态,发送数据和接收数据在不同的数据线中并行进行,无需等待对方完成发送

  • 典型例子

    • 打电话(双方可同时说话和倾听,声音信号在两条独立的线路中传输)

4.串行通信与并行通信(按数据传输方式分类)

两种模式的核心差异在于一次传输的比特数硬件资源占用,具体如下:

1.串行通信(Serial Communication)
  • 核心定义:将待传输的数据(通常为字节,8 位)拆分为单个比特,按 “先低后高” 或 “先高后低” 的固定次序,在一根或两根数据线上逐位传输(全双工用两根,半双工 / 单工用一根)

  • 硬件特点

    • 数据线数量少(1~2 根),占用芯片引脚和 PCB 布线资源少,硬件成本低

  • 工作过程(以先传低位为例)

    1. 发送端将字节 拆分为 8 个比特

    2. 按次序在数据线上逐位发送

    3. 接收端按相同次序逐位接收

  • 优势与局限

    • 优势:资源占用少、结构简单、抗干扰能力较强、适合长距离传输

    • 局限:传输速率相对较低(一次仅传 1 位),不适合超高速场景(如 GB 级数据传输)

  • 典型例子:TTL 串口、RS232、RS485、UART、SPI(同步串行)、IIC(同步串行)

2.并行通信(Parallel Communication)
  • 核心定义:将待传输的数据(通常为字节、半字或字)的多个比特同时传输,每个比特对应一根独立的数据线,配合一根 “时钟线”(同步)或 “握手信号线”(异步)确保数据同步。

  • 硬件特点

    • 数据线数量多(如 8 位并行需 8 根数据线,32 位并行需 32 根数据线),占用大量芯片引脚和 PCB 布线资源,硬件成本高;

    • 要求所有数据线的 “传输延迟一致”(否则会出现 “码间串扰”),对线路设计要求严格(如 PCB 需等长布线)。

  • 工作过程

    1. 发送端将字节 8 个比特(bit0~bit7)分别加载到 8 根数据线上

    2. 通知接收端 “数据已准备好”

    3. 接收端同时读取 8 根数据线上的比特,直接获得完整字节

  • 优势与局限

    • 优势:传输速率高(一次传 n 位,速率是同时钟下串行的 n 倍),适合短距离高速传输

    • 局限:资源占用多、成本高、抗干扰能力弱、传输距离短

5.异步通信与同步通信(按数据同步方式分类)

两种模式的核心差异在于是否依赖专用时钟线以及 “同步机制”,具体如下:

1.异步通信(Asynchronous Communication)
  • 定义:收发双方无专用时钟线,通过 “约定波特率” 和 “数据帧结构” 实现同步,即双方预先约定好 “每比特的传输时间”(由波特率决定),并通过帧中的 “起始位” 和 “停止位” 标记数据的开始和结束。

  • 关键前提

    • 收发双方的波特率必须一致;

    • 数据帧结构固定(起始位、数据位、校验位、停止位的位数需预先约定)。

  • 数据帧结构(以 “8N1” 为例,即 8 位数据、无校验、1 位停止位)

    1. 空闲状态:数据线保持高电平(表示无数据传输);

    2. 起始位:发送端输出 1 个低电平(打破空闲状态,通知接收端 “数据即将到来”);

    3. 数据位:按 “先低后高” 次序传输 8 个比特;

    4. 校验位(可选):无校验时省略,有校验时传输 1 个比特(奇校验确保 “数据位 + 校验位” 中 1 的总数为奇数,偶校验为偶数);

    5. 停止位:输出 1 个高电平,标记一次数据结束,同时恢复空闲状态,为下一次做准备。

  • 工作过程

    1. 接收端持续监听数据线,当检测到 “高电平→低电平” 的跳变(起始位)时,启动内部定时器;

    2. 定时器按波特率计算的 “每比特时间的中间时刻” 采样数据位;

    3. 采样完所有数据位(和校验位)后,检测到停止位(高电平),确认一次数据接收完成,重组数据。

2.同步通信(Synchronous Communication)
  • 核心定义:收发双方通过专用时钟线 实现同步,发送端控制时钟线的电平变化(如上升沿或下降沿),每一个时钟周期传输 1 个比特数据,接收端严格按照时钟信号的节奏采样数据,无需起始位和停止位。

  • 关键前提

    • 时钟线由 “主设备”(通常是 CPU 或控制器)控制,“从设备”(如传感器、存储芯片)被动跟随时钟;

    • 数据传输特点

      • 无额外的起始 / 停止位,数据连续传输(一帧可包含多个字节),传输效率高;

串口通信属于异步串行通信

2.UART通信

:设置比特率相关参数

要设置的波特率位115200,寄存器频率为80MHz,经计算,带入公式的比值为43.402

比值一定,故可以设置UBIR+1为1000,JBIR = 43.402 *1000 -1 =43401

最终得UBIR=999,UBMR=43401

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值