RS485总线传输

2024-05-30

RS485总线传输(精选七篇)

RS485总线传输 篇1

RS485总线在变电站综合自动化中,被广泛使用。在实际应用中,RS485总线多采用2线制,2线制可实现真正的多点双向通信,但采用2线制时属于半双工通信[1],即Half-duplex Communication。这种通信方式可以实现双向的通信,但不能在两个方向上同时进行,必须轮流交替地进行。也就是说,通信信道的每一段都可以是发送端,也可以是接收端[2]。但同一时刻里,信息只能有一个传输方向。因此在整个RS485总线上只能有1个主设备,其余为从设备。总线可连接多达32个设备。

RS485总线型结构是一种用于设备联网的经济而又传统的工业总线方式,它本身拥有鲜明的优点有:传输距离长,速率高,采用点对点、点对多点和广播式通信方式。最突出之处就是结构简单,现场施工方便,省时省力,也节省线材,而且运行状态稳定,故障率较低[3,4,5]。

目前在RS485总线上传输的通信规约有modbus、103规约等,还有各厂家的私用通信规约。在使用上大都是由后台或通信管理机依次循环定时召唤总线上各设备[6,7],为避免通信冲突,定时一般按大于最长传输帧传输时间设定,为保证可靠性,这个时间往往设置得比较大,这造成总线数据传输率的下降,形成通信瓶颈[8,9,10]。在初期由于接入设备的数量较少,这种瓶颈基本不影响数据的传输或影响较少,随着接入设备数量的增多,瓶颈的影响越来越突出,对应重要的遥信的召唤一轮需要5 s以上,有的甚至还高,造成实时数据的严重滞后。有的厂家将这些设备分化到2个或多个RS485总线上,有的厂家改造硬件设备,采用主动上传方式[1],或改造硬件提高其通信可靠性[1,2,3,4,5],这无疑大大增加了通信成本。

1 自适应召唤策略的提出

在充分研究了RS485总线半双工通信传输的特点后,制作了上传数据激发召唤下发的通信策略,在此策略下,由于召唤的下发频度不再受最长帧的约束,而是根据帧的长短自动调节下发频度,因此,这种策略也叫作自适应召唤策略。自适应召唤策略下,空闲时间大大缩短,总线利用率大大提高。在从设备原规约不进行任何改动的情况下,自适应召唤策略无疑是解决RS485总线通信瓶颈的最佳策略。在此策略下,定时召唤依旧使用,只不过已转化为召唤入口和超时召唤,召唤上来的数据,可以快速激发下一次召唤(这次召唤,处理代码同定时召唤代码基本相同,只是不同的函数入口)。为了给从设备预留从RS485由发送到接收状态的切换,为保证可靠性,建议在上传的数据处理完毕后,再快速激发下一次召唤。根据从设备的不同,在快速激发召唤前,可能还要等待一定的时间,与从设备RS485发送接收状态切换速度有一定关系,这个时间在只有一个设备时最长,随着设备的增加,将不断缩小,以至达到零等待。只要召唤上正确的数据,下次召唤便是快速激发召唤;如没有召唤上数据来或召唤上来的数据有误码,下次召唤便是超时召唤。(注:超时召唤时间同定时召唤时间一样,宜长不宜短,否则会发生通信冲突的严重后果。)

2 自适应召唤策略的对比优越性

下面按103规约在RS485总线上多点传输为实例,进行定时召唤与自适应召唤的对比。103规约中有固定帧和变长帧,固定帧较短一般为5个字节,当然也有1个字节的(如E5);变长帧最大长度为261(255+6)个字节,一般总召上传遥信遥测时,数据帧较长(规约中规定:最大的用户数据的数目为255个八位位组,然而如果帧长影响到召唤的循环时间特别是当发生传输差错时还得进一步限制用户数据八位位组的数目)。本处召唤下发与上传的最长结合按100字节,通信速率按9 600 b/s进行,如定时召唤的精度为100 ms。那么定时时间至少为200 ms。定时召唤策略的通信过程如图1,自适应召唤策略的通信过程如图2。

假设有100对召唤数据帧,其中5对为100 B,15对为50 B,80对为10 B,激发等待时间为5 ms,那么这100对召唤数据帧全传完,定时召唤策略需100×200=20 000 ms;而自适应召唤策略仅需(100×5+50×15+80×10)/960×1000+100×5=2 635 ms。由此可见自适应召唤策略的优越性。

然而自适应召唤策略的实现并不复杂,只需在定时召唤的基础上稍加改动便可实现,不会增加规约成本。

3 自适应召唤策略的实施

定时召唤策略的召唤流程如图3,自适应召唤策略的召唤流程如图4。

从程序流程图上看,自适应召唤策略较定时召唤策略复杂较多,但具体实施却较为简便,只可稍加处理便可大功告成。程序在召唤和对上传数据的处理等处所加代码大体如下:

(1)定时召唤策略的程序代码

(2)自适应召唤策略的程序代码(粗体表新加代码)

(3)从以上代码比较可以看出,真正是新加的代码并没有几行,召唤策略却发生了本质的改变。其中b Get Buff与b Poll的使用解决了超时召唤函数与激发召唤函数的冲突,保证了通信可靠性。超时时间的设置与定时时间的设置一样,宜长不宜短,以超时召唤函数与激发召唤函数不发生冲突为宜。

4 结语

经过以上简单的处理,通信规约的性能、速度、可靠性等都得到大大的提高。自适应召唤策略在代码处理上简便易行,所有运行于半双工总线上的通信规约都可借鉴,只可将以上相关代码拷至程序的正确位置,便可实现循环定时召唤到自适应召唤的转换改造。我公司也在CAN总线上使用的私用综自保护CAN2.0规约上进行了自适应召唤改造,改造后,通信速度比之前提高近五六倍。此处的超时时间具有不确定性,最小为1倍的定时召唤时间,最大为2倍的定时召唤时间。因此如在召唤列表里存在无响应的召唤(如设备通信中断),那么召唤下一帧的等待时间要比循环定时召唤的等待时间长。当召唤列表里的设备50%以上都处于通信中断时,自适应召唤与循环定时召唤在总体速度上已相差无几;当召唤列表里的设备70%以上都处于通信中断时,自适应召唤在总体速度上已不如循环定时召唤了。因此可以说自适应召唤策略在大部分设备都正常通信的情况下是处于优势的;在大部分设备都通信中断的情况下是处于劣势的。

注意自适应召唤策略的另一个优势,如果当设备随着投运时间的增长,受外部环境的影响,其通信响应如有所反应迟钝(一年前在与一国外品牌的综自保护通信时,就发现了这种情况)。在这种情况下,循环定时召唤的定时时间可能不满足要求了,这时就会发生下发上传通信冲突,就得加长定时时间,这无疑使总线的使用率又大大降低了;而自适应召唤受这种情况的影响是比较小的,总线的使用率会稍微有点下降,但不会太大,当然自适应召唤的超时时间要设的比较长(在所有设备都正常通信的情况下,超时时间设置的长一点,不会对通信效率产生影响),以免超时召唤函数与激发召唤函数发生冲突。

经过近一年的现场工程使用来看,自适应召唤策略在CAN总线、RS485总线等半双工总线上运行良好,遥信等一些重要的信息上传速度明显加快。自适应召唤策略已成为在半双工总线上通信速度最快、性能最好、最安全、适应性最强的一个实用策略。

当然,对于个别的规约,在使用时,可以灵活变通,如采用自适应召唤策略与循环定时召唤策略相结合的方法,可以使规约的召唤更具人性化。如101规约就可以采用自适应召唤策略与循环定时召唤策略相结合的方法定制召唤,在召唤链路状态、复位远方链路、发现有一级数据时等情况在召唤时使用自适应召唤策略,而在召唤二级数据时则使用循环定时召唤策略。可见这种结合召唤策略更适合像101规约这样区分传输优先级的规约。

在其他参数都不改动的情况下,提高一倍的数据传输速率(如由9 600 b/s提高至19 200 b/s),循环定时召唤策略总的数据传输量基本没有什么变化;而自适应召唤策略总的数据传输量却相应的增加近一倍。可见自适应召唤策略的优越性。

摘要:为最大程度上提高RS485总线的通信利用率,通过对RS485通信方式特性的研究,从主设备的上层应用软件的规约召唤策略机制入手,将定时循环轮召策略进一步改进为自适应召唤策略。主设备根据从设备上传代码的长短而自动调节召唤时间间隔,从而降低了总线的空闲时间,极大程度上提高了通信利用率,同时也保证了数据通信可靠性,从根本上解决了RS485通信瓶颈。将以103规约为实例讲解如何在实际编程中将定时循环轮召策略升级为自适应召唤策略,并提供了改造流程图及C源代码。

关键词:自适应召唤策略,循环定时召唤,RS485,使用率,半双工通信

参考文献

[1]吴军辉,林开颜,徐立鸿.RS485总线通信避障及其多主发送的研究[J].测控技术,2002,21(8):41-43.WU Jun-hui,LIN Kai-yan,XU Li-hong.The reserch of avoiding communication conflict and multi-master mode in RS485bus system[J].Measurement&Control Technology,2002,22(8):41-43.

[2]许燕萍,杨代华.RS485串行总线可靠性的研究[J].电子科技,2009,22(2):8-10,22.XU Yan-ping,YANG Dai-hua.Analysis of the reliability of bus RS485[J].Electronic Science and Technology,2009,22(2):8-10,22.

[3]耿立中,王鹏,马聘,等.RS485高速数据传输协议的设计与实现[J].清华大学学报:自然科学版,2008,48(8):1311-1314.GENG Li-zhong,WANG Peng,MA Pin,et al.Design and implement of RS485high speed data communications protocol[J].J Tsinghua Univ:Sci&Tech,2008,48(8):1311-1314.

[4]周有利.RS485总线的使用和解决方案探讨[J].电脑知识与技术,2009,5(5):1242-1243.ZHOU You-li.RS485bus use and to explore solutions[J].Computer Knowledge and Technology,2009,5(5):1242-1243.

[5]弋沛琦,鞠建波,范敬泽,等.RS-485总线通信可靠性的分析与研究[J].海军航空工程学院学报,2009,24(6):692-694.YI Pei-qi,JU Jian-bo,FAN Jing-ze,et al.Analysis and research on reliability of RS-485bus communication[J].Journal of Naval Aeronautical and Astronautical University,2009,24(6):692-694.

[6]柏嵩,陈斌,唐涛,等.IEC870-5-103规约的应用经验[J].电力系统自动化,2000:68-70.BAI Song,CHEN Bin,TANG tao,et al.Analysis and usage of IEC870-5-103standard[J].Automation of Electric Power Systems,2000:68-70.

[7]孟祥萍,李颖,孟祥印.IEC60870-5-103规约的分析和应用[J].东北电力技术,2005,2:20-22.MENG Xiang-ping,LI Ying,MENG Xiang-yin.Analysis and application for IEC60870-5-103stipulations[J].Northeast Electric Power Technology,2005,2:20-22.

[8]谢会敏,刘春,王章启.铁路自动配电开关分层式通讯系统的实现[J].继电器,2006,34(16):54-56,60.XIE Hui-min,LIU Chun,WANG Zhang-qi.Design of layered communication system in railway automatic power distribution switches system[J].Relay,2006,34(16):54-56,60.

[9]李沙,支长义,朱郴良,等.直读远程抄表系统设计[J].电力系统保护与控制,2009,37(19):119-121,150.LI Sha,ZHI Chang-yi,ZHU Chen-liang,et al.Design of direct-reading remote meter reading system[J].Power System Protection and Control,2009,37(19):119-121,150.

RS485总线传输 篇2

CAN总线是控制线局域网络 (Controller Area Network) , 是ISO国际标准化的串行数据通信协议。CAN属于现场总线的范畴, 是一种有效支持分布式控制或实时控制的串行通信网络。现场总线是当今自动化领域技术发展的热点之一, 被誉为自动化领域的计算机局域网。它的出现为分布式控制系统实现各节点之间实时、可靠的数据通信提供了强有力的技术支持。

RS-485总线也是一种的串行总线标准 (RS:Rcommended standard) , 采用平衡发送与差分接收的方式, 具有抑制共模干扰的能力。在一些要求通信距离为几十米到上千米的时候, RS-485总线是一种应用最为广泛的总线之一。

2 CAN总线的特点

CAN总线是一种多主总线, 通信介质是双绞线、同轴电缆或光导纤维;通信速率可达1MBps;CAN总线通信接口中集成了CAN协议的物理层和数据链路层功能, 可完成对通信数据的成帧处理。

CAN总线拓扑图见图1, CAN控制器根据两根线上的电位差来判断总线电平。发送方通过使总线电平发生变化, 将消息发送给接收方。

在当前汽车产业中, 出于对安全性、舒适性、方便性、低公害、低成本的要求, 才开发出了面向汽车的CAN通信协议。如今, CAN的高性能和可靠性已被认同, 并被广泛应用在汽车电子、自动控制、航空航天等。

3 RS-485总线的特点

RS-485接口是采用平衡驱动器和差分接收器的组合, 抗共模干扰能力强;RS-485的数据最高传输速率为10Mbps, 总线上允许连接多达128个收发器, 即具有多站能力。RS-485接口具有良好的抗噪声干扰性, 长的传输距离和多站能力等优点使其成为重要的串行接口。

RS-485总线被广泛应用在汽车电子、电信设备局域网、航空电子等。

4 CAN总线、RS-485总线的对比分析

可从以下几个方面进行比较:

(1) 速度与距离:CAN总线与RS-485总线以1Mbit/S的高速率传输的距离都不超过100M, 可谓高速上的距离差不多。但是在低速时CAN以5Kbit/S时, 距离可达10Km, 而RS-485在低的速率也只能到1219m左右。可见CAN在长距离的传输上拥有绝对的优势。

(2) 总线利用率:RS-485是单主从结构, 是一个总线上只能有一台主机, 通信由主机发起, 主机不发命令, 下面的节点不能发送, 且需要发完即答, 受到答复后, 主机才向下一个节点询问, 这样是为了防止多个节点向总线发送数据, 而造成数据错乱。而CAN总线是多主从结构, 每个节点都有CAN控制器, 多个节点发送时, 以发送的ID号自动进行仲裁, 这样可以实现总线数据不错乱, 而且一个节点发完。另一个节点可探测到总线空闲, 马上发送, 省了主机的询问, 提高了总线速率, 增强了快速性。所以在汽车等实性要求高的系统, 都是用CAN总线, 或者其他类似的总线。

(3) 错误检测机制:RS-485只规定了物理层, 没有数据链路层, 对错误无法识别, 除非一些短路等物理错误。这样容易造成一个节点破坏, 一直向总线发数据, 造成整个总线瘫痪。所以RS-485一旦坏一个节点, 这个总线网络就会瘫痪。而CAN总线通过CAN收发器接口芯片82C250的两个输出端CANH和CANL与物理总线相连, 而CANH端的状态只能是高电平或悬浮状态, CANL端只能是低电平或悬浮状态, CAN总线有CAN控制器, 可以对总线任何错误进行检测, CAN节点在错误严重的情况下具有自动关闭输出功能, 以使总线上其他节点的操作不受影响, 从而保证不会出现象在网络中, 因个别节点出现问题, 使得总线处于"死锁"状态。如果检测到其它节点错误或自身错误, 都会向总线发送错误帧, 来提示其它节点这个数据是错误的。这样, CAN总线若有一个节点CPU程序跑飞了, 它的控制器自动闭锁保护总线。所以对安全性要求高的网路, CAN是很强的。CAN具有的完善的通信协议可由CAN控制器芯片及其接口芯片来实现, 从而大大降低系统开发难度, 缩短开发周期, 这些是仅有电气协议的RS-485无法比拟的。

(4) 通信实时性:与基于R线构建的分布式控制系统RS-485总线对比, CAN总线在网络各节点之间的数据通信实时性强。CAN控制器工作于多种方式, 网络中的各节点都可根据总线访问优先权采用无损结构的逐位仲裁的方式竞争向总线发送数据, 且CAN协议废除了站地址编码, 而代之以对通信数据进行编码, 这可使不同的节点同时接收到相同的数据, 这些特点使得CAN总线构成的网络节点之间的数据通信实时性强, 并且容易构成冗余结构, 提高系统的可靠性进而系统的灵活性。而利用RS-485只能构成主从式结构系统, 通信方式也只能以主站轮询的方式进行, 系统的实时性、可靠性较差。

5 小结

通过以上对比, CAN总线比RS-485总线技术优势明显, 无论从总线速率、传输距离、总线检测能力、开发周期、通信实时性方面, 均具有较强的优势, 突出的可靠性、实时性和灵活性使得CAN总线在汽车及其它领域上有了最广泛的应用。

摘要:本文论述了CAN总线与RS-485总线的特点, 从总线传输速率、实时性等方面比较分析CAN总线与RS-485总线通信的特点。CAN总线是在RS-485总线的基础上, 具有网络节点之间的数据通信实时性强, 可靠性高, 组网灵活, 抗干扰能力强等优点。

关键词:CAN总线,RS-485总线,实时性,串行

参考文献

[1]罗峰, 孙泽昌.汽车CAN总线系统原理.电子工业出版社, 2010.

[2]邬宽明.CAN总线原理与应用系统设计.北京航空航天大学出版社, 2002.

[3]王黎明, 夏立, 邵英.嵌入式技术与应用丛书.电子工业出版社, 2008.

RS485串行总线可靠性的研究 篇3

1 RS485标准

RS485是串行数据接口标准,由电子工业协会(EIA)制订并发布的,它是在RS-422基础上制定的标准[2],RS-485标准采用平衡式发送,差分式接收的数据收发器来驱动总线[3],具体规格要求:接收器的输入电阻Rin≥12 kΩ;驱动器能输出±7 V的共模电压;输入端的电容≤50 pF;在节点数为32个,配置了120 Ω的终端电阻的情况下,驱动器至少还能输出电压1.5 V(终端电阻的大小与所用双绞线的参数有关);接收器的输入灵敏度为200 mV(即(V+)-(V-)≥0.2 V,表示信号“0”;(V+)-(V-)≤-0.2 V,表示信号“1”) 因为RS-485的远距离、多节点(32个)以及传输线成本低的特性,使得EIA RS-485成为工业应用中数据传输的首选标准。

2 RS485数据传输的可靠性

RS485总线属于外部总线,外部总线用于与外部设备进行信息和数据交换,是设备级的。

RS-485标准所具有的噪声抑制能力、数据传输速率、电缆长度及可靠性是其他标准无法比拟的[4]。然而在实际应用中,往往分散控制单元数量较多、分布较远、现场存在各种干扰,使得通信的可靠性不高。为了提高RS-485总线在实际应用中的可靠性,应注意以下几个问题。

2.1 阻抗匹配

RS-485的信号线应考虑阻抗匹配问题,所谓阻抗匹配即信号线的负载应与信号线的特性阻抗相等[5]。特性阻抗与信号线的宽度、与地线层的距离以及板材的介电常数等物理因素有关,是信号线的固有特性。阻抗不匹配将引起传输信号的反射,使数字波形产生振荡,造成逻辑混乱。由于通信载体是双绞线,它的特性阻抗为120 Ω左右,所以线路设计时,在RS-485网络传输线的始端和末端各应接1只120 Ω的匹配电阻,如图1所示,以减少线路上传输信号的反射。

2.2 失效保护

RS-485标准规定接收器门限为±200 mV[6]。这样规定能够提供比较高的噪声抑制能力,但同时也带来了一个问题:当总线电压在±200 mV中间时接收器输出状态不确定。由于UART以一个前导“0”触发一次接收动作,所以接收器的不确定状态可能会使UART错误地接收一些数据,导致系统误动作。当总线空闲、开路或短路时都有可能出现两线电压差低于200 mV的情况,必须采取一定措施避免接收器处于不确定状态。传统的做法是给总线加偏置,当总线空闲或开路时,利用偏置电阻将总线偏置在一个确定的状态(差分电压≥200 mV),但这种方法仍然不能解决总线短路时的问题。Maxim公司的MAX3080系列S485接口芯片将接收门限移到-200 mV/-50 mV,巧妙地解决了这个问题。不但省去了外部偏置电阻,而且解决了总线短路情况下的失效保护问题。

2.3 地线与接地

电子系统的接地是一个非常关键而又常常被忽视的问题,接地处理不当经常会导致不能稳定工作甚至危及系统安全。对于RS-485网络来讲也是一样,没有一个合理的接地系统可能会使系统的可靠性大打折扣。一个典型的错误观点就是认为RS-485通信链路不需要信号地,而只是简单地用一对双绞线将各个接口的“A”、“B”端连接起来。这种处理方法在某些情况下也可以工作,但给系统埋下了隐患,主要有以下两方面的问题:

(1)共模干扰问题。

RS-485接口采用差分方式传输信号[7],并不需要相对于某个参照点来检测信号,系统只需检测两线之间的电位差就可以了。但应该注意的是,收发器只有在共模电压不超出一定范围(-7~+12 V)的条件下才能正常工作。当共模电压超出此范围就会影响通信的可靠,直至损坏接口。如图2所示,当发送器A向接收器B发送数据时,发送器A的输出共模电压为VOS,由于两个系统具有各自独立的接地系统,存在着地电位差VGPD。那么,接收器输入端的共模电压就会达到VCM=VOS+VGPD。RS-485标准规定VOS≤3 V,但VGPD可能会有很大的幅度(十几伏甚至数十伏),并可能伴有强干扰信号,致使接收器共模输入VCM超出正常范围,并在信号线上产生干扰电流,轻则影响正常通信,重则损坏接口。

(2)电磁辐射(EMI)问题。

驱动器输出信号中的共模部分需要一个返回通路,如果没有一个低阻的返回通道(信号地),就会以辐射的形式返回源端,整个总线就会像一个巨大的天线向外辐射电磁波。

因此,尽管是差分传输,对于RS-485网络来讲,一条低阻的信号地还是必不可少的。

2.4 瞬态保护

前面提到的接地措施只对低频率的共模干扰有保护作用,对于频率很高的瞬态干扰则几乎无效。因为引线电感的作用,对于高频瞬态干扰来讲,接地线实际等同于开路。这样的瞬态干扰可能会有成百上千伏的电压,但持续时间很短。在切换大功率感性负载(电机、变压器、继电器等)、闪电等过程中都会产生幅度很高的瞬态干扰,如果不加以适当防护就会损坏接口。对于这种瞬态干扰可以采用隔离或旁路的方法加以防护。

图3(a)所示为隔离保护方案。这种方案实际上将瞬态高压转移到隔离接口中的电隔离层上,由于隔离层的高绝缘电阻,不会产生损害性的浪涌电流,起到保护接口的作用。通常采用高频变压器、光耦等元件实现接口的电气隔离。这种方案的优点是可以承受高电压、持续时间较长的瞬态干扰,实现起来也比较容易,缺点是成本较高。

图3(b)所示为旁路保护方案。这种方案利用瞬态抑制元件(如TVS、MOV、气体放电管等)将危害性的瞬态能量旁路到大地,优点是成本较低,缺点是保护能力有限,只能保护一定能量以内的瞬态干扰,持续时间不能很长,而且需要有一条良好的接地通道,实现起来比较困难。实际应用中可以将二者结合起来灵活运用。隔离接口对大幅度瞬态干扰进行隔离,而旁路元件保护隔离接口不被过高的瞬态电压击穿。

2.5 通信规则

由于RS-485通讯是一种半双工通讯[8],发送和接收共用同一物理信道。在任意时刻只允许一台单机处于发送状态。因此要求应答的单机必须在侦听到总线上呼叫信号已经发送完毕,并且没有其它单机发出应答信号的情况下,才能应答[9]。半双工通讯对主机和从机的发送和接收时序有严格的要求。如果在时序上配合不好,就会发生总线冲突,使整个系统的通讯瘫痪,无法正常工作。要做到总线上的设备在时序上的严格配合,必须要遵从以下原则:

(1) 复位时,主从机都应该处于接收状态。

以Maxim公司的485接口芯片MAX3082为例。MAX3082芯片的发送和接收功能转换是由芯片的RE,DE端控制的[10]。RE=1,DE=1时,MAX3082处于发送状态;RE=0,DE=0时,MAX3082处于接收状态。由于应用系统中,主机与分机相隔较远,通信线路的总长度往往超过400 m,而分机系统上电或复位又常常不在同一个时刻完成。一般使用微处理器的一根口线连接RE,DE两端。在上电复位时,由于硬件电路稳定需要一定的时间,并且微处理器各端口复位后处于高电平状态,这样就会使总线上各个分机处于发送状态,再者上电时各电路不稳定,可能向总线发送信息。因此,如果用一根口线作发送和接收控制信号,应该将口线反向后接入MAX3082的控制端,使上电时MAX3082处于接收状态。

另外,在主从机软件上也应附加若干处理措施,例如,上电时或正式通讯之前,对串行口做几次空操作,清除端口的非法数据和命令。

(2) 总线上所连接的各单机的发送控制信号在时序上完全隔开。

为了保证发送和接收信号的完整和正确,避免总线上信号的碰撞,对总线的使用权必须进行分配才能避免竞争。连接到总线上的单机,其发送

控制信号在时间上要完全隔离。

总之,发送和接收控制信号应该足够宽,以保证完整地接收一帧数据,任意两个单机的发送控制信号在时间上完全分开,避免总线争端。

3 结束语

近年来,RS485 标准在工业控制自动化、交通控制自动化、楼宇自控系统等多个领域得到广泛应用,而且不少现场总线物理层也采取RS485 的电气标准。文中对当前最流行的外部总线RS-485的可靠性问题做了探讨。

参考文献

[1]杨庆柏.现场总线技术[M].北京:国防工业出版社,2005.

[2]张欣,李爱军,单鹏.RS485电路的匹配和保护性设计研究[J].航空计算技术,2007(5):80-82.

[3]Myke Predko.PC接口技术内幕[M].北京:中国电力出版社,2002.

[4]马鸣锦.高性能个人计算机硬件结构及接口[M].北京:国防工业出版社,2001.

[5]沙斐,谭海峰.电子产品的电磁兼容控制和设计[J].电子质量,2001(7):115-120.

[6]刘贤锴.特殊库房多点温度检测系统[J].计算机与自动化,2004(4):58-60.

[7]范辉.RS485总线与CAN总线应用比较[J].上海电机学院学报,2005(5):55-56.

[8]李乐,郑宾.全双工RS485总线发送机制的研究[J].中国仪器仪表,2008(2):41-43.

[9]陈德池.微处理器与现场总线技术[M].长沙:中南大学出版社,2003.

RS485总线传输 篇4

所谓多机通信主要是指两台以上计算机之间的数据传输。在单片机多机应用系统中,单片机之间的通信方式为主从式。主从式多机通信要求主机发送的信息可以传送到各个从机,而从机发送的信息只能为主机接收,各个从机之间不能直接通信,须通过主机实现。系统工作时,主机与被选中从机之间的数据交换一一对应,被选中的从机接收数据,其它从机将数据丢失。RS-485总线工作原理框图如图一所示。

在上述原理框图中,SN75176为一总线收、发驱动芯片,由CPU的P1.7引脚完成对其进行收发控制,当P1.7为0时,该芯片处于发送状态;当P1.7为1时,该芯片处于接收状态,并由该芯片来控制总线的收、发方向。

在上述原理屮,主机与从机的CPU可采用MCS-51系列的单片机,也可采用其他支持多机通信的ARM CPU等。

在RS-485总线工作过程中,必须要始终保持主、从机收、发状态的一致性,这也是多机通信的主要与核心内容。即当主机处于发送状态时,各从机必须处于接收状态,而当从机处于发送状态时,主机必须处于接收状态。否则会引起总线冲突,甚至造成通信瘫痪。这个主、从双方的协调工作应当由主机与从机的通信协议来完成,并最好由主机来控制主、从机的收、发转换。为此,我们应当在通信协议上下工夫。

1 通信协议内容

我们知道,当MCS-51串口工作在方式2和3时,具有如下的特点:若位S 12=1且接收到的第9位数据为0时,则不能激活接收中断标志RI,接收数据无效;若SM2=1且接收到的第9位数据为1时,则RI不仅被激活而且还可以向CPU请求中断;若SM2=0则无论接收到的第9位数据为0还是1,TI、RI都以正常方式激活并可向CPU请求中断。

当MCS-51串口工作在方式2和3时,TB8中保存的就是串口即将要发送的第9位数据,而RB8中保存的就是串口接收到的第9位数据。

因此,我们可充分利用MCS-51的这种特点来实现RS-485位总线多机通信,为实现此目的,我们先做如下设定:

(1)在每个从机上,都提供一个软件设置,用于设置本从机的地址(0-7最大8个从机),每个从机的地址不能设置成相同,否则会造成地址冲突。

(2)将主、从机的串口设置为工作方式2或方式3,并使用相同的波特率。

(3)将主机发送的第9位TB8设为地址帧和数据帧的标志位。TB8=0,表示数据帧;TB8=1,表示地址帧。

(4)将主、从机的REN位设置为1 (主、从机都可接收及发送数据),所有从机的SM2设置为1 (表示从机首先只接收地址帧),主机的SM2设置为0(表示主机可接收任何数据)。

至此,我们就完成了对主、从机工作方式的设置及初始化操作,接下来便可进行具体的软件通信过程实现(制定通信协议)。

由于在多机通信过程中,一般都只有一台主机,多台从机。而各从机又都处于平等状态,并由主机去完成对各从机的收发控制,故采用分时法来实现该过程比较合适。

为此,我们制定了如下通信协议,其具体思想及实现步骤如下:

(1)将160MS的时间平均分成8个时间片,每个时间片占用20MS,用于主机与对应从机的通信,主机与对应从机的当前数据必须在该20MS时间片内交互完成。在这20MS的时间片内,首先由主机发送数据,从机接收数据,主机发送完数据后再由从机发送数据,主机接收数据。

(2)主机与对应从机通信时,由主机方协调主、从双方的通信,从机方处于被动接收状态,受主机方的控制。20MS时间片开始时,首先由主机发送地址字节(该地址字节的低4位表示本次通信的从机编号,最高位为0表示主机需要发送数据(从机此时必须处于接收状态)。最高位为1表示主机现在没有数据发送(从机此时可以发送数据),该地址字节由主机发送,用于控制主、从机的收发转换。

(3)主机与对应的从机通信时,若本方(主机方)有数据发往相应的从机方,则先将从机方的编号写入地址字节变量的低4位,再将地址字节变量的最高位置0 (表示主机方有数据发送到相应的从机方),并将TB8置1 (表示这是地址字节),然后将该地址字节发送出去。若本方(主机方)无数据发往相应的从机方,则同样先将从机方的编号写入地址字节变量的低4位,再将地址字节变量的最高位置1 (表示主机方无数据发送到相应的从机方,此时从机可发送数据),并将TB8置1 (表示这是地址字节),同时将该地址字节发送出去。

(4)在20MS时间片内,若主机有数据要发送,且主机方数据已发送完成,则主机方需再将从机方的编号写入地址字节变量的低4位,并将地址字节变量的最高位置1 (表示主机方数据已发送完,此时从机可发送数据),并将TB8置1(表示这是地址字节),然后将该地址字节发送出去。从机收到该地址字节后,便可由收状态转换为发状态,并发送相应的数据,从而实现在20MS时间内的主、从收发转换。

(5)由于初始化时,所有从机的SM2=1,故它们都只接收地址字节。当它们接收到该地址字节后(RB8=1),与自己的地址进行比较,若相等,则置SM2=0,表示可继续接收其它后续数据;若不相等,则保持SM2=1不变,不能接收后续的数据字节。这样就保证了主机只与自己选中的从机进行通信。

(6)为保证在20MS时间片内,主、从机双方都有数据发送的机会,须对主从双方在20MS时间片内发送的数据字节总数进行数量控制(总数的多少可跟据通信速率及单位时间内产生数据量的多少来确定)。一般来说,若根据具体情况可判断出主从双方收发的数据量都比较少,且收发数据的产生也比较均匀,数据收发时双方通信的速率也比较高,这时候也可不进行收发数据的数量控制,使用时应尽量做到具体情况具体分析,根据不同的情况灵活处理。

为实现上述软件通信协议,我们在软件设计时,在主机方应提供一个20MS的定时器,由该定时器来完成对从机的定时扫描与处理,在从机方须提供一个硬件接口,通过该接口来获取从机的地址。在收发数据流量控制上,我们采用主机方进行发送字节总数控制,而在从机方不进行发送字节总数的控制(默认从机方发送数据量比较少)。当然,如果有兴趣的话也可对该协议进行修改,对从机方也实行收、发流量控制。

2 软件实现流程

以主机串口中断收发流程为例,从机串口中断收发流程与主机相似。主机的数据收、发主要在串口中断中完成与实现,当产生串口接收中断时,则串口接收缓冲区的数据为从机发送过来的数据,可直接进行接收与处理,主机串口中断收发流程如图二所示。

3 程序代码实现

本人将使用8031作为CPU的通信主机板与8个使用ATMEL 89C52作为CPU的从机板,采用485总线相连,利用PLM51单片机高级程序设计语言作为编程语言,实现了上述主、从多机通信过程(其中主、从机采用相同的晶振及时钟)。因主、从机采用相同的晶振及时钟,故将它们都设置在串口工作方式2,使得它们具有相同的串口通信波特率fosc/64。以下以主机串口收发为例介绍程序代码的实现。

4 结束语

以上程序代码在MCS-51单片机上成功地实现了多台设备的互连互通,因此RS-485总线为各个设备的连接及组网提供了可能。但RS-485总线也有其自身固有的缺点,例如:数据传输速率低、传输距离有限、软件设计复杂、容易造成通信瘫痪等。但目前由于其价格成本低,使用简单方便,使得其在数据通信量要求不是很大的情况下,仍有很大的市场,这就要求我们在其硬件及软件设计上下功夫,使该RS-485总线始终保持一种良好、稳定的工作状态。

摘要:RS-485总线在工业控制及通信领域受到广泛的应用,本文提出一个具体的RS-485总线多机通信的软件实现方法,供大家参考使用。

关键词:地址字节,数据字节,时间片,中断

参考文献

[1]李晓荃,魏立东.陈立芳单片机原理与应用[M].北京:电子工业出版社,2000.

[2]陈力钧,刘英.单片机高级程序设计语言PL/M-51与PL/M-96[M].西安:西安电子科技大学出版社,1994.

[3]邹继军,饶运涛.基于SJA1000的CAN总线系统智能接点设计[J].单片机与嵌入式系统应用,2001,(12).

[4]刘和平.PIC18Fxxx单片机原理与接口程序设计[M].北京:北京航空航天出版社,2004.

[5]周立功等.ARM微控制器基础与实战[M],北京:北京航空航天出版社,2003.

RS485总线传输 篇5

关键词:RS485,TDMA,组网方式总线,PowerPC,DSP

1 前言

RS 485总线作为一种简易、廉价的通信技术, 其收发器采用平衡驱动和差分接收, 具有抑制共模干扰的能力。RS485接收器灵敏度可达±200mv, 因而大大提高了通信距离, 其最大通信速率可达10Mb/s, 足以满足测试要求。RS485总线上允许带多个驱动器和接收器, 最新的收发器可带128个节点, 用于构建通信网络, 满足测试20个节点的需求。RS 485一般采用半双工的通信方式, 即在整个网络中任一时刻只能有一个节点处于发送状态并向总线发送数据, 如果有两个或两个以上节点同时向总线发送数据, 将会导致所有发送的数据发送失败, 即所谓的总线冲突。

为了提高RS485通信系统的实时性, 目前国内外已进行了一些研究工作, 大多采用对RS485进行软硬件改造使其具有多主结构的方法, 使得从节点能够随机发送数据。提出的实现方法是将RS485接口芯片的数据接收引脚通过一反相器接到CPU的外部中断引脚, 用触发中断的方式判断总线上是否有数据传输, 同时结合定时器中断判断总线是否空闲;如果总线空闲就获得总线控制权发送数据, 然后用监听自己发送数据的方法判断是否发生总线冲突, 如果发生冲突, 则随机延时一段时间, 再重新侦听发送的方法也与之类似。这些方法一般需要额外的硬件资源, 需要对原设备进行硬件改造;方法中提到的碰撞处理一般都采用CSMA/CD的随机退避算法, 实现较为复杂, 而且时间不可预计, 不能保证实时性要求。

2 RS485总线测试系统的总体设计

基于RS485总线的测试系统的总体框架, 无线网络模拟系统包括主节点和若干从节点, 从节点主要通过RS422接口接收被测设备 (终端机) 的数据, 然后将数据发送到RS485总线上, 同时从RS485总线上接收其他从节点从RS422接口上收到的数据, 并且将接收到的数据处理后发送给与其相连的端机;主节点主要负责从上位机接收时隙配置指令并向各个从节点下发指令, 同时将从节点发向RS485总线上的数据进行存储与处理, 并通过以太网将数据发向不同的上位机监测系统。

3 主节点设计

鉴于总线上数据传输量大, 传输速率高, 主节点主控板上采用飞思卡尔的Power PC架构的处理器MPC8548E, 它是一款功能非常强大的处理器, 频率最高可达1.5GHz, 处理速度完全满足通信要求, 同时集成L1/L2缓存, DDR控制器等, 主节点的主控板具有丰富的资源, 支持四个10/100/1000Base T以太网接口, 256Mbytes DDR工作频率533MHz可扩展到1G, 总共16Mbytes的8位Flash存储器, 一个串行接口, 两个独立的PCI接口, 工作频率在33/66MHz还有其他资源这里不再赘述。

主节点的通信过程描述如下:主节点的主控板通过PCI总线与RS485接口卡相连, 通过该RS485接口卡与从节点通信, 通过以太网分别连接两个监测系统。

主节点为上位机监测系统和从节点通信的中转站。

主节点的主要功能如下:空闲状态下, 主节点始终处于等待接收上位机监测系统的时隙配置指令的状态, 当主节点接收上位机监测系统发送的时隙配置指令时, 首先对指令进行解析, 确定时隙配置指令的具体要求, 然后将指令通过RS485总线下发给各个从节点, 延时1s后确定各个节点收到了时隙配置指令后, 向各个从节点发送时钟信号, 以告知各个节点该发送数据了。从节点依次向总线上发送数据, 主节点接收总线上的数据, 对数据的类型和有效性进行判断, 若当前节点没有收到测试设备 (终端机) 发来的数据, 从节点就向RS485总线上发送在线数据包, 若有从节点接收到有效数据就向RS485总线上发送实际的数据包, 主节点接收这些数据包, 将有效的两种数据包分类保存并对各个节点发送的有效数据包中在线数据包和实际数据包进行统计, 之后将数据包通过以太网分别以TCP和UDP协议发送给两个上位机监测系统。

从节点设计, 节点上多为接收和发送数据, 从节点控制器采用TI公司的DSP芯片TMS320F2812, 其频率高达150MHz, 采用哈佛总线结构, 具有统一的存储模式, 包括4M可寻址程序空间和4M可寻址数据空间。同时片内具有128*16位的FLASH存储器和18K*16位的SRAM, 以及4K*16位的引导ROM。具有两个事件管理器以及外部中断模块, 最大支持96个外部中断。

从节点的软件开发环境使用TI公司的集成开发环境CCStudio V3.3。从节点的主要功能如下:在没有接收到时隙配置指令时, 从节点只通过中断接收终端机和主节点发送的数据, 不做其他处理。当从节点从RS485总线上收到主节点的时隙配置指令后, 解析时隙配置指令, 从中获取与当前节点号相对应的时隙号, 以确定当前节点向终端机和其他节点发送数据的时间。等到自己发送数据的时候将从终端机收到的数据解析后并重新打包后发送到RS485总线上, 供其他节点接收, 同时将从RS485总线上收到的数据解析后并重新打包发送给终端机 (被测设备) 。从节点通过上升沿中断方式计数自己的发送时刻。

4 结束语

本文深入分析了用户的测试环境以及系统需求, 设计并实现了基于RS485总线的测试系统, 主节点采用RS485总线与各个从节点相连, 通过时钟信号计数的方法确定各个从节点发送数据的时机, 充分模拟了无线网络的TDMA通信机制。实际运行结果表明, 本测试系统各部分系统性能都能很好的符合实际无线通信的要求, 能够充分模拟实际的测试环境, 达到客户的需求。

参考文献

[1]许艳萍, 杨代华.RS485串行总线可靠性研究[J].电子科技, 2009.

[2]郭庆, 冀捐灶, 王雪德.基于RS485总线的环境监控系统设计与实现[J].国外电子测量技术, 2006.

RS485总线传输 篇6

近年,我国安防市场发展迅猛,以每年20%~30%的速度增长。安防型GPS定位装置是定位安防高端智能化创新技术与应用的产品,是GPS定位系统、GPRS通讯系统、防盗报警系统结合为一体的定位装置。他能提供目标的具体位置信息对目标实时跟踪,能进行无线数据传输、防盗报警、信息查询、数据调度等。

安防型GPS定位装置的结构框图如图1所示。

由于安防型GPS定位装置的运行环境比较恶劣,而且该产品直接影响车辆的运行状况和安全,因此对该产品的可靠性要求极高。

为了保证产品较高的可靠性,除了对产品设计要求高以外,还需要对生产进行严格的监管和测试。然而手工检测的效率无法满足批量生产的要求,因此需要设计满足批量生产的安防定位装置的测试系统。本文提出了一种基于PC机的自动化检测系统设计思路,并且应用于安防型GPS定位装置(以下简称装置)的生产检验。该设计思路可以推广到其他电子产品的生产检测中。

2 自动化检测系统的设计

2.1 设计思路

自动化检测系统是利用计算机系统通过工业控制总线对终端装置按流程进行检测。串行通信是计算机与外部设备进行数据交换的重要渠道,并由于其成本低、性能稳定、遵循统一的标准,在工程中被广泛应用。RS 485是一个多引出线接口,这个接口可以有多个驱动器和接收器,可以实现一台上位机与多台下位机之间的串行通信。其采用主从式通信方式,可以通过PC机与连接终端进行实时通讯[1],因此本测试系统采用RS 485总线。

这里,我们设计的自动化检测系统是基于RS 485现场总线、自定义通信协议、在总线上连接各下位机(检测终端装置)和上位机(PC机)、由上位机统一管理的主从式总线型的检测系统。一台计算机通过RS 485现场总线同时检测1~127台终端装置。用于测试的PC机和检测终端都通过RS 232转RS 485的转接器,按照两线制接线方式,通过总线式拓扑结构(并联方式),连接在一条RS 485总线上[2]。PC机通过串行命令检测装置的硬件,连接方式如图2所示。

2.2 系统检测设计

根据安防型GPS定位装置的特点,在生产过程中需要检测的项目主要有:

微处理器单元及通讯接口;供电系统(包括电源管理及电池充放电);存储器;GPS模块;GPRS模块;按键;指示灯;锁车;语音提示(包括音频放大电路)。

上位机通过与下位机的通讯,若收到下位机正确应答,则说明下位机能够工作正常,可以确定微处理器单元、通讯接口以及供电系统正常。当下位机正常完成测试,则可以确定该节终端装置微处理器单元、通讯接口以及供电系统正常。

存储器、GPS模块、GPRS模块的测试是由上位机发出测试命令,下位机正确应答收到该测试命令后,由下位机微处理器分别进行存储器、GPS模块、GPRS模块的测试,并把测试结果按通讯协议上报给上位机。

指示灯和锁车的测试是由上位机发出测试命令,下位机正确应答收到该测试命令后,由下位机微处理器分别让各个指示灯(包括锁车指示灯)闪烁,通过检测人员眼睛判断,操作PC机(上位机),确定该部件的好坏。上位机收到检测人员的输入结果后,向下位机发出结束该项测试的命令。

按键的测试是上位机发出测试命令,下位机正确应答收到该测试命令后,由下位机微处理器检测相应按键在指定时间内是否按下和松开。若按键动作正确,则下位机处理器按通讯协议将按键正常动作的信息上报给上位机,否则上报按键错误信息。

语音提示部件的测试为上位机发出测试命令,下位机正确应答收到该测试命令后,由下位机微处理器分别循环出发出各提示语音段,有检测人员根据语音的质量和清晰度判断测试结果,并操作上位机输入结果。上位机收到检测人员的输入结果后,向下位机发出结束该项测试的命令。

2.3 终端装置编码设计

由于RS 485总线是采用半双工通信方式,每次只能有一对节点进行通信[2],故要求每台装置有自己的地址编号以便测试辨认检测。这里设计将终端装置的生产编号为检测时的地址编号,由于终端装置的生产编号具有惟一性,故能够满足RS 485通讯的要求。

生产编号是终端装置的惟一标识,为了能更好地反映终端装置的生产信息,同时考虑编号生成的自动化,我们确定的编号方法如下:

YYMMDDHHmmss ID1 ID2 ID3

其中,YY为年后两位的BCD码,MM为月的BCD码,DD为日的BCD码,mm为分的BCD码,ss为秒的BCD码。该时间为进行测试时的时间,可以由进行测试的计算机自动生成。ID1和ID2为单字节的编码,分别为生产厂家代码、操作人员代码;ID3为双字节编码,代表软硬件版本号。

这样生产编号的设计具有以下优点:

(1) 可以通过测试软件,根据当时时间等信息自动生成,避免人工失误,并且提高效率;

(2) 编号存入各台测试机的参数存储器中,作为终端的身份标识,用于生产检测和实际使用;

(3) 根据该编号,极容易查出终端的生产厂家、时间以及检验人员,符合质量管理体系的要求;

(4) 编号附带软硬件版本号,方便后期的技术维护。

3 通讯协议的设计

RS 485总线只制定了物理层电气标准,对上层通信协议没有规定,这给设计者提供了很大的灵活性。一套完整的通信协议应从多个方面加以考虑,即要求结构简单、功能完备,又要求具有可扩充性与兼容性,并且尽量标准化。本系统采用的通信协议是在充分考虑到系统本身的功能特点,再参考国际标准通信规约的基础上制定的,适用于检测的计算机与检测终端进行点对点的或一主多从的数据交换方式,具体如下:

3.1 帧格式

起始符:数据帧起始标志,用于触发通信,本系统约定为8AH。

地址码:地址域由10个字节构成,每字节2位BCD码。地址长度为20位十进制数。低地址位在先,高地址位在后。当地址为99999999999999999999H时,为广播地址(即向所有终端发送消息)。地址为11111111111111111111H时,为上位机。

控制码C:一个字节长度,用于指明具体的命令内容。每一位代表不同的内容对应不同的命令代码,具体内容如表1所示。

数据字段:本字段分两部分。第一部分为一个字节,表示整个数据字段的字节数(长度),L=0表示无数据域。第二部分则为通信中需要传输的数据内容,包括数据标识和数据等,其结构随控制码的功能而改变。

校验码CS:从帧起始符开始到校验码之前的所有各字节的模256的和。

结束符:数据帧结束标志,本系统约定16H。

3.2 数据传输

上位机(PC机)与下位机(单片机)构成的多机通信系统采用主从式结构,数据通信总是由主机发起。主机处于发送状态时,从机总是出于接收状态。若上位机发送的地址信息与本地从机相符,则接收该数据,否则继续接收总线上的数据。若下位机需要发送数据,则必须等到主机轮询过该下位机时,才可提出请求。这种网络模式下,下位机不会“侦听”其他下位机对主机的响应,这样就不会对其他下位机产生错误的响应。

3.3 差错控制

当主机发出呼叫帧后,如果在规定的时间内没有收到从机的应答帧,则主机认为帧丢失并重发呼叫帧;如果发送3次仍没有收到应答帧,则系统认为该次通信失败,报错。在数据帧发送时,本系统采用应答方式进行差错控制,即接收方向发送方回发特殊的控制命令码,作为传输正确以否的的确认。如果传输中帧完全丢失,则发送方进行超时处理。

4 结 语

本文提出了一种基于RS 485总线的安防型GPS定位装置自动测试系统的设计,并分别就系统总体结构及检测思想的设计和主从式多机通信协议的设计等两个方面进行了阐述。设备的实际使用结果表明:整个系统设计合理,工作可靠,基于 RS 485 的总线测试系统通信可靠性高,可扩展性强,操作维护方便,大大提高了安防型GPS定位装置的故障检测与诊断效率。

该系统的设计思路,尤其是自动化编码方式对其他智能电子产品的自动化检测提供了很好的借鉴作用。并且通过对该系统的部分修改,可以移植到诸如智能传感器、工业控制终端等多种产品的生产检测中。

摘要:安防型GPS定位装置可以实现车辆的运行管理和锁车防盗,有较大的市场需求量。该装置的批量生产和检测是安防型GPS定位装置制造厂商面临的问题。根据安防型GPS定位装置生产和检测的需要,提出了一种基于RS 485工业总线的计算机自动检测系统,制定了用于该检测系统的通讯协议。该检测系统的研制不仅解决了安防型GPS定位装置生产检测的难题,而且,该系统的设计方法可以应用于其他电子产品的检测。

关键词:GPS,定位装置,RS485总线,自动化检测系统,通信协议

参考文献

[1]虞日跃,史洪源.RS 485总线理论与实践[J].电子技术应用,2001,27(11):55-57.

RS485总线传输 篇7

随着矿井安全监控系统、瓦斯抽放系统、人员定位跟踪系统等各个子系统不断推广使用, 系统的升级改造及日常维护成了用户的头等大事。当前多数设备进行软件升级时, 都要把设备搬运至地面, 拆开设备并通过烧写器进行软件升级, 然后再搬运回原地方;或采用先升级地面备用设备的软件, 拿去更换井下的一批设备, 然后不断地循环更换, 直至更换完毕。这种软件升级的方式工作量大, 效率低下, 不易于现场维护。为了解决该问题, 结合目前主流设备多数存在RS485总线接口的情况, 设计了基于RS485总线的矿用设备软件升级器。该升级器复用现场RS485总线进行软件升级, 提高了软件更新的工作效率。

1 软件升级器工作原理

在线编程目前有2种实现方法:在系统编程 (In System Programming, ISP) 和在应用编程 (In Applicatin Programming, IAP) 。ISP是用烧写器将代码写入目标电路板中, 主要用于产品调试或生产过程中, 不适合用于产品运行时的程序升级。IAP是通过使用TBLRD (表读) 和TBLWT (表写) 指令来完成的, 用户程序存储空间分为引导程序和应用程序2个部分。引导程序类似于PC机上的BIOS, 用于引导用户程序是进入升级状态, 还是进入正常运行状态, 若进入升级状态则接收新的程序数据, 并更新程序存储器的内容;若进入正常运行状态, 则程序跳转到应用程序区。应用程序类似于PC机上的操作系统, 是为了实现产品功能而编写的程序[1]。本文设计的设备软件升级器是基于IAP方式进行应用程序升级。升级器的工作流程如图1所示。

首先将U盘 (载有设备应用程序文件) 插入升级器USB接口中, 软件升级器与矿用设备通过RS485总线连接, 单片机判断是否有按键按下 (下载应用程序按钮) , 若有按键按下, 打开U盘中存储的设备应用程序文件并计算出该文件的大小。升级器读取U盘中一个扇区的文件 (512bytes) , 当发送完毕一个扇区返回继续读取下一个扇区, 直至该文件控制器全部接收完毕, 停止发送。然后通过RS485总线将设备应用程序传输至设备, 设备引导程序接收应用程序, 并存储在应用程序区。

设备的通信速率可遥控设置, 当升级器就近进行程序升级时, 可将通信速率适当调高, 提高程序代码写入速度。例如采用115 200bit/s的速率, 实际应用表明200 kB的程序代码写入时间大约为1min。在数据传输过程中可能会受到干扰, 传输大量的数据容易造成误码, 为保障传输过程的可靠性, 本文对应用程序代码采取分包处理, 分成若干个大小相等的数据包, 每个包包含指令帧、数据帧和校验帧, 其中指令帧包含指令类型、目的地址。校验帧可采用累加和校验或CRC校验方式。节点接收后可回复应答帧。如果不正确可重新传送该包数据, 连续3帧校验错误, 终止程序升级。

2 软件升级器硬件电路设计

矿用设备软件升级器硬件电路主要包括单片机模块电路、电源电路、USB信号处理电路、RS485信号处理电路。电路原理框图如图2所示。

2.1 单片机模块电路

单片机的作用是读取U盘内的应用程序文件, 再通过RS485总线传输至预升级的设备中。单片机选择PIC24HJ32GP202, 具有1个UART/3个定时器, 32kB ROM等, 完全满足升级器设计需求, 单片机模块电路如图3所示。

2.2 RS485信号处理电路

RS485信号处理电路主要由RS485接收发器与光耦器件组成, 如图4所示。RS485总线收发器选用SN75LBC184。

2.3 USB信号处理电路

USB信号处理电路主要由U盘和SD卡文件管理控制芯片CH376S组成, 如图5所示。本设备中将CH376S配置为8位并口通信方式, TXD接GND, 其余引脚悬空。由于INT引脚和TXD引脚在CH376S复位期间只能提供微弱的高电平输出电流, 可在INT引脚或者TXD引脚上加阻值为2~5kΩ的上拉电阻。单片机可以不连接CH376S芯片的INT引脚, 通过查询CH376S的状态端口 (即命令端口) 获取接口状态, 位7是中断标志;R2用于限制作为USB主机提供给外部USB设备的电流, USB电源电压必须是5 V。电容C11用于CH376S内部电源节点退耦, 晶体管Y2用于时钟振荡电路[2,3]。

3 软件升级器软件设计

矿用设备软件升级器内部软件主要包括U盘数据读取程序、RS485总线程序和主程序。主程序流程如图6所示。主程序初始化主要包括初始化单片机寄存器、串口初始化配置、USB芯片初始化等工作。

4 结语

基于RS485总线的矿用设备软件升级器可以将RS485总线接口复用为上层程序升级接口, 提高了控制器接口的利用率。该升级器基于RS485总线通信, 其基本原理同样适用于带有其他数字通信功能 (串口、CAN总线接口等) 的设备的软件升级, 可广泛应用于煤矿、通信等行业。目前, 该升级器已在煤矿液压支架电液控制系统中应用, 经长期使用测试, 性能稳定, 工作可靠。

参考文献

[1]徐艺文.基于dsPIC33F系列单片机的应用程序升级方法[J].现代电子技术, 2011, 34 (4) :125-128.

[2]李萍, 单葆悦, 刘晓东, 等.USB芯片CH376在智能仪器仪表中的应用[J].计量与测试技术, 2011, 38 (2) :9-10.

[3]谢志英, 郑立评, 寇应展.基于CH376 USB接口和MSP430单片机的数据采集系统[J].工业控制计算机, 2012, 25 (11) :32-33.

本文来自 360文秘网(www.360wenmi.com),转载请保留网址和出处

【RS485总线传输】相关文章:

总线传输协议08-14

USB总线上数据传输06-30

RS422总线06-16

总线接口04-28

总线协议05-02

总线测试05-03

总线技术06-04

总线性能06-05

总线电缆07-07

同步总线08-19

上一篇:复方替硝唑下一篇:IMS网络与应用