基于单片机的B类电压表的设计与实现
2015-01-21 来源:eefocus
一. 设计过程
前言
早期的GPIB、VXI等技术,由于采用了专用的仪器接口标准进行设计,从而使得从底层的接插件、接口卡、机箱,到完成仪器控制功能的协议软件都是测试领域专有的、定制的,这极大的提高了测试系统的成本,并严重阻碍的测试技术的发展。随后出现的PXI技术,充分利用了现有的计算机总线技术,降低了测试系统的成本,但是,随着PC产业的高速发展,基于计算机接口的测试设备生命周期往往较短。这对于大多需要持续服务数十年的测试系统来说显然是无法接受的。
测试工程师和系统集成者需要长期、稳定、一致的接口标准以便维持测试系统长期的使用寿命。LXI联盟基于以上的考虑,确定采用以太网作为新的测试接口标准。以太网接口以其高性能,低成本在工业领域中得到广泛应用,并已持续使用几十年,目前它的性能仍在不断提升。
LXI(LAN eXtensions for Instrumentation),即基于局域网的仪器扩展,它是以太网技术在测试自动化领域应用的拓展,其总线规范融合了仪器的高性能、插卡式仪器的紧凑灵活和以太网的高速吞吐率,而且其性能比以往测试系统的解决方案更紧凑、更快速、更廉价、更持久。
LXI标准围绕4个主要方面——物理要求、Ethernet协议、LXI接口和LXI触发。标准是这些要求项目的组合。符合LXI标准的仪器被称为LXI设备,LXI设备分为3种类型:C类、B类和A类。C类LXI设备是基本类型,它必须符合物理要求、Ethernet协议和LXI接口标准;B类LXI设备除要满足C类设备的要求之外,还要加上基于LAN的触发和IEEE1588定时同步协议;A类LXI设备除C类和B类的要求外,再加上硬件触发总线。
本设计的目的是通过PIC32单片机实现LXI总线B类电压表,为提高LXI总线仪表的研究及应用作出贡献。
国内外的研究现状及分析
2004年9月安捷伦科技公司和VXI科技公司联合成立国际LXI联盟,推出了基于LAN的仪器总线标准——LXI。2005年9月底,LXI联盟正式发布LXI规范1.0版本。2006年8月,LXI联盟又推出LXI规范1.1版本。主要是对1.0版本中混合系统的构建方法进行了补充。2007年10月新推出的LXI 1.2版本改进了原规范中的发现和验证机制。
LXI总线刚一推出便引起了业界的广泛关注。目前,LXI联盟已有包括绝大多数国际著名测试测量公司在内的51家公司成为其成员。在LXI联盟的主持下已举办了多次PlugFest活动。安捷伦科技的第一台基于LXI的仪器出现在2003年,是20MHZ的函数发生器33220A,也是世界上第一台同时具备GPIB、USB和LAN接口的仪器。目前安捷伦科技已推出以34410A数字多用表为代表的30多种符合LXI的T&M产品。其中大部分是A级仪器,C级仪器模块不到10种。
VXI科技有两种A级的数据采集产品,并且应用在波音公司新开发的787宽体远程客机的应力测量系统中。目前所有主要测试公司都支持LXI,已有300多种产品。对于LXI总线的推出国内测试界也积极响应。目前,陕西海泰电子有限责任公司、北京无线电计量测试研究所、北京航天测控技术开发公司等单位已加入了LXI联盟。2006年9月国内成功的召开了中国LXI联合体成立大会暨2006年总线技术与LXI学术会议。2007年6月又成功举办了LXI联盟会员大会暨高级技术论坛。但国内目前还没有符合LXI总线规范的仪器产品面世,关键技术尚在攻克。
总的来说,LXI总线规范融合了GPIB仪器的高性能、VXI/PXI插卡式仪器的紧凑灵活和以太网的高速吞吐率,并考虑定时、触发、冷却、电磁兼容等仪器要求。相对于以往的总线标准,LXI不受带宽、软件和计算机背板总线的限制,其覆盖范围更广、继承性能更好、生命周期更长,成本也更低,并依托以太网日益提高的吞吐能力和性能优势,必将成为下一代自动测试系统的理想解决方案。
设计思路及内容
本设计主要是PIC32 Ethernet Starter Kit实验板完成LXI总线C类电压表的设计。并在此基础上探究LXI总线B类电压表的实现。实验板如图1所示:
图1 PIC32 Ethernet Starter Kit实验板
PIC32 Ethernet Starter Kit实验板的顶部组件包括:
- PIC32MX795F512L 32位微控制器。
- PIC32MX440F512H的USB微控制器板上调试。
- 绿色电源指示灯。
- 板晶体的精密微控制器时钟(8兆赫)。
- USB连接的板上调试器通信。
- 橙色调试指示灯。
- 三个为用户定义的输入按钮开关。
- 三个用户定义的LED指示灯。
- PIC32 USB A型主机为基础的应用插座连接。
- 主机模式电源线。
- RJ - 45以太网端口。
- 10/100以太网总线速度指示灯。
- 50兆赫以太网PHY振荡器。
- 32 kHz振荡器(可选)。
- USB主机和OTG PIC32的USB应用的供电电源。
PIC32 Ethernet Starter Kit实验板的底部组件包括:
- +3.3 V的稳压电源,通过USB或扩展板入门工具包电源。
- 连接各种扩展板。
- USB OTG和PIC32系列的USB OTG公司/设备为基础的应用设备连接微型AB插座。
- 外部以太网PHY。
PIC32单片机本身具有网络接口和USB等设计LXI的C类仪器的基本要求,LXI标准规定,C类接口功能需要提供LAN和Web浏览器接口,其LAN接口应支持千兆位以太网,向下兼容100Base-T,推荐使用Auto-MDIX功能,必须显示LXI仪器的MAC地址。网络协议上至少支持Ipv4的IP、TCP、UDP、ICMP、SNMP。必须支持三种LAN配置技术,即动态主机配置协议(DHCP)、动态配置本地链路选址(Auto-IP)和手动设置。必须提供HTML Web网页,这些Web网页可以在和W3C兼容的浏览器上正确工作。Web服务器必须符合HTTP1.1规范,且所提供的HTML网页必须符合版本4.01。
LXI测试模块使用IVI-COM驱动程序(使用COM API的IVI驱动程序)对仪器进行控制。IVI驱动程序是基于VISA并被集成在NI提供的应用开发环境中。主控程序通过调用VISA I/O库函数,控制LXI模块完成电压、电流、频率等信号的测试采样。
因此本设计主要完成的内容如下所示:
- 熟悉计算机网络通信原理;
- 熟悉TCP/IP协议;
- 熟悉嵌入式的Internet技术;
- 完成模块内部常用接口的调试工作;
- 完成TCP/IP网络协议的实现;
- 实现Web Sever服务功能;
- 完成电压数据的读取;
- 探究B类电压表的实现方案。
基于PIC32单片机,关键在于网络协议的实现,结构框图如图2所示:
图2结构框图
注:模块上的网络PHY为DP83848C,不具备IEEE1588帧检测能力,需要更换成DP83640。DP83640芯片内置高精度IEEE1588时钟,并设有由硬件执行的时间标记功能,可为接收及发送信息包打上时钟标记,以实现IEEE1588功能。
以太网本质上是一个物理层标准,作为一套完整的网络传输协议,必须具有高层控制协议,以太网使用了TCP/IP协议。以太网最典型的应用形式是Ehtemet+TCP/IP,即灵活的Ethemet底层加上几乎已成通用标准的网络传输协议TCP/IP协议,使得以太网能够非常容易地集成到以Internet和Web技术为代表的信息网络中。
嵌入式以太网的实质是在嵌入式系统的基础上实现网络化,使嵌入式系统能够实现TCP/IP网络通信协议,接入以太网。将嵌入式系统与TCP/IP协议融合到一起主要有两种方法:
1.硬件方式:使用有的TCP/IP芯片直接作为以太网,这种方法的优点是:可靠性高,执行速度快,但往往硬件电路复杂,价格昂贵,硬件成本高。
2.软件方式:将TCP/IP协议以软件方式嵌入到嵌入式系统的ROM中。一般来说,TCP/IP协议栈都比较庞大,在嵌入式系统中很难支持完整的TCP/IP协议栈,因此要根据嵌入式网络产品的特点,精简TCP/IP协议,实现与需要相关的部分,大幅度减少对于系统资源的需求。
本设计采用第二种方法。以太网技术是LXI的技术基础,LXI标准规定了对以太网的硬件要求和相关配置要求。LXI规范中规定设备必须使用合适的IEEE 802.X PHY/MAC规范实现以太网。以太网的物理连接必须使用IEEE 802.3规范。推荐使用RJ45作为LAN连接器。LXI设备应支持千兆位以太网,并能保证在10/100Base-T低速以太网中正确运行。用户通过访问显示器或粘贴在模块上的标签可以获得模块的MAC地址。模块必须包括以太网连接的监视功能。另外,LXI设备应包括Auto-MDIX(自动线序识别)功能,并支持缺省的网络速度自动协商功能。
在LAN配置方面,LXI设备必须支持TCP/IP网络,至少支持IPv4,其中包括IP、TCP、UDP等协议。同时还要求设备支持ICMP协议。规范要求设备必须支持三种IP地址配置技术:动态主机配置协议(DHCP)、动态配置本地链路地址(Auto-IP)和手动设置。其中,DHCP是在使用以太网路由器的大型网络中自动分配IP地址的方法,此时通过DHCP服务器获得设备的IP地址;Auto-IP方式适用于由以太网交换机(或集线器)组建的小型网络或特设网络,以及由交叉网络组建的两节点网络;手动方式可用于所有类型拓扑结构的网络,此时用户手动设置LXI设备的IP地址。LXI设备需提供LAN配置初始化机构(LCI),实现VXI-11发现机制,从而能容易地在网络上被识别。
仪器发现技术可以依靠VXI-11标准来实现,VXI-11标准基于TCP/IP协议模型和客户机/服务器架构,利用ONC/RPC技术提供IO通道给LXI仪器的远程控制端,建立Core、Abort、Interrupt三类信道,实现仪器间的信息传输。仪器发现的过程实际上是仪器与服务器之间进行信息交互的过程:仪器向服务器发送通信请求;服务器收到信息则知道有仪器接入网络,建立连接并发送查询消息;仪器根据查询做出相关应答;服务器收到应答信息,完成仪器发现。发送的查询消息应包括标准SCPI命令“IDN”等。
每个LXI仪器都是一个独立的网络设备,所有LXI仪器都必须提供包括产品主要信息在内的欢迎网页及LAN配置网页, B类设备还要具有同步配置网页。此外,仪器还可以提供状态/其他页面,来显示仪器的当前状态和其他信息。这些网页通过HTTP80端口连接到网络,并可以通过标准W3C网络浏览器查看。从Web接口的角度看,LXI仪器类似于一个Web服务器【10】, 通过这些Web页,用户可以配置网络参数,检测设备的连通性,以及对LXI设备进行便捷的操作。
本设计可选用适合于嵌入式应用的Boa Web服务器作为LXI设备的Web服务器,Boa服务器支持HTTP 1.0规范,具有配置简便,内存占用小等特点。Boa服务器可以通过CGI程序处理用户提交的表单数据并动态更新网页中的数据,能够满足LXI设备对Web接口的需求。
1588时间戳软件设计
通过上文对时钟偏移量和延迟量的分析来设计1588时间戳的状态机。状态机中共有S0、S1、S2、S3、S4五种状态,分别代表了时钟同步初始状态、Sync报文状态、Follow报文状态、Delay_Req报文状态和Delay_Resp状态。下面给出的是时间戳状态机的软件实现方式:
module ieee1588_time_stamp (in_data,clk,nclear,out);
input indata, clk,nclear;
output out; //端口声明
reg out;
reg[2:0] state;
reg t_slave1,t_master1,t_slave2,t_master2,t_offset,t_
delay;
.............. //变量和参数声明
parameter [2:0] s0=1,s1=2,s2=3,s3=4,s4=4;
//各状态的定义
always @(posedge clk)
begin
if(! nclear |主从时钟同步) state = s0;
case(state)
s0: begin
if(indata ==同步报文)
state <= s1;
else if(idata ==跟随报文)
begin out = t_master1;state <= s2; end
else state <= s0;
end
s1:state <= (indata ==传输t_slave1)? s1:s2;
s2:state <= (indata ==延迟请求报文)? s3:s2;
s3:state <= (indata ==延迟响应报文)? s4:s3;
s4:state <=(indata ==同步)? s0:s3;
endcase
end
always @ (state) //探测到状态的变化同时输出
信号
begin
case (state)
s0:out=t_master1
s1:out=t_slave1;
s2:out=t_slave2;
s3:out=t_master2;
s4:out={t_offset,t_delay};
endcase
end
read_time _model test_time(
t_master1(t_master1),
t_slave1(t_slave1),
t_master2(t_master2),
t_slave2(t_slave2));//调用时钟记录模块
……………..
Endmodule
该状态机利用两个always语句分别实现状态的转换以及输出。在ieee1588_time_stamp时间戳模块中还调用了read_time_model时钟读取模块为时间戳模块实时的读取时钟。由于模块上的网络PHY为DP83848C,不具备IEEE1588帧检测能力,需要更换成DP83640。DP83640芯片内置高精度IEEE1588时钟,并设有由硬件执行的时间标记功能,可为接收及发送信息包打上时钟标记,以实现IEEE1588功能。
二. 测试
LXI仪器是测试仪器的网络化应用,其利用IEEE1588协议解决了以太网的延迟不确定性,并可以帮助仪器实精确的时钟同步,势必成为分布式、网络化测试平台的主流。LXI的小型网络测试仪如图3所示:
图3 LXI的小型网络测试仪
基于试验条件所限,本设计只能针对一个LXI仪器进行测试,测试的流程如图4所示:
图4 测试流程