IC_晶圆划片机软件系统的开发

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

东北大学信息科学与工程学院/ 关守平、鲍芳E-mail:Internet16@163.com

针对半导体行业的IC/晶圆划片机,基于PC机开发了软件系统,实现了对划片机的精确实时控制和数据管理。采用C++ Builder6.0作为软件开发环境,应用ActiveX组件和多线程等技术,并提出一种在缩放坐标系中精确绘制图形的算法/误差搜集算法,使开发的划片机软件系统满足了工业生产的需要。

IC/晶圆划片机软件系统的开发

IC(Integrated Circuit)/晶圆划片设备是集成电路半导体加工后封装工艺中的重要组成部分[1][2],它广泛用于厚膜电路、铌酸锂、石英等脆硬材料的开槽划片加工,也适用于划片和切割各种晶体、陶瓷、玻璃、矿石和金属等。自20世纪70年代初划片机问世以来,诸多国家都积极投身于这一领域的研究。我国起步时间较晚,直到1982年才研制成功第一台国产划片机,在此之前,我国的划片机完全依赖进口。现如今,虽然我国划片设备的硬件水平已有了很大程度的提高,但对划片机的软件控制和管理水平,与国外相比还很落后。因此,开发先进实用的划片机的控制与管理一体化的软件系统,进一步提高划片机的控制精度和管理水平,显得必要而又非常迫切。

基于PC机控制的划片系统结构

按照物理结构可以分为三部分:上位机、下位机和执行机械,各部分间关系见图1。

上位机主要由建立在Windows(98、2000、XP)操作系统上的控制软件构成,用户通过人机交互界面下达加工指令,与下位机即控制器

通过串行通信来交换数据。上位机发出的指令到达控制器后,经过控制器中的单片机进行计算后,驱动步进电机的进行精确划片或切割。

上位机控制软件的设计

总体结构设计

考虑到与硬件联系紧密、可靠性要求高、需具有可移植性等特点,采用Borland公司的快速开发工具C++Builder6.0作为开发平台。软件主要由算法与图形显示模块、多线程处理模块和串口通信模块组成。

算法与图形显示模块能够根据用户的给定进行计算,并应用误差搜集算法进行图形的精确显示。它可使用户看到完整的刀具运动轨迹和切割的过程,如刀尖的即时位置、被切割下的晶片脱落情况等,

解决了以往大部分控制软件的图形显示过快、已切割掉的部分与待切割部分连接在一起、图形不能显示真实加工情况的问题。

多线程能够完成多事件的处理,该处理模块主要完成在切割运行时,软件仍能响应用户合理操作的任务,但这种操作必须是符合逻

图1:基于PC机控制的划片系统结构图

辑的。如加工进行时可以暂停、暂停后继续和紧急停止等,但像修改原料的尺寸、加工片宽和改变电机转速等操作要求则不予响应。多线程的实现采用VCL中的TThread类来实现,调用了一些相关的API,说明如下:

//建立新线程FirstThread,该新线程应用于TMyThreadUnit单元文件中

TThread *FirstThread;

FirstThread= (TThread*) new TMyThread (true);

//开始运行新线程

FirstThread->Resume ();

//把线程挂起,可以用Resume唤起

FirstThread->Suspend ();

//终止线程,不能够用Resume唤起

FirstThread->Terminate ();

串口通信模块主要完成与串行口的数据接收和发送。与串口的通信方式实现有很多方法,本系统采用第三方控件完成串口通信。控件选用MOXA 公司的Pcomm,它兼有API函数和MSComm控件两种方法的优点。Pcomm有关通信函数及使用方法如下:

//串口打开函数

void __fastcall TCommForm:: OpenClick (TObject*Sender)

sio_open(1);

//打开com1口

sio_ioctl(1, B2400,P_NONE|BIT_7|STOP_1);

//设置波特率、奇偶校验、数据位、停止位

if (sio_open (1)! =0)

//判断串口打开是否成功

ShowMessage(“串口打开失败!”);

//数据发送函数

void __fastcall TCommForm1:: SendClick (TObject*Sender)

String SendData;

SendData=Memo1->Text;

sio_write (1, SendData.c_str (), SendData.Length());

//数据接收函数

void __fastcall TCommForm1::ReceiveClick (TObject*Sender)

int rLen;

char *buf=new char [1024];

String Buf;

rLen=sio_read (1, buf, 1024);

if (rLen==0) return;

Buf=AnsiString (buf, rLen);

Memo2->Text=Memo2->Text+Buf;

Memo2->SelStart=Memo2->Text. Length ();

Memo2->SelLength=0;

//串口关闭函数

void __fastcall TForm1:: CloseClick (TObject *Sender)

sio_close(1); //关闭com1口

exit (0);

功能模块设计

软件系统的功能模块包括加工文件定制、系统参数设定、计算与加工、数据库管理和用户管理,各模块间关系如图2所示。

相关文档
最新文档