基于RS485多机通信的软件编程与系统调试毕业设计Word文件下载.docx
- 文档编号:17152378
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:46
- 大小:727.38KB
基于RS485多机通信的软件编程与系统调试毕业设计Word文件下载.docx
《基于RS485多机通信的软件编程与系统调试毕业设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于RS485多机通信的软件编程与系统调试毕业设计Word文件下载.docx(46页珍藏版)》请在冰豆网上搜索。
首先介绍了通信原理,以及如何能实现它,并制定了通信协议,以及实行的差错控制。
接下来对上、下位机进行软件编程,并调试了程序。
第五章系统可靠性分析。
首先描述了可靠性的测评指标,然后在防止总线冲突,通信协议以及程序方面作了一些提高可靠性的讨论。
第六章总结。
第二章多机通信基础
2.1数据通信基础
2.1.1数据通信的概念
随着多微机系统的应用和微机网络的发展,通信功能越来越显得重要。
通信是指计算机与外界的信息交换,它既包括计算机与外部设备之间,也包括计算机和计算机之间的信息交换,所有这些信息交换都可称为数据通信。
数据通信方式有两种,即并行数据通信和串行数据通信。
通常根据信息传送的距离决定采用哪种通信方式。
并行数据通信是指数据的各位同时进行传送的通信方式,其优点是传送速率快;
缺点是数据有多少位,就需要多少根传送线。
串行数据通信指数据是一位一位顺序传送的通信方式,外设和计算机间使用一根数据信号线,和按字节传输的并行通信相比,串行通信使用的传输线少,适用于长距离传输而速度要求不高的场合。
因此在数据通信、计算机网络以及分布式工业控制系统中,经常采用串行通信来交换数据和信息[2]。
2.1.2串行通信的传送方式
在串行通信中,数据通常是在二个站(点对点)之间进行传送,按照数据流的方向可分成三种传送模式:
全双工、半双工、单工。
下面就简单介绍这三种传送模式[2]。
(1)全双工(FullDuplex)
图2-1全双工通信
数据的发送和接收分别由两根可以在两个不同的站点同时发送和接收的传输线进行传送,通信双方都能在同一时刻进行发送和接收操作。
如图2-1所示。
(2)半双工(HalfDuplex)
使用同一根传输线,通信双方既可发送数据又可接收数据,但不能同时收发数据,如图2-2所示。
本文设计的RS-485通信接口芯片就是采用半双工的传送方式。
图2-2半双工通信
(3)单工(Simplex)
甲乙双方通信时只能单向传送数据,发送方和接收方固定。
如图2-3所示。
图2-3单工通信
2.1.3异步收发器
(1)UART(异步收发器)的组成
UART由三个部分组成:
接收器、发送器、控制器。
接收器——将接收到的串行码转换成并行码,并对其进行错误检测。
发送器——将并行码转换为一定数据格式的串行码。
控制器——用以接收CPU的控制信号、执行CPU所要求的操作,并输出状态信息和控制信息。
(2)异步串行通信中设立的出错标志。
①奇偶错误;
②帧错误(数据格式错);
③溢出错误(丢失错误、数据重叠)[3]。
2.1.4通信波特率的设置
波特率,即数据传送速率,表示每秒钟传送二进制代码的位数,它的单位是位/秒(b/s)。
波特率对于CPU与外界的通信是很重要的,它是衡量传输通道频宽的指标,它和传送数据的速率并不一致。
异步通信的传送速度在50~19200b/s之间。
常用于计算机到终端机和打印机之间的通信、无线电通信的数据发送等。
80C51单片机系统时钟绝大多数情况下都采用6MHz的石英晶体振荡器,其串行口的波特率是由其内部定时器TH1(8位)决定的,具体计算公式为[3]:
2.2异步串行通信接口标准
2.2.1RS-232C串行接口标准
RS-232C接口标准是在1969年由美国电气工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通信的标准,所以RS-232C是PC机与通信工业中使用最早的一种串行接口标准。
在短距离、较低波特率串行通信中得到了广泛的应用。
RS-232C接口标准最初是为了远程通信连接数据终端设备DTE和数据通信设备DCE进行通行而设计的。
RS-232C中定义了20根信号线,使用25芯D型连接器(DB25)实现,其中除了用于全双工串行通信的两根信号线外,标准还定义了若干“握手线”。
实际应用中,这些“握手线”的连接不是必须的。
为了简化接口的线路连接,出现了简化的9芯D型连接器(DB9)。
图2-4为DB-9型连接器的引脚图,下面简要介绍一下9个引脚的功能。
(1)DCD数据载波检出(ReceiveLineSignalDetector)。
当本地DCE设备收到对方的DCE设备送来的载波信号时,该引脚有效,用于通知DTE准备接收,此时DCE将接收到的载波信号解调为数字信号后,经RXD线传送至DTE。
(2)RXD接收数据(ReceiveData)。
DTE通过该引脚接收DCE发送过来的串行数据。
(3)TXD发送数据(TransmittedData)。
串行数据通过该引脚从DTE发送至DCE。
(4)DTR数据终端准备好(DTEReady)。
该引脚有效时,表明数据终端处于可用状态,通常将其直接接至电源端,上电有效。
(5)GND信号地线。
该引脚为所有的电路提供参考电位。
(6)DSR数据装置就绪(DCEReady)。
该引脚有效时,表明MODEM处于可用状态,通常将其直接接至电源端,上电有效。
(7)RTS请求发送(RequesttoSend)。
用来表示DTE请求DCE发送数据,即当终端要发送数据时,该信号有效,向MODEM提出发送请求,此时MODEM进入发送状态。
(8)CTS允许发送(CleartoSend)。
用来表示DCE已准备好接收DTE发来的数据,是对请求发送信号RTS的相应信号。
当MODEM已准备好接收终端传来的数据时,该信号有效,通知终端开始发送数据。
(9)RI振铃提示(RingIndicator)。
当MODEM收到交换台送来的振铃呼叫信号时,该信号有效,用于通知终端已被呼叫。
图2-4DB9引脚图
与TTL,MOS逻辑电平完全不同,RS-232C其逻辑电平对地是对称的。
逻辑0电平规定为+5V~+15V之间,逻辑1电平为-5~-15V之间,因此为了使RS-232C能够和TTL器件相连接,就必须在RS-232C和TTL电路之间进行电平和逻辑关系的变换。
用RS-232C总线连接系统时,有近程通信方式和远程通信方式之分。
近程通信是指传输距离小于15米的通信,这时可以用RS-232C电缆直接连接,最少只需连接3根信号线即可。
由于RS-232C接口标准出现的较早难免有不足之处,主要有以下四点:
(1)接口的信号电平值较高,易损坏接口电路的芯片,又因为与TTL电平不兼容,使用电平转换电路才能与TTL电路连接。
(2)传输速率较低,在异步传输时,波特率最高为20Kbps。
(3)接口使用一根信号线和一根信号返回线而构成共地的传输形式,这种共地传输容易形成共模干扰,所以抗噪声干扰性弱。
(4)传输距离有限,最大传输距离也只能在15米左右[1]。
2.2.2RS-422串行接口标准
RS-422是在RS-232C以后发展起来的、平衡传送的电气标准,比起RS-232C非平衡的传送方式在电气指标上有了大幅度的提高。
RS-422标准全称是“平衡电压数字接口电路的电气特性”,它定义了接口电路的特性。
典型的RS-422是四线接口(实际上还有一根信号地线,共5根线)。
由于接收器采用高输入阻抗和发送驱动器比RS232更强的驱动能力,故允许在相同传输线上连接多个接收节点,最多可接10个节点。
即一个主设备(Master)其余为从设备(Salve),从设备之间不能通信,所以RS-422支持点对多的双向通信。
RS-422四线接口由于采用单独的发送和接收通道,因此不必控制数据方向,各装置之间任何必须的信号交换均可以按软件方式(XON/XOFF握手)或硬件方式(一对单独的双绞线)实现。
RS-422的最大传输距离为1200米,最大传输速率为10Mb/s。
其平衡双绞线的长度与传输速率成反比,在100kb/s速率以下,才可能达到最大传输距离。
只有在很短的距离下才能获得最高速率传输。
一般100米长的双绞线上所能获得的最大传输速率仅为1Mb/s。
RS-422需要一终接电阻,要求其阻值约等于传输电缆的特性阻抗,终接电阻接在传输电缆的最远端;
一般在300米以下不需终接电阻[1]。
2.2.3RS-485串行接口标准
RS-485是从RS-422基础上发展而来的,所以RS-485许多电气规定与RS-422相仿。
该规范满足所有RS-422要求,而且比RS-422稳定性更强。
现从五个方面简单介绍如下:
(1)采用平衡发送和差分接收方式,即在发送端,驱动器将TTL电平信号转换成差分信号输出;
在接收端,接收器将差分信号变成TTL电平,能有效的抑制共模干扰,提高信号传输的准确率。
(2)电气特性:
对于发送端,逻辑1以两线间的电压差为+(2~6)V表示;
逻辑0以两线间的电压差为-(2~6)V表示。
对+接收端,A比B高200mV以上即认为是逻辑l,A比B低200mV以上即是逻辑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)最大传输速率为l0Mbps。
当波特率为1200bps时,最大传输距离理论上可达15千米。
平衡双绞线的长度与传输速率成反比,在100kbps速率以下,才可能使用规定最长的电缆长度。
RS-485需要2个终接电阻,接在传输总线的两端,其阻值要求等于传输电缆的特性阻抗,为120Ω。
在短距离传输时可不终接电阻,即一般在300米以下不终接电阻。
(5)采用二线与四线方式,二线制可实现真正的多点双向通信。
而采用四线连接时,只能有一个主(Master)设备,其余为从设备,它比RS-422有改进,无论四线还是二线连接方式总线上可连接多达32个设备。
RS-485总线挂接多台设备用于组网时,能实现点到多点及多点到多点的通信(多点到多点是指总线上所接的所有设备及上位机任意两台之间均能通信)。
连接在RS-485总线上的设备也要求具有相同的通信协议,且地址不能相同。
在不通信时,所有的设备处于接收状态,当需要发送数据时,串口才翻转为发送状态,以避免冲突。
在过去20年时间里,RS-485标准作为一种多点差分数据传输的电气规范,被应用在许多不同的领域,作为数据传输链路。
目前,在我国应用的现场网络中,RS-485半双工异步通信总线也是被各个研发机构广泛使用的数据通信总线。
但是基于在RS-485总线上任一时刻只能存在一个主机的特点,它往往应用在集中控制枢纽与分散控制单元之间[2]。
2.2.4RS-232,RS-422,RS-485通讯方式的区别
RS-232,RS-422,RS-485通讯方式的最主要的区别是RS-422和RS-485都采用平衡驱动和差分输入的方式,有效的消除了共模干扰,并且RS-485有更宽的共模输入范围(-7v~+12v);
能实现一点对多点的通信;
传输距离远;
传输速率快。
如表2-1所示[2]。
表2-1RS-232,RS-422,RS-185的区别
标准
RS-232
RS-422
RS-485
工作方式
单端
差分
节点数
1收1发
1发10收
1发32收
最大传输电缆长度
50英尺
4000英尺
最大传输速率
20kbps
10Mbps
最大驱动输出电压
+/-25V
-0.25V~+6V
-7V~+12V
发送器输出信号电平(负载最小值)
负载
+/-5V~+/-15V
±
2.0V
1.5V
发送器输出信号电平(空载最大值)
空载
6V
发送器负载阻抗(Ω)
3k~7k
100
54
摆率(最大值)
30V/µ
S
N/A
接收器输入电压范围
15V
-10V~+10V
接收器输入门限
3V
200mV
接收器输入电阻(Ω)
4k(最小)
>
=12k
发送器共模电压
---
-3V~+3V
-1V~+3V
接收器共模电压
-7V~+7V
2.3通信芯片的介绍
2.3.1RS-232通信芯片
PC机串口是RS232电平的,以正负电压来表示逻辑状态,而单片机的串口是TTL电平的,以高低电平表示逻辑状态。
因此,为了能够使计算机接口和终端的TTL器件连接,必须在RS232C与TTL电路之间进行电平和逻辑关系变换。
使用MAX232芯片可以将PC机串行口的RS-232C电平转换为TTL标准电平。
MAX232芯片内部有一个电源电压变换器,可以把输入的+5V电源电压变换成为RS-232C输出电平所需的士l0V电压。
所以,采用此芯片接口的串行通信系统只需单一的+5V电源就可以了。
MAX232芯片的引脚结构如图2-5所示:
图2-5MAX232引脚功能图
实际应用中,T1IN,T2IN可直接接TTL/CMOS电平的MCS-51单片机的串行发送端TxD;
RIOUT,R2OUT可直接接TTL/CMOS电平的MCS-51单片机的串行接收端RxD;
TIOUT,T2OUT可直接接PC机的RS-232串口的接收端RxD;
R1IN,R2IN可直接PC机的RS-232串口的发送端TxD[1]。
2.3.2RS-485通信芯片
RS-485芯片作为一种常用的通讯接口器件,可以在许多半导体公司的“标准接口器件”栏目中“收发器”类元件中找到对应的型号。
所以在进行RS-485通讯芯片设计之前,有必要选择一款成功在市场上应用的相关芯片进行分析研究,以确保设计的成功性。
本设计选择的是MAXIM公司的MAX485,其内部结构如图2-6所示。
该芯片具有低功耗,单电源供电等优点,主要应用于低功耗RS-485收发器、低功耗RS-422收发器、RS232-485电平转换器和工业控制局域网等[4]。
图2-6MAX485芯片内部结构
其内部逻辑关系如表2-2所示:
表2-2MAX485逻辑关系
发送
/RE
DE
DI
A
B
×
H
L
Z
接收
A-B
RO
≥+0.2V
≤-0.2V
MAX485芯片采用单一电源+5V工作,额定电流为300μA,采用半双工通讯方式。
它完成将TTL电平转换为RS-485电平的功能,将输入的TTL电平转换成差分电平输出。
其结构和引脚都非常简单,内部含有一个驱动器和接收器。
RO和DI端分别为接收器的输出和驱动器的输入端,与单片机连接时只需分别与单片机的RXD和TXD相连即可;
RE和DE端分别为接收和发送的使能端,当RE为逻辑0时,器件处于接收状态;
当DE为逻辑1时,器件处于发送状态,因为MAX485工作在半双工状态,所以只需用单片机的一个管脚控制这两个引脚即可;
A端和B端分别为接收和发送的差分信号端,当A引脚的电平高于B时,代表发送的数据为1;
当A的电平低于B端时,代表发送的数据为0。
在与单片机连接时接线非常简单。
只需要一个信号控制MAX485的接收和发送即可[2]。
第三章系统方案设计
3.1系统总体设计
本系统是由一台PC机为上位机,多台80C51单片机构成主从式结构网络作为下位机,以此来实现上位机与下位机,下位机与下位机之间信息的传输。
本系统通信过程如下:
上位PC机作为主机经过一定的程序后,先向下位机发出地址信号,各个下位机收到信息后,开中断去执行程序,与上位机发过来的地址相比较。
地址相同的那台单片机向主机发送自己的地址,然后准备接收上位机发送过来的命令,看是接收还是发送数据;
上位机收到发过来的地址并进行判断看是否与自己发送的地址相符,相符后则发送命令。
通过此过程来达到上位机与下位机之间数据的传输,并将接收到的数据用显示器进行显示。
3.2系统主要构成部分
本系统中作为主机的PC机的串行接口为RS232或USB总线,采用专用的RS232/485标准转换芯片S2-485来实现。
其实质是先用MAX232转换芯片将RS232电平转换为TTL电平,再用MAX485芯片将TTL电平转换为RS485电平,然后采用RS485总线进行长距离、高速的串行异步通信。
各下位单片机由于已经是TTL电平,则只需用MAX485芯片将TTL电平转换为RS485电平来进行通信就可以了。
其系统的原理框图如图3-1所示:
图3-1多机通信原理框图
在总线末端接一个匹配电阻,吸收总线上的反射信号,使得正常传输信号无毛刺。
匹配电阻的取值应该与总线的特性阻抗相当。
在总线上没有信号传输时,总线处于悬浮状态,容易受干扰信号的影响。
将总线上的差分信号的门端A+和负端B-之间接一个10kΩ的电阻;
负端B-和地间接一个10kΩ的电阻,形成一个电阻网路。
当总线上没有信号传输时,门端A+的电平大约为3.2V,负端B-的电平大约为1.6V。
即使有干扰信号,也很难产生串行通信的起始信号0,从而增加了总线抗干扰的能力[5]。
从结构上系统可以分为:
上位PC机部分、RS232接口电路部分、RS232/485转换电路、RS-485通信网络部分、RS485接口电路部分和下位单片机部分。
(1)上位PC机
上位机作为主机一般采用PC机,它主要是向下位机发送地址信息、命令,接收下位机做出的反应和发送数据。
(2)RS232接口电路
串行通信中,只有通信双方采用相同的接口标准,才能进行正常的通信,由于上位PC机的串行通信口采用的RS-232电平和下位单片机的TTL逻辑电平不一致,所以我们必须进行电平转换;
为实现逻辑电平的转换使用MAX232转换芯片。
(3)RS232/485转换电路
RS232/485转换电路其实质就是包含MAX232和MAX485两个芯片,来实现电平之间的转换。
(4)RS-485通信网络
由MAX485收发器组成的差分平衡系统,其通信采用平衡发送和差分接收的方式,使得传输距离长、抗干扰能力强,因而适用于远距离通信。
(5)RS485接口电路部分
由于要实现RS485通信,而单片机端口的电平为TTL电平,则必须进行转换,本系统采用MAX485转换芯片。
(6)下位单片机部分
每个下位机是由8051单片机为核心,再配上必要的时钟电路,复位电路以及键盘和显示器等而构成的一个单片机系统。
该部分的具体功能:
①.对上位机发出的信号做出回答;
②.完成与上位PC机之间的数据传输,包括发送和接收数据。
3.3系统主从通信的基本条件
为了确保主从机能够实现安全的通信,在通信过程中必须满足三个基本条件:
(1)系统中每个下位机都有一个唯一的地址码。
(2)在系统中,主机可直接与下位机进行通信,各下位机之间不能进行直接通信,必须通过主机作为中间点才能实现通信;
各下位机在不进行通信时处于监听状态。
(3)在通信时,只允许主机和一台下位机进行通信,而不允许多个下位机和一台主机同时进行通信。
第四章系统软件设计与调试
4.1PC机与多个80C51通信原理
利用PC机的串行通信适配器,其核心为可编程通用异步收发器UART8250芯片,8250有10个可寻址寄存器供CPU读/写,实现与外界的数据通信,制订通信协议和提供通信状态信息。
80C51单片机的串行通道是一个全双工的串行通信口,既可以实现双机通信,也可以实现多机通信。
下位机主机80C51单片机对串口的控制通过SCON控制寄存器实现,SCON各位定义如下:
SM0
SM1
SM2
REN
TB8
RB8
TI
RI
其中,SM0,SM1为串口工作方式选择位,SM2为多
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 RS485 通信 软件 编程 系统 调试 毕业设计