版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、小局域网多机通信在如食堂刷卡收费管理系统、汽车加油刷卡系统、电能运输秒表管 理系统等领域应用广泛。因此,开展本领域的研究有较好的应用前景。本文主要采用一种以PC机作为上位机,多台80C51单片机作为下位机,来进行上 位机与下位机以及下位机与下位机的通信的研究。主要包括:系统总体方案设计;在 PC 机端,通过专用的 RS232/485标准转换芯片S2-485将RS-232电平转换成RS-485电平, 在80C51单片机端,通过MAX485转换芯片将TTL电平转换成RS-485电平,来实现上 位机与下位机以及下位机与下位机的通信;在系统硬件设计的基础上,制定了通信协议。 为了达到使传输数据的准确性
2、,开展了数据传输的错误检查与纠正,以及系统可靠性方面 的研究;进行了 PC机与下位机,以及下位机与下位机的软件编程、程序调试,实现了系 统多机通信的数据传输。关键词:PC机;单片机;RS-485;数据传输;多机通信2AbstractMulti-mach ine com muni cati ons have a wide range of applicatio ns in small local n etworK such as man ageme ntsystem in the can tee n for charges of credit card ,in the gas stati on
3、for refueli ng, in the tran sport of en ergy for stopwatch tim ing. Therefore,there are good prospects to carry out research in this area .This article uses pc mach ine as a host computer and multiple 80C51 sin gle-chips as slave microcomputers to carry out the study of com muni catio ns betwee n PC
4、 and lower mach ine, as well as lower mach in es. The article in cludes an overall desig ning pla n. In the port of the PC, usi ng a S2-485,dedicated RS232/485 converter chip , con verts the RS-232 level i nto the RS-485 level. In the port of 80C51 sin gle-chip, MAX485 will be used to con vert TTL l
5、evel into RS-485 level. I n this way ,com muni catio ns can be achieved betwee n PC and lower mach ine, as well as lower mach in es. In the basis of hardware desig n, the com muni cati onal protocol is carried out. In order to achieve the accuracy of the data tran smissi on, the error check ing and
6、correct ion is impleme nted,as well as the study of reliability . After software program ming and program debuggi ng, the system can achieve data tran smissi on betwee n PC mach ine and si ngle-chip,as well as sin gle-chips.Keywords PC Machine; Single-chip; RS-485; Data Transmission Multi-machine Co
7、mmuni cati on武汉工程大学毕业设计(论文)说明书目 录摘 要IABSTRACT 11第一章绪论 11.1引言 11.2研究的背景及意义 11.3论文的主要内容2第二章多机通信基础32.1 数据通信基础 32.2异步串行通信接口标准 52.3通信芯片的介绍9第三章系统方案设计123.1 系统总体设计 123.2系统主要构成部分123.3系统主从通信的基本条件14第四章系统软件设计与调试154.1 PC机与多个80C51通信原理 154.2通信状态的设置154.3 PC机与多个80C51通信的控制 174.4通信协议184.5多机发送时的分时说、听 204.6差错控制224.7系统程序
8、设计224.8程序调试29第五章系统可靠性分析335.1串行通信可靠性评测指标335.2 程序跳飞而造成总线冲突 335.3失效保护345.4通信协议提高通信可靠性355.5 程序抗干扰措施 37第六章总结39致谢40参考文献 41附录1 PC机通信程序42附录2单片机通信程序47附录3多机通信原理图 49第一章绪论1.1引言计算机技术、自动化技术和通信技术是现代信息科学技术的重要组成部分, 是现代科 学技术中的核心先导技术。计算机控制是计算机技术与自动控制理论、 自动化技术紧密结 合并应用于实际的结果,它的应用领域非常广泛。随着高性能计算机、网络技术及单片机技术的不断发展,不仅使计算机应用向
9、网络化、 综合化、集成化、智能化发展,而且使单片机的应用也从独立的单机控制向多机联网的方 向发展,这就需要将各单机进行组网以进行相互通信,从简单的集中式控制逐渐向复杂的分布式形式发展,于是出现了以通信网络技术为基础的新的控制形式。串行通信作为一种简单、廉价的通信方式在控制工程中得到了广泛的应用,其中RS-485总线型控制系统得到了推广和发展。由PC机和多台单片机构成的多级网络通信系统已成为单片机技术发展 的一个方向。1.2研究的背景及意义单片机和计算机的不断发展使得单片机的应用也从独立的单机向网络发展,由计算机和单片机构成的多机网络系统已成为单片机技术发展的一个方向。二者的结合,充分发挥了单片
10、机在实时数据采集和数据管理上的优点。单片机由于其具有体积小、功能强、价格 低廉、开发应用方便、设计灵活和性能价格比高的特点,在计算机的网络通讯与数据传输、 工业自动化过程的实时控制和数据处理等都有广泛地应用,已渗透到我们生活的各个领 域。然而,单片机对网络数据的处理方式不同于通用计算机系统,尤其有的单片机只提供8位的数据收发接口,在一定程度上阻碍了单片机在网络方面的应用。因此,采用单片机 技术与计算机网络技术相结合的办法 ,对单片机多机通信系统进行研究,在设计单片机 网络的通信协议的基础上,系统网络拓扑结构采用总线型,网络接口电路采用端口转发的 形式,实现了 8位单片机多机通信,且PC机能弥补
11、单片机数据处理能力弱和软硬件资源 贫乏的缺陷。因此,PC机(上位机)与各单片机(下位机)之间的通信就显得尤其重要。在工业领域,主从式的设备监控管理模式应用越来越广泛。一台上位机同时监控多台下位机(1:N),相比一台上位机监控一台下位机(1:1)的模式,更具有经济性、方便性和时 效性。在一对多的通信模式中,由于下位机与上位机、下位机与下位机之间的物理位置相 距较远,运行环境复杂、干扰大,由于 RS-232采用共模传输方式,只能实现十余米的短 距离通信,且抗干扰能力不理想,因此使用RS-232串口通讯协议完全不能达到要求,易出现错码。而通讯距离远(最长1200m),抗干扰能力强的RS-485总线通
12、信模式由于具有 简洁灵活、结构简单、价格低廉、软件易实现、性价比较高、传输距离较远、误码率较低、 抗干扰能力强等优点而被广泛应用。但RS-485总线存在自适应、自保护功能脆弱等缺点, 如不注意一些细节的处理,常出现通信失败甚至系统瘫痪等故障,因此提高RS-485总线的运行可靠性至关重要。1.3论文的主要内容本论文主要研究的内容是设计以 PC机为主机,多个单片机为从机所构成的主从式结 构网络。为了方便读者快速地了解本论文的主要内容, 在这里简要介绍一下论文的章节安 排及内容。第一章绪论。主要介绍本论文研究的背景、意义。第二章多机通信的基础。主要介绍通信的一些基本概念以及方式,也对各种串行接口标准
13、、MAX232W MAX485两种转换芯片作了一些讲解。第三章系统方案设计。主要介绍了一下通信的大致过程以及各个结构部分,并画出 了原理框图。第四章系统软件设计与调试。首先介绍了通信原理,以及如何能实现它,并制定了 通信协议,以及实行的差错控制。接下来对上、下位机进行软件编程,并调试了程序。第五章系统可靠性分析。首先描述了可靠性的测评指标,然后在防止总线冲突,通信协议以及程序方面作了一些提高可靠性的讨论。第六章总结。34第二章多机通信基础2.1数据通信基础2.1.1数据通信的概念随着多微机系统的应用和微机网络的发展,通信功能越来越显得重要。通信是指计算 机与外界的信息交换,它既包括计算机与外部
14、设备之间,也包括计算机和计算机之间的信 息交换,所有这些信息交换都可称为数据通信。数据通信方式有两种,即并行数据通信和串行数据通信。通常根据信息传送的距离决定采用哪种通信方式。并行数据通信是指数据的各位同时进行传送的通信方式,其优点是传送速率快;缺点 是数据有多少位,就需要多少根传送线。串行数据通信指数据是一位一位顺序传送的通信方式,外设和计算机间使用一根数据信号线,和按字节传输的并行通信相比,串行通信使用的传输线少,适用于长距离传输而 速度要求不高的场合。因此在数据通信、计算机网络以及分布式工业控制系统中,经常采 用串行通信来交换数据和信息2。2.1.2串行通信的传送方式在串行通信中,数据通
15、常是在二个站(点对点)之间进行传送,按照数据流的方向可分 成三种传送模式:全双工、半双工、单工。下面就简单介绍这三种传送模式2。(1)全双工(Full Duplex)数据线发送/接收端*接收/发送端地线全双工制式图2-1全双工通信数据的发送和接收分别由两根可以在两个不同的站点同时发送和接收的传输线进行传送,通信双方都能在同一时刻进行发送和接收操作。如图2-1所示。(2) 半双工(Half Duplex)使用同一根传输线,通信双方既可发送数据又可接收数据,但不能同时收发数据,如图2-2所示。本文设计的RS-485通信接口芯片就是采用半双工的传送方式。数据线发送/接收端V接收/发送端地线半双工制式
16、图2-2半双工通信(3) 单工(Simplex)甲乙双方通信时只能单向传送数据,发送方和接收方固定。如图2-3所示数据线发送端接收端地线单工制式图2-3 单工通信2.1.3异步收发器UART (异步收发器)的组成UART由三个部分组成:接收器、发送器、控制器。接收器一一将接收到的串行码转换成并行码,并对其进行错误检测 发送器将并行码转换为一定数据格式的串行码。控制器一一用以接收CPU的控制信号、执行CPU所要求的操作,并输出状态信息和控制信 息。(2)异步串行通信中设立的出错标志。 奇偶错误; 帧错误(数据格式错); 溢出错误(丢失错误、数据重叠)3。2.1.4通信波特率的设置波特率,即数据传
17、送速率,表示每秒钟传送二进制代码的位数,它的单位是位/秒(b/s)。波特率对于CPU与外界的通信是很重要的,它是衡量传输通道频宽的指标,它和 传送数据的速率并不一致。异步通信的传送速度在5019200b/s之间。常用于计算机到终端机和打印机之间的通信、无线电通信的数据发送等。80C51单片机系统时钟绝大多数情况下都采用 6MHz的石英晶体振荡器,其串行口的 波特率是由其内部定时器TH1 (8位)决定的,具体计算公式为:f X 2smod方式1和方式3波特率y384(256 -T H1 初值)2.2异步串行通信接口标准2.2.1 RS-232C 串行接口标准RS-232C接口标准是在1969年由
18、美国电气工业协会(EIA)联合贝尔系统、调制解调器 厂家及计算机终端生产厂家共同制定的用于串行通信的标准,所以RS-232C是 PC机与通信工业中使用最早的一种串行接口标准。在短距离、较低波特率串行通信中得到了广泛的应用。RS-232C接 口标准最初是为了远程通信连接数据终端设备DTE和数据通信设备DCE进行通行而设计的。RS-232C中定义了 20根信号线,使用25芯D型连接器(DB25)实现,其中除了用于全双工串行通信的两根信号线外,标准还定义了若干“握手线”。实际应用中,这些“握手线”的连接不是必须的。为了简化接口的线路连接,出现了简化的9芯D型连接器(DB9)。 图2-4为DB-9型连
19、接器的引脚图,下面简要介绍一下 9个引脚的功能。DCD 数据载波检出(Receive Line Signal Detector) 。当本地 DCE设备收到对方 的DCE设备送来的载波信号时,该引脚有效,用于通知DTE准备接收,此时DCE各接收到 的载波信号解调为数字信号后,经 RXD线传送至DTERXD 接收数据(Receive Data) 。DTE通过该引脚接收DCE发送过来的串行数据。(3) TXD 发送数据(Transmitted Data)。串行数据通过该引脚从 DTE发送至DCE(4) DTR数据终端准备好(DTE Ready)。该引脚有效时,表明数据终端处于可用状态, 通常将其直接
20、接至电源端,上电有效。(5) GND 信号地线。该引脚为所有的电路提供参考电位。DSR 数据装置就绪(DCE Ready)。该引脚有效时,表明 MODE处于可用状态,通 常将其直接接至电源端,上电有效。(7) RTS请求发送(Request to Send)。用来表示DTE请求DCE发送数据,即当终端要发送数据时,该信号有效,向 MODE提出发送请求,此时MODE进入发送状态。(8) CTS允许发送(Clear to Send)。用来表示DCE已准备好接收DTE发来的数据,是对请求发送信号RTS的相应信号。当MODE已准备好接收终端传来的数据时,该信号有 效,通知终端开始发送数据。(9) RI
21、振铃提示(Ring Indicator)。当MODE收到交换台送来的振铃呼叫信号时,该信号有效,用于通知终端已被呼叫。5 GND厂 V n9 RI4 DTRW8 CTSa.3 TXDn7 RTSo2 RXD6 DSRJ O-1 DCDDB9图2-4 DB9引脚图与TTL, MOS逻辑电平完全不同,RS-232C其逻辑电平对地是对称的。逻辑 0电平规 定为+5V+15V之间,逻辑1电平为-5-15V之间,因此为了使RS-232C能够和TTL器件 相连接,就必须在RS-232C和TTL电路之间进行电平和逻辑关系的变换。 用RS-232C总线 连接系统时,有近程通信方式和远程通信方式之分。近程通信是
22、指传输距离小于15米的通信,这时可以用RS-232C电缆直接连接,最少只需连接3根信号线即可。由于RS-232C接口标准出现的较早难免有不足之处,主要有以下四点:(1) 接口的信号电平值较高,易损坏接口电路的芯片,又因为与TTL电平不兼容,使 用电平转换电路才能与TTL电路连接。(2) 传输速率较低,在异步传输时,波特率最高为20KbpSo(3) 接口使用一根信号线和一根信号返回线而构成共地的传输形式,这种共地传输容易形成共模干扰,所以抗噪声干扰性弱。(4) 传输距离有限,最大传输距离也只能在 15米左右。2.2.2 RS-422 串行接口标准RS-422是在RS-232C以后发展起来的、平衡
23、传送的电气标准,比起RS-232C非平衡的传送方式在电气指标上有了大幅度的提高。RS-422标准全称是“平衡电压数字接口电路的电气特性”,它定义了接口电路的特性。 典型的RS-422是四线接口(实际上还有一根信号地线,共5根线)。由于接收器采用高输 入阻抗和发送驱动器比 RS232更强的驱动能力,故允许在相同传输线上连接多个接收节 点,最多可接10个节点。即一个主设备(Master)其余为从设备(Salve),从设备之间不能 通信,所以RS-422支持点对多的双向通信。RS-422四线接口由于采用单独的发送和接收 通道,因此不必控制数据方向,各装置之间任何必须的信号交换均可以按软件方式 (XO
24、N/XOF握手)或硬件方式(一对单独的双绞线)实现。RS-422的最大传输距离为1200米,最大传输速率为10Mb/s。其平衡双绞线的长度与 传输速率成反比,在100kb/s速率以下,才可能达到最大传输距离。只有在很短的距离下 才能获得最高速率传输。一般100米长的双绞线上所能获得的最大传输速率仅为 1Mb/s。RS-422 需要一终接电阻,要求其阻值约等于传输电缆的特性阻抗,终接电阻接在传 输电缆的最远端;一般在300米以下不需终接电阻。2.2.3 RS-485 串行接口标准RS-485 是从RS-422基础上发展而来的,所以 RS-485许多电气规定与RS-422相仿。该规范满足所有RS-
25、422要求,而且比RS-422稳定性更强。现从五个方面简单介绍如下(1)采用平衡发送和差分接收方式,即在发送端,驱动器将TTL电平信号转换成差分信号输出;在接收端,接收器将差分信号变成TTL电平,能有效的抑制共模干扰,提高信号传输的准确率(2) 电气特性:对于发送端,逻辑1以两线间的电压差为+(26) V表示;逻辑0以两 线间的电压差为-(26) V表示。对+接收端,A比B高200mV以上即认为是逻辑I, A 比B低200mV以上即是逻辑0。接口信号电平比RS-232降低了,不易损坏接口电路的芯 片,且该电平与TTL电平兼容,可方便与TTL电路连接。(3) 共模输出电压在-7V+12V之间,而
26、RS-422在-7V+7V之间。RS-485接收器最 小输入阻抗为12kQ, RS-422是4kQ, RS-485满足所有RS-422的规范,所以RS-485 的驱动器可以用在RS-422网络中应用。但RS-422驱动器并不完全适用于RS-485网络。(4) 最大传输速率为10Mbps。当波特率为1200bps时,最大传输距离理论上可达15千米。平衡双绞线的长度与传输速率成反比,在100kbps速率以下,才可能使用规定最长的电缆长度。RS-485需要2个终接电阻,接在传输总线的两端,其阻值要求等于传输电 缆的特性阻抗,为120 Q。在短距离传输时可不终接电阻,即一般在 300米以下不终接电 阻
27、。(5) 采用二线与四线方式,二线制可实现真正的多点双向通信。而采用四线连接时,只能有一个主(Master)设备,其余为从设备,它比 RS-422有改进,无论四线还是二线连 接方式总线上可连接多达32个设备。RS-485总线挂接多台设备用于组网时,能实现点到 多点及多点到多点的通信(多点到多点是指总线上所接的所有设备及上位机任意两台之间 均能通信)。连接在RS-485总线上的设备也要求具有相同的通信协议,且地址不能相同。 在不通信时,所有的设备处于接收状态,当需要发送数据时,串口才翻转为发送状态,以避免冲突。在过去20年时间里,RS-485标准作为一种多点差分数据传输的电气规范,被应用在 许多
28、不同的领域,作为数据传输链路。目前,在我国应用的现场网络中,RS-485半双工异步通信总线也是被各个研发机构广泛使用的数据通信总线。但是基于在RS-485总线上任一时刻只能存在一个主机的特点,它往往应用在集中控制枢纽与分散控制单元之间2。2.2.4 RS-232, RS-422, RS-485通讯方式的区别RS-232, RS-422, RS-485 通讯方式的最主要的区别是 RS-422和RS-485都采用平衡 驱动和差分输入的方式,有效的消除了共模干扰,并且RS-485有更宽的共模输入范围(-7v+12v);能实现一点对多点的通信;传输距离远;传输速率快。如表2-1所示2。表 2-1 RS
29、-232, RS-422, RS-185 的区别标准RS-232RS-422RS-485工作方式单端差分差分节点数1收1发1发10收1发32收最大传输电缆长度50英尺4000英尺4000英尺最大传输速率20kbps10Mbps10Mbps最大驱动输出电压+/-25V-0.25V +6V-7V +12V发送器输出信号电平(负载最小值)负载+/-5V +/-15V 2.0V 1.5V发送器输出信号电平(空载最大值)空载+/-25V 6V 6V发送器负载阻抗(Q )3k 7k10054摆率(最大值)30V/ 必N/AN/A接收器输入电压范围 15V-10V +10V-7V +12V接收器输入门限 3
30、V 200mV 200mV接收器输入电阻(Q )3k 7k4k (最小)=12k发送器共模电压-3V +3V-1V +3V接收器共模电压-7V +7V-7V +12V2.3通信芯片的介绍2.3.1 RS-232通信芯片PC机串口是RS232电平的,以正负电压来表示逻辑状态, 而单片机的串口是TTL电 平的,以高低电平表示逻辑状态。因此,为了能够使计算机接口和终端的 TTL器件连接, 必须在RS232C与TTL电路之间进行电平和逻辑关系变换。使用MAX232芯片可以将PC 机串行口的RS-232C电平转换为TTL标准电平。MAX232芯片内部有一个电源电压变换器,可以把输入的 +5V电源电压变换
31、成为 RS-232C输出电平所需的士 IOV电压。所以,采用此芯片接口的串行通信系统只需单一的 +5V电源就可以了。MAX232芯片的引脚结构如图2-5所示:C1 + C1-C2+C2-VDDVCCT1INT1OUTT2INT2OUTR1OUTR1INR2OUTR2INGNDVEE451110156141312MAX232216图2-5 MAX232引脚功能图实际应用中,T1IN, T2IN 可直接接TTL/CMOSt平的MCS-51单片机的串行发送端TxD; RIOUT, R2OU可直接接TTL/CMO电平的MCS-51单片机的串行接收端 RxD TIOUT, T2OU可直接接PC机的RS-
32、232串口的接收端 RxD R1IN, R2IN 可直接PC机的RS-232 串口的发送端TxD1。2.3.2 RS-485通信芯片RS-485芯片作为一种常用的通讯接口器件,可以在许多半导体公司的“标准接口器 件”栏目中“收发器”类元件中找到对应的型号。所以在进行RS-485通讯芯片设计之前, 有必要选择一款成功在市场上应用的相关芯片进行分析研究,以确保设计的成功性。本设计选择的是MAXIM公司的MAX485其内部结构如图2-6所示。该芯片具有低功耗,单电 源供电等优点,主要应用于低功耗 RS-485收发器、低功耗RS-422收发器、RS232-485电 平转换器和工业控制局域网等4 oVC
33、C图2-6 MAX485芯片内部结构AB其内部逻辑关系如表 2-2所示:表2-2 MAX485逻辑关系发送/REDEDIABXHHHLXHLLHXLXZZ接收A-B/REDERO +0.2VLLH -0.2VLLLXHLZMAX48芯片采用单一电源+5 V工作,额定电流为300卩A,采用半双工通讯方式。它 完成将TTL电平转换为RS-485电平的功能,将输入的TTL电平转换成差分电平输出。其 结构和引脚都非常简单,内部含有一个驱动器和接收器。ROW DI端分别为接收器的输出 和驱动器的输入端,与单片机连接时只需分别与单片机的RXD和TXD相连即可;RE和DE端分别为接收和发送的使能端,当 RE
34、为逻辑0时,器件处于接收状态;当 DE为逻辑1 时,器件处于发送状态,因为 MAX485T作在半双工状态,所以只需用单片机的一个管脚 控制这两个引脚即可;A端和B端分别为接收和发送的差分信号端,当 A引脚的电平高于 B时,代表发送的数据为1;当A的电平低于B端时,代表发送的数据为0。在与单片机 连接时接线非常简单。只需要一个信号控制MAX485的接收和发送即可2。第三章系统方案设计3.1系统总体设计本系统是由一台PC机为上位机,多台80C51单片机构成主从式结构网络作为下位机, 以此来实现上位机与下位机,下位机与下位机之间信息的传输。本系统通信过程如下:上位 PC机作为主机经过一定的程序后,先
35、向下位机发出地址 信号,各个下位机收到信息后,开中断去执行程序,与上位机发过来的地址相比较。地址 相同的那台单片机向主机发送自己的地址, 然后准备接收上位机发送过来的命令, 看是接 收还是发送数据;上位机收到发过来的地址并进行判断看是否与自己发送的地址相符,相符后则发送命令。通过此过程来达到上位机与下位机之间数据的传输,并将接收到的数据 用显示器进行显示。3.2系统主要构成部分本系统中作为主机的PC机的串行接口为RS 232或USB总线,采用专用的RS 232/ 485 标准转换芯片S2- 485来实现。其实质是先用 MAX232转换芯片将RS232电平转换为TTL 电平,再用MAX485芯片
36、将TTL电平转换为RS485电平,然后采用RS485总线进行长距离、 高速的串行异步通信。各下位单片机由于已经是TTL电平,则只需用MAX485芯片将TTL电平转换为RS485电平来进行通信就可以了。其系统的原理框图如图3-1所示:+5V图3-1多机通信原理框图在总线末端接一个匹配电阻,吸收总线上的反射信号,使得正常传输信号无毛刺。匹 配电阻的取值应该与总线的特性阻抗相当。在总线上没有信号传输时,总线处于悬浮状态, 容易受干扰信号的影响。将总线上的差分信号的门端A+和负端B-之间接一个10 k Q的电阻;负端B-和地间接一个1 0 k Q的电阻,形成一个电阻网路。当总线上没有信号传输 时,门端
37、A+的电平大约为3.2V,负端B-的电平大约为1.6V。即使有干扰信号,也很难 产生串行通信的起始信号o,从而增加了总线抗干扰的能力5。从结构上系统可以分为:上位PC机部分、RS232接口电路部分、RS232/485转换电路、 RS-485通信网络部分、RS485接 口电路部分和下位单片机部分。(1) 上位PC机上位机作为主机一般采用PC机,它主要是向下位机发送地址信息、命令,接收下位 机做出的反应和发送数据。(2) RS232接 口电路串行通信中,只有通信双方采用相同的接口标准,才能进行正常的通信,由于上位PC机的串行通信口采用的RS-232电平和下位单片机的TTL逻辑电平不一致,所以我们必
38、 须进行电平转换;为实现逻辑电平的转换使用MAX232专换芯片。(3) RS232/485转换电路RS232/485转换电路其实质就是包含 MAX23告口 MAX48醐个芯片,来实现电平之间的 转换。(4) RS-485通信网络由MAX485收发器组成的差分平衡系统,其通信采用平衡发送和差分接收的方式,使 得传输距离长、抗干扰能力强,因而适用于远距离通信。(5) RS485接口电路部分由于要实现RS485通信,而单片机端口的电平为TTL电平,则必须进行转换,本系 统采用MAX485专换芯片。(6) 下位单片机部分每个下位机是由8051单片机为核心,再配上必要的时钟电路,复位电路以及键盘和显示器
39、等而构成的一个单片机系统。该部分的具体功能:.对上位机发出的信号做出回答;完成与上位PC机之间的数据传输,包括发送和接收数据3.3系统主从通信的基本条件为了确保主从机能够实现安全的通信,在通信过程中必须满足三个基本条件:(1)系统中每个下位机都有一个唯一的地址码。(2)在系统中,主机可直接与下位机进行通信,各下位机之间不能进行直接通信, 必须通过主机作为中间点才能实现通信;各下位机在不进行通信时处于监听状态。(3)在通信时,只允许主机和一台下位机进行通信,而不允许多个下位机和一台主 机同时进行通信。第四章系统软件设计与调试4.1 PC机与多个80C51通信原理利用PC机的串行通信适配器,其核心
40、为可编程通用异步收发器UART8250芯片,8250有10个可寻址寄存器供CPU读/写,实现与外界的数据通信,制订通信协议和提供 通信状态信息。80C51单片机的串行通道是一个全双工的串行通信口,既可以实现双机通信,也可以 实现多机通信。下位机主机 80C51单片机对串口的控制通过 SCON控制寄存器实现,SCON 各位定义如下:SM0SM1SM2RENTB8RB8TIRI其中,SM0,SM伪串口工作方式选择位,SM2为多机通信控制位,REN为允许串行通 信选择位。TB8为方式2、3中要发送数据第9位,RB8为方式2、3中接收数据第9位, TI为发送中断标志位,RI为接收中断标志位。当串行口工
41、作在方式 2或方式3时,若特 殊功能寄存器SCON的SM2由软件置为1,则为多机方式;若SM2为0,则为9位异步 通信方式。在多机通信时,8051发送的帧格式是11位,其中第9位是SCON中的TB8,它是多 机通信时发送地址(TB8=1 )或发送数据(TB8=0)的标志。串行发送时自动装入串行的 帧格式的相应位。在接收端,一帧数据的第 9位信息被装入SCON的RB8中,接收机根 据RB8及SM2的状态确定是否产生串行中断标志, 从而可以响应或不响应串行中断, 这 样就实现了多机通信。PC机的串行通信由接口芯片8250完成。它并不具备多机通信功能,也不能产生TB8 或者RB8,但可以灵活使用82
42、50,用软件完成上述功能。4.2通信状态的设置在使用串行通讯函数作数据传送前,应安排好IBM PC机串行通讯接口的状态,也就是要对IBM PC的可编程异步串行通讯芯片 UART中内部寄存器作相应的编程设置。表 4-1 是UART中 10个内部寄存器的名称,端口地址及操作特点与使用条件。端口地址指令条件寄存器名称及应用3F8H(2F8H)OUTDLAB=0写入发送器保持寄存器3F8H(2F8H)INDLAB=0读出接收器数据寄存器3F8H(2F8H)OUTDLAB=1写入波特率因子 LSB3F9H(2F9H)OUTDLAB=1写入波特率因子 MSB3F9H(2F9H)OUTDLAB=0写入中断允
43、许寄存器3FAH(2FAH)IN读出中断标识寄存器3FBH(2FBH)OUT写入线路控制寄存器3FCH(2FCH)OUT写入MODE控制寄存器3FDH(2FDH)IN读出线路状态寄存器3FEH(2FEH)IN读出MODE状态寄存器表4-1 UART中的内部寄存器*DLAB指线路控制寄存器 D7位;* *括号前指C0M1括号内指COM2线路控制寄存器:用来设置串行通讯的数据格式和校验方式,各位含义如图4-1所示D7D6D5D4D3D2D1D0控制位0-线路检测信号 1-波特率设置,即DLAB=1校验位000-无奇偶001 奇校验011 偶校验101 奇偶位保持1111 奇偶位保持0011011数
44、据位00 5 位6位7位8位图4-1线路控制寄存器停止位1位2位波特率寄存器:把波特率因子设入波特率寄存器就可设定好串行传输的速率,设置的前提是必须使DLAB“ 1”,也就是使线路控制寄存器的 D7=“ 1”。波特率因子与波特率的 关系示于表4-2中呵o表4-2波特率因子与波特率的关系表波特率(位/秒)波特率因子波特率波特率因子MSBLSBMSBLSB5009H00H180000H40H7506H00H200000H3AH11004H17H240000H30H134.503H59H360000H20H15003H00H480000H18H30001H80H720000H10H60000HC0H
45、960000H0CH120000H60H1920000H06H4.3 PC机与多个80C51通信的控制PC机要和下位机的单片机通信,则 PC机串口信息帧格式必须和80C51的信息帧格式相同。80C51多机通信信息帧的格式如下图所示:起始位D0D1D2D3D4D5D6D7TB8停止位其中第9位为下位机SCO中的TB8,是多机通信时下位机发送地址/数据的标志。而PC机的串行通信接口芯片为异步通信适配器 INS8250UART其可接收和发送11位数据, 格式如下:起始位D0D1D2D3D4D5D6D7奇偶位停止位主机送出地址信息,同时控制奇偶位为 1 (对应8051的TB8)以引起从机的中断,之 后
46、控制奇偶位为0,发送数据或指令。对PC机来说,奇偶位通常是自动产生的,它根据8 位数据的奇偶情况而定;因而大多数设计者均采用人为控制 8位数据的奇偶;将8位数据 的某一位(一般是第D7位)作为奇偶控制位,以达到间接控制奇偶位的目的。这种方法 实现起来,不但有软件开销,还会使通信速度减慢。因为每次将欲发送的数据送往串行口 发送之前,先要经软件调整奇偶情况,花费一定的时间,而且有效传送位数由8位降为7位。比较可知:它们的数据长度相同,不同的仅在于奇偶校验位和位TB&如果我们通过软件方法编程控制奇偶校验位,使得在发送地址时为“ 1”,发送数据时为“ 0,则奇偶校 验位可完全模拟单片机多机通信的 TB
47、8位。这一点是不难办到的,只要给 8250的通信线 控制寄存器写入特定的控制字即可。仔细研究串行卡的通信线控制器 3FB的D5位功能可发现,在串行口初始化时设 3FB 的D5=1, D3=1;而在发送地址时置D4=0,在发送数据时置D4=1,这样便实现了 80C51中 TB8的功能,不必每次都进行调整。这种方法不仅节省了软件开支,而且提高了通信速度。通过对8250的线控制寄存器(LCR的设置,可使8250具有很大的灵活性。要使8250 与80C51实现多机通信,关键在于控制它的线路状态,使它的数据传输格式与80C51保持 一致。根据8250线路控寄存器(LCR的结构特点,可以在编程中作如下选择
48、:若要求8250发送帧的奇偶校验位为1,只需执行MOV DX, 3FBHMOV AL, 2BHOUT DX, AL这3条语句,此时的帧格式为:起始位D0D1D2D3D4D5D6D71停止位若要求8250的奇偶校验位为0,只需执行MOV DX, 3FBHMOV AL, 3BHOUT DX, AL这3条语句,此时的帧格式为:起始位D0D1D2D3D4D5D6D70停止位前者可作为多机通信中的地址帧,而后者可作为数据帧 。4.4通信协议为保证通信进行,首先做到单片机的串行口与主控机串行口的设置保持一致,即数据格式一致,通信波特率相同。如果是多点通信,每个从机要分配一个地址码。系统中协议 有3种帧格式
49、:呼叫帧,应答帧和数据帧。呼叫帧由主机发出,应答帧只能由从机发出。通信协议就是为了使上位机和下位机之间能够正确通信,减少传输错误而制定的协议。通信协议如下:(1) 首先使所有从机的SM2位置1,处于只接收地址帧的监听状态。PC机先向从机发送一帧地址信息,其中前 8位为地址,第9位为地址/数据信 息的标志位,该位为1,表示发送的是地址信息。(3) 各从机接收到地址后,判断PC机发来的地址信息是否与本从机地址相同,相同 者则置SM2=0打开通信通道,以接收 PC机随后发来的所有信息;对于其他从机由于地 址不符,保持SM2=1仍然处于监听状态,对于 PC机随后发来的数据不予理睬,直至发 送新的地址帧
50、。(4) 当从机发送数据结束后,发送一帧校验和,并置第 9位(TB8)为1,作为从机数 据传送完毕的标志。(5) PC机接收数据时,先判断数据结束标志(RB8 ),若RB8=1表示数据传输完毕, 并比较此帧校验和。若正确,则回送正确信号 00H,此信号令从机重新等待地址帧;若出 错,则回送0FFH令该从机重发数据。若接收帧的RB8=0则原数据到缓冲区,并准备接 收下帧信息。(6) 若PC机向从机发送数据,从机在第 3步中比较地址相符后,从机令 SM2=0同 时把本站地址回送PC机。作为应答之后才能收到PC机发送来的数据。其他从机继续监听 地址,无法收到数据。(7) PC机收到从机的应答地址后,
51、确认地址是否相符。若不相符,发复位信号;若 相符,则清TB8,开始发送数据。(8) 从机收到复位命令后回到监听地址状态,即SM2=1否则开始接收数据。(9) 通信的各机之间必须以相同的帧格式及波特率进行通信。通信协议中,帧格式和波特率的选择,它关系到通信的效率,传输的距离和通信的可靠性,是串行通信中的一个 关键参数。我们采用帧格式为:1位起始位,1位停止位,8位数据位,1位可编程的第9 位。将第9位设定为“地址/数据位”,用来支持PC机和8051单片机的相互通信,当第9 位为0,表示主机发送的是“数据/命令帧”,当第9位为1,表示主机发送的是“地址帧”。 后面程序将波特率设置为2400b/s。
52、综上可知,通信协议分为三段,即主机与从机的连接挂钩与握手阶段、发送(接收)阶段、结束阶段。在连接阶段主要完成通信联络任务,主机首先发送从机的地址信号,与从机联络之后,向从机发送命令代码,收到应答信号后,开始发送或接收数据;接收(发送)阶段收/发数据及检验码,完成数据传输的校验;结束阶段则是由于通信系统出错或误 码次数越限则宣告通信失败而结束通信。 每发送一数据块,仅当数据接收正确时,才会发 送一个响应帧,否则回送出错信息, 要求重发数据块,直到正确为止。为了防止系统出错 而引起“死锁”,最多只允许重发数据3次,否则转向出错处理程序,显示系统出错 。4.5多机发送时的分时说、听多机传送时,通信协
53、议要合理地协调总线的分时共用,通信波特率的计算要有冗余,采 用RS485总线连接的多个站点,由于485总线是异步半双工的通信总线,在某一个时刻,总 线只可能呈现一种状态,即任一时刻只有一个站点在“说”,其他站点只能处于“听”状态。 如果有多个站点在“说”,则数据将在通信总线时碰撞,结果是处于接收状态的站点不能收 到正确的数据。在RS485总线通信网络中,必须控制好每个站点的“听、说”状态,即收、 发状态,对总线的使用权必须进行分配,以使各从机的发送控制信号在时间上完全隔离,保 证能及时、正确地传输数据。要做到总线上设备在时序上的严格配合,必须要遵从以下几占:八、(1)复位时,主从机都应该处于接
54、收状态。MAX48芯片的发送和接收功能转换是由芯片的RE*, DE端控制的。RE*=1, DE=1,MAX485发送状态;RE*= 0 , DE=O时,MAX48处于接收状态。一般使用单片机的一根口 线连接RE*,DE端。在上电复位时,由于硬件电路稳定需要一定的时间,并且单片机各 端口复位后处于高电平状态,这样就会使总线上各个分机处于发送状态, 加上上电时各电 路的不稳定,可能向总线发送信息。 因此,如果用一根口线作发送和接收控制信号, 应该 将口线反向后接入 MAX485的控制端,使上电时 MAX485处于接收状态。如图4-2所示, 可用三极管Q1及电阻R1,R2构成最简单的反相电路,经反相后系统上电时所有从机均处 于接收状态,不会出现总线仲裁。VCCVCCVCC图4-2下位机RS485通信接口电路(2)控制端RE*, DE的信号有效脉宽应该大于发送或接收一帧信号的宽度。在全双工通讯过程中,发
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年甘肃电器科学研究院聘用人员招聘备考题库完整答案详解
- 2025年齐齐哈尔市总工会工会社会工作者招聘39人笔试重点题库及答案解析
- 2025广东东莞市公安局沙田分局招聘警务辅助人员11人(第8期)考试重点试题及答案解析
- 2025四川德阳市广安发展工程建设有限公司第二批项目合同制员工招聘补充说明笔试重点题库及答案解析
- 2025年金华永康市科学技术局工作人员招聘1人备考笔试试题及答案解析
- 2026年昆明卫生职业学院春季学期教师招聘(4人)备考核心题库及答案解析
- 《CB 3670-1994中国船舶工业总公司企事业单位名称代码》专题研究报告
- 2025中国科学院认知科学与心理健康全国重点实验室博士后及研究助理招聘2人笔试重点题库及答案解析
- 2025湖北随州市中心医院卫生专业技术人员专项招聘21人考试重点题库及答案解析
- 2025中国瑞林工程技术股份有限公司市场化选聘法务总监1人笔试重点题库及答案解析
- 传播学研究方法 课件全套 ch1-导论-传播学研究方法的发展历程 -ch18-大数据的分析与可视化-用图表勾勒网络关系
- MT/T 1218-2024煤矿动压巷道水力压裂切顶卸压施工技术规范
- 中医推拿知识培训课件
- 沃柑种植合同协议书
- 河南省许昌市2024-2025学年八年级上学期数学期末测评卷(含答案与解析)
- 2024-2025学年四川省成都市高一上学期期末教学质量监测英语试题(解析版)
- 人生中的转折点主题班会
- 陈景润数学家人物介绍
- 【浙教版】一年级上册《劳动》《水培植物我养护》
- 2024秋期国家开放大学本科《国际经济法》一平台在线形考(形考任务1至4)试题及答案
- 医学伦理学(山东中医药大学)智慧树知到答案2024年山东中医药大学
评论
0/150
提交评论