摘 要:列举单片机多机通信系统在使用MAX485芯片作为通信接口时的常见问题;分析传输数据不稳定的因素;介绍提高通信稳定性的有效方法。其中包括RS485芯片的硬件分析和通信协议的软件设计。电子园51单片机学习网B!i.J M]2k,q{
4o{C&} T{R w0关键词:通信协议 异步通信 噪声
概 述电子园51单片机学习网 d3R0EBN R eH
单片机在当今的仪表及工业测控设备上应用非常广泛。其功能强大、外围接口电路简单,在构成分布式系统时,其优越性更显突出。在分布式系统中,分机常采用多机通信方式,由于RS-485(以下简称485)通信接口的传输距离远,连线少,所以被认为是一种很好的通信模式。然而,在实际应用过程中,若使用不当,485接口会出现很多问题:首先是器件经常损坏,有时对电源进行几次连续的开关机操作之后,通信电路就会失控;再有,在通信过程中,数据传输经常出现误码,而且误码率很高。在系统调试过程中,有两次记录可以证明这一点,记录如表1所列。
gxMj-zvU/C2C$i0eI8RC#OW&IU0
,mv!j"R/}Li8s0电子园51单片机学习网]4IEW*x~s
表1 调试记录
序号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
发送 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
接收1 | 1 | 2 | 50 | 4 | 5 | 6 | 7 | 8 | 231 | 10 |
接收2 | 1 | 2 | 3 | 4 | 5 | 127 | 7 | 8 | 9 | 10 |
一、 硬件分析
XB/jcWf@)r0 首先分析通信电路失控的原因。系统在上电复位阶段,所有485芯片都处于输出状态,而且只有其中某一台分机发出数据。以这台分机输出口的状态为例进行分析,如图1所示。A、B为485接口的两只引脚,图1(图1a)中的A1~An为高电平,B1~Bn为低电平;而A为低电平,B为高电平,其中一个分支的等效电路如图1(b)所示。由于每个出口电路的电阻取值相同,都取22Ω,则C点电位接近An点电位。分机数量越大,两点电位就越接近。485芯片为差动输出方式,同时有拉电流和灌电流存在,电流I=U/R。由于电流I的存在,使485的差动输出端各有0.3V的电压降。485芯片由输出口造成的功率损耗为P=2IU0=2(U/R)×0.3=0.6U/R。电子园51单片机学习网 WR3{ f0z~w4V3~
U=5-0.3×2=4.4V
uw+rJ6}6m`-~S0R=22Ω电子园51单片机学习网0R/? n6C5z,Ng
I=U/R=4.4V/22Ω=0.2A
,{(h(lLOZ;y(P0P=0.6×0.2=0.12W=120mW
.uH*J/Y5zHF_ q0电子园51单片机学习网h.N hUPo4m6U
由于功耗P与485芯片的耗散功率接近,所以485芯片经常有损坏的现象。为了解决这个问题,只有降低485芯片的功率损耗。由功耗P的计算公式可知,由于电压一定,只有增大R值,才能减小功耗P。又因为在正常状态下,485芯片的接收端处于差动输入状态,这时,起发送作用的485芯片的输出端除了导线的分布电容,再无其它负载,而在485芯片输出相位切换时刻,可将分布电容看作是AB线短路,则I=U/(2R)。从工程应用的实践经验中得出, 20mA电流环,可使通信数据稳定。
Q6Ip%?y7b3e r \OP0
TN&qG} WB0由I=U/(2R)得电子园51单片机学习网5n,V0O#po3\$D)u ]'A%B
R=U/2I=4.4/(20×2)=0.11kΩ=110Ω
7^jH%QWex0电子园51单片机学习网f#w ]c;l)B
在实际应用中,R选用100Ω电阻,经过这样处理之后, 485芯片再也没有出现损坏的现象。
7A3tJx)m;?D:y'Q0电子园51单片机学习网|$Cu0X;?9^
以上分析是针对主、分机采用同一电源的对于各自独立电源供电的通信网络,485输出口的状态最后仍然等效成如图1(b)所示电路。电子园51单片机学习网 Y#h)ye$jv"Q
T7@A/y7V(`KJ0 在主机通信口由输出转为输入状态时,分机还没有接管通信总线,这时通信线处于悬浮状态,极易拾取噪声。分机与主机采用同组电源时,其噪声幅度与信号幅度接近,如图2(a)所示;当分机采用各自独立电源时,其噪声幅度大于2倍信号幅度,如图2(b)所示。电子园51单片机学习网4jUeer@syi
电子园51单片机学习网/O&pUZdf+i"Si0jg
图 1 | 图 2 |
二、 通信协议的影响电子园51单片机学习网N M/B&^ jl R
在数据传输过程中,每组数据都包含着特殊的意义,这就是通信协议。主、分机之间必须要有协议,这个协议是以通信数据的正确性为前提的,而数据传输的正确与否又完全决定于传输途径,即传输线。也就是说保证传输线状态稳定与通信协议有直接联系。电子园51单片机学习网2L'ELy4P[~f6mp!`
电子园51单片机学习网@flXY.Wu9P
在主从式通信系统中,把数据传输过程划分成几个阶段来分析,如图(3)所示。在图3a中,t0~t1为主机向分机发送命令时间。在t1时刻,主机将差动输出状态转换成输入状态。在图3(b)中,t2之后的时间为分机向主机传送数据阶段,分机由输入状态变成输出状态。由于单片机多机通信大多采用异步串行方式,所以发送数据后的TI置位和接收机RI的置位时间有一段时间差,而且接收机在转换到输出状态前要有一段图3图4数据处理时间,这两段时间加起来不可忽视。在图3(c)中,t1~t2即为这段时间,这时串行通信总线处于悬浮状态,极易拾取空间干扰信号,这时主机与另外的分机可能会同时得到一个无规则的数据,对分机而言可能是错误指令,造成错误反应。为此,在通信协议中加入延时阶段,来解决此问题。如图4所示:在图4(a)中,t1~t3为延时阶段;在图4(b)中t2~t4为分机的延时阶段;图4(c)中,t1~t2为分机的反应时间。延时时间T的大小可按分机接到主机命令后的最长反应时间的2倍来计算。电子园51单片机学习网1ci3^HE4x$j
电子园51单片机学习网\w G/}2YQ+~8j
延时阶段的作用可用图4(c)来分析。在图4(c)中,主机控制数据总线的时间由t1延长到t3,分机的反应时刻为t2,但分机有效数据从延时后的 t4时刻开始,这样在通信总线上有主机和某台分机同时控制的一段时间即t2~t3的时间段。由于主机和分机对总线控制的方向相同,所以不会对这两台机器的硬件造成影响,而且在t1~t2阶段,总线一直处于低阻状态,不会产生噪声,所以总线的抗干扰能力也加强了,提高了通信的稳定性。
图 3 | 图 4 |
三、 通信协议框图
$Dh vyE:QN0通信协议实现的流程图如图5所示。电子园51单片机学习网WL3RZ?"OS?C
&eD#R"Ys'G!On5P R@0
图 5 |
结束语
&}nW:P1x8cPiRy/Z0 多机通信系统通信稳定性还与各个分机的状态有关。无论是软件还是硬件,一旦某台分机出现问题,都可能造成整个系统混乱。故障出现时,有两种可能现象发生:其一是故障分机的485口被固定为输出状态,通信总线硬件电路被钳位,信号无法传输;其二是故障分机的485口被固定为输入状态,在主机呼叫该号分机时,通信线路仍然有悬浮状态,还会出现噪声信号。所以,在系统使用过程中,注意对整个系统的维护,以保证系统的稳定性。该方法已在锦州消防安全仪器总厂的产品JB-TGZ4L-2000型消防报警控制器中得到应用。MES电子园51单片机学习网;m#O7I6Jq{
电子园51单片机学习网5I"K3j]Z6~5\5}!f ?
参考文献
JR7@mMH01 李华主编.MCS-51系列单片机实用接口技术.北京:北京航空航天大学出版社,1997
文章评论(0条评论)
登录后参与讨论