RS485总线
RS-485采用半双工工作方式,支持多点数据通信。RS-485总线网络拓扑一般采用终端匹配的总线型结构。即采用一条总线将各个节点串接起来,不支持环形或星型网络。 RS-485采用平衡发送和差分接收,因此具有抑制共模干扰的能力。加上总线收发器具有高灵敏度,能检测低至200mV的电压,故传输信号能在千米以外得到恢复。 有些RS-485收发器修改输入阻抗以便允许将多达8倍以上的节点数连接到相同总线。RS-485最常见的应用是在工业环境下可编程逻辑控制器内部之间的通信(广州亚大传动推出的一体化伺服电机,内置驱动器,支持RS485,CAN通讯)。
RS-485总线标准
RS-485采用平衡发送和差分接收方式实现通信:发送端将串行口的TTL电平信号转换成差分信号A,B两路输出,经过线缆传输之后在接收端将差分信号还原成TTL电平信号。由于传输线通常使用双绞线,又是差分传输,所以又极强的抗共模干扰的能力,总线收发器灵敏度很高,可以检测到低至200mV电压。故传输信号在千米之外都是可以恢复。RS-485最大的通信距离约为1219M,最大传输速率为10Mb/S,传输速率与传输距离成反比,在100Kb/S的传输速率下,才可以达到最大的通信距离,如果需传输更长的距离,需要加485中继器。RS-485采用半双工工作方式,支持多点数据通信。RS-485总线网络拓扑一般采用终端匹配的总线型结构。即采用一条总线将各个节点串接起来,不支持环形或星型网络。如果需要使用星型结构,就必须使用485中继器或者485集线器才可以。RS-485总线一般最大支持32个节点,如果使用特制的485芯片,可以达到128个或者256个节点,最大的可以支持到400个节点。
RS-485总线的理论
在自动化领域,随着分布式控制系统的发展,迫切需要一种总线能适合远距离的数字通信。在RS-422标准的基础上,EIA研究出了一种支持多节点、远距离和接收高灵敏度的RS-485总线标准。
RS-485标准采有用平衡式发送,差分式接收的数据收发器来驱动总线,具体规格要求:
1. 接收器的输入电阻RIN≥12kΩ
2. 驱动器能输出±7V的共模电压
3.输入端的电容≤50pF
4. 在节点数为32个,配置了120Ω的终端电阻的情况下,驱动器至少还能输出电压1.5V(终端电阻的大小与所用双绞线的参数有关)
5.接收器的输入灵敏度为200mV(即(V+)-(V-)≥0.2V,表示信号"0";(V+)-(V-)≤-0.2V,表示信号"1")
因为RS-485的远距离、多节点(32个)以及传输线成本低的特性,使得EIA RS-485成为工业应用中数据传输的首选标准。基于此,RS-485的自动化领域的应用非常广泛,但是在实际工程中RS-485总线运用仍然存在着很多问题,影响了工程的质量,为工程施工带来了很多的不方便(广州亚大传动推出的一体化直流伺服电机,内置驱动器,支持RS485,CAN通讯)。
布线规范
1.485总线必须要接地。在很多技术文档中,都提到485总线必须要接地,但是没有详细的提出如何接地。严格的说,485总线必须要单点可靠接地。单点就是整个485总线上只能是有一个点接地,不能多点接地,因为将其接地是因为要将地线(一般都是屏蔽线作地线)上的电压保持一致,防止共模干扰,如果多点接地适得其反。可靠接地时整个485线路的地线必须要有良好的接触,从而保证电压一致,因为在实际施工中,为了接线方便,将线剪成多段再连接,但是没有将屏蔽线作良好的连接,从而使得其地线分成了多段,电压不能保持一致,导致共模干扰。
2.485信号线可以和强电电源线一同走线。在实际施工当中,由于走线都是通过管线走的,施工方有的时候为了图方便,直接将485信号线和电源线绑在一起,由于强电具有强烈的电磁信号对弱电进行干扰,从而导致485信号不稳定,导致通信不稳定。
3.选择使用普通的超五类屏蔽双绞线即网线就可以。由于原材料价格上涨,导致现在市场上的线材鱼龙混杂,有不良商人利用某种合金来顶替铜丝来做网线,在外面镀铜以蒙混客户。具体区别方法:看网线截面,如果是铜色的话,就是铜丝,如为白色,则是用合金以次充好。合金一般比较脆,容易断,而且导电性远不如铜丝,很容易在工程施工中造成问题。线材一般那建议选择标准的485线,其为屏蔽双绞线,传输线不是像网线那样为单股的铜丝,而是多股铜丝绞在一起形成一根线,从而即使某根小铜丝断掉,也不会影响整个的使用。
4.485信号线可以使用平行线作为布线,也可以使用非屏蔽线作为布线。由于485信号是利用差模传输的,即由485+与485-的电压差来作为信号传输。如果外部有一个干扰源对其进行干扰,使用双绞线进行485信号传输的时候,由于其双绞,干扰对于485+,485-的干扰效果都是一样的,那电压差依然是不变的,对于485信号的干扰缩到了最小。同样的道理,如果有屏蔽线起到屏蔽作用的话,外部干扰源对于其的干扰影响也可以尽可能的缩小。
5.485布线可以任意布设成星型接线与树形接线。485布线规范是必须要手牵手的布线,一旦没有借助485集线器和485中继器直接布设成星型连接和树形连接,很容易造成信号反射导致总线不稳定。很多施工方在485布线过程中,使用了星型接线和树形接线,有的时候整个系统非常稳定,但是有的时候则总是出现问题,又很难查找原因,一般都是由于不规范布线所引起的。如果由于现场的限制,必须要进行星型连接或者树形连接,可以使用485集线器和485中继器解决相关问题
RS-485总线运用存在的问题
1、 阻抗不连续
信号在传输过程中如果遇到阻抗突变,信号在这个地方就会引起反射,这种信号反射的原理,与光从一种媒质进入另一种媒质要引起反射是相似的。消除这种反射的方法,就是尽量保持传输线阻抗连续,实际工程中在电缆线的末端跨接一个与电缆的特性阻抗同样大小的终端电阻的原理就是为了减小信号反射。
从理论上分析,在传输电缆的末端只要跨接了与电缆特性阻抗相匹配的终端电阻,就能有效的减少信号反射。但是,在实现应用中,由于传输电缆的特性阻抗与通讯波特率等应用环境有关,特性阻抗不可能与终端电阻完全相等,因此或多或少的信号反射还会存在。信号反射对数据传输的影响,归根结底是因为反射信号触发了接收器输入端的比较器,使接收器收到了错误的信号,导致CRC校验错误或整个数据帧错误。这种情况是无法改变的,只有尽量去避免它。
2、RS-485接地问题
仅仅用一对双绞线将各个接口的A、B端连接起来,而不对RS-485通信链路的信号接地,在某些情况下也可以工作,但给系统埋下了隐患。RS-485接口采用差分方式传输信号并不需要对于某个参照点来检测信号系统,只需检测两线之间的电位差就可以了。但应该注意的是收发器只有在共模电压不超出一定范围(-7V至+12V)的条件下才能正常工作。当共模电压超出此范围,就会影响通信的可靠直至损坏接口。如图1所示,当发送器A向接收器B发送数据时,发送器A的输出共模电压为VOS,由于两个系统具有各自独立的接地系统存在着地电位差VGPD,那么接收器输入端的共模电压就会达到VCM=VOS+VGPD。RS-485标准规定VOS≤3V,但VGPD可能会有很大幅度(十几伏甚至数十伏),并可能伴有强干扰信号致使接收器共模输入VCM超出正常围,在信号线上产生干扰电流轻则影响正常通信,重则损坏设备。
3、RS-485的总线结构及传输距离
RS-485支持半双工或全双工模式。网络拓扑一般采用终端匹配的总线型结构不支持环形或星形网络,最好采用一条总线将各个节点串接起来。从总线到每个节点的引出线长度应尽量短,以便使引出线中的反射信号对总线信号的影响最低。在使用RS485接口时,对于特定的传输线经,从发生器到负载其数据信号传输所允许的最大电缆长度是数据信号速率的函数,这个长度数据主要是受信号失真及噪声等影响所限制。当数据信号速率降低到90Kbit/S以下时,假定最大允许的信号损失为6dBV时,则电缆长度被限制在1200M。实际上,在实用时是完全可以取得比它大的电缆长度。当使用不同线径的电缆。则取得的最大电缆长度是不相同的(广州亚大传动推出的一体化伺服电机,内置驱动器,支持RS485,CAN通讯)。
CAN
CAN为国际标准现场总线,应用广泛。作为国际标准ISO11898和ISO11519的控制器局域网CAN[1],最初虽然是为汽车的监测、控制系统设计的,但由于它在性能、可靠性等方面的突出优势,现已广泛地应用于各工业领域[2]。在CAN总线技术中,其MAC机制是基本的和关键的部分之一。在CAN的技术规范中首先提到的就是仲裁,而仲裁规则是通过报文优先级体现的。目前国内外虽然对CAN报文优先级有一些理论研究和分析,但尚未见到有文献介绍有效的方法或手段来产生和检测报文的优先级。这在很大程度上阻碍了CAN总线的进一步研究与应用(广州亚大传动推出的一体化伺服电机,直流伺服电机,内置驱动器,支持RS485,CAN通讯)。
硬件支持
CAN报文优先级检测系统由4个CAN通信节点组成,通过各节点的CAN-H和CAN-L端口并联到总线上,总线两端各接上一个120Ω左右的终端电阻,构成一个闭合回路。4个节点的主体结构是基本相同的,根据系统功能的需要每个节点在硬件结构上又有所差别。系统总体结构如图所示。每个节点均有键盘和显示单元;节点1、2、3为发送节点,每个节点均有“启动发送”按钮;节点1还有“停止发送”按钮,并可对CAN总线电平进行检测,亦即可对CAN总线MAC(媒体访问控制)帧进行检测;节点4为接收节点,可显示接收到的报文。
图 系统结构
MAC机制分析
CAN技术规范中的MAC机制就是指对媒体访问的控制/仲裁机制[4, 5]。CAN网络上的一个节点发送的报文可被网络上所有其它节点监听并应答。当总线开放时,任何CAN节点均可开始发送报文,若多个节点同时开始发送报文,总线访问冲突借助标识符进行逐位仲裁来解决。仲裁期间,每一个发送器都将发送的位电平与在总线上监视到的电平进行比较,若相同,则该单元可以继续发送;若不同,该单元丢失仲裁,并且必须退出而不再发送后续位。
这里指出,对于多个节点同时发送情况下总线访问的仲裁,CAN采用的是带优先权的非破坏性逐位仲裁机制来解决总线冲突的;对于一个节点想要发送而另一个节点正在发送的总线访问情况,CAN采用的是载波监听技术。这二者共同的基础是CAN总线上一个节点发送的报文可被所有节点(包括自身)监听。带优先权的非破坏性逐位仲裁机制所依赖的其它基础是显性位(“0”)的优先权高于隐性位(“1”),即当一个隐性位和一个显性位同时被发送至总线上时,总线上所出现的结果为一个显性位,“非破坏性”即是对高优先权的“0”而言的;参与逐位仲裁的位为仲裁场(11位标识符和RTR位(对于标准格式)),如图所示。
图 CAN的非破坏性逐位仲裁
报文优先级产生与检测方法
1、方法的基本原理
根据CAN的MAC机制及仲裁规则,如果高优先级的报文一直占用着总线,则其它低优先级的报文将无法获得仲裁,但是会尝试重新发送。只有当高优先级报文不再占用总线时,低优先级的报文才可能发送成功。因此,检测报文优先级的前提和关键是如何让不同优先级报文同时竞争总线。
为方便说明,首先命名标识符。节点1要发送两种报文,将其发送报文标识符分别命名为SENT_ID_11和SENT_ID_12;将节点2和节点3发送报文标识符分别命名为SENT_ID_2和SENT_ID_3,报文的优先级顺序:SENT_ID_11>SENT_ID_2,SENT_ID_11>SENT_ID_3,SENT_ID_12>SENT_ID_2,SENT_ID_12>SENT_ID_3,SENT_ID_11不同于SENT_ID_12,SENT_ID_2不同于SENT_ID_3。使节点1连续发送标识符为SENT_ID_11的报文,目的是让高优先级的报文占用总线,使总线一直处于“忙”的状态。然后使节点2和节点3分别开始发送标识符为SENT_ID_2 和SENT_ID_3报文,节点2、3发送的报文优先级不同且均比节点1优先级低。此时,节点2和3监听总线的结果是:发现有比其本身优先级高的报文正在发送,因此要边监听边等待。这时节点1停止发送后,节点2和3会同时竞争总线,从而创造了使不同优先级的报文同时竞争总线的条件。根据节点4接收到报文的先后顺序即可验证节点2和节点3所发报文的优先级了,并且两个节点发出的报文都被成功接收,也验证了CAN总线的非破坏性仲裁机制。另外,通过节点1检测到的MAC帧也能确定节点2和3的报文优先级。这里要注意的是,SENT_ID_12的报文作为检测开始的标志。使节点1停止连续发送报文,让节点1再发送一帧ID为SENT_ID_12的报文,同时开始检测总线电平,捕捉MAC帧。在第三次检测到连续11个“1”时停止检测,即第三帧报文结束时停止检测。节点1将检测到的MAC帧的各位值通过显示单元顺序地显示出来,并与节点2和3发送的MAC帧相比较,可体现节点2和3的报文优先级。这就双方面验证了报文优先级,保证了准确性和可信度。
2、方法的软件实施
软件实施是严格依据方法的基本原理设计的,各个节点的软件实施流程如图所示。
图 各节点软件流程
对实施流程作如下几点说明:
(1)配置CAN位定时寄存器时要保证各节点的通信波特率严格一致;
(2)配置CAN接受码和接受屏蔽寄存器时要保证节点1、2和3屏蔽总线上所有报文,节点4只接受来自节点2和节点3的报文;
(3)节点1软件流程中第一次配置仲裁场、控制场及数据场是为连续报文发送做准备,第二次配置是为标定报文检测起始标志做准备。
(4)节点1软件流程中第一次键盘扫描目的是为启动连续报文发送,第二次键盘扫描是为停止连续报文发送。
(5)CAN的MAC帧检测是过检测单元中断服务程序实现的。
其中表1给出了各节点实际设置发送的报文;根据方法的基本原理,表2给出了报文过滤设置情况;表3给出了节点1实际检测到的CAN的MAC帧(灰色阴影标示位为位填充),其检测到的顺序从前到后依次是SENT_ID_12,SENT_ID_2,SENT_ID_3,实际检测情况与理论分析相符合,进而报文优先级得以验证。另外,节点4液晶显示的接收到的报文顺序也与理论分析相符合,更进一步证实了方法的可行性。
广州亚大传动设备有限公司,主营,一体化伺服电机,无刷电机,行星减速机等,一体化直流伺服电机,内置驱动器,节省空间,抗干扰能力强,调试简单无需电柜,广泛运用于包装机器,精密机械设备,机器人手臂,VGA小车等。