原创 一种单片机多机通信系统的设计

2009-8-16 00:25 1653 4 4 分类: MCU/ 嵌入式

发布: 2009-4-04 23:59 |  作者: 彭佳文 姚志成 彭佳红 |   来源: 微计算机信息 |  查看: 16次


电子园51单片机学习网_l m lo(m

摘要: 融合单片机技术和计算机网络技术,优化数据包的格式和控制方式以及引入帧检测序列,设计基于AT89S52的单片机网络的单片机多机通信协议;系统网络拓扑结构采用总线型;网络接口电路采用端口转发的形式等进行单片机多机通信系统的设计,系统易于扩展且提高了稳定性。结果表明,此系统设计解决了8位单片机多机通信的问题,实现了客户机与服户机间的通信,以及客户机与客户机间的通信。 电子园51单片机学习网-w0O9JD|L+K|)kp
关键字:单片机;通信协议;数据包;帧;网络接口
1D+Z5Uk"GH0电子园51单片机学习网z,z#^s5EF3fQ


4[t:gk$h @#B(O"cj0Abstract:By combining the technology of Single-chip Microcomputers and networks, optimizing the pattern and the controlling model of data packets, and introducing frame checking sequences, a protocol of multi-computer communication among Single-chip Microcomputers of  the networks based on “AT89S52” is designed. A bus model is adopted by the networks topological structure of the system. To design the system of multi-computer communication among Single-chip Microcomputers, A port transmitting form is adopted by the networks interface circuit. The system is prone to be expanded and the stability of it is advanced. Results indicate that the design makes the problem of multi-computer communication among 8-bit Single-chip Microcomputers work out easily, realizes the communication between a client computer and its server, and realizes the interactive communication among the clients as well.电子园51单片机学习网4ll'o WY)PUX


"B4r1O"_7ot0Keywords: Single-chip Computer;communication protocol; data packet; frame; network interface电子园51单片机学习网QB#_ i I P(S/v

电子园51单片机学习网h8@'x.Ss.Z

 电子园51单片机学习网j#C-Pr4pB

电子园51单片机学习网1Gf.G2G2\ y*I

1  引言

0HaL.M\#MK5wy0

8fRk0z l;e9@(g0随着单片机和计算机技术的不断发展,单片机的应用也从独立的单机向网络发展,由计算机和单片机构成的多机网络系统已成为单片机技术发展的一个方向。二者的结合,充分发挥了单片机在实时数据采集和数据管理上的优点。单片机在计算机的网络通讯与数据传输、工业自动化过程的实时控制和数据处理等都有广泛地应用,已渗透到我们生活的各个领域。许多应用都涉及到单片机多机通信。然而,单片机对网络数据的处理方式不同于通用计算机系统,尤其是有的单片机只提供8位的数据收发接口,这在一定程度上阻碍了单片机在网络方面的应用。因此,采用单片机技术与计算机网络技术相结合的办法,对单片机多机通信系统进行研究,在设计单片机网络的通信协议的基础上,系统网络拓扑结构采用总线型,网络接口电路采用端口转发的形式,实现了8位单片机多机通信。

$|o ?TO f0 电子园51单片机学习网*R ?y2P4Y1t6Xk

2  系统网络协议设计电子园51单片机学习网o*J ^8cE v }m&?O;j

电子园51单片机学习网3W$mK1g$]j9V4y

拟定网络容量为1台服务机和62台客户机,客户机之间可以相互通信。客户机和服务机之间也可以相互通信。设计的协议参考了停止等待协议,数据包参考了IP数据包而设计。       经过综合分析和优化处理,制定如下单片机多机通信协议。电子园51单片机学习网F,Uk W2pr


}"\9s FQJ:R Z0(1)服务机协议电子园51单片机学习网uRV R$~ GbW


3hah$d nqq Pp&w0①服务机按1/384的间隔发送询问数据包;电子园51单片机学习网SQ,Zi$PEw __ z

电子园51单片机学习网l \LY}] t*ydt,|

②将当前询问地址加1,判断,如果大于63则置当前询问地址为1,如果小于1则置当前询问地址为62,转下一步;电子园51单片机学习网}"a3a;['g&u3_1[8x-P3YpT

电子园51单片机学习网o2{H'wd4zx

③向当前询问地址机器发送一询问数据包;电子园51单片机学习网K1C/?r"^~BjX].XO

电子园51单片机学习网Y4G}^+@9O#F y6Ov

④等待一个发送间隔时间;

/ZbP S5P1GPA!y dv0

da Sv_Hx Qt0⑤如果没有收到确认包则转到将当前数据包重发,重发计数器加1,计数器大于2则转向⑥;如果收到确认包转到⑦;

1S,ozG.{}3g0

3rU)Y'h,eKl|i0⑥设置发送失败标记,重发计数器清0,转到②;

!nj_i`;e b0 电子园51单片机学习网-e ]8P(C H%N:p8i*l

⑦设置发送成功标记,重发计数器清0,转到⑧;

,Ju+Y}B1{ N,jO0

!uP+Z)e:@hwd0⑧查看被询问客户机是否有数据要发送,有则分配总线使用权和时间片,转到⑨,否则转到②;电子园51单片机学习网)J?9],iPY8t

电子园51单片机学习网1Lv;_%TY b

⑨等待被询问客户机的发送结束数据包,如果收到转到②。在一个时间片(1/384s)内,没有收到,视为超时。服务机收回总线使用权,转到②。电子园51单片机学习网 i"iq8K&v

电子园51单片机学习网Y uk q8]:Pf

(2)客户机协议

c(U KI2r+gfMqY0 电子园51单片机学习网UX ~u tJ*S3e

①接收属于本机的数据包;

s8k g XX ][,f0W0 电子园51单片机学习网]2_-O5m1U @9r

②如果是询问数据包,检查本机是否有数据要发送,如果有,则发送“有数据发送信息”到服务机,并捎带确认转到③,否则发送“没有数据发送信息”到服务机,并捎带确认,转到①;其它类型数据包不处理,转到①;

X&c dG6]{g0

$`$_2e @6A'~S0③等待网络资源分配数据包,收到则发送确认包,转到⑤;超时,停止等待转到①;

K0` r1c n]0

-d0T k/Q7iOv0④等待上一数据包的确认,收到则转到⑤,否则转到⑦;电子园51单片机学习网!v5z-adOu7SS|~


onEH+d*A'\0⑤检查是否还有数据要发送,有则发送数据包转到⑥;否则发送“结束发送信息”到服务机,转到①。

'jR-P&m)B&I eG0

tm/V5zE*d0⑥检查是否超时,如果超时结束发送转到①,否则转到④。

-oE-L4v;~:g0

[j]2K2k{ ^#j0⑦重发,是否超过两次,是则当前发送失败,转到⑤,否则转到④。电子园51单片机学习网A1Q*vWe

电子园51单片机学习网GaDQ4GW^e)a&AP

因此,每发一数据包都会请求对方的确认,如果没有确认,则会再重发一次,超过两次则被视为对方不可达,发送失败;并且在被询问客户机有数据发送时,如果总线空闲,服务机将分配其使用时间片,在这个时间片内,如果数据未发送完成,服务机将强行收回。能发送完成,客户机要发送结束数据包,归还总线使用权。

Tn4n,TYlB x0

;zB6A)~ hv03  系统网络拓扑设计

UykG @,Q+xN0

U/S(P}-e,_0选用总线型网络拓扑结构,各站直接连在总线上,由服务机统一管理网络总线,分配网络资源。使用类似于令牌总线网的协议,由服务机轮询每一客户机是否有数据发送,如果有分配发送时间,移交总线使用权,否则询问下一客户机;其中接口电路会将所接收到信号中继,并转发。因此网络中任意一台机器所发送的数据对其它机器都是可见的,并且在一定程度上保证了信号的可靠性。电子园51单片机学习网1x!e"B*q*obS L|/o$W

电子园51单片机学习网i:v-g$P)v.d mZA(C

系统网络拓扑设计如下图所示:电子园51单片机学习网9`(zu#I[


/i6EJg6r;p!M06136_200904050001031ZPCP.jpg

,? W+L8Cn@0

   图1系统网络拓扑设计电子园51单片机学习网;A/P\;T5p~A


Q0i?4j#Pj^2q+d0 电子园51单片机学习网 Fp#g0Fi0U


Y5PzH*d04  网络接口电路的功能与设计电子园51单片机学习网4o9T'C2~~"\U O mC

电子园51单片机学习网I4_2o yJ/n-A:l/H

(1)网络接口电路的功能电子园51单片机学习网Ork+]&z4b0}A+m~


&P5^'i6[D?0ok0网络接口电路完成的主要功能如下:①完成网络数据元的接收;②对接收到的数据元转发给其它端口;③多端口机制,端口间相互转发;④提交收到的数据元;⑤中继收到的数据元;⑥提供网络状态信号;⑦各端口之间同构,使用交叉线。

f2iU6q.\jS0 电子园51单片机学习网+Id'Z*V,P'Lq7l

(2)网络接口电路的设计

K5?a1ub'p!r0 电子园51单片机学习网5v6q| @l#_4e

为实现上述功能要求,网络接口电路设计时一共采用了四片74HC245芯片,共同承担数据的收发工作,其中每一块芯片对应一个端口。在外表现为三个端口,这是因为有一个端口被本机占用,电路已布置在线路板上。各端口之间用交叉线连接,当检测到收线上有信号时,芯片开始启动工作,将信号分成三路中继出来,一路发给单片机,其它两种发给另外的两个端口。在收方的收收线上如果检测到同样的信号,则进行同样的操作。当单片机向外界发送数据时,就启动对应于单片机收发端口上的芯片,将信号中继后发送给另外的三个端口,并随时检测收线信号的变化,一旦检测到电平信号由高倒低的变化一次,即说明有数据需要接收,接收完后将产生一中断信号,启动处理程序进行处理。

Juazq#V:@iS0 电子园51单片机学习网aRGc%ba.GP

网络接口电路中设计了网络状态信号BUS,当各芯片都没有工作时,表示网络中没有数据传输,这时BUS经非门电路取反变成低电平,与单片机二号中断引脚相连,单片机可以通过这一引脚撑握网络状态,实现数据包的发送。电子园51单片机学习网6Ce&B7^$h+lz}A


9nqx+U!@:LF8K J0@0网络接口电路中还设计了指标信号,当收到数据时信号便置高,这时接在信号上的LED发光管将会发光,以表示收到数据。

)d9M_4Rg#E0

dL|7w`5Bq05   客户机与服务机电路设计

qbOT@NIOT!D4]0

'r(xGEK,E-r1YJ@0系统中有客户机和服务机两种不同的电路。将客户机电路和服务机电路整合在一个电路板上,即两种电路用同一块电路板表现出来。电子园51单片机学习网`p^-m u"]JK


"yc#B2htX0对于客户机,客户不需要部门控制电路,但其需要编址,故需要地址获取电路。

$Ce6PANW n0

O T7{-u:|3k1Z0对于服务机,它不需要编址,统一固定为65这一地址,故不需要地址获取这一部分电路。服务机担负着整个网络的监管与轮询工作。

?iz ` zkLg0 电子园51单片机学习网9t]+Hk FEI,`

其它电路客户机与服务机均同构,所以不需要做任何修改。

*A~:F]LL0 电子园51单片机学习网{*jW8QoEB5y

电路板上,采取不插器件的方式实现两种不同构的电路在同一电路板上实现,大大地压缩开发成本。

A iA6Q!M8|%_G0

kK@f E+J06  系统功能模块图电子园51单片机学习网}+TC D'Z


(1) 系统功能:


服务器部分

电子园51单片机学习网F sUv3\j-S2pW

① 完成网络的轮询,每隔一定时间向网络中的机器发出询问数据包。

2``n'Z{ Z0

+_&W+P h;C/n?B0② 读取ADC数据,显示当前环境温度电子园51单片机学习网"e0a0mB*O9l!`"N

电子园51单片机学习网.I R7S i,Y

③ 控制一个调风阀,显示电机角度数据

RM'B;pZH8s0W9i~0

I0ZAQ%`y0④ 扫描键盘,提供按键控制

Q/E@wFoP(kO ?0

/e&h/e4G8D+BNI0⑤ 从网络中收集调风阀信息,智能控制风机的开启

nZ&w;z7@@O0

'SQCuk6` rYlr0⑥ 控制本实验室照明电路的开、关

X"Is4`5wQ0 电子园51单片机学习网qxfI2YJ)R

⑦ 能够接管网络中任意一台客户机

)f ^f:ba*cGeA0 电子园51单片机学习网cLi)`2H1@P0H9d`

客户机部分电子园51单片机学习网%}3ui}n%?

电子园51单片机学习网&i5MVK@)j|k;MR B

① 接收服务机的轮询,发送确认数据包电子园51单片机学习网8u]a'A7q(RIJc*YO

电子园51单片机学习网C\'F6{\b'@T

② 读取ADC数据,显示当前环境温度

] J1@+e U#F.G0 电子园51单片机学习网"K9t9A)qt+X7e

③ 控制一个调风阀,显示电机角度数据电子园51单片机学习网m5O Z7^&I7xoS.g

电子园51单片机学习网A.M5tg%v

④ 扫描键盘,提供按键控制电子园51单片机学习网X+g)?C j ~p7v

电子园51单片机学习网@2f!{"u+L7}4l1\

⑤ 读取本机地址电子园51单片机学习网.nw0JiQN:fsB7u


6N3l,oP!A/V-y8W8y K x0⑥ 接收来自服务器的管理操作

8]@ MON;n0

(2)功能划分:


:Mb \_SG)U0软件系统采用模块化的方式,每个设备编写一个驱动程序。驱动程序负责驱动其所控制的设备。并向其它程序提供接口,方便其它程序调用,控制设备。电子园51单片机学习网0W0i(Ek1fF8^4{


r8|i,D NC0各个驱动功能划分如下:

dl X[@7AtU/m0

%~ mE'T&wnw B0① 数码管驱动程序:驱动数据管显示,按指定方式显示数据。电子园51单片机学习网)b*M2H%^G)Q


4v8GTs1{0② 键盘驱动程序:动态扫描键盘,判别按键,并避开电路毛刺。电子园51单片机学习网aF J_G^mm

电子园51单片机学习网'IxO5ub$hlix

③ 蜂鸣器驱动程序:驱动蜂鸣器安指定方式发声。电子园51单片机学习网7Nc9V.R8B+O x I


6P ^#SZD+B%D0④ ADC驱动程序:读取模数转换器数据,并转换为温度数值。

6b R%V0e?1D:[Fkz0

"g.L?2Q&aASl0⑤ 串口驱动程序:收发数据包,过滤非本机数据包电子园51单片机学习网9U T p&^8[C1N


;q-?&_c"u+} zQ0其中还有一个轮询模块,它在时钟的驱动下按一定间隔时间向网络中各台客户机发送询问数据包。如果两次没有收到回应,则视发送数据包失败。并能够向被接管的客户机发送管理数据包。同样也需要确认,超过两次则视为失败。

\0yCNl%s0 电子园51单片机学习网T @L'G#Oy)c*]2`Oe

系统功能模块图如图2所示。电子园51单片机学习网 toA4|i"D0|

电子园51单片机学习网fWkgg@

6136_2009040500010329mcz.jpg

xW4l3Y/u-[Jie-m0 电子园51单片机学习网H Yt&w2h&uk#x

图2 系统功能模块图电子园51单片机学习网l;Oua(~vt K+F&[


\vw3K Mg0?\ X0由图可知,所有的驱动程序都挂靠在时钟中断上,由时钟中断按一定的频率调用这些驱动程序。

EF(w c6is!D0

P,Mv-o k'kC07 小结

gMMj9[T9C0 电子园51单片机学习网S6m)tj:g

    系统设计了一个基于网络控制和管理的控制系统。它将计算机机网络技术和单片机技术进行融合,网络协议设计参考计算机网络中的停止等待协议和TCP/IP协议,但为了更好的适应于单片机处理,优化了数据包的格式和控制方式,大大提高了处理速度和效率。同时,引入帧检测序列,提供数据包的检测机制,提高了网络的可靠性。系统网络拓扑结构采用总线型,网络接口电路采用端口转发的形式,便于扩展且提高了稳定性。此系统设计功能齐全可以通过服务器控制整个网络的所有客户机,监视所有客户机运行情况;系统操作简单,具有一定的经济意义和实用价值。

e QUdS0

/` ^ Mk8\%w,Tt0参考文献电子园51单片机学习网W CRDUq(T3z[8U#K


3w9h~%m } ]d0x&\P0[1] (美)Christa Anderson.Mark Minasi.Mastering Local Area Networks [M] .出版社Sybex ,1999.电子园51单片机学习网A&aNy a-p c


U v8MgK,Z0[2]  江晓安.董秀峰.模拟电子技术[M].西安电子科技大学出版社,2002.

1c&H7{:LbBPK+J0 电子园51单片机学习网$gM*Jb l:f

[3]  张永瑞.杨林耀.张雅兰.电路分析基础[M].西安电子科技大学出版社,2001.

:X)L~`y0

3Z!ql] u;gq1h:G0[4]  Barry B.Brey.Programming the 80286,80386,80486,and Pentium-Based Personal Computer[M].电子工业出版社,1998.电子园51单片机学习网4Kap8]O1PyO

电子园51单片机学习网!K.\%}W0kV

[5]  汤子瀛.哲风屏.汤小丹.计算机操作系统[M].西安电子科技大学出版社,1996.

]S3Q mE;~8\Hh0 电子园51单片机学习网J^+`E7r

[6]  江晓安.董秀峰.杨颂华.数字电子技术[M].西安电子科技大学出版社,2002.电子园51单片机学习网5n hW9U)H!k9y

电子园51单片机学习网?dI0kx9B-O|5a0j9Z

[7]  周明德.微型计算机系统原理及应用[M].清华大学出版社,1998.电子园51单片机学习网Z+O*~@u}/F_


b MK'i1Evj0[8]  林雪梅.彭佳红.姚志成.单片机多机通信协议的设计[J] .微计算机信息,2006.2-2:24-26电子园51单片机学习网$f;Lt tV+{%o(Y

电子园51单片机学习网X_6K$R(Vu!G[9qP9]

[9]  张鲁国.智能卡操作系统中存储管理设计[J] .微计算机信息,2005,8-3:18-19电子园51单片机学习网+pP$Qi7K3`7[

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
4
关闭 站长推荐上一条 /3 下一条