2、 以太网控制器的工作过程

以太网控制器的 RAM 以 256 字节为一页,是按页存储的结构,16位RAM地址的高 8位又叫页码。以太网控制器的16KB RAM的地址从0x4000~0x7FFF,即从页0x40 到页0x7F,共有64 页用来接收和发送数据包。这64页RAM是一块双端口RAM。所谓双端口就是说有两套总线连接到该RAM,总线A 用于以太网控制器读/写片上RAM,总线B 用于单片机读/写以太网控制器上的 RAM。总线A又叫Local DMA,总线B 又叫 Remote DMA。

2.1 数据包的发送过程

(1) 封装数据包:数据包在发送前,单片机将其按如图3所示的以太网帧格式封装好,并存放在外部SRAM。

基于ATmega64及RTL8019AS实现工业系统远程控制的设计

(2)通过远程DMA将数据包写入到 RLT8019AS 的数据发送缓冲区, 数据的目的缓冲区首地址和字节数由内部寄存器RSCR0、1设定。

(3) 通过RTL8019AS的本地DMA将数据送入FIFO 缓冲器进行发送。

2.2 数据包的接收过程

(1)本地 DMA 将需要接收的数据包存入到接收缓冲环中。

(2)由远程 DMA 将接收缓冲环中的数据包写入到外部 SRAM 中。

如果以太网控制器运行正常,接收到数据包时自动启动本地 DMA 将数据存入接收缓冲环中,也就是说第一步是由 RTL8019AS 自动完成的。但是,接收缓冲环的范围需要设置,PSTART、PSTOP 分别用于设置接收缓冲环的起始页和发送页,设置了接收缓冲环之后,接收到的第一个数据包放置的位置由当前页面寄存器CURR 决定。[page]

3、 服务器端工作过程

图4 所示为本系统 TCP/IP 各层协议,链路层协议由单片机控制RTL8019AS 实现,而其他协议由单片机内部程序实现。