资源预览内容
第1页 / 共39页
第2页 / 共39页
第3页 / 共39页
第4页 / 共39页
第5页 / 共39页
第6页 / 共39页
第7页 / 共39页
第8页 / 共39页
第9页 / 共39页
第10页 / 共39页
亲,该文档总共39页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第11章 串行通信技术,学习目标 : 1了解数据通信的有关概念、传输方式、串行通信的两种格式与三种制式。 2了解单片微机之间的串行通信原理与过程。 3了解PC机与单片机之间的串行通信,掌握RS-232C接口总线与RS-485接口总线的电气特性与转换接口电路。,返回总目录,本章主要内容,引言,11.1 数据通信概述,11.2 单片机之间的串行通信,11.3 PC机与单片机之间的串行通信,本章小结,思考题,引言,随着现代化工业生产规模的不断扩大,对生产过程的控制和管理也日趋复杂。因此,现代的微机控制系统通常是一种由多台微机分散配置在各处而构成的工业测量与控制网络。 那么,单片微机之间,单片微机与PC机之间是如何完成信息传递与控制管理的呢?还是让我们先来了解一下有关数据通信的基本知识吧。,11.1 数据通信概述,11.1.1 数据通信概念 在微机控制系统中,数据通信的范围相当广泛,从数据在计算机系统内部的传送和计算机与外部设备间的传送,一直到计算机网络之间的数据传送都称为数据通信。数据通信的实质是以计算机为中心,通过某些通信线路与设备,对二进制编码的字母、数字、符号以及数字化的声音、图象信息进行的传输、交换和处理。 由于计算机的信息是以字节(8位)或字(1个或几个字节)为单位进行处理,所以以字或字节为传输单位比较合适。数据通信的基本传输方式有并行通信和串行通信两种。,1并行通信,并行通信是指所传送数据的各位同时发送或接收。数据有多少位,就要多少根传输线。 这种传输方式的特点是传输速度快,但传输线数量多,成本高,适合近距离传输。例如计算机内部的单片机与存储器之间、计算机与某些外设如打印机之间的数据传送就属于并行通信方式。,2串行通信,串行通信是指所传送数据的各位按顺序一位一位地发送或接收。 它的特点是只需一对传输线,甚至可以利用电话线作为传输线,这样就大大降低了传输成本,特别适用于远距离通信,其缺点是传输速度较慢。 通常说的微机控制系统的数据通信,主要是指计算机与计算机之间的远距离通信,因而串行通信已成为微机控制系统的主要通信方式。,11.1.2 串行通信格式,当两个设备进行串行通信时,以什么传输格式来保证接收端能接收到正确的字符呢?按数据传输的同步与否,串行通信有同步通信和异步通信两种格式。 1同步通信 同步串行通信是一种连续传送数据块的方式。它以两个同步字符开头,使收发双方取得同步,后面是连续的数据块,数据块后面再加上检验字符。若传送的数据没有准备好则以同步字符来填充,直到数据准备好。同步通信由于字符间无间隙,传送速度相对较高,可以实现高速度、大容量的数据传送。,2异步通信 异步串行通信为数据不是连续传送,而是一个字符一个字符地顺序按帧传送,字符格式如图11-1所示。开头一个起始位“0”,接着是58位数据位,且规定低位在前、高位在后,然后是一个奇偶校验位,最后加上一个停止位“1”表示字符的结束。若数据没有准备好则以空闲字符“1”来填充,直到数据准备好形成下一帧。,在异步传送时,同步时钟脉冲并不传送到接收端,即双方各用自己的时钟源来控制发送与接收,接收端完全靠每一帧的起始位与停止位来识别字符的传送进程。 异步通信在技术上较为容易实现,因此得到了广泛的应用。 串行接口电路芯片的种类很多,如通用异步接收器发送器UART能够完成异步通信的硬件电路,USRT能够完成同步通信的硬件电路,USART是既能异步又能同步通信的硬件电路。,3波特率,波特率是串行通信中的一个重要的指标。它定义为每秒钟传送二进制数码的位数,单位是比特每秒(bit/s或bps、b/s)或兆波特每秒(Mb/s)表示。 在异步通信中,波特率为每秒传送的字符数与每个字符位数的乘积。例如,如果每秒传送的速率为120字符秒,而每个字符包含10位(1个起始位、7个数据位、l位奇偶校验。l位停止位),则波特率为: 120字符秒10位字符 =1200位/秒(b/s) 现在异步通信的波特率可达100Mb/s,当采用光纤作为传输介质时,传输波特率更高。,11.1.3 串行通信制式,在串行通信中,数据是在两个站之间传送的。按照数据传送方向,串行通信可分为单工、半双工和全双工三种制式,如图11-2所示。 1单工制式 在单工制式下,通信线的一端接发送器,另一端接接收器,它们形成单向联接,只允许数据按照一个固定的方向传送。如图11-2(a)所示,数据只能由甲站传送到乙站。,2半双工制式 在半双工制式下,系统中的两个站都由一个发送器和一个接收器组成,通过收发开关接到一根通信线上,如图11-2(b)所示。在这种制式下,数据能从甲站传送到乙站,也能从乙站传送到甲站,但是不能同时在两个方向上传送,只能交替的发送和接收。其收发开关并不是实际的物理开关,而是由软件控制的电子开关,通信线两端通过半双工协议进行功能切换。 3全双工制式 在全双工制式下,两个站的每端都含有发送器和接收器,通过两条通信线可以同时传送两个方向的数据流,而不是交替进行,如图11-2(c)所示。 需要注意的是,尽管许多串行通信接口电路具有全双工功能,但在实际应用中,多数情况下仍工作于简单、实用的半双工制式。,11.2 单片微机之间的串行通信,AT89C52单片机除具有4个8位的并行口外,还具有1个可编程的全双工串行接口。该串行口主要由两个独立的接收、发送缓冲器SBUF及发送控制器、接收控制器、输出控制门、输入移位寄存器等组成,共有4种工作方式,波特率可用软件设置。使用该串行接口可以实现单片机与单片机之间的数据通信以及单片机与PC机之间的数据通信。,11.2.1 单片机双机通信,当两个单片微机系统相距很近,只要将它们的串行口直接相连,即可实现全双工的双机通信,即两个单片机系统可以同时发送和接收。当串行口工作在方式1状态下,串行口就成为波特率可变的8位异步串行通信口,如图11-3所示。TXD为信号发送端,RXD为信号接收端,GND为信号地。,1通信协议,串行通信的各方均是相对独立的系统,如要确保通信成功,通信双方必须事先作出一系列的约定通常称为通信协议,本例规定的通信协议如下。 本例为双机异步通信,波特率为2400b/s(假定系统时钟均为6MHz);一帧信息为10位,其中1位起始位、8位数据位、1位停止位;以甲机发送数据乙机接收数据的呼叫与应答为例:双机开始通信时,甲机发送一个呼叫信号“06”,询问乙机是否可以接收数据,乙机收到呼叫信号后,若同意接收数据则发回“00”作为应答,否则发“15”表示暂不能接收数据。甲机只有收到乙机的应答信号“00”后才可把存放在外部数据存储器的内容发送给乙机,否则继续向乙机呼叫,直到乙机同意接收。,2通信软件,(1)甲机查询式发送子程序 开始定时器,串行口初始化地址指针DFTR、数字计数器R7、校验寄存器R6置初值发送呼叫信号06H等待乙机回答是00H?发数据长度发送校验和等待乙机回答发送完否?发送正确?返回NYNYYN 图11-4为发送程序流程图。首先对定时器TI和串行口进行初始化,使串行口在2400波特率下以方式1工作。在其后的发送程序开始外,还要为循环发送n个数据设置指针和计数器等。接着分3个阶段完成全部发送过程,即呼叫、循环发送数据、等待乙机确认。如果乙机回答接收的数据有错,则重复发送程序过程。,图11-4 双机通信发送程序流程图,图11 5 双机通信查询式接收程序流程图,(2)乙机查询式接收子程序 图11-5为查询式接收程序流程图。由初始化、等待应答呼叫、接收数据、确认等几个步骤组成。,3故障排除 如果在调试中出现问题,一般应考虑硬件故障和软件故障。 硬件故障的主要原因是接触不良、通信线路中的芯片损坏。为了迅速并准确查明故障点,可编制简短的测试小程序。如编一个连续发送一个字符的程序,在该程序中不要安排接收对方的回答信息,分别在通信的双方单独运行。这时用示波器就应在收方的一端(RXD引脚)观察到对方发来的信号波形。若观察不到,即可断定这个通路存在问题。这时就用示波器查看该通道中各连接点、沿线所涉及到的芯片中的出端、入端各点的波形,从而迅速对故障定位。,软件故障应主要考虑软件的容错性。如果发方比收方先运行程序,则发方将因等不到收方的回答信号而陷于死循环,而收方因丢失发方发过来的呼叫信息也将陷于等待。解决此类问题的办法是,程序中凡需等待对方应答的地方,都加上适当延时,超过一定时间,就返回重新呼叫,接通联系。 在通信调试过程中,如出现有时正常有时不正常的现象,那么就可能是某芯片不可靠或某接触点接触不良,排除的方法应参考硬件故障的解决。,11.2.2 单片机多机通信,通常AT89C52的多机通信采用主从式多机通信方式,即一台主机多台从机,图11-6为多机通信的主从式网络结构示意图。主机发送的信息可以传送到各个从机或指定的从机,各从机发送的信息只能被主机接收,各个从机之间必须通过主机才能交换数据。,多机通信中,要保证主机与所选择的从机实现可靠的通信,必须保证通信接口具有识别功能。AT89C52芯片的串行口控制寄存器SCON中的控制位SM2就是为满足这一要求而设置的。在串行口以方式2或方式3接收时,若SM2 =1,则表示置多机通信功能位。为了提高从机的工作效率,希望只有与主机通信的从机才响应串行通信线路上的信号变化。当主机不与某从机通信时,该从机可不理睬通信线路上的信号变化。 当前,多机通信中以单片机为主机的模式已逐渐让位于以PC机为主机的模式。因此,让我们来看看更有实际意义的PC机与单片机之间的通信。,11.3 PC机与单片机之间的串行通信,将一台PC机与若干台AT89C52单片机构成小型分散测控系统,是目前微机控制系统中最常用的一种网络模式。这种网络模式是把以单片机为核心的智能式测控仪表作为从机(又称下位机),它能可靠地完成对工业现场的数据采集和各种控制任务,但它的图形处理与运算功能较差,而PC机作为主机(又称上位机)利用其优势可以将传送上来的数据进行复杂加工处理以及图文并茂地显示出来,同时还将控制命令送给各个下位机,以实现集中管理和最优控制。这里,关键的问题是要解决PC机与各单片机之间的数据通信问题。 在实现计算机与计算机、计算机与外设间的串行通信时,通常采用标准通信接口。常用的异步串行通信接口有RS-232C总线和RS-485等总线标准。,11.3.1 RS-232C接口总线,RS-232C总线是由美国电子工业协会EIA于1969年修定的一种通信接口标准,专门用于数据终端设备DTE和数据通信设备DCE之间的串行通信。数据终端设备DTE(data terminal equipment)是数据的源点或归宿,通常是指输入、输出设备和传输控制器或者计算机等数据处理装置及其通信控制器。数据通信设备DCE(data communication equipment)的任务是实现由源点到目的点的传输,通常是指自动呼叫应答设备、调制解调器以及其它一些中间装置的集合。因此,一般计算机的串行口COM1或COM2均符合RS-232C总线接口标准。,1信号定义 RS-232C的标准总线为25根,它的接口采用25针连接器DB-25。其中阳性插头(DB-25-P)与DTE相连,阴性插座(DB-25-S)与DCE相连。实际应用中,并非25根引脚都用,表11-1给出了常用的11根引脚的信号功能。,表11-1 常用的RS-232C接口信号,2电气特性,由于RS-232C是早期为促进公用电话网络进行数据通信而制定的标准。为了增加信号在线路上的传输距离和提高抗干扰能力,RS-232C采用了较高的传输电平,且为双极性、公共地和负逻辑,即规定低电平“0”在 5 V 15 V之间,高电平 “1” 在5 V 15 V之间。 而一般单片机及它的串行口均采用TTL逻辑电平。TTL电平规定低电平 “0” 在 0 V 0.8 V 之间,高电平“1” 在+2.4 V 5 V之间,因此TTL电平不能
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号