版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
9.1串行通信的基本概念9.2串行口基本结构与操作方式第9章(补充)
串行接口技术计算机1GND计算机2GND并行通信计算机1GND计算机2GND发送接收串行通信9.1串行通信的基本概念
单片机与外界的信息交换称为通信。基本通信方式有两种:并行通信和串行通信。并行通信传送数据的特点是各位同时发送或接收,而串行通信传送数据的特点是各位按顺序一位一位地发送或接收。并行通信
并行通信中一个并行数据占多少位二进制数,就要多少根传输线。其特点是通信速度快,但传输线多,价格较贵,适合近距离传输。一般用于电路芯片内部,同一个插板上各部件之间的通信,距离小于30m。前面关于存储器扩展、总线法扩展I/O口电路的通讯方式均为并行传送。计算机1GND计算机2GND并行通信串行通信串行通信仅需一到两根传输线即可实现,故在长距离传送数据时成本少,比较经济。但由于它每次只能传送一位,所以传送速度较慢。计算机1GND计算机2GND发送接收串行通信9.1.1串行数据传送方式
1.单工方式单向传送数据,通信双方中一方固定为发送端,另一端固定为接收端。只需要一条数据线。图9-1(a)单工方式示意图发送器A站接收器B站单工通信(a)这种方式允许数据在两个方向的任一方向传送,但每次只能有一端发送。使用同一根传输线既作接收又作发送,虽然数据可以在两个方向上传送,但通信双方不能同时收发数据。
2.半双工方式图9-1(b)半双工方式示意图发收A站发收B站(b)
3.全双工方式当数据的发送和接收分流,分别由两根不同的传输线传送时,通信双方都能在同一时刻进行发送和接收操作,这样的传送方式就是全双工(FullDuplex)制。它要求两端的通信设备具有完整和独立的发送、接收功能。图9-1(c)半双工方式示意图发收A站发收B站(c)9.1.2波特率和发送/接收时钟
1.波特率并行通信中,传输速度以每秒传输的字节(B/s)表示。而串行通信数据传送的速率用波特率来表示。波特率指每秒钟传送的二进制数码的位数,单位是bps(bitpersecond),即位/秒。波特率是串行通信的重要指标,用于衡量数据传输的速率。1)发送时钟发送端使用的用于决定数据位宽度的时钟。2)接收时钟接收端使用的用于测定每一位输入数据位宽度的时钟。3)接收/发送时钟频率接收/发送时钟频率=n·波特率,其中n=1,16,32,64
2.发送/接收时钟9.1.3
串行的基本通信方式
1.异步通信串行数据按传递方式分为两种基本的通信方式:异步通信和同步通信。异步通信中数据或字符是分为一帧一帧地传送,在帧格式中先用一个起始位“0”表示字符的开始,然后是5~8位数据,规定低位在前,高位在后,接下来是奇偶校验位(可省略),最后一个停止位“1”表示字符的结束,构成一帧。由于异步通信每传送一帧有固定格式,通信双方只需按约定的帧格式来发送和接收数据,所以硬件结构比同步通信方式简单;此外它还能利用校验位检测错误,所以这种通信方式应用较广泛。
2.同步通信
同步通信中,在数据或字符开始处就用一同步字符来指示(1~2个),由时钟来实现发送端和接收端同步,一旦检测到与规定的同步字符符合,下面就连续按顺序传送数据。因为同步通信数据块传送时去掉了字符开始和结束的标志,所以其速度高于异步传送,但这种方式对硬件结构要求较高。这种通信方式中收/发双方必须建立准确的位定时信号,即收/发时钟的频率必须严格地一致。MCS-51单片机一般不使用。
根据串行通信格式及约定(如同步方式、通信速率、数据帧格式等)的不同,形成了许多串行通信接口标准,如常见的UART(通用串行异步通信接口)、USB(通用串行总线接口)、I2C总线、SPI总线(同步通信)、485总线、CAN总线接口等。下面结合MCS-51单片机介绍常用UART接口。9.1.4串行通信接口种类1)接口信号RS-232C通信接口又称RS-232C总线标准。它向外部的连接器有25针和9针两种“D”型插头,各针的功能及排列如图图9-2(a)、图9-2(b)。
1.RS-232C通信接口2)电平转换单片机电平通常是TTL电平,它与RS232C电平不兼容,必须进行电平转换。RS-232C与TTL的电平转换的芯片有MCl488传输线驱动器和MCl489传输线接收器。由于MCl488和MCl489需要±15v或±12V供电,造成了使用不便,现常用+5v单电源供电的转换芯片,如MAXIM公司的MAX232芯片,它可以实现RS-232C与TTL/CMOS电平之间的转换。MA-X232的组成及引脚图如图9-3所示。
1.RS-232C通信接口2.RS-422A通信接口1)接口信号RS-422A通信接口是对RS-232C通信接口的改进,它采用平衡传输电气标准,输人/输出均采用差分驱动,因此具有更强的抗干扰能力,传送速率也大大提高。它向外部的连接器常采用9针“D”型插头,各针的功能及排列如图9-4所示。2.RS-422A通信接口2)电平转换能够将TTL电平转换为RS-422A电平的常用芯片有SN5174、MC3487等。能将RS-422A电平转换为TTL电平的常用芯片有SN75175、MC3486等。SN75174、SN75175分别具有三态输出的单片差分驱动器和接收器,符合E认标准的RS-422A规范,它采用+5V单电源供电,功能上可以与MC3487、MC3486互换。下图图9-5是用SN75174、SN75175实现的电平转换电路图。9.1.5信号调制与解调
MODEM与计算机连接的方式分成内接式和外接式。MODEM的调制方式有3种:1)振幅调制(ASK):以两种振幅的大小来区别数字信号“0”与“1”;2)频率调制(FSK):利用两个固定的频率来分别代表数字信号“0”与“1”;3)相位调制(PSK):利用相位的差异来区别信号,当相位差180º时代表位值的变化。9.1.6
串行接口的任务
1.进行串-并转换2.实现串行数据格式化3.可靠性检验4.实施接口与通信设备之间的联络控制
图9-2(a)25针插头引脚定义图图9-2(b)9针插头引脚定义图图9-3MAX232组成及引脚图图9-4RS-422A插头引脚定义图图9-5RS-422A接口电平转移电路9.251单片机串行口基本结构与操作方式9.2.1串行口的基本组成9.2.2串行口的SFR寄存器9.2.3串行口的工作方式9.2.4串行口的应用9.2.5例题返回
如图9.2.1所示,串行口由发送控制、接收控制、波特率输入管理和发送/接收缓冲器SBUF组成。串行口的通信操作体现为累加器A与发送/接收缓冲器SBUF间的数据传送操作。9.2.1串行口的基本组成图9.2.1单片机串行口示意图当对串行口完成初始化操作后要发送数据时,待发送的数据由A送入SBUF中,在发送控制器控制下组成帧结构并自动以串行方式发送到TXD端,在发送完毕后置位TI。如果要继续发送,在指令中将TI清零。接收数据时,置位接收允许位才开始串行接收操作,在接收控制器控制下,通过移位寄存器将串行数据送入SBUF。图9.2.1单片机串行口示意图1.SBUF—串行口数据缓冲器2.SCON—串行口控制寄存器3.PCON—电源及波特率选择寄存器9.2.2串行口的SFR寄存器1)共两个:一个发送寄存器SBUF,一个接收SBUF,二者共用一个地址99H。2)SBUF为不可位寻址寄存器。3)SBUF只能与A实现数据传送。1.串行口发送/接收缓冲器SBUF发送中断标志接收中断标志SM0SM1SM2RENTB8RB8TIRI工作方式选择多机通信控制位允许串行接收位接收数据的第9位发送数据的第9位9FH9EH9DH9CH9BH9AH99H98H2.串行口控制寄存器SCON
SCON为可位寻址寄存器,用于串行口的方式设定和数据传送控制,直接地址为98H。其功能位规定如下:SM0SM1工作方式功能波特率00方式08位同步移位寄存器fosc/1201方式18位UART可变10方式29位UARTfosc/64或fosc/3211方式39位UART可变例:设串行口工作在方式1,允许接收,则指令为:MOVSCON,#01010000B1)SM0、SM1
这两位为串行方式的定义方式选择位。用来选择串行口的四种工作方式,如下表。2)SM2该位为串行多机通信控制位。在方式2、方式3中用于
多机通信控制。在方式2、方式3的接收状态中:若SM2=1,
当接收到的第9位(RB8)为零时舍弃接收到的数据,RI清零;
当RB8为1时,将接收到的数据送SBUF中,并将RI置1。3)REN该位为允许接收位。REN=1时允许接收,REN由指令置位或清零。4)TB8该位为第9位发送数据。多机通信(方式2、方式3)中TB8标明主机发送的是地址还是数据,TB8=0为数据,TB8=1为地址。TB8由指令置位或清零。5)RB8该位为多机通信(方式2、方式3)中用来存放接收到的第9位数据,用以表明所接收的数据的特征。6)TI该位为发送中断标志位。方式0时,发送完8位数据后由硬件置位,其他方式下发送停止位时由硬件置位,并请求中断。T1=1表示帧发送结束,可供查询,TI由指令清零。7)RI该位为接收中断标志位。方式0时,接收完8位数据后由硬件置位,其他方式下接收到停止位时由硬件置位,并请求中断。RI=1,表示帧接收终了。RI可供查询,由指令清零。
串行通信只用该位,SMOD=1时,波特率×2;SMOD=0时,波特率不变。SMOD×××GF1GF0PDIDL87H3.电源及波特率选择寄存器PCON
串行口借用了电源控制寄存器PCON的最高位SMOD,用SMOD作为串行口波特率的倍增位。PCON为不可位寻址,直接地址为87H。
9.2.3串行口的工作方式SM0SM1工作方式功能波特率00方式08位同步移位寄存器fosc/1201方式18位UART可变10方式29位UARTfosc/64或fosc/3211方式39位UART可变1.方式01)特点
①用作串行I/0扩展,具有固定的波特率,为Fosc/12。②同步发送/接收,由TXD提供移位脉冲,RXD用作数据I/O通道。
③发送/接收8位数据,低位在先。2)发送操作
当执行一条“MOVSBUF,A”指令时,启动发送操作,由TXD输出移位脉冲,由RXD串行发送SBUF中的数据。发送完8位数据后自动置T1=1,请求中断。要继续发送时TI必须由指令清零(Tl=0)。3)接收操作
在RI=0条件下,置REN=1时启动一帧数据的接收,由TXD输出移位脉冲,由RXD接收串行数据到A中。接收完一帧自动置位RI,请求中断,想继续接收时要用指令清除RI。2.方式11)特点
①8位UART接口。②帧结构为10位,起始位0,8位数据,l位停止位。
③波特率由指令设置,由T1的溢出率决定。2)发送操作
当执行一条“MOVSBUF,A”指令时,A中的数据从TXD端实现异步发送。发送完一帧后置TI=0并请求中断,要求继续发送时,须指令清零TI。3)接收操作
当置位REN时,串行口采样RXD,当采样到I至0的跳变时,确认串行数据帧的起始位,开始接收一帧数据,直到停止位到来时,把停止位送入RB8中,置位RI请求中断并通知CPU从SBUF中取走接收的数据。RI由指令清零。3.方式2和方式31)特点
①9位UART接口。②帧结构为11位,包括起始位0、8位数据位、1位可编程位TB8/RB8和停止位l。
③波特率在方式2中固定为Fosc/32或Fosc/64由SMOD位选择。SMOD=1时,波特率为Fosc/32;SMOD=0时.波特率为Fosc/64。方式3中波特率决定于T1的溢出率。
方式2和方式3具有多机通信功能,两种方式除了波特率设置不同外,其余完全相同。2)发送操作
发送数据操作前,由指令设置TB8(如作为奇偶校验位或地址/数据标志位),将要发送的数据由A写入SBUF中后启动发送操作。在发送操作中内部逻辑会把TB8装入发送移位寄存器的第9位位置,然后发送一帧完整的数据,发送完毕时置位TI。TI由指令清零。多机通信的发送操作中,用TB8作地址/数据标识,TB8=-l为地址帧,TB8=0为数据帧。3)接收操作
当置位SEN位且RI=0时,启动接收操作,帧结构上的第9位送入RB8中。对所接收的数据则视SM2和RB8的状态决定是否会使RI置1,并清求中断,接收数据。当置SM2=0时,RB8不论任何状态R1都置1,串行口都接收发送来的数据。当置SM2=1时,为多机通信方式,接收到的RB8为地址/数据标识位。当RB8=1时接收的信息为地址帧,此时置位R1,串行口接收发进来的数据。当RB8=0时接收的信息为数据帧。若SM2=1时,R1不会置位,此帧数据丢弃;若SM2=0,则SBUF接收发送来的数据。1.串行口的波特率9.2.4串行口的应用方式0和方式2的波特率是不变的。方式0的波特率为Fosc/12,方式2的波特率为Fosc/32或Fosc/64,视SMOD位设置选择而定。SMOD=1时波特率为Fosc/32,SMOD=0时波特率为Fosc/64。方式l和方式3中的波特率是可变的,其具体数值由定时器T1的溢出率和SMOD位确定,即:
波特率=溢出率T1作波特率发生器使用时,通常选择计数初值自动重装的方式即方式2,工作在定时器状态,设计数初值为X,每过256-X个机器周期,T1就会产生一次溢出,其溢出周期为:
溢出率为溢出周期的倒数,故
波特率=波特率/(b/s)fosc/MHzSMOD定时器1C/模式初始值方式0:1M方式2:375k方式1、3:62.5k19.2k9.6k4.8k2.4k1.2k137.5k11011012121211.05911.05911.05911.05911.05911.986612×1110000000××000000000××222222221××FFHFDHFDHFAHF4HE8H1DH72HFEEBHT波特率=表9-1常用波特率表2.串行口的多机通信1)多机通信的连接方式
串行口的方式2和方式3具有多机通信功能,即可实现一台主单片机和若干个从单片机构成总线式的多机分布式系统,其连接方式如图9.2.2所示。图9.2.251的多机通信连接方式2)多机通信原理
多机通信时充分利用了单片机内的多机通信控制位SM2。当从机SM2=1时,从机只接收主机发出的地址帧(第9位为1),对数据帧(第9位为0)不予理睬;而当SM20时,可以接收主机发送的所有信息。多机通信过程如下:
所有从机的SM2置位1,都处于只接收地址帧的状态。
主机发送一帧地址信息,其中8位地址,第9位为1表示是地址帧。
所有从机接收到地址帧后,进行中断处理,把接收到的地址与自身地址相比较,地址相符时置SM2=0,不相符时维持SM2=1。
由于被寻址的从机使SM2=0,可以接受主机随后发送的信息,实现主机与被寻址从机的双机通信。
被寻址的从机通信完毕后,置SM2=1,恢复多机系统原有状态。3)通信协议
多机通信是一个复杂的通信过程,必须有通信协议来保证多机通信的可操作性和操作秩序,这些通信协议应包括从机的地址、主机的控制命令、从机的状态字格式和数据通信格式等的约定。3.数据通信中的校验与纠错1)奇偶校验
51数据通信使用7位的ASCⅡ码时,奇偶校验位可放在字节的最高位;而8位数据通信时,使用方式2和方式3的9位数据通信,奇偶校验位为第9位。奇偶校验的操作过程:当发送一个数据字节时,数据与奇偶位组成一帧一并发送;当接收方接收到一帧数据后,将数据和奇偶位分解,将接收数据送入A中,并将PSW中的奇偶位与传送过来的奇偶位相比较,若不同,则传进出错。2)累加和校验
如果传送一个数据块中有n个字节,在数据块传送之前对n个字节进行加运算,形成累加和,把累加和附在n个字节后面传送,接收方接收到n个字节后也按同样方法进行n个字节的加运算,并将两个累加和进行比较,如果不同,表示数据块传送出错。3)循环冗余校验其基本原理是将一个数据块看成一个很长的二进制数(如将一个128个字节的数据块看成是一个1024位的二进制数),然后用一个特定的数去除它,将余数作校验码附在数据块后一起发送。在接收到该数据块和校验码后,对它们进行同样的运算,所得余数应为零,如果不为零表示数据传送出错。5)通信中的纠错
无论采用上述那种校验方法t只能发现数据通信中的错误,发现出错后要求对方重发一遍来纠正错误,这在实时信息系统中无法实现(因信源已变)。即使保留有信源样本,当差错很频繁时会消耗大量的通信时间。这时就应借助具有纠错能力的编码通信。纠错码是采用加大码距的办法来区别非法代码,其纠错原理建立在概率统计的基础上,即出现两个差错的概率远小于出现一个差错的概率,而出现三个差错的概率又远小于出现两个差错的概率。因此,当接收到一个非法代码时,其正确代码应是逻辑空间中离它最近的有效代码。目前,常用的纠错码有汉明码、检二纠一码、矩形码等。[例1]串行口的波特率利用51的串行口UART实现一个数据块的发送。设发送数据缓冲区首地址为50H,发送数据长度(字节数)为10H;串行口为方式1工作
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年挖掘机租赁项目成本控制协议
- 成都呼叫中心外包合同范本
- 临汾市洪洞县引进笔试真题2023
- 消防工地合同范本
- 2024版智能医疗诊断系统合同
- 2023年首都医科大学附属北京地坛医院(含社会人员)招聘笔试真题
- 人借款合同范本
- 二零二四年商务车辆租赁合同
- 食品加盟合同范本
- 2024年度电梯光纤通讯升级合同
- 甲状腺消融术护理查房
- 人工智能大学生生涯规划
- 中医生活起居护理-疏仁丽
- 2024年甘肃省普通高中信息技术会考试题(含24套)
- 外贸公司管理制度
- 庄园推广策划方案
- 子路曾皙冉有公西华侍坐教案
- 《冬季鸡舍通风》课件
- 人教版小学三年级语文课外阅读理解精练试题全册
- AI智能客服应用实践
- 《止吐药临床应用》课件
评论
0/150
提交评论