图1所示为RTL8019AS的部分电路图,其工作时钟为20 MHz。RTL8019AS的引脚悬空时,输入状态为低电平,因为芯片引脚内部已经接了一个100 kΩ的下拉电阻。AEN引脚为I/O端口操作允许使能脚,接地使地址一直处于有效;IOCSl6B引脚用一个27 kΩ的电阻下拉到地,复位时刻为低电平,选择8位总线模式;读写引脚IORB、IOWB分别与单片机的RD,WR引脚相连;8位数据总线SD0~sD7接到单片机的PA口;IOSO~IOS3为I/O基地址选择引脚,悬空设置为300H,所以SA5~SA7,SAl0~SAl9接地,SA8和SA9接高电平,真正用到的地址线只有SA0~SA4,接到单片机的地址线上;IRQS0~IRQS2为中断选择引脚,悬空选择中断INT0,实际上并没有使用中断,而是使用了查询方式;AUI引脚用于AUI接口外部MAU检测,决定使用AUI还是BNC接口,BNC接口方式支持8线双绞或同轴电缆,所以将该引脚悬空选择使用RJ45接口;SMEMRB和SMEMWB为存储器读写引脚,由于我们使用的是I/O模式读写网络芯片,所以将它们接高电平;TPIN和TPOUT为差分输入输出引脚,分别用来接收来自双绞线和向双绞线发送10 Mb/s的差分曼彻斯特编码信号,RTL8019AS需要经过隔离处理才能和RJ45接口相连,然后接入以太网,隔离低通滤波器选用的是20F001N,内部有两个传输变压器,用来传输信号以及抑制噪声干扰。
2 系统软件实现
2.1 RTL8019AS地址空间与寄存器
RTL8019AS内部的16 KB的RAM用于收发缓冲,地址为Ox4000~07FFF,收发缓冲以页为单位,每页256 B,共64页,如果某页没有完全填满数据,则下包数据也不能继续使用该页,只能使用新的页。一般将前12页作为发送缓冲区,分为两个6页的缓冲区(因为一个最大数据包占6页),两个发送缓冲区交替使用,可提高发送效率,后52页作为接收缓冲区。该RAM是双端口的,具有两套总线,一套是RTL8019AS读写该RAM,即本地DMA;另一套是单片机读写该RAM,即远程DMA,要接收和发送数据包就必须对这块RAM进行DMA读写。