[多USB接口的局域网接入技术的实现] 局域网接口

多USB接口的局域网接入技术的实现

多USB接口的局域网接入技术的实现 关键词:通用串行总线(USB) 局域网 目前,在局域网内部,计算机接入局域网的传统方法是通过在计算机主板 上安装以太网卡来实现网络的互联。这种接入方式需要计算机主板上有闲置的 ISA或者PCI插槽,还需要上级网络设备有足够的接口支持。当上级网络设备的 下行接口数量不够时,必须在这个网络设备下面添加集线器(HUB)或者交换机 (Switcher)。

针对这种情况,本文提出了一种多通用串行总线(USB)接口的局域网接 入适配器。它将传统意义上的多块以太网卡和集线器的功能集于一身,使多台计 算机可以用各自的USB接口连接到上级网络设备的一个下行接口,并在内部采用 了比集线器功能更为更强大交换控制器,对各接口的数据流量加以控制,保证可 靠地运行。

与传统的通过以太网卡的局域网接入方式相比较,这种通过USB接口的局 域网接入方式具有很多优点:安装简便,支持热插拔,而且不需要在计算机内部 安装以太网卡,尤其在主板插槽紧张时节省了资源。

1 系统硬件组成 本文所述的系统实现了对四路USB接口的局域网接入。图1是整个系统的 硬件组成框图。

1.1 物理层 物理层芯片连接上级网络设备的下行RJ45接口和交换控制器。本文所述系 统用台湾REALTEK公司的RTL8204芯片实现。这块芯片是一块高度集成的 10BASE-T/100BASE-TX/FX的以太网收发芯片。RTL8204包括了四个独立的通道, 可以同时收发四路以太网信号,每路通道都集成了4B5B编解码器、曼彻斯特编 解码器、加扰器、解扰器、输出驱动、输出波形形成、滤波、数字自适应均衡和 锁相环模块。但在本系统中只用了一路连接外部局域网。与普通物理层芯片所具 有的质独立(MII)接口相比较,RTL8204使用了相对简单的简化介质独立(RMII) 接口向上与MAC层进行连接。这种RMII接口省掉了MII接口中的许多控制信号和 数据信号,将15位信号减到了7位,简化了硬件的设计工作[3]。1.2 交换控制器 本系统采用的交换控制器是台湾REALTEK公司的RTL8308B芯片。这是一 块具有8端口10Mbps/100Mbps的交换控制器。它对各个端口的数据进行处理并交 换,并对各端口的流量加以控制。RTL8308B每个端口都能够处理10Mbps或者 100Mbps的数据,可以工作在全双工或者半双工模式下。与RTL8204一样, RTL8308B的接口也是RMII接口,硬件设计非常方便。

RTL8308B片内集成有2MB的DRAM。可以用作数据包的缓存。RTL8308B 支持IEEE802.3x全双工流量控制和半双工后退压力算法、地址学习算法、广播风 暴控制和环路测试功能。RTL8308B片外用一片串行EEPROM 24LC02B实现对芯 片的配置[4]。

1.3 USB转换芯片 USB转换芯片对USB接口的数据、控制信号和RMII接口的数据、控制信号 进行转换。本系统采用台湾ASIX公司的AX88170作为USB协议转换芯片。这块 芯片片内5KB×16bit的SRAM,内部对数据进行USB协议和网络协议转换。它支 持USB1.1标准,并可连接基于IEEE 702.3或IEEE 802.3u以太网协议下的 10Mbps/100Mbps网络,而且在支持MII接口的同时,还支持简单的RMII接口,方 便硬件的设计。

AX88170片外用一片串行EEPROM 93LC56实现对芯片的配置[5]。

1.4 通用串行总线(USB)接口 通用串行总线(USB)设备在即插即用的特性上能够较好地满足用户使用 方便的要求。USB规范目前有两个版本:1.1和2.0。目前,绝大多数计算机主板 还只是支持USB 1.1规范的最高12Mbps速率,所以本系统是针对USB 1.1规范进 行的[1]。

2 硬件配置 2.1 RTL8308B的配置 交换控制器RTL8308B的配合是通过芯片在上电时读取串行EEPROM 24LC02B及某些控制引脚的电平来实现的。这其中包括广播控制使能、半双工后退压力函数使能、全双工流量控制、环路监测函数使能位、CRC校验允许位、 Hash算法使能位等。对这些控制位的使能,本系统视需要而定,这里不再一一叙 述。

此外,非常重要的是选择好RTL8308B的物理端口,并设置好其对应的物 理地址。如果物理地址没有设置正确,交换控制器将能正常地从连接端口交换数 据。在本系统中,根据芯片手册要求及实际需要,选取C端口连接RTL8204的C 端口,E、F、G、H分别连接4片USB转换芯片AX88170。在EEPROM 24LC02B 内设置好物理端口对应的物理地址,使RTL8308B的A端口到H端口对应着物理地 址08H~0FH。

2.2 RTL8204的配置 RTL8204的系统配置通过读取某些控制引脚上电时刻的电平来实现。

RTL8204在上电时读取对应的引脚电平,并将其状态写入自己的内部寄存器中。

这些控制引脚包括速率的选择(10Mbps/100Mbps)、全双工/半双工的选择以及 自动协商的使能。本系统选择了自动协商工作方式,使RTL8204可以自动地与传 输方式未知的上级网络设备协商物理层信号的传输方式。

和前所述的REL8204、RTL8308B一样,AX88170的物理地址的设置也要 与RTL8308B的设置相一致。本文中的4片AX88170分别与RTL8308B的E、F、G、 H端口连接,所以对应的物理端口地址应该分别设置为0CH、0DH、0E和0FH。

除此之外,在存储AX88170控制信息的EEPROM93LC56中,还存储这个 端口的MAC地址。这里4个MAC地址和RTL8308B的MAC地址的选择应该避免自 身的重复,并且不应与现有局域网里的MAC地址重复。

2.4 其它控制信号 整个系统的复位信号的重要性不言而喻,除了每片芯片都有各自最小时间 的要求外,交换控制器RTL8308B还要求在复位后完成重新配置的时间不能早于 其他物理层芯片(即RTL8204和4片MX88170)的配置暗。也就是说,RTL8308B 的复位时间不能短于其他物理层芯片的复位时间。所以本系统还采用了MAXIM 的MAX809芯片用作所有芯片的复位信号,既保证了复位信号的单稳的可靠性, 也保证了RTL8308B和其他物理层芯片的复位时间是相等的。在本系统中,时钟信号成为重要,特别是50MHz的时钟信号。50MHz时钟信 号需要连接到RTL8308B、RTL8204和4片MX88170的RMII接口,需要足够的驱 动能力,并且它们之间的相位差要足够小才可以保证传输的可靠性。本系统采用 了IDT公司的49FCT3805(1:5时钟驱动芯片)对时钟信号增加了驱动力,并增 大了扇出。

3 测试程序和驱动程序 为了方便硬件的调试,还需要编写简单的测试程序来调试系统。除标准 USB指令外,AX88170厂家提供了关于MX88170的特殊指令,包括读写EEPROM、 读写片内收发存储器、读写内部其他控制寄存器等,方便了系统的调试。由于 MX88170芯片的厂商免费提供了其在Windows 98、Windows 2000和Windows Me 下的驱动程序,所以本系统仅仅编写了简单的USB设备的测试程序,主要用来调 试AX88170的工作状态。图2给出了程序的流程图。程序初始化后打开目标设备, 然后读取设备标识和配置标识并判断。如果正确,则继续读取设备标识和配置标 识并判断。如果正确,则继续读取EEPROM里的MAC地址和物理端口地址,之 后向MX88170的片内发送SRAM和接收SRAM读写数据,如果结果正确即证明 AX88170已经能够正常工作。MX88170完整的驱动程序由芯片厂端免费提供。

经过测试,本系统工作性能稳定。

本系统用于办公室或实验室环境下的计算机组网,支持IEEE 802.3的 10Mbps/100Mbps以太网标准,兼容全双工和半双工网络。图3为它的应用实例, 它可以将4台电脑通过USB接口连接在一起,并与局域网相连,从而实现多台计 算机的信息交换、资源共享。各用户终端可以通过本设备连接至局域网,进而与 Internet网络相连。

系统下一步的改进主要针对两个方面:一是高速的USB 2.0协议;
二是增 加USB接口数量,使其能适应更高速更复杂的网络。

与传统的用以太网卡的局域网接入方式相比较,利用本文的USB接口以太 网适配器接入较为灵活、方便,而且成本低廉,具有良好的市场前景。