基于C8051F310和CS8900A的计算机网络实验平台设计(2)
- UID
- 1023166
- 性别
- 男
- 来自
- 燕山大学
|
基于C8051F310和CS8900A的计算机网络实验平台设计(2)
◇LINECTL(0112H):可决定CS8900A的基本配置和物理接口。其初始值为00d3H,可选择物理接口为10BASE-T,并使能设备的发送和接收控制位:
◇RXCTL (0104H):控制CS8900A接收特定的数据报。初始值为0d05H,可接收网络上的广播或者目标地址同本地物理地址相同的正确数据报:
◇RXCFG(0102H):可控制CS8900A接收特定的数据报并引发中断。可设置为0103H:
◇BUSCT(0116H):控制芯片的I/0接口的一些操作。设置初始值为8017H,可打开CS8900A的中断总控制位:
◇ISQ (0120H):ISQ是CS8900A的中断状态寄存器,可在内部映射接收中断状态寄存器和发送中断状态寄存器的内容:
◇PORTO(0000H):发送和接收数据时,MCU通过PORT0传递数据;
◇TXCMD(0004H):为发送控制寄存器,如果写入数据00COH,那么CS8900A将在全部数据写入后开始发送数据;
◇TXLENG(0006H):发送数据长度寄存器,发送数据时,首先写入发送数据长度,然后将数据通过PORT0写入芯片。
寄存器后括号内的数字是寄存器地址相对基址0300H的偏移量。需要注意的是,在初始化CS8900A之前需强迫其进入16位模式。主机在一次中断处理中,必须连续地读并且处理中断状态队列(ISQ)。当有中断产生时,中断管脚信号变高,并依次将5个寄存器的内容映射到ISQ中,直到从ISQ中读出OX000为止。其驱动程序的软件流程图如图4所示。
2.3 MCU(C8051F310)主控程序
通常C8051F310首先初始化芯片CS8900A。初始化部分主要完成软件复位并检查复位完成标志是否置位;接着设定8/16位工作模式,默认为8位模式;再设定临时使用的以太网物理地址(真实地址需要向权威机构申请),之后,设定接收帧的类型时,一般要能接收广播,然后确定数据的传送方向 (可设为全双工或半双工),接着中断允许,使能接收中断,确定CS8900A的中断管脚号(根据硬件线路使用情况来确定),最后接收发送使能。
C8051F310完成数据的解包打包时。将从网络接收数据报,并对数据报进行分析,如果是IP数据包,则解析IP分组并送TCP层,并在解析 TCP段后送应用层,然后将数据解包后通过串口输出。反之,如果C8051F310从串口收到数据,则将数据按照TCP协议格式打包,并在生成IP分组后送入CS8900A,然后由CS8900A把数据输出到局域网中。
可以看出,链路层是由CS8900A完成的,而TCP/IP的网络层和传输层由C8051F310来处理,应用层则由用户根据需要进行数据处理。
3 结束语
本文给出了基于C8051F310单片机和CS8900A以太网控制器的计算机网络实验平台的设计方法。通过本实验平台,学生可以完成协议分析的相关实验内容,从而加强学生对TCP/IP协议族的理解。 |
|
|
|
|
|