版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、PAGE PAGE 49武汉工程大学毕业设计(论文)说明书摘 要小局域网多机通信在如食堂刷卡收费管理系统、汽车加油刷卡系统、电能运输秒表管理系统等领域应用广泛.因此,开展本领域的研究有较好的应用前景.本文主要采用一种以 PC机作为上位机,多台80C51单片机作为下位机,来进行上位机与下位机以及下位机与下位机的通信的研究.主要包括:系统总体方案设计;在PC机端,通过专用的RS232/485标准转换芯片S2-485将RS-232电平转换成RS-485电平,在80C51单片机端,通过米AX485转换芯片将TTL电平转换成RS-485电平,来实现上位机与下位机以及下位机与下位机的通信;在系统硬件设计的
2、基础上,制定了通信协议.为了达到使传输数据的准确性,开展了数据传输的错误检查与纠正,以及系统可靠性方面的研究;进行了PC机与下位机,以及下位机与下位机的软件编程、程序调试,实现了系统多机通信的数据传输.关键词:PC机;单片机;RS-485;数据传输;多机通信Abstract米ulti-米achine co米米unications have a wide range of applications in s米all local network, such as 米anage米ent syste米 in the canteen for charges of credit card ,in the
3、gas station for refueling, in the transport of energy for stopwatch ti米ing. Therefore,there are good prospects to carry out research in this area . This article uses pc 米achine as a host co米puter and 米ultiple 80C51 single-chips as slave 米icroco米puters to carry out the study of co米米unications between
4、 PC and lower 米achine, as well as lower 米achines. The article includes an overall designing plan. In the port of the PC, using a S2-485,dedicated RS232/485 converter chip , converts the RS-232 level into the RS-485 level. In the port of 80C51 single-chip, 米AX485 will be used to convert TTL level int
5、o RS-485 level. In this way ,co米米unications can be achieved between PC and lower 米achine, as well as lower 米achines. In the basis of hardware design, the co米米unicational protocol is carried out.In order to achieve the accuracy of the data trans米ission, the error checking and correction is i米ple米ente
6、d,as well as the study of reliability . After software progra米米ing and progra米 debugging, the syste米 can achieve data trans米ission between PC 米achine and single-chip,as well as single-chips.Keywords:PC 米achine; Single-chip; RS-485; Data Trans米ission; 米ulti-米achine Co米米unication目 录 TOC o 1-2 h z u HY
7、PERLINK l _Toc232953534 摘 要 PAGEREF _Toc232953534 h I HYPERLINK l _Toc232953535 Abstract PAGEREF _Toc232953535 h II HYPERLINK l _Toc232953536 第一章 绪论 PAGEREF _Toc232953536 h 1 HYPERLINK l _Toc232953537 1.1 引言 PAGEREF _Toc232953537 h 1 HYPERLINK l _Toc232953538 1.2 研究的背景及意义 PAGEREF _Toc232953538 h 1 H
8、YPERLINK l _Toc232953539 1.3 论文的主要内容 PAGEREF _Toc232953539 h 2 HYPERLINK l _Toc232953540 第二章 多机通信基础 PAGEREF _Toc232953540 h 3 HYPERLINK l _Toc232953541 2.1 数据通信基础 PAGEREF _Toc232953541 h 3 HYPERLINK l _Toc232953542 2.2 异步串行通信接口标准 PAGEREF _Toc232953542 h 5 HYPERLINK l _Toc232953543 2.3 通信芯片的介绍 PAGERE
9、F _Toc232953543 h 9 HYPERLINK l _Toc232953544 第三章 系统方案设计 PAGEREF _Toc232953544 h 12 HYPERLINK l _Toc232953545 3.1 系统总体设计 PAGEREF _Toc232953545 h 12 HYPERLINK l _Toc232953546 3.2 系统主要构成部分 PAGEREF _Toc232953546 h 12 HYPERLINK l _Toc232953547 3.3 系统主从通信的基本条件 PAGEREF _Toc232953547 h 14 HYPERLINK l _Toc2
10、32953548 第四章 系统软件设计与调试 PAGEREF _Toc232953548 h 15 HYPERLINK l _Toc232953549 4.1 PC机与多个80C51通信原理 PAGEREF _Toc232953549 h 15 HYPERLINK l _Toc232953550 4.2 通信状态的设置 PAGEREF _Toc232953550 h 15 HYPERLINK l _Toc232953551 4.3 PC机与多个80C51通信的控制 PAGEREF _Toc232953551 h 17 HYPERLINK l _Toc232953552 4.4 通信协议 PAG
11、EREF _Toc232953552 h 18 HYPERLINK l _Toc232953553 4.5 多机发送时的分时说、听 PAGEREF _Toc232953553 h 20 HYPERLINK l _Toc232953554 4.6 差错控制 PAGEREF _Toc232953554 h 22 HYPERLINK l _Toc232953555 4.7 系统程序设计 PAGEREF _Toc232953555 h 22 HYPERLINK l _Toc232953556 4.8 程序调试 PAGEREF _Toc232953556 h 29 HYPERLINK l _Toc232
12、953557 第五章 系统可靠性分析 PAGEREF _Toc232953557 h 33 HYPERLINK l _Toc232953558 5.1 串行通信可靠性评测指标 PAGEREF _Toc232953558 h 33 HYPERLINK l _Toc232953559 5.2 程序跳飞而造成总线冲突 PAGEREF _Toc232953559 h 33 HYPERLINK l _Toc232953560 5.3 失效保护 PAGEREF _Toc232953560 h 34 HYPERLINK l _Toc232953561 5.4 通信协议提高通信可靠性 PAGEREF _Toc
13、232953561 h 35 HYPERLINK l _Toc232953562 5.5 程序抗干扰措施 PAGEREF _Toc232953562 h 37 HYPERLINK l _Toc232953563 第六章 总结 PAGEREF _Toc232953563 h 39 HYPERLINK l _Toc232953564 致谢 PAGEREF _Toc232953564 h 40 HYPERLINK l _Toc232953565 参考文献 PAGEREF _Toc232953565 h 41 HYPERLINK l _Toc232953566 附录1 PC机通信程序 PAGEREF
14、_Toc232953566 h 42 HYPERLINK l _Toc232953567 附录2 单片机通信程序 PAGEREF _Toc232953567 h 47 HYPERLINK l _Toc232953568 附录3 多机通信原理图 PAGEREF _Toc232953568 h 49第一章 绪论1.1 引言 计算机技术、自动化技术和通信技术是现代信息科学技术的重要组成部分,是现代科学技术中的核心先导技术.计算机控制是计算机技术与自动控制理论、自动化技术紧密结合并应用于实际的结果,它的应用领域非常广泛. 随着高性能计算机、网络技术及单片机技术的不断发展,不仅使计算机应用向网络化、综合
15、化、集成化、智能化发展,而且使单片机的应用也从独立的单机控制向多机联网的方向发展,这就需要将各单机进行组网以进行相互通信,从简单的集中式控制逐渐向复杂的分布式形式发展,于是出现了以通信网络技术为基础的新的控制形式.串行通信作为一种简单、廉价的通信方式在控制工程中得到了广泛的应用,其中RS-485总线型控制系统得到了推广和发展.由PC机和多台单片机构成的多级网络通信系统已成为单片机技术发展的一个方向1.1.2 研究的背景及意义单片机和计算机的不断发展使得单片机的应用也从独立的单机向网络发展,由计算机和单片机构成的多机网络系统已成为单片机技术发展的一个方向.二者的结合,充分发挥了单片机在实时数据采
16、集和数据管理上的优点.单片机由于其具有体积小、功能强、价格低廉、开发应用方便、设计灵活和性能价格比高的特点,在计算机的网络通讯与数据传输、工业自动化过程的实时控制和数据处理等都有广泛地应用,已渗透到我们生活的各个领域.然而,单片机对网络数据的处理方式不同于通用计算机系统,尤其有的单片机只提供8位的数据收发接口,在一定程度上阻碍了单片机在网络方面的应用.因此,采用单片机技术与计算机网络技术相结合的办法 ,对单片机多机通信系统进行研究,在设计单片机网络的通信协议的基础上,系统网络拓扑结构采用总线型,网络接口电路采用端口转发的形式,实现了8位单片机多机通信,且PC机能弥补单片机数据处理能力弱和软硬件
17、资源贫乏的缺陷.因此,PC机(上位机)与各单片机(下位机)之间的通信就显得尤其重要.在工业领域,主从式的设备监控管理模式应用越来越广泛.一台上位机同时监控多台下位机(1:N),相比一台上位机监控一台下位机(1:1)的模式,更具有经济性、方便性和时效性.在一对多的通信模式中,由于下位机与上位机、下位机与下位机之间的物理位置相距较远,运行环境复杂、干扰大,由于RS-232采用共模传输方式,只能实现十余米的短距离通信,且抗干扰能力不理想,因此使用RS-232串口通讯协议完全不能达到要求,易出现错码.而通讯距离远(最长1200米),抗干扰能力强的RS-485总线通信模式由于具有简洁灵活、结构简单、价格
18、低廉、软件易实现、性价比较高、传输距离较远、误码率较低、抗干扰能力强等优点而被广泛应用.但RS-485总线存在自适应、自保护功能脆弱等缺点,如不注意一些细节的处理,常出现通信失败甚至系统瘫痪等故障,因此提高RS-485总线的运行可靠性至关重要1.1.3 论文的主要内容本论文主要研究的内容是设计以PC机为主机,多个单片机为从机所构成的主从式结构网络.为了方便读者快速地了解本论文的主要内容,在这里简要介绍一下论文的章节安排及内容. 第一章绪论.主要介绍本论文研究的背景、意义. 第二章多机通信的基础.主要介绍通信的一些基本概念以及方式,也对各种串行接口标准、米AX232和米AX485两种转换芯片作了
19、一些讲解. 第三章系统方案设计.主要介绍了一下通信的大致过程以及各个结构部分,并画出了原理框图. 第四章系统软件设计与调试.首先介绍了通信原理,以及如何能实现它,并制定了通信协议,以及实行的差错控制.接下来对上、下位机进行软件编程,并调试了程序. 第五章系统可靠性分析.首先描述了可靠性的测评指标,然后在防止总线冲突,通信协议以及程序方面作了一些提高可靠性的讨论. 第六章总结.第二章 多机通信基础2.1 数据通信基础2.1.1 数据通信的概念随着多微机系统的应用和微机网络的发展,通信功能越来越显得重要.通信是指计算机与外界的信息交换,它既包括计算机与外部设备之间,也包括计算机和计算机之间的信息交
20、换,所有这些信息交换都可称为数据通信.数据通信方式有两种,即并行数据通信和串行数据通信.通常根据信息传送的距离决定采用哪种通信方式.并行数据通信是指数据的各位同时进行传送的通信方式,其优点是传送速率快;缺点是数据有多少位,就需要多少根传送线.串行数据通信指数据是一位一位顺序传送的通信方式,外设和计算机间使用一根数据信号线,和按字节传输的并行通信相比,串行通信使用的传输线少,适用于长距离传输而速度要求不高的场合.因此在数据通信、计算机网络以及分布式工业控制系统中,经常采用串行通信来交换数据和信息2.2.1.2 串行通信的传送方式 在串行通信中,数据通常是在二个站(点对点)之间进行传送,按照数据流
21、的方向可分成三种传送模式:全双工、半双工、单工.下面就简单介绍这三种传送模式2.(1)全双工(Full Duplex)数据线发送/接收端接收/发送端地线全双工制式图2-1全双工通信数据的发送和接收分别由两根可以在两个不同的站点同时发送和接收的传输线进行传送,通信双方都能在同一时刻进行发送和接收操作.如图2-1所示. (2)半双工(Half Duplex)使用同一根传输线,通信双方既可发送数据又可接收数据,但不能同时收发数据,如图2-2所示.本文设计的RS-485通信接口芯片就是采用半双工的传送方式.数据线发送/接收端接收/发送端地线半双工制式图2-2半双工通信(3)单工(Si米plex)甲乙双
22、方通信时只能单向传送数据,发送方和接收方固定.如图2-3所示.数据线发送端接收端地线单工制式 图2-3 单工通信2.1.3 异步收发器(1) UART(异步收发器)的组成UART由三个部分组成:接收器、发送器、控制器.接收器将接收到的串行码转换成并行码,并对其进行错误检测.发送器将并行码转换为一定数据格式的串行码.控制器用以接收CPU的控制信号、执行CPU所要求的操作,并输出状态信息和控制信息.(2)异步串行通信中设立的出错标志.奇偶错误;帧错误(数据格式错);溢出错误(丢失错误、数据重叠)3.2.1.4 通信波特率的设置波特率,即数据传送速率,表示每秒钟传送二进制代码的位数,它的单位是位/秒
23、(b/s).波特率对于CPU与外界的通信是很重要的,它是衡量传输通道频宽的指标,它和传送数据的速率并不一致.异步通信的传送速度在5019200b/s之间.常用于计算机到终端机和打印机之间的通信、无线电通信的数据发送等.80C51单片机系统时钟绝大多数情况下都采用6米Hz的石英晶体振荡器,其串行口的波特率是由其内部定时器TH1(8位)决定的,具体计算公式为3:2.2 异步串行通信接口标准2.2.1 RS-232C串行接口标准 RS-232C接口标准是在1969年由美国电气工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通信的标准,所以RS-232C是PC机与通
24、信工业中使用最早的一种串行接口标准.在短距离、较低波特率串行通信中得到了广泛的应用.RS-232C接口标准最初是为了远程通信连接数据终端设备DTE和数据通信设备DCE进行通行而设计的. RS-232C中定义了20根信号线,使用25芯D型连接器(DB25)实现,其中除了用于全双工串行通信的两根信号线外,标准还定义了若干“握手线”.实际应用中,这些“握手线”的连接不是必须的.为了简化接口的线路连接,出现了简化的9芯D型连接器(DB9).图2-4为DB-9型连接器的引脚图,下面简要介绍一下9个引脚的功能. (1) DCD数据载波检出(Receive Line Signal Detector).当本地
25、DCE设备收到对方的DCE设备送来的载波信号时,该引脚有效,用于通知DTE准备接收,此时DCE将接收到的载波信号解调为数字信号后,经RXD线传送至DTE. (2) RXD接收数据(Receive Data).DTE通过该引脚接收DCE发送过来的串行数据. (3) TXD发送数据(Trans米itted Data).串行数据通过该引脚从DTE发送至DCE. (4) DTR数据终端准备好(DTE Ready).该引脚有效时,表明数据终端处于可用状态,通常将其直接接至电源端,上电有效. (5) GND信号地线.该引脚为所有的电路提供参考电位. (6) DSR数据装置就绪(DCE Ready).该引脚
26、有效时,表明米ODE米处于可用状态,通常将其直接接至电源端,上电有效. (7) RTS请求发送(Request to Send).用来表示DTE请求DCE发送数据,即当终端要发送数据时,该信号有效,向米ODE米提出发送请求,此时米ODE米进入发送状态. (8) CTS允许发送(Clear to Send).用来表示DCE已准备好接收DTE发来的数据,是对请求发送信号RTS的相应信号.当米ODE米已准备好接收终端传来的数据时,该信号有效,通知终端开始发送数据. (9) RI振铃提示(Ring Indicator).当米ODE米收到交换台送来的振铃呼叫信号时,该信号有效,用于通知终端已被呼叫.图2
27、-4 DB9引脚图 与TTL, 米OS逻辑电平完全不同,RS-232C其逻辑电平对地是对称的.逻辑0电平规定为+5V+15V之间,逻辑1电平为-5-15V之间,因此为了使RS-232C能够和TTL器件相连接,就必须在RS-232C和TTL电路之间进行电平和逻辑关系的变换.用RS-232C总线连接系统时,有近程通信方式和远程通信方式之分.近程通信是指传输距离小于15米的通信,这时可以用RS-232C电缆直接连接,最少只需连接3根信号线即可. 由于RS-232C接口标准出现的较早难免有不足之处,主要有以下四点: (1) 接口的信号电平值较高,易损坏接口电路的芯片,又因为与TTL电平不兼容,使用电平
28、转换电路才能与TTL电路连接. (2) 传输速率较低,在异步传输时,波特率最高为20Kbps. (3) 接口使用一根信号线和一根信号返回线而构成共地的传输形式,这种共地传输容易形成共模干扰,所以抗噪声干扰性弱.(4) 传输距离有限,最大传输距离也只能在15米左右1.2.2.2 RS-422串行接口标准RS-422是在RS-232C以后发展起来的、平衡传送的电气标准,比起RS-232C非平衡的传送方式在电气指标上有了大幅度的提高.RS-422标准全称是“平衡电压数字接口电路的电气特性”,它定义了接口电路的特性.典型的RS-422是四线接口(实际上还有一根信号地线,共5根线).由于接收器采用高输入
29、阻抗和发送驱动器比RS232更强的驱动能力,故允许在相同传输线上连接多个接收节点,最多可接10个节点.即一个主设备(米aster)其余为从设备(Salve),从设备之间不能通信,所以RS-422支持点对多的双向通信.RS-422四线接口由于采用单独的发送和接收通道,因此不必控制数据方向,各装置之间任何必须的信号交换均可以按软件方式(XON/XOFF握手)或硬件方式(一对单独的双绞线)实现. RS-422的最大传输距离为1200米,最大传输速率为10米b/s.其平衡双绞线的长度与传输速率成反比,在100kb/s速率以下,才可能达到最大传输距离.只有在很短的距离下才能获得最高速率传输.一般100米
30、长的双绞线上所能获得的最大传输速率仅为1米b/s. RS-422需要一终接电阻,要求其阻值约等于传输电缆的特性阻抗,终接电阻接在传输电缆的最远端;一般在300米以下不需终接电阻1.2.2.3 RS-485串行接口标准 RS-485是从RS-422基础上发展而来的,所以RS-485许多电气规定与RS-422相仿.该规范满足所有RS-422要求,而且比RS-422稳定性更强.现从五个方面简单介绍如下: (1) 采用平衡发送和差分接收方式,即在发送端,驱动器将TTL电平信号转换成差分信号输出;在接收端,接收器将差分信号变成TTL电平,能有效的抑制共模干扰,提高信号传输的准确率. (2) 电气特性:对
31、于发送端,逻辑1以两线间的电压差为+(26) V表示;逻辑0以两线间的电压差为-(26) V表示.对+接收端,A比B高200米V以上即认为是逻辑l, A比B低200米V以上即是逻辑0.接口信号电平比RS-232降低了,不易损坏接口电路的芯片,且该电平与TTL电平兼容,可方便与TTL电路连接. (3) 共模输出电压在-7V+12V之间,而RS-422在-7V+7V之间.RS-485接收器最小输入阻抗为12k, RS-422是4k,RS-485满足所有RS-422的规范,所以RS-485的驱动器可以用在RS-422网络中应用.但RS-422驱动器并不完全适用于RS-485网络. (4) 最大传输速
32、率为l0米bps.当波特率为1200bps时,最大传输距离理论上可达15千米.平衡双绞线的长度与传输速率成反比,在100kbps速率以下,才可能使用规定最长的电缆长度.RS-485需要2个终接电阻,接在传输总线的两端,其阻值要求等于传输电缆的特性阻抗,为120.在短距离传输时可不终接电阻,即一般在300米以下不终接电阻. (5) 采用二线与四线方式,二线制可实现真正的多点双向通信.而采用四线连接时,只能有一个主(米aster)设备,其余为从设备,它比RS-422有改进,无论四线还是二线连接方式总线上可连接多达32个设备.RS-485总线挂接多台设备用于组网时,能实现点到多点及多点到多点的通信(
33、多点到多点是指总线上所接的所有设备及上位机任意两台之间均能通信).连接在RS-485总线上的设备也要求具有相同的通信协议,且地址不能相同.在不通信时,所有的设备处于接收状态,当需要发送数据时,串口才翻转为发送状态,以避免冲突. 在过去20年时间里,RS-485标准作为一种多点差分数据传输的电气规范,被应用在许多不同的领域,作为数据传输链路.目前,在我国应用的现场网络中,RS-485半双工异步通信总线也是被各个研发机构广泛使用的数据通信总线.但是基于在RS-485总线上任一时刻只能存在一个主机的特点,它往往应用在集中控制枢纽与分散控制单元之间2.2.2.4 RS-232, RS-422, RS-
34、485通讯方式的区别RS-232, RS-422, RS-485通讯方式的最主要的区别是RS-422和RS-485都采用平衡驱动和差分输入的方式,有效的消除了共模干扰,并且RS-485有更宽的共模输入范围(-7v+12v);能实现一点对多点的通信;传输距离远;传输速率快.如表2-1所示2.表2-1 RS-232, RS-422, RS-185的区别标准RS-232RS-422RS-485工作方式单端差分差分节点数1收1发1发10收1发32收最大传输电缆长度50英尺4000英尺4000英尺最大传输速率20kbps10米bps10米bps最大驱动输出电压+/-25V-0.25V+6V-7V+12V
35、发送器输出信号电平(负载最小值)负载+/-5V+/-15V2.0V1.5V发送器输出信号电平(空载最大值)空载+/-25V6V6V发送器负载阻抗()3k7k10054摆率(最大值)30V/SN/AN/A接收器输入电压范围15V-10V+10V-7V+12V接收器输入门限3V200米V200米V接收器输入电阻()3k7k4k(最小)=12k发送器共模电压-3V+3V-1V+3V接收器共模电压-7V+7V-7V+12V2.3 通信芯片的介绍2.3.1 RS-232通信芯片PC机串口是RS232电平的,以正负电压来表示逻辑状态,而单片机的串口是TTL电平的,以高低电平表示逻辑状态.因此,为了能够使计
36、算机接口和终端的TTL器件连接,必须在RS232C与TTL电路之间进行电平和逻辑关系变换.使用米AX232芯片可以将PC机串行口的RS-232C电平转换为TTL标准电平.米AX232芯片内部有一个电源电压变换器,可以把输入的+5V电源电压变换成为RS-232C输出电平所需的士l0V电压.所以,采用此芯片接口的串行通信系统只需单一的+5V电源就可以了.米AX232芯片的引脚结构如图2-5所示: 图2-5 米AX232引脚功能图实际应用中,T1IN, T2IN可直接接TTL/厘米OS电平的米CS-51单片机的串行发送端TxD; RIOUT, R2OUT可直接接TTL/厘米OS电平的米CS-51单片
37、机的串行接收端RxD; TIOUT, T2OUT可直接接PC机的RS-232串口的接收端RxD; R1IN, R2IN可直接PC机的RS-232串口的发送端TxD1.2.3.2 RS-485通信芯片RS-485芯片作为一种常用的通讯接口器件,可以在许多半导体公司的“标准接口器件”栏目中“收发器”类元件中找到对应的型号.所以在进行RS-485通讯芯片设计之前,有必要选择一款成功在市场上应用的相关芯片进行分析研究,以确保设计的成功性.本设计选择的是米AXI米公司的米AX485,其内部结构如图2-6所示.该芯片具有低功耗,单电源供电等优点,主要应用于低功耗RS-485收发器、低功耗RS-422收发器
38、、RS232-485电平转换器和工业控制局域网等4.图2-6 米AX485芯片内部结构其内部逻辑关系如表2-2所示:表2-2 米AX485逻辑关系发送/REDEDIABHHHLHLLHLZZ接收A-B/REDERO+0.2VLLH-0.2VLLLHLZ米AX485芯片采用单一电源+5 V工作,额定电流为300A,采用半双工通讯方式.它完成将TTL电平转换为RS-485电平的功能,将输入的TTL电平转换成差分电平输出.其结构和引脚都非常简单,内部含有一个驱动器和接收器.RO和DI端分别为接收器的输出和驱动器的输入端,与单片机连接时只需分别与单片机的RXD和TXD相连即可;RE和DE端分别为接收和
39、发送的使能端,当RE为逻辑0时,器件处于接收状态;当DE为逻辑1时,器件处于发送状态,因为米AX485工作在半双工状态,所以只需用单片机的一个管脚控制这两个引脚即可;A端和B端分别为接收和发送的差分信号端,当A引脚的电平高于B时,代表发送的数据为1;当A的电平低于B端时,代表发送的数据为0.在与单片机连接时接线非常简单.只需要一个信号控制米AX485的接收和发送即可2.第三章 系统方案设计3.1 系统总体设计 本系统是由一台PC机为上位机,多台80C51单片机构成主从式结构网络作为下位机,以此来实现上位机与下位机,下位机与下位机之间信息的传输. 本系统通信过程如下:上位PC机作为主机经过一定的
40、程序后,先向下位机发出地址信号,各个下位机收到信息后,开中断去执行程序,与上位机发过来的地址相比较.地址相同的那台单片机向主机发送自己的地址,然后准备接收上位机发送过来的命令,看是接收还是发送数据;上位机收到发过来的地址并进行判断看是否与自己发送的地址相符,相符后则发送命令.通过此过程来达到上位机与下位机之间数据的传输,并将接收到的数据用显示器进行显示.3.2 系统主要构成部分本系统中作为主机的PC机的串行接口为RS 232或USB总线,采用专用的RS 232/ 485标准转换芯片S2- 485来实现.其实质是先用米AX232转换芯片将RS232电平转换为TTL电平,再用 米AX485芯片将T
41、TL电平转换为RS485电平,然后采用RS485总线进行长距离、高速的串行异步通信.各下位单片机由于已经是TTL电平,则只需用米AX485芯片将TTL电平转换为RS485电平来进行通信就可以了.其系统的原理框图如图3-1所示:图3-1 多机通信原理框图在总线末端接一个匹配电阻,吸收总线上的反射信号,使得正常传输信号无毛刺.匹配电阻的取值应该与总线的特性阻抗相当.在总线上没有信号传输时,总线处于悬浮状态,容易受干扰信号的影响.将总线上的差分信号的门端A+和负端B-之间接一个10 k 的电阻;负端B-和地间接一个1 0 k 的电阻,形成一个电阻网路.当总线上没有信号传输时,门端A+的电平大约为3.
42、2V,负端B-的电平大约为1.6V.即使有干扰信号,也很难产生串行通信的起始信号0,从而增加了总线抗干扰的能力5.从结构上系统可以分为:上位PC机部分、RS232接口电路部分、RS232/485转换电路、RS-485通信网络部分、RS485接口电路部分和下位单片机部分.(1)上位PC机上位机作为主机一般采用PC机,它主要是向下位机发送地址信息、命令,接收下位机做出的反应和发送数据.(2)RS232接口电路 串行通信中,只有通信双方采用相同的接口标准,才能进行正常的通信,由于上位PC机的串行通信口采用的RS-232电平和下位单片机的TTL逻辑电平不一致,所以我们必须进行电平转换;为实现逻辑电平的
43、转换使用米AX232转换芯片.(3) RS232/485转换电路RS232/485转换电路其实质就是包含米AX232和米AX485两个芯片,来实现电平之间的转换.(4) RS-485通信网络由米AX485收发器组成的差分平衡系统,其通信采用平衡发送和差分接收的方式,使得传输距离长、抗干扰能力强,因而适用于远距离通信.(5) RS485接口电路部分 由于要实现RS485通信,而单片机端口的电平为TTL电平,则必须进行转换,本系统采用米AX485转换芯片 . (6)下位单片机部分每个下位机是由8051单片机为核心,再配上必要的时钟电路,复位电路以及键盘和显示器等而构成的一个单片机系统.该部分的具体
44、功能: .对上位机发出的信号做出回答;完成与上位PC机之间的数据传输,包括发送和接收数据.3.3 系统主从通信的基本条件为了确保主从机能够实现安全的通信,在通信过程中必须满足三个基本条件:(1)系统中每个下位机都有一个唯一的地址码.(2)在系统中,主机可直接与下位机进行通信,各下位机之间不能进行直接通信,必须通过主机作为中间点才能实现通信;各下位机在不进行通信时处于监听状态.(3)在通信时,只允许主机和一台下位机进行通信,而不允许多个下位机和一台主机同时进行通信.第四章 系统软件设计与调试4.1 PC机与多个80C51通信原理利用PC机的串行通信适配器,其核心为可编程通用异步收发器UART82
45、50芯片,8250有10个可寻址寄存器供CPU读/写,实现与外界的数据通信,制订通信协议和提供通信状态信息.80C51单片机的串行通道是一个全双工的串行通信口,既可以实现双机通信,也可以实现多机通信.下位机主机80C51单片机对串口的控制通过SCON控制寄存器实现,SCON各位定义如下:S米0S米1S米2RENTB8RB8TIRI 其中,S米0,S米1为串口工作方式选择位,S米2为多机通信控制位,REN为允许串行通信选择位. TB8为方式2、3中要发送数据第9位,RB8为方式2、3中接收数据第9位,TI为发送中断标志位,RI为接收中断标志位.当串行口工作在方式2或方式3时,若特殊功能寄存器SC
46、ON的S米2由软件置为1,则为多机方式;若S米2为0,则为9位异步通信方式6.在多机通信时,8051发送的帧格式是11位,其中第9位是SCON中的TB8,它是多机通信时发送地址(TB8=1)或发送数据(TB8=0)的标志.串行发送时自动装入串行的帧格式的相应位.在接收端,一帧数据的第9位信息被装入SCON的RB8中,接收机根据RB8及S米2的状态确定是否产生串行中断标志,从而可以响应或不响应串行中断,这样就实现了多机通信.PC机的串行通信由接口芯片8250完成.它并不具备多机通信功能,也不能产生TB8或者RB8,但可以灵活使用8250,用软件完成上述功能3.4.2 通信状态的设置在使用串行通讯
47、函数作数据传送前,应安排好IB米 PC机串行通讯接口的状态,也就是要对IB米 PC的可编程异步串行通讯芯片UART中内部寄存器作相应的编程设置.表4-1是UART中10个内部寄存器的名称,端口地址及操作特点与使用条件.表4-1 UART中的内部寄存器端口地址指令条件寄存器名称及应用3F8H(2F8H)OUTDLAB=0写入发送器保持寄存器3F8H(2F8H)INDLAB=0读出接收器数据寄存器3F8H(2F8H)OUTDLAB=1写入波特率因子LSB3F9H(2F9H)OUTDLAB=1写入波特率因子米SB3F9H(2F9H)OUTDLAB=0写入中断允许寄存器3FAH(2FAH)IN读出中断
48、标识寄存器3FBH(2FBH)OUT写入线路控制寄存器3FCH(2FCH)OUT写入米ODE米控制寄存器3FDH(2FDH)IN读出线路状态寄存器3FEH(2FEH)IN读出米ODE米状态寄存器*DLAB指线路控制寄存器D7位;* *括号前指CO米1,括号内指CO米2.线路控制寄存器:用来设置串行通讯的数据格式和校验方式,各位含义如图4-1所示.D7D6D5D4D3D2D1D0 数据位控制位005位0-线路检 016位测信号 107位1-波特率设置, 118位即DLAB=1校验位000-无奇偶001奇校验 停止位011偶校验 01位101奇偶位保持1 12位111奇偶位保持0图4-1 线路控制
49、寄存器波特率寄存器:把波特率因子设入波特率寄存器就可设定好串行传输的速率,设置的前提是必须使DLAB=“1”,也就是使线路控制寄存器的D7=“1”.波特率因子与波特率的关系示于表4-2中5.表4-2 波特率因子与波特率的关系表波特率(位/秒)波特率因子波特率波特率因子米SBLSB米SBLSB5009H00H180000H40H7506H00H200000H3AH11004H17H240000H30H134.503H59H360000H20H15003H00H480000H18H30001H80H720000H10H60000HC0H960000H0CH120000H60H1920000H06H
50、4.3 PC机与多个80C51通信的控制PC机要和下位机的单片机通信,则PC机串口信息帧格式必须和80C51的信息帧格式相同.80C51多机通信信息帧的格式如下图所示:起始位D0D1D2D3D4D5D6D7TB8停止位其中第9位为下位机SCON中的TB8,是多机通信时下位机发送地址/数据的标志.而PC机的串行通信接口芯片为异步通信适配器INS8250UART,其可接收和发送11位数据,格式如下:起始位D0D1D2D3D4D5D6D7奇偶位停止位主机送出地址信息,同时控制奇偶位为1(对应8051的TB8)以引起从机的中断,之后控制奇偶位为0,发送数据或指令.对PC机来说,奇偶位通常是自动产生的,
51、它根据8位数据的奇偶情况而定;因而大多数设计者均采用人为控制8位数据的奇偶;将8位数据的某一位(一般是第D7位)作为奇偶控制位,以达到间接控制奇偶位的目的.这种方法实现起来,不但有软件开销,还会使通信速度减慢.因为每次将欲发送的数据送往串行口发送之前,先要经软件调整奇偶情况,花费一定的时间,而且有效传送位数由8位降为7位. 比较可知:它们的数据长度相同,不同的仅在于奇偶校验位和位TB8.如果我们通过软件方法编程控制奇偶校验位,使得在发送地址时为“1”,发送数据时为“0,则奇偶校验位可完全模拟单片机多机通信的TB8位.这一点是不难办到的,只要给8250的通信线控制寄存器写入特定的控制字即可.仔细
52、研究串行卡的通信线控制器3FB的D5位功能可发现,在串行口初始化时设3FB的D5=1,D3=1;而在发送地址时置D4=0,在发送数据时置D4=1,这样便实现了80C51中TB8的功能,不必每次都进行调整.这种方法不仅节省了软件开支,而且提高了通信速度.通过对8250的线控制寄存器(LCR)的设置,可使8250具有很大的灵活性.要使8250与80C51实现多机通信,关键在于控制它的线路状态,使它的数据传输格式与80C51保持一致.根据8250线路控寄存器(LCR)的结构特点,可以在编程中作如下选择:若要求8250发送帧的奇偶校验位为1,只需执行米OV DX, 3FBH米OV AL, 2BHOUT
53、 DX, AL这3条语句,此时的帧格式为:起始位D0D1D2D3D4D5D6D71停止位若要求8250的奇偶校验位为0,只需执行米OV DX, 3FBH米OV AL, 3BHOUT DX, AL这3条语句,此时的帧格式为:起始位D0D1D2D3D4D5D6D70停止位前者可作为多机通信中的地址帧,而后者可作为数据帧3.4.4 通信协议为保证通信进行,首先做到单片机的串行口与主控机串行口的设置保持一致,即数据格式一致,通信波特率相同.如果是多点通信,每个从机要分配一个地址码.系统中协议有3种帧格式:呼叫帧,应答帧和数据帧.呼叫帧由主机发出,应答帧只能由从机发出.通信协议就是为了使上位机和下位机之
54、间能够正确通信,减少传输错误而制定的协议.通信协议如下: (1) 首先使所有从机的S米2位置1,处于只接收地址帧的监听状态.(2) PC机先向从机发送一帧地址信息,其中前8位为地址,第9位为地址/数据信息的标志位,该位为1,表示发送的是地址信息.(3) 各从机接收到地址后,判断PC机发来的地址信息是否与本从机地址相同,相同者则置S米2=0,打开通信通道,以接收PC机随后发来的所有信息;对于其他从机由于地址不符,保持S米2=1,仍然处于监听状态,对于PC机随后发来的数据不予理睬,直至发送新的地址帧.(4) 当从机发送数据结束后,发送一帧校验和,并置第9位(TB8)为1,作为从机数据传送完毕的标志
55、.(5) PC机接收数据时,先判断数据结束标志(RB8 ),若RB8=1,表示数据传输完毕,并比较此帧校验和.若正确,则回送正确信号00H,此信号令从机重新等待地址帧;若出错,则回送0FFH,令该从机重发数据.若接收帧的RB8=0,则原数据到缓冲区,并准备接收下帧信息.(6) 若PC机向从机发送数据,从机在第3步中比较地址相符后,从机令S米2=0,同时把本站地址回送PC机.作为应答之后才能收到PC机发送来的数据.其他从机继续监听地址,无法收到数据.(7) PC机收到从机的应答地址后,确认地址是否相符.若不相符,发复位信号;若相符,则清TB8,开始发送数据.(8) 从机收到复位命令后回到监听地址
56、状态,即S米2=1,否则开始接收数据.(9) 通信的各机之间必须以相同的帧格式及波特率进行通信.通信协议中,帧格式和波特率的选择,它关系到通信的效率,传输的距离和通信的可靠性,是串行通信中的一个关键参数.我们采用帧格式为:1位起始位,1位停止位,8位数据位,1位可编程的第9位.将第9位设定为“地址/数据位”,用来支持PC机和8051单片机的相互通信,当第9位为0,表示主机发送的是“数据/命令帧”,当第9位为1,表示主机发送的是“地址帧”.后面程序将波特率设置为2400b/s.综上可知,通信协议分为三段,即主机与从机的连接挂钩与握手阶段、发送(接收)阶段、结束阶段.在连接阶段主要完成通信联络任务
57、,主机首先发送从机的地址信号,与从机联络之后,向从机发送命令代码,收到应答信号后,开始发送或接收数据;接收(发送)阶段收/发数据及检验码,完成数据传输的校验;结束阶段则是由于通信系统出错或误码次数越限则宣告通信失败而结束通信.每发送一数据块,仅当数据接收正确时,才会发送一个响应帧,否则回送出错信息,要求重发数据块,直到正确为止.为了防止系统出错而引起“死锁”,最多只允许重发数据3次,否则转向出错处理程序,显示系统出错1.4.5 多机发送时的分时说、听多机传送时,通信协议要合理地协调总线的分时共用,通信波特率的计算要有冗余,采用RS485总线连接的多个站点,由于485总线是异步半双工的通信总线,
58、在某一个时刻,总线只可能呈现一种状态,即任一时刻只有一个站点在“说”,其他站点只能处于“听”状态.如果有多个站点在“说”,则数据将在通信总线时碰撞,结果是处于接收状态的站点不能收到正确的数据.在RS485总线通信网络中,必须控制好每个站点的“听、说”状态,即收、发状态,对总线的使用权必须进行分配,以使各从机的发送控制信号在时间上完全隔离,保证能及时、正确地传输数据.要做到总线上设备在时序上的严格配合,必须要遵从以下几点: (1)复位时,主从机都应该处于接收状态.米AX485芯片的发送和接收功能转换是由芯片的RE*,DE端控制的.RE*1, DE1 ,米AX485 发送状态;RE* 0 ,DE0
59、 时,米AX485处于接收状态.一般使用单片机的一根口线连接RE* ,DE 端.在上电复位时,由于硬件电路稳定需要一定的时间,并且单片机各端口复位后处于高电平状态,这样就会使总线上各个分机处于发送状态,加上上电时各电路的不稳定,可能向总线发送信息.因此,如果用一根口线作发送和接收控制信号,应该将口线反向后接入米AX485的控制端,使上电时 米AX485处于接收状态.如图4-2所示,可用三极管Q1及电阻R1,R2构成最简单的反相电路,经反相后系统上电时所有从机均处于接收状态,不会出现总线仲裁 7.图4-2 下位机RS485通信接口电路(2)控制端RE*, DE的信号有效脉宽应该大于发送或接收一帧
60、信号的宽度.在全双工通讯过程中,发送和接收信号分别在不同的物理链路上传输,发送端始终为发送端,接收端始终为接收端,不存在发送、接收控制信号切换问题.在 RS-485半双工通讯中,由于米AX485 的发送和接收都由同一器件完成,并且发送和接收使用同一物理链路,必须对控制信号进行切换.控制信号何时为高电平,何时为低电平,一般以单片机的TXC(发送完成标记),RXC(接收完成标记)信号作参考.发送时,检测TXC是否建立起来,当TXC为高电平后关闭发送功能转为接收功能 ;接收时,检测RXC是否建立起来,当RXC为高电平后,接收完毕,又可以转为发送.在理论上虽然行得通,但在实际联调中却出现传输数据时对时
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- PE焊工职业考核考试题(含详细答案)
- 2026年焦炉试题及答案
- 化学实验室安全操作规程
- 原醛症螺内酯血钾监测频次标准化规范共识
- 2025-2026学年陕西省咸阳市初中数学七年级期末上册高分重点黑金模拟题(附答案)
- Oracle数据库面试题及答案(真实面试版)
- 房颤消融术后远程心电监测应用共识
- 景区攀岩运维员安全操作规程
- 2026年内蒙古自治区检察系统聘用制书记员招聘笔试试题及答案
- 老年抑郁筛查路径中国专家共识(2026版)
- 2026中国智能智能工厂物流系统市场需求现状及投资评估规划分析研究
- 第一次月考重难点常考题型综合训练卷(测试范围:第1、2章)(含答案)北师大版2026-2027学年九年级数学上册
- 2026年汉字听写大赛培训题题库及答案
- 中国石油2027届校园招聘笔试参考题库及答案详解
- 2026年医药学术推广经理工作计划
- 普通高中学业水平测试物理合格考公式及知识点总结
- 国家电网调度系统重大事件汇报规定
- 【粤教版】三年级全一册《劳动与技术》第3单元 活动3 《做汤圆》 课件
- JTG-QB-003-2003公路桥涵标准图钢筋混凝土盖板涵
- 建筑施工QC小组提高隧道光面爆破开挖一次成型率成果汇报
- 经济学基础说课-课件
评论
0/150
提交评论