基于RS485总线多机通信系统可靠性的研究
485 多主机通信机制
485 多主机通信机制485多主机通信机制,是指通过一种基于以太网的通信协议,实现多个主机之间的高速数据传输和通信的技术。
本文将详细介绍485多主机通信机制的原理、特点和应用。
一、485多主机通信机制的原理485多主机通信机制是基于RS-485通信协议的,RS-485是一种串行通信协议,支持多主机通信。
它采用差分信号传输方式,具有抗干扰能力强、传输距离远、传输速率高等优点,适用于工业环境中的数据通信。
在485多主机通信机制中,每个主机都有一个唯一的地址。
当一个主机要发送数据时,它会先发送一个起始信号,然后将数据按字节发送出去。
其他主机会监听总线上的信号,如果检测到起始信号,就会暂时放弃总线的控制权,等待发送数据的主机发送完毕后再参与通信。
在485多主机通信机制中,还有一个重要的概念是主机的优先级。
每个主机都有一个优先级,优先级高的主机具有更高的控制权,在总线上能够更快地发送数据。
当多个主机同时要发送数据时,优先级高的主机会优先发送,而优先级低的主机会等待。
二、485多主机通信机制的特点1. 高速传输:485多主机通信机制支持高速数据传输,最高传输速率可达10Mbps,能够满足实时性要求高的应用场景。
2. 长距离传输:485多主机通信机制采用差分信号传输方式,传输距离可达1200米,适用于工业环境中远距离的通信需求。
3. 抗干扰能力强:485多主机通信机制采用差分信号传输方式,能够有效抵抗电磁干扰和噪声干扰,保证数据传输的可靠性。
4. 多主机通信:485多主机通信机制支持多个主机同时进行通信,每个主机都有一个唯一的地址和优先级,能够实现灵活的数据交互和控制。
三、485多主机通信机制的应用1. 工业自动化:485多主机通信机制广泛应用于工业自动化领域,用于实现各种设备之间的数据通信和控制,如PLC、传感器、执行器等。
2. 智能楼宇:485多主机通信机制可用于智能楼宇系统中,实现楼宇设备之间的数据传输和控制,如照明控制、空调控制、安防监控等。
RS485总线通信系统的设计及实现毕业论文
RS485总线通信系统的设计及实现毕业论⽂本科学⽣毕业论⽂论⽂题⽬:RS485总线通信系统的设计与实现学院:年级:专业:姓名:学号:指导教师:摘要⽆论是⼯业控制还是信号测试领域,实现不同通讯协议的数据融合都有着迫切需要。
但是⽬前市场中存在的协议转换器只能满⾜两种协议之间的转换,如RS485转RS232,USB转RS485等,但是经常存在着多种数据总线并存的情况,因此研制多种总线协议转换的设备有着⽐较⼤的实际意义。
除此之外,⽬前接⼝标准的RS485总线通信协议不统⼀,需设计⼀个⾼效稳定的通信协议。
基于以上原因,本论⽂提出⼀种基于⾼速RS485的多总线通信系统。
整个系统包含多个RS485节点,各个节点包含的通讯接⼝包括RS232,RS485和USB,从⽽实现这三类总线的通讯协议的转换。
设计并实现了⼀种适⽤于微机和单⽚机之间串⾏通信的通信协议,采⽤RS485简便,通信可靠性⾼总线标准,可⽤于⼯业测控和控制现场。
实验结果表明,该通信协议是切实可⾏的,达到了预期的设计要求。
关键词RS485总线;主从式;多机通信;通信协议AbstractWhether in the field of industrial control or signal test, the achievement of data fusion which is based on different communication protocol is urgent needed. However, in the current market, protocol converter can only achieve conversion between two protocols, such as RS485 to RS232, USB to RS485 and so on. Cases of coexistence data bus, it has great practical significance to develop an equipment for protocol conversion among different buses.Based on the reasons above, a high-speed RS485-based multi-bus communication system is presented in this paper. The entire system which is used to realize the three categories of bus communication protocol conversion consists of someRS485 nodes, each node contains the communication interfaces including RS232, RS485 and USB. In the practical application, the number of nodes can be changed as required to formsystem, for achievement of data fusion between a variety of bus communication protocol.Key wordsRS485 bus; Serial Bus; Protocol Conversion; Communication protocol⽬录摘要............................................................................................................................. I Abstract .....................................................................................................................II 第⼀章绪论 (1)1.1 研究背景及意义 (1)1.2 RS485总线通信系统研究现状 (2)第⼆章RS485介绍 (4)2.1 RS485标准 (4)2.2 MAX485芯⽚介绍 (4)2.3 RS485总线组⽹⽅式 (5)2.4 RS485⽅式构成的多机通信原理 (5)第三章系统协议及硬件设计 (7)3.1 RS485通信协议设计 (7)3.1.1 物理层设计 (7)3.1.2 数据链路层设计 (8)3.1.3 应⽤层设计 (8)3.1.4 通信协议 (8)3.2 系统硬件设计 (10)3.2.1 PC与RS485总线的接⼝ (10)3.2.2 RS485⽅式构成的多机通信 (10)3.2.3 单⽚机与PC机串⾏通信系统构成 (11)第四章系统的软件实现 (12)4.1 上下位机的关系 (13)4.2 下位机通信软件的设计 (14)4.3 上位机通信软件的设计 (16)4.3.1 通信协议设计 (16)4.3.2 多机传输 (17)4.3.3 差错控制 (18)4.4 程序设计 (19)第五章系统问题解决措施 (20)5.1 总线隔离 (20)5.2 失效保护 (20)5.3 电磁⼲扰问题 (20)结论 (22)参考⽂献 (23)致 (24)第⼀章绪论所谓通信,不仅仅要实现数据的传输,更应该体现准确性,也称可靠性传输,最好具有⼀定的纠错和检错能⼒。
基于RS485多机通信的四轴步进电机同步控制系统
基于RS485多机通信的四轴步进电机同步控制系统张五一;罗冬冬;程宾【摘要】This article describes a four-axis stepper motor control system which takes STC89C58 MCU as its core. This system consists of one main engine and four subordinate engines. The main machine completes reversing control and speed control of each stepper motor by downloading data from the U-disk and then taking use of the RS485 bus to data transfer from the host and the subordinate machine. This system has high generality, and accomplishes all kinds of oper-ation requirements by users modify the download data in the U-disk on the basis of different applications.%提出一种以STC89C58单片机为核心的四轴步进电机控制系统。
它由主机和4个从机构成。
主机通过U盘进行数据下载,再利用RS485总线实现主机与从机之间的数据传输,从而实现主机对各个从机步进电机的正反转控制以及速度控制。
该系统通用性强,不同应用场合的用户通过修改U盘中的下载数据即可实现对步进电机各种运行要求的控制。
【期刊名称】《中原工学院学报》【年(卷),期】2015(000)003【总页数】5页(P19-23)【关键词】RS485多机通信;步进电机;同步控制【作者】张五一;罗冬冬;程宾【作者单位】中原工学院,郑州450007;中原工学院,郑州450007;中原工学院,郑州450007【正文语种】中文【中图分类】TM306近年来,国内外对于步进电机控制技术的研究主要有传统的PID控制、矢量控制以及一些现代的智能控制理论。
基于RS485的多主机对等通信系统的设计与实现
基于RS485的多主机对等通信系统的设计与实现一、引言现代社会对通信技术的要求越来越高,无线通信技术的应用广泛,然而在某些特定环境下,无线通信可能会受到干扰或信号弱等问题影响。
为了解决这个问题,基于RS485的多主机对等通信系统应运而生。
这种系统可以实现多主机之间的高效、可靠的通信,具有广泛的应用前景。
本文将介绍基于RS485的多主机对等通信系统的设计与实现。
二、RS485通信协议简介RS485是一种串行通信协议,可实现远距离高速数据传输。
它采用差分信号传输,在抗干扰能力和传输距离方面具有优势。
RS485通信协议定义了电气特性、物理层规范、通信帧格式等内容,为多主机对等通信系统的设计与实现提供了基础。
三、多主机对等通信系统的设计1. 系统框架设计多主机对等通信系统由主机、从机和总线组成。
主机之间可以进行双向通信,彼此平等地参与通信过程。
总线通过RS485通信协议连接主机和从机,实现数据的传输和交换。
2. 硬件设计(1)选择合适的RS485通信模块,该模块需要支持多主机对等通信的功能,并提供相应的接口。
(2)确定主机和从机的配置数量和位置,根据实际需求设计电路板布局。
(3)为每个主机和从机分配唯一的地址,以便在通信过程中进行识别和区分。
3. 软件设计(1)主机软件设计:主机负责发起通信请求、接收、解析和处理数据。
软件需要实现主机之间的通信协议,确保数据的正确传输和处理。
(2)从机软件设计:从机负责接收主机发送过来的数据,并做出相应的响应。
软件需要实现从机之间的通信协议,确保数据的正确接收和响应。
四、多主机对等通信系统的实现1. 硬件实现(1)按照设计要求,搭建多主机对等通信系统的硬件电路。
(2)连接RS485通信模块和其他硬件设备,搭建通信网络。
2. 软件实现(1)编写主机软件代码,实现主机之间的通信功能。
(2)编写从机软件代码,实现从机之间的通信功能。
(3)进行系统调试和测试,确保数据的正确传输和处理。
基于RS485多机通信系统设计_马庆功
- -/2012.01/基于RS485多机通信系统设计常州大学信息中心 马庆功常州技师学院电子校区 莫玉华常州刘国钧高等职业技术学校 郑恩兴【摘要】本设计是基于RS485总线的多机通信系统。
本设计是利用51系列单片机模拟RS485多机通信,系统由一个主机和两个从机组成,从机的地址是可以通过拨码开关设置进而可以表示多个从机。
在本设计当中主从机之间采用modbus的03指令进行通信,从机读取的值是18B20的温度数据,通过485总线传给主机,主机显示读取从机温度的值,同时从机也显示自己采集到的温度的值。
【关键词】RS485;单片机;modbus;多机通信;18B201.前言在当今数字化的时代里,多机通信系统也已经广泛地渗透到科学研究、工程设计、军事技术、文化艺术以及人们的日常生活等各个领域。
通过通信的手段实现了信息交换、资源共享已经成为一种必然和趋势。
在多机通信的发展中基于RS485的多机通信[1]也多被广泛的运用于实际的运用当中。
RS485串行接口标准及两级单片机主从式结构,实现了成本低、传输距离远、抗干扰能力强的通信。
在仪表设计方面为了满足仪表数据的远程采集和处理,对多个仪表间的通信以及仪表与主机间的通信提出了要求。
本设计是在常州和普电子公司实习期间参与其仪表接口的开发,主要设计仪表间RS485通信,同时使用的通信协议是工业上面比较通用的ModBus协议。
通过本设计可以实现多种仪表间的相互的通信。
2.硬件设计2.1 硬件电路图本设计主要是分为主机和从机两模块[2]的设计(硬件电路图如图2-1)。
主机系统是由电源、晶振电路、RS485串口电路及1602显示电路、ISP下载接口、电容等组成;从机系统是由电源、晶振电路、RS485串口电路、拨码开关及1602显示电路、ISP下载接口、电容、18b20测温电路等组成。
2.2 RS485串行芯片选择MAX485接口芯片是Maxim公司的一种485接口[3]芯片。
RS485实验一报告模板
实验一基于RS485和牛顿模块的A/D、D/A实验一、实验目的和要求(1)熟悉RS485总线与牛顿模块的结构组成,了解其工作过程,认识其结构形式。
(2)熟悉牛顿模块的基本工作原理。
(3)掌握应用RS485和牛顿模块进行电压输出和电压采集的方法。
二、主要仪器设备计算机、R-8017、R-8024、R-8043D、R-8053、RS232转RS485模块、24V稳压源三、实验内容和原理(1)RS485网络分析RS485采用差分信号负逻辑,+2V~+6V表示“0”,- 6V~- 2V表示“1”。
RS485有两线制和四线制两种接线,四线制只能实现点对点的通信方式,现很少采用,现在多采用的是两线制接线方式,这种接线方式为总线式拓扑结构在同一总线上最多可以挂接32个结点。
在RS485通信网络中一般采用的是主从通信方式,即一个主机带多个从机。
很多情况下,连接RS-485通信链路时只是简单地用一对双绞线将各个接口的“A”、“B”端连接起来。
而忽略了信号地的连接,这种连接方法在许多场合是能正常工作的,但却埋下了很大的隐患,这有二个原因:1>.共模干扰问题:RS-485接口采用差分方式传输信号方式,并不需要相对于某个参照点来检测信号,系统只需检测两线之间的电位差就可以了。
但人们往往忽视了收发器有一定的共模电压范围,RS-485收发器共模电压范围为-7~+12V,只有满足上述条件,整个网络才能正常工作。
当网络线路中共模电压超出此范围时就会影响通信的稳定可靠,甚至损坏接口。
2>.EMI问题:发送驱动器输出信号中的共模部分需要一个返回通路,如没有一个低阻的返回通道(信号地),就会以辐射的形式返回源端,整个总线就会像一个巨大的天线向外辐射电磁波。
由于PC机默认的只带有RS232接口,有两种方法可以得到PC上位机的RS485电路:1>.通过RS232/RS485转换电路将PC机串口RS232信号转换成RS485信号,对于情况比较复杂的工业环境最好是选用防浪涌同时带隔离栅的产品。
新华龙基于RS485的多机通信程序
//-----------------------函数声明,变量定义---------------------#include <reg51.h>sbit RE_DE=P1^0;#define COUNT 10 // 定义接收缓冲区大小#define Slaver_NUM 10unsigned char bdata flag; //在可位寻址去定义一个标志变量sbit time_over_flag =flag^0; //接收超时标志unsigned char buffer[COUNT]; //定义缓冲区unsigned char point; //定义缓冲区位置指示unsigned char Slave_AD[Slaver_NUM]; //定义有效地址存放区unsigned char ADD_num; //有效地址个数unsigned char idata count_10ms; //用于表示有多少次10ms中断unsigned char idata send_data[7]={0x31,0x32,0x33,0x34,0x35,0x36,0x37}; //与定义发送数据,共7位void UART_init(); //串口初始化函数void COM_send(void); //串口接收函数unsigned char CLU_checkdata(void); //计算校验位函数//---------------------------------------------------------------// 函数名称: UART_init()串口初始化函数// 函数功能:在系统时钟为11.059MHZ时,设定串口波特率为9600bit/s // 串口接收中断允许,发送中断禁止,设定定时器中断允许//---------------------------------------------------------------void UART_init(){//初始化串行设置SCON =0x58; //选择串口工作方式为1,打开接收允许,TB8=1 TMOD =0x21; //定时器1工作在方式2,定时器0工作在方式1TR1 =1; //启动定时器T1ES=1; //允许串行口中断PS=1; //设计串行口中断优先级//初始化定时器1TH1 =0xfd; //实现波特率9600(系统时钟11.0592MHZ)ET1 =0; //定时器1中断禁止}//---------------------------------------------------------------// 函数名称: timer0_init()初始化定时器0// 函数功能:设置timer0工作模式//---------------------------------------------------------------void timer0_init(){time_over_flag=0;count_10ms=0;ADD_num=0;TL0=0x0F0; //T0用于产生10ms的中断TH0=0x0D8; //50次T0中断产生1次超时溢出ET0=1; //允许定时器0中断}//---------------------------------------------------------------// 函数名称: system_init()系统初始化// 函数功能:调用串口、定时器初始化函数,完成系统初始化//---------------------------------------------------------------void system_init(void){//系统总设置UART_init();timer0_init();EA =1; //单片机中断允许}//---------------------------------------------------------------// 函数名称: com_interrup()串口接收中断处理函数// 函数功能:接收包括起始位"S"在内的十位数据到数据缓冲区//---------------------------------------------------------------com_interrupt(void) interrupt 4 using 3{unsigned char RECEIVR_buffer;if(RI) //处理接收中断{RI=0; //清除中断标志位RECEIVR_buffer=SBUF; //接收串口数据if(point==0) //如果还没有接收到起始位{if(RECEIVR_buffer==0xFE) //判断是否起始标志位{buffer[point++]=RECEIVR_buffer;//把接收到的数据放入接收缓存区}elsepoint=0; //不是,继续等待起始位}else if(point>0&&point<10) //判断是否接收够十位数据buffer[point++]=RECEIVR_buffer; //不够,把接收到的数据放入接收缓存区else if(point==10){if(RECEIVR_buffer==0xEF) //判断结束标志位是否正确{buffer[point]=RECEIVR_buffer; //把接收到的数据放入接收缓存区 Slave_AD[ADD_num++]=buffer[2]; //把接收到的地址放到地址存储器//表示该地址有有效设备}elsepoint=0; //不是,继续等待起始位}else point=0; //缓冲区已满,清除缓存区内数据重新接收}if(TI) //串口发送中断{TI=0; //清除发送中断}}//---------------------------------------------------------------// 函数名称: timer0_interrup()// 函数功能:定时器T0中断服务程序// 函数说明:T0枚10ms中断一次,连续中断50次置time_over_flag=1;timer0_interrupt(void) interrupt 1 using 2{count_10ms++;if(count_10ms==50){ET0=0; //关闭定时器T0中断TR0=0; //停止定时器T0time_over_flag=1;//设置接收超时标志count_10ms=0x00; //10ms计数器复位}else{TL0=0x0F0; //重装定时器初始值TH0=0x0D8;}}//---------------------------------------------------------------// 函数名称: COM_send()串口发送函数// 函数功能:把数据缓冲区的十位数据发送出去//---------------------------------------------------------------void COM_send(void){RE_DE=1; //设置MAX483进入发送状态for(point=0;point<=10,TI=1;point++) //连续发送十位数据 //把缓存区的数据都发送到串口{SBUF=buffer[point];TI=0;}RE_DE=0; //设置MAX483进入接收状态}//---------------------------------------------------------------// 函数名称: write_buffer()// 函数功能:写发送缓冲区十位数据void write_buffer(unsigned char slaver_add){unsigned char i;TB8=1; //打开多机通信方式buffer[0]=0xFE;buffer[1]=slaver_add;for(i=2;i<9;i++) //连续发送十位数据//把缓存区的数据都发送到串口{buffer[i]=send_data[i-2];}buffer[9]=0xEF;}//---------------------------------------------------------------// 函数名称:主函数// 函数功能:调度个子函数,完成通信过程//---------------------------------------------------------------void main(void){unsigned char i=0;system_init(); //系统初始化do{ //查旬0到10好地址有没有对应设备write_buffer(i++); //写查询第i号设备的发送信息COM_send(); //调用发送函数,完成发送timer0_init(); //完成一次查询,重新初始定时器0,准备下一次查询}while(time_over_flag&&i<10);}。
基于RS485总线的分布式高精度数据采集系统
㊀2021年㊀第2期仪表技术与传感器Instrument㊀Technique㊀and㊀Sensor2021㊀No.2㊀基金项目:国家自然科学基金杰出青年基金资助项目(61525107)收稿日期:2020-03-24基于RS485总线的分布式高精度数据采集系统陈㊀航1,严㊀帅2,刘㊀胜1,张会新1(1.中北大学,仪器科学与动态测试教育部重点实验室,山西太原㊀030051;2.北京宇航系统工程研究所,北京㊀100076)㊀㊀摘要:针对分布式测试系统中物理量种类多㊁相互之间易干扰,数据需要远距离传输的要求,设计了一种基于RS485总线的分布式数据采集系统㊂该系统主要包含上位机㊁主控站点和被控站点,通过定制USB和RS485总线通信协议,实现了总线上40个站点的轮询测量或单站点单通道测量㊂实验结果表明,该系统实现了数据的可靠传输,有效解决了大面积环境下进行分布式高精度数据采集的问题,具有较好的实用价值㊂关键词:分布式;RS485总线;高精度;智能化;ADS1258;数据采集中图分类号:TP302㊀㊀㊀文献标识码:A㊀㊀㊀文章编号:1002-1841(2021)02-0071-04DistributedHigh⁃precisionDataAcquisitionSystemBasedonRS485BusCHENHang1,YANShuai2,LIUSheng1,ZHANGHui⁃xin1(1.NorthUniversityofChinaTheMinistryofEducationKeyLaboratoryofInstrumentScienceandDynamicMeasurement,Taiyuan030051,China;2.BeijingAerospaceSystemsEngineeringInstitute,Beijing100076,China)Abstract:AdistributeddataacquisitionsystembasedonRS485buswasdesignedforthesituationthattherearemanykindsofphysicalquantitieswhichareeasytointerferewitheachother,andthedataneedstobetransmittedoverlongdistances.Thissystemmainlyincludedthehostcomputer,themasterstationandthecontrolledstation.BycustomizingtheUSBandRS485buscommunicationprotocols,itimplementedpollingmeasurementof40stationsonthebusorsingle⁃channelmeasurement.Theexper⁃imentalresultsshowthatthesystemachievesreliabledatatransmissionandeffectivelysolvestheproblemofdistributedandhigh⁃precisiondatacollectioninlarge⁃scaleenvironment,whichhashighpracticalvalue.Keywords:distributed;RS485bus;highaccuracy;intelligent;ADS1258;dataacquisition0㊀引言在一些分布式测试系统中,不可避免地要对被测环境不同位置地点多种物理量(湿度㊁温度㊁压力等)进行精确采集和测量[1-2]㊂传统的测试系统大多采用点对点连线的电缆对传感器的模拟量信号进行传输,这种方式一方面容易受到周围电磁环境的影响,降低采集精度;另一方面增加了测试系统中电缆的消耗量和成本,还在一定程度上影响采集系统的健壮性㊂为了提高测试系统的智能化程度和精确度,设计了一个基于RS485总线的分布式高精度数据采集系统,将各地点的传感器信号通过采样转换为数字信号,通过RS485总线传至系统主控站点[3-5]㊂和现有的测试系统相比,增加了数据采集通道个数和采集精度,最多可实现640个测点数据的轮询采集,提高了数据传输的智能化水平㊂1㊀系统总体设计分布式数据采集系统主要包含上位机㊁RS485总线主控站点和40个RS485总线被控站点等部分,原理框图如图1所示㊂主控站点与上位机通过USB接口交换数据,在上位机下传的数据被解析后,FPGA将其通过主站RS485模块发出并与配对成功的被控站点通信㊂根据不同的命令,可以实现不同速率下的固定通道和自动扫描通道数据采集功能㊂主控站点在接收到数据后进行打包,通过USB接口传至上位机,实现了一主控站点多被控站点的高速RS485通信㊂每个被控站点包含RS485总线模块㊁FPGA控制模块㊁A/D采集模块等,属于独立的数据采集子系统,原理设计图如图2所示㊂与主控站点下传的站点号匹配正确后,FPGA首先对ADS1258相关寄存器进行配置,开始A/D采集,完成后将数据传至主控单元㊂㊀㊀㊀㊀㊀72㊀InstrumentTechniqueandSensorFeb.2021㊀图1㊀系统整体原理框图图2㊀被控站点设计示意图2㊀系统硬件设计2.1㊀FPGA控制模块系统选用Spartan-6系列FPGA作为主控芯片㊂在主控站点的硬件电路设计中,选择XC6SLX150芯片对RS485总线通信芯片ISO1176T和USB接口芯片FT2232进行控制,其电路连接示意如图3所示㊂被控站点的A/D采集芯片ADS1258及RS485通信芯片通过SPI接口与FPGA连接,电路设计如图4所示㊂图3㊀主控站点FPGA电路设计图图4㊀被控站点FPGA电路设计图2.2㊀RS485总线模块分布式数据采集系统具有分布范围大㊁电磁环境复杂㊁传输节点要求多等特点㊂为满足设计要求,选用RS485总线通过差分线的压差传输数据,可以极大地减少传输过程中的共模干扰,提高数据传输系统的健壮性[6]㊂总线接口芯片ISO1176T内部集成了变压器驱动器,在不要外部光耦的情况下实现隔离式供电,该芯片最大可支持256个从节点,最大数据传输速率达到40Mbps,详细的电路连接图如图5所示㊂图5㊀RS485总线模块电路连接图2.3㊀A/D转换模块被控站点采用ADS1258对来自传感器的模拟量信号进行模数转换㊂ADS1258具有24位采样分辨率,固定通道的采样速率能达到125KSPS,16个通道同时采集最高速率可达23.7KSPS,同时还集成了片上温度传感器,可以通过读取寄存器来读取芯片工作温度,它的工作温度为-40 105ħ,此外还有低温漂㊁低噪声等特点,非常符合系统的设计要求[7-8]㊂FPGA和ADS1258通过SPI接口相连,CLKIO为外部时钟输入引脚,来自FPGA的16MHz时钟通过50Ω电阻后与其相连,同时要将时钟选择引脚CLKSEL置高,芯片模拟供电电压为AVDD=5V,AVSS=AGND,参考电压为VREF=VREFP-VREFN=5V,数字供电电压为DVDD=3.3V,DVSS=DGND㊂ADS1258的硬件电路如图6所示㊂㊀㊀㊀㊀㊀第2期陈航等:基于RS485总线的分布式高精度数据采集系统73㊀㊀图6㊀ADS1258接口电路设计图2.4㊀USB接口设计FT2232H为支持高速USB2.0通信的接口芯片,支持最高480Mbps的通信速度㊂它有A㊁B2个数据传输通道,根据设计需要可以配置成多种速度模式,具体的接口如图3所示㊂芯片的工作模式为FT245异步FIFO接口模式,93LC56B为EEPROM,用于保存FT2232H配置完后的相关信息[9]㊂3㊀系统软件设计3.1㊀主控站点软件设计主控站点通过USB接口实现和上位机的数据交换,根据不同指令实现数据打包传输和被控站点寄存器配置功能[10]㊂FT2232H的数据收发时序通过FPGA控制,具体的读写时序如图7所示㊂RXF#信号为芯片输出信号,当缓存Buffer内部有读数空间时输出为低,这时可以拉低RD#信号进行一次8位FIFO数据的读取,然后RXF#信号被拉高,这期间不能进行读数操作,等RXF#再次拉低时进行下一次读数操作,写数据过程和读数据过程类似㊂图7㊀FT2232H读写时序图上位机和主控站点的通信协议如表1所示㊂在系统上电完成复位后,若接收到命令的第一个字节为25h,再继续判断下一个字节,若命令是55h(查询指令),则根据表1所示的通信协议进行RS485总线通信,主控站点从1到40依次查询被控站点,并将收到被控站点的数据上传至上位机进行显示㊁存储;若命令是ACh(寄存器配置指令),则对上位机的命令拆分处理,把后4个字节的数据根据总线通信协议进行打包,然后转发至对应的被控站点㊂表1㊀上位机通信协议命令有效标志8bit命令字8bit数据位32bit寄存器配置命令25hACh被控站点地址8bit站点配置数据24bit查询命令25h55h无效位停止命令25h90h无效位㊀㊀总线数据传输采取CRC-4进行差错控制,通信协议如表2所示㊂主控站点将校验无误的数据传送给上位机显示存储,校验不通过则再一次查询该站点,如果连续3次数据校验不通过,则将站点序号告诉上位机,然后进行下一个站点查询,避免了因某个站点工作异常而使整个系统无法工作,提高了数据采集系统的可靠性性和抗干扰能力[11]㊂表2㊀RS485总线通信协议起始位1bit有效数据位32bitCRC码4bit停止位3bit0被控站点地址8bit站点数据㊀24bitCRC-41113.2㊀被控站点软件设计被控站点作为独立的数据采集系统,主要完成16路模拟量信号采集和RS485总线通信工作㊂根据系统设计要求,ADS1258默认工作模式为以23.7KSPS㊀㊀㊀㊀㊀74㊀InstrumentTechniqueandSensorFeb.2021㊀采样速率自动扫描16个模拟量输入通道,寄存器通过SPI接口进行配置,DIN管脚为数据输入引脚,CONFIG1寄存器主要涉及采样速率的设置,命令字和寄存器地址为61h,相应的配置数据为03h;MUXSG0和MUXSG1寄存器主要进行采样通道选择,命令字和寄存器地址分别为64h和65h,相应的配置数据都为FFh㊂根据SCLK管脚的时序写入配置寄存器的数据,如图8所示,在片选信号CS拉低时,有效命令和数据在SCLK上升沿从最高位开始顺序进入DIN管脚㊂图8㊀ADS1258寄存器配置时序图系统运行后,被控单元首先按照默认值对ADS1258的寄存器进行配置,配置完成后对相关寄存器的值进行读取,验证是否配置正确,随后开始监测RS485总线上的数据,当与总线上的站点序号验证成功后,进行数据采集和发送数据,工作软件设计流程如图9所示㊂上位机可以对各被控站点的寄存器进行重新配置,以满足特殊测试要求㊂图9㊀被控站点软件设计流程图ADS1258开始进行数据采集时,首先将START管脚进行拉高,程序开始检测DRDY管脚的电平状态,当为低电平时,表示一个通道模拟量完成转换,读取有效数据共计32位,高8位包含状态信息和通道信息,低24位代表转换的有效数据㊂ADS1258可以在小于700μs的时间内处理完16路通道的数据采集㊂4㊀测试结果分布式数据采集系统的RS485总线上间隔1m设置一个被控站点,总线长度共计40m㊂系统测试时,在第一个被控站点15通道输入2V电压,其余的被控站点和通道不输入电压,使用上位机发送查询命令后回传的数据见图10㊂图10㊀测试数据根据上位机的数据显示,主控站点按顺序查询了被控站点的16路采集通道,EB90EB90是子站点数据发送结束标志,很好地完成了主控站点控制下的数据采集功能㊂数据 ADD00001962F77E9 中 ADD0000196 表示第一个被控站点15通道的数据采集结果, 2F77E9 转变成电压为1.9778V,高精度万用表显示实际电压为1.9789V,所以系统的采集精度为0.6%,表明数据采集系统的精度很高㊂5㊀结束语分布式数据采集系统的设计采用24位的模数转换芯片ADS1258,提高了模拟量数据采集精度,选用RS485总线进行数据的传输,增加了系统挂载的站点数量,总线驱动器芯片ISO1176T的使用实现了电源隔离,减少了周围环境的干扰㊂测试表明,系统数据传输可靠,精度很高,同时还可以根据(下转第79页)㊀㊀㊀㊀㊀第2期李鹏飞等:基于NVIDIATX2模块的双目视觉信号采集系统设计79㊀㊀效果图,在界面上定义一个全黑灰度图,将接收到的坐标点以白色画出,实时采集发送帧率为140fps,采集处理图像无丢帧失帧现象,发送数据包无丢包现象,稳定性好,满足了设计要求㊂6 结论针对胶体三维信息检测面临的缺失高帧率㊁采集实时性的问题,设计了一套双目视觉信号采集系统,该采集系统具有4路线结构光采集系统,实现了双目实时信号采集㊂其中以嵌入式NVIDIATX2为核心详细介绍了图像采集㊁处理以及中心线坐标发送的全过程,结合了小型化硬件以及简便的上位机界面,集成了一套小体积㊁高效率㊁方便操作和移动的采集系统㊂实验测试表明系统稳定性好,精度高,满足了设计要求,为汽车关键部件胶体三维测量做好了充分准备,具有较好的实用价值㊂参考文献:[1]㊀任勇峰,王国忠.基于CMOS传感器的高性能图像采集系统设计[J].仪表技术与传感器,2019(1):64-67.[2]㊀岳昊,武栓虎.基于机器视觉的医用瓶盖质检系统设计[J].仪表技术与传感器,2019(10):83-87.[3]㊀杨长辉,黄琳.基于机器视觉的滚动接触疲劳失效在线检测[J].仪表技术与传感器,2019(4):65-69.[4]㊀相江.线结构光传感器系统建模与误差分析[D].合肥:合肥工业大学,2019.[5]㊀章金敏.基于激光三角法的物体三维轮廓测量系统[D].武汉:武汉理工大学,2015.[6]㊀戴力.汽车涂胶工艺应用研究[J].汽车零部件,2017,23(8):71-74.[7]㊀朱立忠,陈美洋.一种基于机器学习的汽车涂胶缺陷检测研究[J].沈阳理工大学学报,2018,23(4):18-22.车工艺师,2019,25(7):61-64.[9]㊀吴勇,雷旭智.科惠力测量技术在缸体表面刀痕问题中的应用[J].装备制造技术,2017,16(8):121-123.[10]㊀唐广辉,穆建华,夏志豪.基于科惠力测量技术的发动机故障诊断应用[J].汽车科技,2015,23(1):52-56.[11]㊀OLENSKYJAG,DONISIR,BORNHORSTGM.Nonde⁃structivecharacterizationofstructuralchangesduringinvitrogastricdigestionofapplesusing3Dtime⁃seriesmicro⁃computedtomography[J].JournalofFoodEngineering,2020,267:1-11.[12]㊀金贝.基于HALCON的机器视觉教学实验系统设计[D].北京:北京交通大学,2012.[13]㊀方玉红.基于机器视觉的轨道缺陷图像检测系统设计[D].南昌:南昌大学,2013.[14]㊀MICHAELLB,NELEV,PANFILOVAV,etal.R⁃From⁃TasacommonmechanismofarrhythmiainitiationinlongQTsyndromes[J].Circulation.ArrhythmiaandElectrophysiology,2019,12(12):1-15.[15]㊀李杰强.基于线阵CCD的微位移传感器设计与研究[D].广州:华南理工大学,2012.[16]㊀刘文倩,沈三民,刘利生,等.基于以太网与FPGA的多通道信号源的系统设计[J].仪表技术与传感器,2019(1):30-33.[17]㊀何能正,董建云,何岸.以太网数据包分段传输技术[J].光通信技术,2013,37(9):24-27.作者简介:李鹏飞(1994 ),硕士研究生,主要研究方向为嵌入式机器视觉㊂E⁃mail:lipengfeihuft@163.com通信作者:卢荣胜(1963 ),教授,博士生导师,主要从事机器视觉和精密测量等方面的研究㊂E⁃mail:rslu@hfut.edu.cn(上接第74页)要求变换采集通道数量和采集速率,该分布式数据采集系统具有较好的实用价值㊂参考文献:[1]㊀韩慧.基于RS485总线的温室环境监测系统[J].仪表技术与传感器,2012(3):64-65.[2]㊀李木国,王延国,孙慧涛.基于EtherCAT总线的串联型分布式据采集系统设计[J].计算机测量与控制,2016,24(6):195-198.[3]㊀童一飞,王红亮,低功耗IEPE传感器数据采集系统的设计与实现[J].电测与仪表,2019,56(5):101-104.[4]㊀唐夕晴,李建闽,佘晓烁.RS485总线接口性能测试仪设计与开发[J].电测与仪表,2018,56(7):142-147.[5]㊀张志,李琮琮,王平欣,等.智能电能表RS485接口设计方案综述[J].电测与仪表,2015,53(5):124-128.[6]㊀白冰.基于485总线的分布式输入输出系统[D].天津:天津大学,2017.[7]㊀吴平,骆朝亮.基于USB的ADS1258传感器信号采集系统[J].软件导刊,2010(6):65-67.[8]㊀金永杰,龙平,熊剑平.24位高精度模数转换器ADS1258的原理及应用[J].电子设计工程,2008(6):61-64.[9]㊀王辉,陈爱生.基于FT2232H的USB2.0数据采集系统设计[J].电子器件,2015(1):144-147.[10]㊀李超.基于FPGA+USB2.0高速数据采集系统的研究与设计[D].武汉:武汉理工大学,2013.[11]㊀TONGXR,SHENGZB.DesignofUARTwithCRCcheckbasedonFPGA[J].AdvancedMaterialsResearch,2012,490-495:1241-1245.作者简介:陈航(1993 ),硕士研究生,研究方向为嵌入式智能仪器㊂E⁃mail:614441509@qq.com通信作者:张会新(1980 ),博士,副教授,研究方向为动态测试技术与仪器㊂E⁃mail:zhanghx@nuc.edu.cn。
RS485通信和Modbus协议实例分析
18.1 RS485通信实际上在RS485之前RS232就已经诞生,但是RS232有几处不足的地方:1、接口的信号电平值较高,达到十几V,容易损坏接口电路的芯片,而且和TTL电平不兼容,因此和单片机电路接起来的话必须加转换电路。
2、传输速率有局限,不可以过高,一般到几十Kb/s就到极限了。
3、接口使用信号线和GND与其他设备形成共地模式的通信,这种共地模式传输容易产生干扰,并且抗干扰性能也比较弱。
4、传输距离有限,最多只能通信几十米。
5、通信的时候只能两点之间进行通信,不能够实现多机联网通信。
针对RS232接口的不足,就不断出现了一些新的接口标准,RS485就是其中之一,他具备以下的特点:1、我们在讲A/D的时候,讲过差分信号输入的概念,同时也介绍了差分输入的好处,最大的优势是可以抑制共模干扰。
尤其工业现场的环境比较复杂,干扰比较多,所以通信如果采用的是差分方式,就可以有效的抑制共模干扰。
而RS485就是一种差分通信方式,它的通信线路是两根,通常用A和B或者D+和D-来表示。
逻辑“1”以两线之间的电压差为+(0.2~6)V表示,逻辑“0”以两线间的电压差为-(0.2~6)V来表示,是一种典型的差分通信。
2、RS485通信速度快,最大传输速度可以达到10Mb/s以上。
3、RS485内部的物理结构,采用的是平衡驱动器和差分接收器的组合,抗干扰能力也大大增加。
4、传输距离最远可以达到1200米左右,但是他的传输速率和传输距离是成反比的,只有在100Kb/s 以下的传输速度,才能达到最大的通信距离,如果需要传输更远距离可以使用中继。
5、可以在总线上进行联网实现多机通信,总线上允许挂多个收发器,从现有的RS485芯片来看,有可以挂32、64、128、256等不同个设备的驱动器。
RS485的接口非常简单,和RS232所使用的MAX232是类似的,只需要一个RS485转换器,就可以直接和我们单片机的UART串行接口连接起来,并且完全使用的是和UART一致的异步串行通信协议。
485通讯电路设计分析
RS-485标准是由两个行业协会于1983年共同制订合开发的,即EIA-电子工业协会和TIA-通讯工业协会。
EIA开始时在它所有的标准前加上“RS”前缀〔推荐标准Recommended standard的缩写〕。
这个名称一直延用至今,现在EIA-TIA已正式用“EIA/TIA”取代“RS”以明确其来源。
修订后命名为TIA/EIA-485-A。
不过我们还是习惯地称之为RS-485。
RS-485由RS-422发展而来。
两者是工业应用中最成功的标准。
而RS-422是一个差分标准,是为了弥补RS-232的不足提出来的,改良了RS-232通讯距离短和速率低的缺点,RS-422定义了一种平衡通信接口,将传输速率提高到了10Mbps,在速率低于1000Kbps时传输距离延长到4000英尺,并且允许在一条平衡线上连接最多10个接收器,可以说RS-422是一种单机发送、多机接收的单向传输标准。
RS-485是在RS-422的基础上,为了扩展应用范围和通讯能力,增加了多点、双向通信能力,也就是说,允许多个发送器连接到同一条总线上,同时,增加了发送器的驱动能力和通讯冲突的保护特性,通过差分传输扩展总线的共模范围。
RS-485满足了所有的RS-422标准,但反之则不成立。
RS-485实质上是一个电气接口标准,它只规定了平衡驱动器合接收器的电特性,而没有规定插件、传输电缆与及通信协议。
只是对应于七层模型中的物理层。
3.RS-485的接口标准特点:●平衡传输、差开工作模式●多点通信●驱动器带载最小输入电压:±1.5V ●驱动器带载最大输入电压:±5V●最大输出短路电流:250mA ●驱动器输出阻抗:54Ω●接收器输入门限:±200mV●接收器最小输入阻抗:12KΩ●-7V至+12V总线共模范围●最大输入电流1.0mA/-0.8 mA (12Vin/-7Vin)●接收器输出逻辑高:>200mV ●接收器输出逻辑低:<200mV●最大总线负载:32个单位负载●允许收发器数目:32Tx 、32Rx●最大传输速率:10Mbps ●最大电缆长度:4000英尺〔约1.2千米〕RS-485标准定义了一个基于单对平衡线的多点、双向〔半双工〕的通讯链路,提供了高噪声抑制、高的传输速率、长传输距离、宽共模范围和低成本的通信平台。
基于RS485的多主机对等通信系统的设计与实现
软件优化:提高 通信效率,降低 资源消耗
主从机连接与通信流程实现
硬件连接:RS485 总线连接多个主机, 实现数据传输
通信协议:制定并 实现通信协议,保 证数据传输的准确 性和可靠性
数据传输:实现数 据的发送和接收, 保证数据的完整性 和实时性
错误处理:实现错 误检测和恢复机制 ,保证通信的可靠 性和稳定性
A
B
C、以太网等
降低功耗:优化硬件设 计,降低系统功耗,提
高能源利用率
增强安全性:采用加密 技术,提高通信数据的
安全性
提高兼容性:支持多种 硬件平台和操作系统,
提高系统的通用性
总结与展望
系统特点与优势总结
基于RS485的多主机对等通信系统,实 现了多主机之间的实时通信和数据共享。
03
测试方案:功能测试、性能测试、兼容性 测试等
02
软件环境:操作系统、测试软件、驱动程 序等
04
测试结果分析:测试数据、测试报告、问 题定位等
测试过程及结果分析
测试环境搭建:搭建 测试环境,包括硬件
和软件
测试方法:选择合适 的测试方法,如黑盒 测试、白盒测试等
测试数据准备:准备 测试数据,包括正常
度
增强系统稳定 性:优化系统 设计,提高系 统抗干扰能力
降低功耗:采 用低功耗器件, 降低系统能耗
扩展应用领域: 将RS485技术 应用于更多领 域,如工业自 动化、智能家
居等
THANK YOU
0 终端电阻:在总线两端添加终端 4 电阻,防止信号反射和干扰
0 硬件测试:通过测试验证硬件设 6 计的正确性和可靠性
通信软件设计
01
02
03
04
Devicenet现场总线的一些普及知识
Devicenet现场总线的普及知识终端电阻在通信中的作用终端电阻是为了消除在通信电缆中的信号反射在通信过程中,有两种信号因导致信号反射:阻抗不连续和阻抗不匹配。
阻抗不连续,信号在传输线末端突然遇到电缆阻抗很小甚至没有,信号在这个地方就会引起反射。
这种信号反射的原理,与光从一种媒质进入另一种媒质要引起反射是相似的。
消除这种反射的方法,就必须在电缆的末端跨接一个与电缆的特性阻抗同样大小的终端电阻,使电缆的阻抗连续。
由于信号在电缆上的传输是双向的,因此,在通讯电缆的另一端可跨接一个同样大小的终端电阻。
引起信号反射的另个原因是数据收发器与传输电缆之间的阻抗不匹配。
这种原因引起的反射,主要表现在通讯线路处在空闲方式时,整个网络数据混乱。
要减弱反射信号对通讯线路的影响,通常采用噪声抑制和加偏置电阻的方法。
在实际应用中,对于比较小的反射信号,为简单方便,经常采用加偏置电阻的方法DeviceNet 网络的使用体会。
(1)DeviceNet现场总线可以节省大量费用。
从安装阶段来看,只通过一根通讯缆,就实现了对整个网上各站点供电及通讯,相对于点对点的控制方式,节省大量的电缆,桥架等。
不但缩短了安装时间,而且降低了安装费用。
从控制上来看:利用网络通讯及“软”I/O方式,也节约了I/O模块和大笔资金。
如对变频器工作站,启动/停止,加速/减速等命令;电压、电流、温度等参数,都可从DeviceNet网络通讯实现,节约了I/O模块,尤其是模拟I/O模块,费用相当昂贵。
(2)设备故障率大大降低,且诊断方便,排除迅速。
DeviceNet由于仅用一条通讯电缆控制整个设备网络,使设备故障率大大降低;各站点通讯端子支持带电热插拔,若某一站点出现问题及故障排除,不影响网上其他站点正常工作。
采用数据通讯方式来控制各站,不但极大减少了传统点对点方式的电缆数量,也使故障环节大大减少,系统稳定性进一步提高。
通过设备网使MCC的集中控制的形式十分有效,极大方便了设备故障的诊断。
RS485通讯原理及排错处理
提高RS485通信可靠性的设计方法发布时间:2009-5-11 14:00 发布者:李宽阅读次数:556RS-485接口芯片能担当起一种电平转化的角色,把TTL信号、COMS信号等转化为能在485总线上传输的差分信号,把接收到的485差分信号转化为MCU能够识别的TTL或COMS电平,在工业控制、仪器、仪表、多媒体网络、机电一体化产品等诸多领域得到了广泛应用。
但在RS485通信中,常常会存在通信距离不远、通信质量差等问题。
为提高RS485的通信质量,除了采用终端匹配的总线型结构外,在系统设计中通常要考虑以下几个问题。
1.故障保护根据RS-485的标准规定,接收器的接收灵敏度为±200mV,这意味着当接收端的差分电压大于等于+200mV时,接收器输出为高电平,小于等于 -200mV时输出为低电平,介于±200mV 之间时,接收器输出为不确定状态。
在总线空闲(即传输线上所有节点都为接收状态)以及传输线开路或短路故障时,若不采取特殊措施,接收器可能输出高电平或者低电平。
一旦某个节点的接收器产生低电平,就会使串行接收器(UART)找不到起始位,从而引起通信异常。
为解决该问题,很多RS485接口芯片引入了故障保护。
例如,上海英联电子的UM3085/UM3088输入灵敏度为-50mV/-200mV,即差分接收器输入电压UA-B≥-50mV时,接收器输出逻辑高电平,如果UA-B≤-200mV,则输出逻辑低电平。
当接收器输入端总线短路或总线上所有发送器被禁止时,接收器差分输入端为0V,从而确保总线空闲、短路时接收器输出高电平。
2.防雷电冲击RS- 485接口芯片在使用、焊接或设备的运输途中都有可能受到静电冲击而损坏。
在传输线架设于户外的使用场合,接口芯片乃至整个系统还有可能遭受雷电袭击。
选用抗静电或抗雷击的芯片可有效避免此类损失。
UM3085/UM3088芯片内部集成了ESD保护电路,人体模型ESD 保护和机器模型ESD保护分别达到 15kV和2kV。
RS485通讯原理
RS-485串行数据通信协议及其应用串行数据通信的协议从RS-232到千兆位以太网,虽然每种协议都有特定的应用领域,但任何情况下我们都必须考虑成本和物理层(PHY)性能。
本文主要介绍RS-485协议及该协议所适合的应用。
同时给出了根据电缆长度、系统设计以及元件选择来优化数据速率的方法。
传输协议什么是RS-485?Profibus又是什么?与其它串行协议相比,它们的性能如何?适用于哪些应用?为了回答这些问题,我们对RS-485物理层(PHY)、RS-232和RS-422的特性、功能进行了总体比较[1](本文中的RS表示ANSIEIA/TIA标准)。
RS-232是一个最初用于调制解调器、打印机及其它PC外设的通讯标准,提供单端20kbps的波特率,后来速率提高至1Mbps。
RS-232的其它技术指标包括:标称±5V发送电平、±3V接收电平(间隔/符号)、2V共模抑制、2200pF最大电缆负载电容、300最大驱动器输出电阻、3k最小接收器(负载)阻抗、100英尺(典型值)最大电缆长度。
RS-232只用于点对点通信系统,不能用于多点通信系统,所有RS-232系统都必须遵从这些限制。
RS-422是单向、全双工通信协议,适合嘈杂的工业环境。
RS-422规范允许单个驱动器与多个接收器通信,数据信号采用差分传输方式,速率最高可达50Mbps。
接收器共模范围为±7V,驱动器输出电阻最大值为100,接收器输入阻抗可低至4k。
RS-485标准RS-485是双向、半双工通信协议,允许多个驱动器和接收器挂接在总线上,其中每个驱动器都能够脱离总线。
该规范满足所有RS-422的要求,而且比RS-422稳定性更强。
具有更高的接收器输入阻抗和更宽的共模范围(-7V至+12V)。
接收器输入灵敏度为±200mV,这就意味着若要识别符号或间隔状态,接收端电压必须高于+200mV或低于-200mV。
RS-485的多机通信方案
76 Microcontrollers &Embedded Systems 2012年第10期www.mesnet.com.cn RS 485的多机通信方案探究魏金文,马维华,吴侨(南京航空航天大学计算机科学与技术学院,南京210016)引 言在嵌入式系统中,多个孤立节点之间的通信越来越重要,尤其是物联网时代的到来,多节点间通信已经成为必不可少的功能。
由此出现了许多通信手段,如RS 232、RS 485、CAN总线、ZigBee等,综合考虑性能和成本,RS485通信无疑是性价比最高的通信方式。
因此探究高效、实用的多机通信方案具有重大的意义。
1 系统框图RS 485多机通信结构图如图1所示。
若干个RS485节点通过总线连接,由网关节点轮询访问索要数据,每个网关节点可以动态地配置IP地址,以便上位机可以通过以太网控制网关节点,从而获得每个RS 485终端节点的数据。
图1中C节点为控制节点,具有RS 485通信功能,T节点为网关节点,除了RS 485功能外,还具有以太网功能,其作用就是将C节点的数据通过以太网功能传送给上位机。
图1 RS 485多机通信结构图2 硬件设计本文采用新唐科技公司的Cortex M054探究RS485多机通信协议。
Cortex M054有两个UART,均可以配置成RS 485模式,此时Cortex M054通过RTSX引脚自动控制RS 485通信方向。
RS 485通过差分传输,A和B两根信号线铰链在一起来抵消各自的干扰。
当A、B信号的电压差大于200mV时,视为逻辑1;当B、A信号的电压差大于200mV时,视为逻辑0。
RS 485硬件原理图如图2所示。
整套RS 485电路独立供电,通过光电耦合器TLP781B+,与系统其他部件分开,以此来隔离干扰。
和CAN总线相同,在机群的两端(第一个节点和最后一个节点),必须加上匹配电阻,吸收反射信号,大小为75Ω左右。
中间节点则不需要如此,因此留出了R1的位置,当节点位于机群两端的时候,则焊接上R1,这种方式大大地增强了电路的灵活性。
探讨电能表RS—485通讯接口的问题
探讨电能表RS—485通讯接口的问题1 多功能电表中RS-485通讯接口的应用RS-485是电能表中的一个接口规范,用于对平衡线上的多个点以及半双工通信链路进行定义和确定。
由RS-485接口所组成的通信平台,具有传输速率高、通信性能好、可靠性强以及有效性高的特点,能够实现大范围、长距离的通信传输。
RS-485接口通过将差分接收器和平衡驱动器进行组合,具体步骤体现在发送端RS-485接口将TTL电平信号通过平衡驱动器转换成差分信号进行传输。
而在接收端,则需要差分接收机将差分信号再转换成TTL电平信号。
此方法可以大大提高通信系统的抗噪声性能,此外,接收器具有高的灵敏度能检测低达200mV的电压,因此信号数据可以传输到几千米之外的地方,具有较远的传输距离。
另外,RS-485接口可以通过一个驱动器来驱动多个接收器,可以实现多点互联的环形通信线路以及实现多机通信。
同时在总线型通信网络中,分布式数据采集以及控制系统需要将多台单片机联合起来,并通过RS-485接口实现通信规约与系统的连接,以实现控制系统对系统中电压、电流以及功率有效值的监控。
总而言之,RS-485接口在通信接口中应用非常的广泛。
2 智能电能表RS-485通讯口常见故障及解决方案2.1 硬件类故障2.1.1 万用表分别接在电能表的输入端和输出端的接口端子上,同时在电能表上施加电压,测量万用表上显示的电能表端口之间的电压。
通常情况下,RS-485接口两端之间正常工作电压范围为-2~-6V或+2~+6V,若万用表检测出的电能表电压超出了正常电压的范围,通讯质量便会受到影响,严重时会对RS-485接口造成损害。
另外,由于不同的生产厂家生产的电能表规格型号不同,导致不同电能表的正常工作电压不尽相同。
因此,工作人员在测得电能表两端电压之后,需要查阅相应的电能表产品的使用说明书对电能表的故障进行确定,如果接收端和发送端之间的电压超出了正常的工作范围内,则可以初步断定通信接口硬件断线。
单片机RS485多机通讯的实现
单片机RS-485多机通讯的实现之邯郸勺丸创作摘要本文介绍一种能利用RS-485电气特性和简单的结构方式,采取自定义串行通信协议,实现单片机RS-485多机通讯的方法和技巧。
关键词单片机,RS-485总线,总线冲突,串行通信1 简介RS-485串行总线接口尺度以差分平衡方式传输信号,具有很强的抗共模干扰的能力,允许一对双绞线上一个发送器驱动多个负载设备。
工业现场控制系统中一般都采取该总线尺度进行数据传输,而且一般采取RS-485串行总线接口尺度的系统都使用8044芯片作为通信控制器或各分机的CPU。
8044芯片内部集成了SDLC,HDLC等通信协议,而且集成了相应的硬件电路,通过硬件电路和尺度协议的配合,使系统的通讯准确、可靠、快速。
8044在市场上日渐稀少,虽然有8344可替代,但几百元的价位与普通单片机几元至几十元的价位相差甚远,用户在开发一般的单片机应用系统时,都希望能用简单的电路和简单的通信协议完成数据交换。
譬如:利用单片机自己所提供的简单串行接口,加上总线驱动器如SN75176等组合成简单的RS-485通讯网络。
本文所述的方法已成功地应用于工程项目,一台主机与60台从机通讯,通讯波特率达64KBPS。
2 总线驱动器芯片SN75176经常使用的RS-485总线驱动芯片有SN75174,SN75175,SN75176。
SN75176芯片有一个发送器和一个接收器,非常适合作为RS-485总线驱动芯片。
SN75176及其逻辑如图1所示。
图1 SN75176芯片及其逻辑关系3 RS-485方式构成的多机通信原理在由单片机构成的多机串行通信系统中,一般采取主从式结构:从机不主动发送命令或数据,一切都由主机控制。
而且在一个多机通信系统中,只有一台单机作为主机,各台从机之间不克不及相互通讯,即使有信息交换也必须通过主机转发。
采取RS-485构成的多机通讯原理框图,如图2所示。
图2 采取RS-485构成的多机通讯原理框图在总线末端接一个匹配电阻,吸收总线上的反射信号,包管正常传输信号干净、无毛刺。
一台PLC与多台变频器基于RS-485组网通讯的应用
一台PLC与多台变频器基于RS-485组网通讯的应用摘要:本文主要介绍台达VFD-B系列变频器同三菱FX2N系列PLC组网通讯的控制系统,这套系统应用于我公司硫化发泡机的自动控制系统,在此将简单的介绍一下系统的硬件组成、工作原理以及在控制系统程序设计方面的见解。
关键词:PLC;变频器;RS-485通讯引言工业自动化的控制广泛采用了交流变频器与可编程序控制器,而当今基本上所有变频器和PLC都具有RS-485串行通讯的功能,而且RS-485串行通讯方式具有良好的抗噪声干扰性、长传输距离(最大传输距离达1219.2m[1])和多站点能力(在总线上允许连接多达128个收发器[1]),最高传输速率达10Mb/s等优点,组网通讯成本低。
因此,在硫化发泡机改成自动控制的技改项目中应用了RS-485串行通讯将一台PLC与8台变频器组成一个控制系统。
在该系统中,主控装置是PLC,受控装置是变频器,执行机构是两台发泡机8个完成不同功能的电动机。
PLC能够全程控制并监测这8台变频器的运行参数。
这样可以方便用户的使用,同时大大提高调胶时的效率和质量。
硫化发泡机的结构及控制系统的组成硫化发泡机主要由4个动力部份组成:①明胶(也叫C胶)泵、②乳胶泵、③乳胶与空气混合泵、④乳胶与明胶混合泵。
没改造前,这4个泵是通机械调节转速来达到控制流量的目的,调节步骤多、操作繁重、调节时间长。
要取代这种繁重的手工操作,最直接、实用的办法就是用PLC统一控制这4个泵对应的变频器,进而控制它们的转速,且变频器的调速范围要从0Hz到60Hz,显然变频器的多段速功能无法满足要求。
台达VFD-B系列变频器自身集成有RS-485通讯口,通讯地址从01H到FEH[2],也即通过RS-485通讯模式,PLC可以和254台VFD-B系列变频器组网通讯。
由于三菱FX2N系列本身没有RS-485通讯口,因此再加装一块FX2N-485-BD通讯板与两台发泡机的8台变频器组成一个通讯网络,PLC作为主站,变频器作为从站。
基于RS485总线的多机通讯的实现
基 于 RS 8 4 5总 线 的 多机 通 讯 的 实现
由 勇
( g地铁运营有限公司 , 沈 t 辽宁 沈阳 10 0 ) 10 4 摘 要 : 章 介 绍 了 RS一4 5电 气特 性 和 简 单 的 结 构 方 式 、 用 RS 8 自定 义 实现 串行 通 信 协 议 文 8 采 45 以 及 单 片 机 RS一4 5 多机 通 讯 的 方 法 和 技 巧 。 8 关 键 词 : 片机 ; 单 RS一4 5总 线 ; 8 多机 通 信 中图分类 号 : TN9 4 1 文献标 识码 : A 文 章 编 号 :0 7 9 12 O )2 O 0 — 0 1 0 —6 2 ( 0 8 2 — 3 6 2 RS一4 5接 口 芯 片 已广 泛 5 用 于 工 业 控 制 、 8 2 仪 器 、 表 、 媒 体 网 络 、 电一 体 化 产 品等 诸 多 领 域 。 仪 多 机 可 用 于 RS一4 5接 口 的 芯 片 种 类 也 越 来 越 多 。 如 8 何 在 种 类 繁 多 的 接 口芯 片 中 找 到 最 合 适 的 芯 片 , 是 摆 在 每 一 个 使 用 者 面 前 的 一 个 问 题 。RS一4 5接 口 8 在 不 同 的使 用 场 合 , 芯 片 的 要 求 和 使 用 方 法 也 有 对 所 不 同 。使 用 者 在 芯 片 的 选 型 和 电 路 的设 计 上 应 考 虑 哪 些 因 素 。 由 于 某 些 芯 片 的 同 有 特 性 , 信 中 有 通 些 故 障甚 至 还 需 要 在 软 件 上 作 相 应 调 整 , RS一4 5 8 串行 总 线 接 口标 准 以差 分 平 衡 方 式 传 输 信 号 。 具 有 很 强 的抗 共 模 干 扰 的 能 力 , 许 一 对 双 绞 线 上 一 个 允 发 送 器 驱 动 多 个 负 载 设 备 。工 业 现 场 控 制 系 统 中 一 般 都采 用该 总线标 准进 行数据传 输 。用户 在开 发一 般 的 单 片 机 应 用 系 统 时 , 希 望 能 用 简 单 的 电 路 和 都 简 单 的通 信 协 议 完 成 数 据 交 换 。 1 技 术参数
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Ξ基于R S485总线多机通信系统可靠性的研究3刘文怡,李进武(仪器科学与动态测试教育部重点实验室 中北大学,太原030051)[摘要]介绍了R S485总线多机通信的一般构成,分析了影响R S485总线通信可靠性的主要因素,同时提出了相应的提高多机系统通信可靠性的硬件和软件措施。
[关键词]R S485总线;多机通信;可靠性[中图分类号]TN919 [文献标识码]AThe Research of Rel i ab il ity of M ulti-com puterComm un ica tion System V i a RS485BusL I U W en2yi,L I J in2w u(Key L abo rato ry of Instrum entati on Science&D ynam ic M easurem ent,M inistry of Educati onN o rth U niversity of Ch ina,T ai Yuan030051,Ch ina)Abstract:T he paper briefly introduces the i m p lem entati on of m ulti2computer Comm unicati on based on R S485Bus, and analyzes the m ain facto rs w h ich influence the Comm unicati on reliability of R S485Bus,then offers som e co rresponding hardw are and softw are so luti on m ethods w h ich i m p rove the reliability of m ulti2computer system.Key words:R S485Bus;m ulti2computer comm unicati on;reliability1 引 言在分布式系统中,分机常采用多机通信方式,由于R S485总线其结构简单、通信速率高、传输距离远等诸多优点,所以被认为是一种很好的通信模式。
但R S485总线存在自适应、自保护功能脆弱、通信效率低等缺点,在实际应用过程中,若使用不当,R S485接口会出现很多问题,如噪声干扰,总线冲突,通信电路失控,误码率高等问题,严重影响了主机与从机之间可靠的数据通信,以致影响整个系统的可靠性。
因此研究多机系统的通信可靠性至关重要。
2 多机通信系统的实现在由单片机构成的多机串行通信系统中,一般采用主从式结构:从机不主动发送命令或数据,一切都由主机控制。
R S485构成的多机通讯大多是半双工通信方式,在整个系统中只有一个节点为主节点,总线上的所有其他节点都是从节点。
通信方式一般是主节点循环轮询各个节点。
各个从节点都有自己的通信识别号,当主节点的轮询信息中包括自己的通信识别号时,此从节点则对此帧进行应答,其他节点则忽略此帧,不做任何处理。
并且在一个多机通信系统中,只有一台单机作为主机,各台从机之间不能相互通讯,即使有信息交换也必须通过主机转发。
采用R S485构成的多机通讯原理框图如图1所示。
图1 R S-485多机通信的一般模式半双工485芯片除了电源外有两个控制端R E和D E,两个T TL(C M O S)数据接收RO和发送端D I,以及一对R S485信号端A和B,其中A,B分别为差分信号+、-端。
当R E=0且D E=0时,使485芯片R(接收器)打开,D(驱动器)关闭即处于数据接收状态,此时信号通过・21・弹箭与制导学报2005年 Ξ收稿日期:2004209204基金项目:本文得到总装备部预研管理中心资助,项目编号:41317030107作者简介:刘文怡(1970—),男,副教授,主要研究方向:微系统集成技术。
传输线差分信号到达A和B端,经转换后变成T TL(C M O S)信号到达RO端;当R E=1且D E =1时,使接收器R关闭,驱动器D打开即处于数据发送状态,使T TL(C M O S)信号经驱动器平衡后变成差分信号送A和B端;当R E=1且D E=0时,R和D全部关闭处于高阻状态;当R E=0且D E=1时,R和D同时打开,这对半双工接口是不允许的。
发送时,当D I=1,内部驱动电路使A线的电压比B线高(发送逻辑1);接收时,如果A线电压高于B线(至少200mV),则接收电路使RO为高电平(接收到逻辑1)。
3 提高通信可靠性的硬件措施3.1 通信电缆中的信号反射在通信过程中,有两种情况会导致信号反射:阻抗不连续和阻抗不匹配。
阻抗不连续信号在传输线末端突然遇到电缆阻抗突变,信号在这个地方就会引起反射。
消除这种反射的方法是必须在电缆的末端跨接一个与电缆特性阻抗同样大小的终端电阻,使电缆的阻抗连续。
由于信号在电缆上的传输是双向的,因此,在通信电缆的另一端可跨接一个同样大小的终端电阻。
典型双绞线的特性阻抗约1208,终端电阻也应选择1208。
引起信号反射的另一个原因是数据收发器与传输电缆之间的阻抗不匹配。
这种原因引起的反射、主要表现在通信线路处在空闲方式时,整个网络数据混乱。
信号反射对数据传输的影响,归根结底是因为反射信号触发了接收器输入端的比较器,使接收器收到了错误的信号。
要减弱反射信号对通信线路的影响,通常采用噪声抑制和加偏置电阻的方法。
在实际应用中,对于比较小的反射信号、为简单方便,经常采用加偏置电阻的方法。
在通信波特率比较高的时候、在线路上增加偏置电阻是很有必要的。
偏置电阻的连接方法如图2所示。
它的作用是在线路进入空闲状态后,把总线上没有数据时(空闲方式)的电平拉离0电平。
这样一来,即使线路中出现了比较小的反射信号或干扰,挂接在总线上的数据接收器也不会由于这些信号的到来而产生误动作。
偏置电阻的计算方法如下所述:设终端电阻R Z1=R Z2=1208;假设反射信号最大的峰—峰值V ref=0.36V p_p则负半周的电压V ref=0.18V,终端电阻上由反射信号引起的反射电流;I ref=0.18 (120‖120)=3mA。
一般R S485收发器的滞后电压值为50mV,即:(I bias-I ref)×(R Z1‖R Z2)=50mV 则可以计算出偏置电阻产生的偏置电流:I bias=3.83mA5V=I bias(R上拉+R下拉+R Z1‖R Z2) 通过上式可以计算出:R上拉=R下拉=6208图2 偏置电阻连接图 在实际应用中,R S485总线加偏置电阻有两种方法:(1)把偏置电阻平均分配给总线上的每一个收发器。
这种方法给挂接在R S485总线上的每一个收发器加了偏置电阻和一个偏置电压。
(2)在一段总线上只用一对偏置电阻。
这种方法对总线上存在大的反射信号或干扰信号时比较有效。
但偏置电阻的加入,增加了总线的负载。
3.2 避免通信中异常总线冲突在R S485总线构筑的半双工通信系统中,在整个网络中任一时刻只能有一个节点处于发送状态并向总线发送数据,其他所有节点都必须处于接收状态。
如果有2个节点或2个以上节点同时向总线发送数据,将会导致所有发送方的数据发送失败。
因此,在系统的各个节点的硬件设计中应首先力求避免因异常情况而引起本节点向总线发送数据而导致总线数据冲突。
以M CS51系列的单片机为例,因其在系统复位时,I O口都输出高电平。
如果把I O口直接与R S485接口芯片的驱动器使能端D E端相连,会在CPU复位期间D E为高,从而使本节点处于发送状态。
如果此时总线上有其他节点正在发送数据,则此次数据传输将被打断而告失败,甚至引起整个总线因某一节点的故障而通信阻塞,继而影响整个系统的正常运行。
考虑到系统工作的稳定性和可靠性,在每个节点的设计中应将控制R S485总线接口芯片的发送引脚设计成D E端的反逻辑,即控制引脚为逻辑“1”时,D E 端为“0”;控制引脚为逻辑“0”时,D E端为“1”。
应用中,将CPU的I O引脚D EO(控制R S485总线接口芯片的发送引脚)反相和CPU复位引脚R ESET反相相与驱动D E端,这样就可以使 第25卷第3期基于R S485总线多机通信系统可靠性的研究 刘文怡等控制引脚为高或者异常复位时使R S 485接口始终处于接收状态,从而从硬件上有效避免节点因异常情况而对整个系统造成的影响。
其示例接口电路如图3所示。
图3 与CPU 连接图3.3 分布电容对R S 485总线传输性能的影响电缆的分布电容主要由双绞线的两条平行导线产生。
另外,导线和地之间也存在分布电容,虽然很小,但在分析时也不能忽视。
分布电容对总线传输性能的影响,主要是因为总线上传输的是基波信号,信号的表达方式只有“1”和“0”。
在特殊的字节中,例如00000001,信号“0“使得分布电容有足够的充电时间,而信号“1”到来时,由于分布电容中的负荷,来不及放电,(V in +)—(V in -)还大于200mV ,结果使接收器误认为是“0”,而最终导致整个数据帧传输错误。
由于总线上存在分布电容的影响,导致数据传输错误,从而便整个网络性能降低。
解决这个问题有两种方法:(1)降低数据传输的波特率;(2)使用分布电容小的电缆,提高传输线的质量。
3.4 多机通信中“死循环”现象51系列单片机有方便的串行通信功能,但在实际应用中,常因某台从机失去接收主机发出的地址数据的机会,或因某台从机不工作失去接收主机发出的地址数据的机会,或因某台从机不工作而使系统陷入“死循环”程序而不能正常工作。
解决“死循环”程序的基本方法是对“等待”时间加以限制,如以300波特率、方式3通信为例,发送一帧数据的时间是11×1 300≈37m s ,从机发来数据也需要同样的时间,“等待”时间为2×11×1 300≈74m s 。
当“等待”时间超过了74m s ,说明从机不是没有收到信息就是不能工作,可以利用时间判断从机是否正常工作。
通常在74m s 内如果还没有收到从机发来的信息,就再次发送该机的地址数据。
最多可重发十次后,如果还没有收到从机信息,就将此台从机作错误处理,进行下一步程序。
4 提高通信可靠性的软件措施4.1 在协议中增加校验在通信协议中,要保证多机系统中同一时刻只能有一个发送,可以多个同时接收。
为保证通信可靠性,还应对传送中的数据进行校验,常用的校验方法有奇偶校验、累加和校验以及CRC 校验等。
4.2 在软件设计中适当增加延时在主从式数据通信系统中,数据传输可分为多个阶段,无论是主机还是分机,在一次完整的数据交换过程中,总会有将R S 485差动输出状态转换成差分输入状态或由差分输入状态转换成差动输出状态的过程,而每次转换都需一定的时间。