1、嵌入式系统课程设计湖南文理学院课程设计报告课程名称: 嵌入式系统课程设计 嵌入式系统网络接口模块设计目录目录3摘要4ABSTRACT5第一章 设计要求6第二章 设计内容描述6第三章 网络接口模块的硬件设计83.1主控芯片LPC213283.2以太网控制器ENC28J609第四章 络接口模块的软件设计104.1以太网芯片ENC28J60的驱动程序设计114.2 MCU(LPC2132)主控程序14心得体会15参考文献16摘要 嵌入式系统已广泛应用于网络中,所以需要相应的网络接口满足需求,介绍了设计此系统网络接口模块所需要的核心以太网控制器ENC28J60,分析了其工作机理,通过设置ENC28J6
2、0内部寄存器来完成数据的有效接收和发送,采用高速高性能的LPC2132微控制器与以太网控制器ENC28J60和接口芯片MAX232相连接实现网络接口模块设计,对接口电路作了详细阐述,并对系统控制软件进行了具体分析。该模块用途广泛,具有良好的应用前景。【关键词】ENC28J60,SPI,TCPIP协议,使能ABSTRACT Embedded systems are applied widely in network,it is necessary tO provide corresponding network interfacesThe paper introduces core Ethern
3、et controller ENC28J60 and its work mechanismTransferring and Receiving data by ENC28J60 internal registers are analyzed in detailModular design of network interface is implemented through connecting efficient and high speed MCU LPC2132 micro controller with Ethernet controller ENC28J60 and interfac
4、e chip MAX232Interface circuit and system control software are studied in detailEmbedded system interface module based on Ethernet is widely utilized and has good application prospectKEYWORDS ENC28J60,SPI,TCPIP protoc01Emp一 设计要求 采用高性能的lpc2132和新以太网控制器enc28j60以及max232连接实现网络接口模块硬件软件二 设计内容描述 随着Internet商
5、品化进程的加速,特别是在Internet上越来越多的信息资源共享显示出巨大的诱惑力,在不使用PC机的情况下利用微控制器通过ISP(Internet服务供应商)接入互联网,将取代以传统的PC机为中心的应用,成为未来Internet发展的趋势。通过以太网可实现局域网内的嵌入式器件与互联网的连接,所以要将单片机系统接人Internet必须做好两方面的准备:硬件上,要结合系统主控器(单片机)加一个网络接口;软件上,要提供相应的通信协议。用TCPIP协议中的UDP、ARP及简单的应用层协议,实现了嵌入式系统的网络接口模块,从而使得各种不具备网络功能的嵌入式系统设备具有了互通和联网功能,既提高了数据传输速
6、度和准确性,又扩展了数据的有效传输半径。三 网络接口模块的硬件设计模块主要由3部分组成(图1):PHILIPS公司的ARM体系结构的LPC2132芯片作为主控芯片的功能,又可以片,MICROCHIP公司的ENC28J60作为以太网控制芯片,还有MAX公司的MAX32作为串口通讯芯片。Max232单电平电源转换与网络接口电路3.1主控芯片LPC2132Enc28j60以太网控制器Lpc2132微控制器 RX TX 图一 LPC2132微控制器是基于一个支持实时仿真和嵌入式跟踪的32位ARM7TDMISCPU,带有64kB的高速Flash存储器。128位宽度的存储器接口和独特的加速结构使32位代码
7、能够在最大时钟速率下运行。对代码规模有严格控制的应用可使用16位Thumb模式将代码规模降低超过30,而性能的损失却很小。较小的封装和很低的功耗使LPC2132特别适用于访问控制和POS机等小型应用中;由于内置了宽范围的串行通信接口和16kB的片内SRAM,也非常适合于通信网关、协议转换器。LPC2132集成了丰富的外围模块,提供了方便的调试手段,可以完全满足设计需要,并大大简化了设计步骤。它可以通过片内boot装载程序实现在系统编在应用编程(ISPIAP);同时对代码进行实时调试和高速跟踪;片内有1个10位的AD转换器和1个10位的DA转换器、2个32位定时器外部事件计数器(带4路捕获和4路
8、比较通道)、PWM单元(6路输出)和看门狗、多个串行接口(2个16C550、UART、2个高速12C总线、SPI和SSP)、可配置优先级和向量地址的向量中断控制器、小型的LQFP64封装上包含多达47个通用I0口(可承受5V电压);多达9个边沿或电平触发的外部中断管脚;低功耗模式:空闲和掉电;通过外部中断或BOD将处理器从掉电模式中唤醒;单电源,具有上电复位(POR)和掉电检测(BOD)电路I CPU操作电压范围:30V36 V(33 V士10)。Lpc2132芯片图MAX232芯片是美信(MAXIM)公司专为RS-232标准串口设计的单电源电平转换芯片,使用+5v单电源供电。器件特别适合电池
9、供电系统,这是由于其低功耗关断模式可以将功耗减小到5uW以内。MAX225、MAXX233、MAX235以及MAX245/MAX246/MAX247不需要外部元件,推荐用于印刷电路板面积有限的应用。MAX220MAX249系列线驱动器/接收器,专为EIA/TIA-232E以及V.28/V.24通信接口设计,尤其是无法提供12V电源的应用。Max232引脚图3.2以太网控制器ENC28J60 ENC28J60是Microchip生产的,全球目前最小封装的以太网控制器,符合IEEE 8023协议的ENC28J60有28引脚,既大大简化相关设计,又减小占板空间。此外,ENC28J60以太网控制器采用
10、业界标准的SPI串行接口,只需4条连线即可与主控单片机连接。这此功能加上由Microchip免费提供的、用于单片机的TCPIP软件堆栈,使之成为目前市面上最小的嵌入式应用以太网解决方案。ENC28J60的主要特点兼容IEEE 8023协议的以太网控制器;集成的MAC和10BASET物理层;支持个双工和半双工模式;数据冲突时可编程自动重发;SPI接口速度高达10Mbs;8k数据接收发送双端口RAM;提供快速数据移动的内部DMA控制器;可配置的接收发送缓冲区大小;支持中播、多播和广播;两个可编程LED输出,带7个中断源的两个中断引脚,TTL电平输入。ENC28J60兼容IEEE8023协议,内部集
11、成了物理层,支持个双工和半双工模式,芯片内的8k双端口RAM可以自由配置,特殊的过滤器Microchip的可编程模式匹配过滤器,可自动评价、接受或拒收、中播、多播、或广播信息包,以减主控单片机机的处理负荷。ENC28J60引脚简单,SPI接口和中和单片机机相连接,网络的四个引脚通过网络变压器后连接到RJ45接口,两个中断引脚接接单片机的外部中断或者连接到通用IO口,两个指示灯引脚外接发光管连接到地或者电源,其余引脚是电源和地。ENC28J60内部采用33V电源,但是其接口都可以容忍5V的电压值,振荡器可以选用无源晶体或者有源晶振。以太网控制器ENC28J60硬件连接图四 络接口模块的软件设计
12、软件部分主要包括模块的TCPIP协议软件、以太网芯片ENC28J60的驱动程序、参考开放系统互连(OSI)模型,在嵌入式系统中通常采用一种简化的4层网络模型,分别为:应用层、传输层、网络层和链路层 表一 层次结构 功能应用层通过以太网和TCPIP传输数据,实现与Ethernet和数据终端的交互通信传输层实现UDP协议。让网络程序通过明确定义的通道及某些特性获取数据网络层实现IP协议,提供ARP地址解析协议,实现从地址到数据链路物理地址的映像链路层由单片机控制网卡芯片ENC28J60实现 4.1以太网芯片ENC28J60的驱动程序设计 在编写网络驱动程序之前,必须对ENC28J60的寄存器设置和
13、工作过程有所了解。ENC28J60内部的静态RAM有三种类型,控制寄存器,以太网缓冲区和物理层寄存器,控制寄存器用来进行芯片的配置和控制等功能,直接SPI读写;以太网缓冲区可以由SPI接口配置为接收和发送以太网数据包的RAM区;物理层寄存器用来配置,控制和监测物理层的状态,此寄存器不能直接由SPI接口读写,只能通过媒体独立接口MII访问。 ENC28J60控制寄存器中最基本和重要的5个寄存器,EIE:以太网中断使能控制寄存器,分为总中断使能和各部分使能控制,EIR:以太网中断标志寄存器,在接收和发送数据包时根据不同的标志位进入不同的执行程序。ESTAT以太网状态寄存器,反映以太网当前是否数据碰
14、撞、忙信息、错误信息、时钟状态等信息,ECON2:以太网辅助控制寄存器,设置数据指针,芯片节能等,ECoNl:以太网主控制寄存器,主要用来设置不同层的寄存器空间。以太网缓冲区大小共8kB,可以通过SPI接口编程配置成接收和发送缓冲区两大部分,由以太网控制器相关寄存器进行设置。物理层寄存器共有32个寄存器,其中只有9个可以使用,每个寄存器为16位宽度,不能直接由SPI总线读写,主要配置的寄存器包括物理层的复位、节电、双工设置,LED的设置等。ENC28J60与以往的以太网控制器在程序设计上不同,但采用的也是类似RTL8019A的中断的方式。当主程序响应ENC28J60的中断的时候,在EIR入口,
15、根据读取EIR寄存器的值来确定程序的走向。其网络驱动程序软件流程图。YN接受缓冲区为空置已收到的数据供上层软件使用读该帧数据清EIR的PKUTF标志Y重新列队指针传递下一帧数据N发送队列完?YNY置传递状态到上层软件该传递状态寄存器清的标志中断返回帧发送完收到一新帧读ENC28160的EIR图二NYNYYYNNNY有串口数据ARP协议处理ARP数据?按UDP拆包UDP端口正确?UDP数据?有网络数据按UDP打包数据初始化ENC28160 图三4.2 MCU(LPC2132)主控程序 LPC2132主控程序流程图如图3所示,LPC2132首先初始化芯片ENC28J60。初始化部分主要完成:软件复
16、位;设定临时使用的以太网物理地址;设定接收帧的类型;确定数据的传送方向;中断允许;使能接收中断;接收发送使能。LPC2132主要完成数据的解包打包。LPC2132从网络接收到数据报,则对数据报进行分析,如果是ARP数据包,则程序转入ARP处理程序。如果是IP数据包且使用UDP协议,端口正确,则将数据解包后通过串口输出。反之,如果LPC2132从串口收到数据,则将数据按照UDP协议格式打包,送入ENC28J60,由ENC28J60把数据输出到局域网中。可以看出,链路层由ENC28J60完成,TCPIP的网络层和传输层由LPC2132来处理,而应用层则由用户根据需要进行数据处理。整个系统模块是通过
17、UCOSII来对系统资源进行有效管理并合理调度任务的。心得体会 所设计的嵌入式系统网络接口模块具有成本低、硬件少、传输速度快、使用方便等优点。特别适合于对传统不具备网络通讯能力的设备进行智能化改造,也适用于新型智能仪器仪表和工业自动化系统设备的开发,有着广泛的应用前景。 当计算能力不再是瓶颈,当计算机、手机、PDA和各种智能机器,都能通过有线或无线网络连接起来的时候,IT技术的热点和市场竞争的焦点将是人机智能交互技术,即人类通过使用多种手段或技术与信息终端进行交互,实现人与人、人与机器及网络进行信息沟通。FreeTTS是Java体系中一个轻量级的语音交互实现,但其功能完备,实现方法简单,结合J
18、ava本身的特点,基于该工具的各类语音交互系统开发将会快速有效的完成,在人机智能交互及其相关领域,FreeTTS必将扮演举足轻重的角色之一。参考文献1 祁树胜SPI接口以太网控制器ENC28J60及其应用微计算机信息,2006,22(8z)12662682 周立功ARM嵌入式系统软件开发实例(一)M北京:北京航空航天大学出版社。20043 Kenneth DReedTCPIP基础M北京:电子工业出版社,20024 郝洁,王慕坤,付金生嵌入式TCPIP技术研究及应用J哈尔滨理工大学学报,2004,9(2):100-1025 周立功ARM嵌入式系统基础教程M北京:北京航空航天大学出版社,200517附录