通信协议之串口通信

3.1 介绍

串口通信在早期是计算机与外界通信的主要手段,那时候的计算机基本上都标配有串口以实现和外部通信,而现如今PC上基本上很少见到了,如果在某些特定领域需要使用的话,通常会买USB转串口设备来扩展使用。
因为串行通信比较简单,它在嵌入式领域使用得非常广泛,如我们经常使用的通信模块 蓝牙、zigbee、LoRa、GPRS/3G/4G/5G/NB-oT、GPS、串口WiFi、等等几乎全部都是使用串口通信,这也就导致熟练掌握串口通信是嵌入式开发人员的必备技能之一。
串口通信早期就定义了一套标准的串口规约,DB9(9个引脚)接口就是标准接口,此外还有不常见的DB25(25个引脚)。
在这里插入图片描述

DB9接口中有9根通信线,其中3根线(GND、TXD、RXD)很重要必不可少,剩余6根都是和流控有关的,现代我们使用串口都是用来做调试一般都禁用流控,所以这6根很少使用。
在这里插入图片描述

1 、DCD( Data Carrier Detect):载波检测
2 、RXD(Receive(rx) Data):串口数据输入
3 、TXD(Transmit(tx) Data):串口数据输出
4 、DTR( Data Terminal Ready ):数据终端就绪
5 、GND(Ground):信号底线。
6 、DSR(data set ready):数据发送就绪
7 、RTS(Request To Send):发送数据请求
8 、CTS(Clear to send):发送清除
9 、RI ( Ring Indicator):铃声提醒

3.2 基本原理

串口通信连线

任何通信都要有信息传输载体,或者是有线的或者是无线的。串口通信是通过串口线进行有线通信,在通信时最少需要两根线(GND和信号线)既可以实现单工通信,GPS模块就是典型的串口单工通信实例。此外大部分的串口通信都是使用3根线(TXD、RXD、GND)来实现全双工通信。

通信时序

串口通信时,收发是一个周期一个周期进行的,每个周期传输n个二进制位。这一个周期就叫做一个通信单元,一个通信单元由:起始位+数据位+奇偶校验位+停止位组成的。
在这里插入图片描述

波特率:

在电子通信领域,波特(Baud)即调制速率,指的是有效数据讯号调制载波的速率,即单位时间内载波调制状态变化的次数。
串口通信是一种异步通信方式,收发双方并没有同步时钟信号来规约一个bit 的数据发送电平维持多长时间,这样只能靠收发双方的速率来同步收发数据,这个速率叫做波特率(BaudRate),其单位为bps(bit persecond)。
串口通信常用速率为115200(3G/4G/调试串口等)、9600(NB-oT/GPS等)、4800等。收发双方的速率必须保持一致,否则会出现乱码或完全接收不到的现象。

起始位:

它表示发送方要开始发送一个通信单元,起始位的定义是串口通信标准事先指定的,是由通信线上的电平变化来反映的。对于串口通信而言总线没有数据传输空闲时维持高电平,一旦产生一个下降沿变成低电平则表示起始信号。

数据位:

它一个通信单元中发送的有效信息位,是本次通信真正要发送的有效数据,串口通信一次发送多少位有效数据是可以设定的(可选的有6、7、8、9,一般都是选择8位数据位,因为一般通过串口发送的数据都是以字节为单位的ASCI码编码,而 ASCl码中一个字符刚好编码为8位)。

校验位:

它是用来校验数据位,以防止数据位出错的。这里有两种校验方式,即奇校验和偶校验。其中:
奇校验保证传输过程中1的个数为奇数,如8位数据传输中1的个数为偶数,则校验位为1;
偶校验保证传输过程中1的个数为偶数,如8位数据传输中1的个数为偶数,则校验位为0;

停止位:

它是发送方用来表示本通信单元结束标志的,停止位的定义是串口通信标准事先指定的,是由通信线上的电平变化来反映的。常见的有1位停止位、1.5位停止位、2位停止位等,一般使用的是1位停止位。

总结:

串口通信是异步通信,所以通信双方必须事先约定好通信参数,这些通信参数包括:波特率、数据位、校验位、停止位以及硬件流控,这些参数中的任何一个设置错误,都会导致通信失败。譬如波特率调错了,发送方发送没问题,接收方也能接收,但是接收到全是乱码。

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值