0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

利用嵌入式网络模块实现计算机实验平台设计

牵手一起梦 来源:网络整理 作者:佚名 2020-01-16 09:46 次阅读

引言

《计算机网络》课程是大学计算机及相关专业开设的一门计算机与通信的专业课程。本课程具有很强的实践性,很多教学内容都需要高成本的实验环境才能实现,加上网络设备更新快、成本高,一般高校难以承担。而通过软件技术。建立一个软件模拟的实验室环境,不仅可节约实验成本,还可提高实验教学的水平和质量。

局域网技术发展十分迅速,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位计数器/定时器。C8051F310的时钟源既可用内部可编程振荡器(24.5 MHz,±2%精度),也可用外部振荡器(晶体、RC、C)或外部时钟。

1.2 以太网控制芯片CS8900A

CS8900A是Cirrus Logic公司生产的低功耗16位以太网控制器。它功能强大,其高度集成设计使其不再需要其它以太网控制器所必需的昂贵外部器件。CS8900A的内部结构如图2所示。

利用嵌入式网络模块实现计算机实验平台设计

CS8900A包括片上RAM、10BASE-T发送和接收滤波器以及带24 mA驱动能力的直接ISA总线接口。除了高度集成外,CS8900A还提供其他性能和配置选择。它独特的PacketPage结构可自动适应网络通信量模式的改变和现有系统资源,因而系统效率很高。

CS8900A的内部功能主要是802.3介质访问控制块(MAC)。802.3介质访问控制块可支持全双工操作,并可完全依照IEEE802.3以太网标准来处理有关以太网数据帧的发送和接收,包括冲突检测、帧头的产生和检测、CRC校验码的生成和验证等。通过对发送控制器(TXCMD)的初始化配置,MAC 能自动完成帧的冲突后重传。如果帧的数据部分少于64字节,它还能生成填充字段,以使数据帧达到802.3所要求的最短长度。

CS8900A的主要特点是符合IEEE802.3以太网标准,并带有ISA接口。片内有4K字节RAM,可适用I/0操作模式、存储器操作和 DMA操作模式。芯片带有传送、接收低通率的10BASE-T连接端口,并支持10BASE2、10BASE5和10BASE-F的AUI接口,也可自动生成报头,自动进行CRC检验,而且冲突后可自动重发。CS8900A的最大电流消耗为55 mA(5 V电源),可全双工操作,同时支持外部EEPROM

CS8900A收到由主机发来的数据包(从目的地址域到数据域,如图3所示)后,即可侦听网络线路,如果线路忙,就等待,否则就立即发送该数据帧,图3所示是其802.3帧格式。

利用嵌入式网络模块实现计算机实验平台设计

发送时。首先应添加以太网帧头(包括先导字段和帧开始标志),然后生成CRC校验码,最后将此数据帧发送到以太网上。接收时,则把从以太网接收的数据帧经过解码、去帧头和地址等步骤后所得到的数据放在缓存内,这样,在CRC校验通过后,根据初始化配置情况,CS8900A通知主机收到了数据帧,并将数据用某种传输模式传到主机的存储区。

1. 3 硬件电路分析和设计

本实验平台采用C805lF310作为控制器,而以太网控制芯片CS8900A也是主要的一个工作部件,用于完成对网络数据的发送和接收。网络隔离变压器E2023是和芯片CS8900A配套使用的,用于将外部线路与CS8900A隔开,防止干扰,并可实现带电插拔功能。此外,CS8900A还有两个接口,一个是用来和用户模块连接的RS232串行接口(用MAX232芯片进行电平转换),另一个是用来连接网络的RJ45接口。

C805lF310通过数据线、地址线和控制线与CS8900A相连。它可通过等实现对CS8900A的工作方式的控制和读写操作。当 CS8900A有硬件复位或软件复位时,它将默认成8位工作模式。本设计采用8位模式,这样,C805lF310的P1口与CS8900A的低8位数据线相连。CS8900A与C8051F310之间的数据传输采用默认的I/O模式,因此,读写管脚被置高,以关闭Memory方式。在此模式下,用3根地址线就可以实现对所有寄存器的访问,只要将管脚SAl、SA2和SA3对应接到C8051F310的地址线上即可。实际上,除了为保证缺省偏移地址 (0X300H)须将SA8和SA9置高外。其余不用的地址线都接入低电平。

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来处理,应用层则由用户根据需要进行数据处理。

3、 结束语

本文给出了基于C8051F310单片机和CS8900A以太网控制器的计算机网络实验平台的设计方法。通过本实验平台,学生可以完成协议分析的相关实验内容,从而加强学生对TCP/IP协议族的理解。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5068

    文章

    19008

    浏览量

    302938
  • 寄存器
    +关注

    关注

    31

    文章

    5308

    浏览量

    119975
  • 计算机
    +关注

    关注

    19

    文章

    7409

    浏览量

    87690
收藏 人收藏

    评论

    相关推荐

    嵌入式计算机性能怎么评测?

    嵌入式计算机的设计不同于通用的计算机设计,它的设计过程较复杂。对于嵌人计算机的设计,是针对具体的应用问题,通过对问题的描述、建模,分解嵌入式
    发表于 09-23 06:34

    嵌入式计算机性能怎么评测?

    嵌入式计算机的设计不同于通用的计算机设计,它的设计过程较复杂。对于嵌人计算机的设计,是针对具体的应用问题,通过对问题的描述、建模,分解嵌入式
    发表于 03-09 07:35

    嵌入式系统与通用计算机操作系统的区别

    交叉编译方式,开发平台一般是通用计算机,运行平台嵌入式系统。二次开发性:“通”:应用程序可重新编程;“嵌”:一般不能重新编程开发。发展目标:“通”:编程功能电脑,普遍进入社会;“嵌”
    发表于 04-22 08:05

    嵌入式系统与通用计算机操作系统的区别

    交叉编译方式,开发平台一般是通用计算机,运行平台嵌入式系统。二次开发性:“通”:应用程序可重新编程;“嵌”:一般不能重新编程开发。发展目标:“通”:编程功能电脑,普遍进入社会;“嵌”
    发表于 04-22 08:05

    什么是嵌入式计算机

    嵌入式计算机系统无处不在。如果你去过一家超级市场,并且注意到墙上有售货亭机,那么这些售货亭很有可能由嵌入式计算机供电。本文将介绍有关嵌入式PC和计算机所需的一切知识。什么是
    发表于 10-27 08:05

    什么是嵌入式计算机

    什么是嵌入式计算机时间:2012-2-26顾名思义,嵌入式计算机嵌入在宿主系统中使用的计算机,如嵌入在医疗测试仪器CT,工业机器人,高级音
    发表于 10-27 06:02

    嵌入式计算机的应用范围

    嵌入式计算机是为特定的软件控制任务而设计的专用计算平台。这些不是我们在家或办公室使用的典型台式消费级计算机嵌入式计算机的应用范围从工业自动
    发表于 12-23 07:17

    嵌入式计算机发展的基础技术

    从应用的方式来说,计算机可分为两类:嵌入式计算机与独立式计算机,这两种计算机的发展取决于它们的基础技术。这里主要讨论一下嵌入式计算机普及、透
    发表于 05-14 00:34 22次下载

    基于一种嵌入式的PIII计算机系统是如何设计实现

    嵌入式PC模块的结构,阐述了一种快速开发嵌入式计算机系统的思路,并详细描述了一种基于嵌入式PC的PIII计算机系统的组织结构和设计
    发表于 10-22 10:24 933次阅读
    基于一种<b class='flag-5'>嵌入式</b>的PIII<b class='flag-5'>计算机</b>系统是如何设计<b class='flag-5'>实现</b>的

    嵌入式计算机是依据什么来分类的

    嵌入式计算机是为特定的软件控制任务而设计的专用计算平台
    发表于 12-27 16:34 1377次阅读

    嵌入式计算机示例及应用

    如何运作?嵌入式计算机有哪些应用程序?嵌入式计算机可以广义地定义为使用计算机硬件和软件执行特定功能的任何计算机,与现代台式计算机和服务器所进
    发表于 10-20 11:36 12次下载
    <b class='flag-5'>嵌入式计算机</b>示例及应用

    微型计算机嵌入式吗,什么是嵌入式计算机

    什么是嵌入式计算机时间:2012-2-26顾名思义,嵌入式计算机嵌入在宿主系统中使用的计算机,如嵌入在医疗测试仪器CT,工业机器人,高级音
    发表于 10-20 18:06 7次下载
    微型<b class='flag-5'>计算机</b>是<b class='flag-5'>嵌入式</b>吗,什么是<b class='flag-5'>嵌入式计算机</b>

    计算机网络嵌入式系统,嵌入式系统与计算机系统有什么不同

    原标题:嵌入式系统与计算机系统有什么不同近段时间很多学习单片机或者传统计算机的人员参加嵌入式培训的比例在不断增大,这部分同学可能以前对于计算机
    发表于 10-21 09:36 6次下载
    <b class='flag-5'>计算机网络</b>与<b class='flag-5'>嵌入式</b>系统,<b class='flag-5'>嵌入式</b>系统与<b class='flag-5'>计算机</b>系统有什么不同

    嵌入式计算机与普通计算机的区别

    嵌入式计算机和普通计算机的主要区别在于它们的设计理念。嵌入式计算机是特定任务的,致力于在几乎没有人机交互的情况下尽可能高效地完成单个任务。它们的专用性利用了轻量级软件和板载ASICS(
    的头像 发表于 05-23 10:11 1227次阅读
    <b class='flag-5'>嵌入式计算机</b>与普通<b class='flag-5'>计算机</b>的区别

    什么是嵌入式计算机

    嵌入式计算机是一种专门设计用于特定功能的计算机系统,通常被嵌入到其他设备中,以执行特定的任务。这种计
    的头像 发表于 01-15 15:10 1311次阅读
    什么是<b class='flag-5'>嵌入式计算机</b>?