/
1922科学技术与工程9卷
图2家庭网关的硬件原理框图
3软件设计与实现
软件部分主要包括以太网控制器接口软件的设计和嵌入式TCP/IP协议栈的开发。
3.1以太网控制器软件设计Ⅱ1
以太网控制器RTLS019AS接口软件的设计部分是主要用来实现以太网控制器的数据发送和数据接收。
程序主要分三大部分:
3.1.1初始化过程
网络接口控制芯片RTLS019AS有两种复位方法,一是可以通过把其复位引脚RSTDRV置高为电平进行冷复位;--是可以通过读写其复位端口RSTPORI进行热复位。
复位后,中断状态寄存器的RST标志位为l,此时为离线工作状态,即不能发送或接收数据帧。
为了使接口控制芯片启动并处于准备接收或发送数据的状态,需要进行一系列初始化工作。
3.1.2接收过程
将RTL8019AS内置存储空间的一部分指定为缓冲环的地址空间。
页起始地址由PSTART寄存器指定,页终止地址由PSTOP寄存器来指定,页起始地址与页终止地址相邻,构成循环队列式的缓冲环结构。
CURB寄存器指向新接收到的帧存放的起始页,作为本地DMA的写指针;BNRY寄存器指向未读的帧的起始页,作为远程DMA的读指针。
当CURB寄存器追上BNRY寄存器,表示接收缓冲环已满,后续接收到的帧会被丢弃;当BNRY寄存器追上CURB寄存器,表示接收缓冲环已空。
接收帧时。
首先RTLS019AS接收网络上的数据帧,然后通过本地DMA通道将接收到的数据帧放在接收缓冲环中。
当无错误的接收到一帧数据后,中断状态寄存ISR中的PRX标志位置为0。
再通过远程DMA通道由嵌入式微处理器将接收缓冲环的数据帧由数据总线读入存储单元。
当远程DMA读操作完成后,RTLS019AS将中断状态寄存器ISR中的RDC位置为0,通过此标志位的状态可判断远程DMA读操作是否结束。
数据帧的接收可采用中断或查询方式进行,采用查询式接收帧的程序流程如图3所示。
CR寄存器中的RD2,RDI,RDO这3个位组合起来设定DMA的有关操作。
001则启动远程读操作;010则启动远程写操作:011则发送网卡数据包;1奉宰则终止或结束DMA的读写操作。
设置CIL扁动在线工作状态
是
否
否进入其他处理设置RSAR0,I,RBCRO,1寄存器
设置CR启动,DMA读
循环四次读RDMAPORT得帧长度
设置RSAR0,l,RBCR0,I寄存器
设置CR启动,DMA读
根据帧长读RDMAPORT,读出该帧
读出CURR和BNRY的寄存器值
图3接收帧的程序流程图
3.1.3发送过程
发送帧时,发送方将待发送的数据按帧格式要求
封装成帧,再通过处理器的I/O通道和网络接口控制。