一种嵌入式网络接口设计

最新更新时间:2012-05-15来源: 互联网关键字:嵌入式  网络接口 手机看文章 扫描二维码
随时随地手机看文章

 1 引言

  随着Internet 的出现和以太网的迅速发展, 基于以太网的设备控制越来越多。目前市场上大部分以太网控制器采用的封装均超过80 引脚, 如RTL8019AS、DM9008、CS8900A 等。这些器件不仅结构复杂, 面积庞大, 且系统开销较大。近来, Microchip推出全球首枚28 引脚独立以太网控制器ENC28J60, 可为嵌入式系统提供低引脚数、低成本、精简的远程通讯解决方案。

  设计了以ENC28J60 为核心的以太网接口实现方案, 描述了该系统硬件架构的设计方法。在简要介绍了以太网控制器ENC28J60 的结构、功能、外围电路的基础上, 对ENC28J60 与Atmega16 的SPI 通讯进行了阐述。此方案不仅成本低, 而且可以实现500Kbps 以上的传输速率, 满足了嵌入式系统的Internet 控制要求。

  2 ENC28J60 网络接口体系结构

  ENC28J60 是带有行业标准串行外设接口(Serial PeripheralInterface, SPI)的独立以太网控制器。它符合IEEE 802.3 的全部规范, 采用了一系列包过滤机制以对传入数据包进行限制。它还提供了一个内部DMA 模块, 以实现快速数据吞吐和硬件支持的IP 校验和计算。与主控制器的通信通过两个中断引脚(INT和WOL)和SPI 脚(SO、SI、SCK、CS)实现, 数据传输速率高达10Mb/s.两个专用的引脚(LEDA、LEDB)用于连接LED, 进行网络活动状态指示。图1 所示为ENC28J60 的典型应用电路。

  

ENC28J60 的典型应用电路

 

  ENC28J60 由7 个主要功能模块组成:SPI 接口, 充当主控制器和ENC28J60 之间通信通道; 控制寄存器, 用于控制和监视ENC28J60; 双端口RAM缓冲器, 用于接收和发送数据包; 判优器, 当DMA、发送和接收模块发出请求时对RAM缓冲器的访问进行控制; 总线接口, 对通过SPI 接收的数据和命令进行解析;MAC 模块:实现符合IEEE 802.3 标准的MAC 逻辑; PHY 模块, 对双绞线上的模拟数据进行编码和译码。ENC28J60 还包括其他支持模块, 诸如振荡器、片内稳压器、电平变换器(提供可以接受5V 电压的I/O 引脚)和系统控制逻辑。

  根据以上说明, ENC28J60 应用于嵌入式网络接口是非常合适的, 有广阔的应用发展前景。

  3 ENC28J60 在嵌入式网络接口的应用

  3.1 硬件电路设计

  利用ENC28J60 可以构成不同功能的网络终端节点, 如网络服务器、带Internet 功能的设备、远程监控(数据采集, 诊断)设备等。图2 所示为基于ENC28J60 的嵌入式网络接口的硬件电路原理图。电路中有:2 个LED 状态指示灯主要用来显示网络连接状态, 包括PHY 是否冲突、连接是否建立、是否接收数据、连接速度、双工模式等; 必需的偏置电阻R3(2kΩ, 精度为1%);高速局域网电磁隔离模块(即RJ45 以太网接口), 应用中,ENC28J60 的物理端口与隔离变压器HR901170A 连接时必须符合IEEE802.3 对物理层规范的要求, 如RJ45 的插孔与隔离变压器的间隔应尽量小, 输出和输入差分信号对的走线要有很好的隔离。

  

基于ENC28J60 的嵌入式网络接口的硬件电路原理图

 

  电路中的主控制器采用Atmel 公司的ATmega16 单片机,它具有先进的RISC(精简指令集计算机)结构、16 kB 可编程Flash 存储器、512 B 的EEPROM和1 kB 片内SRAM, 具有丰富的外设接口, 其SPI 接口允许ATmega16 与外设进行高速的同步数据传输。本设计中ATmega16 SPI 配置为主机模式,ENC28J60 为从设备。ATmega16 的SPI 工作模式由CPOL、CPHA 设置, 根据ENC28J60 的SPI 读写时序, ATmega16 的SPI工作模式应设置为模式0.ATmega16 通过将ENC28J60 的CS引脚置低实现与其的同步。SPI 时钟由写入到SPI 发送缓冲寄存器的数据启动, SPI MOSI(PB5)引脚上的数据发送秩序由寄存器SPCR 的DORD 位控制, 置位时数据的LSB(最低位)首先发送, 否则数据的MSB(最高位)首先发送。我们选择先发送MSB,同时接收到的数据传送到接收缓冲寄存器, CPU 进行右对齐从接收缓冲器中读取接收到的数据。应该注意, 当需要从ENC28J60 中读取多个数据时, 即使ENC28J60 并不需要ATmega16 串行输出的数据, 每读取一个数据前都要向SPI 发送缓冲器写一个数据以启动SPI 接口时钟。由于SPI 系统的发送方向只有1 个缓冲器, 而在接收方向有2 个缓冲器, 所以在发送时一定要等到移位过程全部结束后, 才能对SPI 数据寄存器执行写操作; 而在接收数据时, 需要在下一个字节移位过程结束之前通过访问SPI 数据寄存器读取当前接收到的数据, 否则第1 个数据丢失。

  3.2 ENC28J60 软件初始化

  在使用ENC28J60 发送和接收数据包前, 必须对器件进行初始化设置。根据不同的应用, 一些配置选项可能需要更改。初始化设置工作包括接收和发送缓冲器、接收过滤器、晶振启动时间、MAC 寄存器、PHY 寄存器。初始化芯片之前先关闭单片机的中断输入, 对RESET 引脚给定一个持续的低电平复位信号, 然后对相应的寄存器进行设置。设置完成所有需要的寄存器后, 判断以太网状态中的时钟启动标志位是否置位, 然后开中断。

  系统初始化后进入主程序循环, 包括单片机的控制作用和网络数据传输。对于以太网传输部分来说。主要有两个作用:一是对要发送的数据按照以太网数据帧格式进行封装并发送; 二是对接收的以太网数据帧进行解包, 供应用程序使用。

3.3 ENC28J60 发送数据包

  在进行数据包发送或接收时, 要先对写缓冲存储器(WriteBuffer Memory, WBM)命令掌握。WBM允许主控制器将字节写入8KB 发送和接收缓冲存储器。如果ECON2 寄存器中的AUTOINC 位置1, 那么在写完每个字节的最后一位之后,EWRPT 指针将会自动地递增指向下一个地址(当前地址加1)。

  如果写入地址1FFF 且AUTOINC 置1, 则写指针加1 指向0000h.将CS 引脚拉为低电平启动WBM命令。然后将WBM操作码及随后的5 位常量1Ah 送入ENC28J60.在发送WBM命令和常量之后, 由EWRPT 指向的存储器中的数据将移入ENC28J60, 首先移入最高位。在接收到8 个数据位后, 如果AUTOINC 置1, 写指针将自动递增。主控制器可以继续在SCK引脚提供时种信号、在SI 引脚发送数据同时保持/CS 为低电平, 从而可以连续写入存储器。当AUTOINC 被使能时, 以该方式就可以连续地向缓冲存储器写入字节而无需多余的SPI命令。拉高CS 引脚电平可结束WBM命令。在WBM操作期间,SO 引脚一直为高阻态, WBM操作时序, 请参见图3.

  

图3 写缓冲存储器时序图

 

  ENC28J60 内的MAC 在发送时会自动生成前导符和帧起始定界符。此外, MAC 可根据配置生成填充(如果需要)和CRC字段。主控制器必须生成所有其他帧字段, 并将它们写入缓冲存储器, 以待发送。此外, ENC28J60 还要求在待发送的数据包前添加一个包控制字节。主控制器应:1.正确编程ETXST 指针,使之指向存储器中未用的单元。它将指向包控制字节, 在本设计方案中, 指针应编程为0120h; 2.使用WBM SPI 命令写入包控制字节、目标地址、源MAC 地址、类型/ 长度和数据有效负载; 3.正确编程ETXND 指针。它应指向数据有效负载的最后一个字节, 在本设计方案中, 指针应编程为0156h; 4.将EIR.TXIF位清零、将EIE.TXIE 位和EIE.INTIE 位置1 允许在发送完成后产生中断(如果需要); 5.将ECON1.TXRTS 位置1 开始发送。如果在TXRTS 位置1 时正在进行DMA 操作, ENC28J60 会等待DMA 操作完成再发送。这种等待是必需的, 因为DMA 和发送引擎共享同一个存储器访问端口。同样如果在TXRTS 已置1后, ECON1 中DMAST 位才置1, DMA 在TXRTS 位清零前不会采取任何动作。如果正在进行发送, 不应通过SPI 读取或写入任何待发送的字节。主控制器将TXRTS 位清零可取消发送。如果数据包发送完成或因错误取消而中止发送, ECON1.TXRTS位会被清零, 一个7 字节的发送状态向量将被写入由ETXND +1 指向的单元, EIR.TXIF 会被置1 并产生中断(如果允许)。要验证数据包是否成功发送, 应读取ESTAT.TXABRT 位。如果该位置1, 主控制器在查询发送状态向量的各个字段外, 还应查询ESTAT.LATECOL 位, 以确定失败的原因。下面给出写数据包的源代码:

  

 

  3.3 ENC28J60 接收数据包

  假设接收缓冲器已完成初始化, MAC 已正确配置而且接收过滤器已配置为接收以太网数据包, 主控制器应该:1.如果需要在接收到数据包时产生一个中断, 就要将EIE.PKTIE 位和EIE.INTIE位置1; 2. 如果需要在由于缓冲空间不足导致数据包丢失时产生一个中断, 就要将EIR.RXERIF 位清零, 并将EIE.RXERIE位和EIE.INTIE 位置1; 3. 通过将ECON1.RXEN 位置1使能接收。在将RXEN 置1 后, 将不能修改双工模式和接收缓冲器起始和结束指针。此外, 要阻止不期望接收的数据包, 在更改接收过滤器配置寄存器(ERXFCON) 和MAC 地址前建议将RXEN 清零。在使能接收后, 没有过滤掉的数据包将写入循环接收缓冲器。任何不符合过滤条件的数据包将被丢弃, 但主控制器无法识别一个数据包已被丢弃。当接收到一个数据包并将其完整写入缓冲器时, EPKTCNT 寄存器将递增, EIR.PKTIF 位将置1, 并产生一个中断(如果允许), 同时硬件写指针ERXWRPT 自动递增。

  4 结束语

  本文作者的创新点: 通过ENC28J60 芯片所设计的嵌入式网络接口可以在多种环境中应用, 能按需要进行配置来完成系统功能,并且在成本、体积、功耗、灵活性等方面具有明显的优势,能为智能化仪器与设备、信息家电等开拓新的应用前景。

关键字:嵌入式  网络接口 编辑:神话 引用地址:一种嵌入式网络接口设计

上一篇:经典案例分享:两种键盘扫描方法比较分析
下一篇:嵌入式系统结构与协同性探讨

推荐阅读最新更新时间:2023-10-12 20:40

基于TMS320C32的嵌入式RTOS视频网络检测系统
摘要:介绍了基于DSP芯片TMS320C32图像处理平台的网络测试系统,给出了使用专用视频输入处理芯片SAA711和CPLD实现高速连续视频帧采集的设计思路。同时给出了该系统在嵌入式系统中基于PPP协议的Internet的连接方法。 关键词:PCI总线;PPP协议;DSP;VxWorks操作系统;嵌入式 在远程测控系统中,嵌入式系统由于其稳定性和实时性优于传统平台而得到迅速发展。本文提出了一种以DSP芯片和VxWorks为操作系统的新型嵌入式系统设计方法。 1 测试系统工作原理 图1所示的测试系统的主要任务是采用DSP芯片处理通过摄像头拍摄并经过A/D转换的图像。整个系统由视频解码器、DSP和PCI总线专用芯片组成。系统
[应用]
试验站远程监控系统网络接口的设计
远程监控系统广泛应用于工业远程监控、智能楼宇、安防监控和网络家电等方面,通过远程监控,技术人员无须亲临现场就可以方便控制和掌握仪器、设备的运行状态及各种参数,方便地利用本地丰富的软硬件资源对远程对象进行过程控制。 由于试验数据在导线传输过程中容易受到电磁干扰和产生衰减,特别是处于运动状态的设备或被隔离区域内设备的数据测量,敷设信号传输线将十分不便,而且安装与维护比较麻烦。针对这种情况,我们设计了一种新型的无线数据传输网络接口方案,可以克服传统有线数据传输存在的弊端。    方案选择 1 远程监控系统信号传输的基本要求 大型的试验站多为自动测试系统,其试验参数由各种变送器、变换器及测量仪器等测量所得。有些数据需要现场监控
[嵌入式]
基于MSP430的嵌入式DTMF拨号解码器实现方案
摘 要:本文介绍了一种基于MSP430的嵌入式DTMF拨号解码器实现方案。DTMF拨号部分使用4根I/O线的电阻网络,配合软件产生DTMF信号。利用MSP430F133内置的ADC,并采用改进的Goertzel算法,实现DTMF信号的实时解码。该方案成本低、性能可靠,已经得到了实际应用。 关键词:DTMF拨号 DTMF解码 改进的Goertzel算法 MSP430F133 引言 DTMF(双音多频)信号是电话网中常用的信令,无论是家用电话、移动电话还是程控交换机上,多采用DTMF信号发送接收号码。DTMF技术还可以用于电力线载波通信等场合。可见,DTMF拨号和解码在通信系统及其它方面有着广泛的应用。通常DTMF信号的检测采用专
[单片机]
嵌入式系统中USB主机控制器的实现
  通用串行总线(USB)接口具有简单灵活、高带宽、易于扩展和热插拔等优点,它目前已成为数码设备的标准接口之一,小到U盘、MP3,大到数码相机、打印机,USB接口的身影无处不在。但我们目前所使用的USB移动设备多为USB的外设(Device) , 比如USB的移动硬盘、USB接口的数码相机,一般只能在PC上使用,即只能通过PC实现文件和数据的交换。   业界和用户的需求呼唤USB主机的嵌入式化,因此在嵌入式系统中实现USB主机功能成了USB设计领域的热点之一。   迄今为止,嵌入式USB主机的最大市场和增长点在移动消费电子设备领域, 比如PDA与USB记忆棒传递数据、MP3之间传递歌曲、数码相机连接打印机等。  
[单片机]
<font color='red'>嵌入式</font>系统中USB主机控制器的实现
适合STM32的三大嵌入式操作系统
基于STM平台且满足实时控制要求操作系统,有以下5种可供移植选择。分别为μClinux、μC/OS-II、eCos、FreeRTOS和都江堰操作系统(djyos)。下面分别介绍这五种嵌入式操作系统的特点及不足。 1、μClinux μClinux是一种优秀的嵌入式Linux版本,其全称为micro-control Linux,从字面意思看是指微控制Linux。同标准的Linux相比,μClinux的内核非常小,但是它仍然继承了Linux操作系统的主要特性,包括良好的稳定性和移植性、强大的网络功能、出色的文件系统支持、标准丰富的API,以及TCP/IP网络协议等。因为没有MMU内存管理单元,所以其多任务的实现需要一定技巧。
[单片机]
基于IP核的PCI总线接口设计与实现
嵌入式Internet是随着嵌入式系统的广泛应用和计算机网络技术的发展而产生的一种新概念和技术,嵌入式系统以应用为中心,以计算机技术为基础,且软硬件可裁剪,现已赢得了巨大的市场。随着Internet的发展,各种设备都产生了连接性的需求,从冰箱到电表,似乎所有电器需要连入互联网。通过为现有嵌入式系统增加因特网接入能力来扩展其功能,以Internet为介质实现信息交互,从而产生了嵌入式Internet技术,要实现嵌入式设备的网络化,需要实现TCP/IP网络协议栈,但由于Internet上各种通信协议对计算机存储器、运算速度等的要求比较高,使得嵌入式系统协议栈的开发实现并不顺利。 目前过两个关键因素影响网络协议栈的开发,一是性能和效率
[应用]
基于嵌入式Web的电子交警系统
近年来智能交通系统发展迅速,它力图把先进的信息技术、通信技术、计算机技术、电子控制技术等高新技术有效地集成运用于整个交通运输管理体系,在大范围内建立起一种全方位的实时、准确、高教的交通运输综合管理系统。迄今为止,日本、美国、西欧、澳大利亚等国家和地区都建立了相应的机构从事相关的开发应用研究,并取得了一些成果。 闯红灯是造成交通事故的主要原因之一。本电子交警系统的主要功能就是抓拍、处理机动车闯红灯现象,这是现代城市交通监控系统的重要组成部分。目前,由于机动车闯红灯的相关信息还没有实时地接入网络,违章车辆的受理、罚款、办结等后期管理存在着很大的滞后性。因此,本系统采用了基于嵌入式web的方案,保证了系统的实时性,高精度数码相机的使
[嵌入式]
μC/O-SII内核扩展接口的低功耗模式
引 言 随着消费类电子产品的功能日益复杂,在其中移植或固化实时操作系统已不是新鲜事了,如手机、PDA等等。对于该类产品,低功耗特性往往占有举足轻重的地位。如何在操作系统层面上,尽量降低系统功耗,是一个值得探讨的问题。一般来说,嵌入式CPU都具有低功耗的工作模式,如果在任务调度的空闲时间,使CPU进入这种模式,就能大幅度降低系统功耗。 本文以嵌入式实时操作系统μC/OS-II在飞思卡尔8位单片机HCS08GT60上的移植为例,详细讨论如何利用μC/OS-II给出的内核扩展接口,实现一个低功耗的嵌入式实时系统;进一步分析如何选择一种合适的低功耗模式。μC/OS-II是一种可移植、可固化、可裁剪的可剥夺型多任务内核。由于其源
[嵌入式]
小广播
最新模拟电子文章
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved