第五届全国称重技术研讨会论文集


以太网技术在电子衡器中的应用

福州大学电气工程与自动化学院 张冬宇
福州科迪电子技术有限公司     温泳荣
福州大学电气工程与自动化学院 郑崇苏

    [摘要] 本文主要介绍TCP/IP协议嵌入到电子衡器中进行以太网通讯的数据传输技术。借助以太网控制芯片RTL8019AS,并将TCP/IP协议嵌入到电子衡器中实现了电子衡器与上位机的以太网通讯。
    关键词:TCP/IP协议 电子衡器 RTL8019AS

    网络技术发展到现在,以太网和TCP/IP协议已经成为使用最广泛的网络和协议,以太网出现至今已经有30多年了,由于它的性能价格比高,容易普及,目前全球企事业用户的90%以上都采用以太网接入,在我国的大部分局域网也都采用以太网技术,以太网已成为企事业单位的主导接入方式,采用以太网作为企事业的主导接入方式的主要原因是已有的巨大的网络基础和长期的经验知识。但是电子衡器通讯发展到现在,大都采用一些局部系统的总线进行通讯,如RS232、RS485,而没有提供以太口通过TCP/IP协议进行以太网通讯。在当今的网络时代,电子衡器没有以太口,其价值将大打折扣,为此,我们借助以太网控制芯片RTL8019AS,并将TCP/IP协议嵌入到电子衡器中实现了电子衡器与上位机的以太网通讯。

    1、TCP/IP协议:TCP/IP协议即传输控制协议/网际协议(Transmission Control Protocol/Internet Protocol)是世界标准的协议组,它是为跨越局域网和广域网环境的大规模互联网络而设计的。从体系结构来看,TCP/IP基于四层参考模型,它是OSI七层模型的简化。如图1所示。TCP/IP模型的每一层都对应于国际标准组织 (ISO)提议的七层“开放系统互联(OSI)”参考模型的一层或多层。

    下面结合本系统就四层结构做一个简单的介绍。
    (1)链路层
    本层是最底层协议,控制同一物理网络上的不同机器间的数据传输。在本电子衡器系统中由单片机控制以太网芯片RTL8019AS实现。
    (2)网络层
    本层实现发送数据到相邻网络上的任一主机,该层对应于IP层协议及附属协议。网络层用ICMP协议来实现与其他主机或路由器交换错误报文和其他信息,并用ARP协议实现从IP地址到数据链路层的映射。
    (3)传输层
    传输层为两台主机上的应用程序提供端到端的通信。传输层要定义明确的端口,通常有两个不同的传输层协议:传输控制协议TCP和用户数据报协议UDP。本电子衡器系统采用TCP。
    (4)应用层
    应用层要有一个比较清晰的会话过程,如通常所说的Http、Ftp、Telnet等。在本系统中,主要是为传输层提供应用数据。
    TCP/IP是一个协议族,即一组不同层次上的多个协议的组合,主要有ARP协议,IP协议,ICMP协议,TCP协议,它通常具有四层,每一层负责不同的功能,由于协议比较复杂,而单片机的程序空间有限,运行速度相对PC机较慢,因此要把TCP/IP协议嵌入到单片机中,必须把协议先进行简化,本系统采用uIP TCP/IP协议栈的0.6版。

    2、带以太网接口的电子衡器电路框图
    硬件结构如图2所示,称重传感器的重量信号经放大,A/D转换送入单片机,单片机把输入信号处理后存储到特定存储单元,存储单元的数据可以显示,打印,也可以通过以太网上传到后台上位机,上位机的数据也可以通过以太网下载到电子衡器的存储单元;以太网控制芯片采用RealTek的RTL8019AS;LT—2006是网络隔离变压器,在RTL8019的前端对网络信号进行脉冲波形变换。

    3、带以太网接口的电子衡器工作原理
    3.1 以太网控制芯片RTL8019AS
    以太网控制芯片RTL8019AS是10M ISA总线的以太网控制芯片,含16K字节的RAM,并且提供8位和16位两种接口单片机对以太网控制芯片的控制就是对片内寄存器进行读写,熟悉片内寄存器的特点是很重要的。RT8019AS与单片机兼容8位和16位操作,若电子衡器的CPU 是51系列单片机,则选择8位方式连接。输入输出地址32个,地址偏移量为00H-1FH,其中00H-0FH共16个地址,为寄存器地址;10H-17H共8个地址,为DMA地址(8位操作模式时只要选其中一个);18H-1FH共8个地址,为复位端口(8位操作模式只要选其中一个即可)。寄存器共有4页,每页16个,页码由CR寄存器(地址偏移量为00H)的PS1和PS0位决定,系统常用到的部分寄存器(括号中是页码—偏移地址)如下:
    CR(0+00H):命令寄存器,第7、6位用来选择寄存器页,共四页;第5、4、3位代表要执行的功能,如001为读RTL8019AS内存,010为写RTL8019AS内存,011为发送TTL8019AS数据包,1**为完成或结束DMA的读写操作;第2位写入1时发送数据包,发完自动清零;第1、0位为10时启动命令,为01时停止命令。
    Pstart(0—01H):接收缓冲区的起始页的地址;
    Pstop(0—02H):接收缓冲区的结束页地址;
    BNRY (0—03H):指向最后一个已经读取的页;
    RCR(0—0CH):接收配置寄存器,本系统设置为接收缓冲区,仅接收是自己地址的数据包和多点播送地址包,小于64字节的包丢弃,校验错的数据包不接收;
    TCR(0—0dH):发送配置寄存器,启用后自动生成CRC校验;
    DCR(0—0eH):数据配置寄存器,本系统设置为使用FIFO缓存,普通模式,8位数据传输模式,字节顺序为高字节在前,低字节在后;
    IMR(0—0fh): 中断屏蔽寄存器,由于本系统未用中断,设置为00H,屏蔽所有的中断;
    TPSR(1—04H):发送页的起始地址;
    CURR(1—07H) :当前的接收结束页地址;
    电子衡器系统把以太网控制芯片设置为跳线模式,而不是即插即用模式,因为单片机资源有限,要尽量减少操作。发送数据时,先将待发送的数据包存入发送缓冲区,给出发送缓冲区首地址和数据包长度(写入TPSR、TBCR0和TBCR1),启动发送命令即可实现以太网控制芯片发送功能;接收数据时,单片机通过读取有关状态寄存器(CURR和BNRY)判断是否有数据接收在以太网控制芯片的接收缓冲区,如果有,依次读取数据到单片机的数据缓冲区,当以太网控制芯片接收缓冲区溢出时清ISR。
    3.2 uIP TCP/IP栈
    uIP TCP/IP栈是使用于低至8位或16位微处理器的嵌入式系统的一个极轻型的TCP/IP协议栈,它实现了TCP/IP协议组的四个基本协议:ARP 协议、IP 协议、 ICMP 协议 和 TCP 协议。uIP TCP/IP栈由瑞典单片机专家Adam Dunkels编写,是一个免费的TCP/IP栈,还有,它使用C语言编程,可以方便地应用到电子衡器中。uIP的实现目标是保持代码大小和储存器使用量最小。现时,uIP代码的大小和RAM的需求比其它的TCP/IP栈要小,但是uIP与其它TCP/IP栈不同,它的重发工作需要应用程序的帮助。其它TCP/IP栈RAM中存储着传输数据,直到数据被确认已成功发送才释放RAM空间。如果数据需要重传,堆栈在没有通知应用程序下监视着重传工作,在等待确认的过程期间,数据必须缓存在RAM里。uIP利用应用程序可以快速重新生成数据的特点,在等待数据确认的过程中,RAM中不必缓存数据,而是等确认不成功信号到达时由应用程序重新快速生成数据。例如,一个HTTP服务器服务的大部分是ROM里的静态和半静态页,不需要在RAM里缓存静态内容,所以,如果一个包丢失了,HTTP服务器可以容易地从ROM里重生数据,数据简单地从原先的位置读回来。
    3.3 电子衡器的通讯控制
    把uIP TCP/IP协议栈嵌入到电子衡器中,单片机复位后读取本机IP地址和物理地址以初始化网络。通讯过程中,当有数据从RJ45传来,单片机通过驱动程序接收数据到缓冲区,然后对数据包进行分析,如果是ARP(物理地址解析)数据包,则程序转入ARP处理程序。如果是IP数据包且符合TCP协议,端口正确,则认为数据包正确,数据包解包后,将数据部分存储到存储单元。当系统有数据要向远端IP发送时,系统将向远端IP 和远端端口发起主动TCP 连接,如果连接成功,将要传送的数据封装成以太包,存储到数据缓冲区,然后通过驱动程序把缓冲区的数据发送出去。如果主动或被动建立起连接后持续若干时间系统没有收到任何数据包,系统将主动中断此次连接。

    4、结束语
    把TCP/IP协议嵌入到电子衡器中,可实现电子衡器和上位机的以太网通讯,具有传输速度快、使用方便等优点,为电子衡器与上位机通讯提供了一种新的方案,有着广泛的应用前景。


参考文献

  1. 《uIP-A Free Small TCP/IP Stack》 作者:Adam Dunkels
  2. 《单片机与嵌入式系统应用》2001年12期第41页《以太网控制器的嵌入式设备网络互连》湖南师范大学 万静华 丁亚军
  3. RTL8019AS数据手册

 

<全文完>