新闻中心

EEPW首页>嵌入式系统>设计应用> 基于S3C44B0X的嵌入式以太网接口设计

基于S3C44B0X的嵌入式以太网接口设计

作者: 时间:2011-02-28 来源:网络 收藏
在互联网络和局域网络飞速发展的今天,计算机进行网络互联的同时,各种家电设备、仪器仪表、工业生产中的数据采集和控制正在走向网络化。
以太网 (Ethemet) 由于它的普遍性及低廉的接口价格,因而已经作为一种最通用的网络,广泛应用于生产和生活中。另一方面,嵌入式设备在价格、体积及实时性等方面是通用计算机无法比拟的,也已广泛应用于自动化控制、数据采集、通信网络等领域。因此,嵌入式以太网技术有着广阔的前景,首先要解决的问题就是嵌入式以太网接口问题。
本文基于最常用的嵌入式处理器 S3C44B0X 和以太网驱动器 RTL8019AS 来设计了一款嵌入式以太网接口。本设计的特点是,既可仅用于嵌入式以太网驱动设备,方便简单,又可进行扩展其他模块,必要时可以移植操作系统,应用于其他复杂领域。本文从 RTL8019AS 的内部结构工作原理出发,介绍了基于 S3C44B0X 的硬件接口电路,详细说明了基于硬件层的驱动程序 C 语言的设计。
1 以太网帧结构
一个标准的以太网物理传输帧由 7 部分组成: PR( 同步位 ) SD( 分隔位 ) DA( 目的地址 ) SA( 源地址位 ) TYPE( 类型字段 ) DATA( 数据段 ) FCS( 帧校验 )
其传输帧结构 ( 及各部分长度 ) 如图 1 所示。
除了数据段的长度不定外,其他部分的长度固定不变。数据段为 46 1500 字节。以太网规定整个传输包的最大长度不能超过 1514 字节 (14 字节为 DA SA TYPE) ,最小不能小于 60 字节。需填充时,填充字符的个数不包括在长度字段中;超过 1 500 字节时,需拆成多个帧传送。事实上,发送数据时, PR SD FCS 及填充字段这几个数据段由以太网控制器自动产生;而接收数据时, PR SD 被跳过,控制器一旦检测到有效的前序字段 ( PR SD) ,就认为接收数据开始。
2 芯片简介
S3C44B0X 是三星公司使用 ARM7TDMI 核生产的 16 32 RISC( 精简指令集计算机 ) 处理器,它提供了丰富的内置模块,包括: 8 kB Cache 和内部 SRAM LCD( 液晶显示器 ) 控制器, 2 通道的 UART 4 通道的 DMA( 直接存储器存取 ) ,存储器管理,带 PWM( 脉宽调制 ) 的定时器, I O 口, 8 通道 10 位的 A D 转换器, IIC IIS 总线,同步 SIO 接口和 PLL( 锁相环 ) 倍频器,可根据需要进行接口扩展,并且价格低廉,目前已被广泛应用于嵌入式领域中。
RTL8019AS 是在嵌入式领域应用广泛且性价比很高的网络控制芯片。 RTL8019AS 的主要性能有:符号 Ethernet IEEE 802.3(10Base5 10Base2 10BaseT) 标准;全双工,收发可同时达到 10 Mbit s 的速率;内置 16 kB SRAM ,用于收发缓冲,降低对主处理器的速度要求;支持 8 16 位数据总线, 8 个中断申请线以及 16 I O 基地址选择;支持 UTP AUI BNC 自动检测,还支持对 10BaseT 拓扑结构的自动极性修正;允许 4 个诊断 LED 引脚可编程输出。
RTL8019AS 可分为以下几部分功能模块:
a) 远程 DMA 接口:处理器与 RTL8019AS 收发缓冲的连接通道,处理器只需对远程 DMA 操作。
b) 本地 DMA 接口: RTL8019AS 与网线的连接通道,完成控制器与网线的数据交换。
c)MAC( 介质访问控制 ) 逻辑:完成对远程 DMA 和本地 DMA 数据包传输、中断的产生等自动控制。
d) 地址识别逻辑:将接收到的数据帧中的目的地址和地址寄存器中的地址进行比较,判断其是否为发到本地的帧。
e)CRC( 循环冗余校验 ) 产生校验逻辑:在发送数据时,产生 CRC 码,对接收帧进行 CRC
f) 协议 PCA :负责实施以太网规范。
RTL8019AS 内部有 16kB SRAM ,分为 64 页, 256 字节/页,组成环形队列作为收发缓冲区,只能按页操作,页地址从 0x4000 0x7FFF 。可以通过相关的寄存器读写操作,可以对缓冲区进行设置及状态的读取。由于接收缓冲区是按页即 256 B 来操作的,与缓冲区地址有关的寄存器中只需存储缓冲区的高 16 位地址即可。在本设计中,将前 32 (0x400 0x5fff) 作为接收缓冲区,将后 32 (0x6000 0x7ff) 作为发送缓冲区。
RTL8019AS 具有 32 位输入输出地址,地址偏移量为 00H 1FH 。其中, 00H 0FH 16 个地址为寄存器地址。远程 DMA 地址包括 10H 17H ,都可以用来做远程 DMA 端口,只要用其中的一个就可以了。复位端口包括 18H 1FH 8 个地址,功能相同,用于 RTL8019AS 复位。 RTL8019AS 的内部 I O 基址是 00H ,但微处理器要访问 8019 的地址却不是 00H ,该地址是由处理器与网络控制器的连线决定的。
RTL8019AS 寄存器分为 4 页,即 PAGE0 PAGE3 ,每一页的地址偏移量均为 0x00 0x1f RTL8019AS CR( 命令寄存器 ) 中的 PS1 PS0 位来决定要访问的页,每一页中的寄存器由 SA0 SA3 寻址。第 0 页和第 1 页的寄存器很重要,用于数据收发的控制和中断管理等,使用前必须对其进行配置。第 2 页和第 3 页只用于诊断和其他一些配置,很少使用。
3 设计思路
首先, S3C44B0X 通过 RTL8019AS I O 口,对其相关寄存器进行配置。在通信时, S3C44B0X RTL8019AS 的收发缓存器的数据交换由远程 DMA 控制,而 RTL81019AS 收发缓存器与以太网总线之间的数据交换由它的本地 DMA 控制。 RTL8019AS 通过中断的方式通知 S3C44B0X 数据收发的结果和状态, S3C44B0X 通过查询中断状态寄存器的值,作出相应处理。
系统结构如图 2 所示。
4 接口电路设计
接口电路如图 3 所示。
S3C 44B0X nOE nWE 分别与 RTL8019AS IORB IOWB 相连,控制数据的读和写操作,低电平有效。 RTL8019 使用中断 0 ,对应 S3C4480 的外部中断 1
RTL8019AS RTL8019AS 3 种工作方式:
a) 跳线方式: I O 和中断由跳线决定;
b)
即插即用方式 (PNP) :由软件进行自动配置,使用这种方法时,系统的启动程序必须包含支持 PNP 的函数;
c)
免跳线方式: I O 和中断由外接的 EEPROM93C46 中的内容决定。
在本设计中,为了降低启动程序和接口电路的复杂性,选择跳线方式,故 JP 接高电平。
X1 X2 分别为 20 MHz 晶振的输入输出端。 LED0 2 分别连接 3 个发光二极管,指示网络连接、数据传输和发送的情况。 20F001 为网卡滤波器,内部包含一对低通滤波器和一对隔离变压器,其输出 TX+ - RX+ - RJ45 的信号口相连
由于在本设计中 RTL8019AS AEN S3C44B0X nGCS2 相连,所以对应 S3C44B0X 的存储器的起始地址 0x0600-0000 ;并且,由于 RTL8019AS IOS0 IOS3 接地,在跳线模式下,当 IOS0 IOS1 0000 时, RTL8019AS 的基址为 0300H 。因此,在本设计中, S3C44B0X 访问 RTL8019AS 的基址就是 0x0600-0300
5 驱动程序设计
5.1 程序设计思路
在本设计方案中,驱动程序主要包含 3 个函数,即系统的初始化函数、接收数据包函数、发送数据包函数。 初始化部分完成 RTL8019AS 在使用之前的初始化工作,包括设置相关工作模式的寄存器、分配和初始化接收和发送缓冲区、初始化网卡接收地址等。
MAR0-MAR7- 多点地址寄存器:这 8 个寄存器的值是根据多播地址数组的值生成的,提供对多播地址的过滤,过滤掉一些不属于自己接收多播数据包。
这里均设为 FFH ,接所有多播地址的数据包:
下面 6 条语句设置 MAC 地址,寄存器为 PAR0 PAR5 :实际地址寄存器,这些寄存用来对目标地址数据包进行比较,以确定接收或者拒绝接收。地址放在数组 add[6] 中。
5.2 数据的传输和发送
数据的传输和发送由本地 DMA 传输和与远程 DMA 传输两部分完成,前者大部分工作由 RTL8019AS 自动完成,我们要做的是设置收发缓冲区的大小及指针变量,这些工作在 RTL8019AS 的初始化时已完成,因此只需要编写远程 DMA 读写函数。对远端 DAM 口的读写,不同的只是数据传输方向,这里,仅以读操作为例,即编写从 RTL8019AS 接收缓冲区取数据包到 S3C4480X ( 注意:远程 DMA 的写函数,即向 RTL8019AS 发送缓冲区写数据函数 --send_data() 省略。 )
5.3 以太网接口通信函数流程
这里采用中断和查询相结合的方式来决定是否发送和接收数据。当 RTL8019AS ISR( 中断状态寄存器 ) 的任意一中断位置位时, S3C4B0X 都要对其进行中断相应 ( 在这里只关注第 0 中断位和第 1 中断位,即分别反映 RTL8019AS 已正确接收到数据和已成功发送数据包,因此在初始化函数中将其他位屏蔽 ) 。这时要对 ISR 进行访问,来判断是何种中断,进而作出相应的响应,如图 4 所示。
6 结束语
本设计经过软硬件的调试,并已成功地进行以太网数据传输。由于 S3C4480X 出众的性价比及丰富的外围接口,通过扩展本设计可以应用到嵌入式仪器仪表、工业数据采集网络、嵌入式网络控制等许多领域。


评论


相关推荐

技术专区

关闭