《[论文]嵌入式以太网测试论文.doc》由会员分享,可在线阅读,更多相关《[论文]嵌入式以太网测试论文.doc(60页珍藏版)》请在三一办公上搜索。
1、摘 要随着互联网技术的迅猛发展,如何保证网络的安全与畅通是网络维护所面临的一个重大课题。网络测试仪是网络安装与维护人员进行网络安装与维护测试的重要工具。目前,网络检测工具的市场现状是网络检测核心技术完全掌握在国外公司的手中,各个价位的网络测试产品基本上是由国外公司设计制造,其特点价高。而国内网络检测产品的技术水平还仅仅停留在网线联通性测试上。为了给市场提供一种功能实用,便携式的网络检测工具。本文完成了新型便携式网络测试仪的课题。在硬件方面,本文分析了以太网测试功能的技术特点及与之相关的TCP/IP协议,确定了嵌入式以太网测试系统的控制核心和相关的硬件芯片选型,并选择了微处理器C8051F340
2、和以太网控制器CP2200所构成的开发板为硬件开发平台。在软件方面,本文采用结构化设计方法,提出了本系统的模块化设计方案,将本系统划分为系统主控模块、系统初始化模块、定时中断处理模块、以太网控制器驱动模块、TCP/IP协议模块、应用层模块、串行通信模块等七个主要模块。在所开发的软件系统中,完成了以太网测试功能中嵌入式客户端的工作参数设置、IP地址的自动获取、PING命令和TRACEROUTE命令等功能的算法设计与实现工作。目前,已完成产品的测试和试运行工作,并准备将产品推向市场。关键词微控制器,嵌入式系统,网络客户端,网络测试仪,TCP/IP 协议族 ABSTRACTWith the rapi
3、d development of Internet technology, its been becoming a major issue of the network maintenance to ensure the freedom and security of network. Network tester is an important tool to install and maintain the network. At present, the status of the market on the network detection tool is that the core
4、 technology of network testing is entirely in the hands of the foreign companies, which design and manufacture various products with high prices and high quality to test the network. The level of technology in domestic products to test network is just to stay in the network connectivity test online.
5、 In this situation, this dissertation presents a project to develop a new type of portable network tester.This dissertation also analyzes the technical basis of the Ethernet test functions and the corresponding protocols, and determines a hardware selection in the control core and the Ethernet contr
6、oller, and the hardware development platform is the development board made up of a C8051F340 chip and a CP2200 chip. At the same time, the structure feature of the development board is made an assay of.By the method of structured design, this dissertation has made a program of the systems modular de
7、sign, and divides the system into seven modules: a module of system control, a module of system initialization, a module of timing interrupt handling, a module of the Ethernet controller driver, a module of TCP/IP protocol stacks, a module of the application layer, a module of serial communication.
8、In the developed software system, the algorithm design and the implementation in C language of the Ethernet test functions include the configuration of the work parameters of the embedded client, IP automatic access function, ping function, traceroute function, and their correctness have also been v
9、erified by experimental tests.Key words: Microcontroller, Embedded system, Network client, TCP/IP protocol stacks,Network tester目 录摘 要IABSTRACTII第一章 绪论11.1嵌入式客户端课题的背景11.2嵌入式客户端研究的现状11.3主要研究内容31.4论文的安排3第二章 嵌入式客户端技术42.1嵌入式客户端的特点42.2嵌入式以太网测试的技术42.2.1嵌入式以太网测试的技术52.2.2与以太网测试相关的协议72.3嵌入式以太网测试的硬件选型82.3.1硬件
10、选型的基本原则82.3.2微控制器核心的选型82.3.3以太网控制器的选型92.4C8051F340开发板的结构特点132.5本章小结13第三章嵌入式以太网测试的设计143.1软件设计知识概要143.2系统主控模块的设计153.2.1 系统主控模块的总体设计153.2.2 主循环体控制的概要设计163.2.3 主循环体控制模块的详细设计183.3系统初始化模块的设计193.4定时中断处理模块的设计213.5以太网控制器驱动模块的设计223.6TCP/IP协议模块的设计233.7应用层模块的设计243.8串行通信模块的设计253.9本章小结25第四章嵌入式以太网测试的实现264.1嵌入式以太网测
11、试的实现264.1.1 系统主控模块的实现274.1.2 系统初始化模块的实现284.1.3 定时中断模块的实现304.1.4 以太网控制器驱动模块的实现304.1.5 TCP/IP 协议模块的实现314.1.6 应用层模块的实现424.1.7 串行通信模块的实现434.2测试程序444.3测试方法与测试过程454.4测试结果454.5本章小结48第五章 总结与展望495.1研究工作总结495.2进一步的研究方向49参考文献51致 谢55攻读硕士学位期间发表的论文56第一章 绪论1.1 嵌入式客户端课题的背景随着通信技术、计算机技术和网络技术的迅猛发展,互联网的传输速度不断提升,互联网的拓扑结
12、构也随之日益复杂,如何保证网络的安全与畅通是网络维护界所面临的一个重大难题。在接入互联网络的众多设备中,不仅包括大量的服务器和个人计算机,而且还包括使用数量更多、应用范围更广的嵌入式系统设备,例如网络检测仪、智能家电、智能仪器仪表、工控设备、数据采集设备等。为了保障整个网络的正常、可靠、不间断地运行,网络维护人员必须能够及时有效地发现故障原因、位置并及时采取有效措施排除网络故障。因此为每个一线网络维护人员配备一套便捷、有效的网络检测工具是十分必要的。这些网络检测工具基本上以网络客户端的形式接入网络中。其中 PING 命令功能、TRACEROUTE命令功能和 IP 地址自动获取都是网络客户端的最
13、主要的基本功能1-12。目前,网络检测工具的市场现状是网络检测核心技术完全掌握在国外公司的手中,各个价位的网络测试产品基本上是由国外公司设计制造,其特点是价格比较高。而国内网络检测产品的技术水平还仅仅停留在网线联通性测试上,为了能够尽快掌握网络测试这一核心技术,研发具有自主知识产权的网络测试系列产品,十分有必要开展这方面的研发工作。本文将研究嵌入式以太网基本测试功能的设计与实现13-43的问题。所使用的硬件是由美国 Silicon Laboratories 公司设计并生产的 C8051F34044 微控制器和 CP220045 以太网控制器组成的ML-CP2200DK/F340DK46开发板。
14、1.2 嵌入式客户端研究的现状目前,嵌入式网络客户端主要研究嵌入式网络客户端基本功能的设计与实现,其主要内容有两个方面:其一是标准TCP/IP协议族在嵌入式系统中的设计与实现2-15;其二是嵌入式网络客户端基本功能的设计与实现。在标准TCP/IP协议族的设计与实现中,著名的 BSD4.4 的源代码被众多学者研究最深入全面。在嵌入式领域中,比较具有代表性的嵌入式TCP/IP协议族的实现有如下四种:1uIP 协议族uIP 协议族是在低至8位或16位微控制器嵌入式系统的一个可实现的极小的开源 TCP/IP 协议族,由瑞典计算机科学学院(Swedish Institute of Computer Sc
15、ience,SICS)的 Adam Dunkels 在计算机与网络架构(Computer and Networks Architectures,CNA)实验室完成开发,可在BSD许可协议下免费使用。uIP实现了TCP/IP协议族的五个基本协议;ARP47,IP48,ICMP49,UDP50 和 TCP。数据链路层协议,如ETHERNET、PPP或SLIP,可作为uIP协议族下的设备驱动来实现。而应用层协议,如DHCP51,HTTP,FTP或SMTP,则可实现为uIP 协议族之上的应用程序。uIP协议族代码的大小和对 RAM 的需求比其它一般的 TCP/IP 协议族要小。uIP 协议族使用一个基
16、于编程模块事件去减少代码的大小和对 RAM 的使用量。系统的底层与 uIP 协议族之间的接口是隐蔽的。目前,该实现的最新稳定版本是 1.0 版52。21wIP 协议族lwIP 实现是关于 TCP/IP 协议族的一个小的独立实现,也是由uIP的开发者 Adam Dunkels完成开发的,也可在 BSD 许可协议下免费使用的,有众多的项目维护者。主要实现了ETHERNET、PPP、ARP、IP、ICMP、IGMP、UDP、TCP、专门优化的未处理的/本地化的API、类伯克利套接字API、DNS、SNMP、DHCP、AUTOIP (IPv4版本,符合 RFC 3927)等协议。lwIP TCP/IP
17、 协议实现的焦点是在仍保持全尺寸TCP的情况下尽量减少RAM的使用,这样使得 lwIP 可在嵌入式系统中使用并只占用1020kB RAM存储空间和大约40kB ROM存储空间。目前,该实现的最新稳定版本是 1.3.0 版53。3CMX-Micronet 协议族CMX-Micronet 协议族实现由以向嵌入式社区提供完整优雅的嵌入式解决方案著称的 CMX Systems 公司开发。其主要特点有:(1) 唯一符合工业标准的协议;购买该实现后,可提供目标处理器的全部源代码;(2) 可在你现有的微控制器中使用,包括从低端的8位微控制器、中端的16位微控制器到高端的32位微控制器,乃至极高端的64位嵌入
18、式产品;(3) 使用费用低廉,只需一次性的低付费,并且不再收取最终产品的版税。该协议族实现了ETHERNET、PPP和SLIP等数据链路层的协议;ARP、IP等网络层协议;ICMP、IGMP v1、TCP、UDP和BOOTP等传输层协议;DHCP客户端、HTTP Web服务器、FTP服务器、FTP客户端、TFTP客户端、SMTP客户端、POP3客户端、SNMP、DNS、SNTP客户端等应用层协议。可以通过以太网、无线网、拨号上网和直接连接等四种方式接入网络。目前,该实现在嵌入式社区使用极其广泛,其最新稳定版本是 3.0.9 版54。4Microchip 的 TCP/IP 协议族Microchi
19、p 的 TCP/IP 协议族实现由美国著名的嵌入式设备芯片设计制造商 Microchip 公司专为旗下的PIC18、PIC24、PIC32和dsPIC微控制器系列优化设计的免费TCP/IP协议族。该协议族是为所有基于TCP/IP的应用提供服务的一套程序。用户无需了解TCP/IP 协议的复杂特性就可以使用它。基于TCP/IP参考模式,该协议族分为多层,其中每一层都从其下的一个或多个层中获得相应的服务。从特性上讲,许多TCP/IP层是“活动的”,从某种意义上讲,它们不仅在有服务申请时工作,而且在特定事件发生(如超时或新数据报到达等)时也工作。该协议族采用模块化设计,并使用C语言编程实现。根据所选用
20、的模块不同,有效实现将占用大约28-34 KB代码,为Microchip经济有效、高密度的微控制器留下大量的代码空间以供用户应用使用。目前,该实现广泛使用于PIC18、PIC24、PIC32和dsPIC微控制器系列,其最新稳定版本是 4.55 版55。有关嵌入式以太网客户端基本功能的设计与实现方面的研究主要内容包括网络连通性检测命令功能PING、路由跟踪命令功能TRACEROUTE、IP地址自动获取、DHCP客户端、FTP客户端、TFTP客户端、POP3客户端、HTTP客户端网页浏览器等。1.3 主要研究内容本文研究了嵌入式客户端的以太网测试功能的技术基础与设计实现。该嵌入式客户端在ML-CP
21、2200DK/F340DK开发板上开发实现。该开发板上有一个高达 48 MIPS 以上处理速度的 8 位 C8051F340 在片系统和一个号称世界上封装最小的 CP2200 以太网控制器。由于在嵌入式系统中实现标准 TCP/IP 协议族要占用大量的 8 位微控制器有限的系统资源,因此,为了既能够保证系统实时性和系统可靠性,又能够减少该协议族对系统资源的占用,对标准TCP/IP协议族进行适当裁剪和简化是十分必要的。嵌入式以太网客户端与以太网及 PC 客户端之间是通过基于 TCP/IP 协议族的以太网来进行信息交换的。这种低成本、高性能的以太网网络接入解决方案,具有可靠性高、功耗极低、体积小巧、
22、携带方便、功能适用、使用灵活的特点,并具有较高的应用价值和广泛的使用范围。1.4 论文的安排论文共分为六章,各章的具体内容安排如下:第一章介绍本课题提出的背景、国内外研究现状、主要研究内容等。第二章讨论嵌入式客户端的技术基础。第三章探讨嵌入式以太网测试功能的设计。嵌入式以太网测试功能的软件设计由七大模块组成:系统主控模块、系统初始化模块、定时中断模块、以太网控制器驱动模块、TCP/IP 协议模块、应用层模块、串行通信模块等。第四章探讨嵌入式以太网测试功能的实现与测试。第五章对本文进行总结和评估,并指出不足和进一步研究的方向。第二章 嵌入式客户端技术从本章开始,将进入具体领域来进行相关问题的研究
23、。本章首先从嵌入式服务器与嵌入式客户端的比较入手,介绍嵌入式客户端的主要特点。然后,转入对嵌入式客户端的以太网测试功能的设计与实现技术的研究,并介绍了与之相关的TCP/IP协议。随后,研究硬件开发平台的选型问题,主要包括微控制器核心和以太网控制器等的选型。在搭建硬件开发平台时,有两种基本的选型方法可供选择:一种是选用分离的控制核心与以太网控制器组成的多芯片方案;另一种是选用内部集成了以太网控制器的微控制器的单芯片方案。相比较而言,前一种搭建方案的成本比较高一些,实现起来难度也大一些。最后,将介绍由分离主芯片C8051F340微控制器和CP2200以太网控制器组成的一套硬件开发平台的结构特点。2
24、.1 嵌入式客户端的特点一般来说,与大多数服务器、个人计算机一样,嵌入式系统接入以太网有两种主要方式:一种是作为一种微型网络服务器;另一种是作为一种微型网络客户端。这两种接入方式,所能够提供的功能是完全不同的。如果以微型网络服务器方式接入以太网,其主要目的是提供微型Web服务器,向监测主机定时发送该设备所采集的数据,即时显示该设备的工作参数和/或工作环境。如果以微型网络客户端方式接入以太网,可以具有的功能有许多:TFTP客户端、FTP客户端、POP3客户端、HTTP客户端即浏览器等。其中比较基本的功能有用于网络连通性的检测、跟踪路由、从网络上下载所需要的数据等。在表2-1中对嵌入式微型服务器和
25、嵌入式客户端进行了简单的比较。表2-1 嵌入式服务器和嵌入式客户端的比较比较内容嵌入式服务器嵌入式客户端服务对象服务提供方服务请求方服务方式FTP服务器、Web 服务器等FTP客户端、Web浏览器等性能要求相对较高相对较低存储器容量相对较大相对较小可移动性比较固定移动性大2.2 嵌入式以太网测试技术本节将分析设计与实现嵌入式以太网测试功能的技术以及与这些功能相关的TCP/IP协议。2.2.1 嵌入式以太网测试技术在对以太网进行测试时,常用的主要功能有测试网络连通性的PING命令和跟踪路由的TRACEROUTE命令等两种。还有一种网络客户端经常具备的功能是它从网络中的一台或多台DHCP服务器上自
26、动获取并租用一个网络IP地址,即IP地址的自动获取。下面分别研究这三种功能实现过程。1PING命令功能在所有网络测试功能中,PING命令是最简单的、也是最基本的。它主要有两种形式:一种是向网络上的其他主机或网关发出的回显请求;另一种是对其他主机或网关的回显请求的回显。PING命令是以网络层的附属协议ICMP为基础的,它的数据报是被封装成其中的一种ICMP数据报格式。2TRACEROUTE命令功能相对于PING命令而言,TRACEROUTE的实现过程要复杂的多。首先,它发送一个TTL字段值为1的UDP数据报,然后将TTL字段值每次增加1,以确定传输路径中的每个路由器。每个路由器在丢弃UDP数据报
27、的时候,都返回一个ICMP超时报文,而最终的目的主机则产生一个ICMP端口不可达的报文。于是根据最后的TTL字段值,就可以知道到达最终目的主机之前所经过的路由器数,既所谓的跳数。对于此功能,本文将采用如下算法来实现。路由跟踪算法:(1) 初始化TTL=1,重传次数Nr=6,指定目的 IP 地址;(2) 填充并发送指定TTL值和目的 IP 地址的UDP数据报;(3) 等待接收ICMP报文;(4) 若是ICMP超时报文,则转(5)执行;否则转(6)执行;(5) TTL加1, 重置重传次数Nr为6,并转(2)执行;(6) 若是ICMP端口不可达报文,则转(11)执行;否则转(7)执行;(7) 重传次
28、数Nr减1;若Nr为0,则转(8);否则转(9);(8) 输出出错信息并结束;(9) 重传UDP数据包,并转(3)执行;(10) 输出TTL并结束。该算法的流程图如图2-1所示。图2-1 路由跟踪流程图3 IP地址的自动获取嵌入式客户端接入以太网需要一个相对比较固定的 IP 地址。其IP 地址可以通过两种方式获取:一种是直接指定;另一种是从网络中的 DHCP 服务器处获取。在一个未知的网络上,嵌入式客户端以 DHCP客户端的形式能够从 DHCP 服务器处自动获取IP 地址,其具体工作过程可以分如下发现阶段、提供阶段、选择阶段、确认阶段、重新登录和更新租约等六个阶段。(1) 发现阶段,即 DHC
29、P 客户端寻找 DHCP 服务器的阶段。由于 DHCP服务器的 IP 地址对于客户端来说是未知的,因此DHCP客户端以广播方式发送 DHCP 发现信息来寻找 DHCP 服务器,即向地址255.255.255.255发送特定的广播信息。网络上每台安装了TCP/IP协议的主机都会接收到这种广播信息,但只有DHCP服务器才会做出相应的响应。(2) 提供阶段,即DHCP服务器提供IP地址的阶段。在网络中接收到DHCP发现信息的DHCP服务器都会做出响应,它从尚未出租的IP地址中挑选一个分配给DHCP客户端,向DHCP客户端发送一个包含出租的IP地址和其他设置的DHCP提供信息。(3) 选择阶段,即DH
30、CP客户端选择某台DHCP服务器提供的IP地址的阶段。如果有多台DHCP服务器向DHCP客户端发来的DHCP提供信息,则DHCP客户端只接受第一个收到的DHCP提供信息,然后它就以广播方式回应一个DHCP请求信息,该信息中包含向它所选定的DHCP服务器请求IP地址的内容。之所以要以广播方式回应,是为了通知所有的DHCP服务器,它将选择某台DHCP服务器所提供的IP地址。(4) 确认阶段,即DHCP服务器确认所提供的IP地址的阶段。当DHCP服务器收到DHCP客户端回答的DHCP请求信息之后,它便向DHCP客户端发送一个包含它所提供的IP地址和其他设置的DHCP确认信息,告诉DHCP客户端可以使
31、用它所提供的IP地址。然后DHCP客户端便将其TCP/IP协议与网卡绑定。另外,除DHCP客户端选中的服务器外,其他的DHCP服务器都将回收曾提供的IP地址。(5) 重新登录,以后DHCP客户端每次重新登录网络时,就不需要再发送DHCP发现信息了,而是直接发送包含前一次所分配的IP地址的DHCP请求信息。当DHCP服务器收到这一信息后,它会尝试让DHCP客户端继续使用原来的IP地址,并回答一个DHCP确认信息。如果此IP地址已无法再分配给原来的DHCP客户端使用时(比如此IP地址已分配给其它DHCP客户端使用),则DHCP服务器给DHCP客户端回答一个DHCP否认信息。当原来的DHCP客户端收
32、到此DHCP否认信息后,它就必须重新发送DHCP发现信息来请求新的IP地址。(6) 更新租约,DHCP服务器向DHCP客户端出租的IP地址一般都有一个租借期限,期满后DHCP服务器便会回收出租的IP地址。如果DHCP客户端要延长其IP租约,则必须更新其IP租约。DHCP客户端启动时和IP租约期限过一半时,DHCP客户端都会自动向DHCP服务器发送更新其IP租约的信息。2.2.2 与以太网测试相关的协议嵌入式以太网测试功能是建立在TCP/IP协议基础之上的,每个测试功能在实现时所使用的各层协议是有所不同的56。与这些功能相关的协议的详细依赖关系按照其复杂程度依次列出如下:1与PING 命令功能相
33、关的协议包括(1) 数据链路层的ARP 协议,本功能将主要使用其中的 MAC 地址解析等模块;(2) 网络层的IP 协议,本功能将主要使用其中接收、发送等模块;(3) 网络层的附属协议-ICMP 协议,本功能将使用其中的显示请求报文和回显应答报文等两种报文。2与TRACEROUTE 命令功能相关的协议包括(1) 数据链路层的ARP 协议,本功能将主要使用其中的 MAC 地址解析等模块;(2) 网络层的IP 协议,本功能将主要使用其中接收、发送等模块;(3) 网络层的附属协议-ICMP 协议,本功能主要使用其中的超时报文和端口不可达报文等两种报文;(4) 传输层的 UDP 协议,本功能将主要使用
34、其中接收、发送等模块。3与IP地址自动获取功能相关的协议包括(1) 数据链路层的ARP 协议,本功能将主要使用其中的 MAC 地址解析等模块;(2) 网络层的IP 协议,本功能将主要使用其中接收、发送等模块;(3) 网络层的附属协议-ICMP 协议;(4) 传输层的 UDP 协议,本功能将主要使用其中接收、发送等模块;(5) 应用层的 DHCP 协议。2.3 嵌入式以太网测试的硬件选型本节将研究嵌入式以太网测试的硬件选型的基本原则以及微控制器与以太网控制器的选型。2.3.1 硬件选型的基本原则在进行嵌入式系统开发中,由于目标系统的运行环境、设计目标和市场定位等的不同,在选择相应的硬件时,必须遵
35、循一些基本原则。这些基本原则主要包括以下几个方面。1. 运行环境嵌入式系统预期将运行在什么样的具体环境下,是工作在野外环境,还是在室外环境,还是在室内环境等。因为每种元器件都有相应的电气工作条件。2设计目标嵌入式系统的预期设计目标是什么,这也是在硬件选型时必须仔细斟酌的。根据目标系统预期达到的工业标准,可以分为军用级、工业级和民用级,每种元器件产品所能达到的电气工作条件和工作环境温度是不同的,在价格方面也会有很大的差别,这直接导致生产成本显著变化。因目标系统的尺寸不同,在选择元器件产品的尺寸时会仔细地考虑。对于便携性系统而言,由于目标系统在体积上比较严格的限制,必须选择体积小的元器件。对移动性
36、小的系统而言,在选择元器件时,其尺寸和体积的要求就没有那么严格。3. 市场定位嵌入式系统的预期市场定位是什么,这是一个产品在市场上获得成功的重要因素。根据不同的市场定位,产品的成本控制在可以接受的范围内,才能从市场中获利。2.3.2 微控制器核心的选型本文所研究的嵌入式客户端是以其价格低廉、便携性、低功耗、体积小巧和功能够用为目标的。因此,在控制核心的选用上,不予考虑功能强大但价格较高的DSP数字处理器和32位微控制器,而只考虑选用具有有限内存资源的 8 位或 16 位微控制器。一般来说,有以下两种主要的选择方案:1. 8/16 位嵌入式微控制器8/16 位嵌入式微控制器一般都具有如下不足之处
37、:速度不够快,内存不够大,但是其价格低廉,体积小、功耗低,因此仍然是嵌入式领域的主力军,占有巨大的市场份额。为了能够保证顺利地将其接入以太网,必须在保证最基本的性能要求的前提下,对整个嵌入式系统尽可能地简化。嵌入式系统必须对标准的 TCP/IP 协议进行简化,以 Web 服务器或网络客户端形式接入以太网。考虑到嵌入式系统的成本必须低廉,同时又具有一定的设计灵活性,而且能够满足系统硬件的设计需要,本文所设计的嵌入式客户端的控制核心采用 8 位微控制器。其中,C8051F 系列微控制器(microcontroller unit, MCU)是由美国 Silicon Laboratories 公司研发
38、生产的一系列完全集成的混合信号片上系统(system on chip, SoC)。C8051F 系列 MCU 集成了一个完全兼容 MCS-51 指令集的高速 CIP-51 内核。该内核具有标准 8051 核心的程序地址和数据地址,采用流水线指令体系架构,其 70% 的指令能够在 1 到 2 个系统时钟周期内完成。C8051F 还内建了数据采集和控制系统中常用的模拟、数字外设及其他功能部件;并内置了在线可编程的 FLASH 程序存储器和内部 RAM,可以通过其外部数据存储器界面(EMIF)外接 XRAM。同时,C8051F 还集成了在片调试电路,通过 C2D 引脚可以对其进行非侵入式的全速在系统
39、调试。在本文的嵌入式系统中,所采用的 C8051F340(48 脚的 TQFP 封装)具有 40 个数字 I/O 引脚,当系统时钟频率为 48MHz 时,其峰值运算速度可达 48 MIPS,这为在该系统上设计和实现比较复杂的 TCP/IP 协议栈提供了有利条件。此外,它还提供 14 个中断源,可同时使用硬件增强型 SPI、SMBUS 和两个增强型 UART 串行口。其片内集成了 4352B(256B+4kB)SRAM、64kB FLASH 程序存储器、速度可达 0.2Msps 的 10位 ADC 以及带单端和差分模式的模拟多工通道。2. 32/64 位嵌入式控制器32/64 位嵌入式控制器的自
40、身资源比较丰富,运行速度较快,有强大的嵌入式实时操作系统(RTOS)和函数库的支持。嵌入式实时操作系统一般都已经在内核中添加了 TCP/IP 网络协议族,因此 32/64 位嵌入式系统可以很方便地接入以太网。2.3.3 以太网控制器的选型对 8 位微控制器而言,在选择以太网控制器时,需要考虑以下几个因素:1. 需要考虑以太网控制器是否支持 8 位工作模式由于主机是 8 位微控制器,因此要求所选的以太网控制器必须支持 8 位工作模式。实际上,在比较老的产品中,只有部分基于 ISA 总线的以太网控制器才能支持,所以基于 PCI 总线的以太网控制器不在考虑之列。而近几年才上市的产品,比较有代表性的有
41、Silabs公司的CP2200/1以太网控制器和Microchip的ENC28J60 以太网控制器,大多专门为嵌入式系统优化设计,完全支持这种工作模式。2. 需要考虑以太网控制器是否具有片上缓存最好选用具有足够片上缓存的以太网控制器,以简化系统的软硬件设计。3. 应考虑以太网控制器与主机的数据交换形式在 8 位模式下,有的以太网控制器可以支持中断,有的则只支持查询。这些势必对系统软件设计产生一定影响。4考虑与现有以太网的兼容性问题这些基于 ISA 总线的以太网控制器还可以分成兼容和非兼容两类。前者一般上市时间较早,可供借鉴的参考资料比较丰富;后者则多为近期产品,但性能更佳。表2-1 列出了目前
42、市面上几种可供选用的以太网控制器及其主要特性。表2-1 几种以太网控制器的比较制造商型号片内缓存/位8位中断模式以太网兼容性价格Cirrus LogicCS8900A4K/8否否高DavicomDM9008F8K/16是是低MicrochipENC28J608K/8是否中RealtekRTL80198K/16是是低SilabsCP22008K+2K+4K/8是否较高通过比较,RTL8019 和 CP2200 两种以太网控制器都适合本文的嵌入式系统,而其中的 CP2200 以太网控制器是一种使用得较广泛的以太网控制器,最终,本文选择 CP2200 以太网控制器作为嵌入式系统的以太网控制器。由美国
43、 Silicon Laboratories 公司生产的 CP2200高集成以太网控制器芯片集成了介质访问控制层(MAC)和物理层(PHY)的性能,可以方便地与通用MCU进行连接。另外,它还具有软件移植性好等优点。1. 性能指标(1) 以太网控制器集成 IEEE802.3 MAC 和 10BASE-T PHY,完全兼容 100/1000 BASE-T 网络;具有自动协商的全/半双工、自动极性检测和校正功能、自动冲突重新发送、自动填充及CRC生成并支持广播和多播 MAC 处理。(2) 并行主机接口(30 Mbps的传输速率)具有8位复用或非复用模式;复用模式仅需11个I/O引脚;英特尔或者摩托罗拉
44、总线格式;支持包接受中断和网络唤醒功能。(3) 8KB ISP非挥发性记忆体 Flash;厂商预先编程的唯一的48位MAC地址;不需要外接任何EEPROM。(4) LED 输出驱动器(连接/活动);专用 2KB 的 RAM 发送缓冲区和 4KB 的 RAM 接收先进先出缓冲区;电源复位;能够耐受 5V 电压的 I/O。(5) 提供了免版税TCP/IP协议族与设备驱动;TCP/IP协议族配置向导;硬件诊断软件和实例代码。(6) 提供的应用实例有远程检测和监测;库存管理;网络电话适配器;销售点设备;网络时钟;嵌入式 WEB 服务器;远程以太网到 UART 桥接。(7) 供电电压为 3.1 至 3.
45、6V。(8) 具有无铅48引脚 TQFP(9x9毫米见方)和无铅28引脚 QFN(5x5毫米见方)两种封装方式。(9) 预定的针脚数分别为 CP2200-GQ 是48引脚;CP2201-GM 是28引脚。(10)温度范围为 -40至+85 。2. 内部结构CP220X 以太网控制器内部可分为主机接口(Host Interface)、接收/发送缓冲区(TX/RX Buffer)、以太网介质访问控制(MAC)、以太网物理层(PHY)和 LED 控制等。内部结构如图2-2 所示。图2-2 CP2200 以太网控制器内部结构图3. 工作原理主处理器(Host)通过以太网控制器的主机接口来收发数据。主处
46、理器要向以太网发送数据时,先通过主机接口将数据报传送到以太网控制器的发送缓冲区(TX Buffer),然后发出发送命令。以太网控制器在发送完前一帧数据之后,自动将此数据报封装成以太网帧,将其发送到以太网上,从而完成此帧的发送。以太网控制器将接收到的数据帧通过 MAC 比较、CRC 校验后,由 FIFO 存到接收缓冲区(RX Buffer),收满一帧后,设置相应的中断标志位,主处理器通过查询该中断标志位来获取与新以太网数据帧相关的信息,进而做出相应的处理。以太网控制器内部有 FIFO 缓存和 CRC 生成器/校验器。接收逻辑在接收时钟脉冲的控制下,将串行数据组成字节送到 FIFO 和 CRC校验
47、器;发送逻辑将 FIFO 送来的字节在发送时钟脉冲的控制下逐步按位移出,并送到 CRC生成器;CRC 校验器逻辑在接收时对输入的数据进行 CRC 校验,将结果与帧尾的 CRC 比较,如不同,该帧数据将被拒收;在发送时, CRC生成器对数据帧自动生成 CRC,并附加在数据尾传送;地址识别逻辑对接收帧的目的地址与预先设置的本地物理地址进行比较,如果不同且不满足广播地址(broadcast address)的设定要求,以太网控制器将拒绝接收该帧数据。4. 内部 RAM 地址的分配CP2200 以太网控制器内置的存储器分别由 8KB Flash、4kB 接收缓存区和 2kB 发送缓存区组成,但 MCU 只需从 CP2200 以太网控制器读取数据或向 CP2200 以太网控制器发送数据就可以了,不必考虑具体是哪一种存储器,因而使用非常方便。5. C8051F340微控制器和 CP2200 以太网控制器的互联C8051F340微控制器为了有效地控制并