CMP设备抛光头高精度位置实时检测系统设计*

2018-06-02 06:48谢小柱
制造技术与机床 2018年5期
关键词:驱动程序测距串口

薛 超 魏 昕 谢小柱

(广东工业大学机电工程学院 ,广东 广州 510006)

化学机械抛光(CMP)是一种新兴的超精密无损伤表面特种加工技术,该技术能有效的实现工件表面全局平坦化和局部平坦化,在计算机硬磁盘、晶圆及集成电路芯片的表面平整化加工等工业领域有着广泛的应用。因此,CMP工艺对CMP设备的性能提出了更高的要求,高性能CMP设备是实现高效、高精度和高表面质量CMP工艺必不可少的硬件基础[2-4]。

在CMP设备中位置检测有着广泛的需求,在抛光过程中需要对抛光的位置进行实时检测,以保证对抛光头行程进行精确地控制。在工业应用中距离检测主要分为接触式与非接触式两种,而非接触式检测常常用于一些复杂的环境和特殊的工作场合。考虑到抛光设备实验平台的复杂环境采用非接触的方式检测抛光头的行程。在工业现场中非接触测距手段主要有:激光、毫米波和超声波等测量介质。较前两种而言,超声波具有指向性强、能耗慢、受环境影响小、传播距离远,对光线、电磁干扰不敏感等优点[5];结合微电子技术信息处理简单,成本低,可准确、快速地计算出距离值,便于实时控制。因此在机器人避障、车辆导航及定位等领域应用广泛。

本文针对CMP设备抛光头位置检测需求,应用超声波测距原理设计了基于ARM的抛光头位置实时检测系统。

1 位置检测系统的方案设计

检测系统由上位机和下位机两层结构,分别为嵌入式现场数据采集终端和PC端上位机显示界面。整个系统结构如图1所示。抛光头在气缸的控制下实现上下运动,使得超声波传感器与气缸安装台发生距离变化,通过检测距离值就可以测得抛光头的位置变化。

现场嵌入式检测终端,主要是完成抛光头位置参数和现场环境温度的采集及数据的传输等工作。主要的工作是实时采集超声波传感器、温度传感器DS18B20的数据信号,并进行数据处理,再通过串口RS232将处理好的数据传输到上位机。上位机基于Qt设计实时显示界面,实时显示温度及抛光头位置信息。

系统设计主要工作内容:检测系统硬件平台的搭建;基于Linux2.6内核编写超声波模块、温度模块、串口传输等驱动程序;基于Qt的实时显示界面的设计。

检测系统以超声波模块作为检测元件实时监控抛光头的位置,超声波测距原理是基于回波时间法,如图2所示。具体过程是:超声波测距模块在被触发时会产生20 kHz 以上的声波,声波在传输过程中遇到障碍物后反射回来[7]。通过测取声波传输的时间t,再乘以声波在空气介质中传播的速度c除以2,就可以换算出抛光头的行程位置[8]。即:

d=c·t/2

(1)

式中:d抛光头行程;c为空气中声波传播速率。在空气中,声波的传输速率为:

(2)

式中:T为绝对温度;c0=331.4 m/s,一般认为c为常数340 m/s[9]。

声速在不同的温度下传播速度有所不同,为了提高系统的检测精度需要考虑温度补偿,以减小误差[10]。

2 基于ARM的位置检测系统硬件设计

ARM公司是全球领先的16/32位微处理器供应商。ARM处理器采用先进的精简指令集,具有能耗低、性价比高等优点。本系统选用的ARM处理器为Cortex-A8系列32位处理器S5PV210,该处理器采用ARM V7指令集,主频可达1 GHz,并扩展有两片512MB的 DDR2共1GB RAM内存,板载1GB NAND Flash,掉电非易失[1]。

检测系统的硬件部分主要包括:ARM处理器S5PV210、温度传感器DS18B20、超声测距模块、RS232串口传输、上位机界面等组成,系统构成如图3所示。各模块与微处理器的硬件连接如图4所示。

2.1 超声波测距模块

超声波模块有4个引脚分别为:VCC(电源)、TRIG(控制端)、ECHO(接收端)、GND(接地)。控制端TRIG接处理器的GPA12引脚,接收端ECHO接处理器的GPA13引脚。通过控制GPA12、GPA13引脚实现超声波模块的驱动及距离数据的读取。由其控制时序图(如图5所示)可知,控制GPA12引脚输出大于10 μs时长的高电平信号驱动超声波模块,该模块将自动发送8个40 kHz的方波,等待信号返回,当GPA13检测到信号返回,GPA13输出高电平,高电平持续的时间即超声波从出发到遇到障碍物返回所经历的时间[10],即可由式(1)计算出距离值。

2.2 温度模块

DS18B20是数字式温度传感器,采用单总线1-wire,与微处理器连接时仅需要一条口线即可实现处理器与DS18B20的双向通讯。DS18B20的DQ端连接处理器GPH31引脚,如图4所示。DS18B20测温范围为-55~+125 ℃,在-10~85 ℃范围内精确度为±0.5 ℃。DS18B20有9~12位编程分辨率供选择,对应的温度值分辨率分别为0.5 ℃,0.25 ℃,0.125 ℃和0.062 5 ℃[5]。系统采用9位分辨率时,把温度转换为数字最多需要93.75 ms,最小分辨率为0.5 ℃,在正常的温度环境下DS18B20完全满足测量条件。

2.3 RS232串口数据传输

通用异步收发器(Universal Asynchronous Receiver and Transmitter,UART )是处理器中最常用、最重要的部件之一,可以用来实现不同处理器的数据通信。本系统通过RS232将下位机采集到的数据传输到上位机。S5PV210有4个独立的UART接口,系统采用UART1通过MAX232芯片转换,再依据RS232通信协议实现数据的传输。RS232串口硬件连接图如图4所示。其中RXD1为接收端,TXD1为发送端。RS232串口波特率设置为115200,8位数据位异步通信,一帧数据共10位,其中包括8位数据位,1位数据起始位(0)和1位数据停止位(1)。

3 位置检测系统主要软件设计

3.1 上位机软件设计

要实现很好的交互,需要设计上位机用户界面,下位机采集的数据经过RS232串口传输显示在PC上。在PC端需要实时显示距离数据,动态显示一段关于时间的动态曲线,同时记录历史距离数据,方便查阅。本系统的监视界面是采用QT来设计的。QT有着比较强的跨平台特性,开源的QT给自由开发提供了很大的便利。

3.2 系统软件主要模块驱动程序设计

检测系统是在S5PV210上移植了Linux2.6操作系统。Linux操作系统是一种完全开源、多用户、多任务环境的实时操作系统,内核采用模块化的思想,可根据外设需要进行配置、裁剪。

利用Linux内核模块化的思想,开发超声波传感器、温度传感器、RS232串口通信等设备的驱动程序,动态加载驱动模块,再编写好相应的应用层代码,就可以实现对外设的调试控制了。

3.2.1 超声测距模块驱动程序设计

在开发Linux内核模块驱动程序时,将超声波模块视作只读设备,编写好驱动程序后,设备只需要通过应用层传来控制参数,在驱动层即可完成测距。驱动层通过相应的函数将距离值传给应用层,即可在用户态读取并操作距离值[10]。

Linux内核将一切外设均视为文件,在具体开发驱动程序时只需要初始化结构体file_operations中的成员即可。file_operations中的成员变量主要是用来实现对设备节点的打开、读写、偏移、关闭等操作,为了便于操作代码实现时将超声波传感器注册为杂项设备的形式,其驱动中定义的le_operations与miscdevice的成员实现如下:

static struct file_operations sonar_drv_fops = {

.owner = THIS_MODULE,

.open =sonar_open,

.ioctl = sonar_ioctl,

.read =sonar_read,

.write =sonar_write,

.release =sonar_close,

};

static struct miscdevice sr04_drv_misc = {

.minor = MISC_DYNAMIC_MINOR,

.name = "sr04_drv",

.fops = &sr04_drv_fops,

};

open()函数是用于打开设备产生超声波设备节点的文件描述符,是设备的入口,sonar_open()申请中断资源, sonar_ioctl用于设置GPA12输出是0还是1,sonar_read()通过控制定时中断得到时间值,最后通过copy_to_user()将换算的距离值返回给应用程序。

3.2.2 温度传感器驱动程序设计

DS18B20是一种智能传感器,采用1-Wire的方式传输数据,只需要一个引脚即可实现数据的输入 /输出。DS18B20的操作需要严格按照时序驱动,使用时需使其复位,其复位时序图如图6所示。如图4 所示DS18B20接于S5PV210的GPH31,复位操作如下:首先控制GPH31输出480~960 μs低电平,然后释放数据线,再将GPH31设置为低电平保持15~60 μs,等待DS18B20返回存在脉冲,脉冲持续时间为60~240 μs, 这样就完成了DS18B20的复位操作。

如图7、8所示为DS18B20的读、写程序,采用循环移位的办法,实现字节读、写。

4 实验研究

为了验证位置检测系统的稳定性与精确程度,需要对检测系统进行实验验证,实验采用对比上位机读数与高度尺读取实际测量距离进行对比验证。表1列出了系统上位机读数与对应的实际值:(实验环境:室内;室温:22 ℃)

表1 上位机读取值与实际值

试验中每组数据测量5次,求取平均值,以减小偶然误差影响,并计算系统的误差范围。由实验数据可知,系统测量误差在2%以内,误差没有出现较大的波动,也没有随距离的增加而变大,系统满足抛光头位置检测使用要求,而且精度比较高。

将设计好的检测系统嵌入到CMP设备中进行抛光实验。在系统初始化后,开始检测按键状态,当检测到“开始按键”按下时开始一次加载过程中记录抛光头的运行轨迹,部分轨迹如图9所示。

实验研究表明系统调试通过、运行正常,满足CMP设备抛光头位置实时检测与显示的需求。

5 结语

本文设计的抛光头位置检测系统能够实现抛光头运行过程中位置、环境温度的实时检测及动态显示。详细分析了基于S5PV210—Linux平台测距系统的软硬件设计。经过反复实验该系统在实际抛光实验中运行稳定,能够实现对抛光头行程位置进行实时显示与监控,解决了抛光设备抛光头位置检测的需求。同时该系统可移植性强,可扩展到整个CMP设备的自动化控制系统中,应用前景好。

[1]周立功. ARM嵌入式系统基础教程[M]. 北京:航空航天大学出版社, 2005.

[2]Chandra A,Bastawros A, Wang X, et al. An integrated wafer surface evolution model for chemical mechanical planarization (CMP)[M].Micromanufacturing Processes, 2012.

[3]Doi T, Philipossian A, Denardis D. Polishing apparatus and method of polishing work piece: US, US7195546[P]. 2007.

[4]武昌壕, 郭冰, 姚光,等. 硬脆材料的化学机械抛光机理研究[J]. 机械设计与制造, 2014(2):37-39.

[5]党元一, 何思远, 富璇. 基于ARM的高精度超声波测距系统设计[J]. 科技风, 2009(1X):67-67.

[6]洪松, 朱龙英. 基于ARM—Linux的超声波测距系统设计与实现[J]. 自动化与仪表, 2013, 28(3):21-24.

[7]王浩, 谭振文, 王治彪,等. 基于STM32的分体式超声测距与目标定位系统[J]. 仪表技术与传感器, 2017(2):58-61.

[8]赵广涛, 程荫杭. 基于超声波传感器的测距系统设计[J]. 微计算机信息, 2006, 22(1):129-130.

[9]李驹光, 张华. 基于ARM的工业以太网控制系统智能节点的设计[J]. 电子技术, 2003, 30(7):17-18.

[10]Wen ZZ, Li F N, Xia Z B. High-precision ultrasonic ranging system design and research[J]. Applied Mechanics & Materials, 2012, 127:501-505.

猜你喜欢
驱动程序测距串口
基于NPORT的地面综合气象观测系统通信测试方法及故障处理
浅谈AB PLC串口跟RFID传感器的通讯应用
类星体的精准测距
阻止Windows Update更新驱动程序
计算机硬件设备驱动程序分析
船舶电子设备串口数据的软件共享方法
浅谈超声波测距
串口技术的实物调试和虚拟仿真联合教学模式
基于PSOC超声测距系统设计
相对差分单项测距△DOR