介质无关接口(MII):包括两个基本模块,即MII I/O模块和MII管理模块。MII I/O模块提供独立的发送和接收数据路径和物理层网络状态信号输入,MII管理模块执行2线串行通讯总线便于访问物理层寄存器。
地址检测模块(Address Check):监控所有输入数据包的目的地址,根据CPU配置的过滤标准决定是转发还是丢弃。地址检测结果和帧类型信号位一起由BCU存入数据包接收状态字中。
发送/接收缓冲寄存器(Tx/Rx):DS80C410用8KB内部SRAM作为发送/接收数据包的缓冲寄存器,CPU可用MOVX指令访问数据存储器,BCU也可以访问SRAM,在需要存储或找回以太网数据包信息时可自动读/写缓冲寄存器。
电源管理模块(Power Management):可以通过CPU设定为休眠模式,在不处理以太网通信时以便节省电源[1]。
2.2 LXT972ALC简介
LXT972ALC是一个遵守快速以太网协议的接口收发芯片,支持10/100MAC的标准MII,它是物理层设备,完成参考模型中以IEEE802.3标准定义的物理编码子层、物理媒体附加层和物理媒体独立子层的功能。LXT972ALC设备实现了标准IEEE802.3定义的MII提供了从MAC到LXT972ALC数据传输的独立通道。每一个通道都有各自的时钟、数据总线和控制信号[3]。MAC每一次发送都使用先导模式,当LXT972ALC检测到先导符时,它发送一个帧开始符,然后进行编码和发送数据包的剩余部分,包含包数据和CRC。当包结束时,LXT972ALC发送包结束分解符,然后转为发送空闲标识符。
2.3 转换器的硬件连接
基于DS80C410串口至以太网接口转换器的硬件连接如图2所示。
串口采用MAX202实现TTL电平到RS232电平的转换,通过RS232标准接口(DB9)接入外部串口设备。以太网收发器的输出经过网络变压器的隔离接入RJ45通过5类双绞线电缆连接10/100BASE-T以太网。
3 软件部分
DS80C410 MCU内部64KB的ROM程序中包含完全符合工业标准的完整的TCP/IP IPv4/v6 协议栈,抢占式调度程序和可以装载应用程序的网络引导程序、串口引导装载程序。系统启动时,ROM对单片机的串口0进行初始化,微控制器通过串口0和开发主机通信,向Flash写入程序。应用程序使用Java来开发,借助软件开发工具包TINI SDK在开发主机上完成,TINI SDK将DS80C410中的硬件部分虚拟成Java的类,通过调用相关的方法实现对硬件的操作。TINI SDK提供了Java程序的运行环境,在主机上开发Java应用程序经过转换,即可在目标系统上运行。以串口设备到以太网服务器数据流传输程序为例,包括串口到以太网主线程、维持线程,串口发送、串口接收子线程。各流程图分别如图3 、4、5、6所示: