协议类基础——UART

在人与人对话中应满足以下条件

  • 1、你说的语言对方能听懂
  • 2、你的语速对方能接受

相应的,在多机通信中,也应满足一定条件

  • 1、双方约定的通信协议相同
  • 2、双方满足时序要求

类比如上。
下面开始举例

校验位

以前的串口传输不太可靠,就会用一个位来作为校验位
校验位有奇校验、偶校验。意思是加上校验位,1的个数必须是奇数、偶数

假设选择奇校验,传输的数据有偶数个1。那么奇校验位上的数据就是1,这样1的个数就是奇数个了。
结社选择偶校验,传输的个数已经是偶数个1。那么偶校验位上的数据就是0,这样1的个数仍然是偶数个。

波特率

一秒钟能传输多少位的数据

以上为基础知识
——————————————————————————————————

UART

Universal Asynchronous Receiver/Transmitter
通用的异步收发传输

串口通信
在这里插入图片描述

为什么需要电平转换芯片

在开发板到电平转换芯片之间

  • 用0V表示0——低电平
  • 用3.3V表示1——高电平

在电平转换芯片到PC之间
距离可能很长,为了使信号具备强的抗干扰性,我们会让它的电压比较高,比如

  • 用-9V ~ -12V表示0 ——低电平
  • 用9V ~ 12V表示1 ——高电平

具体这个数字是多少,我们不去关心。只要知道它中间的原理是这样即可。

UART如何传数据

假设我们要传一个数据——A
A的10进制是0x41
2进制是0x0100,0001
假设双方约定好,传输的数据都是8位
在这里插入图片描述

UART传输步骤

1、在最开始没有传输数据时,一直保持高电平。如果开发板如2440想发送数据时,就让RxD0变为低电平——0,并保持一个时间单位T。

  • 2、PC感觉到RxD0从1变为0,就知道2440即将发送数据。
    这个即将,就是一个时间单位T后。这个T是通过事先约定的波特率来决定,T=1s/波特率。这个约定只能提前约定好,没办法同时约定,就叫做异步。
  • 3、起始位过了一个时间单位T后,开始传输数据位(这也是提前约定好的,比如这里是8位)。然后每过一个时间单位T传输一个数据位。检测发送的数据是在一个时间单位T的中间进行检测。
  • 4、发送数据位结束后,返回原来的状态——高电平。并保持至少一个时间单位T。
    保持的时间也是可以在发送之前约定好,有几个停止位。

在传输之前,必须约定好。如一个停止位,8个数据位。
在这里插入图片描述
使用串口工具的时候就能看到设置。
校验位是否使用可以进行选择,一般不需要。

串口调试软件可以很简单的设置这些,但开发板2440如何设置呢?
这时候就需要来设置开发板中的串口控制器

串口控制器

开发板如2440里面都会有一个串口控制器
想象一下,如果每传一个位的数据,都手动改变电平。这会非常麻烦。
这就需要使用串口控制器。
如果使用者想要发送数据,那么只需要将需要发送的数据如A,丢给这个串口控制器就可以了。它就会自动产生起始位,然后根据数据来产生电平变化,并且最后产生停止位。

2440串口控制器的设置

大概看一下2440中的串口控制器有哪些设置项。

打开芯片手册,点开UART一栏
在这里插入图片描述
它有三个串口,对应三个寄存器
在这里插入图片描述

校验位

在这里插入图片描述
Odd parity——奇校验
Even parity——偶校验
强制将校验位设置为1
强制将校验位设置为0

停止位

在这里插入图片描述
可以设置停止位有多少个。
至少为一个。
从芯片手册中得知,2440的停止位要么一个要么两个。

数据位

在这里插入图片描述
串口上的数据可以是5-8的任意位数。
一般为了简单,都是设置成8位。

TX/RX状态相关

在这里插入图片描述
有关于数据是否发送完毕等状态

UART发送相关

在这里插入图片描述
如果想发送数据的话,如A。
只要把0x41的二进制写入第一个寄存器的地址里即可

波特率

在这里插入图片描述
波特率是通过公式计算出来的。
根据串口工作与什么时钟。
计算好后写入相应寄存器即可。
——————————————————————————
串口控制器就会更具使用者以上的设置将信息发送到目标机 。

硬件的接线

只要注意MCU1和MCU2的TX和RX交叉详解即可。
即TX1接上RX2;TX2接上RX1

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Spark!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值