嵌入式的LED点阵显示屏的研究与实现 第14页
6·2.1TCp/lp简介[,3][,4][,5]
TCP/PI起源于60年代末美国政府资助的一个分组交换网络研究项目,到
90年代已发展成为计算机之间最常应用的组网形式。TCP/PI参考模型首先提
出了网络分层的概念。它一共分为4层,如图6一7所示。
运运愉层层
网网络层层
桩桩路层层
飞恤。t、盯p和e一面l等
丁CP和UDp
IPI〔’卜IP和IG卜龙P
设务驱动1呈峥及」亥l」一卜
图6一7TCP/工P参考模型
每一层负责不同的功能:
1)链路层,有时也称作数据链路层或网络接口层,通常包括操作系统中
的设备驱动程序和计算机中对应的网络接口卡。它们一起处理与电缆(或其它
任何传输媒介)的物理接口细节。
2)网络层,有时也称作互联网层,处理分组在网络中的活动,例如分组
的选路。在TCP/PI协议族中,网络层协议包括PI协议(网际协议),CIMP协
议(Intemet互联网控制报文协议),以及GIMP协议(htiernet组管理协议)。
3)运输层主要为两台主机上的应用程序提供端到端的通信。在TCP/PI
协议族中,有两个互不相同的传输协议:TCP(传输控制协议)和UDP(用户
数据报协议)。
TCP为两台主机提供高可靠性的数据通信。它所做的工作包括把应用程序
交给它的数据分成合适的小块交给下面的网络层,确认接收到的分组,设置发
送最后确认分组的超时时钟等。由于运输层提供了高可靠性的端到端的通信,
因此应用层可以忽略所有这些细节。而另一方面,UDP则为应用层提供一种
非常简单的服务。它只是把称作数据报的分组从一台主机发送到另一台主机,
但并不保证该数据报能到达另一端。任何必需的可靠性必须由应用层来提供。
4)应用层负责处理特定的应用程序细节。几乎各种不同的TCP/PI实现
都会提供下面这些通用的应用程序:
.Tehiet远程登录。
.FTP文件传输协议。
武汉理工大学硕士学位论文
SMTP简单邮件传送协议。
SNMP简单网络管理协议。
1OM/100M以太网接口电路[‘3][‘4][,5]
硬件的角度看,以太网接口电路主要由MAC控制器和物理层接口
siealL盯er,pHY)两大部分构成。S3C4510B内嵌一个以太网控制器,
体独立接口(MediaInd即endentInteracfe,Mll)和带缓冲DMA接口
effredDMAInterafee,BDI)。可在半双工或全双工模式下提供
100MPbs的以太网接入。在半双工模式下,控制器支持cSM刀cD协议,
工模式下支持EIEE802.3MAC控制层协议。53C4510B内部实际上已包
太网MAC控制,但并未提供物理层接口,因此,需外接一片物理层芯
供以太网的接入通道。
用的单口10M/l00MbpS高速以太网物理层接口器件主要有TRL82ol、
161等,均提供MH接口和传统7线制网络接口,可方便的与53C4510B
以太网物理层接口器件主要功能一般包括:物理编码子层、物理媒体附
绞线物理媒体子层、IOBASE一TX编码/解码器和双绞线媒体访问单元等。
统中,使用RTL8201作为以太网的物理层接口。
燕燕燕燕燕燕燕燕燕燕燕燕燕燕l拿誉参旨昌景景景汤汤汤一几刀l‘0口仲吐...
们们们们们们们们们们们们们们口IT甲此。。
一
一
一
一
一
一
一
一
一
一
一
一
一
一
Tl习,们行盆...
lllllllllllll2222T盆即们门111
心心二D兮兮兮兮兮兮兮兮兮兮兮兮兮兮了皿CNccc
2222222222222lll
.
黑~20111佳佳〔(((((((((((((((((((((((((((R盆OIDL汽汽汽汽汽为为为为为为为为盆义〔2PSt艺DDD4lll
忱忱DIIIIIIIIIIIIIIIIIIIIIIIIIII叹又03OUFL龙XXXXXXXXXlllllllllllll999旧沈C么甘艺艺刃刃
灿灿IL叼叼叼叼叼叼叼叼叼叼叼叼叼叼乙住孙限皿加D劝加加加加加飞飞飞飞飞飞飞888C祀么,ODOOO阅阅
OCCCCCCCCCCCCCCCCCCCCCCCCCCCL受草草里草.。,,,,,
lll名名11互弓左弓牛石斤云云3777
里里里里里里里里里里里里里里里里里里,
膏昌邑邑言器毛毛毛毛毛
:::艺咬咬洲洲巴巴巴当巴巴888
刀刀刀刀刀刀刀刀32)))5555555555555555555555555555555555555
lllllllllllllll
帕帕帕JJJ
{{{一,以一甲甲甲甲甲甲甲甲甲甲甲甲甲甲苦苦Zj创月,」」
~~~日日
]]]]]
图6一8RTL8201应用电路图
于53C4510B片内已有带MH接口的MAC控制器,而TRL8201也提供
武汉理工大学硕士学位论文
了Mll接口,各种信号的定义也很明确,因此Rl,L8201与S3C4510B的连接
比较明显。图6一8为RI,L8201地实际应用电路图。
在图6一8中,信号地发送和接收端应通过网络隔离变压器和RJ45接口接
入传输媒体,其实际应用电路见图6一9。
纵纵纵级级级级级级级TX+++匕匕lll匕11111!555·TX---
66666666666
·
R义十十
。。。。。。。。。
NCCC
NNNNNNNNNNNNNNNCCC
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Rx___
1114444444·NCCC
·
·
·
·
·
NCCC
11111000
777777777777777777777
图6一9RTL8201与网络隔离变压器及RJ45的连接图
6.2.3以太网控制器特殊功能寄存器
53C4510B使用的特殊功能寄存器可分为两大类:
1)BDMA控制与状态寄存器。(BDMAConortlnadStatusRegisters)
2)MAC控制与状态寄存器。
表6一4为BDMA控制与状态寄存器描述。
表6一4DBMA控制与状态寄存器
寄寄存器器偏移地址址操作作功能描述述复位值值
BBBDMAI
,
XCONNN0x900000读/写写BDMA发送控制寄存器器0x0000000000
BBBDMAI屯XCONNN0x900444读/写写BDMA接收控制寄存器器0x0000000000
BBBDMATXPTRRR0x900888读/写写发送帧描述符起始地址寄存器器oxFFFFFFFFFF
BBBDMARXPTRRR0x900CCC读/写写接收帧描述符起始地址寄存器器oxFFFFFFFFFF
BBBDMARXLSZZZ0x901000读/写写接收帧最大尺寸寄存器器未定义
武汉理工大学硕士学位论文
MASTATTT0x901444读/写写BDMA状态寄存器器0x0000000000
X09100一oxgl7CCC只读读CAM内容(32字)))未定义义
MATXBUFFF0x9200一ox92FCCC读/写写BDMA发送缓冲(64字),仅仅未定义义
用用用用用于测试模式寻址址址
MARXBUFFF0x9800一ox98FCCC读/写写BDMA接收缓冲(64字),仅仅未定义义
00000x9900一ox99FCCCCC用于测试模式寻址址址
太网MAC控制器包括一些控制寄存器和状态寄存器,主要有MAC控
器、发送与接收控制寄存器,CAM控制寄存器,一个用于网络管理的
,
以及一些流控寄存器,如表6一5所示。
表6一5MAC控制与状态寄存器
存器器偏移地址址操作作功能描述述复位值值
CONNN0xA00000读/写写MAC控制寄存器器0x0000000000
MCONNN0儿A00444读/写写CAM控制寄存器器0X0000000000
CTXCONNN0XA00888读/写写M沐C发送控制寄存器器0x0000000000
CTXSTATTToxA00CCC读/写写MAC发送状态寄存器器0x0000000000
CRXCONNNoxA01000读/写写MAC接收控制寄存器器0XO000000000
CRXSTATTToxA01444读/写写MAC接收状态寄存器器0X0O00000000
DATAAAoxA01888读/写写站管理数据寄存器器0x0000000000
CONNNoxA0lCCC读/写写站管理控制与地址寄存器器0x0000600000
MENNN0XA02888读/写写CAM使能寄存器器0x0000000000
ISSCNTTToxA03CCC读清除/写写丢包错误计数器器0x00000O0OOO
ZCNTTT0xA04000读读暂停寄存器器0x0000000000
IPZCNTTTO兀A04444读读远程暂停寄存器器0x0000000000
XSTATTT0x904000读读发送控制帧状态寄存器器0x0000000000
Soeket编程
络通信本质是进程间的通信,Socket“套接字”就是网络进程中的DI。
将套接字地址族抽象为统一的BSD套接字接口,这个接口是应用程序的
口,Linux套接字BSD支持下列套接字类型:
武汉理工大学硕士学位论文
l)TCP(TrnasmissionControlprotoeol)传输控制协议,是TCp/Ip体系中的
运输层协议,是面向连接的,因而可提供可靠的,按序传送数据流,它的可靠
是因为它使用三段握手协议来传输数据,并且采用“重发机制”确保数据的正
确发送,接收端收到数据后要发出一个肯定确认,而发送端必须接收到接收端
的确认信息后,否则发送端会重发数据。同时TCP是无错误传递的,有自己的
检错和纠错机制,使用TCP协议的套接字是属于流式套接字。大家熟知的etlnet
就是使用的流式套接字。
2)uDP(userDatagrmaProtocol)用户数据报协议提供无连接的不可靠的服
务,在传送数据之前不需要建立连接。远地主机在接收接收到UDP数据报后,
不需要给出任何应答,这样的话,如果发送一个数据报,可能到达也可能丢失。
如果发送多个包,到达接收端的次序可能是颠倒的。数据报套接字有时候也称
为“无连接套接字”,大家熟悉的TFTP和NFS使用的就是该协议。
大多数情况下,如果只是将数据包发送给给定地址的机器,是不能够确定
到底把数据包发送给机器哪一个进程的,端口号的指定才能够更明确的指明。
适用于通信的用户应用程序可以使用从l到65535的任何一个端口号,并将它
分配给端口。
1.Soeket通信常用API函数
z)intsocket(intdomain,intPyte,intprotoeol)调用返回文件描述符;
2)intbind(intsoekdf,sturetsoekadd几in*myee~addr,intaddrlen)将套接口
绑定到本地计算机的某一个端口,如果只想用ocntiec(t)则无此必要:
3)inteonneet(intsockdf,struetsoekaddr*sery-dadr,intaddrlen)是由客户
端调用连接服务器端;
4)intlisten(intsockdf,intbacklog)在服务器端,如果希望等待一个进入
的连接请求,然后再处理这个连接请求,可以通过首先调用llstneo,然后再调
用aceept()来实现;
5)intaecept(intsockdf,void*addr,int*addrlen),当在远端的客户试图
使用ocnnect()连接服务器使用hestn()正在监听端口时,此连接将会在队列中等
待,直到服务器使用accPe()t处理它。调用accPe()t之后,将会返回一个全新的
套接口文件描述符来处理这个连接。这样,对于同一个连接来说,就有了两个
文件描述符,原先的一个文件描述符还是监听指定的端口,而新的文件描述符
可以用来进行数据传递;
6)intsend(intsoekdf,constvoid*msg,intlen,intflags)和intreev(int
soek允,void*buf,intlen,unsignedintnags)这两个函数是在建立连接后用于
完成发送与接收数据的系统调用;
<< 上一页 [11] [12] [13] [14] [15] [16] 下一页