Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1228177
  • 博文数量: 699
  • 博客积分: 6000
  • 博客等级: 准将
  • 技术积分: 4970
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-15 13:45
文章分类

全部博文(699)

文章存档

2011年(1)

2008年(698)

我的朋友

分类:

2008-10-15 13:51:28

在因特网上,TCP/IP每时每刻保证了数据的准确传输。在数据采集领域,如何利用TCP/IP在网络中进行数据传输成为一个炙手可热的话题。在本系统中,笔者利用TCP/IP中的UDP(用户数据报协议)、IP(网络报文协议)、ARP(地址解析协议)及简单的应用层协议成功地实现了单片机的网络互连,既提高了数据传输的速度,又保证了数据传输的正确性,同时也扩展了数据传输的有效半径。

1 TCP/IP协议简介

TCP/IP协议是一套把因特网上的各种系统互连起来的协议组,保证因特网上数据的准确快速传输。参考开放系统互连(OSI)模型,TCP/IP通常采用一种简化的四层模型,分别为:应用层、传输层、网络层、链路层。

(1)应用层

网络应用层要有一个定义清晰的会话过程,如通常所说的Http、Ftp、Telnet等。在本系统中,单片机系统传递来自Ethernet和数据终端的数据,应用层只对大的数据报作打包拆报处理。

(2)传输层

传输层让网络程序通过明确定义的通道及某些特性获取数据,如定义网络连接的端口号等,实现该层协议的传输控制协议TCP和用户数据协议UDP。在本系统中使用UDP数据报协议。

(3)网络层

网络层让信息可以发送到相邻的TCP/IP网络上的任一主机上,IP协议就是该层中传送数据的机制。同时建立网络间的互连,应提供ARP地址解析协议,实现从IP地址到数据链路物理地址的映像。

(4)链路层

由控制同一物理网络上的不同机器间数据传送的底层协议组成,实现这一层协议的协议并属于TCP/IP协议组。在本系统中这部分功能由单片机控制网卡芯片CS8900实现。


单片机主要完成数据的解包打包。当有数据从RJ45过来,单片机对数据报进行分析,如果是ARP(物理地址解析)数据包,则程序转入ARP处理程序(因为在网络上正是ARP协议将IP地址和物理地址相映射)。如果是IP数据包且传输层使用UDR协议,端口正确,则认为数据报正确,数据解包后,将数据部分通过串口输出。反之,如果单片机从串口收到数据,则将数据按照UDP协议格式打包,送入CS8900,由CS8900将数据输出到局域网中。

[1]  

【责编:Luzi】

--------------------next---------------------

阅读(420) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~