|
3 以太网卡
RTL8019AS网卡是8/16位ISA总线的网卡,遵循的标准与协议为IEEE802.3。按功能可将其划分为接收功能模块、CRC产生模块、发送功能模块、地址识别模块、FIFO控制模块、协议逻辑阵列模块以及DMA和缓冲控制模块等部分。对网卡进行编程就可以实现局域网内任意站点之间的通信而不需要网络操作系统的支持。
熟悉网卡接口电路是实现对网卡编程的首要条件。网卡接口电路可分为两部分,一是与计算机ISA总线相连,包括数据总线读写、地址总线驱动、中断控制信号的产生、存储器读写信号以及I/O端口读写信号的引入等;二是对网卡内部的操作,包括对缓冲RAM的读写、对RTL8019AS的控制、读站地址PROM以及读自举ROM等。ISA总线共有98个信号,但通过对网卡工作原理的分析,我们可以将接口信号线减至少。表2是驱动RTL8019AS网卡所需的少的信号线。
4 硬件框图
系统采用8031作为CPU主芯片,使用32K字节的外部存储器62256来存放以太网包(可以有1500字节)和串行数据, 8K字节的2764存放程序,用75176与485总线通讯。系统的数据与地址总线分别与网卡的数据与地址总线相连。硬件框图如图1所示。
5 软件设计
对网卡的编程就是对网络接口控制器(NIC)RTL8019AS中各种寄存器进行编程控制,从而完成数据分组的正确发送和接收。所有程序采用Franclin C51语言编制,具有可读性强,移植性好,开发周期短的特点。即使在代码的使用效率上,也完全可以和汇编语言相比。
5.1 主程序
主程序可分为网络通讯和串行通讯两部分。网络通讯过程又可分为网卡初始化、发送控制和接收控制等三部分。主程序框图如图2所示。
5.2 网卡初始化过程
对网卡的初始化就是对相关寄存器进行初始化。这些寄存器包括CR、DCR、RBCR、PSTART、PSTOP、
|
5.4 接收控制过程
帧的接收过程分为两步:步由本地DMA将帧存入接收缓冲环中;第二步由远程DMA将接收缓冲环中的帧读入内存。即将网络上的数据帧接收并缓存在网卡的接收缓冲环中,然后由主机程序将缓存在缓冲环中的帧读走并存入内存中。
帧的接收工作由网卡自动完成,只需对与相关的寄存器如PSTART、PSTOP、CURR和BNRY进行适当的初始化即可。
帧读入较帧接收要复杂一些。首先必须初始化相应的寄存器RSAR、RBCR,然后再启动远程DMA读操作和主机程序的读端口操作。以下是接收数据帧的子程序,为了获得数据长度,我们先读入18个字节的数据,然后根据有效数据的长度将帧完整读入。为了启动远程DMA读操作,应该令CR=0AH,远程DMA将从接收缓冲环的DMA地址处读入1字节并送往I/O数据端口,由主机程序读入内存。这一过程将一直持续到RBCR寄存器为0。
5.5 串口通讯子程序
为实现数据文件的串口传输编制了一个串口通讯协议,该协议由引导帧、长度帧、数据帧和确认帧等组成。其中引导帧是用于同步每一包数据的引导头,长度帧是这一包数据的总长度,数据帧是其中的数据信息,确认帧是接收方对发送方的回应。每帧数据由16个字节组成,每帧的第14个字节为标志位,第15字节为校验位。标志位中有2位帧标志位,3位序号位;校验采用和校验,只计算0-13字节,溢出值舍去。在发送方有数据发送时,先检测线路是否空闲,如线路空闲则向接收方发送“请求发送数据”命令帧。接收机收到后,如准备就绪,则回送“可以发送”的确认
|
命令。发送方得到确认后开始发送数据。接收方对收到的每一帧数据进行和校验,校验正确发送“和校验正确”命令,发送方发送下一帧;否则发送“重发”命令,发送方重发此帧。协议中还具有等待超时处理、帧不同步处理和线路冲突检测功能。
6 结束语
利用8位单片机8031驱动ISA总线网卡,实现串口设备通过以太网进行通讯,可以方便、可靠、低廉地将数据传输到远端设备。而且,通过串口设备与以太网的相连,可以很好的解决多种工业总线的系统集成问题,同时也大大丰富了工业总线的体系,促使其向更高层次发展。可以预计,小型串口设备与以太网相连将带来一场新的技术浪潮。
参考文献:
[1]. RTL8019AS datasheet https://www.dzsc.com/datasheet/RTL8019AS_1096173.html.
[2]. RS485 datasheet https://www.dzsc.com/datasheet/RS485_585289.html.
[3]. RS232 datasheet https://www.dzsc.com/datasheet/RS232_585128.html.
[4]. RS-485 datasheet https://www.dzsc.com/datasheet/RS-485_584821.html.
[5]. RS-422 datasheet https://www.dzsc.com/datasheet/RS-422_584820.html.
[6]. IMR datasheet https://www.dzsc.com/datasheet/IMR_1942167.html.
[7] 刘彦明,李鹏.实用网络编程技术.西安:西安电子科技大学出版社,1998年
[8] 李鹏.计算机通信技术及其程序设计.西安:西安电子科技大学出版社,1998年
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。