当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]嵌入式以太网控制器设计

 引言

  目前,随着计算机技术、通信技术得飞速发展,使得使得我们通过计算机进行网络互连的同时,许多领域的嵌入式设备如工业控制、数据采集、数控机床和智能仪表等也有接入网络的需求。伴随着信息家电出现,嵌入式设备的网络化必将拥有更广阔的发展前途。在这个过程里,首先要解决的问题使嵌入式设备如何实现网络互连。

  基于以太网技术的网络化控制系统NCS(NetworkedControl System)是继现场总线控制了当前通信技术中的以太网及网络技术,很好地统一了底层的控制网络协议,建立了良好的兼容接口,因此成为了当前及后工业控制领域应用和研究的热点。随着以高性能嵌入式微处理器和嵌入式操作系统为核心的嵌入式技术的发展与推广使用,网络节点在性能、成本、功耗和体积等方面都达到了令人满意的效果,并对NCS 结构和应用产生了很大的影响。

  本文主要基于S3C44B0X+uClinux 系统平台开发出嵌入式以太网控制器,该方案和其它设计比较具有高性能、低功耗、软硬件易扩展特点,是当前及今后工业以太网控制器的理想选择方案。

  1 嵌入式以太网控制器硬件设计

  本文主要基于S3C44B0X+RTL8019AS 系统硬件平台开发出嵌入式以太网控制器硬件平台。

  图1 为嵌入式以太网控制器硬件设计原理图。嵌入式以太网控制器的硬件设计主要有S3C44B0X 微处理器、以太网模块、存储器模块、串口驱动模块、电源模块、复位和时钟和JTAG 接口7 部分。

  1.1 S3C44B0X 处理器

  S3C44B0X 处理器采用160 引脚的LQFP 封装;为了降低成本,S3C44B0X 提供了丰富的内置部件,包括:8 KB cache,内部SRAM,LCD 控制器,带自动握手的2 通道UART,4 通道DMA,外部存储器控制器(片选逻辑,FP/EDO/SDRAM 控制器),带有PWM 功能的5 通道定时器,通用I/O 端口,实时时钟RTC,8 通道10 位ADC,I2C 总线接口,I2S 总线接口,同步SIO 接口和PLL 倍频器。本嵌入式以太网控制器设计选用它,能够很好地满足小型化、低功耗和低成本的要求。

  1.2 以太网模块

  RTL8019AS 是高度集成以太网控制器,它能够简单的解答即插即用NE2000 兼容适配器,这种适配器具有二重和功率下降特性。

  RTL8019AS 以太网控制器共有32 个输入地址,对应地址偏移量为00h~1Fh,现分别说明如下:

  (1)00 h~0 Fh 的16 个地址,为寄存器地址。

  (2)10 h~17 h 的8 个地址,为数据读写端口地址。

  (3)18 h~1 Fh 的8 个地址,为复位端口。

  2 嵌入式以太网控制器软件设计

  系统软件平台设计主要使用C语言和ARM汇编语言。系统软件平台设计主要包括3个方面:启动引导程序Bootloader;建立μCLinux操作系统的开发环境;以太网模块驱动程序的实现。

  2.1 启动引导程序Bootloader

  引导程序Bootloader是在操作系统运行之前执行的一段程序。它主要实现的功能包括:初始化CPU 运行的时钟频率;初始化Flash 和内存的数据宽度,读写访问周期和刷新周期;初始化中断系统;初始化系统中各种片内、片外设备和I/O 端口;初始化系统各种运行模式下的寄存器和堆栈;加载和引导μCLinux 操作系统。[!--empirenews.page--]

  2.2 建立μCLinux 操作系统的开发环境

  μCLinux 操作系统沿袭了传统Linux 操作系统的主要特性,包括稳定、强大的网络和文件系统支持。建立μCLinux操作系统的开发环境主要包括3 个步骤:建立μCLinux 操作系统的交叉编译环境、μCLinux 操作系统的编译和μCLinux 操作系统的加载。

  2.3 RTL8019AS 驱动程序

  设备驱动程序是操作系统内核和硬件之间的接口,它作为应用设备之间的软件层, 为应用程序屏蔽了硬件的细节。

  以太网模块驱动程序属于网络驱动程序。嵌入式μCLinux网络驱动程序的体系结构可以划分为4层,即网络协议接口层、网络设备接口层、设备驱动功能层和网络媒介层。在设计网络驱动程序时,最主要的工作就是完成设备驱动功能层,使其满足嵌入式设备的目标功能。完成设备驱动功能层主要有2 个步骤,RTL8019AS 的初始化和网络数据包的发送和接收。

  2.3.1 RTL8019AS 的初始化

  为能够准确无误地接收和发送数据包,必须先对RTL8019AS进行初始化操作,其中包括数据配置寄存器OCR、发送配置寄存器PCR、接收配置寄存器RCR的、物理地址、数据包接收缓冲区和发送缓冲区的设置:当前页面寄存器CURR的设置。RTL8019AS的初始化由函数void InitRTL8019AS()来完成,此函数的设计流程如图2所示。

  2.3.2 RTL8019AS数据包的发送与接收

  RTL8019AS以太网控制器发送数据包分两步走,首先将数据从系统内存通过远程DMA传到RTL8019AS以太网控制器的发送缓冲区,然后本地DMA将数据传到FIFO并发送出去。

  RTL8019AS以太网控制器接收数据包时,RTL8019AS以太网控制器将网络上的数据包接收,通过其本地DMA通道将接收到的数据包缓存于接收缓冲区中,再通过远程DMA通道由主处理器将接收缓冲区的数据包经数据总线读入内存单元以被程序使用。

  2.3.3 编译和测试RTL8019AS驱动程序

  RTL8019AS驱动程序采用模块加载方式。模块加载方式具体步骤如下:

  (1)通过module_init宏修饰的函数会在模块加载时被调用。

  (2)网络设备被检测到以后,通过调用register_netdev()函数在μCLinux系统中把该RTL8019AS网络设备添加到系统的网络设备链表的末尾。

  (3)如果注册成功,则网络设备结构体中init成员函数被调用,对设备进行初始化。

  最后我们得到zImage 内核压缩文件。用引导程序Bootloader通过串口将zImage文件引导到S3C44B0X处理器上片外SDRAM上进行调试。

  3 结语

  嵌入式系统具有低功耗、可靠性高等突出优点。采用嵌入式系统来设计和实现带有以太网的工业控制系统,使得工业控制系统可靠性高、性能强、实时性好,将以太网接口集成与工业控制系统中,使得对工业控制系统的远程控制和监视变得简单易行。因此,研制一个带以太网接口的嵌入式工业控制系统具有重要的科学意义和价值。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭