首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
基于ARM和W5100的嵌入式以太网通信接口设计
来源:本站整理  作者:佚名  2011-06-23 07:31:01



 随着以太网技术在工业远程监控和数据采集领域的飞速发展,基于以太网的应用接口设备也迅速普及到医疗设备、工厂电力系统等应用。然而,嵌入式以太网接口设计的核心器件是网络控制芯片,其性能优劣直接影响网络通信的效率。
 本文结合ARM技术,采用32 bit STM32F105V微处理器和高性能的以太网控制芯片W5100实现高性能、高可靠性的嵌入式以太网通信接口设计,其系统各功能模块容易扩展和升级。
1 总体设计
 在嵌入式系统设计高速发展的过程中,与传统的基于现场总线方式相比,结合嵌入式系统和以太网技术来实现数据采集和控制功能越来越受到广大嵌入式设计者的青睐,而通信接口设计实质是能够实现TCP/IP网络通信协议。使用本接口模块的核心控制器W5100,应用程序设计者无需深入了解TCP/IP协议,也无需考虑以太网的控制,只需访问网络控制器的寄存器,并灵活创建和选择TCP及UDP套接字(Socket)函数就可以简单地实现网络通信,且不需要操作系统的支持,其具有硬件电路简单、编程方便等特点,解决了一般嵌入式设计的软件设计复杂、网络编程工作量大等问题,再结合32 bit高性能ARM处理器以真正实现以太网的高速实时传输。ARM完成对应用程序的处理,W5100实现数据传输和通信网络协议的处理。
 具体实现过程:数据信号或模拟信号可以通过STM32F105V丰富的外设接口(RS232总线、CAN总线等)输入或直接通过外部数据总线输入,并且可以用ARM处理器对传输的数据和信号做一些预处理工作,然后传输到W5100芯片完成网络协议的处理,再通过网络接口传输到远程终端(PC机)。相反,远程终端可以通过以太网发出控制指令,将传输信号发送至ARM或数据输出端,从而实现嵌入式系统中网络数据的采集和传输控制。系统框架如图1所示。

 本设计利用JTAG接口烧写程序到ARM内部的Flash,外扩I2C接口的128×8(1 Kbits)EEPROM,基地址为Ox40005400,用来存储网络IP地址、端口号、子网掩码等网络信息,网络传输状态指示灯(LED)反映了数据传输的实时状态。电源由外部电源提供,分别经过MC7805和AS1117芯片稳压转换输出5 V和3.3 V的电压,这样就能够很好地满足内核、外设以及外部电路的供电[1]。
2 网络控制器W5100
 W5100是WIZnet公司最新推出的固件网络芯片,内部集成了10/100 Mb/s以太网控制器,支持自动应答(全双工/半双工模式),最高通信速率达25 Mb/s。W5100将TCP/IP协议栈、以太网MAC和PHY三种功能集成于一体,支持硬件化的TCP、UDP、ICMP、IPv4 ARP、IGMP、PPPoE、以太网等协议,并提供了多种总线接口方式(直接总线接口、间接总线接口、SPI总线)便于连接各类单片机,可以满足不同应用场合的需求。
 W5100内含公共存储器、端口存储器、发送存储器以及接收存储器。公共寄存器用来设置W5100的工作模式、中断向量、IP地址、网关地址、子网掩码、物理地址、超时值等相关信息;端口寄存器平均分为4个相等的存储器大小,可以单独对4个独立的网络通道(Socket)设置端口的通信模式(TCP客户端模式、TCP服务器模式、UDP模式),实现网络数据的通信;内部16 KB存储器的发送和接收数据缓冲区(8 KB的发送缓存和8  KB接收缓存区)用来存放临时数据。W5100支持ADSL连接(支持PPPoE协议、带PAP/CHAP验证),支持自动极性变换(MDI/MDIX)并附带有多功能LED指示灯输出,时钟信号由外部晶振25 MHz提供,分别接入XTLP、XTLN管脚。
 W5100支持80脚的LQFP小型封装,0.18 μm CMOS工艺,符合环保要求。3.3 V的单电源工作电压,I/O口可承受5 V电压,可以满足低功耗要求[2]。
3 通信接口硬件设计
 本设计采用嵌入式微处理器和以太网控制器的方式实现接口转换,需要用到的芯片主要包括STM32F105V微处理器,W5100网络控制器及带网络变压器的RJ-45接口13F-60系列,AT24LC01B EEPROM等。采用SPI总线接口模式,实现STM32F105V和网络控制器的硬件连接。在串行接口模式下,只需要连接几个简单的引脚就可以进行数据通信[3]。SPI总线接口模式下硬件连接如图2所示。

 本系统微处理器采用ST公司的STM32F105V,并采用专门设计的Cortex-M3内核,时钟频率可达72 MHz,256 KB Flash存放程序或数据,64 KB的RAM存放数据,多达80个I/O接口可以映射到20个外部中断。STM32F105V与W5100供电电压都是3.3 V,所以可以直接连接。
 配置W5100的SEN引脚必须通过一个10 kΩ的电阻接高电平,以选择W5100的SPI接口模式,置STM32F105V为SPI主模式,W5100为SPI从模式,在SPI总线模式下的配置复用输入输出接口(AFIO)的PA5、PA6、PA4、PA7分别为SCLK、MISO、/SCS(SPI从模式选择,低电平有效)、MOSI信号线直接相连,并用软件设置管脚的输出最大速度为10 MHz,STM32F105V通过SPI对W5100读写操作。
 配置PB5口作为W5100的复位信号/RST_W,低电平有效。为实现准确的硬件复位,复位引脚RST_W上复位信号至少保持2 μs。
 配置PB1口为外部中断线1(EXTI1),并作为W5100的中断信号输出端/INT,低电平有效。当W5100在端口产生连接、断开、接收数据、数据发送完成以及通信超时等条件下,该引脚输出低电平信号指示微处理器。
配置PA8口为W5100输出的以太网物理层信号灯(LINKLED)指示W5100的网络连接状态,通过上拉电阻输入到微处理器,低电平有效。
 此外,为缩小接口设计的面积,本设计采用10/100 Mb/s的13F-60系列带网络变压器的RJ45接口,W5100的RXIP接RJ45的RD+,RXIN接RD-,并带有左右两个状态灯,连接状态灯(LINKLED)和动态指示灯显示接收与发送状态(ACT_LED),通过一个高速开关二极管共阳极(开关速度最大值4 ns,重复反向峰值耐压最大值75 V)与W5100的RXLED/TXLED管脚相连,供电电压为3.3 V,直接与W5100相连。差分接收和发送引脚分别通过两个75 Ω的电阻和0.001 μF的电容接地。RJ45接口的内部结构图如图3所示。

4 通信接口的软件设计
4.1 初始化程序设计

 本系统初始化通过定义结构体的方式完成STM32F105V微处理器和W5100的初始化[4-5]。
微处理器完成系统时钟、外设时钟、系统启动模式、嵌入式向量式中断控制寄存器、I2C、通用输入输出接口、通用异步接收发送器、通用定时器以及SPI等的初始化。
 W5100的初始化主要设置一些关键的寄存器:
 (1)设置模式寄存器(MR)bit[7](软件复位位)为1,初始化芯片内部寄存器,复位后自动清0。
 (2)设置中断屏蔽寄存器(IMR)为OxFF(屏蔽中断源),启动IP地址冲突异常中断和端口n寄存器(Sn_INT)中断等,通过向相应的中断屏蔽位写1,任何时候只要中断寄存器(IR)对应的位也置1,则中断将产生,CPU通过访问IR获得中断来源。
 (3)设置重发时间寄存器(RTR)为200 ms(Ox07D0),当发出连接、断开等命令而没有收到远程对端的响应或响应延迟时,产生重发过程。
 (4)配置重发计数寄存器(RCR)为8,设定重发的次数。
 (5)设置接收缓冲区的大小寄存器(RMSR)和发送存储空间大小寄存器(TMSR)都为0x55,每个端口接口和发送存储空间分别分配2 KB的存储空间。
 (6)设置端口n模式寄存器(Sn_MR)为OxA1,启动广播功能,设置端口n协议类型为TCP模式。
 (7)设置端口n命令寄存器(Sn_CR),端口的初始化、建立/断开连接以及数据传输等。
 (8)设置端口n的最大分片长度寄存器(Sn_MSS)为1 460。
 初始化完成后,根据SPI协议编写发送字节函数SPI_SendByte(),配合Read_W5100和Write_W5100完成字节的读取和发送,这里需要定义读操作码(OxF0)和写操作码(Ox0F),实现微处理器与W5100数据通信。
4.2 Socket初始化程序设计
 W5100与终端之间的数据交换有多种通信方式,本文采用基于TCP模式的通信方式。TCP是以连接为基础的通信方式,端口n在进行数据通信时,必须先建立连接。TCP有两种建立连接方式,一种是服务器模式(被动模式),需要等待连接请求;另一种是客户端模式(主动打开),需要发送连接请求给服务器。本设计配置W5100为服务器模式,只需对W5100的Socket进行配置就可以完成网络数据的收发和启动功能。
 当Socket作为服务器模式时,初始化端口需要设置运行模式(Sn_MR)和本机端口号(Sn_Port),并在端口命令寄存器打开(OPEN)端口。引用Socket_Listen(SOCKET s)程序,只调用一次该程序就可使W5100设置为服务器模式。主要程序如下所示。

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)
Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:206,546.90000 毫秒