多 USB 接口的局域网接入技术的实现
针对这种情况,本文提出了一种多通用串行总线(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可以自动地与传输方式未知的上级网络设备协商物理层信号的传输方式
USB接口局域网接入技 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)