




已阅读5页,还剩56页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于单片机的终端设计学 生: 徐 鑫 学 号:04124422 指导老师: 贺 辉 专 业:通信工程 完成年月:2008年6 月 目录摘 要1Abstract1第一章 绪论2第二章 嵌入式系统简介42.1嵌入式的定义和组成42.1.1定义42.1.2组成52.2嵌入式系统的特点62.3嵌入式系统的应用前景7第三章 总体设计83.1部件选择83.1.1 控制器选择83.1.2 以太网模组的选择93.2 控制器系统103.2.1 spce061开发板简介103.2.2 61板主要接口和电路143.3 以太网模块组183.3.1 DM9000以太网通信模组简介183.3.2 主要元件介绍193.4 系统硬件设计方案213.4.1系统硬件框图213.4.2系统硬件连接图21第四章 系统硬件的实现234.1 unIP协议栈与TCP/IP简介234.2 IDE集成开发环境284.3 TCP服务器的主循环流程304.4 HTTP应用层处理流程334.5 服务器端网页文件的制作36第五章 系统调试及运行结果395.1 程序编写395.2 系统调试405.3 运行结果40第六章 总结与展望43参考文献44致谢47附录一 英语原文48附录二 中文翻译5460摘 要随着现代信息技术、网络技术和家电控制技术的融合与发展,现代家庭也将加入“信息化、自动化、网络化”的行列,通过Internet远程访问由家用电器组成的家庭网络已成为未来家庭的重要信息工具。本课题以16位凌阳单片机SPCE061A为主控制器,配合DM9000以太网模块电路,实现以太网数据包的收发,并结合上层TCP/IP协议,完成一个Web服务器。该Web服务器可以被局域网中PC机访问,局域网中的PC通过访问Web服务器上的网页控制家电的打开/关闭。本文详细描述了凌阳单片机开发板的硬件组成、以DM9000为核心的以太网数据收发模块电路、unIP协议栈软件的流程图,在SPCE061A上实现简单的HTTP协议,使SPCE061A与DM9000构成的网络终端可以作为Web服务器,对局域网提供网页浏览服务。关键词:SPCE061A DM9000 以太网 TCP/IPAbstractAccording to the development of information and network technology, Modern home appliances have been to information products. And more and more home network which is composed by intelligent home appliances have been an important information tool.The design introduced to the use of SPCE061A as the main controller, with DM9000 Ethernet module, and Ethernet packets transceiver, combined with the upper TCP / IP protocol, to complete a Web server. The Web server can be in the PC-LAN access, LAN PC by visiting the Web servers homepage on the control of appliances on / off. The paper described in detail the hardware of SPEC061,DM9000 Ethernet module, flow chart of unIP. The simple HTTP protocol is finished. The network which composed of SPCE061 and DM9000 acts as Web server. Internet Explore function is realized. Key Words: SPCE061A DM9000 Ethernet TCP / IP第一章 绪论21世纪的重要特征就是数字化、网络化和信息化,它是一个以网络为核心的信息时代。网络的出现更使人们的生活日益便捷。随着IT技术,特别是网络技术的发展,“智能住宅”、“家庭自动化”等技术日益受到社会的关注。智能家居是指利用先进的计算机技术、网络通信技术、综合布线技术,将与家居生活有关的名种子系统有机的结合在一起,通过统筹管理,让家庭生活更舒适、安全、有效和节能。与普通家居相比,智能家居不仅具有传统的居住功能,还能提供舒适安全、高效节能、具有高度人性化的生活空间;将一批原来被动静止的家居设备转变为具有“智慧”的工具,提供全方位的信息交换功能,帮助家庭与外部保持信息交流畅通,优化人们的生活方式,帮助人们有效地安排时间,增强家庭生活的安全性,也可以管理各种能源支出,节约资金等。家庭智能化系统的核心是家庭智能终端。通过家庭智能终端,实现系统信息采集、信息输入、逻辑处理、信息输出、自动控制等功能。 目前人们家中的家电产品数量较多,人们希望通过现代信息技术便捷地将这些设备组合起来进行统一的智能化管理。可以想象用手机,电脑,或者电话将家里的进行统一有效的管理会是一个怎样的情景,这将使生活更加简单,充满乐趣,提高生活质量。在你准备看电视节目的时候,伴随着电视的打开,窗帘会将会自动合拢,房间的光线逐渐调整到最适宜的程度或者,在你回家的路上,只需用手机发送一条短信就会自动为你提前启动空调,调整室内温度到合适程度,接通通风装置;调节好室内的光线;把你预先准备好的食物用微波炉加热,或许还为你准备好了一杯热牛奶随着智能家居系统的不断完善和发展,如此这样的人性化的智能将越来越多的出现在人们的生活中。本课题的意义:利用61板和DM9000以太网模组,完成一个web服务器,利用控制led灯的开关代替对家电的控制模拟。通过在开发板上实现运行,调试各项功能的机会,对61板和dm9000有直观的认识和深入的理解;通过编程以完成功能的过程使自己的软件编程能力有一定的提高;学习了解,增添了开发设计的认识和兴趣。系统具体研究内容与目标如下:利用SPCE061A板作为控制板,配合DM9000以太网模组,完成一个Web服务器,实现一定的功能。主要内容和目标:1.在SPCE61A作为主控制器对DM9000以太网控制芯片进行控制,完成以太网数据报的收发。2.在SPCE061A上实现简单的HTTP协议,使SPCE061A与DM9000构成的网络终端可以做为Web服务器,对局域网提供网页浏览服务;3.设计简单的带有控制界面的网页,通过该网页可以完成对三个设备的“打开/关闭”控制。4.对设备的控制通过播报语音或高低电平变化。第二章 嵌入式系统简介2.1嵌入式的定义和组成2.1.1定义根据IEEE(国际电机工程师协会)的定义,嵌入式系统是“控制、监视或者辅助装置、机器和设备运行的装置”。在中国嵌入式系统领域,比较认同的嵌入式系统概念是:嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。这个定义上,可从几方面来理解嵌入式系统: 嵌入式系统是面向用户、面向产品、面向应用的,它必须与具体应用相结合才会具有生命力、才更具有优势。因此可以这样理解上述三个面向的含义,即嵌入式系统是与应用紧密结合的,它具有很强的专用性,必须结合实际系统需求进行合理的裁减利用。 嵌入式系统是将先进的计算机技术、半导体技术和电子技术和各个行业的具体应用相结合后的产物,这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。所以,介入嵌入式系统行业,必须有一个正确的定位。例如Palm之所以在PDA领域占有70以上的市场,就是因为其立足于个人电子消费品,着重发展图形界面和多任务管理;而风河的Vxworks之所以在火星车上得以应用,则是因为其高实时性和高可靠性。 嵌入式系统必须根据应用需求对软硬件进行裁剪,满足应用系统的功能、可靠性、成本、体积等要求。所以,如果能建立相对通用的软硬件基础,然后在其上开发出适应各种需要的系统,是一个比较好的发展模式。目前的嵌入式系统的核心往往是一个只有几K到几十K微内核,需要根据实际的使用进行功能扩展或者裁减,但是由于微内核的存在,使得这种扩展能够非常顺利的进行。2.1.2组成 嵌入式系统既然也是计算机系统,因此也有硬件系统和软件系统两部分组成。(1) 嵌入式系统的硬件嵌入式系统的核心是各种类型的嵌入式微处理器,近年来嵌入式CPU的主要发展方向是小体积、高性能、低功耗。专业分工也越来越明显,出现了专业的知识产权核(Intellectual Property Core)供应商,如ARM、MIPS等,这些属于硬核,还有提供软核的,如Altera的NIOS系列。嵌入式微处理器的体系结构经历了复杂指令集 (CISC)到精简指令集 (RISC)的转变,位数则由4位、8位、16位、32位逐步发展到64位。目前几乎每个半导体制造商都生产嵌入式微处理器,流行的体系结构有30多个系列,其中以ARM、PowerPC、MIPS等使用最为广泛。(2) 嵌入式系统的软件嵌入式系统是现代多科学相互融合的产物,它以应用技术产品为核心,以计算机技术为基础,是适应应用产品环境的产品。嵌入式系统无多余软件,并且软件一般固化在ROM或FLASH芯片上,硬件也无多余RAM存储器容量,具有要求系统运行可靠性高、成本低、体积小和功耗少等特点。在嵌入式系统中,采用操作系统的嵌入式系统一般都是任务相对复杂,CPU数据长度为16/32/64位的高档微控制器,有实时性要求。而4/8/16位的单片机系统,一般均无操作系统要求,其控制和编程也相对简单。除操作系统外,对嵌入式系统而言,更重要的任务是应用程序的编写,因为,每个行业都有自身的特点,产品的特点也不尽相同,这就需要不同的应用程序来实现。2.2嵌入式系统的特点同通用型计算机系统相比具有以下特点: 嵌入式系统通常是面向特定应用的嵌入式CPU与通用型的最大不同就是嵌入式CPU大多工作在为特定用户群设计的系统中,它通常都具有低功耗、体积小、集成度高等特点,能够把通用CPU中许多由板卡完成的任务集成在芯片内部,从而有利于嵌入式系统设计趋于小型化,移动能力大大增强,跟网络的耦合也越来越紧密。 嵌入式系统是将先进的计算机技术、半导体技术和电子技术与各个行业的具体应用相结合后的产物。这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。 嵌入式系统的硬件和软件都必须高效率地设计,量体裁衣、去除冗余,力争在同样的硅片面积上实现更高的性能,这样才能在具体应用中对处理器的选择更具有竞争力。 .嵌入式系统和具体应用有机地结合在一起,它的升级换代也是和具体产品同步进行,因此嵌入式系统产品一旦进入市场,具有较长的生命周期。 为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中,而不是存贮于磁盘等载体中。 嵌入式系统本身不具备自举开发能力,即使设计完成以后用户通常也是不能对其中的程序功能进行修改的,必须有一套开发工具和环境才能进行开发。 目前,嵌入式系统多用于手机等操作系统的开发。具有巨大的市场潜力.2.3嵌入式系统的应用前景 嵌入式控制器的应用几乎无处不在:移动电话、家用电器、汽车无不有它的踪影。嵌入控制器因其体积小、可靠性高、功能强、灵活方便等许多优点,其应用已深入到工业、农业、教育、国防、科研以及日常生活等各个领域,对各行各业的技术改造、产品更新换代、加速自动化化进程、提高生产率等方面起到了极其重要的推动作用。 嵌入式系统其目的就是要把一切变得更简单、更方便、更普遍、更适用。正如我国资深嵌入式系统专家沈绪榜院士的预言, “未来十年将会产生头大小、具有超过一亿次运算能力的嵌入式智能芯片”,将为我们提供无限的创造空间。总之“嵌入式微控制器或者说单片机好象是一个黑洞,会把当今很多技术和成果吸引进来。中国应当注意发展智力密集型产业”。第三章 系统硬件的实现3.1部件选择3.1.1 控制器选择目前比较流行51系列单片机和凌阳单片机以及应用范围日益广泛的ARM。 AT89C系列单片机需要用仿真器来实现软硬件的调试,较为繁琐; AT89S系列八位单片机除具有AT89C系列单片机所有的优点外,具有更大的程序存储空间,可在线仿真的功能,方便调试。另一大流行热点是凌阳十六位单片机。随着单片机功能集成化的发展,其应用领域也逐渐地由传统的控制,扩展为控制处理、数据处理以及数字信号处理(DSP,Digital Signal Processing)等领域。凌阳的16位单片机就是为适应这种发展而设计的。它的CPU内核采用凌阳最新推出的nSP(Microcontroller and Signal Processor)16位微处理器芯片(以下简称nSP)。围绕nSP所形成的16位nSP系列单片机(以下简称nSP家族)采用的是模块式集成结构,它以nSP内核为中心集成不同规模的ROM、RAM和功能丰富的各种外设接口部件。而ARM系列微处理器更凌阳单片机相比显然又高了一个档次,ARM微处理器目前包括下面几个系列,以及其它厂商基于ARM体系结构的处理器,除了具有ARM体系结构的共同特点以外,每一个系列的ARM微处理器都有各自的特点和应用领域。 ARM7系列 ARM9系列 ARM9E系列 ARM10E系列 SecurCore系列 Intel的Xscale Intel的StrongARM其中,ARM7、ARM9、ARM9E和ARM10为4个通用处理器系列,每一个系列提供一套相对独特的性能来满足不同应用领域的需求。SecurCore系列专门为安全要求较高的应用而设计。由于本设计需要一个高响应速度多输入输出控制器,对比51和61两种单片机,显然61单片机和ARM微处理器更适合本次设计,但是考虑到性价比及本人的熟悉程度等各方面原因,最终选定凌阳公司的SPCE061A为本次设计的控制器。3.1.2 以太网模组的选择以太网是Xerox公司发明的基带LAN标准。它采用带冲突检测的载波监听多路访问协议(CSMACD),速率为10Mbps,传输介质为同轴电缆。以太网是在20世纪70年代为解决网络中零散的和偶然的堵塞而开发的,而IEEE8023标准是在最初的以太网技术基础上于1980年开发成功的。现在,以太网一词泛指所有采用CSMACD协议的局域网。以太网20版由数字设备公司、Intel公司和Xerox公司联合开发,它与IEEE8023兼容。目前比较常用的以太网控制器出自以下几个公司:Realtek、台湾联杰国际、Broadcom等等。以下是Realtek、台湾联杰国际常用器件的性能对比:以DM9008AE+8015与RTL8019AS+8051为例说明。1. RTL8019AE的I/O速度比DM9008A(10)和DM9000AE(10/100)慢一倍;2.DM9008AE是48PIN,体积小,RTL8019as是100PIN;3.DM9008AE采用的是LINUX驱动,升级灵活,方便,而且不需更改逻辑针脚;RTL8019AE采用的是NE2000平台,不易修改。4.DM9008AE支持TCP/IP硬加速,减轻CPU的负担,使网络的上传,下传速度增快;5.DM9008AE支持双绞线自适应(Auto-Midx)功能;6.DM9008AE是2.5/3.3供电,功耗比RTL8019AS要低很多;经过上述比较再结合实际需要和性价比等原因,本次设计选用DM9000。3.2 控制器系统3.2.1 spce061开发板简介SPCE061A 是继nSP系列产品SPCE500A等之后凌阳科技推出的又一款16位结构的微控制器。与SPCE500A不同的是,在存储器资源方面考虑到用户的较少资源的需求以及便于程序调试等功能,SPCE061A里内嵌32K字的闪存(FLASH)。较高的处理速度使nSP能够非常容易地、快速地处理复杂的数字信号。因此,与SPCE500A相比,以nSP为核心的SPCE061A微控制器是适用于数字语音识别应用领域产品的一种最经济的选择。SPCE061A主要包括输入/输出端口、定时器/计数器、数/模转换、模/数转换、串行设备输入输出、通用异步串行接口、低电压监测和复位等部分,并且内置在线仿真电路ICE接口,较高的处理速度使其能够快速的处理复杂的数字信号。主要性能指标:16位nSP微处理器;工作电压(CPU) VDD为2.43.6V (I/O) VDDH为2.45.5VCPU时钟:0.32MHz49.152MHz ;内置2K字SRAM;内置32K FLASH;可编程音频处理;晶体振荡器;系统处于备用状态下(时钟处于停止状态),耗电仅为2A3.6V;2个16位可编程定时器/计数器(可自动预置初始计数值);2个10位DAC(数-模转换)输出通道;32位通用可编程输入/输出端口;14个中断源可来自定时器A / B,时基,2个外部时钟源输入,键唤醒;具备触键唤醒的功能;使用凌阳音频编码SACM_S240方式(2.4K位/秒),能容纳210秒的语音数据;锁相环PLL振荡器提供系统时钟信号;32768Hz实时时钟; 7通道10位电压模-数转换器(ADC)和单通道声音模-数转换器;声音模数转换器输入通道内置麦克风放大器和自动增益控制(AGC)功能;具备串行设备接口;具有低电压复位(LVR)功能和低电压监测(LVD)功能;内置在线仿真电路ICE(In- Circuit Emulator)接口;具有保密能力;具有WathDog功能。图3-1 SPCE061A框图表3-1 SPCE061A框图说明POWER5V&3VPLL锁相环外部电路Power-电源指示灯Sleep-睡眠指示灯RESET复位电路K4复位按键PROBE在线调试串行5针接口S5EZ-PROBE和PROBE切换的拨断开关J12、J3耳机插孔和两针喇叭插针DAC一路音频输出电路,采用SPY0030集成放大器MIC麦克风输入电路DSC32768晶振电路VREFA/D转换外部参考电压输入接口R/C芯片其他外围电阻、电容电路K1K3扩展的按键SPCE061A61板核心:16位微处理器PORTA/B32个I/O口图3-2 SPCE061A结构图3.2.2 61板主要接口和电路 图3-3 SPCE061A板接口说明 (一)输入/输出(I/O)接口61板将SPCE061A的32个I/O口全部引出:IOA0IOA15,IOB0IOB15,对应的SPCE061A引脚为:A口,4148、53、5460;B口,51、8176、6864。而且该I/O口是可编程的,即可以设置为输入或输出。设置为输入时,分为悬浮输入或非悬浮输入,非悬浮输入又可以设置为上拉输入或是下拉输入;在5V情况下,上拉电阻为150K,下拉电阻为110K;设置为输出时,可以选择同相输出或者反相输出。(二)音频输入/输出接口正如我们在前面介绍的61板具有强大的语音处理功能,如图3-3所示,X1是语音的MIC输入端,自带自动增益(AGC)控制, J3是语音输出接口,一个2pin的插针外接喇叭,由DAC输出引脚21或22经语音集成放大器SPY0030A放大,然后输出,SPY0030A是凌阳的一款芯片,功能相当于LM386,但是比LM386音质好,它可以工作在2.46.0V范围内,最大输出功率可达700mW(LM386必须工作在4V以上,而且功率只有100mW)。(三)在线调试器PROBE和EZ_PROBE接口图3-3中J4为PROBE的接口,该接口有5pin,我们就是通过它将PROBE与PC机连接起来进行调试、仿真和下载程序的。这样,就不需要再用仿真器和编程器了。图3-3中的J11是EZ_PROBE的接口,我们提供一根下载线用作程序的下载,一端连接PC机的25pin并口,另外一端接61板的5pin EZ_PROBE接口,参见图1.5。(四)电源接口图3-3中J10是电源接口,61板的内核SPCE061A电压要求为3.3V,而I/O端口的电压可以选择3.3V也可以选择5V。所以,在板子上具有两种工作电压:5V和3.3V。对应的引脚中15、36和7必须为3.3V, 对于I/O端口的电压51、52、75可以为3.3V也可以是5V,这两种电平的选择通过跳线J5来选择。61板的供电电源系统采用用户多种选择方式:1、 5V供电 用户可以用3节电池来供电,5V直流电压直接通过SPY0029(相当于一般3.3V稳压器)稳压到3.3V,为整个61板提供了5V和3.3V两种电平的电压。另外也可以直接外接5V的直流稳压源供电,5V电压再通过SPY0029稳压到3.3V。2、 3.3V供电用户可以提供直流3.3V电压为实验板进行供电,此时整个板子只有3.3V电压,I/O端口电压此时只有一种选择。需要注意的是由于SPY0029A最大输出电流为50mA,所以如果需要外接一些模组时要先考虑负载能力。(五)外部复位和内部复位外部复位是对61板内部的硬件初始化,61板本身具有上电复位功能,即通电就自动复位,另外,还具有外部复位电路,即在引脚6上外加一个低电平就可令其复位。如图3-3中的RESET按键。同时,SPCE061A可通过编程来启用低电压监测和低电压复位功能,可对系统的电源电压进行监控,使系统能运行在一个正常、可靠的工作环境,一旦出现电源异常的情况,能立即采取相对应的措施,使系统及时恢复正常。1 低电压监测LVD (Low Voltage Detect)低电压监测功能可以提供系统内电源电压的使用情况。如果系统电压Vcc低于用户设定的低限电压VLVD,P_LVD_Ctrl单元的第15位(LVD监测标志位)将被置为“1”;反之,当Vcc VLVD时,该位被置为“0”。SPCE061A具有3级可编程低限电压:2.4V、2.8V、和3.2V,通过对P_LVD_Ctrl单元编程来进行控制,参见图3-4。假定VLVD=3.2V,当系统电压Vcc低于3.2V时,P_LVD_Ctrl单元的第15位会被置为“1”。系统预设的低限电压为2.4V。图3-4 低电压监测(LVD)/低电压复位(LVR)2 低电压复位LVR (Low Voltage Reset)通过某种方式,使单片机内存各寄存器的值变为初始的操作称为复位(reset)。SPCE061A复位电路如图3-3所示,在RESB端加上一个低电平就可令其复位。该电路具有手动和上电复位两种功能。当电源电压低于2.2V时,系统会变得不稳定且容易出错。导致电源电压过低的原因很多,如电压的反跳、负载过重、电池电量不足。如果电源电压低于2.2V时,会在4个时钟周期之后产生一个复位信号,使系统复位。LVR时序如图3-5所示。图3-5 复位电路(六)时钟电路如图3-1是单片机外围时钟电路,32768Hz的实时时钟经过PLL倍频电路以后,产生系统时钟频率Fosc,Fosc再经过分频得到CPU时钟频率(CPUCLK),可通过设定P_SystemClock(写)(7013H)单元来控制。预设的Fosc、CPUCLK分别为24.576MHz和Fosc/8。用户可以通过对P_SystemClock单元编程完成对系统时钟和CPU时钟频率的定义。此外,32768Hz RTC振荡器有两种工作方式:强振模式和自动弱振模式。处于强振模式时,RTC振荡器始终运行在高耗能的状态下。处于自动弱振模式时,系统在上电复位(power on reset) 后的前7.5秒内处于强振模式,然后自动切换到弱振模式以降低功耗。CPU被唤醒后预设的时钟频率为Fosc/8,可以根据需要调整该值。图3-6 单片机外围时钟电路3.3 以太网模块组3.3.1 DM9000以太网通信模组简介以太网模组是一款以DM9000为核心芯片的以太网数据包收发控制模块,该模块与控制器配合,除可以完成以太网数据包收发之外,还具有4Mbit的串行Flash存储器SPR4096,可以为用户提供一个较大容量的存储空间。DM9000是一款以太网控制芯片,在网络中它可自动获得同设定MAC地址一致的IP包,完成IP包的收发。在本方案中应用了SPCE061A单片机做为主控制器,用以控制DM9000完成以太网数据包收发以及TCP/IP协议实现。系统通过交叉网线与PC机的网卡直接相连,或通过直通网线与局域网交换机或Hub相连。以太网模组在SPCE061A的控制下进行以太网数据包的收发,完成与局域网内的其他网络设备的通讯。在运行于SPCE061A平台的TCP/IP协议的基础上,搭建应用层HTTP服务器协议,实现Web服务器的功能,并向局域网提供网络浏览服务。同时,通过分析客户端提交的请求信息,实现对家电的控制。技术特性 :1、和MCU 连接模式有ISA 8 bit / ISA 16 bit模式,并且支持3.3V 和5V 的I/O 控制。可方便和不同电压和界面的MCU 连接。2、支持多种连接模式;电端口支持10M HALF/ 10M FULL / 100MHALF/100M FULL / AUTO (N-WAY) 。 3、拥有4Mbit串行数据存储器及其接口。 功能介绍 :1) 可通过此设备和凌阳单片机互连到局域网或者广域网进行通讯。 2)支持多种连接模式;电端口支持10M HALF/ 10M FULL / 100MHALF/100M FULL / AUTO (N-WAY)。 3)可在此卡上进行数据存储。 4)通过SPCE061A与此设备搭配可完成一个简单的WEB服务器。 5)通过SPCE061A与此设备搭配可完一些简单的控制。 3.3.2 主要元件介绍(一)SPR4096封装采用Dip24 管脚封装。SPR4096使整个系统增加了4M存储空间,这同凌阳的语音录放相配合将产生很好的效果,大大增加了此系统的数据存储空间,可进行网络上的一些稳定数据的存储。(二)DM90001. 封装采用LQFP 100 管脚封装,所占用之面积和高度小。2. 使用电压为3.3V ,最大耗用电流为100mA,十分省电。3. 和MCU 连接模式有ISA 8 bit / ISA 16 bit / uP 8bit / uP 16 bit / uP 32 bit / 68K 模式,并且支持3.3V 和5V 的I/O 控制。可方便和不同电压和界面的MCU 连接。4. 内置10/100M PHY,支持多种连接模式;电端口支持10M HALF/ 10M FULL / 100MHALF/100M FULL / AUTO (N-WAY);另提供光端口100M HALF / 100M FULL 。5. 支持EEPROM (93C46 ),可供存放系统所需信息。图3-7 DM9000以太网通信模组外观图表3-2 外观图说明ADM9000HRJ-45接口B25M晶振I连接状态指示灯CSPR4096JDM9000数据端口引出D控制跳线KSPR4096操作端口E电源输入口LDM9000控制端口引出F电源输出口N5V/3.3V变压器G10/100滤波变压器3.4 系统硬件设计方案 3.4.1系统硬件框图根据系统设计要求,经过上述关键器件的选择,本系统总体框图如图2-1所示,系统由DM9000太网模组,SPCE061单片机最小系统,扬声器和家电设备控制部分组成。以太网模块电路在SPCE061的控制下进行以太网数据包的收发,完成与局域网的其他网络设备通讯。在运行于SPCE061平台的TCP/IP服务器协议,实现Web服务器的功能,并向局域网提供网络浏览服务。同时,通过分析客户端的请求信息,实现对家电的控制。 图3-8 系统硬件框图 3.4.2系统硬件连接图用61板控制以太网模组,使用了IOA口,以及IOB12IOB15共计20个I/O口。硬件连接如图 2.2所示。另外,以太网模组的RJ-45接口需要使用一根网线连接至局域网交换机或Hub,以便可以和局域网通讯。也使以太网模组直接与PC机通讯,这时需使用交叉网线连接PC机与以太网模组。图3-9 系统硬件连接图第四章 系统软件的实现4.1 unIP协议栈与TCP/IP简介unIP协议栈简介unIP是运行在凌阳公司nSP系列单片机上的一个精简TCP/IP 协议栈。协议栈的初始版本由LwIP 移植而来,之所以不沿用LwIP的名字是因为移植工作不仅仅只是LwIP说明的arch目录下的改动,core部分也做了不少的修改以适应nSP的16bit的特性(nSP并不具有8bit的数据类型,地址也是以16bit为单位),因此unIP与LwIP并不兼容,此外,增加了DNS Client域名解析客户端到协议栈中,以及部分应用实例,例如WEB SERVER等等,综合以上原因,给本协议栈重新命名为unIP,特指是运行于nSP系列单片机之上的网络协议栈。unIP Stack从资源消耗来说是一个精简的协议栈,而协议栈的实现却是非常的完整。表 4-1所示就是本协议栈所具有的所有特性。目前,unIP是以库的形式提供给用户,通过对各个部分API的调用,即可编写自己的应用层协议。API总共分7部分,包括网络接口层(netif开头)、动态内存管理模块(mem开头)、缓冲区管理模块(pbuf)、UDP层(已精简)、TCP层、DHCP模块(已精简)和DNS模块。TCP/IP协议栈使得用户在设计嵌入式网络系统时无需处理以太网底层协议的数据包,而直接处理运输层送给应用层的数据包即可。在本系统中,需要利用unIP协议栈中提供的运输层TCP协议,建立应用层HTTP协议,以便完成Web服务器的功能。表4-1 unIP协议栈特性特性unIP Stack多网络接口(ethernet,slip)ARPIP(不支持IP分片与重组)ICMP(包括ECHO和destination unreach)UDP(包括UDP Checksum的计算)TCP选项(只支持最大报文段长度MSS)TCP滑动窗口TCP慢启动、拥塞避免TCP快速重传、快速恢复TCP错序数据重组TCP紧急数据往返时间会计(RTT)DHCP客户端(可自动获取网络设置)DNS客户端(可解析普通域名以及邮件地址mx记录)模式化以及非模式化缓冲区存贮管理动态内存管理原始API(网络编程)支持支持支持支持支持,可选(已精简)支持支持支持支持支持,可选支持支持支持,可选(已精简)支持,可选支持支持,可选支持目前,unIP是以库的形式提供给用户,通过对各个部分API的调用,即可编写自己的应用层协议。API总共分7部分,包括网络接口层(netif开头)、动态内存管理模块(mem开头)、缓冲区管理模块(pbuf)、UDP层(已精简)、TCP层、DHCP模块(已精简)和DNS模块。 TCP/IP协议栈使得用户在设计嵌入式网络系统时无需处理以太网底层协议的数据包,而直接处理运输层送给应用层的数据包即可。而在本系统中,需要利用unIP协议栈中提供的运输层TCP协议,建立应用层HTTP协议,以便完成Web服务器的功能。 TCP/IP简介(1)TCP/IP的通讯协议 这部分简要介绍一下TCP/IP的内部结构。TCP/IP协议组之所以流行,部分原因是因为它可以用在各种各样的信道和底层协议(例如T1和X.25、以太网以及RS-232串行接口)之上。确切地说,TCP/IP协议是一组包括TCP协议和IP协议,UDP(User Datagram Protocol)协议、ICMP(Internet Control Message Protocol)协议和其他一些协议的协议组。 (2)TCP/IP整体构架概述 TCP/IP协议并不完全符合OSI的七层参考模型。传统的开放式系统互连参考模型,是一种通信协议的7层抽象的参考模型,其中每一层执行某一特定任务。该模型的目的是使各种硬件在相同的层次上相互通信。这7层是:物理层、数据链路层、网路层、传输层、话路层、表示层和应用层。而TCP/IP通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。这4层分别为: 应用层:应用程序间沟通的层,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。 传输层:在此层中,它提供了节点间的数据传送服务,如传输控制协议(TCP)、用户数据报协议(UDP)等,TCP和UDP给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。 互连网络层:负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收),如网际协议(IP)。 网络接口层:对实际的网络媒体的管理,定义如何使用实际网络(如Ethernet、Serial Line等)来传送数据。 (3)TCP/IP中的协议 以下简单介绍TCP/IP中的协议都具备什么样的功能,都是如何工作的: a IP 网际协议IP是TCP/IP的心脏,也是网络层中最重要的协议。 IP层接收由更低层(网络接口层例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层-TCP或UDP层;相反,IP层也把从TCP或UDP层接收来的数据包传送到更低层。IP数据包是不可靠的,因为IP并没有做任何事情来确认数据包是按顺序发送的或者没有被破坏。IP数据包中含有发送它的主机的地址(源地址)和接收它的主机的地址(目的地址)。 高层的TCP和UDP服务在接收数据包时,通常假设包中的源地址是有效的。也可以这样说,IP地址形成了许多服务的认证基础,这些服务相信数据包是从一个有效的主机发送来的。IP确认包含一个选项,叫做IP source routing,可以用来指定一条源地址和目的地址之间的直接路径。对于一些TCP和UDP的服务来说,使用了该选项的IP包好像是从路径上的最后一个系统传递过来的,而不是来自于它的真实地点。这个选项是为了测试而存在的,说明了它可以被用来欺骗系统来进行平常是被禁止的连接。那么,许多依靠IP源地址做确认的服务将产生问题并且会被非法入侵。 b. TCP 如果IP数据包中有已经封好的TCP数据包,那么IP将把它们向上传送到TCP层。TCP将包排序并进行错误检查,同时实现虚电路间的连接。TCP数据包中包括序号和确认,所以未按照顺序收到的包可以被排序,而损坏的包可以被重传。 TCP将它的信息送到更高层的应用程序,例如Telnet的服务程序和客户程序。应用程序轮流将信息送回TCP层,TCP层便将它们向下传送到IP层,设备驱动程序和物理介质,最后到接收方。 面向连接的服务(例如Telnet、FTP、rlogin、X Windows和SMTP)需要高度的可靠性,所以它们使用了TCP。DNS在某些情况下使用TCP(发送和接收域名数据库),但使用UDP传送有关单个主机的信息。 c. UDP UDP与TCP位于同一层,但对于数据包的顺序错误或重发。因此,UDP不被应用于那些使用虚电路的面向连接的服务,UDP主要用于那些面向查询-应答的服务,例如NFS。相对于FTP或Telnet,这些服务需要交换的信息量较小。使用UDP的服务包括NTP(网络时间协议)和DNS(DNS也使用TCP)。 欺骗UDP包比欺骗TCP包更容易,因为UDP没有建立初始化连接(也可以称为握手)(因为在两个系统间没有虚电路),也就是说,与UDP相关的服务面临着更大的危险。 d. ICMP ICMP与IP位于同一层,它被用来传送IP的的控制信息。它主要是用来提供有关通向目的地址的路径信息。ICMP的Redirect信息通知主机通向其他系统的更准确的路径,而Unreachable信息则指出路径有问题。另外,如果路径不可用了,ICMP可以使TCP连接体面地终止。PING是最常用的基于ICMP的服务。 e. TCP和UDP的端口结构 TCP和UDP服务通常有一个客户/服务器的关系,例如,一个Telnet服务进程开始在系统上处于空闲状态,等待着连接。用户使用Telnet客户程序与服务进程建立一个连接。客户程序向服务进程写入信息,服务进程读出信息并发出响应,客户程序读出响应并向用户报告。因而,这个连接是双工的,可以用来进行读写。 两个系统间的多重Telnet连接是如何相互确认并协调一致呢?TCP或UDP连接唯一地使用每个信息中的如下四项进行确认: 源IP地址 发送包的IP地址。 目的IP地址 接收包的IP地址。 源端口 源系统上的连接的端口。 目的端口 目的系统上的连接的端口。 端口是一个软件结构,被客户程序或服务进程用来发送和接收信息。一个端口对应一个16比特的数。服务进程通常使用一个固定的端口,例如,SMTP使用25、X windows使用6000。这些端口号是广为人知的,因为在建立与特定的主机或服务的连接时,需要这些地址和目的地址进行通讯。4.2 IDE集成开发环境nSP? IDE是由凌阳科技提供的一个集成开发环境,它集程序的编辑、编译、链接、调试和仿真等功能为一体。具有友好的交互界面、下拉菜单、快捷键和快速访问命令列表等,使程序设计工作更加方便、高效。此外,它的软件仿真功能可以不连接仿真板,模拟硬件的部分功能来调试程序。 凌阳十六位单片机集成开发环境采用项目方式进行文件管理。项目(Project)是指为用户调试程序建立起来的一个开发环境,提供用户程序及资源文档的编辑和管理,并提供各项环境要素的设置途径,最后将通过对用户程序及库的编制(包括编译、汇编以及链接等)为用户提供出一个良好的调试环境。凌阳十六位单片机集成开发环境的工具栏中含有nSP IDE 提供的3 种工具栏:标准、编辑和调试工具栏。每种工具栏都有固定和浮动两种形式。把鼠标移到固定形式工具栏中没有图标的地方,按住左按钮,向下拖动鼠标,即可将工具栏变为浮动工具栏;双击浮动工具栏的标题条,则可将其变为固定工具栏。固定形式的标准工具栏位于菜单栏的下面,它以图标的形式提供了部分常用菜单命令的功能。只要用鼠标单击代表某个命令的图标按钮,就能直接执行相应的菜单命令。图4-1 IDE主界面主界面里通常有三个主要窗口:Workspace(工作区)窗口、Edit(编辑)窗口和Output(输出)窗口。进行窗口切换只需在各窗口处单击鼠标左键即可。此外,主界面里还提供下拉菜单、工具栏等。nSP IDE 支持软件仿真和在线调试。在两种调试过程中,均有单步运行、全速运行、断点调试以及变量窗口、寄存器窗口、内存窗口、反汇编窗口等以方便用户进行软件调试和硬件调试。软件调试时,集成开发环境可以仿真各种中断和端口状态。这些均为软件开发者提供了方便。图4-2 IDE调试窗口在nSP IDE 中,配备硬件声明的头文件和常用函数模块,例如键盘扫描模块,语音音量调节模块等等。另外还配备各种库文件,包括标准C 常用的库函数、凌阳音频库函数等,尤其是凌阳音频库函数,只要了解这些函数的使用方法,用户就可以轻而易举的完成平时认为较神秘的语音播放、语音录入和语音识别功能。这些均可以大大加快开发者的开发进程。4.3 TCP服务器的主循环流程如图 4-3所示是创建TCP服务器的主循环流程。首先初始化unIP协议栈,然后使用DM9000创建一个网络接口,添加至unIP协议栈内,并将其设置为unIP协议栈的默认网络接口。然后申请创建一个TCP协议控制块,并将其配置为监听本机80端口(Web服务的默认端口),同时设置好TCP协议接受连接的回调函数。回调函数在这里是指将定义的函数的函数指针通过某种方式告诉协议栈,使得协议栈在适当的时候可以通过这个函数指针调用该函数,从而达到执行操作的目的。图4-3 TCP服务器的主循环流程此后,程序在主循环中不断检测DM9000是否有新的数据输入,并将接收到的数据包送至协议栈处理。处理过程是协议栈内部完成的,用户无需关心。当TCP的三次握手完成之后,协议栈会自动调用用户设置好的接受连接回调函数,交由应用层处理连接建立后的事宜。协议栈对接收到的remote数据的处理流程如图4-4所示。这个流程的大部分是在unIP这个精简TCP/IP协议栈中实现的。图4-4 Web Server协议栈处理流程至此,一个基于TCP协议的服务器即被建立。它不断监听某个特定端口流入的数据,并对数据做出响应。在本系统中,以上回调函数均定义在http.c文件中,用来处理客户端与Web服务器之间建立连接过程中发生的不同事件。4.4 HTTP应用层处理流程 HTTP协议是一个简单的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 九年级英语下册 Unit 13 We're trying to save the earth Section A第1课时(1a-2d)教学设计(新版)人教新目标版
- 人教版七年级上册生物3.1.1 藻类、苔藓和蕨类植物教学设计
- 餐前餐中餐后培训
- 损有余补不足-【2022年暑假预习】云名著《世说新语》之“德行”卷
- 三年级数学上册 五 四则混合运算第2课时 除法和加、减的混合运算教学设计 西师大版
- 人教部编版五年级上册10 牛郎织女(一)教案设计
- 肺癌伴脑转移护理查房
- 电网服务培训
- 报销制度培训
- 2024中国能源建设集团东电三公司社会招聘6人笔试参考题库附带答案详解
- 《控制计划培训》课件
- 中学风险辨识评估和应急资源调查报告
- 《他汀不耐受的临床诊断与处理专家共识》解读
- 2024年中考英语复习:补全对话 中考真题练习题汇编(含答案解析)
- 2024年郑州信息科技职业学院高职单招(英语/数学/语文)笔试历年参考题库含答案解析
- 部编版二年级下册道德与法治第三单元《绿色小卫士》全部教案
- 乳猪料生产工艺
- Braden压疮风险评估量表解析
- 蔚来培训课件
- 牙周病的护理课件
- 【ABC分类管理法在吉利汽车企业库存管理中的应用分析案例报告7200字(论文)】
评论
0/150
提交评论