UASRT

1. 串口是什么?

串行接口简称串口,也称串行通信接口(通常指COM口),是采用串行通信方式的扩展接口。

2. 通信:串行通信、并行通信

数字信号是8位二进制数,可以用信号线传输一种方案是使用一条数据线按照次序一个位一个位的传送,每传送完8位为一个字节,叫串行通信。另一种方法是使用8条数据线分别传送8位,一次传送一个字节,叫并行通信

串行通信和并行通信的区别

并行通信传输中有多个数据位,同时在两个设备之间传输。发送设备将这些数据位通过对应的数据线传送给接收设备,还可附加一位数据校验位。接收设备可同时接收到这些数据,不需要做任何变换就可直接使用。并行方式主要用于近距离通信。计算机内的总线结构就是并行通信的例子。这种方法的优点是传输速度快,处理简单。 

 UASRT_第1张图片

串行数据传输时,数据是一位一位地在通信线上传输的,先由具有几位总线的计算机内的发送设备,将几位并行数据经并--串转换硬件转换成串行方式,再逐位经传输线到达接收站的设备中,并在接收端将数据从串行方式重新转换成并行方式,以供接收方使用。串行数据传输的速度要比并行传输慢得多,但对于覆盖面极其广阔的公用电话系统来说具有更大的现实意义。

 UASRT_第2张图片

3. 串行通信的三种方式

 UASRT_第3张图片

4. 串口通信的两种最基本的方式:同步串行通信方式和异步串行通信方式。

同步串行是指SPISerial Peripheral interface)的缩写,顾名思义就是串行外围设备接口。

所谓同步通信,是指数据传送是以数据块(一组字符)为单位,字符与字符之间、字符内部的位与位之间都同步,因为一次传输的数据块中包含的数据较多,所以接收时钟与发送进钟严格同步,通常要有同步时钟。

异步串行是指UARTUniversal Asynchronous Receiver/Transmitter),通用异步接收/发送。UART是一个并行输入成为串行输出的芯片,通常集成在主板上。

所谓异步通信,是指数据传送以字符为单位,字符与字符间的传送是完全异步的,位与位之间的传送基本上是同步的。

5. 学习目的

掌握串行异步通信方式、上位机控制下位机

6. 通信

6.1 通信的概念

不同芯片/设备之间数据交换

6.2 通信分类

1) 并行通信

① 概念:将数据字节各位用多条数据线同时传送

② 特点:传输速度快,接口多,适合短距离传送

2) 串行通信

① 概念:将数据字节在一条数据线上一位一位的传输

② 特点:所用接口少,传输距离远,但传输数据相对较慢

③ 串行通信方式

a. 同步通信:发送方的时钟对接收方的时钟直接控制,使双方达到完全同步

b. 异步通信:发送和接收设备使用各自的时钟控制数据的发送和接收过程

④ 串行通信设备

a. 单工通信:设备只能作为接收器或者发送器.  ---收音机  

b. 半双工通信: 同一时刻,设备只能作为发送器或者接收器  ---对讲机

c. 全双工通信:同一时刻,设备既能作为发送器也能作为接收器 ---手机

7. UART通信

7.1 特点:串行异步全双工通信

7.2 通信协议

① 协议概念

 相互通信的设备之间进行数据传输的一种规定:规定了物理层和数据链路层

② 物理层链接

 UASRT_第4张图片

③ 数据链路层(R232协议)

RS-232、RS-422与RS-485标准只对接口的电气特性做出规定,而不涉及接插件、电缆或协议,在此基础上用户可以建立自己的高层通信协议

RS-232采取不平衡传输方式,即所谓单端通讯。缺点:通信距离短、速率低

RS-422定义了一种平衡通信接口,将传输速率提高到10Mb/s,传输距离延长到4000英尺(速率低于100kb/s时),并允许在一条平衡总线上连接最多10个接收器。RS-422是一种单机发送、多机接收的单向、平衡传输规范

RS-485标准,增加了多点、双向通信能力,即允许多个发送器连接到同一条总线上,同时增加了发送器的驱动能力和冲突保护特性,扩展了总线共模范围

a. 数据位传输过程的规定

b. 数据帧格式

 UASRT_第5张图片

8. STM32的USART  

发送数据--TX管脚

发送移位寄存器:按位发送数据,一位一位发送--波特率

从发送数据寄存器得到数据---一帧数据

数据总线通过写操作,往发送数据寄存器发送数据

关键点:数据是一帧一帧的发送,如何去判断上一帧数据发送完成?

判断TDR或者是发送移位寄存器中是否还有数据。。。 

 

接收数据--RX引脚

接收移位寄存器:按位接收

接收数据寄存器:要判断接收数据寄存器里面是否接收到数据;

数据总线通过读操作,读取接收数据寄存器的数据;

关键点:如何判断是否要接收数据?

判断接收数据寄存器中是否有数据...没有数据,说明没有接收到,或者是上一次数据已经被读出;   

你可能感兴趣的:(Cortex-M4M3开发板)