基于硬件协议栈W5100的图像采集传输系统
2009-06-18
作者:王炳乂, 刘 爽, 张 伟,
摘 要: 提出了一种基于硬件协议栈芯片W5100的远程图像采集传输系统。该系统使用STM32微控制器实现图像数据的采集与图像预处理,再利用W5100完备的以太网协议与灵活高速的传输能力,完成向远程终端的图像数据传输。
关键词: W5100; TCP/IP; STM32
近年来,在图像采集传输系统中实现以太网互联正在成为研究和应用的热点。在这种潮流的推动下,研究人员提出了许多解决方案:一种方案是在系统中植入具有TCP/IP协议栈的嵌入式操作系统,其缺点是开发周期长、难度大;另一种方案是采用第三方的以太网协议转换设备,通过转换设备通信,由转换器完成数据封装和协议转换,其缺点是通信速率受限,系统无法对以太网进行控制。虽然上述做法在很多应用中取得了不错的效果,但都是以牺牲大量资源为代价的。而本文介绍的W5100硬件协议栈芯片则可以在占用极低系统资源的条件下快速完成网络图像传输与通信。
1 芯片介绍
目前很多嵌入式网络芯片是直接通过软件实现的,但是由于网络协议都比较大,写入软件后稳定性欠佳,而且客户时常会有新的需求,这种用软件实现的方式很难满足频繁更新升级的要求。针对这种现状,WIZnet公司的硬件协议栈芯片将网络协议的处理独立于系统处理器之外,以大规模集成电路方式硬件化通信协议栈,提供一种简单、经济的高速连接互联网上各种数字设备的解决方案[1]。
如图1所示,W5100将网络协议的处理分成一个由特定处理器执行的控制部分和一个硬件线路部分,实现硬件化TCP/IP栈中的TCP、UDP、ICMP、IPv4、ARP、IGMP以及PPPoE协议,另加连接以太网协议中的数据控制及MAC协议。芯片内含16 KB收/发缓冲存储器,并且将10 M/100 Mb/s以太网MAC和PHY集成到自动MDIX。利用逻辑硬件实现,使系统设计更加简单、紧凑。W5100的性能和结构特点如下:
(1) 内嵌10BaseT/100BaseT以太网物理层,理论线路传输率可达25 Mb/s;
(2) 支持自动通信握手(全双工和半双工);
(3) 支持自动MDI/MDIX,自动校正信号极性;
(4) 支持ADSL连接(支持PPPoE协议中的PAD/CHAP认证模式);
(5) 支持4个独立端口同时运行;
(6) 支持16 KB存储器用于数据发送/接收缓存。
W5100提供3种接口:直接并行总线、间接并行总线和SPI总线。使用W5100不需要考虑以太网的控制,只需要简单的端口Socket编程,大大简化了硬件电路设计,使控制器在没有操作系统的支持下,真正实现了单芯片接入 以太网。应用W5100于系统中可完全卸载网络协议所需的负荷,减少软件开发的开支,具有较短的开发周期与较强的工程弹性。
2 系统设计
2.1 系统硬件设计
基于W5100的远程图像采集传输系统的硬件框架图如图2所示,本系统采用意法半导体公司的STM32F101R6作为MCU。STM32系列32位ARM微控制器的Cortex-M3内核[2],是ARM公司为要求高性能(1.25 Dhrystone MIPS/MHz)、低成本、低功耗的嵌入式应用而专门设计的内核,提高了代码密度的Thumb-2指令集,大幅度增强中断响应,具有业界较优的功耗水平。STM32在结合了高性能、低功耗和低电压特性的同时,保持了高度的集成性能和简易的开发特性。图2中25 MHz晶振提供W5100的工作时钟;EEPROM用于保存系统的网络配置;RJ45接普通双绞线,连接上位机。
STM32与W5100之间采用W5100的Direct Bus I/F的工作方式,对物理层衔接则应用标准MII接口,即采用15位的地址线和8位数据线, 以及/CS、/RD、/WR、/INT控制线。在硬件初始化时,W5100的各寄存器和接收/发送Buffer作为STM32的I/O空间与外挂Flash一起内存映射。STM32对W5100的控制就是通过响应W5100中断,然后读写W5100的控制和状态寄存器来完成:STM32解析W5100的Rx Buffer中的状态包,当判断出是上位机发送过来的采集命令时,立即给CCD发出一个控制命令开始采集,读取A/D转换器,经过前期的图像处理后,将图像数据逐行高速存入外挂Flash中备份,然后把数据从Flash复制到W5100的Tx Buffer中。这样,STM32的工作完成,紧接着W5100根据硬件化的TCP/IP协议把数据自动发送至上位机PC。
2.2 系统固件设计
W5100提供多种以太网协议,本系统主要使用TCP/IP协议。W5100提供了4个独立的Socket通道,每个Socket工作于TCP/IP协议的C/S模式:在Server模式下,PC端发出连接请求,W5100响应请求,建立连接,开始控制命令传输。在Client模式下,系统向PC发出连接请求,建立连接,开始图像数据传输。
图3为系统固件的流程图。(1)进行系统硬件初始化,配置I2C总线和GPIO的间接总线。(2)针对W5100进行网络设置:分配各Socket的工作模式、目标IP、PORT、相关Buffer的大小;设置源(本地)MAC、IP、GATEWAY、SUBNET和PORT。(3)建立Control Socket,工作于Server模式:该Socket处于Listen 状态,当侦听到有上位机的Connect请求时,建立连接。STM32通过中断触发从W5100读取控制字,根据控制字做出相应的操作,开始图像采集或关闭Socket。当图像采集完毕后,建立Data Socket工作于Client模式,向上位机发送Connect请求建立连接。连接建立后,开始向上位机发送数据,数据传输完毕后关闭Control 和Data Socket,完成此次TCP/IP通信。
2.3 PC端应用软件设计
PC端的应用软件基于VC6.0编写[3],以丰富完备的按钮和菜单来实现本系统的人机交换功能。软件编写的侧重点在于显示和数据处理方面,本文不做赘述。图4为该软件运行截图。
本文提出了一种基于硬件协议栈芯片W5100的远程图像采集传输系统。本系统使用STM32微控制器实现图像数据的采集与图像预处理,再利用W5100支持的完善的以太网协议以及其灵活高速的传输能力,完成向远程终端的图像数据传输。本系统结构紧凑,硬件电路设计简洁明了;在固件方面,在没有操作系统的支持下,真正实现了单芯片接入以太网,并且开发了相应的应用软件,使本系统具有直接的操作性和商业价值。
参考文献
[1] WIZnet Co.,Inc.W5100 datasheet version 1.1.5[R],2006.
[2] STMicroelectronics. STM32F101 user manual[R],2007.
[3] 孙鑫, 余安萍. VC++深入详解[M].北京:电子工业出版社,2006.