>
首页 » 业界动态 » 嵌入式TCP/IP协议单片机技术在网络通信中的应用

嵌入式TCP/IP协议单片机技术在网络通信中的应用

作者:  时间:2007-06-28 17:30  来源:
摘要:介绍了嵌入式tcp/ip协议单片机在网络通信中的数据传输技术。将tcp/ip协议嵌入式单片机中,借助网卡芯片cs8900实现了单片机在局域网内和通过局域网在因特网上的数据传输。用户终端以单片机系统板为媒介,通过网络与远程数据终端实现数据通信。

关键词:tcp/ip协议 单片机 因特网 局域网 网卡芯片

在因特网上,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实现。



2 硬件框图

如图1所示,系统提供rj45接口连接ethernet网络,并且提供一个串口给用户使用。系统板可以将从ethernet上过来的ip数据报解包后送给串口,也可将从串口过来的数据封装为ip包送到局域网中。外部ram使用61c1024(128kb),从而为数据处理提供了很大的缓存;使用e2prom——x25045,既可以作为看门狗使用,也可以将ip地址、网卡物理地址和其他参数保存在里面。

cs8900芯片是cirrus logic公司生产的一种局域网处理芯片,它的封装是100-pin tqfp,内部集成了在片ram、10base-t收发滤波器,并且提供8位和16位两种接口,本文只介绍它的8位模式。

ne103是一种脉冲变压器,在cs8900的前端对网络信号进行脉冲波形变换。

3 工作原理

3.1 cs8900的工作原理

cs8900与单片机按照8位方式连接,网卡芯片复位后默认工作方式为i/o连接,基址是300h,下面对它的几个主要工作寄存器进行介绍(寄存器后括号内的数字为寄存器地址相对基址300h的偏移量)。

·linectl(0112h)

linectl决定cs8900的基本配置和物理接口。在本系统中,设置初始值为00d3h,选择物理接口为10base-t,并使能设备的发送和接收控制位。

·rxctl(0104h)

rxctl控制cs8900接收特定数据报。设置rxtcl的初始值为0d05h,接收网络上的广播或者目标地址同本地物理地址相同的正确数据报。

·rxcfg(0102h)

rxcfg控制cs8900接收到特定数据报后会引发接收中断。rxcfg可设置为0103h,这样当收到一个正确的数据报后,cs8900会产生一个接收中断。

·busct(0116h)

busct可控制芯片的i/o接口的一些操作。设置初始值为8017h,打开cs8900的中断总控制位。

·isq(0120h)

isq是网卡芯片的中断状态寄存器,内部映射接收中断状态寄存器和发送中断状态寄存器的内容。

·port0(0000h)

发送和接收数据时,cpu通过port0传递数据。

·txcmd(0004h)

发送控制寄存器,如果写入数据00c0h,那么网卡芯片在全部数据写入后开始发送数据。

·txleng(0006h)

发送数据长度寄存器,发送数据时,首先写入发送数据长度,然后将数据通过port0写入芯片。

以上为几个最主要的工作寄存器(为16位),cs8900支持8位模式,当读或写16位数据时,低位字节对应偶地址,高位字节对应奇地址。例如,向txcmd中写入00c0h,则可将00h写入305h,将c0h写入304h。

系统工作时,应首先对网卡芯片进行初始化,即写寄存器linectl、rxctl、rccfg、busct。发数据时,写控制寄存器txcmd,并将发送数据长度写入txleng,然后将数据依次写入port0口,如将第一个字节写入300h,第二个字节写入301h,第三个字节写入300h,依此类推。网卡芯片将数据组织为链路层类型并添加填充位和crc校验送到网络同样,单片机查询iso的数据,当有数据来到后,读取接收到的数据帧。读数据时,单片机依次读地址300h,301h,300h,301h…。

3.2 单片机工作流程

如图人所示,单片机首先初始化网络设备。网卡ip地址和物理地址存在x25045中,单片机复位后首先读取这些数据以初始化网络。



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

可以知道,单片机主要处理协议的网络层和传输层,链路层部分由cs8900完成。因单片机将数据接收后完整不变地通过串口输出,所以将应用层交付用户来处理,用户可以根据需求对收到的数据进行处理。

在单片机的程序处理中,包含了完整的apr地址解析协议。通过在单片机中正确设置网关、子网掩码等参数,实现了通过局域网单片机与外部因特网上的终端设备的数据通信。

4 应用

这种嵌入式tcp/ip协议的单片机系统板,具有成本低、硬件少、占用面积少、传输速度快、使用方便等优点。适用于现有的网络传输系统,有着广泛的应用前景,特别是数据采集、数据传输领域。目前,在屏幕板数据成像、远程数据采集系统中被使用。

相关推荐

飞思卡尔CEO:新战略初现成效 未来更关注中国市场

飞思卡尔  单片机  2013-04-28

飞思卡尔携手周立功单片机 共同拓展中国MCU市场

飞思卡尔  MCU  单片机  2012-12-19

英飞凌为提高XMC4000单片机生产率免费提供DAVE 3

英飞凌  单片机  2012-04-20

英飞凌XMC4500工业单片机现已量产供货

英飞凌  单片机  XMC4500  2012-03-19

ZLG成为Energy Micro中国区合作伙伴

周立功  Energy  Micro  单片机  2011-12-19

Microchip第100亿颗PIC单片机交付三星电子

微芯科技  单片机  PIC32  2011-09-21
在线研讨会
焦点