Application of Integrated Circuits 一种基于W5100的数据传输系统 陈 实 ,王琪 .一,张铁军。,王东辉 ,侯朝焕 (1.中国科学院大学,北京100049; 2.中国科学院声学研究所,北京100190) 摘要:设计了一种基于TCP/IP通信协议、使用以太网控制器芯片W5100与ARM内核芯片 AT91SAM7SE实现的数据传输系统。介绍了系统的硬件设计、接口时序以及软件流程。设计提出对 W5100与AT91SAM7SE的硬件接口采用直接总线连接模式,软件操作采用直接总线连接模式与间接 总线连接模式相混合的方式,以达到高速传输的目的。 关键词:W5100;TCP/IP;数据传输 中图分类号:TP3 文献标识码:A 文章编号:0258—7998(2013)09—0054—03 A data transfer system based on W5 1 00 Chen Shi 一,Wang Qi’一,Zhang Tiejun ,Wang Donghui ,Hou Chaohuan (1.University of Chinese Academy of Sciences,Beijing 100049,China; 2.Institute of Acoustics,Chinese Academy of Sciences,Beijing 100190,China) Abstract:A data transfer system is introducesd in this paper,that is based Oil TCP/IP protocols and using Ethemet controller W5100 and AT91SAM7SE which combines an ARM core.This paper describes the system S hardware design,interface timing as well as the software flow.In order to achieve high speed transmission,the interface between W5100 and AT91SAM7SE is direct bus interface mode,and the software operation is based 0n direct bus interface mode mixed with indirect bus interface mode. Key words:W5100;TCP/IP;data transfer 在诸多应用中l】1都需要对终端提供大量数据流[21。 使用数据传输系统进行传输能够根据终端需求动态提 供数据,并且数据传输系统能够针对不同终端的接口时 序进行灵活调整13]。本设计提出一种基于TCP/IP通信 协议、使用以太网控制器芯片W5100与ARM内核芯片 设计者而言都是透明的。设计者不需要借助操作系统, 只需要通过W5100的地址线、数据线对其内部寄存器 进行简单的读写访问,就能灵活方便地控制W5100进 行以太网通信。w5100还集成了物理层PHY并支持信 号极性自适应,这使得在硬件设计中,只需要在W5100 外部使用一个带有网络变压器的RJ45座HR911103C, 就可以实现其与PC通信。故本设计中选择W5100实现 以太网通信,既保证了接口简单,又使得开发周期短。 实现的数据传输系统。本系统能够将PC上的文件数据 连续地传输给终端,并且针对终端接口的多样性特点, 能够通过简单的编程进行调整,以完成相同的数据传输 功能。本文针对终端具有数据缓冲队列FIFO的情况阐 本设计中,对W5100供给3.3 V与1.8 V两种电源 电压。为了保证信号完整性,降低干扰,两种电源电压分 别划分为数字网络与模拟网络,网络之间使用电感隔 离;其地平面也分为数字地与模拟地,网络之间使用铁 心磁珠隔离。W5100使用直接总线连接模式,其15 bit 地址线与8 bit数据线与ARM芯片的通用I/O连接; W5100的控制线/CS、/WR、/RD、/RESET也直接与ARM 芯片的通用I/O连接。由此实现ARM芯片对W5100的 控制。W5100的SPI接口中的SEN、SCLK、M1SO接固定 述本系统的硬件设计、接口时序以及软件流程。对于不 同终端,本系统只需经过少量的软件修改就可达到数据 传输的目地。 1以太网控制器芯片W5100 以太网控制芯片W5100是WIZnet公司推出的一款单 片网络接口芯片[41。W5100内部集成了传输层、网络层 TCP/IP协议栈与数据链路层及介质访问子层MAC协 议。这使得通过W5100进行以太网通信时,各层协议对 54 欢迎网上投稿www.chinaaet.corn 《电子技术应用》2013年第39卷第9期 电压数字0 V,/SCS接固定电压数字3.3 V,MISO保持 悬空,由此屏蔽SPI接口。 与IDM—AR1值的自增以及间接总线模式数据寄存器 IDM—DR值的变化同步于/WR或/RD的下降沿。AT91S— 2 ARM内核芯片AT91SAM7SE AT91SAM7SE是Atmel公司的一款基于ARM7内核 AM7SE在间接总线模式下连续访问W5100的存储器时 序如图2、图3所示。 的处理器【5'。在本系统中,其作为MCU,完成对W5100 一侧的读写访问,并完成对终端一侧的数据转发。 AT9lSAM7SE具有丰富的通用I/O管脚,能保证整个系 统的灵活性。AT91SAM7SE使用55.296 MHz作为主时钟 MCK、处理器时钟PCK。 3硬件设计与接口时序 3.1硬件设计 W5100与AT91SAM7SE在硬件设计中采用直接总线 连接模式,可以同时兼容间接总线连接模式。这样设计 是为了能够在连续访问发送存储器、接收存储器时工作 于间接总线模式,使用W5100的地址自增功能;并且在 非连续访问时工作于直接总线模式,减少读写时序,以 图2间接总线模式下,连续读时序 提高传输速率。 肿 吡玳㈨㈣啪 ^.埘.弧一一^一 一 肿 蚓㈣ 啪.舭砒硪隗L^。一 .一 AT91SAM7SE与W5100之间的接口、AT91SAM7SE与 终端之间的接口以及硬件设计的总体框图如图1所示。 3.2 AT91SAM7SE与W5100间接口时序 当AT91SAM7SE在/RESET线上输出低电平2 s及 以上时,W5100被复位,其公共寄存器、各端口寄存器都 恢复初始值。本设计中/CS始终同步于/WR和/RD选中 W5100。/WR、/RD与DATA[7:0】、ADDR[14:2]、ADDR[1:0] 图3间接总线模式下,连续写时序 构成读写时序,完成对W5100片内寄存器、存储器的访 问,/WR与/RD同时只能有一个有效。W5100可以工作 于两种总线模式下。 RX【p 1 3.2.2直接总线模式 当AT91SAM7SE访问W5100模式寄存器、端口寄存 器时,W5100工作在直接总线模式下,其15 bit地址线 ADDR『14:0]直接选中各个寄存器。 SEr 、 W5l∞ RESET cS 以太网 HR9l IlO3C RX【N S 然后通过/CS与/WR(或与/RD)输 终壹l{l F O TX0P TXoN nⅣR 艉D A r9lSAM7SE ’ 瑚ock WR 出下降沿实现访问。 3.2.3间接总线模式与直接总线 模式对比 ——1 ADDR[14:21 霸47加1:0 I n m l 3.2.1间接总线模式 :.DtdA)DTRAIfT1:01 }_ 图1硬件总体设计框图 访问单一存储器时,使用间 接总线模式需要3个总线时序, 使用直接总线模式只需要一个 总线时序。连续访问存储器时, 使用地址自增功能,能够使得访问一个地址平均花费 大约一个总线时序。虽然在间接总线模式下使用地址 自增功能时,平均访问一个地址仍然不会花费少于一 个总线时序,但是在连续访问时,AT91SAM7SE不需要 在其通用I/O上准备每一个需要访问的W5100的存储 当AT91SAM7SE连续访问W5100发送存储器、接 收存储器时,W5100工作在间接总线模式下,其地址 线ADDR【14:2]稳定输出0。AT91SAM7SE首先在地址线 ADDR[1:01输出01,选中W5100间接总线模式地址寄存 器IDM—AR0;然后在数据线DATA[7:0]输出需要访问的 W5100存储器地址高7位AH,接着/WR与/CS输出下降 沿将AH写入IDM—AR0;之后AT91SAM7SE再将需要访 问的W5100存储器地址低8位AL以同样方式写入间 接总线模式地址寄存器IDM—AR1;最后,通过/CS与/WR 器地址,在连续访问开始后ADDR【1:0】的值是固定为 11,因此平均花费在一个总线时序上的指令条数有所 减少。所以当AT91SAM7SE配置为W5100工作模式、端 口模式来读取和更新端口信息时,使用直接总线模式 以减少总线时序次数;当AT91SAM7SE读取、写入TCP f或与/RD)连续输出下降沿,连续访问间接总线模式数 据寄存器IDM—DR。间接总线模式地址寄存器IDM—AR0 数据段数据时,使用间接总线模式以减少总线时序中 的平均指令数。 55 《电子技术应用》2013年第39卷第9期 Application of Integrated Circuits 3.3 AT91SAM7SE与终端间接口时序 AT91SAM7SE将从W5100接收存储器中取回的TCP 数据段数据先缓存在片内,再转发给终端。考虑到本设计 终端具有数据缓冲队列FIFO,所以只使用RESET、CS、 BLOCK、WR、DATA[31:01信号线。当终端具有存储器空间 时,还需要使用ADDRESS信号线。根据终端接1:3的不同, 可以对AT91SAM7SE编程,使其生成匹配的接口时序。由 于选择了ARM内核的芯片作为MCU完成存储转发功能, 所以能够保证编程简便,易于经过少量修改而匹配各种终 端的接口时序,使得代码的重用性强。本设计中,RESET输 出高电平时清空FIFO;CS实现对终端的片选。当FIFO空 时,BLOCK信号无效,指示AT91SAM7SE可以转发数据;当 FIFO趋近于满时,终端给出指示信号BLOCK,阻塞 AT91SAM7SE,使其停止转发数据。本设计中,AT91SAM7SE 在WR的每一次上升沿将TCP数据段中的数据转发到 DATA[31:01。由于AT91SAM7SE编程灵活,通用I/O管脚丰 富,故可以重用于对各种终端进行数据传输。 4软件流程 在本设计中,AT91SAM7SE作为W5100的控制芯片, 控制其工作在TCP/IP协议下,并作为服务器模式端 SERVER。而客户模式端CLIENT由PC机充当,PC运行 Linux操作系统,使用套接字Socket编程。由于PC通过 本系统向终端传输大量数据流,这些数据不经过路由, 独享信道,所以不会出现路由拥塞而导致分组被丢弃的 情况。因此,本设计简化了关于分组超时的检测,使用 AT91SAM7SE查询W5100端口状态寄存器Sn_SR及其 他端口寄存器的方式来获知通信所处的状态,并使用写 端口命令寄存器Sn—CR的方式来控制通信进程。图4描 述了PC通过本系统向终端传输数据的流程。 PC上的Socket程序非常简单,只需要调用最基本的 文件操作函数与Socket函数就能实现端口连接与文件 传输。AT91SAM7SE上程序流程细节如下。 (1)上电,复位:AT91SAM7SE开始执行程序。 (2)芯片初始化:配置AT9lSAM7SE时钟模块、PIO模 块等。 (3)配置W5100:配置W5100的公共寄存器,设置IP 地址、子网掩码、MAC地址等。 (4)配置TCP端口:配置端口寄存器,使端口工作于 TCP模式,设置端口号等。 (5)等待建立连接:写端口命令寄存器,使端口处于 等待PC发起连接的状态。 (6)监听是否建立连接:轮询端口状态寄存器,循环 等待端口与PC建立连接。 (7)监听是否接收到TCP数据段:轮询端口接收数据 长度寄存器,循环等待W5100从PC接收到TCP数据段。 (8)检查是否为最末TCP数据段:查询端口状态寄存 器,检测当前状态,判断其是否为最末TCP数据段。 (9)缓存TCP数据段中数据:访问接收数据长度寄存 56 欢迎网上投稿www.chinaaet.com AT91SAM7SE程序流程 Linux Socket编程 W5100 SERVER模式 PC CLIENT模式 旺 芯片初始化I l读取文件 配置W5100l广———— 发起连接 配置TCP端El 二二工二 等待建立连接 断开连接 关闭TCP端口 吁是否建立连 结束 N TCP\数据段?/ 蠢 // 检查是否为最末、\ YTCP 数据段? / N 缓存TCP数据段中数据l I缓存TCP数据段中数据 转发数据 断开连接 关闭TCP端口 图4数据传输流程图 器、端口读指针寄存器等,计算数据读取位置等参数,将 接收到的TCP数据段数据以1 B为单位缓存在片上。 (10)转发数据:将缓存在AT91SAM7SE片上的数据 以4 B为单位向终端FIFO转发。 (11)断开连接,关闭TCP端口:写端1:3命令寄存器, 使端口关闭,断开与PC的连接。 其中步骤(9)需要访问各寄存器,还需要通过间接 总线模式数据寄存器连续访问接收存储器。本设计中 采用直接总线模式和间接总线模式相配合的方式,完成 对TCP数据段数据的读取,步骤如下: ④在直接总线模式下访问各寄存器。 ②计算参数,获得TCP数据段数据在接收存储器中 的地址。 ⑧切换至间接总线模式,开启地址自增功能。 ④连续读取接收寄存器。 ⑨切换回直接总线模式。 ⑥访问各寄存器,更新配置,继续接收分组。 5测试 测试中,通过PC向本系统传输文件,再使用FPGA 模拟终端FIFO的接口时序,同时将本系统传输至终端 的数据输出到逻辑分析仪。对比逻辑分析仪采样信号与 f下转第60页) 《电子技术应用》2013年第39卷第9期 .复 豳豳 业 呈 厂’ 、. /’ .7 ’. /‘ / i ’r 、 f / / f }/ ~ ? 、 V,N/V O 图9补偿后带隙基准输出电压变化 ’/ (第2版)【M].冯军,李智群,译.北京:电子工业出版社, 网8补偿后的带隙基准温度特性 20O6. 设计『D1.两南交通大学,2009. [7]陈星弼,张庆中.晶体管原理与设计[M].北京:电子工业 [2】代贽,杨兴.带曲率补偿的带隙基准电流源的设计[J].物 出版社,2008. 联网技术,2012(21:64—66. 【8】蒋师,杨维明,周一JIl,等.一种带曲率补偿的高精度带隙 [3]SANSEN W M C.Analog design essentials[M】.陈莹梅,译. 电压基准源[J].西安电子科技大学学报,2012(5):39—43 北京:清华大学出版社,2007. f收稿日期:2013—06-04) [4ll毕鱼德・拉扎维.模拟CMOS集成电路设计[M】.西安:西 作者简介: 安交通大学出版社,2003. 张庆岭,男,1986年生,硕士研究生,主要研究方向:模 【5】廖敏,周玮.一种二阶曲率补偿的带隙电压基准【J】.现代 拟集成电路与智能功率集成电路。 电子技术,2009. 张波,男,1964年生,教授,博士生导师,主要研究方 【6]ALLEN P E,HOLBERG D R.CMOS模拟集成电路设计 向:功率半导体技术、电源管理集成电路及专用集成电路。 (卜接第56页) 表1数据传输测试 原始文件数据可以得出结论,本系统能够实现数据的准 确传输。逻辑分析仪采样结果如图5所示。表1记录了 传输不同大小文件所用的时间与平均传输速率。兼顾系 统的灵活性与性能,MCU工作在55.296 MHz的情况下, 平均传输速率能够达到2.7 Mb/s。 个系统具有集成度高、重用性强、适应性广的特点。 参考文献 [1]蒋峰.W5100在远程温度采集系统中的应用[J].化工自动 化及仪表,2011,38(2):214—217. 【2】邹依依,郭灿新,黄成军,等.W5100在DSP远程以太网 数据通信系统中的应用【J1_工业控制计算机,2008,2l(8): 20—21.23. [3】王炳义,刘爽,张伟,等.基于硬件协议栈W5100的图像 采集传输系统[J].电子技术应用,2009,35(3):92—93,96. 【4]W1Znet Co.,Inc.W5100 datasheet version 1.2.4[Z】.201 1. [5]Atme1.AT91SAM ARM-based Flash MCU SAM7SE version 6222F[Z].2011. (收稿日期:2013—05—03) 图5逻辑分析仪采样结果 作者简介: 陈实,男,1988年生,硕士研究生,主要研究方向:集成 本设计使用W5100与AT91SAM7SE实现了一种基 电路片上系统。 于TCP/1P通信协议的数据传输系统。其硬件设计简单, 王琪,女,1987年生,硕士研究生,主要研究方向:音视 软件编程灵活方便.可以适应不同的终端接口时序。整 频处理。 60 欢迎网上投稿www.chinaaet.corn 《电子技术应用》2013年第39卷第9期