串口通讯详解

这篇文章包含了串口通讯里面的大部分概念问题

目录

串口通讯线

同步串行(ISP)

 异步串行(UART)

 波特率

数据帧


 串口通讯线

串口通信线最少需要2根(GND和信号线),可以实现单工通信,也可以使用3根通信线(Tx、Rx、GND)来实现全双工。

通过串口不管发数字、还是文本还是命令还是什么,都要先对发送内容进行编码,编码成二进制再进行逐个位的发送。
串口发送的一般都是字符,一般都是ASCII码编码后的字符,所以一般设置数据位都是8,方便刚好一帧发送1个字符。

同步串行(ISP)

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

同步串行是指ISP(interface Serial Peripheral )的缩写,顾名思义就是串行外围设备接口。ISP总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息,TRM450是ISP接口。

同步通信时,通信双方共用一个时钟,这是同步通信区分于异步通信的最显著的特点。在异步通信中,每个字符要用起始位和停止位作为字符开始和结束的标志,以致占用了时间。所以在数据块传送时,为提高通信速度,常去掉这些标志,而采用同步通信。同步通信中,数据开始传送前用同步字符来指示(常约定1~2个),并由时钟来实现发送端和接收端的同步,即检测到规定的同步字符后,下面就连续按顺序传送数据,直到一块数据传送完毕。同步传送时,字符之间没有间隙,也不要起始位和停止位,仅在数据开始时用同步字符SYNC来指示,其数据格式见图。

串口通讯详解_第1张图片

 异步串行(UART)

异步串行是指UART(Universal Asynchronous Receiver/Transmitter),通用异步接收/发送。UART是一个并行输入成为串行输出的芯片,通常集成在主板上。UART包含TTL电平的串口和RS232电平的串口。 TTL电平是3.3V的,而RS232是负逻辑电平,它定义+5到+25V为低电平,而-3到-25V为高电平,MDS2710、MDS SD4、EL805等是RS232接口,EL806有TTL接口。

异步通信采用固定的通信格式,数据以相同的帧格式传送。每一帧由起始位、数据位、奇偶校验位和停止位组成。起始位表示发送方要开始发送一个通信单元;数据位是一个通信单元中发送的有效信息位;奇偶校验位是用来校验数据位,以防止数据位出错的;停止位是发送方用来表示本通信单元结束标志的。

通过异步收发器(UART)用来传输串行数据。UART之间以全双工方式传输数据,最精简的连接方法只有三条连线:TXD用于发送数据,RXD用于接收数据,Gnd给双方提供参考电平

传输数据之前,UART之间要约定数据的传输速率(即每位所占时间,其倒数成为波特率)、数据的帧格式(即有多少个数据位、是否使用校验位、是奇校验还是偶校验、有几位停止位)。通讯双方的数据包格式要约定一致才能正常收发数据。

 UART使用标准的CMOS逻辑电平(0—5V、0—3.3V、0—2.5V或0—1.8V四种)来表示数据,高电平为1,低电平为0。为了增强干扰能力,提到传输长度,通常将CMOS逻辑电平转换为RS-232逻辑电平(3—15V以0表示,-3 — -15V以1表示)。

 波特率

波特率(Baud rate)是指数据传送时,每秒传送数据二进制代码的位数,它的单位是位/秒(bps)。1波特就是一位每秒。

假设数据传送速率是每秒120字符,而每个字符格式包括10个代码位(1个起始位、一个终止位、8个数据位),这时传送的波特率为:10× 120 = 1200b/s

位传送时间宽度Td=波特率的倒数,则上式中的Td=1/1200s=0.883ms。

在异步串行通信中,接收设备和发送设备保持相同的传送波特率,并以每个字符数据的起始位与发送设备保持同步。起始位。数据位。奇偶位和停止位的约定,在同一次传送过程中必须保持一致,这样才能成功的传送数据。

数据帧

数据帧,就是数据链路层的协议数据单元,它包括三部分:帧头,数据部分,帧尾

其中,帧头和帧尾包含一些必要的控制信息,比如同步信息、地址信息、差错控制信息等;

数据部分则包含网络层传下来的数据

数据帧的接收与发送都是按照字节进行,一帧数据里面的数据部分可以包含多个数据,每一个数据都是用UART通信格式进行接收发送的数据(有开始位,数据位,校验位,停止位)

你可能感兴趣的