基于LabVIEW的开关阵列及霍尔测试软件编程
2022-02-06熊壮壮
熊壮壮
(武汉科技大学 材料与冶金学院,湖北 武汉 430081)
0 引 言
霍尔效应可以用来测量金属薄膜及半导体材料的电阻率、载流子浓度和霍尔效应等参数。
基于LabVIEW平台下的霍尔效应测试系统,集硬件控制、数据采集与通信以及实验数据的呈现为一体,克服了实验室中测霍尔效应实验的不足,避免了高成本购进相关仪器的麻烦。该测试软件可以方便地测量半导体或金属薄膜的电阻率、载流子浓度、迁移率和霍尔系数等电学性能,为金属材料电学性能的研究提供了良好的条件、成熟的系统、较为稳定的测量平台。
1 测试原理
霍尔效应是指将一金属导体,放入与它通过的电流方向相互垂直的磁场内,横跨样品的2面可以产生与电流磁场都垂直的电场的现象,该实验也可以证明金属中存在自由电子[1]。产生电场的原因是,垂直于电子运动方向的磁场使电子受到洛伦兹力而偏转,并向某一面积聚,导致电子积聚的那一面带负电,而其对面的那一面带正电,从而形成电场EH,这个电场称之为霍尔场[2]。用来表征霍尔场的物理参数称为霍尔系数,即
式中:EH为霍尔场强度;JX为电流密度;B0为外加磁场。
在测量前将薄膜切成方块状,然后在方块的4角焊上4个金属钨电极A、B、C、D,如图1所示。
图1 接线示意
在AB两点间通电流IAB,在另一对点测量电位差为UCD;然后在BC两点间通电流IBC,在另一对点间测量电位差为UDA,则有R1=UCD/IAB,R2=UDA/IBC,从而得到薄膜电阻率为
式中:t为薄膜厚度;f为范德堡修正因子。它是由于样品的几何形状以及点击配置的不对称性所引进的,可以近似为
为了获得更加准确、可靠的数据,按照上述方法测出UCD、UDA、UAB、UBC,再取2组的平均电阻率。
测试霍尔系数RH时,在B、D两点间通电流I,则在A、C这2点间可以测量电位差为UAC1;然后在垂直于薄膜样品的方向加一恒定磁场,测得A、C这2点电位差为UAC2,由外加磁场引起的电位差变化即为霍尔电压UH=UAC2-UAC1。如果薄膜的厚度为d,磁场强度为B,RH计算公式为
由RH求载流子浓度n和迁移率μ,如式(5)和式(6)所示,其中q=1.6×1019C为电荷量,ρ为薄膜电阻率。
2 程序设计
2.1 设计方案
本设计选用LabVIEW软件作为基础,结合Modbus通信协议以及可编程仪器标准命令(Standard Commands for Programmable Instruments,SCPI)指令语言,通过4×4开关阵列和吉时利2 450数字源表实现了霍尔测试的程序编写,思路方式如图2所示。
图2 设计思路
2.2 设计思路
2.2.1 基于Modbus通信协议的4×4开关阵列的程序控制
由于在进行实验时需要手动操纵各线连接,本程序设计计划使用在16路232继电控制器基础上,基于Modbus通信协议的4×4开关阵列来自动完成连线方式的变化。
通过LabVIEW的环境来实现Modbus通信方式有很多,但是在大部分方式的实现中需要安装LabVIEW数据记录与监控(Datalogging and Supervisory Control,DSC)模块,比较常用的方式有通过VISA实现Modbus串口通信、采用传输控制协议(Transmission Control Protocol,TCP)模块实现Modbus通信、采用用于过程控制的OLE(OLE for Process Control,OPC)协议实现Modbus通信、通过Modbus模块实现Modbus通信。
本设计是采用Modbus模块实现Modbus通信。使用本方法实现通信需要安装DSC扩展包,这也是在LabVIEW下实现Modbus通信最简单且相对稳定的一种方法[3]。程序员需要做的就是在相应的库中选择需要的命令模块,并根据要求设置参数,便可完成通信。这种方法省略了自行写入相应字符串命令的步骤,简化了开发,本文使用的是过程终端单元(Remote Terminal Unit,RTU)协议来连通电磁继电器模块和计算机。
首先将继电器模块的16个继电器进行分组,将1~4号继电器标注为A组,5~8号标注为B组,以此类推至16号继电器,再将完成初次分组后的继电器进行组内编号,形成4×4的开关阵列,其程序如图3所示,开关阵列思路如图4所示。
图3 开关阵列关键程序
图4 开关阵列思路
在LabVIEW 2016中安装DSC扩展包,调用Creat Serial Master函数(创建主设备实例),在前面板上增加串口号与校验位选择窗口,设定Modbus RTU协议,设置与模块匹配的波特率,数据位、停止位,将单元ID设为1,并手动调整继电器模块上的拨码开关数字为1,完成继电器模块与计算机的通信。
本设计使用顺序结构来进行。顺序结构分为平铺式与层叠式2种,为节省框图程序空间,故选择了层叠式结构。
由于此前单元ID设置为1,继电器的地址从0开始进行排列。调用Write Single Coil(写单个线圈)函数对继电器完成开关操作,需要将继电器接通时,将布尔型常量T接入,使用完时将F接入,顺序依次为第1组 A1、B2、C3、D4,第2组 A2、B3、C4、D1、第3组 A3、B4、C1、D2,第4组 A4、B1、C2、D3接入并断开,为实现接线方式自动切换打下基础。
在进行测试时,本设计只用将继电器所使用的COM口选择好,即可自动完成接线方式的转换。
2.2.2 计算机与吉时利2 450数字源表的通信
使用USB B型端口与仪器相连,在主机上安装虚拟仪器软件结构(Virtual Instrument Software Architecture,VISA)层。
VISA包含USB测试和测量类协议的USB类驱动程序。安装此驱动程序后, VISA驱动程序会自动检测设备。
本设计使用SCPI指令集完成交互,SCPI允许不断用新命令控制指令集,当新功能出现,能保持与现有SCPI仪器程控相容性,具有极强的生命力。
SCPI命令是ASCII字符串,通过物理传输层传入仪器。命令由一连串的关键字构成,有的还需要包括参数。使用控件VISA WRITE,在写入缓冲区的接口以字符串的形式输入对应的SCPI指令,完成对仪表的交互操作,程序如图5所示。
图5 吉时利2450数字源表的连接关键程序
在本实验的设计中,首先通过VISA OPEN控件将通信打开,随后通过VISA WRITE控件使用SCPI语句,完成偏移补偿、电流写入以及读数据等操作[4]。在完成输入电流的交互时,本程序需要使用到格式化写入字符串控件,将相应SCPI语言与输入的电流结合成一段新的SCPI字符串输入设备,并且在输入电流和读电压的过程中,加一定的延时,确定所读数据已经处于稳定的状态。
在完成读写操作后,将读回的字符串接入分数/指数字符串至数值转换,得到测量的数值。
在计算电阻率时,本设计需要连续从吉时利2 450数字源表中改变输入电流,读出电压,笔者在这里使用了for循环的结构,将让输入电流自动进行变化,并在程序中读出输入数组方便后续处理,相应程序如图6所示。
图6 电流设置及数据读取
2.2.3 基于LabVIEW的数据采集
使用XY波形控件完成数据的显示,LabVIEW提供了XY图控件和Express XY图控件,其中XY图控件是输入数据,由2个数组打包构成簇,簇的每1对数据显示1个数据点的X、Y坐标,Express相对简易一些,其输入数据是2个一维数组,分别接在控件的“X输入端口”和“Y输入端口”[5]。
在已经完成的开关阵列程序中,选择每个继电器接通的时刻与吉时利2 450数字源表进行通信,读取其电压表以及所给电流的值分别进入2个数组,并用蔟将其连接起来输入XY图中形成4幅直角坐标图像,图像的横轴为电压,纵轴为电流,程序如图7所示。
图7 XY图的构建程序
通过图像可以判断所接入材料是否正确,并且决定是否进入下一步计算,若正确,可以点击前面板上的“开始计算”,从而获得R12、R23、R34、R41。
为使所得电阻数据更加精准,本设计在获得电阻的数据时,使用了LabVIEW内置的线性拟合控件,首先利用局部变量原理,将测得的数据数组以局部变量的形式导出,数据的传输需要通过局部变量来实现[6]。在层叠式顺序结构的边框上单机鼠标右键,选择“增加局部变量”便可以创建1个局部变量端口,随后在每1帧的边框对应的位置便可以出现1个方框,将数据连接至该局部变量端口便可进行数据的传输。
随后将局部变量导入线性拟合控件,并将斜率输出,导进前面板上创建的数值显示变量,即可将求得的最终电阻数据得出,供后续计算使用,程序如图8所示。
图8 线性拟合
在计算薄膜电阻率数据时,所需用到的式(2)、式(3)相对比较复杂,完全依赖图形代码实现,程序框图会十分复杂,工作量大,且不直观,调试和改错都不方便。本设计使用公式节点这个控件进行编程, LabVIEW允许用户像书写数学公式或者方程一样,直接编写数学处理节点,形式与C语言类似,程序语句以分号结束,在公式后面可以添加注释说明。
使用公式节点的结构,输入式(2)、式(3),输入变量R12、R23、R34、R41,求平均值后输出电阻率ρ,并在前面板创建显示控件显示出来,创造局部变量供后续使用程序,如图 9 所示。
图9 公式节点
LabVIEW是1个数据流编程的编译模式,是通过连线来传递数据的,上文中所使用到的局部变量主要用于程序内部的数据传递,利用局部变量可以对前面板上的控件进行读写操作,每个局部变量都是对某1个前面板控件数据的引用,1个输入量或者输出量可以建立多个局部变量,任何1个局部变量都可以读控件中的数据,局部变量每发生1个数据上的改变,其控件本身以及其他的局部变量也会随之发生改变。
局部变量只能在同1个VI中使用,VI停止运行,其定义的局部变量就会随之消失。每个局部变量必须依附在1个前面板对象上,1个前面板对象可以建立多个局部变量,但是1个局部变量只能有1个端点与其对应。但要注意,局部变量不宜设置太多,前面板上的数据的拷贝会占据一定的内存。
在前面板增加输入控件,输入样品的厚度d,以及第2阶段所加磁场的大小B,并且通过布尔型变量来控制输入磁场的正负,根据式(4)、式(5)、式(6)得出霍尔系数、载流子浓度n和迁移率,程序如图10所示。
图10 变量计算
在完成数据采集与计算之后,开关阵列部分程序需要连接Modbus Master Shutdown控件对串口的通信进行关闭。此外还要切断吉时利2 450数字源表电流输出的旋钮。
2.2.4 实验结果的输出
在完成试验后,需要把实验数据以Excel的形式输出来,最后将得到的数据通过写入电子表格文件函数输出,该函数由数值组成的1维或者二维数组转化为文本字符串,进而写入一个电子表格文件。VI在向文件中写入数据之前,将先打开或创建该文件,并且在完成操作时关闭该文件。“格式”输入端口指定数据的转换格式和精度。“添加至文件?”端口连接布尔型控件,若值为TRUE,VI把数据添加至已有文件,否则即为默认值FALSE,VI可以替换已有文件中的数据。如果不存在已有文件,VI可以创建新文件。
本文将输入变量、样品ID以及程序所得的材料物理性能数值以Excel表格的形式输出,其实现程序如图11所示。
图11 导出部分程序图
3 程序运行方法说明
本程序设计的前面板如图12和图13所示,操作员将在该面板上进行实验操作。
图12 前面板1
图13 前面板2
本程序的运行思路与金材专业相关实验的先后顺序类似,首先在外部完成继电器、吉时利2 450数字源表以及所测材料的接线,打开数字源表的电源,此外还需在程序前面板选择继电器模块所连接的COM口供Modbus完成连接,检查无误后便可打开程序,点击运行按钮,若尚未完成外部连接,本程序会因为VISA读取失败跳出窗口,显示类似“无法运行”的相应字样。
由于本实验有电阻率测量以及后续计算2个部分,本实验选择使用了选项卡控件,在前面板以2个界面的形式呈现给软件使用者。程序开始运行后,本实验前面板“薄膜电阻率的测量”部分将会实时显示图像。此外,通过继电器板上的指示灯信号可以观察到测试已经自动进行到哪一步。
在完成第一步电阻的测量后,本程序会进入等待状态,供实验员通过图像判断测试材料是否合法,若实验图像不合法,则本程序将在100 s后自动停止,或者实验员也可以手动点击中止实验按钮;若合法,实验员就可以在前面板上输入此前已经测得的薄膜厚度以及样品的ID,并点击开始计算按钮。程序完成计算之后,薄膜电阻率的数值将会在前面板上呈现出来,单位是Ω·cm。
完成以上过程,便可进入第2部分“霍尔测量”界面,由于LabVIEW是数据流模式的程序设计,在刚刚进行计算时,该程序已经得出通入磁场之前的电压值,并在此面板显示,此时实验员需要选择通入磁场的大小以及方向,并且在外部接入磁场后点击“通入磁场”旋钮,随后程序在完成测量后将会自动完成霍尔系数、载流子浓度、迁移率的计算。在完成所有计算之后,若实验数据合理,实验员可以点击保存数据按钮,此时将会弹出对话框供实验员选择保存路径,数据将以Excel的形式保存,若保存失败,程序面板也会输出文件保存错误原因,供实验员了解。
4 结 论
基于LabVIEW平台与4×4开关阵列设计了霍尔测试系统,摆脱了以往繁杂的操作步骤,利用了计算机现代化、自动化的特点,完成了对半导体薄膜样品电阻率、霍尔系数、霍尔电压、载流子浓度与迁移率的测试,同时还能实现图像的实时显示,满足金属薄膜与半导体材料电学性能测试的要求。
在科技现代化的今天,计算机在各行各业中的使用程度越来越高,自动化生产与实验成为了未来发展趋势,本设计顺应时代潮流,适应金属薄膜与半导体材料的发展,为今后金属材料专业学生对薄膜物理性能的研究提供了便捷。