用8位单片机实现串口以太网转换器_第1页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、用8位单片机实现串口以太网转换器或微控制器()(也称为系统)已经在各个领域得到了广泛的应用。目前绝大多数系统都是以mcu为核心,与一些监测、伺服、指示设备协作实现一定的功能。以太网是当今最受欢迎的局域网之一,现已成为社会重要的基础信息设施之一, 是信息流通的重要渠道,假如嵌入式系统能够衔接到internet上面,则可以便利、低廉地将信息传送到几乎世界上的任何一个地方。将嵌入式系统与internet相连的主要困难在于:internet上面的各种通信协议对于存储器、运算速度等的要求比较高,而嵌入式系统中除部分32位处理器以外,大量存在的是8位和16位mcu,支持tcp/ip等internet协议将

2、占用大量系统资源,从而影响原来的功能或根本不行能实现。本文按照所做项目需要,用8031单片机和rtl8019as网卡实现了rs485串口设备数据文件通过以太网传输到远端计算机的功能。1 串行通讯串行通讯在通讯领域被广泛应用。标准的rs232接口已成为计算机、计算机外设、交换机和许多通讯设备的标准接口。在我国工业的应用中,rs-485、rs-422用法最为普遍。在串行接口衔接中,按衔接方式可分为面对衔接和无衔接。无衔接原理比较容易,通讯双方无握手过程。一方如有数据需要发送,则立刻通过串行接口发送出去,另一方被动接受。该方式能够达到较高的通讯速率,但不能保证数据传输的牢靠性,只用于一些对数据牢靠性

3、要求不高的场合,如语音、图像等。而面对通讯过程则不同,在甲方有数据发送哀求时,则向乙方发送“哀求发送数据”指令。乙方收到后,如预备就绪,则回送确认信息。甲方得到乙方确实认后方可发送数据。在大多数状况下,乙方要对收到的数据举行校验,校验正确发送“通讯终止”指令,否则可发送“重发”指令。面对衔接的串行通讯过程实践起来通常要复杂得多,通常用于数据文件的传输。2 以太网的物理传输帧标准ieee802.3帧结构有七部分组成,如表1所示。其中除了数据域的长度不固定外,其他的长度都是固定不变的。在发送数据时,帧头、起始位和校验位都是网卡自动添加的;在接收数据时,帧头和起始位将被网卡自动跳过,即网卡一旦检测到

4、有效帧头和帧起始位,就认为有效数据开头,并将有效数据存入接收缓冲环。3 以太网卡rtl8019as网卡是8/16位isa总线的网卡,遵循的标准与协议为ieee802.3。按功能可将其划分为接收功能模块、crc产生模块、发送功能模块、地址识别模块、fifo控制模块、协议规律阵列模块以及dma和缓冲控制模块等部分。对网卡举行编程就可以实现局域网内随意站点之间的通信而不需要网络操作系统的支持。认识网卡接口是实现对网卡编程的首要条件。网卡接口电路可分为两部分,一是与计算机isa总线相连,包括数据总线读写、地址总线驱动、中断控制信号的产生、存储器读写信号以及i/o端口读写信号的引入等;二是对网卡内部的操

5、作,包括对缓冲ram的读写、对rtl8019as的控制、读站地址prom以及读自举rom等。isa总线共有98个信号,但通过对网卡工作原理的分析,我们可以将接口信号线减至最少。表2是驱动rtl8019as网卡所需的最少的信号线。4 硬件框图系统采纳8031作为cpu主芯片,用法32k字节的外部存储器62256来存放以太网包(最大可以有1500字节)和串行数据, 8k字节的2764存放程序,用75176与485总线通讯。系统的数据与地址总线分离与网卡的数据与地址总线相连。硬件框图1所示。5 软件设计对网卡的编程就是对网络接口控制器(nic)rtl8019as中各种寄存器举行编程控制,从而完成数据

6、分组的正确发送和接收。全部程序采纳franclin c51语言编制,具有可读性强,移植性好,开发周期短的特点。即使在代码的用法效率上,也彻低可以和汇编语言相比。5.1 主程序主程序可分为网络通讯和串行通讯两部分。网络通讯过程又可分为网卡初始化、发送控制和接收控制等三部分。主程序框图2所示。5.2 网卡初始化过程对网卡的初始化就是对相关寄存器举行初始化。这些寄存器包括cr、dcr、rbcr、pstart、pstop、isr、imr、par0-par5、mar0-mar5、curr、tcr和rcr等。初始化过程如下:(1)cr=0x21:挑选页0寄存器,将nic处于离线状态;(2)dcr=0x88

7、:8位内存拜访,正常工作方式;(3)rbcr0=0,rbcr1=0:远程dma操作时传递字节数清零;(4)rcr=0xc0:接收到的帧存入缓冲环;(5)tcr=0xe2:环路测试状态;(6)pstart=0x4c,pstop=0x80:构造缓冲环;(7)isr=0xff:中断寄存器清零;(8)imr=0x00:屏蔽全部的中断;(9)cr=0x61:挑选页1;(10)设置网卡地址par0-par5;(11)设置多址寄存器mar0-mar5;(12)curr=0x4d:初始化当前页寄存器;(13)cr=0x22:挑选页1,正常工作状态;(14)tcr=0xe0:发送器正常工作状态;5.3 发送控制

8、过程在网络中,帧传输的过程就是发送方将待发送的数据按帧格式要求封装成帧,然后通过网卡发送到网络的传输线上。发送程序框图3所示。5.4 接收控制过程帧的接收过程分为两步:第一步由本地dma将帧存入接收缓冲环中;其次步由远程dma将接收缓冲环中的帧读入内存。即将网络上的数据帧接收并缓存在网卡的接收缓冲环中,然后由主机程序将缓存在缓冲环中的帧读走并存入内存中。帧的接收工作由网卡自动完成,只需对与相关的寄存器如pstart、pstop、curr和bnry举行适当的初始化即可。帧读入较帧接收要复杂一些。首先必需初始化相应的寄存器rsar、rbcr,然后再启动远程dma读操作和主机程序的读端口操作。以下是

9、接收数据帧的子程序,为了获得数据长度,我们先读入18个字节的数据,然后按照有效数据的长度将帧完整读入。为了启动远程dma读操作,应当令cr=0ah,远程dma将从接收缓冲环的dma地址处读入1字节并送往i/o数据端口,由主机程序读入内存。这一过程将向来持续到rbcr寄存器为0。5.5 串口通讯子程序为实现数据文件的串口传输编制了一个串口通讯协议,该协议由引导帧、长度帧、数据帧和确认帧等组成。其中引导帧是用于同步每一包数据的引导头,长度帧是这一包数据的总长度,数据帧是其中的数据信息,确认帧是接收方对发送方的回应。每帧数据由16个字节组成,每帧的第14个字节为标记位,第15字节为校验位。标记位中有2位帧标记位,3位序号位;校验采纳和校验,只计算0-13字节,溢出值舍去。在发送方有数据发送时,先检测线路是否空闲,如线路空闲则向接收方发送“哀求发送数据”指令帧。接收机收到后,如预备就绪,则回送“可以发送”确实认指令。发送方得到确认后开头发送数据。接收方对收到的每一帧数据举行和校验,校验正确发送“和校验正确”指令,发送方发送下一帧;否则发送“重发”指令,发送方重发此帧。协议中还具有等待超时处理、帧不同步处理和线路矛盾检测功能。6 结束语利用8位单片机803

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论