引言
目前,随着计算机技术、通信技术得飞速发展,使得使得我们通过计算机进行网络互连的同时,许多领域的嵌入式设备如工业控制、数据采集、数控机床和智能仪表等也有接入网络的需求。伴随着信息家电出现,嵌入式设备的网络化必将拥有更广阔的发展前途。在这个过程里,首先要解决的问题使嵌入式设备如何实现网络互连。
基于以太网技术的网络化控制系统NCS(NetworkedControl System)是继现场总线控制了当前通信技术中的以太网及网络技术,很好地统一了底层的控制网络协议,建立了良好的兼容接口,因此成为了当前及后工业控制领域应用和研究的热点。随着以高性能嵌入式微处理器和嵌入式操作系统为核心的嵌入式技术的发展与推广使用,网络节点在性能、成本、功耗和体积等方面都达到了令人满意的效果,并对NCS 结构和应用产生了很大的影响。
本文主要基于S3C44B0X+uClinux 系统平台开发出嵌入式以太网控制器,该方案和其它设计比较具有高性能、低功耗、软硬件易扩展特点,是当前及今后工业以太网控制器的理想选择方案。
1 嵌入式以太网控制器硬件设计
本文主要基于S
图1 为嵌入式以太网控制器硬件设计原理图。嵌入式以太网控制器的硬件设计主要有S
1.1 S
S
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 操作系统。
2.2 建立μCLinux 操作系统的开发环境
μCLinux 操作系统沿袭了传统Linux 操作系统的主要特性,包括稳定、强大的网络和文件系统支持。建立μCLinux操作系统的开发环境主要包括3 个步骤:建立μCLinux 操作系统的交叉编译环境、μCLinux 操作系统的编译和μCLinux 操作系统的加载。
2.3 RTL8019AS 驱动程序
设备驱动程序是操作系统内核和硬件之间的接口,它作为应用设备之间的软件层, 为应用程序屏蔽了硬件的细节。
以太网模块驱动程序属于网络驱动程序。嵌入式μCLinux网络驱动程序的体系结构可以划分为4层,即网络协议接口层、网络设备接口层、设备驱动功能层和网络媒介层。在设计网络驱动程序时,最主要的工作就是完成设备驱动功能层,使其满足嵌入式设备的目标功能。完成设备驱动功能层主要有2 个步骤,RTL8019AS 的初始化和网络数据包的发送和接收。