嵌入式以太网控制器设计
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 结语
嵌入式系统具有低功耗、可靠性高等突出优点。采用嵌入式系统来设计和实现带有以太网的工业控制系统,使得工业控制系统可靠性高、性能强、实时性好,将以太网接口集成与工业控制系统中,使得对工业控制系统的远程控制和监视变得简单易行。因此,研制一个带以太网接口的嵌入式工业控制系统具有重要的科学意义和价值。
linux操作系统文章专题:linux操作系统详解(linux不再难懂) 光电开关相关文章:光电开关原理
评论