多USB接口的局域网接入技术的实现
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可以自动地与传输方式未知的上级网络设备协商物理层信号的传输方式。
降此以外,对RTL8204最重要的配置是其端口的物理地址的设备。本系统用RTL8204的C端口连接RTL8308B的C端口,要求这两个端口的物理地址一致。前文所述,RTL8308B的C端口地址应为0AH,所以,应该将该RTL8204的C端口地址设置成为0AH,具体设备方法可以参考文献[3]。
2.3 AX88170的系统配置
USB转换芯片AX88170的数据接口可以选择MII接口或者RMII接口,本系统选择了设计较为简单的RMII接口。AX88170还可以工作在PHY模式或者MAC模式下,在本系统中,RTL8308B工作在MAC层,对其他芯片的传输方式进行控制。所以,这里需要将MX88170设置为工作在PHY模式下。
和前所述的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接口的局域网接入技术的实现(第2页)》