0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于ENC28J60以太网控制器实现微型嵌入式Web服务器的设计

电子设计 来源:作者:刘盼盼 夏路易 来源 作者:作者:刘盼盼 夏路 2019-11-06 07:46 次阅读

1 、引言

随着计算机、网络通信和Internet技术的飞速发展和不断进步,嵌入式系统在家庭和工业应用广泛。如何将嵌入式系统和工业控制系统接人Internet,综合利用嵌入式系统资源,实现嵌入式系统的远程管理和控制,已成为关注的研究课题,而实现嵌入式系统的网络化则成为嵌入式系统的发展趋势。

以太网以其成本低、速度快、应用普遍、有广泛的硬件和软件支持等优点为实现管理控制网络一体化提供可能,在现场设备内置WEB服务器,使现场设备具有网页发布功能,将Internet技术直接引入现场设备。

本设计是基于ARM7的微型嵌入式Web服务器。目前市场上大部分以太网控制器的封装均超过80引脚,而ENC28J60是业界最小的以太网控制器,只有28引脚,这样既能提供相应功能,又大大简化相关设计,减小空间,其标准的SPI串行接口只需4条总线即可实现与单片机连接,有利于在小型系统上实现以太网功能。在研究和分析TCP/IP协议的基础上,合理简化TCP/IP协议,选择实现ARP、IP、ICMP、TCP和HTTP协议。

2 、系统硬件设计

ENC28J60的硬件连接如图1所示。ENC28J60的硬件设计包括复位电路、时钟振荡器、网络变压器和其他外部元件以及LED配置单元模块。

基于ENC28J60以太网控制器实现微型嵌入式Web服务器的设计

2.1复位电路

当ENC28J60的RESET引脚为低电平时ENC28J60工作在复位模式。RESET引脚内部有弱上拉电阻,应外接一只10 kΩ的上拉电阻。

2.2 时钟振荡器

ENC28J60工作频率为25 MHz。在OSC1和OSC2引脚之间连接无源晶体振荡器。ENC28J60要求使用平行切割的晶体。本设计采用连接至OSC1引脚的外部25 MHz有源晶体振荡器驱动,此时3.3V的外部时钟连接OSC1引脚,OSC2引脚可使用一只接地电阻或断开OSC2引脚以减少系统噪声。

2.3 网络变压器和其他外部元件

实现以太网接口控制,还需多个标准外部元件:网络变压器、偏置电阻、储能电容和去耦电容。

差分输入引脚(TPIN+/TPIN-)需用一个变比为1:1的网络变压器实现10BASET。差分输出引脚(TPOUT+/TPOUT-)需用一个变比为1:1、带中心抽头的脉冲变压器实现。变压器需具有2 kV或更高的隔离能力,以防止静电干扰。本设计采用Pulse公司的集成以太网隔离变压器H1102。

差分输入/输出引脚都需串联2只49.7 Ω、精度为1%的电阻和1只0.01μF的电容,本设计采用并联两只100 Ω电阻获得49.7 Ω、精度为1%的电阻。

所有的电源电压引脚必须连接至外部同一个33 V电源。同理,所有的接地必须连接至同一外部地。每个电源电压引脚和地之间应连接1只0.1μF的陶瓷去耦电容,该电容应尽可能地靠近电源电压引脚放置。

2.4 LED配置

LEDA引脚和LEDB引脚在复位时支持极性自动检测,既可直接驱动LED,又可灌电流驱动。复位时ENC28J60检测LED的连接,并按照PHLCON寄存器的默认设置驱动。本设计LEDB采用拉电流的方式点亮LED。复位时该位清零且PHY默认在半双工模式下工作。

3 、系统软件设计

3.1 SPI接口

ENC28J60与微控制器MCU的连接通过SPI接口实现,支持10 Mb/s。但ENC28J60只支持SPI模式00,即CPOL=0和CPHA=0。另外,在空闲状态时SPI端口要求SCK为低电平,且不支持时钟极性选择。以下为SPI接口初始化的源代码:

基于ENC28J60以太网控制器实现微型嵌入式Web服务器的设计

3.2 TCP/IP协议栈的实现

考虑到单片机RAM存储空间的限制和具体应用要求,合理简化TCP/IP协议栈,选择实现ARP、IP、ICMP、TCP和HTTP协议。图2所示为精简的TCP/IP协议栈。

基于ENC28J60以太网控制器实现微型嵌入式Web服务器的设计

3.2.1 物理层接口的实现

物理层接口为ENC28J60的驱动程序,硬件方面是用ENC28J60的电路实现电缆的物理链接、介质访问控制、帧的发送与接收等功能,而与上层协议接口即为驱动程序,实现发送与接收数据帧。以下是其两个函数原型:

基于ENC28J60以太网控制器实现微型嵌入式Web服务器的设计

3.2.2 网络层协议的实现

网络层的协议包括ARP、IP、ICMP协议。网络间连接需知双方物理地址,而ARP协议是地址解析协议,实现IP地址到物理地址的转化。网际协议(IP)负责将消息从一个主机传送到另一个主机。ICMP协议是Internet控制消息协议,用于IP主机、路由器之间传递控制消息。控制消息是指网络是否畅通、主机是否可达、路由是否可用等网络本身消息。图3所示是ping命令测试远程用户和设计的微型嵌人式Web服务器后的响应情况。

基于ENC28J60以太网控制器实现微型嵌入式Web服务器的设计

3.2.3 TCP、HTTP协议的实现

传输控制协议(TCP)负责收集信息包,并且将其按适当的次序传输,接收端接收后再将其正确还原。传输协议同时保证了数据包在传送中准确无误。而HTTP是基于TCP协议的超文本传输协议,嵌人式Web服务器在与远程用户端建立TCP连接后发送网页数据,在HTTP协议发送流程中,由于TCP报文数据字段有长度限制,网页资源一股被分成若干段进行分段传送。在远程用户端打开IE浏览器,在地址栏输入嵌人式Web服务器的地址。

作者:刘盼盼 夏路易 来源:中国电子设计

参考文献

[1]Microchip Technology Inc. ENC28J60 Data Sheet [DB/OL]。 http://ww1.microchip.com/downloads/en/ DeviceDoc/39662b.pdf, 2006.

[2]Jeremy Bentham. TCP/IP LEAN(second edition)[EB/OL]。 http://www.iosoft.co.uk/tcplean.php, 2001.

[3]周晓阳 程红 张晓媛。新型以太网控制器ENC-28J60及其接口技术[J]。单片机与嵌入式系统应用,2006(8):34-36.

[4]周立功 张华。深入浅出ARM7-LPC213x/LPC214x(上册)[M]。北京:北京航空航天大学出版社,2005.。

[5]李荣鑫 喻国平。基于ARM的嵌入式WEB服务器技术研究[J]。微计算机信息,2007(8):145-146.

作者简介

刘盼盼(1982-), 男, 湖南郴州人, 太原理工大学控制理论与控制工程在读硕士,主要从事工业自动化新技术方面的应用研究。

通信地址:太原理工大学 信息工程学院,山西 太原 030024

责任编辑:gt
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微控制器
    +关注

    关注

    48

    文章

    7438

    浏览量

    150825
  • 控制器
    +关注

    关注

    112

    文章

    16092

    浏览量

    177023
  • 以太网
    +关注

    关注

    40

    文章

    5341

    浏览量

    170761
  • Web
    Web
    +关注

    关注

    2

    文章

    1255

    浏览量

    69287
  • HTTP
    +关注

    关注

    0

    文章

    499

    浏览量

    30972
收藏 人收藏

    评论

    相关推荐

    ENC28J60以太网模块与Arduino的连接方案介绍

    在本篇文章中,我们将学习如何将ENC28J60以太网模块与Arduino Web服务器进行连接,以在LAN局域或无线网络中的计算机与Ard
    的头像 发表于 11-01 10:38 8373次阅读

    新型以太网控制器ENC28J60及其接口技术

    作者姓名:周晓阳 程红 张晓媛引言ENC28J60是Microchip Technology(美国微芯科技公司)近期推出的28引脚独立以太网控制器。在此之前,
    发表于 05-06 09:18

    基于ENC28J60嵌入式网络接口设计

    。这些器件不仅结构复杂,面积庞大,且系统开销较大。近来,Microchip推出全球首枚28 引脚独立以太网控制器ENC28J60,可为嵌入式
    发表于 06-03 05:00

    如何将ENC28J60以太网模块与Arduino Web服务器进行连接

    在本篇文章中,我们将学习如何将ENC28J60以太网模块与Arduino Web服务器进行连接,以在LAN局域或无线网络中的计算机与Ard
    发表于 02-15 07:29

    基于ENC28J60嵌入式网络接口的设计Design of

    设计了以ENC28J60为核心的以太网接口实现方案,描述了该系统硬件架构的设计方法。在简要介绍了以太网控制器
    发表于 06-01 14:22 96次下载

    新型以太网控制器ENC28J60及其接口技术

    介绍新型独立以太网控制器ENC28J60的结构、功能以及与外部接口的软硬件设计。ENC28J60以太网
    发表于 01-19 11:59 88次下载

    ENC28J60以太网模块【教程】

    ENC28J60以太网模块教程,详细说明!
    发表于 01-12 11:28 36次下载

    基于ENC28J60嵌入式网络接口的设计

    介绍ENC28J60络接口体系,ENC28J60嵌入式网络接口的应用
    发表于 03-01 17:48 6次下载

    基于ENC28J60以太网控制器及其应用

    SPI接口以太网控制器ENC28J60介绍、工作过程、及应用
    发表于 03-01 17:46 17次下载

    ENC28J60 spi 接口 以太网 网络模块 提供 代码

    ENC28J60 spi 接口 以太网 网络模块 提供 代码ENC28J60 spi 接口 以太网 网络模块 提供 代码ENC28J60 s
    发表于 05-17 17:47 22次下载

    微雪电子ENC28J60以太网模块简介

    ENC28J60以太网模块 SPI接口 基于SPI接口的网络模块 应用于嵌入式WEB服务器 提供测试程序(STM32) 型号
    的头像 发表于 12-30 11:17 2725次阅读
    微雪电子<b class='flag-5'>ENC28J60</b><b class='flag-5'>以太网</b>模块简介

    ENC28J60口资料详细资料说明

    常见问题汇总,ENC28J60络模块使用,STM32开发指南-库函数版本_V1.3 口部分,基于ENC28J60嵌入式网络接口的设计,
    发表于 06-15 08:00 4次下载
    <b class='flag-5'>ENC28J60</b>的<b class='flag-5'>网</b>口资料详细资料说明

    使用ENC28J60实现嵌入式网络接口的设计论文说明

    设计了以ENC28J60 为核心的以太网接口实现方案, 描述了该系统硬件架构的设计方法。在简要介绍了以太网控制器
    发表于 07-14 17:09 8次下载
    使用<b class='flag-5'>ENC28J60</b><b class='flag-5'>实现</b><b class='flag-5'>嵌入式</b>网络接口的设计论文说明

    ENC28J60以太网控制器的电路原理图免费下载

    本文档的主要内容详细介绍的是ENC28J60以太网控制器的电路原理图免费下载。
    发表于 12-03 16:48 52次下载
    <b class='flag-5'>ENC28J60</b><b class='flag-5'>以太网</b><b class='flag-5'>控制器</b>的电路原理图免费下载

    arduino loar_ENC28J60以太网模块与Arduino的连接方案介绍

    在本篇文章中,我们将学习如何将ENC28J60以太网模块与Arduino Web服务器进行连接,以在LAN局域或无线网络中的计算机与Ard
    发表于 12-16 16:52 7次下载
    arduino loar_<b class='flag-5'>ENC28J60</b><b class='flag-5'>以太网</b>模块与Arduino的连接方案介绍