O 引言
局域网技术发展十分迅速,Ethernet (以太网)是目前使用广泛的局域网技术。因此,学习以太网技术对深入掌握局域网知识是非常重要的。《计算机网络》课程是大学计算机及相关开设的一门计算机与通信的课程。本课程具有很强的实践性,很多教学内容都需要高成本的实验环境才能实现,加上网络设备更新快、成本高,一般高校难以承担。而通过软件技术。建立一个软件模拟的实验室环境,不仅可节约实验成本,还可提高实验教学的水平和质量。
1 实验平台的硬件设计
计算机网络实验平台的硬件框图如图1所示,它主要由C805lF310、CS8900A和MAX232以及外围电路组成。
1.1 单片机C8051F310
C805lF310是美国Cygnal公司的产品。该器件是完全集成的混合信号片上系统型MCU芯片,采用32脚LQFP封装,体积较小。C8051F310的模拟外设包括10位ADC以及速率可达200 KSpS的两个模拟比较器。器件的供电电压为2.7~3.6 V,典型工作电流为5mA@25MHz,典型停机电流为0.1μA。同时,C8051F310还带有1280字节的内部数据RAM(1 K+256)和16 KB的闪速存储器,可以在系统编程,其扇区大小为512字节。该MCU芯片的数字外设包括29个端口I/O,所有口线的耐压均为5 V,并具有4个通用16位计数器/定时器。
1.2 以太网控制芯片CS8900A
CS8900A是CIRRUS LOGIC公司生产的低功耗、性能优越的16位以太网控制器,功能强大。该芯片的突出特点是使用灵活,其物理层接口、数据传输模式和工作模式等都能根据需要而动态调整,通过内部寄存器的设置来适应不同的应用环境。CS8900A的内部结构如图2所示。
CS8900A包括片上RAM、10BASE-T发送和接收滤波器以及带24 mA驱动能力的直接ISA总线接口。它独特的PacketPage结构可自动适应网络通信量模式的改变和现有系统资源,因而系统效率很高。
CS8900A的内部功能主要是802.3介质访问控制块(MAC)。802.3介质访问控制块可支持全双工操作,并可完全依照IEEE802.3以太网标准来处理有关以太网数据帧的发送和接收,包括冲突检测、帧头的产生和检测、CRC校验码的生成和验证等。通过对发送控制器(TXCMD)的初始化配置,MAC能自动完成帧的冲突后重传。如果帧的数据部分少于64字节,它还能生成填充字段,以使数据帧达到802.3所要求的短长度。
它的主要特点如下:
符合IEEE802.3以太网标准,并带有ISA接口;
片内4K字节RAM;
适用于I/O操作模式,存储器操作模式和DMA操作模式;
带有传送、接收低通滤波的10Base-T连接站口;
支持10Base2,10Base5和10Base-F的AUI自动重发;
电流消耗为55mA(5V电源);
全双工操作;
接网络变压器YL18-1080S到RJ45支持外部EEPROM。
另外,要实现CS8900A与主机之间的数据通讯,在电路设计时可根据具体情况灵活选择合适的数据传输模式。CS8900A支持的传输模式有I/O模式和Memory模式,另外还有DMA模式。其中,I/O模式访问CS8900A存储区的缺省模式,比较简单易用。
CS8900A收到由主机发来的数据包(从目的地址域到数据域,如图3所示)后,即可侦听网络线路,如果线路忙,就等待,否则就立即发送该数据帧,图3所示是其802.3帧格式。
发送时。首先应添加以太网帧头(包括先导字段和帧开始标志),然后生成CRC校验码,将此数据帧发送到以太网上。接收时,则把从以太网接收的数据帧经过解码、去帧头和地址等步骤后所得到的数据放在缓存内,这样,在CRC校验通过后,根据初始化配置情况,CS8900A通知主机收到了数据帧,并将数据用某种传输模式传到主机的存储区。
CS8900A基本工作原理是:在收到由主机发来的数据报(从目的地址域到数据域,如图1所示)后,侦听网络线路。如果线路忙,它就等到线路空闲为止,否则,立即发送该数据帧。发送过程中,首先,它添加以太网帧头(包括先导字段和帧开始标志),然后,生成CRC校验码,,将此数据帧发送到以太网上。接收时,它将从以太网收到的数据帧在经过解码、去掉帧头和地址检验等步骤后缓存在片内。在CRC校验通过后,它会根据初始化配置情况,通知主机CS8900A收到了数据帧,,用上面介绍的某种传输模式传到主机的存储区中。
1. 3 硬件电路分析和设计
本实验平台采用C805lF310作为控制器,而以太网控制芯片CS8900A也是主要的一个工作部件,用于完成对网络数据的发送和接收。此外,CS8900A还有两个接口,一个是用来和用户模块连接的RS232串行接口(用MAX232芯片进行电平转换),另一个是用来连接网络的RJ45接口。
C805lF310通过数据线、地址线和控制线与CS8900A相连。它可通过等实现对CS8900A的工作方式的控制和读写操作。当CS8900A有硬件复位或软件复位时,它将默认成8位工作模式。本设计采用8位模式,这样,C805lF310的P1口与CS8900A的低8位数据线相连。实际上,除了为保证缺省偏移地址(0X300H)须将SA8和SA9置高外。其余不用的地址线都接入低电平。
2 实验平台的软件设计
本系统的软件部分主要包括计算机程序、单片机程序及以太网芯片CS8900A的驱动程序。
2.1 计算机程序
计算机程序或者软件程序(通常简称程序)是指一组指示计算机每一步动作的指令,通常用某种程序设计语言编写,运行于某种目标体系结构上。为了一个程序运行,计算机加载程序代码,可能还要加载数据,从而初始化成一个开始状态,然后调用某种启动机制。在层上,这些是由一个引导序列开始的。
计算机程序主要指的是实验界面。这是人机交互的窗口。通过该界面,学生可以控制并查看发送和接收流程。这样,可在发送数据时,输入要发送的内容,选择使用的协议,并控制发送流程,然后查看并分析各层数据;而在接收数据时,则可通过分析收到的数据包来分析使用的协议。
2.2 CS8900A的驱动程序设计
在8位I/0模式下,CS8900A不支持中断方式。因此,C805lF310采用查询方式与CS8900A通信。在CS8900A开始工作之前,系统必须进行一定的初始化,以确定它的工作模式。通常在I/0模式下,MCU可以通过操作CS8900A的几个主要的寄存器来实现对CS8900A中所有内部寄存器进行读写,这几个主要的工作寄存器有:
LINECTL(0112H):可决定CS8900A的基本配置和物理接口。其初始值为00d3H,可选择物理接口为10BASE-T,并使能设备的发送和接收控制位:
RXCTL (0104H):控制CS8900A接收特定的数据报。初始值为0d05H,可接收网络上的广播或者目标地址同本地物理地址相同的正确数据报:
RXCFG(0102H):可控制CS8900A接收特定的数据报并引发中断。可设置为0103H:
BUSCT(0116H):控制芯片的I/0接口的一些操作。设置初始值为8017H,可打开CS8900A的中断总控制位:
ISQ (0120H):ISQ是CS8900A的中断状态寄存器,可在内部映射接收中断状态寄存器和发送中断状态寄存器的内容:
TXLENG(0006H):发送数据长度寄存器,发送数据时,首先写入发送数据长度,然后将数据通过PORT0写入芯片。
寄存器后括号内的数字是寄存器地址相对基址0300H的偏移量。需要注意的是,在初始化CS8900A之前需强迫其进入16位模式。当有中断产生时,中断管脚信号变高,并依次将5个寄存器的内容映射到ISQ中,直到从ISQ中读出OX000为止。其驱动程序的软件流程图如图4所示。
2.3 MCU(C8051F310)主控程序
通常C8051F310首先初始化芯片CS8900A。初始化部分主要完成软件复位并检查复位完成标志是否置位;接着设定8/16位工作模式,默认为8位模式;接着中断允许,使能接收中断,确定CS8900A的中断管脚号(根据硬件线路使用情况来确定),接收发送使能。
可以看出,链路层是由CS8900A完成的,而TCP/IP的网络层和传输层由C8051F310来处理,应用层则由用户根据需要进行数据处理。
3 结束语
本文给出了基于C8051F310单片机和CS8900A以太网控制器的计算机网络实验平台的设计方法。通过本实验平台,学生可以完成协议分析的相关实验内容,从而加强学生对TCP/IP协议族的理解。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。