一篇好的文章需要好好的打磨,你现在浏览的文章是一篇关于串口通信的工作原理图 串口通信的工作原理和特点的文章,本文对文章串口通信的工作原理图 串口通信的工作原理和特点好好的分析和解答,希望你能喜欢,只有你喜欢的内容存在,只有你来光临,我们才能继续前行。
1、串口通信(Serial Communications)的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。
2、它很简单并且能够实现远距离通信。比如IEEE488定义并行通行状态时,规定设备线总长不得超过20米,并且任意两个设备间的长度不得超过2米。
3、而对于串口而言,长度可达1200米。典型地,串口用于ASCII码字符的传输。通信使用3根线完成,分别是地线、发送、接收。
4、由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。其他线用于握手,但不是必须的。
5、串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通信的端口,这些参数必须匹配。
人类生存于世,少不了沟通。沟通使人类互相认知,传递信息,提升生活品质。但然单片机也需要,不然单单一个机器,无法构成一个系统,发挥更大的力量。只有单片机与外围设备传递信息,互相反馈才会有一个完美的系统。串行口通信就被发明出来,下面来了解串行口通信(uart)。
为了能更好理解串行口通信,在介绍它之前,先来看看几个概念,补充知识,方便深入明白uart工作原理。
串行通信有两种,一位异步串行通信,二为同步串行通信。
异步串行通信 :异步串行通信是指通信双方以一个字符(包括特定附加位)作为数据传输单位且发送方传送字符的间隔时间不一定,具有不规则数据段传送特性的串行数据传输。
同步串行通信 :所谓同步通信是指在约定的通信速率下,发送端和接收端的时钟信号频率和相位始终保持一致(同步),这就保证了通信双方在发送和接收数据时具有完全一致的定时关系。
两种串行通信不同就只有时间,在发送字符时,异步可以是不同时间间隔发送,但同步只能以固定的时间间隔发送。
波特率 :波特率表示每秒钟传送的二进制位数,是衡量数据传送速率的指标,它用单位时间内载波调制状态改变的次数来表示。
相互通信的甲乙双方必须具有相同的波特率,不然无法成功完成串行通信。
52单片机具有一个全双工串行通信口。一个全双工UART(通用异步接收发送器)的串行I/O口,用于实现单片机之间或单片机与微机之间的串行通信;片内振荡器和时钟产生电路,石英晶体和微调电容需要外接。最佳振荡频率为6M—12M。管脚RXD( P3.0),TXD(P3.1)与串口通信有关。波特率可以设置。
串行口通信与三个寄存器有关,分别是:
这个寄存器只有SMOD位与串行口通信有关。系统复位默认为SMOD=0。当为用52单片机的定时器2产生波特率时,波特率不受SMOD影响。用定时器1产生波特率时,不去设置,就默认为0,波特率正常,设置为1时,波特率加倍。
串行口为10位通用异步接口。发送或接收一帧数据信息为10位,包括1位起始位“0”、8位数据位、1位停止位“1”。发送数据:数据从TXD端口输出,当数据写入发送缓冲器SBUF时,就启动发送器发送。发送完一帧数据后,置中断标志TI=1,申请中断,通知CPU可以发送下一个数据了。接收数据:首先使REN=1(允许接收数据),串行口从RXD接收数据,当采样到1至0跳变时,确认是起始位“0”,就开始接收一帧数据,当接收完一帧数据时,置中断标志RI=1,申请中断,通知CPU从SBUF取走接收到的数据 。
溢出速率即溢出频率,只要算出定时器每溢出一次所需要的时间T,那溢出率就是1/T。计算在没有波特率加倍(SMOD=0)的情况下,波特率为9600bps时怎样赋值计数器。这里说明一下,由于波特率是需要很精确的,不然通信会出错。如果采用定时器工作模式1,采用人工重载,会有较大误差,因为进入中断函数也需要时间,累积时间就会出错。所以这里运用工作模式2,8位自动重装。计数器自动重装不需人工干预,减少误差。
对照上面公式,波特率不加倍,SMOD=0,工作模式2,那n=8,波特率=9600,就可以算出x=253,十六进制为fd。
范例1是将接受的数据原封不动发送出去。采用查询法,故不需要打开串口中断,不用中断函数。只需不断查询TI,RI的值,就知道数据接收发送情况。
与范例1如出一撤,就不详细注释。
在串口通信中,方式1是最常用的,要认真理解方式1。串行数据一位一位的已经不用处理了,52单片机已经有一个模块处理完了。只要知道接收一个数据,产生一次接收中断,要软件置0.,发送一个数据会产生一次发送中断,也要软件置0。自行置0,处理好数据就OK。下一篇将介绍其他三种方式,欢迎关注。
串行口分四种工作方式,由SCON中的SMO、SM1二位选择决定。
1.方式0
(1)特点
1.用作串行口扩展,具有固定的波特率,为Fosf/12。
2.同步发送/接收,由TXD提供移位脉冲,RXD用作数据输入/输出通道。
3.发送/接收8位数据,低位在先。
(2)发送操作
当执行一条“MOV SBUF,A”指令时,启动发送操作,由TXD输出移位脉冲,由RXD串行发送SBUF中的数据。发送完8位数据后自动置TI=1,请求中断。要继续发送时,T1必须有指令清零。(3)接收操作
在RI=0条件下,置REN=1,启动一帧数据的接收,由TXD输出移位脉冲,由RXD接收串行数据到A中。接收完一帧自动置位RI,请求中断。想继续接收时,要用指令清零RI。2.方式1
(1)特点
1.8位UART接口。
2.帧结构为10位,包括起始位(为0),8位数据位,1位停止位。
3.波特率由指令设定,由T1的溢出率决定。
(2)发送操作
当执行一条“MOV SBUF,A”指令时,启动发送操作,A中的数据从TXD端实现异步发送。发送完一帧数据后自动置TI=1,请求中断。要继续发送时,TI必须由指令清零。(3)接收操作
当置REN=1时,串行口采样RXD,当采样到1至0的跳变时,确认串行数据帧的起始位,开始接收一帧数据,直到停止位到来时,把停止位送入RB8中。置位RI请求中断。CPU取走数据后用指令清零RI。3.方式2和方式3
方式2和方式3具有多机通信功能,这两种方式除了波特率不同以外,其余完全相同。
(1)特点
1.9位UART接口。
2.帧结构为11位,包括起始位(为0)、8位数据位、1位可编程位TB8/RB8和停止位(为1)。
3.波特率在方式2时为固定FOSC/32或FOSC/64,由SMOD位决定,当SMOD=1时,波特率为FOSC/32;当SMOD=0时,波特率为FOSC/64。方式3的溢出率由T1的溢出率决定。(2)发送操作
发送数据之前,由指令设置TB8(如作为奇偶校对位或地址/数据位),将要发送的数据由A写入SBUF中启动发送操作。在发送中,内部逻辑会把TB8装入发送移位寄存器的第9位位置,然后发送一帧完整的数据,发送完毕后置位TI。TI须由指令清零。(3)接收操作
当置位SEN位且RI=0时,启动接收操作,帧结构上的第9位送入RB8中,对所接收的数据视SM2和RB8的状态决定是否会使RI置位。
当SM2=0时,RB8不论什么状态RI都置1,串行口都接收数据。
当SM2=1时,为多机通信方式,接收到的RB8为地址/数据表识位。
当RB8=1时,接收的信息为地址帧,此时置位RI,串行口接收发送来的数据。
当RB8=0时,接收的信息为数据帧,若SM2=1时,RI不会置位,此数据丢弃;若SM2=0,则SBUF接收发送来的数据。
以上内容是小编精心整理的关于串口通信的工作原理图 串口通信的工作原理和特点的精彩内容,好的文章需要你的分享,喜欢串口通信的工作原理图 串口通信的工作原理和特点这篇精彩文章的,请您经常光顾吧!
下一篇:更多农历
本文标题:串口通信的工作原理图 串口通信的工作原理和特点
本文链接:http://m.xzfx123.com/article/117093.html
一篇好的文章需要好好的打磨,你现在浏览的文章是一篇关于串口通信的工作原理图 串口通...
一篇好的文章需要好好的打磨,你现在浏览的文章是一篇关于个人工作感悟 个人工作感悟及...
一篇好的文章需要好好的打磨,你现在浏览的文章是一篇关于6月1 日新股申购一览表图片 6...
一篇好的文章需要好好的打磨,你现在浏览的文章是一篇关于护眼日绘画图片 护眼日绘画作...
一篇好的文章需要好好的打磨,你现在浏览的文章是一篇关于架子鼓工作室名字大全 架子鼓...
一篇好的文章需要好好的打磨,你现在浏览的文章是一篇关于整顿工作作风八项措施规定要改...
一篇好的文章需要好好的打磨,你现在浏览的文章是一篇关于在新疆找工作用什么软件 在新...
一篇好的文章需要好好的打磨,你现在浏览的文章是一篇关于6月种南瓜晚不 6月种南瓜还来...
一篇好的文章需要好好的打磨,你现在浏览的文章是一篇关于开始工作英文 开始工作图片的...
一篇好的文章需要好好的打磨,你现在浏览的文章是一篇关于6月6日出生的魔鬼是谁 6月6日...