原创 基于ARM的Ethernet-GPIB转换器设计

2009-9-20 08:33 1869 4 4 分类: MCU/ 嵌入式
作者:戴尔晗 王汝传    时间:2007-04-10    来源: 
 
      

摘要:本文介绍了一种基于S3C44B0X的Ethernet-GPIB转换器的硬件设计,软件上也给出了完整实现。由于采用了嵌入式设计方法,系统的电路得到简化,并提高了系统的可靠性。


关键词:GPIB;以太网;转换器;ARM


引言


通常把在人工最少参与的情况下,能自动进行测量、数据处理,并以适当方式显示或输出测试结果的系统称为自动测试系统。随着自动测试系统应用的日益推广,GPIB总线的应用也越来越多。


事实上,GPIB是组建自动测试系统最成熟的总线。GPIB是测试系统中设备之间相互通讯的一个协议,实现了计算机与测量系统的首次结合。由于GPIB不是计算机的标准接口,因此计算机访问GPIB总线需具备各种转换器:PCI到GPIB转换器、并行口到GPIB转换器或者USB到GPIB转换器等等,这些转换器的功能是在计算机和GPIB总线之间传送数据。上述各种GPIB转换器都有如下缺点:计算机和转换器必须就近连接;处于GPIB总线上的各种仪器无法直接共享给不同的用户等。而Ethernet-GPIB转换器可以将仪器直接接入Internet,弥补上述缺点。因此设计了基于嵌入式系统的微型Ethernet-GPIB转换器。该转换器具有速度快、价格便宜等特点。


硬件设计


基于S3C44B0X的嵌入式系统的基本组成
系统CPU采用S3C44B0X。S3C44B0X是Samsung公司基于ARM7TDMI处理器核,采用0.25m工艺制造的32位微控制器。S3C44B0X提供了丰富的内部部件,包括:8kb指令/数据Cache,高速SRAM,LCD控制器,带自动握手的两通道UART,4通道DMA,系统管理器,71位通用I/O端口,实时时钟等。为了系统的需要,还外扩了一些其他芯片,如访问GPIB总线的接口芯片NAT9914及其所需要的收发芯片;访问以太网的接口芯片RTL8019AS。除此之外,系统还外扩了系统运行必需的存储模块。


程序/数据存储模块
现代计算机是依据存储程序的原理而设计的,计算机的工作步骤和处理对象,都存放在存储器中。存储器采用什么样的存储介质、怎样组织存储系统,以及怎样控制存储器的存取操作都是至关重要的。本系统的存储模块根据需要设置了两种:线性Flash和DRAM。线性Flash采用一片SST公司生产的512k×16bit的SST39VF800A,该线性Flash里装载全部的程序,包括BootLoader程序和应用程序。DRAM采用一片HYNIX公司生产的8M×16bit的HY57V281620。系统加电后,处于线性Flash中的BootLoader程序负责将该Flash中的应用程序和数据加载进入DRAM,然后执行。


GPIB通信模块
实现GPIB接口功能的方法很多,从中小规模门电路到大规模集成电路,从硬件到软件都有应用,考虑到实现的难易程度、速度及可靠性等问题,采用NI公司的大规模专用GPIB接口芯片NAT9914配合软件实现GPIB接口。NAT9914功能十分强大,不仅可以实现IEEE488.1标准中所定义的所有接口功能,也能满足IEEE488.2标准中所有的附加要求和建议。其外围电路十分简单,配合两片专用的收发器芯片(TI公司生产的SN75160和SN75162),利用专用的辅助命令,经软件初始化后,通过对其中内部功能寄存器进行操作就可以实现对GPIB总线的控制,完成诸如三线挂钩等复杂接口功能。NAT9914提供的GPIB总线的高层管理,对于简化系统的软硬件设计有很大益处。GPIB硬件接口框图如图1所示,图中74LVC4245的目的是进行电平转换。


20070410135742534.jpg
图1 GPIB硬件接口框图


Ethernet通信模块
RTL8019AS是Realtek公司制造的一种高集成度的全双工10Mbps以太网控制芯片,实现了基于Ethernet协议的MAC层的全部功能,内置16kb的SRAM、双DMA通道和FIFO完成数据包的接收和发送功能。


在本设计中,使用跳线模式(IOCS16B)来配置RTLS019AS为16位模式,使用了RTL8019的低5位地址线A0—A4以及16位数据线D0—D15,还有两个指示灯用于是否在线和是否正在接收数据包。CPU的引脚nGCS3作为RTLS019AS的片选信号。以太网硬件接口框图如图2所示。


20070410135808348.jpg
图2 Ethernet硬件接口框图


软件设计


计算机通过Internet发出GPIB指令给相应的Ethernet-GPIB转换器,转换器接收到指令之后通过GPIB总线将GPIB指令转发给仪器,仪器接收GPIB指令后将执行结果返回给转换器,转换器将执行结果转发给计算机完成某一条GPIB指令的执行。上述体系中,Ethernet-GPIB转换器是GPIB命令的真正执行者。


个人计算机程序设计
计算机不是GPIB命令的执行者,其主要工作是将用户的GPIB命令发送给Ethernet-GPIB转换器以及接收来自转换器的命令响应。因此计算机的主要工作是完成计算机和Ethernet-GPIB转换器之间的通信。Microsoft的Winsock提供了访问TCP/IP网络的捷径,使得软件开发人员在开发网络通信软件时不必关心具体的协议细节,只需要调用Winsock,由Winsock寻找并利用已经安装好的底层协议来进行数据传输。WinSock提供UDP和TCP两种通信协议。考虑到TCP提供了比UDP更多的功能,特别是差错恢复、流控以及可靠性等功能,本系统采用TCP协议来完成个人计算机和Ethernet-GPIB转换器之间的通信。


传统的GPIB接口软件包提供了两种类型的函数:Device-Level(器件级)函数和Board-Level(板级)函数。当转换器被配置成责任控者时,可以直接调用Device-Level函数来完成对于GPIB总线的简单管理和控制。Board-Level函数则用于直接控制接口,从而可以提供更加底层、更加复杂的总线控制手段。表1是本接口软件包提供的部分Device-Level函数名和NI公司提供的Device-Level函数名的对照表,对应函数的调用参数和所完成的功能是完全一致的。以前用类似的API写成的软件程序只需稍微修改、重新编译就可以直接运行,从而保护了以前的软件投资。


20070410135818143.jpg
表1 函数对照表


Ethernet-GPIB转换器的程序设计
由于Ethernet-GPIB转换器的CPU采用了S3C44BOX,因此开发工具选用Samsung公司的ARMSDT2.5。Ethernet-GPIB转换器的程序设计包括硬件驱动程序的开发,TCP/IP协议栈的实现以及系统的双队列设计等等。


设备驱动程序的作用就是让硬件工作,它的另外一个好处就是程序员可以通过简单的函数接口对相关硬件接口进行访问,而不需要知道实现的具体细节,从而缩短开发时间。本系统硬件主要包括GPIB接口,以太网接口。以太网接口采用了RTL8019AS芯片,这个芯片完成数据包和电信号之间的相互转换、以太网协议等等。不过从程序员的角度看,RTL8019AS工作流程并不复杂,驱动该芯片仅需要3个功能:芯片初始化、收包、发包。


因此设计了3个子函数来完成上述3个功能,Init8019(void)、Send8019(unsignedchar*SendString)、Receive8019(void)。GPIB接口采用了NAT9914芯片,表1中所示的所有函数都必须最终通过该芯片来实现。与NAT9914的通信主要是靠给NAT9914发命令和数据来实现的,NAT9914数据手册给出了各种命令的代码和地址。因此,可以将每种命令做成函数,用函数实现各个命令,以后直接调用函数即可完成相应的命令。


为了实现Ethernet-GPIB转换器的网络化,还需要移植TCP/IP协议。考虑到Ethernet-GPIB转换器对于传输的可靠性要求较高,因此在传输层选用传输控制协议TCP,在网络层选用基本数据传输协议IP。除此之外,系统还需要实现ARP,ICMP,DHCP协议。ARP模块完成的主要功是将一个IP地址与其物理地址关联起来。IP模块的主要功能是使数据包可以分片发往任何网络,而且也能正确接收。为了使TCP/IP协议栈具备一定的差错诊断功能,必须采用ICMP模块实现对请求消息产生回送应答。虽然TCP协议是整个协议栈中最复杂的一个协议,但是对外的接口只有两个:TCPReceive和TCPSend函数,一个用于发送数据包,一个用于接收数据包。在一个IP地址不是非常充足的环境下,系统必须支持DHCP,它的目的是自动获取IP。


该转换器的另外一个特殊性是它的双队列模型,其目的是为了加快GPIB命令的执行。双队列指的是转换器中有两个队列:一个命令队列,一个响应队列。命令队列可以一次接收多个来自于计算机的GPIB命令然后依次在GPIB总线上执行,对于来自于GPIB上的执行结果,将首先进入响应队列,等待某一时刻将结果从响应队列中取出回送给计算机。


应用实例


按照图3的连接方法组建了一个实际的自动测试系统。该系统采用点频法测量低通滤波器的幅频特性,函数发生器采用Agilent33120A函数/任意波形发生器,数字多用表采用2台Fluke45台式数字多用表,其中低通滤波器的带宽约为7000Hz。实际测量中,Agilent33120A函数/任意波形发生器的输出频率在计算机的远程控制下从0开始以100Hz为单位递增,随着其输出频率的不断增加,计算机控制数字多用表进行相应的Ui和Uo的数据采集。经过6min的测量,一共在90个测量点进行了数据采集。采集的数据通过Ethernet-GPIB转换器后途经Internet被送往计算机。图4是计算机上显示的低通滤波器的幅频特性曲线。


20070410135846284.jpg
图3 自动测试系统组成图


20070410135854954.jpg
图4 某低通滤波器的幅频特性曲线


结束语


由于该Ethernet-GPIB转换器采用了嵌入式设计方法,系统的电路得到简化,系统的可靠性得到了显著提高。该转换器还为传统的GPIB总线和Internet网络之间提供了通途,可以使越来越多的测试和测量仪器融入Internet网。

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
4
关闭 站长推荐上一条 /3 下一条