串口通信(一)-通信理论及相关参数

 本文为博主 日月同辉,与我共生,csdn原创首发。希望看完后能对你有所帮助,不足之处请指正!一起交流学习,共同进步!

> 发布人:@日月同辉,与我共生_单片机-CSDN博客

> 欢迎你为独创博主日月同辉,与我共生点赞❤❤❤+关注👍+收藏🌹+评论☺。

系列专栏:CSDN-单片机学习系列🎁

> 我的格言是:“尽最大努力,做最好的自己!💪

版权声明:本文为CSDN博主「日月同辉,与我共生」的原创文章,CSDN独一份。

目录

一、串口通信概念及意义

1.1串口通信概念

1.2串口通信意义

二、串行与并行

2.1串行通信

2.2并行通信

三、同步与异步

3.1同步通信

3.2异步通信

四、相关参数

五、串口通信

一、串口通信概念及意义

1.1串口通信概念

串口通信是一个广泛使用的数字通信协议,它用于在两个设备之间通过专门设计的线路(称为串行端口)发送和接收数据。一般来说,设备1发送端TXD与设备2接收端RXD相连接,设备1接收端RXD与设备2发送端TXD相连接。串口通信一般采用串行通信+异步通信

f8521e243e904647b16e9169b42b2218.png

1.2串口通信意义

串口通信使得计算机与外部设备进行可靠地点对点连接,例如打印机等。它允许将信息从计算机中发送到其他设备,或者从其他设备中接收信息并传递回计算机。串口通信在其他领域也有很大的应用,在很多自动化设备中,串口通信被用于控制和监测系统的状态、记录生产数据以及与其他设备进行通讯。

二、串行与并行

2.1串行通信

一条线路发送和接受数据,数据的每个字节逐位传输,每一个字节开始要有起始位置,结束有停止位置。这种方式传输稳定,但传输速度较慢。

2.2并行通信

多条线路,每一条线路每次发送一个比特位,多条线路同时进行传输,由于能同时接收和发送多个字节,所以并行通信传输速度快,但线路多,成本较高。

三、同步与异步

3.1同步通信

在发送方和接收方约定的时间下,保持发送和接收始终具有完全一致的定时关系,这就要求时钟信号的频率和相位从此至终保持同步(双方时钟相同)。我们把多个字符称之为数据帧,由于传输同步,因此无需在数据帧前后加起始位和停止位。

同步通信要求时钟精度要高,不然数据不同步,传输的数据会出错。此外,同步通信成本较高,适用于数据传输精度高的地方。

比如说,你打电话给妹子,你能在同一时间发送你想说的和接收到妹子说的话,这种就是同步通信。

同步通信优点:传输效率高,传输误差小。

008ca9da14bb496192cef519c90006af.gif

3.2异步通信

无需时钟,数据帧与数据帧间隔不固定,数据帧的每一个位前要加起始位,后要加停止位,接受一方做好接受数据帧的准备,当接受到每一位后,给予发送方一个"通知",让它发送下一位。起始位作用是让接收端知道从哪个位置开始接收,停止位作用是让接收端知道从哪个位置停止接收。加入起始位和停止位,以便使接收端能够正确地接收每个字符。

比如说,你早上发微信(发送信息)给多个妹子,但你不能同一时间得到妹子们的回复,晚上你才接受到妹子们的回复,这种就是异步通信。

异步通信优点:通信设备简单,成本低。

60aacb60e4214a4e837af33bc9de859e.png

四、相关参数

(1)比特:一个二进制。10101111就是8个比特,比特用bit表示。

(2)字节:8个二进制,用byte表示,即1byte=8bit。

(3)波特率:单位时间内传输的数据,定位是位每秒,即bit/s。波特率用bps表示,串口通信波特率常用9600bit/s、11520bit/s等。发送方和接收。

(4)校验位:校验位就是传输数据是否正确的依据,校验方法有多种,主要有奇偶校验、和校验、异或校验、CRC校验等。

(5)停止位:通知接收端完成本次数据的接收,一般放在数据的末尾。

五、串口通信

5.1内部结构图

e21ca4fa42b74413ab56e3e2bbccd243.png

 发送端引脚是P3^0,接收端引脚是P3^1。

串行口内部有一个发送寄存器和一个接收寄存器,现在设有个数据state,则SBUF=state;这语句是发送数据state,state=SBUF;这语句是接收数据state。

5.2寄存器SCON

2a5031fb4432467f8c8f96ad72ffacd8.png

 寄存器SCON共8位(8位二进制)。

SM0、SM1决定串行口工作方式。具体情况如上图所示。

SM2:多机通信。=1,开启多机通信;=0,不使用多机通信。

REN:允许接收控制位。=1时,允许接收数据;=0时,不允许接收数据。

TB8:发送数据的第9位

RB8:接收数据的第9位。

TI:发送中断标志位。=0时,准备发送;=1时,发送完成。

RI:接收中断标志位。=0时,准备接收;=1,接收完成。

(1)发送
条件:TI=0
结果:发送完毕,TI置“1”。
(2)接收
条件:RI=0,REN置“1”。
结果:8位数据接收数据缓冲器SBUF中,同时,RI置“1”,向CPU申请中断。

5.3寄存器SCON
57fa718efdd64ccd91a8e11bd04416ab.png

 SMOD=1,波特率加一倍。

SMOD=0,波特率保持不变。

5.4初始化步骤

(1)工作方式M0、M1

(2)确定是否多机通信(SM2)

(3)接收端,BEN=1。

(4)设置波特率,计算初值X。若采用方式2、3,应该将发送数据的第9位写入TB8。

5.5初值计算

我们一般将串口通信设置为方式1,因为波特率可变。方式1初值计算:

571faebae8a048a7a6d173bbaf9dc0e9.png

那我们为什么晶振频率通常设置成11.0592Mhz,波特率为9600bit/s(SMOD=0)呢?

我们代入公式:

3644f12b76e24c28a7f939644f80d45d.png

 结果初值X=256-3=253,是个整数,方便化成16进制(0xFD),不懂进制转换的可以看我的进制转换相关文章。

初始化函数:

void UartInit()		//4800bps@11.0592MHz
{
	SCON = 0x50;		//8位数据,可变波特率
	TMOD &= 0x0F;		//设置定时器模式
	TMOD |= 0x20;		//设置定时器模式
	TL1 = 0xFA;			//设置定时初始值
	TH1 = 0xFA;			//设置定时重载值
	ET1 = 0;			//禁止定时器中断
	TR1 = 1;			//定时器1开始计时
}

下一文将着重对串口通信软件编码进行解析,亲爱的读者敬请期待,下一文更精彩!!!

一日不读书,胸臆无佳想。我叫不白吃,喜欢我的,可以支持我,博主名叫@日月同辉,与我共生

  • 23
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
8251串行接口是一种常用的串行通信接口芯片,它可以实现计算机与其他设备之间的数据传输,如串口通信、调制解调器通信等。在应用实验中,可以通过对8251串行接口的操作和调试,了解串行通信的基本原理和实现方法,提高学生的实践能力和理论水平。 下面是8251串行接口应用实验的分析: 1. 实验目的 掌握8251串行接口的基本工作原理和操作方法,学习串行通信的基本概念和实现方法,了解串口通信的应用场景和应用技术。 2. 实验内容 (1)了解8251串行接口的基本结构和工作原理,包括接口通信方式、寄存器功能和控制信号等。 (2)使用8251串行接口实现单向串口通信和双向串口通信,掌握串行通信的基本原理和实现方法,包括波特率、数据格式、校验码等。 (3)调试和测试串口通信的功能和性能,包括数据传输速率、数据正确性、数据丢失率等指标。 3. 实验步骤 (1)连接实验设备,包括计算机、串口线、终端设备等。 (2)配置串口参数,包括波特率、数据位数、停止位数、校验码等。 (3)编写串口通信程序,实现数据的发送和接收。 (4)进行实验测试,包括数据传输速率、数据正确性、数据丢失率等指标的测试和评估。 4. 实验结果 通过8251串行接口应用实验,可以获得以下实验结果: (1)掌握8251串行接口的基本工作原理和操作方法。 (2)了解串行通信的基本原理和实现方法,包括波特率、数据格式、校验码等。 (3)掌握串口通信的应用场景和应用技术。 (4)能够编写串口通信程序,实现数据的发送和接收。 (5)能够进行实验测试,评估串口通信的功能和性能,包括数据传输速率、数据正确性、数据丢失率等指标的测试和评估。 5. 实验总结 8251串行接口应用实验是一种重要的实践教学环节,它可以帮助学生深入了解串行通信的基本原理和实现方法,提高学生的实践能力和理论水平。在实验过程中,需要注意安全和正确操作,避免对实验设备造成损坏或影响实验结果。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值