利用RS485通讯协议实现PC机与单片机的多点通讯.docx
《利用RS485通讯协议实现PC机与单片机的多点通讯.docx》由会员分享,可在线阅读,更多相关《利用RS485通讯协议实现PC机与单片机的多点通讯.docx(19页珍藏版)》请在冰豆网上搜索。
![利用RS485通讯协议实现PC机与单片机的多点通讯.docx](https://file1.bdocx.com/fileroot1/2023-2/11/a996bab1-92cb-461d-a416-1894e7e3ac93/a996bab1-92cb-461d-a416-1894e7e3ac931.gif)
利用RS485通讯协议实现PC机与单片机的多点通讯
合肥学院毕业设计(论文)任务书
课题名称
基于RS-485总线的多机通信设计
学生姓名
系别
电子信息与电气工程
专业班级
课题类型
实验研究
指导教师研究方向
计算机应用
课题来源
其它
研究项目名称编号
课题意义、基本要求、重点需要研究的问题
在现代工业控制系统中,有很多设备都带有RS-485串行接口,由于RS-485总线协议简单,组网方便,所以在自动化工业有着广泛的应用,因此掌握RS-485总线的应用非常有必要。
要求应用RS-485总线实现三个以上单片机之间的通信,其中一个为主机,其余为从机,主机可以和任一从机进行数据通信,从机接受命令、数据采集并发送给主机,主机负责发送命令和接收从机发来的数据。
需要研究485总线协议和单片机的多机通信实现方法。
计划与进度要求
2007.12-2008.3.9开始查阅、收集、学习资料、准备设计
2008.3.10-2008.4.6设计系统可行性方案,提交开题报告书
2008.4.7-2008.4.30进行系统详细软硬件设计和完成论文中期检查报告
2008.5.1-2008.5.10对软硬件设计调试、排除故障至满足设计要求功能
2008.5.11-2008.5.20按要求撰写论文,完成初稿
2008.5.21-2008.5.30完成论文终稿,作答辩前的准备工作和提交论文过程中所有纸质、电子版材料
2008.6完成答辩
主要参考文献及资料收集准备
[1]修智宏基于RS-485总线的计算机分布式测控系统[J].仪表技术与传感器,2001,(10)
[2]李新超基于RS-485总线的数据采集处理系统[J].现代电子技术,2007,(12)
[3]张晨昊.基于485总线的数字化温湿度测控系统的设计[J].科学技术与工程,2007,(11)
[4]余凤翎基于RS-485总线的单片机网络通信系统的研究[J]广东技术师范学院学报,2007,(03)
[5]金宁,汪伟.分布式控制系统的主从式RS—485多机通信[J].中国计量学院学报,1999,(01)
起止日期
2007年12月-------2008年6月
备注
熟悉单片机应用和工业485总线技术
课题类型:
工程设计类,实验研究类,计算机软件设计类,电路设计类,其它类
课题来源:
科研,教研,预研,生产实践,其它类
系主任教研室主任指导教师
年 月 日 年 月 日 2007年 11月 1日
利用RS-485通讯协议实现PC机与单片机的多点通讯
摘 要介绍一种RS-485接口芯片MAX485,利用此芯片可以很方便地实现PC机与单片机之间的串行通讯,同时给出PC机与单片机实现多点通讯的实例。
关键词RS-485串行通讯多点通讯
随着数据采集系统的广泛应用,通常由单片机构成的应用系统,如仪器仪表、智能设备等,都需要与PC机之间交换数据,实现与PC机之间的通讯功能,以充分发挥PC和单片机之间的功能互补,资源共享的优势。
以往常用的RS-232协议在很大程度上已不能满足设计的要求,如传输速率慢,传输距离短,传输信号易受外界的干扰等缺点。
本文介绍一种性能优越的RS-485接口芯片,以及如何利用此芯片实现单片机与PC机之间的远程通讯,并讨论将其功能进行扩充,实现PC机管理单片机阵列的功能。
1RS-485协议简介及MAX485芯片介绍
由于RS-232的种种缺点,新的串行通讯接口标准RS-449被制定出来,与之相对应的是RS-485的电气标准。
RS-485是美国电气工业联合会(EIA)制定的利用平衡双绞线作传输线的多点通讯标准。
它采用差分信号进行传输;最大传输距离可以达到1.2km;最大可连接32个驱动器和收发器;接收器最小灵敏度可达±200mV;最大传输速率可达2.5Mb/s。
由此可见,RS-485协议正是针对远距离、高灵敏度、多点通讯制定的标准。
MAX485接口芯片是Maxim公司的一种RS-485芯片。
采用单一电源+5V工作,额定电流为300μA,采用半双工通讯方式。
它完成将TTL电平转换为RS-485电平的功能。
其引脚结构图如图1所示。
从图中可以看出,MAX485芯片的结构和引脚都非常简单,内部含有一个驱动器和接收器。
RO和DI端分别为接收器的输出和驱动器的输入端,与单片机连接时只需分别与单片机的RXD和TXD相连即可;/RE和DE端分别为接收和发送的使能端,当/RE为逻辑0时,器件处于接收状态;当DE为逻辑1时,器件处于发送状态,因为MAX485工作在半双工状态,所以只需用单片机的一个管脚控制这两个引脚即可;A端和B端分别为接收和发送的差分信号端,当A引脚的电平高于B时,代表发送的数据为1;当A的电平低于B端时,代表发送的数据为0。
在与单片机连接时接线非常简单。
只需要一个信号控制MAX485的接收和发送即可。
同时将A和B端之间加匹配电阻,一般可选100Ω的电阻。
2用PC机实现与8031单片机的多点通讯
用8031单片机实现与PC机之间的通讯时,必须使用电平转换接口芯片,因为单片机输出的是TTL电平,必须经过电平转换才能和PC机的一致。
本文中采用的是RS-485协议,所以单片机需要采用RS-485接口;而在PC机侧使用的是RS-232与RS-485的电平转换接口。
在本文中采用的是武汉新特电子公司的电平转换接口,该接口使用简便、无需外加电源、数据传输速率最高可达10Mb/s,而且不用任何软件初始化和修改。
另外实现多点通讯还需要了解器件的驱动能力,当器件的驱动能力足够大时,我们就可以根据需要加入所需要的节点。
本文中所举的例子就是利用一台PC控制64块单片机的工作,采用多点通讯形式。
通过发送控制字和工作方式字给相应的单片机,使其进行相应的操作。
单片机在接收到数据后,进行数据的采集工作,等到PC机再发指令,将采集到的数据反馈给PC机,PC机对数据进行分析和计算。
PC机的程序可以采用Windows下任何一种面向对象的高级语言来编写,它比在DOS下的利用串口中断的方式进行更加简便,应用程序将控制权交向串口的驱动程序,接收和发送的中断完全由串口驱动程序来控制,减轻了编写过程中的很多麻烦。
本程序中选用的是Delphi的串口通讯控件Spcomm来实现。
参数的设置可以自动完成。
单片机采用中断工作方式,用汇编语言编写,通讯波特率为12kb/s,由于要和PC机进行通讯,选用110592MHz的晶振,保证和PC机的波特率完全一致,避免由于波特率不同引起的收发错误。
为了配合多机工作方式,选用工作方式3。
单片机的通讯流程图如图3所示。
下面给出用Delphi编制的通讯程序和单片机的接收和发送程序。
单片机初始化子程序:
单片机接收子程序:
REPT:
CLRRI
MOVA,SBUF
MOV@R0,A
RET
在程序编写过程中,为了保证接收和发送数据的正确性,我们加入了CRC校验程序,另外PC机发送给单片机的是ASCII码形式的数据,同样需要经过简单的变换,在此均作了省略。
利用RS-485协议进行串行通讯,可以保证快速、稳定远距离地传输数据。
在目前以及以后的工业控制和其他方面必将得到越来越多的应用。
参考文献
1武自芳,虞鹤松.微机控制系统及其应用西安:
西安交通大学出版社,1998
2Maxim的产品资料
3李朝青编著.PC机及单片机数据通信技术.北京:
北京航空航天大学出版社,1999
RS-232C/RS-422/RS-485转换器简介
RS-232C/RS-422/RS-485转换器简介
在用RS-422或RS-485连接的主、从式通信网络中,常常用一台PC系列机作主机,对整个网络的通信进行管理,同时在网络应用系统中起核心作用。
PC系列机只配RS-232C接口,若要采用RS-422或RS-485,一种方法是采用专门设计的RS-422或。
RS-485接口板,另一种方法是加转换电路,后者成本要低些。
图12.29所示是RS-232C/RS-422/RS-485转换原理示意图。
图中75174是长线发送器,它将单端输入信号变成差动输出信号,并增强驱动能力。
它的使能端由:
RS-232C的请求发送RTS控制。
75175是长线接收器,它将差动输入信号变成单端输出信号。
图中的光电隔离电路可使与机器共地的RS-232C接口与RS-422/RS-485接口在电气上实现隔离,从而保证了机器的安全。
RS-232-TTL-RS485的电路图
-
RS-232,RS485接口标准概述
在数据通信,计算机网络以及分布式工业控制系统当中,经常需要使用串行通信来实现数据交换。
目前,有RS-232,RS-485,RS-422几种接口标准用于串行通信。
RS-232是最早的串行接口标准,在短距离(<15M),较低波特率串行通信当中得到了广泛应用。
其后针对RS-232接口标准的通信距离短,波特率比较低的状况,在RS-232接口标准的基础上又提出了RS-422接口标准,RS-485接口标准来克服这些缺陷。
下面详细介绍RS-232,RS-422,RS-485接口标准。
RS-232串口标准是种在低速率串行通讯种增加通讯距离的单端标准。
RS-232采取不平衡传输方式,即单端通讯。
其收发端的数据信号都是相对于地信号的。
所以其共模抑制能力差,再加上双绞线的分布电容,其传输距离最大约为15M,最高速率为20KBPS,且其只能支持点对点通信。
针对RS-232串口标准的局限性,人们又提出了RS-422,RS-485接口标准。
RS-485/422采用平衡发送和差分接收方式实现通信:
发送端将串行口的TTL电平信号转换成差分信号A,B两路输出,经过线缆传输之后在接收端将差分信号还原成TTL电平信号。
由于传输线通常使用双绞线,又是差分传输,所以又极强的抗共模干扰的能力,总线收发器灵敏度很高,可以检测到低至200mV电压。
故传输信号在千米之外都是可以恢复。
RS-485/422最大的通信距离约为1219M,最大传输速率为10Mb/S,传输速率与传输距离成反比,在100Kb/S的传输速率下,才可以达到最大的通信距离,如果需传输更长的距离,需要加485中继器。
RS-485采用半双工工作方式,支持多点数据通信。
RS-485总线网络拓扑一般采用终端匹配的总线型结构。
即采用一条总线将各个节点串接起来,不支持环形或星型网络。
如果需要使用星型结构,就必须使用485中继器或者485集线器才可以。
RS-485/422总线一般最大支持32个节点,如果使用特制的485芯片,可以达到128个或者256个节点,最大的可以支持到400个节点。
485中继器
485中继器是光隔离的RS-485/422的数据中继通信产品,可以中继延长RS-485/422总线网络的通信距离,增强RS-485/422总线网络设备的数目。
可以将485总线进行光电隔离,防止共模电压干扰。
可以支持RS-485总线与RS-422总线的自动切换。
产品特点:
485总线中如果485传输线达到一定的距离,而且处于复杂的外部环境,从而容易受到外部环境的电磁感应等外部干扰。
中继器中的高效的防雷管可以有效地抑制闪电(Lightning)和ESD,并且提供每线600W的雷击浪涌保护功率。
可以吸收外部环境的电磁感应等外部干扰。
从而保护485总线的稳定性。
由于485总线传输距离的延长,或者485总线中的485设备的增多,会使得485信号不断的衰减,最后可能导致485总线不稳定甚至不能使用,485总线中继器可以对已有的485信号进行增强和放大,增加RS-422/RS-485总线网络中485设备的数目。
在现场施工当中,由于485总线的距离比较远,在其中形成了电位差,从而产生了共模干扰,导致稳定性降低。
485总线中继器的光电隔离器能够提供3000V的隔离电压,可以有效的将485总线相互隔离,防止共地干扰。
其中的DC/DC模块,可以将两端的电源完全隔离。
从而实现完全隔离。
485中继器采用专业的I/O电路,使用数据流向自动控制技术,自动判别和控制数据传输方向,无需更改软硬件,可以很方便的实现RS-485总线与RS-422总线之间的切换。
采取零延时设计,传输速度快。
自动侦测串口信号速率,无需设置串口波特率。
485总线要求485设备要离总线主干尽可能的近,使用485总线中继器,可以将总线拓扑结构改成"T"型拓扑结构,方便现场施工。
485光隔离中继器采用全金属外壳,防静电,抗干扰能力强。
技术参数:
接口特性:
串口符合EIARS-232/485/422协议
电气接口:
串口接口位DB9接口
传输介质:
超五类双绞屏蔽线或者485专用线
工作方式:
异步工作,点对点或多点,2线半双工,4线全双工
隔离度:
隔离电压3000V
传输距离:
RS-485/RS-422端1200米
尺寸:
95L*65W*25H毫米
使用环境:
温度:
-20℃-60℃,湿度:
5%—95%
传输速率:
300bps—115200bps
保护等级:
600W浪涌保护,15KV静电保护
引脚定义:
R+
RS-422接口接收正端
R-
RS-422接口接收负端
T+
RS-422接口发送正端
T-
RS-422接口发送负端
485+
RS-485接口正端
485-
RS-485接口负端
GND
电源地(近端接地点)
应用领域:
用于点对点、点对多点通讯、工业控制自动化、道路交通控制自动化、智能卡、考勤、门禁、售饭系统、工业集散分布系统、闭路监控、安防系统、POS系统、楼宇自控系统、自助银行系统。
RS-485集线器是一款专为解决复杂的电磁场环境下RS-485总线大系统要求而设计的RS-485总线分割集中器(485hub)。
可以提供更加灵活的RS-485星型总线结构RS-485接口输入、输出端均采用独立驱动方式,改变原有总线的单一式结构为星型网络结构,可以给工程建设及系统的稳定性带来极大的好处。
产品特点:
工业级光电隔离:
为所有的RS-485接口提供3KV以上的光电隔离,有效的解决了外界雷击浪涌和地电位差带来的传输问题。
短路开路保护:
具有RS-485端口故障告警功能,并能自动切掉故障端口,这种设计能够保证当其中连接的RS-485端口设备发生故障时,出现问题的RS-485端口将被隔离,以确保其他网段的设备正常工作。
星形连接:
提供更加灵活的RS-485星型总线结构RS-485接口输入、输出端均采用独立驱动方式,改变原有总线的单一式结构为网络结构给工程建设及系统的稳定性带来极大的好处。
数据流向自动控制:
通过硬件解决数据流向问题,自动判别和控制数据传输方向。
技术参数:
接口特性:
串口符合EIARS-232/485协议
电气接口:
串口接口位接线端子
传输介质:
超五类双绞屏蔽线或者485专用线
工作方式:
异步工作,点对点或多点,2线半双工
隔离度:
隔离电压3000V
传输距离:
RS-485端1200米,RS-232端建议不超过5米
尺寸:
120L*80W*25.5H毫米(带接线端子尺寸:
140L*105W*25.5H毫米)
使用环境:
温度:
-20℃-60℃,湿度:
5%—95%
传输速率:
300bps—115200bps
保护等级:
应用领域:
用于点对点、点对多点通讯、工业控制自动化、道路交通控制自动化、智能卡、考勤、门禁、售饭系统、工业集散分布系统、闭路监控、安防系统、POS系统、楼宇自控系统、自助银行系统。
RS-232和RS-485简介
一、什么是RS-232接口?
(1)RS-232的历史和作用
在串行通讯时,要求通讯双方都采用一个标准接口,使不同的设备可以方便地连接起来进行通讯。
RS-232-C接口(又称EIARS-232-C)是目前最常用的一种串行通讯接口。
(“RS-232-C”中的“-C”只不过表示RS-232的版本,所以与“RS-232”简称是一样的)它是在1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。
它的全名是"数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准"该标准规定采用一个25个脚的DB-25连接器,对连接器的每个引脚的信号内容加以规定,还对各种信号的电平加以规定。
后来IBM的PC机将RS-232简化成了DB-9连接器,从而成为事实标准。
而工业控制的RS-232口一般只使用RXD、TXD、GND三条线。
(2)RS-232接口的电气特性
在RS-232-C中任何一条信号线的电压均为负逻辑关系。
即:
逻辑"1"为-3到-15V;逻辑"0"为+3到+15V。
RS-232-C最常用的9条引线的信号内容如下所示
(3)RS-232接口的物理结构
RS-232-C接口连接器一般使用型号为DB-9插头座,通常插头在DCE端,插座在DTE端。
PC机的RS-232口为9芯针插座。
而波士RS-232/RS-485转换器的RS-232为DB-9孔插头。
一些设备与PC机连接的RS-232接口,因为不使用对方的传送控制信号,只需三条接口线,即"发送数据TXD"、"接收数据RXD"和"信号地GND"。
RS-232传输线采用屏蔽双绞线。
(4)RS-232传输电缆长度
由RS-232C标准规定在码元畸变小于4%的情况下,传输电缆长度应为50英尺,其实这个4%的码元畸变是很保守的,在实际应用中,约有99%的用户是按码元畸变10-20%的范围工作的,所以实际使用中最大距离会远超过50英尺,美国DEC公司曾规定允许码元畸变为10%而得出下面实验结果。
其中1号电缆为屏蔽电缆,型号为DECP.NO.9107723内有三对双绞线,每对由22#AWG组成,其外覆以屏蔽网。
2号电缆为不带屏蔽的电缆。
型号为DECP.NO.9105856-04是22#AWG的四芯电缆。
DEC公司的实验结果
经过许多年来RS-232器件以及通信技术的改进,RS-232的通信距离已经大大增加。
波士电子的RS-232增强器可以将普通的RS-232口的通信距离直接延长到1000米。
二、什么是RS-485接口?
1.RS-485的电气特性:
发送端:
逻辑"1"以两线间的电压差为+(2至6)V表示;逻辑"0"以两线间的电压差为-(2至6)V表示。
接收端:
A比B高200mV以上即认为是逻辑"1",A比B低200mV以上即认为是逻辑"0"。
2.RS-485的数据最高传输速率为10Mbps。
但是由于RS-485常常要与PC机的RS-232口通信,所以实际上一般最高115.2Kbps。
又由于太高的速率会使RS-485传输距离减小,所以往往为9600bps左右或以下。
3.RS-485接口是采用平衡驱动器和差分接收器的组合,抗噪声干扰性好。
4.RS-485接口的最大传输距离标准值为1200米(9600bps时),实际上可达3000米,RS-485接口在总线上是允许连接多达128个收发器、即RS-485具有多机通信能力,这样用户可以利用单一的RS-485接口方便地建立起设备网络。
因RS-485接口具有良好的抗噪声干扰性,长的传输距离和多站能力等上述优点就使其成为首选的串行接口。
因为RS485接口组成的半双工网络,一般只需二根信号线,所以RS485接口均采用屏蔽双绞线传输。
RS-485的国际标准并没有规定RS485的接口连接器标准、所以采用接线端子或者DB-9、DB-25等连接器都可以。
波士RS-485接口是事实工业标准。
5.采用RS485接口时,传输电缆的长度如何考虑?
答:
在使用RS485接口时,对于特定的传输线经,从发生器到负载其数据信号传输所允许的最大电缆长度是数据信号速率的函数,这个长度数据主要是受信号失真及噪声等影响所限制。
最大电缆长度与信号速率的关系曲线是使用24AWG铜芯双绞电话电缆(线径为0.51mm),线间旁路电容为52。
5PF/M,终端负载电阻为100欧时所得出。
(引自GB11014-89附录A)。
当数据信号速率降低到90Kbit/S以下时,假定最大允许的信号损失为6dBV时,则电缆长度被限制在1200M。
实际上,在实用时是完全可以取得比它大的电缆长度。
当使用不同线径的电缆。
则取得的最大电缆长度是不相同的。
例如:
当数据信号速率为600Kbit/S时,采用24AWG电缆,最大电缆长度是200m,若采用19AWG电缆(线径为0。
91mm)则电缆长度将可以大于200m;若采用28AWG电缆(线径为0。
32mm)则电缆长度只能小于200m。
RS-485的远距离通信建议采用屏蔽电缆,并且将屏蔽层作为地线。
三、什么是RS-422接口?
RS-422的电气性能与RS-485完全一样。
主要的区别在于:
RS-422有4根信号线:
两根发送(Y、Z)、两根接收(A、B)。
由于RS-422的收与发是分开的所以可以同时收和发(全双工)。
RS-485有2根信号线:
发送和接收都是A和B。
由于RS-485的收与发是共用两根线所以不能够同时收和发(半双工)。
能否将RS-422的Y-A短接作为RS-485的A、将RS-422的Z-B短接作为RS-485的B呢?
回答:
不一定。
条件是RS-422必须是能够支持多机通信的。
波士电子的所有接口转换器的RS-422口都能够支持全双工多机通信,所以可以这样简单转换为RS-485。
四、RS-485比RS-232-C接口相比有何特点?
答:
由于RS-232接口标准出现较早,难免有不足之处,主要有以下四点:
(1)接口的信号电平值较高,易损坏接口电路的芯片,又因为与TTL电平不兼容故需使用电平转换电路方能与TTL电路连接。
(2)传输速率较低,在异步传输时,波特率为20Kbps。
现在由于采用新的UART芯片16C550等,波特率达到115.2Kbps。
(3)接口使用一根信号线和一根信号返回线而构成共地的传输形式,这种共地传输容易产生共模干扰,所以抗噪声干扰性弱。
(4)传输距离有限,最大传输距离标准值为50米,实际上也只能用在15米左右。
(5)RS-232只允许一对一通信,而RS-485接口在总线上是允许连接多达128个收发器。
RS-485总线
RS-422总线采用四线制。
为了在距离较远的情况下,进一步节省通信电缆的费用,推出了RS-485总线。
RS-485是RS-422的变型,采用二线制。
它们的接口基本没有区别,仅仅是RS-485在发送端增加了使能控制。
它们的不同之处主要在于接口之间的互连形式和通信方式。
RS-422支持全双