首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

单片机多机通信网络改进及数据通信容错技术

单片机多机通信网络改进及数据通信容错技术

在目前单片机组成的嵌入式控制系统中,所谓的多机通信是指上位机与下位机之间的主从模式的通信,一个单片机系统为主机, n 个应用系统为从机,从机之间不能进行通信. 目前单片机通信存在通信网络模式简单,数据的通信速率低,没有容错技术等缺点. 电子园51单片机学习网UrB j1GY
电子园51单片机学习网 D$BQEreSI1j
    MCS-51 单片机串行接口SBUF ,由SCON 控制为用于多机通信的工作方式2 ,3. 当SM2 = 1 ,出现两种情况:接收到第9 位数据为1 时,数据才装入SBUF ,并置RI = 1 ,向CPU 发出中断请求;如果接收到第9 位数据为0 时,则不发生中断,信息被丢失. 若SM2 = 0 ,则接收到的第9 位数据无论是0 还是1 ,都产生RI = 1 中断标志,接收到的数据装入SBUF 中. 多机通信过程安排如下:
7G(amIT+jZ*t0 电子园51单片机学习网;@m HY8y7EX0m

D"? R2BI t01) 使所有的从机SM2 = 1 ,处于接收地址状态;
+|._^-l[g3[%wD0
2?5AV |:J\LT1U"r R0电子园51单片机学习网H ea0ne,l'd u pqVA
2) 主机发一帧地址信息,从机接收到地址帧后,将与本从机的地址进行比较. 是本机,使SM2 = 0 ,地址不符合的从机,保持SM2 = 1 ,退出本次通信;
2P R7}&a(i A._'ST5B:J-j0 电子园51单片机学习网q$e"t giU
电子园51单片机学习网Tlst?Y7T8fqVc
3) 主机发送的数据或命令,以第九位为0 表示. 主从模式的多机通信的拓扑结构,主机的RXD 与所有从机的TXD 端相连,而主机的TXD 与所有的从机的RXD 端连接,如图1 所示.
UK+FJ6d Q{$[hG0
[.T{L2?-m Q$P0电子园51单片机学习网-W S0L4@^1X!A4B5YZ
电子园51单片机学习网 Jr~5EKK+e-]
图1  主从多机通信拓扑结构电子园51单片机学习网aVG,V il/{0H)E

Z-m3E3cqL01  网络结构的改进电子园51单片机学习网g J*Pw4}Q/@ I

,q*KH-n8Yc"[xO0电子园51单片机学习网rc'r3NVl
    主从模式的多机通信在拓扑结构中,主机只有一个且固定不变,从机是多个,它们之间不能通信.在新的多机通信网络中,没有真正的主机和从机之分,所有的结点都是平权的. 总线也是两条,一根作为主机发送信息,从机接收;另一根是从机发送信息,主机接收. 每一个结点的机器既是从机,又是潜在的主机. 非主动通信状态时,为从机状态. 需要通信时,改变连线的接法,并使自己变为主机状态. 主机状态:它的TXD 端与所有从机的RXD 连接,它的RXD 与所有从机的TXD 连接,以便发送从机地址,与从机建立通信联系,完成交流信息的目的. 本次通信完毕后,自动降为从机状态,并且线路的连接方式也变成从机连接. 从机状态:它的TXD 与所有从机的TXD 连载一条总线上,连接到主机的RXD 端,它的RXD 连接到主机的TXD.其拓扑结构如图2 所示.
j3Dg6gQb!`Z5ae0
U5i:uY`d9W1Hs0图2  多机串行通信拓扑结构电子园51单片机学习网z*OZI0be I
电子园51单片机学习网 z9I7y ?BEXw
电子园51单片机学习网U+{#M+[4k)}D
说明:1) 任一个结点机器,不主动通信时,处于从机状态,要求通信时,跃迁为主机状态. 行使主机通信形式和权利;电子园51单片机学习网2l \b]+fj

g-kwB|'B:?"rg0
9` Bp \L%``0N}'u02) 结点机器的TXD ,RXD 与总线的连接有两种方式:主机连接、从机连接. 由机器的状态来决定,也就是说,连接方式与机器的状态相适应,受机器状态的控制.
hGm?S}j6xc0 电子园51单片机学习网4r*`m9P [l
电子园51单片机学习网L/Mhf Um
    逻辑电路接口式连接:用三态门74HC126. 非门用74HC04 实现连接转换功能. 用P1. 0 控制三态门,当P1. 0 = 0 时,其TXD 接主机的RXD ,它的RXD 接主机的TXD ,结点成为从机状态;当P1. 0 = 1 时,其TXD 连接所有从机的RXD ,它的RXD 连接所有从机TXD ,该结点成为主机状态. 连接变换电路图如图3 所示.电子园51单片机学习网W;MK:qV uu n

/]-?S$_'}b/E0图3  由三态门构成多机串行通信智能连接电路
._N6Dk*Fr K%u{0 电子园51单片机学习网wm r K1@YgP,f.C

:O6M iNQ0多机通信协议: 1) 在初始化或复位时,每个结点都使P1. 0 = 0 ,SM2 = 1 ,处于只接收地址帧(串行帧的第9 位为1) ,对数据帧(串行口的第9 位为0) 则不做响应的从机状态. 电子园51单片机学习网:OI fpq_,r3NX

7I;m;B_ ]5|#|'Z/h0
~ H7`j uB`_ [b,P1a02) 需要通信的结点机器,检测到总线空时,置SM2 = 0 ,P1. 0 = 1 ,跃迁为主机状态,发送一个地址帧,其中含8 位地址数据,第9 位为标志位. 电子园51单片机学习网Feu-KX0XP

S f"Q g4V[$n U0电子园51单片机学习网:u8K$@,H+e8b/[
3) 当从机接收到主机发来的地址帧后,将所接收的地址与本机地址相比较,若地址与本机地址相符,便使SM2 = 0 ,以便接收主机后发来的数据P命令,对于地址不相符合的从机,仍保持SM2 = 1 状态,故不能接收主机随后发来的数据信息. 电子园51单片机学习网 Z8nWG G
电子园51单片机学习网|7f+L/E#n1x2QU
电子园51单片机学习网 dB~B q1Q F'o
4) 主机发送数据或控制指令,其数据帧第9 位置0 ,表示发送的是数据.
+f5_;C(Ye:X u ]y0 电子园51单片机学习网N-f YK6B6^2H9LJ

7oRS$rQ8x.wV A05) 当主机改为与另外从机联系时,可再发出地址帧来寻找其它从机. 而先前被寻址过的从机在分析出主机是对其它从机寻址时,恢复其SM2 = 1 ,等待主机的再一次寻址. 主机也可以通过发送一个复位指令,使所有从机处于等待寻址状态.
%Z_ ]7J#C Dee2N7@{R0 电子园51单片机学习网&` H-k V2|w!\

b?%x5J4A"r7F06) 通信结束后,置P1. 0 为0 ,SM2 位为1 ,退回到从机状态.电子园51单片机学习网'Ls5us!qpg-}

j HA4K t*}%O0Su02  RS485 总线改善信道电子园51单片机学习网8fyaNx%G

,wlI(l.faI;B%G0
5_&qu:T v}RvDZ0    RS485 串行接口和传统的RS232 串行接口相比有以下特点:RS485 的电气特性:逻辑“1”以两线间的电压差为+ 2~ + 6 V 表示,逻辑“0”以两线间的电压差为- 2~ - 6 V 表示. 接口信号电平比RS232C 低. 不易损坏接口电路的芯片,且该电平信号与TTL电平兼容,可方便的TTL 电路连接. RS485 的数据最高传输速率为10Mbps. RS485 接口是采用平衡驱动器、差分接收器的组合,抗共模干扰能力强,即抗噪声干扰性好.RS485 接口的最大传输距离为1219.5 m(标准值) ,实际上可达3000 m. RS485 接口在总线上允许连接多达128 个接收器,即具有多站能力,这样用户利用单一的RS485 接口方便的建立起设备网络. 因RS485 接口具有上述优点,使其得到广泛的应用.电子园51单片机学习网GCHv7co4uEr2p@
电子园51单片机学习网p?8va~/Y*P
电子园51单片机学习网\[#Fv7X6P%T9j,y"ra&c
    半双工通信:采用一对平衡差分信号线,R 为TTL/CMOS 接收端;RE 为其使能端,低电平有效. D 为TTL/CMOS 的发送端,DE为其使能端,高电平有效. A 、B 为一对平衡线,RS485 通过它来接收和发送信号. 每个端口的RS485 收发器的接收使能端接低电平,保证端RS485 总线上的数据都能通过RS485 的接收驱动器,送到每个终端的微处理器的串行输入口;RS485 收发器的发送使能端由每个终端的并行口控制,每个终端在需要发送数据时,才使发送使能拉高,将数据通过RS485 的发送驱动器,送到RS485总线上,如图4 所示.
"C,S0Xf-Rp6D4C0 电子园51单片机学习网/Tc c Jq:d
图4  基于RS - 485 总线的单片机多机通信原理图
UpF Z#U0 电子园51单片机学习网]ogqf7xp

UKg5qy0 RS485 实现全双工通信:采用两对平衡差分信号线, R 为TTL/CMOS 接收端;RE为其使能端,低电平有效. D 为TTL/CMOS的发送端,DE 为其使能端,高电平有效. A 、B 为一对平衡线,RS485 通过它来接收和发送信号. 总线采用RS - 485 模式,用MAX88 完成收发功能. 如距离较远时,在中途进行接收并放大.多机通信网络电路如图5 所示.电子园51单片机学习网7hz;x|T2jHK
电子园51单片机学习网_ ?P#Zm'tus-y

'jgQbGg }4L+W0电子园51单片机学习网*p:OR-H L-I
图5  基于RS - 485 总线的单片机多机通信原理图
k&K H+{Kq'`0
xvt h+k Ffp^;X0电子园51单片机学习网+tqQ.bm ?
    多机竞争总线的问题:在通信系统中,有多个单片机同时要求通信时,就出现多主争用总线问题. 解决的方法: 电子园51单片机学习网N|)D T4c
电子园51单片机学习网+K O)_ r+j[$qw X

xeX`Jl s;A6m,O%t-]01) 通信过程中,设有启始和结束标志符,如果通信正在进行,除正在通信的结点外,其它所有的结点置为从机状态;
PV xv#p;K0GUx%\a0
9`u'rOCV%af0
N,m\;S+p `(I02) 在测量总线是空状态之后,才允许请求通信的机器由从机状态升为主机状态;
0ZM~Q&W/z,q0 电子园51单片机学习网#UcdAVEV

_|0I jcGU,d]~9s03) 联络从机过程中,五次不成,就退出本次通信. 避免无效通信占用过长的时间,影响通信质量.
;u,e;N\ ^~-R0
@ UYg7K5es03  容错技术电子园51单片机学习网Y6c.g-m-Fh$h v
电子园51单片机学习网H*K-gVq#z+z
电子园51单片机学习网 Q:C Q_L
    在单片机组成的嵌入式控制系统中,利用单片机的串行口,可实现单机对单机的通信、或者实现一个主机与多台从机的通信,利用MODEN 实现远距离的信息传输. 基于RS485 总线可实现网络化自由通信. 但单片机多用在工业控制现场,其通信受到各种各样的干扰信号的干扰,由于单片机的内存及操作系统不允许装载复杂的通信容错程序. 针对单片机通信的特点,介绍一种简单可行的差错纠错的编码方法:电子园51单片机学习网.s.f7yvj D@
电子园51单片机学习网RS+{"v_Z%y(y[

8z~%[5z~}fv0    单片机串行通信以8 位数据或九位,一个启始位,一个停止位的通信模型. 通信数据量不会太大等特点. 采用混合纠错检错的方法. 首先采用Hamming(7 ,4) 模型编码. 即在7 位编码中,其中4 位是有效数据,3 位是冗余校验码. 设D3 D2 D1 D0 是4 位有效数据, P2 P1 P0 是3 位校验码,将D3 D2 D1 D0 分成三组, P2 , P1 , P0 分别是3 组的校验位, G2 G1 G0 为检错信息,当G2 G1 G0 = 000时,传送没有错. G2 G1 G0 的值就指明7 位编码中第i 位传错,对该位求反,即可完成纠错. (7 ,4) 校验码的格式,见表1 :
Ov8Pk)XT0 电子园51单片机学习网F#Dh'Kn@6k x

\'jpDT.Y0D3 D2 D1 P2 D0 P1 P0 . 7 位(7 ,4) D3 D2 D1 P2 D0 P1 P0 校验码分成三组:电子园51单片机学习网t"o+lCs"W3f
第一组:检错信息G0 ,含有: D3 、D1 、D0 、P0 ,其中: P0 = D3?D1?D0 , G0 = P0?D3?D1?D0 .电子园51单片机学习网L w4s9c T]&n
第二组:检错信息G1 ,含有: D3 、D2 、D0 、P1 ,其中: P1 = D3?D2?D0 , G1 = P1?D3?D2?D0 .电子园51单片机学习网!{9~8Ywa~b\
第三组:检错信息G2 ,含有: D3 、D2 、D1 、P2 ,其中: P2 = D3?D2?D1 , G2 = P2?D3?D2?D1 .电子园51单片机学习网4UD0k?JV.U-[
 单片机在发送数据前,先按汉明编码格式,把要发送的数据变成汉明码,即8 位编码中,有4 位数据. 所以一个字节有效数据分成低4 位、高4 位,然后编成汉明码后,发送到缩机. 接收机收到数据后,对数据进行差错和纠错. 即首先计算出G2 G1 G0 检错信息字的值,由信息检错字知道那一位出错,对该位求反,即可完全纠错. 错位与信息字G2 G1 G0 的关系见表2.
kz)M8_f L#\ V Pm0电子园51单片机学习网!Ru7v'n4T-l*i4K:p

4o;^:dv"N0
2Z&g(w$O&BgW0

表1


B7
B6
B5
B4
B3
B2
B1
B0


D3
D2
D1
P2
D0
P1
P0电子园51单片机学习网p!p/rb7{/k [x

e"i K6g/Ig ?9l0    电子园51单片机学习网OaT1Pu:l^-a O
  
*K8yc&A$D lA0 电子园51单片机学习网Rni5E? ]_#T

表2  纠错信息


G2 G1 G0
出错位
求反纠错

000
正确


001
P0
-P0

010
P1
-P1

011
D0
-D0

100
P2
-P2

101
D1
-D1

110
D2
-D2

111
D3
-D3电子园51单片机学习网]+{m'KS

'O4m'm#B BA[0     电子园51单片机学习网 B ^,Q^|W
    汉明校验码可以查出信息中的一位错,并能知道是那位错,可以纠正. 如果两位出错,仅靠汉明码不能进行差错和纠错. 利用第八位作为奇偶验位,可以查出两位错,但不能纠错.
7{3h8bsQ;ZF9h&eKF0 电子园51单片机学习网b|4y5Gw

] o9Z$fLPj`0    对单片机通信结点进行改进,适合快速通信的RS - 485 网络技术. 并用汉明校验码使单片机数据通信具有容错功能,提高单片机通信数据传输速率,减少误码率. 使单片机有望成为各种网络的普通的网络结点.电子园51单片机学习网d]2p5r0W
返回列表