收藏 分销(赏)

单片机_3串口.doc

上传人:pc****0 文档编号:7467323 上传时间:2025-01-05 格式:DOC 页数:9 大小:267.50KB 下载积分:10 金币
下载 相关 举报
单片机_3串口.doc_第1页
第1页 / 共9页
单片机_3串口.doc_第2页
第2页 / 共9页


点击查看更多>>
资源描述
1. 简单收发,使用串口调试工具 2. 使用数码管显示发送过来的数据 3. 协议制定,效验和,地址 单片机串行数据通信 第一节 概 述 一、串行通信基本原理 计算机与外界的信息交换称为通信。基本的通信方法有并行通信和串行通信两种。 并行通信的特点是:各数据位同时传送,传送速度快、效率高。但并行数据传送有多少数据位就需多少根数据线,因此传送成本高。并行数据传送的距离小于30米。并行通信依靠并行1/O接口实现。 串行通信的特点是:数据传送按位顺序进行,最少只需一根传输线即可完成,成本低但速度慢。计算机与外界的数据传送大多数是串行的,其传送的距离可以从几米到几千公里。 二、两种串行通信方式 串行通信根据通讯双方是否采用同一个时钟,又分为异步通信和同步通信两种方式。 1、异步通信方式 异步通信用起始位"0”表示字符的开始,然后从低位到高位逐位传送数据,最后用停止位“1”表示字符结束,见图。一个字符又称一帧。图中a,一帧信息包括1位起始位、8位数据位和1位停止位。图b中,数据位增加到9位。在MCS-51计算机系统中,第九位数据D8可以用作奇偶校验位,也可以用作地址/数据帧标志,D8=1表示该帧信息传送的是地址,D8=0表示传送的是数据。两帧信息之间可以无间隔,也可以有间隔,且间隔时间可任意改变,间隔用空闲位1来填充。 1)、波特率(Baud rate):每秒传送的位数。每秒传送一个格式位就是1波特。即: 1波特=lbps(位/秒) 例如电传打字机的传送速率每秒10个字符,若每个字符为11位,则波特率为 11位/字符×10字符/s=110位/s. 2)、帧(frame):从起始位开始到停止位结束的全部内容称之为一帧,帧是一个字符的完整通信格式,因此也就把串行通信的字符格式称之为帧格式。 起始位:发送器是通过发送起始位而开始一个字符的传送。起始位使数据线处于“space”状态。 数据位:起始位之后就传送数据位。在数据位中,低位在前(左),高位在后(右)。数据位可以是5、6、7或8位。 奇偶校验位:用于对字符传送作正确性检查。共有3种可能,即奇校验、偶校验和无校验。 停止位:停止位在最后,用以标志一个字符传送的结束,它对应于mark状态。停止位可能是1、1. 5或2位,在实际应用中根据需要确定。 2、同步通信方式 在同步通信中,数据中的每一位的传送都是在同一个时钟的控制下进行的。每一数据块开头时发送一个或两个同步字符,使发送与接收双方取得同步。数据块的各个字符间取消了起始位和停止位,所以通信速度得以提高,见图7一3。同步通信时,如果发送的数据块之间有间隔时间,则发送同步字符填充。 三、串行通信的数据通路形式 串行数据通信共有以下几种数据通路形式。 1、单工(Simplex)形式 单工形式的数据传送是单向的。通信双方中一方固定为发送端,另一方则固定为接收端。单工形式的串行通信,只需要一条数据线。如图8.4所示。例如计算机与打印机之间的串行通信就是单工形式,因为只能有计算机向打印机传送数据,而不可能有相反方向的数据传送。 2、全双工(Full-duplex)形式 全双工形式的数据传送是双向的,且可以同时发送和接收数据,因此全双工形式的串行通信需要两条数据线。如图8. 5所示。 3.半双工(Half-duplex)形式 半双工形式的数据传送也是双向的。但任何时刻只能由其中的一方发送数据,另一方接收数据。因此半双工形式既可以使用一条数据线,也可以使用两条数据线。如图8.6所示。 MCS-51串行结构与工作原理 串行口结构 如上所述,MCS - 51串行1/O接口的基本工作是:发送时,将CPU送来的并行数据转换成一定格式的串行数据,从引脚TXD(P3.1)上按规定的波特率逐位输出;接收时,要监视引脚RXD(P3.0),一旦出现起始位“0”,就将外围设备送来的一定格式的串行数据转换成并行数据,等待CPU读人。 接收缓冲器是双缓冲的,是为了避免在接收下一帧数据之前,CPU未能及时响应接收器的中断,把上帧数据读走,而产生两帧数据重叠的问题而设置的双缓冲结构。对于发送缓冲器,为了保持最大传输率,一般不需要双缓冲,这是因为发送时CPU是主动的,不会产生写重叠的问题。 第二节 串行接口控制与状态寄存器 1、串行口控制寄存器SCON 功能说明如下: ·SM0、SM1—串行口工作方式选择位 其状态组合所对应的工作方式为: ·SM2—多机通信控制位 SM2位主要用于方式2和方式3。当串行口方式2或方式3接收时,如SM2=1,则只有当接收到的第九位数据(RB8)为1,才将接收到的前8位数据送入SBUF,并置位RI产生中断请求;否则,将接收到的前8位数据丢弃。而当SM2=0时,则不论第九位数据为0还是为1,都将前8位数据装入SBUF中,并产生中断请求。 ·REN—允许接收位 REN=0 禁止接收 REN=1 允许接收 该位由软件置位或复位。 ·TB8—发送数据位8 在方式2和方式3时,TB8的内容是要发送的第9位数据,其值由用户通过软件设置。在双机通信时,TB8一般作为奇偶校验位使用;在多机通信中,常以TB8位的状态表示主机发送的是地址帧还是数据帧,且一般约定:TB8=0为数据帧 TB8=1为地址帧。 ·RB8—接收数据位8 在方式2或方式3时,RB8存放接收到的第9位数据,代表着接收数据的某种特征(与TB8的功能类似),故应根据其状态对接收数据进行操作。 ·TI—发送中断标志 当方式0时,发送完第8位数据后,该位由硬件置位。在其它方式下,于发送停止位之前,由硬件置位。因此TI=1,表示帧发送结束,其状态既可供软件查询使用,也可请求中断。TI位由软件清“0”。 ·RI—接收中断标志 当方式0时,接收完第8位数据后,该位由硬件置位。在其它方式下,当接收到停止位时,该位由硬件置位。因此RI=1,表示帧接收结束。其状态既可供软件查询使用,也可以请求中断。RI位由软件清“0”。 2、电源控制寄存器PCON SMOD—串行口波特率的倍增位 当SMOD=1时,串行口波特率加倍。系统复位时,SMOD=0。 3、中断允许寄存器IE ES=0 禁止串行中断 ES=1 允许串行中断 串行口的工作方式 MCS - 51单片机中的异步通信串行接口能方便地与其他计算机或传送信息的外围设备(如串行打印机、CPU终端等)实现双机、多机通信。 串行口有4种工作方式,见表7一1。 方式0并不用于通信,而是通过外接移位寄存器芯片实现扩展并行1/O接口的功能。该方式又称为移位寄存器方式。 方式1、方式2、方式3都是异步通信方式。 方式1是8位异步通信接口。一帧信息由10位组成,其格式见图7一2a。方式1用于双机串行通信。 方式2、方式3都是9位异步通信接口、一帧信息中包括9位数据,1位起始位,1位停止位,其格式见图7一2b。方式2、方式3的区别在于波特率不同,方式2、方式3主要用于多机通信,也可用于双机通信。 一、串行接口的工作方式0 SM0=0、SM1=0串行口工作于方式0, 即串行寄存器方式或称为同步移位寄存器输入/输出方式。CPU执行一条写SBUF的指令如MOV SBUF ,A就启动了发送过程。发送的时序见图7-1。接收时序见图7-2 图7-1 方式0发送时序 图7-2 方式0接收时序 串行口方式0不适用于两个8051之间的数据通信,但可通过外接移位寄存器来扩展单片机的接口。例如,可以采用74LS164可以扩展并行输出口,74LS165可以扩展输入口。 二、串行口工作方式1 SM0=0,SM1=1串行口接口工作于方式1,即将8位异步通信接口方式,RXD为接收端,TXD为发送端。一帧信息由10位组成,方式1的波特率可变,由定时器/计数器1或定时器/计数器2的溢出速率以及SMOD(PCON.7)决定。 1.发送 CPU执行一条写SBUF指令后便启动了串行口发送,数据从TXD输出,时序见图7-8a。 在指令执行期间,CPU送来“写SBUF”信号,将并行数据送入SBUF,并启动发送控制器,经一个机器周期,发送控制器的SEND、DATA相继有效,通过输出控制门从TXD上逐位输出一帧信号。一帧信号发送完毕后,SEND、DATA失效,发送控制器硬件置发送中断标志TI=1,向CPU申请中断。 2.接收 方式1的接收时序见图7-8b。允许接收位REN被置1接收器就开始工作,跳变检测器以波特率16倍的速率采样RXD引脚上电平,当采样到从1到0的负跳变时,启动接收控制器接收数据,由于发送、接收双方各自使用自己的时钟,两者的频率总有少许差异。为了避免这种影响,控制器将1位送时间等分成16分、位检测器在7、8、9三个状态也就是在位信号中央采样RXD三次。 而且,三次采样中至少两次相同的值被确认为数据,这是为了减小干扰的影响。如果起始位接收到的值不是0,由起始位无效,复位接收电路。如果起始位为0,则开始开始接收本帧其他数据。控制器发出的内部移位脉冲将RXD上的数据逐位移入移位寄存器,当8位数据及停止位全移入后: (1)如果RI=0、SM2=0,接收控制器发出“装载SBUF”信号,将8位数据装入接收数据缓冲器SBUF,停止装入RB8,并置RI=1,向CPU申请中断。 (2)如果RI=0、SM2=1,那么只有停止位为1时才发生上述动作。 (3)如果RI=0、SM2=1且停止位为0,(通常由传输过程中的干扰所致)所接收的数据应会丢失,不再恢复。 (4)如果RI=1,则所接收的数据在任何情况下都会丢失。 无论出现哪一种情况,跳变检测器将继续采样RXD引脚的负跳变,以便接收下一帧信息。 接收器采用移位寄存器和SBUF双缓冲结构,以避免在接收后一帧数据之前,CPU尚未及时响应中断将前一帧数据取走,造成两帧数据重叠问题。采用双缓冲器后,前、后两帧数据进入SBUF的时间间隔至少有10个位传送周期。在后一帧数据送入SBUF之前,CPU有足够的时间将前一帧数据取走。 三、串行接口工作方式2和与方式3 串行口工作在方式2、方式3时,为9位异步通信接口。发送或接收的一帧信息由11位组成,见图7-2b。方式2与方式3仅波特率不同,方式2的波特率为fosc/32(SMOD=1时)或fosc/64(SMOD=0时),而方式3的波特率由定时器/计数器具或定时器/计数器2及SMOD决定。 1.发送 方式2、方式3发送时,数据从TXD引脚输出,附加的第九位数据由SCON中的TB8提供。CPU执行一条写入SBUF的指令后立即启动发送器发送。发送完一帧信息后由硬件置TI=1。 2.接收 与方式1相似,REN置1后,跳变检测器不断对RXD引脚采样。当采样到负跳变后就启动接收控制器。位检测器对每位数据采集3个值,用采3取2办法确定每位的数值。当第九位数据移入移位寄存器后,将8位数据装入SBUF,第九位数据装入RB8,并置RI=1,其时序见图2-26b。 与方式1相同,方式2、方式3中也设置有数据辨别功能,即当RI=1或SM2=1且第九位数据为0时所接收的一帧信息被丢失。 四、波特率的设计 方式1的波特率是可变的,以定时器T1作波特率发生器使用,其值由定时器1的计数溢出率来决定,其公式为: 2smod 波特率= ×(定时器1溢出率) 32 当定时器1作波特率发生器使用时,选用工作方式2(即8位自动加载方式)。假定计数初值为X,则计数溢出周期为: 则T1的溢出周期为: 溢出周期=12/fosc×(256-X) 溢出率为溢出周期的倒数。 则波特率计算公式为: 波特率= 实际使用时,总是先确定波特率,再计算定时器1的计数初值,然后进行定时器的初始化。根据上述波特率计算公式,得出计数初值的计算公式为:
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 百科休闲 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服