由单片机和CS8900A构件的PC网络实验平台
时间:11-11
来源:互联网
点击:
2 实验平台的软件设计
本系统的软件部分主要包括计算机程序、单片机程序及以太网芯片CS8900A的驱动程序。
2.1 计算机程序
计算机程序主要指的是实验界面。这是人机交互的窗口。通过该界面,学生可以控制并查看发送和接收流程。这样,可在发送数据时,输入要发送的内容,选择使用的协议,并控制发送流程,然后查看并分析各层数据;而在接收数据时,则可通过分析收到的数据包来分析使用的协议。
2.2 CS8900A的驱动程序设计
在8位I/0模式下,CS8900A不支持中断方式。因此,C805lF310采用查询方式与CS8900A通信。在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的中断状态寄存器,可在内部映射接收中断状态寄存器和发送中断状态寄存器的内容;
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来处理,应用层则由用户根据需要进行数据处理。
本文给出了基于C8051F310单片机和CS8900A以太网控制器的计算机网络实验平台的设计方法。通过本实验平台,学生可以完成协议分析的相关实验内容,从而加强学生对TCP/IP协议族的理解。
本系统的软件部分主要包括计算机程序、单片机程序及以太网芯片CS8900A的驱动程序。
2.1 计算机程序
计算机程序主要指的是实验界面。这是人机交互的窗口。通过该界面,学生可以控制并查看发送和接收流程。这样,可在发送数据时,输入要发送的内容,选择使用的协议,并控制发送流程,然后查看并分析各层数据;而在接收数据时,则可通过分析收到的数据包来分析使用的协议。
2.2 CS8900A的驱动程序设计
在8位I/0模式下,CS8900A不支持中断方式。因此,C805lF310采用查询方式与CS8900A通信。在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的中断状态寄存器,可在内部映射接收中断状态寄存器和发送中断状态寄存器的内容;
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来处理,应用层则由用户根据需要进行数据处理。
本文给出了基于C8051F310单片机和CS8900A以太网控制器的计算机网络实验平台的设计方法。通过本实验平台,学生可以完成协议分析的相关实验内容,从而加强学生对TCP/IP协议族的理解。
嵌入式 电路 单片机 MCU ADC 比较器 电压 电流 振荡器 Cirrus 滤波器 总线 变压器 相关文章:
- 蓝牙无线电调制解调器Siw1701原理与应用(02-19)
- 嵌入式移动数据库的关键技术(03-20)
- 在嵌入式SQL中怎样使用游标(08-12)
- 嵌入式Linux系统软件开发学习思路详细介绍 (08-20)
- 基于AVR单片机的嵌入式“瘦服务器”系统设计思想(03-11)
- 嵌入式系统设计中的存储碎片收集策略(05-04)