基于ARM微处理器的嵌入式以太网接口设计

发布者:真诚相伴最新更新时间:2008-11-26 来源: 电子设计应用关键字:接口  以太网接口  嵌入式  函数  ARM微处理器  typedef  外部中断 手机看文章 扫描二维码
随时随地手机看文章

    电子设备日趋网络化的背景下,作为目前广泛使用的以太网以及TCP/IP 协议已经成为事实上最常用的网络标准之一,它以高速、可靠、分层以及可扩充性使得它在各个领域的应用越来越灵活,很多情况下运用以太网和TCP/IP,能够简化结构和降低成本。但是,目前关于嵌入式以太网的设计方案不是很多,在这不多的方案中,大多是基于单片机或DSP 的。两者都存在要外扩很多外设的问题,并且前者速度太慢,后者成本又太高,这在一些对设备尺寸要求很小的场合是不行的。

  本设计中,采用了基于ARM内核的微处理器S3C44BOX为基础的嵌入式系统与10MB 以太网控制芯片RTL8019AS 的接口电路和实现方法。

  S3C44BOX芯片的介绍S3C44BOX 是基于ARM7TDMI 内核的16/32位RISC处理器。功能强大,目前已广泛应用于手持设备、因特网设备、网络、调制解调设备等领域。其主要特点如下。

  1)拓展存储控制器(带FP/EDO/SDRAM 控制器,片选逻辑)。

  2)8KBCache/SRAM。

  3)LCD控制器(可直接控制DSTN/STN 的各种灰度/256 彩色LCD 屏,最大支持分辨率为1600 1 600)。

  4)2通道UART,波特率可高达115200B/s,并内置16字节FIFO,同时兼容Irdal.0规范。

  5)I2C和I2S接口(音频数据接口)。

  6)71个通用I/O 端口和8 个外部中断。

  7)5路PWM 定时器和1 路内部定时器。

  8)8通道10位ADC(采样速率为100Kbit/s)。

  9)2路GDMA/2路外围DMA 。

  10)电源控制器。

  11)看门狗。

  12)实时时钟。

  硬件电路组成

  本方案硬件电路使用的芯片主要有微处理器S3C44BOX、RTL8019AS、74LV138和FB2022(网卡变压器),其硬件框图如附图所示。处理器S3C44BOX与RTL8019AS的接口采用UTP RJ-45接口。RTL8019AS与主机有三种接口工作模式:

  *跳线方式,网卡的I/O和中断由跳线决定。

  *即插即用方式,由软件进行自动配置plug and play。

  *免跳线方式,网卡的I/O和中断由外界的93C46里的内容决定。[page]

  在嵌入式应用场合,如果不使用93C46的话,可以降低成本,同时又减少连线,因此,本文采用第1 种方式即跳线方式,即通过设置RTL8019AS的65脚jp为高电平(接到Vcc或通过一个10kΩ的上拉电阻)来实现。

  RTL8019AS是性价比高且带有即插即用功能的全双工以太网控制器,它的主要特点包括:符合EthernetⅡ与IEEE802.3标准;全双工,收发可同时达到10Mbit/s的速率;内置16KB的SRAM,用于收发缓冲,减低对主处理器的要求;支持UTP、AUI、BNC自动检测,还支持对10BaseT拓扑结构的自动极性修正;允许4个诊断LED 引脚编程输出。RTL8019AS内部有2个RAM区:1块16KB,地址为0x4000~0x7fff;1块32 B,地址为0x0000~0x001f。RAM 按页存储,每256 B为一页。

  本方案中将RTL8019AS 的RAM 的前12 页(0x4000~0x4Bff)作为发送缓冲区,后52页(0x4c00~0x7fff)作为接收缓冲区,第0页只有32B,用来存储以太网的物理地址。

  RTL8019AS 具有32 个输出/ 输出地址,地址偏移量为00H~1FH。其中00H~0FH 具有16 个地址为寄存器的地址,寄存器分为page0~page3,由RTL8019AS 中的命令寄存器CR中的PS1 和PS0 位来决定要访问的页。复位端口包括18H~1FH 共8 个地址,用于RTL8019AS 的复位。

  软件设计

  编写控制以太网接口程序的步骤。

  (1)μC/OS Ⅱ实时操作系统的移植

  μc/os Ⅱ是一种开放源码的实时嵌入式操作系统,是一个可移植,可裁减,可固化的占先式多任务操作系统,已被应用到多种微处理器上,其大部分源码是ANSI C 语言编写的。

  移植工作包括以下几个内容:a.设置:OS_CPU.H 中与处理器和编译器相关的代码。b.用C 语言改写OS_CPU_C.C 中6个与操作系统相关的简单函数。c. 用汇编语言改写OS _CPU _A..ASM 中的4 个与处理器相关的函数。[page]

  1)OS_CPU.H 文件包括#define、typedef定义与CPU相关信息。因不同的处理器有不同的字长,所以μC/OS Ⅱ的移植包括一系列的类型定义,以确保可移植性。如INT16U 数据类型总是代表16 位无符号整数,将μC/OS Ⅱ移植到32 位处理器上,也就意味着INT16U 实际上为无符号短整型数而不是无符号整型数。

  2)OS _CPU _C.C 文件OSTaskCreatHook()、OSTaskDelHook()、OSTaskSwhook()、OSTaskStatHook()、OSTaskCreakHook(),这些函数为用户定义,实际需要修改的只有OSTaskStkIinit()函数。OSTaskStkIinint()用来初始化任务堆栈,初始状态的堆栈模拟发生一次中断后的堆栈结构。由于在ARM 中堆栈是按32 位数据类型来进行操作,所以堆栈数据类型OS _STK 声明为32 位无符号整数。

  3)OS _CPU _A.ASM 文件这里要实现4 个汇编函数改写:多任务启动函数中调用OSSTartHightRdy()、任务切换函数OSCtxSw()、中断任务切换OSIntCtxSw()和时钟节拍服务函数OSTickISR()。任务切换函数OSCtxSw(),由任务切换函数OS _TASK _SW()进入。如果任务执行了某个函数,其结果改变了当前任务的状态[如OSTaskSuspend()、OSTimeDly()],或者是改变了别的任务的状态[OSTaskResum()、O S T i m e D l y R e s u m e ( ) ]都要引起新的任务调度函数[OSSched()]执行OS _TASK _SW()。OSIntCtxSw()是在ISR中被调用的,其代码与OSCtxSw () 类似。OSStartHightRdy()由OSStart ()函数调用,功能是运行优先级最高的任务。OSTickISR()是时钟节拍中断,用户应该在OSStart()运行

  后,μC/OS Ⅱ启动运行的第一个任务中初始化节拍中断。

  (2)初始化RTL8019AS

  初始化部分完成RTL8019AS 在使用之前的初始化工作,设置相关工作模式的寄存器,分配和初始化接收和发送缓冲区,初始化网卡接收地址。

  (3)传输数据包

  发送部分只要把数据写入缓冲区, 启动执行命令,RTL8019AS 自动发送。一般在RAM 内开辟2 个以太网数据包的空间作为发送缓冲区。作为一个集成的以太网芯片,数据的发送校验,总线数据包的碰撞检测与避免是由芯片自己完成的。只需要配置发送数据的物理层地址、源地址、目的地址、数据包类型以及发送的数据就可以了。

  (4)接收数据包

  它是完成数据接收任务,RTL8019AS 接收到以太网数据包后自动将其存在接收缓冲区并发出中断信号,S3C44BOX在中断程序里通过D M A 就可接收到数据,即通过远端D M A把数据从RTL8019AS 的RAM 空间,读回ARM 中处理。这里主要是对一些相关的寄存器进行操作。RTL8019AS 芯片具有性价比高,连接方便等特点,是进行嵌入式以太网设计时的首选的控制芯片。本文介绍了以S3C44BOX 处理器为核心,用RTL8019AS 作为网络接口芯片的嵌入式以太网接口的具体软硬件方法。产品的性能高,价格适中,不仅可用于工业现场实现现场节点的自动上网功能,而且可以用于信息家电的以太网接口,可以实现远程控制,在网上就可以控制家中的电器,具有很好的发展前景。

 

关键字:接口  以太网接口  嵌入式  函数  ARM微处理器  typedef  外部中断 引用地址:基于ARM微处理器的嵌入式以太网接口设计

上一篇:IAR发布IEmbedded Workbench新版本
下一篇:ARM发布基于CORTEX MCU的软件接口标准

推荐阅读最新更新时间:2024-03-16 12:24

ARM嵌入式微处理器的发展及其面临的挑战
随着网络技术及现代通信技术的飞速发展,嵌入式系统在相关领域的重要性也备受关注,特别是ARM嵌入式微处理器,其不仅成本低、体积小,而且性能卓越且功耗低,因而得到了广泛的应用和发展。 1 ARM嵌入式微处理器相关内容概述 ⑴ARM.ARM是微处理器相关领域一家知名度较高的企业,该企业设计了许多性能高、功耗低的廉价处理器及各种软件。可以这么说,ARM代表的不仅是一个企业,更代表了一种技术、一种微处理器,甚至一种产业的发展模式。 ⑵ARM微处理器的种类。目前,有关ARM微处理器应用较多的有ARM7、ARM9、ARM9E、ARM10及StrongARM等系列。其中,ARM7系列在多媒体、嵌入式设备及无线设备中得到了广泛的应用;A
[单片机]
高效率嵌入式ARM程序开发
在多媒体、通信等计算复杂度高的应用中,为了满足制造费用、功耗、性能以及实时性等诸多限制条件的要求,嵌入式系统程序往往需要特殊设计。这使得设计师在设计面向特定应用的嵌入式软件时,需要有一套切实可行的编程准则。而在实际程序设计中,工程师尤其需要考虑对变量的使用和循环程序的处理。 变量使用 在进行实际程序开发时,变量的使用至关重要,其中使用全局变量比向函数传递参数更加有效,这样免去了函数调用时参数入栈和出栈的需要。当然,使用全局变量会对程序有一些副作用。变量定义的次序会导致最终映像中数据布局的不同,如图1所示。 由此可见,在声明变量时,需要考虑怎样最佳地控制存储器布局。最好的方法是在编程的时候,把所有相同类型的变量放在一起定义。
[单片机]
高效率<font color='red'>嵌入式</font><font color='red'>ARM</font>程序开发
基于 ARM 嵌入式的远程监控系统设计
基于 ARM 内核的嵌入式系统在远程监控报警系统中的设计实现与应用。核心部分主要包 括 ARM 嵌入式平台设计及 µC-OS 嵌入式实时操作系统移植;人机交互界面 µCGUI 的设计与实现;远程通 讯及自动报警等;系统的设计还考虑到了扩展性和通用性以及与其他监控设备无缝连接等问题。 关键词: ARM;µC/OS-II; µCGUI ;远程监控 1 引言 监控系统现已成为现代化生产、生活中不可缺少的重要组成部分。目前,监控系列产品 种类繁多,大部分广泛应用于交通、医院、银行、家居、学校等安防领域。 随着嵌入式系统的出现,尤其是基于 ARM 内核芯片的嵌入式系统的出现,使得监控系统的应用领域更为广泛。本文设计的远程监控报警系统除了作
[工业控制]
基于 <font color='red'>ARM</font> <font color='red'>嵌入式</font>的远程监控系统设计
STM32 HAL库学习系列第5篇 定时器TIM---编码器接口模式配置
cube基本配置,外设开启编码器,串口2 -------------------------------------------------------------------------------------------------------------------------- 错误:error: #20: identifier TIM_ICPOLARITY_BOTHEDGE is undefined 意思是,高级、通用定时器不能用BothEdge,只有基本定时器才能用BothEdge F4系列 /* 编码器初始化及使能编码器模式 */ ENCODER_TIMx_Init(); HA
[单片机]
STM32 HAL库学习系列第5篇 定时器TIM---编码器<font color='red'>接口</font>模式配置
NI推出基于Linux的嵌入式设计模块SOM
  NI新推出了一个嵌入式系统开发板,基于Linux平台下的实时操作系统(RTOS),该系统模块SOM基于Xilinx内置双核ARM处理器的Xilinx Zynq全可编程SoC系列。   软件集成度是这类小型硬件开发模块必须关注的,因为它采用LabVIEW软件可重构的I/O(RIO)架构的软件设计标准。   嵌入式系统市场总监Jamie Smith表示,“今天的嵌入式监控和控制应用程序比以往任何时候都更为复杂,严格的上市期限、不断上升的成本为系统给设计者增加了难度。研究表明,与传统设计方法相比,利用LabVIEW RIO架构用仅仅一半的时间来解决复杂的嵌入式设计难题。”   SOM系统开发主板还附带一整套嵌入式操作
[测试测量]
瑞萨电子超低功耗嵌入式控制器RE产品家族又添新武器
半导体解决方案供应商瑞萨电子集团宣布,扩展其超低功耗嵌入式控制器RE产品家族,推出采用瑞萨突破性的SOTBTM(Silicon on Thin Buried Oxide薄氧化埋层覆硅)制程工艺、基于Arm® Cortex®-M0+内核构建的新品。该RE01群最新成员搭载256KB闪存,区别于已量产、集成了1.5MB闪存的现有产品。该全新控制器具备最小3.16mm x 2.88mm WLBGA封装尺寸,且针对用于传感器控制的更紧凑的物联网设备的产品设计进行了优化,适用于智能家居、智能楼宇、环境感测、(建筑物/桥梁)结构监测、跟踪器和可穿戴设备等应用。 新款嵌入式控制器在EEMBC® ULPMarkTM-CoreProfile(C
[嵌入式]
瑞萨电子超低功耗<font color='red'>嵌入式</font>控制器RE产品家族又添新武器
用GNU工具开发基于ARM嵌入式系统
  本文介绍如何利用 GNU 的工具开发基于 ARM 的嵌入式系统,以及使用编译器、连接器和调试工具的具体方法,为广大嵌入式系统开发人员提供一种低成本的开发手段。   当前,ARM公司的32位 RISC 处理器,以其内核耗电少、成本低、功能强、特有16/32位双指令集,已成为移动通信、手持计算、多媒体数字消费等嵌入式解决方案的RISC标准,市场占有率超过了75 %。多家公司都推出了自己的基于ARM内核的处理器产品,越来越多的开发人员开始了针对ARM平台的开发。通常开发人员需要购买芯片厂商或第三方提供的开发板,还需要购买开发软件,如C编译器或者集成了实时操作系统的开发环境。开发板的价格从数百到上千美元,而编译器、实时操作系统价
[单片机]
用GNU工具开发基于<font color='red'>ARM</font>的<font color='red'>嵌入式</font>系统
嵌入式卫星MODEM在监控和数据采集系统中的应用
在勘探、油气管线、输变电、水文、能源、环境、野生动物监测、无人驾驶飞机、训练靶机、民航无线“黑盒子”待领域的监控和数据采集(SCADA)系统中,人们的一些绝妙设计方案往往因为找不到一种可靠、可行的数据传输手段而难以实施。 Globalstar(全球星)的数据传输技术为涉及上述高新技术领域的应用提供了高性能价格比的解决方案。 基于拨号接入的数据传输方案 如图1所示,DCEg是Globalstar的卫星终端,有三种类型: 一种是以一块电路板形式的卫星MODEM模块,物理尺寸为190×75×17mm,重量为180g,数据接口为RS232。 第二种是带内置MODEM(built-in modem)的语音、数据两用卫星手
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved