串行接口及其串行通信.ppt
《串行接口及其串行通信.ppt》由会员分享,可在线阅读,更多相关《串行接口及其串行通信.ppt(65页珍藏版)》请在三一办公上搜索。
1、1,5.4 MCS-51单片机的串行接口及其串行通信,5.4.1 串行数据通信基础5.4.2 MCS-51串行口及控制寄存器5.4.3 MCS-51串行通信工作方式及应用,习题:6,9,10,15*,2,5.4.1 串行数据通信基础,一、数据通信的概念计算机与计算机或外部设备之间的数据传送数据通信 并行数据通信 同步 串行 异步,3,5.4.1 串行数据通信基础,4,5.4.1 串行数据通信基础,二、串行通信的基本方式(一)异步通信 以字符为传送单位,用起始位和停止位标识每个字符的开始和结束字 符,间隔不固定,只需字符传送时同步即可。异步通信常用格式:字符帧,5,5.4.1 串行数据通信基础,
2、异步通信的双方需要两项约定:1.字符格式:一帧字符位数的规定:数据位,校验位,起始位和停止位。2.波特率(位/秒)和传送速率的规定:例:要求每秒传送120个字符,每帧为10位(数据8位)。解:B=12010=1200波特 每位0.83ms 数据位传送速率=1208=960位/秒,6,5.4.1 串行数据通信基础,(二)同步通信方式,在同步通信中,以一串字符为一个传送单位,字符间不加标识位,在一串字符开始 用同步字符标识。如果发送的数据块之间有时间间隔,则发送同步字符填充,使发送和接收双方同步。,7,5.4.1 串行数据通信基础,三、串行接口功能:(1)发送器:并串数据格式转换,添加标识位和校验
3、位,一帧发送结束,设置结束标志,申请中断。(2)接收器:串并数据格式转换,检查错误,去掉标识位,保存有效数据,设置接收结束标志,申请中断。(3)控制器:接收编程命令和控制参数,设置工作方式:同步/异步、字符格式、波特率、校验方式、数据位与同步时钟比例等。,8,5.4.1 串行数据通信基础,四、串行数据传送方向(通路形式):1、单工通讯:数据单向传送。(1条数据线,单向)2、半双工通讯:数据可分时双向传送。(1条或2条数据线,双向)3、全双工通讯:可同时进行发送和接收。(2条数据线,双向),9,5.4.1 串行数据通信基础,10,5.4.1 串行数据通信基础,五、异步串行通信的信号形式 1、采用
4、数字信号直接传送(适合于近程通信)。在传送过程中不改变原数据代码的波形和频率。这种数据传送方式称之为基带传送方式。通信双方只需用传输线把两端的接口电路直接连起来即可实现。2、采用频率调制法,也叫频带传送方式(适合于远程通信)。远距离直接传输数字信号,信号会发生畸变,因此要把数字信号转变为模拟信号再进行传送。可利用光缆、专用通信电缆或电话线等连接。,11,5.4.1 串行数据通信基础,通常:“1”:1270Hz或2225Hz;“0”:1070Hz或2025Hz。,12,5.4.1 串行数据通信基础,因通信时(有干扰)信号要衰减,所以常采用RS232电平负逻辑,拉开“0”和“1”的电压档次,以免信
5、息出错:,TTL正逻辑:“0”:0 0.8V;“1”:2.4V+5V。TTL电平直接传输距离一般不超过1.5米。,RS-232C(电平转换芯片为MAX232)RS-422RS-485,RS232负逻辑(EIA电平):“0”:+3V+25V;“1”:-3V-25V。最大传输信息的长度为15米。,Electronic Industries Association,电子工业联合会,13,5.4.2 MCS-51串行口及控制寄存器,MCS51系列单片机的串行口是全双工的,这个口既可以用于网络通信,也可以实现串行异步通信,还可以作为同步移位寄存器使用。在串行口中可供用户使用的是它的寄存器,因此了解其寄存
6、器结构对用户来说是十分重要的。,一、MCS-51串行口寄存器结构,串行接口输入/输出引脚:TXD(P3.1)、RXD(P3.0),在接收方式下,串行数据通过引脚RXD(P3.0)进入。由于在接收寄存器之间还有移位寄存器,从而构成了串行接收的双缓冲结构,以避免在数据接收过程中出现帧重叠错误,即在下一帧数据来时,前一帧数据还没有读走。,在发送方式下,串行数据通过TXD(P3.1)送出。与接收数据情况不同,发送数据时,由于CPU是主动的,不会发生帧重叠错误,因此发送电路就不需双重缓冲结构,这样可以提高数据发送速度。,16,5.4.2 MCS-51串行口及控制寄存器,串行通信数据格式:按不同方式,一帧
7、数据位数为 8/10/11。发送/接收时,数据皆低位在前。,17,5.4.2 MCS-51串行口及控制寄存器,一帧字符发送/接收结束,置位标志位(TI/RI),并申请串行中断。串行口中断控制:中断允许位ES、总允许EA;串行中断入口:0023H。,18,5.4.2 MCS-51串行口及控制寄存器,二、串行通信控制寄存器 1.数据缓冲器SBUF发送SBUF和接收SBUF共用一个地址99H。1)发送SBUF存放待发送的8位数据,写入SBUF将同时启动发送。发送指令:MOVSBUF,A2)接收SBUF存放已接收成功的8位数据,供CPU读取。读取串行口接收数据指令:MOV A,SBUF,19,5.4.
8、2 MCS-51串行口及控制寄存器,2.电源控制寄存器PCON SMOD(PCON.7):波特率加倍控制位。SMOD=1,波特率加倍;SMOD=0,则不加倍。3.串行口控制/状态寄存器SCON(98H):,SM0、SM1:选择串行口4种工作方式。,21,5.4.2 MCS-51串行口及控制寄存器,SM2:多机控制位,用于多机通讯。REN:允许接收控制位,REN=1,允许接收;REN=0,禁止接收。TB8:发送的第9位数据位,可用作校验位和地址/数 据标识位。RB8:接收的第9位数据位或停止位。TI:发送中断标志,发送一帧结束,TI=1,必须软 件清零;RI:接收中断标志,接收一帧结束,RI=1
9、,必须软 件清零。,22,5.4.3 MCS-51串行通信工作方式及应用,一)方式0:SM0=0,SM1=0 在方式0下,是把串行口作为同步移位寄存器使用,这时以RXD(P3.0)端作为数据移位的入口和出口,而由TXD(P3.1)端提供移位时钟脉冲.移位数据的发送和接收以8位为一组,低位在前高位在后。1、数据的发送与接收 发送和接收的时序如下图所示:,23,5.4.3 MCS-51串行通信工作方式及应用,(a),使用方式0实现数据的移位输入输出时,实际上是把串行口变成为并行口使用。串行口作为并行口输出使用时,要有“串入并出”的移位寄存器(例如CD4094或74LS164、74HC164等)配合
10、,其电路连接如图524所示。,25,5.4.3 MCS-51串行通信工作方式及应用,发送过程可叙述如下:数据预先写入串行口数据缓冲器,然后从串行口RXD端,在移位时钟脉冲(TXD)的控制下,逐位移入CD4094。当8位数据全部移出后,SCON寄存器的发送中断TI被自动置“1”。其后主程序就可用中断或查询的方法,通过设置STB状态的控制,把CD4094的内容并行输出。,如果把能实现“并入串出”功能的移位寄存器(例如CD4014或74165)与串行口配合使用,就可以把串行口扩展为一个并行输入口使用。其电路如图5-25所示。,数据接收过程如下:首先将并行输入数据写入CD4014,CD4014移出的串
11、行数据经RXD端串行输入到串行口数据缓冲器,同样由TXD端提供移位时钟脉冲。8位数据串行接收需要有允许接收的控制,具体由SCON寄存器的REN位实现。REN=0,禁止接收;REN=1,允许接收。当软件置位REN时,即开始从RXD端输入数据(低位在前),当接收到8位数据时,硬件自动置位接收中断标志RI(由用户通过软件请0)。,2、应用举例 使用CD4094的输出端接8只发光二极管,利用它的串入并出功能,把发光二极管从左向右依次点亮,并反复循环之。按此要求所做的电路连接如图526所示。,方式0时,移位操作的波特率是固定的,为单片机晶振频率的十二分之一。按此波特率也就是一个机器周期移一位。,MOV
12、SCON,#00H;串行口方式0工作 CLR ES;禁止串行中断 MOV A,#80H;发光管从左边亮起DELR:CLR P1.0;关闭并行输出 MOV SBUF,A;串行输出 JNB TI,;状态查询 SETB P1.0;开启并行输出 ACALL DELAY;状态维持时间 CLR TI;清发送中断标志 RR A;发光组合右移 AJMP DELR;继续,采用查询方式发送数据可编程序如下:,29,5.4.3 MCS-51串行通信工作方式及应用,二)方式1:SM0=1,SM1=0方式1是10位为一帧的异步串行通信方式。共包括1个起始位,8个数据位和1个停止位。其帧格式为:,1、数据的发送与接收,数
13、据发送是由一条写发送缓冲器(SBUF)的指令开始的,随后在串行口由硬件自动加入起始位和停止位,构成一个完整的帧格式,然后在移位脉冲的作用下,由TXD端串行输出。一个字符帧发送完后,使TXD输出线维持在“1”状态下,并将SCON寄存器的TI置“1”,通知CPU可以接着发送下一个字符。,数据接收时,SCON的REN位应处于允许接收状态(REN=1)。在此前提下,串行口采样RXD端,当采样到从“1”向“0”的状态跳变时,就认定是接收到起始位。随后在移位脉冲的控制下,把RXD端上的数据逐位移入移位寄存器,当8位数据及停止位全部移入后,根据以下状态,进行相应操作。,如果RI=0、SM2=0,则接收控制器
14、发出装载SBUF信号,将8位数据装入接收数据缓冲器SBUF,停止位装入RB8,并置RI=1,向CPU申请中断。,如果RI=0、SM2=1,那么只有停止位为1才发生上述操作。,如果RI=0、SM2=1且停止位为0、则所接收的数据不装入SBUF,数据将会丢失。,如果RI=1,则所接收的数据在任何情况下都不装入SBUF,即数据丢失。,无论出现哪一种情况,位检测器将继续采样RXD引脚的负跳变,以便接收下一帧信息。,接收采用移位寄存器和SBUF双缓冲结构,以避免在接收后一帧数据之前,CPU尚未及时响应中断而将前一帧数据取走,造成两帧数据重叠。采用双缓冲结构后,前、后两帧数据进入SBUF的时间间隔有10个
15、机器周期。在后一帧数据送入SBUF之前,CPU有足够时间将前一帧数据取走。,DATA,由于发送、接收双方各自使用自己的时钟,因而两者的频率总有少许差异。为了避免这种影响,数据采样速率采用波特率16倍频,在数据位中间,用第7、8、9个脉冲采样3次数据位,并3中取2保留采样值。,2、发送时序和接收时序:,3、波特率设置,假定计数初值为X,则定时器1溢出周期为:,溢出率为溢出周期的倒数。故波特率计算公式为:,当定时器1作波特率发生器使用时,选用定时方式2。之所以选择工作方式2,是因为方式2具有自动加载功能,可以避免通过程序反复装入初值所引起的定时误差,使波特率更加稳定。,方式1的波特率由定时器/计数
16、器的溢出率和SMOD决定,即,方式1波特率=(2SMODT1溢出率)/32,实际使用时,总是先确定波特率,再计算定时器1的计数初值,然后进行定时器的初始化。根据上述波特率计算公式,得出计数初值的计算公式为:,2、应用举例双机通信,单片机间的串行通信通常可分为双机通信和多机通信两类。而串行口工作方式1只能用于双机通信,不能用于多机通信,故作为方式1的应用,这里举一双机通信的例子。又因串行通信的程序设计,一般可采用查询方式或中断方式两种,这里仅以查询方式为例加以说明。,为了确保通信成功、有效,现规定双机异步通信程序“协议”如下:,通信双方均采用系统时钟频率fosc=12MHz,甲机发送数据,乙机接
17、收数据,波特率为2400。通信开始时,甲机发送呼叫信号“06”,询问乙机是否可以接收数据;乙机收到呼叫信号后,若同意接收数据则发回“00”作为应答,否则发“15”表示暂不能接收数据;甲机只有收到乙机的应答信号“00”后才可把存放在外部数据存储器的内容发送给乙机,否则继续向乙机呼叫,直到乙机同意接收。其数据格式为:,累加效验和是指字节数n、数据1、数据n这(n+1)个字节内容的算术累加和。,乙机根据接收到的“效验和”判断已接收到的数据是否正确。若接收正确,向甲机发回“0FH”信号,否则发回“F0H”信号给甲机。甲机只有接收到“0FH”信号才算完成发送任务,返回调用的程序,否则继续呼叫,重发数据。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 串行 接口 及其 通信
链接地址:https://www.31ppt.com/p-5027474.html