以太网控制芯片W5100的存储装置设计
摘要:利用MSP430系列单片机直接控制以太网控制芯片W51000进行数据传输和存储,给出了系统的工作原理、硬件连接和软件实现方法。该装置通过双绞线与计算机相连,可以实现远距离、快速的数据传输及存储。
关键词:W5100;MSP430;数据存储
引言
网络的开放性和全球化,促进了人类知识的共享和经济的全球化。以太网技术以其灵活方便的连接方式、良好的开放性、高效、成本低等优点,已经广泛地应用于各种计算机网络,并且还在不断地发展。目前,网络技术在电子产品中的应用越来越广,更多的设备需要提供网络接口,以方便与外部互联通信。
随着技术的不断发展,越来越多的测试系统、控制机构等都需要实时地、快速地并且远距离地传输数据。传统的存储装置利用RS232、RS485等串口,数据传输速率非常有限,面对大数据量实时传输的要求显得无能为力。现在流行的USB总线可以达到非常高的传输速率,但传输距离有较大的限制。利用以太网接口实现快速、远距离的数据传输和存储是一种非常好的解决方法。
1 系统硬件设计
系统结构框图如图1所示。该存储装置由双绞线接口RJ45口、以太网接口芯片W5100、TI公司的MSP430系列单片机MSP430FG4618、电源模块、串口读数口等组成。计算机通过自身的网卡及网线与该存储设备相连。RJ45口采用集成网络变压器的13F-60FGYDPNW2NL,可以减少硬件平台的面积,并且使连接更方便。这种网口自带两个小灯,可以直观地显示双绞线的连接情况和数据的传输情况。
、写信号线、片选信号、中断信号INT分别与单片机的通用I/O引脚相连。W5100上的复位引脚采用低电平复位,至少要保持20 ms的复位时间,此处采用阻容电路对其进行复位。调节电阻值到10 kΩ,电容值到10μF。
W5100供电电压为3.3 V和1.8 V,其中1.8 V可由芯片内部线性稳压电源产生,外接滤波电路后供回芯片。W5100通过异步数据地址等接口与单片机相接。芯片的以太网物理单元通过接收RXIP/RXIN和发送TXOP/TXON,将网络接口RJ45和双绞线接入到计算机当中。
W5100与单片机的接口方式有3种:直接总线接口模式、间接总线接口模式和SPI模式。其中,直接总线接口模式适用于大数据量传输的情况;SPI模式的接口连线较少,适用于数据量不大、传输速率相对较低的情况;间接总线接口模式下的数据传输性能则介于两者之间。在本系统中选用直接总线接口模式,以最大限度地提高数据的传输速率。
1.2 串口的设计
在实际应用中,很可能出现数据已经存入但是RJ45口损坏而没有办法读数的情况。为了防止因RJ45口的损坏而导致整个装置不可用,可加入串口模块直接利用串口进行读数。
2 系统工作原理
2.1 工作状态图
工作状态图如图3所示。
2.2 网络协议的选择
W5100本身集成了高度成熟的TCP/IP协议栈、以太网MAC层、PHY层等,支持TCP、UDP、IPv4、ICMP、ARP、IGMP和PPPoE等协议。
TCP(Transmission Control Protocol,传输控制协议)是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接。一个TCP连接必须要经过3次“对话”才能建立起来。
UDP是一个无连接协议,传输数据之前源端和终端不建立连接,当它想传送时就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上。虽然UDP是无连接的协议,它不保证数据包一定能够到达目的主机,但是在本应用中存储器跟主机通常位于同一内部局域网内,网络环境良好,数据丢失的可能性很小。另外,UDP容易实现,占用资源少,传输速度高,可以满足整个装置的应用需要。
3 软件设计
3.1 主程序设计
软件实现的主程序流程如图4所示。
3.2 寄存器的设置
通过设置W5100内部的控制寄存器,完全可以像在局域网中配置IP地址一样简单地配置设计的系统。
常用寄存器主要包括:模式寄存器(MR)、网关地址寄存器(GWR)、子网掩码寄存器(SUBR)、物理地址寄存器(SHAR)、源IP地址寄存器(SI-PR)、中断寄存器(IR)、中断屏蔽寄存器(IMR)、重试时间寄存器(RTR)、重试次数寄存器(RCR)、接收数据缓冲区大小寄存器(RMSR)、发送数据缓冲区大小寄存器(TMSR)等。套接字寄存器平均分为4部分,对4个独立的网络通道单独设置;发送和接收数据缓冲区用来存放临时数据。通过对这些寄存器的设置可以选择工作模式及协议栈,设置装置自己的网关、IP、子网掩码、物理地址,还可以对端口进行打开和关闭。
用户自己定义MAC地址时必须注意,MAC地址的第一个字节必须为偶数。第一个字节为奇数的MAC地址为多播地址,如果把MAC地址的第一个字节定义为奇数,可能会引起网络通信错误。
3.3 读写程序设计
读时序如图5所示,写时序如图6所示。
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)