51单片机实现串口-以太网转换.doc

上传人:scccc 文档编号:12446207 上传时间:2021-12-04 格式:DOC 页数:6 大小:232.50KB
返回 下载 相关 举报
51单片机实现串口-以太网转换.doc_第1页
第1页 / 共6页
51单片机实现串口-以太网转换.doc_第2页
第2页 / 共6页
51单片机实现串口-以太网转换.doc_第3页
第3页 / 共6页
51单片机实现串口-以太网转换.doc_第4页
第4页 / 共6页
51单片机实现串口-以太网转换.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《51单片机实现串口-以太网转换.doc》由会员分享,可在线阅读,更多相关《51单片机实现串口-以太网转换.doc(6页珍藏版)》请在三一文库上搜索。

1、用8位单片机实现串口 -以太网转换器作者:成都西南交通大学电气工程学院(610031)蔡宁果 何晓琼来源:电子技术应用摘要:用8位单片机8031和ISA总线网卡,实现 RS485串行设备与以太网的连 接,以传送控制信令和数据文件。程序设计采用C51语言,便于移植和调试。关键词:以太网串行通讯 单片机C51单片机或微控制器(MCU )(也称为嵌入式系统)已经在各个领域得到了广泛的应用。 目前绝大多数系统都是以 MCU为核心,与监测、伺服、指示设备配合实现一定的功能。以太 网是当今最受欢迎的局域网之一,现已成为社会重要的基础信息设施,是信息流通的重要渠 道。如果嵌入式系统能够连接到 In tern

2、et,则可以方便、低廉地将信息传送到世界上的任何一 个地方。将嵌入式系统与In ternet相连的主要困难在于:In ternet的各种通信协议对存储器、运算速 度等的要求比较高;而嵌入式系统中除部分 32位处理器外,大量存在的 8位和16位MCU, 支持TCP/IP等In ternet协议将占用大量系统资源,影响本来的功能或根本不可能实现。本文用8031单片机和RTL8019AS网卡实现了 RS485串口设备数据文件通过以太网传输 到远端计算机的功能。图1址仲框图1串行通讯串行通讯在通讯领域被广泛应用。RS232接口已成计算机、计算机外设、交换机和许多通讯设备的标准接口。在我国工业总线的应用

3、中,RS485、RS422使用最为普遍。在串行接口连接中,按连接方式可分为:面向连接和无连接。无连接原理比较简单,通讯 双方无握手过程。一方如有数据需要发送,则立即通过串行接口发送出去,另一方被动接收。 该方式能够达到较高的通讯速率,但不能保证数据传输的可靠性,可用于对数据可靠性要求不 高的场合,如语音、图像等。而面向连接方式则不同。甲方有数据发送请求时,向乙方发送 请求发送数据”命令;乙方收到后,如准备就绪,则回送确认信息;甲方得到乙方的确认后方 可发送数据。大多数情况下,乙方要对收到的数据进行校验,校验正确发送通讯终止”命令;否则发送 重发”命令。面向连接的串行通讯过程实现起来要复杂得多,

4、通常用于数据文件的传 输。2以太网的物理传输帧标准IEEE802.3帧结构由七部分组成,如表 1所示。除了数据域的长度不固定外,其他部 分的长度都是固定不变的。在发送数据时,帧头、起始位和校验位都是网卡自动添加;在接收 数据时,帧头和起始位将被网卡自动跳过,即网步一旦检测到有效帧头和帧超始位,就认为有 有效数据开始,并将有效数据存入接收缓冲环。表1标准IEEE802.3帧结构帧头起始位目的地址源地址数据长度数据域|校验位62位2位48位48位16位不超过1500字节32位3以太网卡RTL8019AS网卡是8/16位ISA总线的网卡,遵循IEEE802.3协议。按功能可将其划分 为:接收功能模块

5、、CRC产生模块、发送功能模块、地址识别模块、FIFO控制模块、协议逻辑阵列模块及DMA和缓冲控制模块。对网卡进行编程可以实现局址网内任意站点之间的通信 而需要网络操作系统的支持。熟悉网卡接口电路是对网理编程的首要条件。网卡接口电路可分为两部分:一是与计算机 ISA总线相连,包括数据总线读写、地址总线驱动、中断控制信号的产生、存储器读写信号以 及I/O端口读写信号的引入等;二是对网卡内部的操作,包括对缓冲RAM的读写、对RTL8019AS的控制、读站地址 PROM以及读自举ROM等。ISA总线共有98个信号,通过对 网卡工作原理的分析,可以将接口信号线减至最少。2表是驱动RTL8019AS网卡

6、所需的信号线。表2系统所使用的网卡ISA总线信号线信号线引脚数据信号线 地址信号线 地址允许线I/O通道准备好信号线 复位信号线I/O读信号I/O写信号I/O片选16位信号SD0 SD15 SA0 SA19AEN IOCHRDY RESETDRV IOR IOW IOCS 164硬件框图系统采用8031为CPU主芯片,使用32K字节的外部存储器62256来存放以太网包(最大 可以有1500字节)和串行数据,8K字节的2764存放程序,用75176与485总线通讯。系统 的数据和地址总线分别与网卡的数据和地址总线相连。硬件框图如图1所示。CR、DCR、RBCR、CURR、TCR 和 RCR 等。

7、初初购化串口)初始化网卡图2主程序框图5软件设计对网卡编程就是对网络接口控制器(NIC) RTL8019AS中各种寄存器进行编程控制,从 而完成数据分组的正确发送和接收。所有程序采用Fran clin C51语言编制,具有可读性强、移植性好、开发周期短的特点。在代码的使用效率上,也完全可和汇编语言相比。5.1主程序主程序可分为网络通讯和串行通讯两部分。网络通讯过程又可分为网卡初始化、发送控制 和接收控制三部分。主程序框图如图2所示。5.2网卡初始化过程对网卡的初始化就是对相关寄存器进行初始化。这些寄存器包括PSTART、PSTOP、ISR、IMR、PAR0 PAR5、MAR0 MAR5、 始化

8、过程如下:(1) CR=0x21 :选择页0寄存器,将NIC处于离线状态;(2) DCR=0x88:8位内存访问,正常工作方式;(3) RBCR0=0 , RBCR1=0 :远程DMA操作时传递字节数 清零;(4) RCR=0xc0 :接收到的帧存入缓冲环;(5) TCR=0xe2 :环路测试状态;(6) PSTART=0x4c,PST0P=0x80 :构造缓冲环;(7) ISR=0xff :中断寄存器清零;(8) IMR=0x00 :屏蔽所有的中断;(9) CR=0x61 :选择页 1 ;(10) 设置网卡地址 PAR0PAR5;(11) 设置多址寄存器 MAR0MAR5 ;(12) CUR

9、R=0x4d :初始化当前页寄存器;(13) CR=0x22:选择页1,正常工作状态;(14) TCR=0XE0 :发送器正常工作状态。5.3发送控制过程在网络中,帧传输的过程就是发送方将待发送的数据按帧格式要求封装成帧,然后通过网 卡发送到网络的传输线上。发送程序框图如图 3 所示。5.4 接收控制过程帧的接收过程分为两步:第一步由本地 DMA 将帧存入接收缓冲环中;第二步由远程 DMA 将接收缓冲环中的帧读入内存。即将网络上的数据帧接收并缓存在网卡的接收缓冲环 中,然后由主机程序将缓存在缓冲环中的帧读走并存入内存中。帧的接收工作由网卡自动完成,只需对相关的寄存器和PSTART 、PSTOP

10、、 CURR 和BNRY 进行适当的初始化即可。帧读入较帧接收要复杂一些。首先必须初始化相应的寄存器RSAR、RBCR ,然后再启动远程 DMA 读操作和主机程序的读端口操作。以下是接收数据帧的子程序。为了获得数据长度,先读入18 个字节的数据,然后根据有交数据的长度将帧完整读入。为了启动远程 DMA 读操作,应该令 CR=0AH ,远程 DMA 将从 接收缓冲环的 DMA 地址处读入 1 字节并送往 I/O 数据端口,由主机程序读入内存。这一过程 将一直持续到 RBCR 寄存器为 0。Void Receive_Data()unsigned char data value,temp;unsig

11、ned int data datalength,i;RSARI=Next_PKT;RSAR0=0;RSAR0=18;RBCR1=0;CR=0x0a;for(i=0;i<18;i+)value=Data_Port;recv_bufi=value;datalength=(recv_buf)16<<8)+recv_buf17+18;value=datale ngth&OxOOff;RBCRO=value;value=(datale ngth &0xff00)>>8;RBCR仁value;RSAR仁Next_PKT;RSARO=O;CR=OxOa;For(

12、l=0;l<datale ngth;i+)Value=Data_Port;Recv_bufi=value;数接长厦"斗祈怡化远程字节 计數跚RBCR5.5串口通讯子程序为实现数据文件的串口传输编制了一个串口通讯协议。该协议由引导帧、长度帧、数据帧 和确认帧等组成。其中引导帧用于同步每一包数据的引导头,长度帧是这一包数据的总长度, 数据帧是其中的数据信息,确认帧是接收方对发送方的回应。每帧数据由16个字节组成,每帧的第14个字节为标志位,第15字节为校验位。标志位中有 2位帧标志位,3位序号位。校 验采用和校验,只计算013字节,溢出值舍去。在发送方有数据发送时,先检测线路是否空

13、 闲,如线路空闲则向收方发送 “请求发送数据 ”命令帧。接收机收到后,如准备就绪,则回送 “可以发送 ”的确认命令。发送方得到确认后开始发送数据。接收方对收到的每一帧数据进行和 校验,校验正确发送 “和校验正确 ”命令,发送方发送下一帧;否则发送 “重发”命令,发送方重 发此帧。协议中还具有等待超时处理、帧不同步处理和线路冲突检测功能。利用 8位单片机 8031驱动 ISA 总线网卡,实现串口设备通过以太网进行通讯,可以方 便、可靠、低廉地将数据传输到远端设备。而且,通过串口设备与以太网的相连,可以很好地 解决多种工业总线的系统集成问题,同时也大大丰富了工业总线的体系,促使其向更高层次发 展。可以预计,小型串口设备与以太网相连将带来一场新的技术浪潮。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1