好文档 - 专业文书写作范文服务资料分享网站

基于ARM平台的嵌入式系统以太网接口的设计

天下 分享 时间: 加入收藏 我要投稿 点赞

嵌入式系统

原理及应用开发技术 姓名 学号

09700101 09700112 09700119 班级

09电信1班 院别

计算机与信息工程学院

嵌入式系统与网络接口的设计与实现

摘要:介绍了嵌入式以太网接口的设计与实现,采用S3C44B0x微控制器与以太网控制芯片RTL8019AS进行硬件设计,并对S3C44B0x的性能,RTL8019AS逻辑结构和工作原理及相关寄存器设置进行了分析和讨论,给出了相关硬件连接图及驱动程序的移植,实现嵌入式以太网的数据传输器并成功应用于电力远动系统的改造。

关键词:嵌入式微处理器网络接口数据传输

随着信息化智能化网络化的发展,嵌入式技术获得了广阔的发展空间。进入20世纪90年代,嵌入式技术全面展开,目前已成为通信和消费类产品的共同发展方向。而在网络飞速发展的今天,网络已经渗透到了方方面面网络传输成为最经济最有效的数据传输方式之一,嵌入式技术和网络的结合也已经成为了嵌入式技术最新的研究方向。但是,目前基于嵌入式系的以太网设计方案不是很多。本文使用处理器S3C44BOX和10MB以太网接口芯片RTL8019AS,提出了一种嵌入式系统的网络接口设计。

第一章嵌入式系统及以太网的概述 1.1 嵌入式系统与嵌入式处理器

嵌入式系统一般是指非PC系统,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。包括硬件和软件两部分:硬件包括处理器/微处理器、存储器、外设器件和I/O端口、图形控制器等。软件部分包括操作系统软件和应用程序编程。应用程序控制着系统的运作和行为;而操作系统控制着应用程序编程与硬件的交互作用。

嵌入式系统一般由处理器、存储器、输入输出和软件四个部分构成。嵌入式系统核心的部分是嵌入式处理器,目前,世界上具有嵌入式功能特点的处理器已经超过了lO00多种,30多

个系列。现在主要流行的嵌入式处理器类型有PowerPC、X86、MIPS、ARM/SARM系列等。微处理器的特点如下:

支持多任务能力,并且有较短的中断响应时间,从而使代码和内核的执行时间减少到最低限度;

具有功能很强的存储区保护功能,为了避免在软件模块之间出现错误的交叉作用; 可扩展的处理器结构,能最迅速地开发出满足应用的最高性能的嵌入式微处理器;

必须功耗很低,尤其是用于便携式的无线及移动的计算和通信设备中靠电池供电的嵌入式系统更是如此,如需要功耗只有mw甚至μw级。

S3C44BOX是目前使用最多的ARM核芯的嵌入式处理器。它是基于

ARMTTDMI内核的16/32位RISC处理器。功能强大,目前已广泛应用于手持设备、因特网设备、网络、调制解调设备等领域。其主要特点有:

其功能强大,扩展了完整的通用外围器件,使系统的费用降至最低,减低了硬件开发的难度; 系统配置了2MB的FLASH存储器以及8MB的SDRM存储器; 为手持设备和一般类型应用提供了高性价比和高性能的微控制器解决方案; 它的低功耗和出色的全静态设计特别适用于对成本和功耗敏感的应用; 广泛应用于手持设备、因特网设备、网络、调制解调设备等领域。 S3C44BOX主要功能如下: ·带8KB缓存的2.5V静态ARMTTDMICPU核;

·带有扩展内存控制器; ·有一个专用DMA通道的LCD控制器; ·有2个通用DMA通道,1个带外部请求管脚的DMA通道; ·有71个通用I/0端口和8个外部中断; ·有5路PWM定时器和1路内部定时器; ·带有8通道10位ADC(采样速率为100Kbit/s ); ·带有看门狗定时器; ·有四种能量控制模式:正常模式、低模式、休眠模式和停止模式。 1.2 网络接口芯片RTL8019AS

以太网接口芯片的功能是处理主机访问网络媒体的操作把来自上层的数据包封装成帧,再编码成信号,发送到网络上。或者把从网络上接收到的信号,组合成帧,送往OSI(Open System Interconnection)模型的上层设备处理。

本设计方案的网络接口选用与NE2000兼容的10M网卡芯片RTL8019AS。选用RTL8019AS是因为它软件移植性好,接口简单,价格便宜,带宽充裕。 RTL8019AS是高度集成的以太网控制器,它有以下的一些主要特点:遵守

EthemetⅡ、IEEE802.3、10Base5、10Base2、10BaseT等标准,支持全双工以太网

功能,收发可同时达到10Mbit/s,支持UTP、AUI和BNG的自动检测功能;在10BaseT拓扑结构的网络中,自动改正极性l提供可选择的l6个I/0口基地址。 RTL8019AS含有16K字节的RAM,地址为0x4000~0x7ffff,每256个字节为一页,共有64页,页面的选择通过CR寄存器的第6、7位来选择。这16KB地址的RAM的一部分用来存放接收的数据包,一部分用来存储发送的数据包,也可以用来存放用户数据。

第二章系统硬件的设计与实现 2.1 实现原理及技术特点

S3C44BOX内嵌一个以太网控制器,支持媒体独立接口和带缓冲DMA接口,可在半双工或全双工模式下提供10M/100Mbps的以太网接入。在半双工模式下,控制器支持CSMA /CD协议;在全双工模式下,支持IEEE802.3MAC控制层协议。

因此,S3C44B0x内部虽然包含了以太网MAC控制器,但并未提供物理层接口,因此,需外接一片物理层芯片以提供以太网的接入通道。而常用的单口

10M/100Mbps高速以太网物理层接口器件均提供M/I接口和传统7线制网络接口,可方便地与S3C44B0x接口。以太网物理层接口器件主要功能一般包括:物理编码子层、物理媒体附件、双绞线物理媒体子层、10BASE—TX编码,解码器和双绞线媒体访问单元等。使用RTL8019AS作为以太网的物理层接口,它的基本工作原理是:在收到由主机发来的数据报后,侦听网络线路。如果线路忙,就等到线路空闲为止,否则,立即发送该数据帧。在发送过程中,首先它添加以太网帧头(包括前导字段和帧开始标志),然后生成CRC校验码,最后将此数据帧发送到以太网上。在接收过程中将从以太网收到的数据帧在经过解码、去帧头和地址检验等步骤后缓存在片内。在CRC校验通过后,它会根据初始化配置的情况,通知RTL8019AS收到了数据帧,最后用某种传输模式(I/O模式、Memory模式、DMA模式)传到S3C44B0x的存储区中。 2.2 系统的硬件电路

RTL8019AS有3种接口模式,分别为跳线模式、PNP模式和RT模式,后两种又可以统称为非跳线模式,工作在非跳线模式时需要EEPROM作为配置存储器。RTL8019AS的65脚决定跳线模式和非跳线模式,本系统采用跳线模式,65脚JP上拉至VCC,这样EEPROM芯片可以省去。

RTL8019AS的96脚IOCS16B决定其与MCU通信的数据宽度,上拉时为16位,下拉时为8位,可以选焊接一个电阻以改变数据宽度。IL8019AS的片选端34脚AEN与S3C44B0x的nGCS5连接,其BANK基址为

0x0a0006000.RTL8019AS的85、84、82、81脚(Bd[3:0])决定其I/O基地址,在84脚(Bd2)接一个上拉电阻时,TRL8019AS内部寄存器基址为200H(RTL8019AS芯片内部为引脚接了一个100k的下拉电阻所以引脚悬空处于低电平),当Bd[3:

0]全部悬空时内部寄存器基址为300H.RTL8019AS与S3C44B0x的连接情况如图1所示:

图1 RTL8019AS与S3C44B0X的连接图 第三章软件的设计与实现 3.1 设计的思想和原理

本设计采用uCLinux系统平台来完成对硬件系统的管理和维护。uClinux是专门针对没有MMU的CPU设计的可以去除虚拟内存管理的部分代码,以对内存分配进行优化。此外uCLinux继承了Linux完善的文件系统性能,其采用的是romfs文件系统,这种文件系统相对于一般的ext2文件系统要求更少的空间。空间的节约来自于两个方面:(1)内核支持romfs文件系统比支持ext2文件系统需要更少的代码;(2)romfs文件系统相对简单,在建立文件系统超级块(superblock)需要更少的存储空间。

uClinux还继承了Linux网络操作系统的优势,可以很方便地支持网络文件系统且内嵌TCP/IP协议,对开发网络接入设备提供了便利,这也是本设计采用uClinux的根本原因。

3.2 Uclinux在S3C44B0X上的移植

先把arm-elf-tools安装好,然后再经过下列步骤编译uClinux。(1) make

menu_config进入菜单化的源代码配置工具,合理地选择要编译的项目。(2) make clean清除所有的编译结果。

(3)make dep设置文件依赖关系。(4) make lib_only编译库文件。(5) make user_only编译应用程序。(6) make romfs编译文件系统。(7) make zlmage生成映像文件。在arch/armnommu/boot下产生3个文件zlmage文件,下载到内核即可。注意在内核配置网络部分的选项中一定要选择对TCP/IP协议的支持。 3.3 NE2000网卡驱动改写

RTL8019AS是NE2000兼容的网卡,只需修改Linux源文件的drivers/net目录下的ne.c就可以了,和它相关的还有8390.h和8390.C。 首先,在ne.c中函数 ne_probe就是网卡的检测函数中添加 #elif defined(CONFIG_ARCH_$3C44B0) Static int once=0; if(once)

return ENXIO;

if(base_addr==0) {

Dev->base_addr=base_addr=ARM_NE2000_BASE; once++; }

其中:ARM_NE2000_BASE和ARM_NE2000_IRQ是在配置内核的时候定义的。在8390.h添加#define EI_SHIFT(x)((x)*2),这是由硬件配置和连接决定的,

RTL8019AS工作在16位模式下S3C44B0x的Bank5配置成l6位模式,数据线一对一地连接,地址线错开一位也就是RTL8019AS的A0连接S3C44B0X的A1这样, RTL8019AS的基地址(Reg0的地址)是0x0a000600,Regl的地址就是

0x0a000602,依次类推地址是不连续增加的,所以对应的驱动程序要做相应的修改,同时在ne.c中添加寄存器地址的定义: #ifdef CONFIG_ARM #define NE_CMD 0x00

#define NE_DATAPORT 0x20/* NatSemi-defined port window offset.*/ #define NE _RESET 0x3e/*Issue a read to reset,a write to clear.* / #define NE_IO_EXTENT 0x40

同时添加直接访问Reg的代码如下: #ifdef CONFIG_ARM

regd=inb_p(ioaddr+0x0d*2); outb_p(0xff,ioaddr+0x0d*2); 最后添加网卡的MAC地址:

#elif defined(CONFIG_ARM)

unsigned char ne_defethaddr[ ]={0x12,0x34,0x56,0x78,0x00,0x00}; #endif/*CONFIG_COLDFIRE*/

至此网卡的驱动移植完毕。网络对TCP/IP协议的支持采用uClinux中的TCP/IP协议栈。用户只需编写Linux环境下的网络应用程序而不需考虑操作系统的底层驱动问题就可以实现以太网数据的传送了。 【参考文献】

[l]郑纬民,汤志忠.计算机系统结构[M].北京:清华大学出版社,1998.

[2]夏靖波.嵌入式系统原理与开发[M].西安:西安电子科技大学出版社,2006. [3]田泽.嵌入式系统开发与应用[M].北京:北京航空航天大学出版社,2005. [4]嵌入式系统设计与实例开发试验指导[M]:北京博创科技有限公司,2005.

基于ARM平台的嵌入式系统以太网接口的设计

嵌入式系统原理及应用开发技术姓名学号097001010970011209700119班级09电信1班院别计算机与信息工程学院嵌入式系统与网络接口的设计与实现摘要:介绍了嵌入式以太网接口的设计与实现,采用S3C44B0x微控制器与以太网控制芯片RTL8019AS进行硬件设
推荐度:
点击下载文档文档为doc格式
5n7vi35sle0a6ri16ozy38gut0xsx2013ta
领取福利

微信扫码领取福利

微信扫码分享