今日头条
如何理解单片机是什么,全双工串行通信接口怎么理解
单片机是在单个芯片中整合了计算机的大部分功能和资源,所以我们可以把它理解成一台性能很弱的计算机,与常见普通的电脑或者手机比起来,单片机的运算速度大概是它们的百分之一,存储空间是它们的百万分之一,所以单片机比较便宜,很廉价就可以买到,单片机适合实现电子产品的简单编程控制。
51单片机有一个可编程的全双工的异步串行通讯接口,具有通用的异步收发器的全部功能,异步串行通讯接口叫UART,指的是通用的一个异步收发器,它具有通用的异步收发器的功能,也不仅仅指具备这一个功能,同时也能够作为同步的移位寄存器来使用。
单片机的全双工的异步串行通信接口,它有四种工作方式,其中方式0就可以作为同步的移位寄存器来使用,要想用单片机来做串行通信进行数据的发送和接收,那就要使用它的串行通信接口,通信接口是设备和设备之间或者设备和主机之间串行通信,必然需要用到引脚,51单片机在做串行通信的时候用到的两个引脚就是P3.0和P3.1,做通讯的时候一般还会用到GND,三根线就可以全双工的串行通信,全双工的异步串行通信接口,在发送的时候可以接收,在接收的时候也能够进行发送,而且它是异步的通信,不是同步。
异步是指在做异步串行通信的时候实际上它的数据的发送是以字符帧为单位来进行发送的,一帧格式当中会包括几个东西,起始位,数据位停止位,奇偶校验位,这些构成一个帧格式,在每一帧数据和每一帧数据之间的时间间隔是任意的,每一帧数据里面数据位一帧包括十个位的异步串口通信,位和位之间的时间间隔是严格的按照波特率来规定的,比如波特率是4800,在传输这个一帧数据的时候,每一个位和另外一个位之间的时间间隔要按照这个波特率来配置,收发双方才能够知道如何去识别数据,硬件上做串行通信使用的是P3.03.1和GND这三根线,在这个功能上是一个全双工的串行口。
异步通信包括数据起始位,停止位,奇偶校验位,这些位分别的位置在一帧格式当中,发送数据的时候每一帧数据传输都必须按照这个帧格式来进行传输,起始位和停止位是使用单片机内部的串行通信接口的话,实际上这个是由硬件来帮加的,不需要我们来管,要收发双方如何知道这根线上开始有数据来传输了,也就是这跟数据开始传输了,TSD或者SD这根线上地之间在空闲的时候是没有数据传输的,它是高电平,要想建立一次通信首先把这根线拉成低电平,就是发送方把这个线拉出来低电平就代表要发送一帧数据了,接收方也一直在监控着这根信号线,就能够知道有数据要发送了,就可以按照约定的波特率来进行收发数据。
当发送到停止位的时候,单片机就认为是一帧数据发送完了,可以再去接收另外的帧数据,停止位让总线处于空闲状态,就可以发起另外一次的通信,传输的波特率常用的就是那些,现在的波特率还可以做得更高,这个决定了选择的芯片里面串行通信它的速度可以达到多高,还有就是时钟晶振是多高,波特率是收发双方首先要约定好当前的通信波特率是多少,然后要配置串行口来产生一个波特率,波特率是首先要约定好的,比如用工作方式一的时候,是借助单片机的定时计数器来产生波特率,并不是直接来生成一个波特率然后再去做通信,事先确定波特率然后再来根据设定的波特率来让串行通信接口来产生这个波特率,从而使收发双方按照这个约定的波特率来进行通信。
刚开始做初始通信的时候要有一个基本的通信约定,在基本的通信约定建立起来之后,已经建立通信收发双方可以传输一个字节或者一帧数据了,数据代表一些命令还是一些参数,还要做一些上位的软件层的一些通信协议,或者叫应用层的一些通信协议的约定,通信协议实际上软件层来讲应该分成两种,一个是基本的通信约定,比如一般在做串行通信的时候,用单片机来和计算机进行通信,在计算机开始调试的时候是借助串行口的调试助手,要首先选择波特率,然后选择起始位停止位以及校验位都是什么样子的,要收发双方遵循统一的标准,或者说统一的约定,收发双方的数据通路就建立好了,收发数据就可以进行。
对单片机感兴趣的可以查看往期分享内容,希望能帮助大家在学习单片机的路上少走一些弯路,想要入门单片机可以持续关注创为单片机编程,回复“带我学习”查看更多内容分享。
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !