您的位置: 嵌入式在线 > 技术中心 > 单片机 > 运用W3150A简化单片机实现TCP/IP网络通信过程

运用W3150A简化单片机实现TCP/IP网络通信过程

2007-05-29      嵌入式在线      收藏 | 打印
  对于单片机的用户,无论使用8位、16位还是32位,如果要将单片机系统接入到基于以太网的局域网或广域网中,传统方法需要在单片机中驻留一套软件的TCP/IP协议栈,然后再加上硬件物理驱动,每一个部分都需要单片机开发工程师自己编写代码。虽然单片机厂商和单片机业余爱好者提供许多TCP/IP协议栈、硬件驱动软件,但这些免费的、未验证的代码不仅存在很多Bug,而且还需要大量的代码进行组织。
 
  W3150A接口器件的引入将彻底改变单片机(尤其是8位、16位低端单片机)接入网络的艰难局面,它采用标准的总线接口,使得采用单片机实现基于TCP/IP通信的过程如同采用16C550进行串口通信一样简单。
 
  芯片介绍
 
  W3150A有如下特性:
  * 与MCU多种接口选择;
  * 支持硬件TCP/IP协议: TCP,UDP,ICMP,IGMP,IPv4,ARP,PPPoE,以太网;
  * 支持ADSL连接(支持PPPOE协议,带PAP/CHAP验证);
  * 支持4个独立端口(sockets)同时连接;
  * 标准的MII接口与以太网物理芯片接口;
  * 支持10BaseT/100BaseTX,全双工/半双工模式;
  * 内部16K字节存储器作TX/RX缓存;
  * 3.3V工作电压,I/O口可承受5V电压;
  * 无铅封装符合环保要求。
  W3150A主要由4部分组成,芯片结构如图1所示。

图1:W3150A芯片结构框图。

图1:W3150A芯片结构框图。
  第一部分是MCU接口。W3150A提供直接总线接口和间接总线接口,W3150A+还提供SPI总线接口。适合与类似8051单片机的总线连接,也非常适合与只有IO口而没有总线接口的单片机连接。
  
  第二部分是TCP/IP协议栈。W3150已经完全固化了从MAC层、网络层到传输层所需要的协议,因而用户无需了解这些协议的具有实现方法和实现代码。
  
  第三部分是接收和发送缓冲区。单片机通过以太网与网络上其它主机进行通信的数据是通过这些缓冲区来交换的。
  
  第四部分是以太网物理层接口(MII接口)。W3150A可以与RTL8201无缝连接,实现10/100BaseT以太网物理接口。
 
  典型应用
  
  在我们的传统思维中,总以为普通的8位单片机要实现基于TCP/IP协议的网络通信是很困难的,即使是32位的单片机,在没有完善的操作系统支持下,基于TCP/IP协议的网络通信也是很麻烦的。但是,W3150A的出现却改变了这种状况,它使得基于TCP/IP协议的网络通信就像普通的UART通信一样简单、方便和可靠。下面以MCS-51系列单片机为例介绍W3150 A如何与单片机硬件连接,这里只介绍网络系统,省略了单片机的其它应用。
  
  如图2所示,单片机以直接总线方式与W3150A连接,组成了一个具有网络功能的最小应用系统。

图2:8051单片机最小网络系统(直接总线接口)。

图2:8051单片机最小网络系统(直接总线接口)。
  
  为了节省单片机的I/O口线,W3150A还可以使用间接总线接口,从而减少电路板上的走线。如图3所示。

图3:8051单片机最小网络系统(间接总线接口)。

图3:8051单片机最小网络系统(间接总线接口)。
  现在许多单片机都扩展有SPI接口,为了简化硬件连接,还可以使用SPI总线进行硬件连接,如图4所示。
图4:8051单片机最小网络系统(SPI总线接口)。
图4:8051单片机最小网络系统(SPI总线接口)。
  上面简单介绍了W3150A与单片机的硬件接口方法。从硬件结构可以看出,单片机对W3150A的访问跟普通的外设(如存储器、IO接口等)访问没有任何区别,单片机不需要处理TCP/IP协议过程、以太网通信过程等等。W3150A内部有6大寄存器区,单片机可以对这些寄存器进行读写访问操作,以实现网络通信。
  第一个寄存器区(基地址0000H~03FFH),它是W3150A状态、运行控制寄存器。主要包括IP地址寄存器、MAC地址寄存器,网关IP地址寄存器、子网掩码、中断控制等等。
  第二个寄存器区(基地址0400H~04FFH),它是端口0(Socket0)的状态、运行控制寄存器。
  第三个寄存器区(基地址0500H~05FFH),它是端口1(Socket1)的状态、运行控制寄存器。
  第四个寄存器区(基地址0600H~06FFH),它是端口2(Socket2)的状态、运行控制寄存器。
  第五个寄存器区(基地址0700H~07FFH),它是端口3(Socket3)的状态、运行控制寄存器。
  第六个寄存器区(基地址4000H~7FFFH),共16K。它分为8K端口数据发送缓冲区和8K端口数据接收缓冲区。
W3150A内部有4个独立的端口(Socket),它们的状态、控制分别映射在第二到第五寄存器区。主要实现端口工作模式控制(TCP服务器、TCP客户端、UDP或PPPOE等)、设置该端口的端口号、设置该端口目的主机IP地址和端口号、端口接收和发送数据控制等等。
W3150A完成了TCP/IP协议的处理,并与以太网无缝接口,彻底改变了嵌入式系统(尤其是低端嵌入式系统)基于TCP/IP协议通信的实现方法,是普通单片机(8位、16位和32位)接入网络的高效、经济、可靠的手段。W3150A推出以后,已广泛应用于网络安全监控、音视频传输、远程数据传输等领域。随着Internet网络的广泛应用,相信W3150A将会给嵌入式系统网络化带来强劲的推动力。

  
 
 
 
本文来源:成都加联科技有限公司    作者:成都加联科技有限公司  刘国辉 黎明
热点资讯(一周点击率)
热评博文
评一评已有 0 位网友对此文发表了看法。  我也来评一下

验证码:  看不清?换一张

 

快乐大本营

    无线时代来临,移动产业生态系统将发生一些根本变化。今日头条推荐“芯片是嵌入式4G技术的关键 产业生态系统将发生变化”。

    想了解嵌入式开发工具的市场情况吗?先来体验下我们的在线调查吧!填写调查问卷

工程师之星
朱礼昆
电子信息工程专业,擅长硬件编程
  • 胡菲菲  技术专长:嵌入式系统linux
  • 柳如峰  技术专长:模电,电源
热门招聘
论坛热贴