|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
$ x; I( L4 K5 R$ `7 ]7 G
摘要:随着互联网的发展,TCPIP协议逐步应用于智能设备。文章通过研兖TCP/IP协议规范,详细介绍了在通用的.
& @$ i% i6 j; s/ ~( J4 j* d, S51系列单片机上实现基本的TCP/IP协议的方法。该设计具有速度快、占用系统资源少、接口方便的特点。, m/ C" u5 t, p+ X
' e1 d' ]7 d% {. n) Y) K# ~
5 W7 U' K3 h2 h; G关键词: TCP/IP 协议,单片机,嵌入式系统,以太网$ }6 L) D {# c1 ~" K$ k
5 s9 Q" x! x1 L+ q( z1引言
& O' l) n* ^( w7 o( W5 M- T1 x随着Internet 和嵌人式系统的发展,以太网
! x d' s: y$ ?+ B1 p! v% g(Ethernet)得到迅猛的发展,正逐步进人仪器仪表、$ [0 ?; ^& I# v* Z7 ]
工控以及智能家电领域。TCP/IP作为以太网互连的
8 R& m( u. g+ D1 j' }( C5 y! O' J最广泛的协议,其开放性和兼容性推动了以太网的
) b% n6 p. |% ~5 x1 e应用。但TCP/IP协议是一个庞大的协议族,对系统( M) K6 H$ C2 Q6 b y' g
资源消耗比较大,如何在单片机系统上实现TCP/IP# E( H' o$ B; W! M! F; w, |1 i
成为以太网应用于单片机系统的难点。8 \8 Y7 k( M7 w
本文在研究TCP/IP协议规范及参考uclinux、- c. \% R* n6 G3 H- o. @7 I5 [
lwip uip等TCP/IP协议实现的基础上,设计了针对
! S9 W% K" k' y+ z) E8位单片机的TCP/IP协议栈。该设计不依赖于操作
: d3 Z6 q4 k! s, d# I" a系统,软件完全独立,并具有占用资源少、易于集# @/ q! E. I3 [/ E
成、可裁减等优点。底层实现UDP、TCP数据传送,1 w0 |7 `2 B. q) t* G
应用层实现HTTP Server。
& ?8 s* \) B4 A) }, S* f* x% J2 TCP/IP 协议7 \2 S& C" d, S3 y
TCP/IP协议是一个包含了不同层次的多个协
% C# O; Y r# |6 A议的协议族。尽管通常称该协议族为TCP/TP,但" q8 z* D' _7 l+ D! X3 A _7 T
TCP和IP只是其中的两种协议而已。通常认为是一 \! E7 I2 P0 v4 `7 @9 }, }* o! M+ b
个四层协议系统,结构如图1所示。图中所列的只
% k% W; a6 w* |是最基本的协议,TCP/IP族还含有许多其他的协
) W" L3 V. a7 _议.具体选择哪--些要看具体应用。下面简要介绍
9 J' B2 C# g1 Q$ M3 j7 t各协议的功能。
; P: E, }% \) e( C% a* b0 C(1)地址解析协议(ARP)和逆地址解析协议(RARP): R! W0 C4 _% j1 \6 z; Z
IP地址只在TCP/IP下才有意义,硬件是通过8 P* |0 l4 G6 A
物理地址来标识节点的。ARP为IP地址到对应的3 @& C, Q, V* V1 B) [; ^+ Q4 j
硬件地址之间提供动态映射,是TCP/IP的基础。7 Y8 z9 f* ]3 A' ], d2 T% F
RARP用于动态IP地址请求,主要用于无盘工作站! u* {/ V& Y( e" s2 h9 d
及动态地址分配等的应用。由于嵌入式TCP/IP应用: W* M+ d6 B- m5 k+ Y2 E
一般都采用固定IP地址,所以这里不实现RARP。" L" k# Q' s- T% a- S
(2)控制报文协议(ICMP)/ x1 J' g* ?5 O2 l ?6 H
ICMP经常被认为是IP层的-一个组成部分,它% r# w4 M; u/ ?* }2 z4 v. ?- s! H F
被包含在IP数据报内部传输,主要传递差错报文以
; i* k O* t7 X' B" p* F; k及其它一些信息。虽然ICMP可以提供很好的网路
3 v. D: a& \6 q* i0 i状态报告,由于嵌人式应用系统简单,一般不提供( v& G# Q" N7 ~
这方面的应用。唯一需要应用该协议的地方是对
9 W) Q& {+ w8 u$ k: x9 M( I, ]PING的响应。PINC是一种常用的检查目标IP节点
$ @/ x3 z7 F) X0 S% l是否连通以及连通质量的简单命令。通过对echo类
; W. A2 F/ m4 c% \2 E型的ICMP包的正确响应,可以表明系统连接正常。
, Y6 X0 W$ |, ?0 Y# I& k(3) Intermet组管理协议(ICMP)
, V. `6 R7 Y7 C. e, A, C" H5 ZIGMP用来把一个UDP数据报组播到多个主
. b( R7 X4 j$ Z& w机。这里考虑到上层协议--般不实现组播以及网络
8 B* s; q5 f5 b1 \, w$ L, m0 m2 U8 o1 g* \1 z- j. O
( ? M5 @5 L* H3 h( g' I1 z4 h' U1 S$ P' o+ r# E
附件下载:0 g! v6 Z! X9 d9 I1 {6 Z' J/ i
|
|