毕业设计(论文)-基于STC89C51单片机的芯片测试仪的设计.doc_第1页
毕业设计(论文)-基于STC89C51单片机的芯片测试仪的设计.doc_第2页
毕业设计(论文)-基于STC89C51单片机的芯片测试仪的设计.doc_第3页
毕业设计(论文)-基于STC89C51单片机的芯片测试仪的设计.doc_第4页
毕业设计(论文)-基于STC89C51单片机的芯片测试仪的设计.doc_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

吉林农业大学本科毕业设计 吉 林 农 业 大 学学 士 学 位 论 文论文题目: 芯片测试仪的设计 学生姓名: 专业年级:电子信息科学与技术专业 指导教师: 职称 讲 师 2009年6月2日45 目 录 摘要I关键词I1 前 言11.1 课题背景及意义11.2 国内外发展现状11.3课题功能概述22 硬件设计32.1 系统硬件总体设计思路32.2 方案论证42.3 STC89C51RC/RD+系列单片机简介42.3.1选择STC89C51系列单片机的理由52.3.2特点52.4 键盘显示62.4.1 矩阵式键盘及其接口62.4.2 静态显示72.4.3 74LS138的简介82.4.3.1 74LS138集成译码器引脚图82.4.4 74HC273的简介82.4.5 74HC244的简介82.4.6 74LS373的简介92.5 七段显示器原理92.6 声光报警92.7 芯片数据采集模块103 系统软件设计113.1 系统软件总体设计思想113.2 各功能模块软件程序设计113.2.1 键盘显示113.2.2 数据转化133.2.3 逻辑芯片测试程序133.2.3.1 集成计数译码驱动器CC40110的简介133.2.3.2 CC40110的检测143.2.4 上位机串口程序143.3 MFC简介184 系统调试214.1 硬件电路调试214.2 各功能模块软件调试215 结论21参考文献22致 谢22附录一 系统总体设计硬件原理图23附录二 系统程序流程图24附录三 系统程序清单28芯片测试仪的设计学生: 专业:电子信息科学与技术指导教师: 摘要: 随着科技的发展芯片的类型越来越多我们无法花大量的的时间在芯片上有了芯片测试仪器我们可以节省很多时间研究芯片的功能,有了这个仪器我们能直观的看出芯片的功能,给设计带来的更多的时间。本设计主要应用STC89C51单片机为控制核心,以上位机为辅助,7段LED数码管驱动芯片、矩阵式键盘、锁存器、缓冲器、模拟开关、声光报警相结合的逻辑芯片检测系统。关键词:芯片检测;单片机;上位机;总线控制The Design of chip testing instrumentName:Zhang PengMajor:Electronic Information Science and TechnologyTutor:Gong HeAbstract: With the development of science and technology more and more types of chips we are not able to spend a lot of time with the chip in the chip testing equipment we can save a lot of time to study the function of the chip, with this equipment we can see the visual function of the chip to the design of more time. STC89C51 main application of this design for the control of single-chip core, the above-bit machine to play a supplementary role, 7 digital tube LED driver chip, matrix keyboard, latches, buffers, analog switches, the combination of sound and light alarm detection system logic chips.Key words: chip inspection; Micro Controller Unit; PC; bus-mastering1 前 言1.1 课题背景及意义时代发展, 世事变迁, 进人新世纪以来中国的经济突飞猛进,作为中国新经济领头羊的信息产业, 更是捷报频传, 喜事连连。在当前的电子设计中, 各种集成电路芯片被越来越多地使用, 其中使用较多的还是各种各样的与、或、非、异或门及缓冲器等, 对这些芯片寻求一种简易有效的测试方法是必要的, 虽然现在已经有许多集成芯片的逻辑功能测试仪, 如用组成的集成芯片测试仪, 但是用单片机实现集成芯片的逻辑功能测试仪,一方面可以通过本测试仪的研制熟悉单片机的研发过程了,简化设计和降低成本, 因此, 本仪器的设计仍然是有着重要实用价值的。通过实现本测试仪的设计, 不仅可以达到测试集成芯片性能的基本目的, 而且可以通过对软硬件设计的进一步修改和增加从而实现功能扩展, 实现开发、仿真、编程、应用的多种功能的统一。1.2 国内外发展现状 SoC的基础是深亚微米工艺,因此,对Soc器件的测试需要采用全新的方法。由于每个功能元件都有其自身的测试要求,设计工程师必须在设计初期就做出测试规划。为SoC设备所做的逐块测试规划必须实现:正确配置用于逻辑测试的ATPG工具;测试时间短;新型高速故障模型以及多种内存或小型阵列测试。对生产线而言,诊断方法不仅要找到故障,而且还要将故障节点与工作正常的节点分离开来。此外,只要有可能,应该采用测试复用技术以节约测试时间。在高集成度IC测试领域,ATPG和IDDQ的可测试性设计技术具备强大的故障分离机制。需要提前规划的其他实际参数包括:需要扫描的管脚数目和每个管脚端的内存数量。可以在SoC上嵌入边界扫描,但并不限于电路板或多芯片模块上的互连测试。尽管芯片尺寸在不断减小,但一个芯片依然可封装几百万个到上1亿个晶体管,测试模式的数目已经增加到前所未有的程度,从而导致测试周期变长,这一问题可以通过将测试模式压缩来解决,压缩比可以达到20%至60%。对现在的大规模芯片设计,为避免出现容量问题,还有必要找到在64位操作系统上可运行的测试软件。 此外,测试软件也面临着深亚微米工艺和频率不断提高所带来的新的测试问题。过去测试静态阻塞故障的ATPG测试模式已不再适用,在传统工具上添加功能模式却难以发现新的故障。较好的方式是,对过去的功能模式组进行分类以判断哪些故障无法检测,然后创建ATPG模式来捕获这些遗漏的故障类型。 随着设计容量的增大以及每个晶体管测试时间的缩短,为了找到与速度相关的问题并验证电路时序,必须采用同步测试方法。 同步测试必须结合多种故障模型,包括瞬变模型、路径延迟和IDDQ。 业界一些公司认为,将阻塞故障、功能性故障以及瞬变/路径延迟故障结合起来也许是最为有效的测试策略。对深亚微米芯片和高频率工作方式,瞬变和路径延迟测试则更为重要。 要解决同步测试内核时的ATE精度问题,并降低成本,就必须找到一种新的方法,这种方法能简化测试装置的接口 (瞬变和路径延迟测试要求测试装置接口处时钟准确),同时能保证测试期间信号有足够的精确度。 由于SoC内存块中极有可能存在制造缺陷,因此存储器BIST必须具备诊断功能,一旦发现问题,存在缺陷的地址单元就可以映射到备用地址单元的冗余内存,检测出的故障地址将放弃不用,避免舍弃整个昂贵的芯片。 对小型嵌入式内存块进行测试,无需另加门电路或控制逻辑。例如,向量转换测试技术可将功能模式转换为一系列的扫描模式。与BIST方法不同,旁路内存块的功能输入不需要额外的逻辑电路。由于不需要额外的测试逻辑,SoC开发工程师可复用过去形成的测试模式。高级ATPG工具不仅能并行测试宏而且能够确定是否存在冲突,以及详细说明哪些宏可并行测试,哪些宏为什么不可以并行测试。此外,即使宏时钟与扫描时钟相同(如同步存储器),这些宏也可得到有效测试。 目前,密集双面板上的测试点还不够多,每个复杂的芯片都必须配备边界扫描电路。如果没有边界扫描,板级的制造缺陷查找就相当困难,甚至无法查找。借助于边界扫描,板级测试就极为容易,并且与芯片内的逻辑电路无关。边界扫描也可在生产的任一阶段将ATPG模式配置到芯片的扫描链上。1.3课题功能概述本文主要应用STC89C51单片机为控制核心,各个接口电路相结合的逻辑芯片检测系统。通过对每个待测逻辑芯片的分析,模拟实现该逻辑芯片的各种逻辑功能,从而测试出该逻辑芯片的好坏,通过上位机的输出检测芯片的功能。简单实用是本设计的创新之处,可以轻松检测出实验室里的多种逻辑芯片,为老师和同学免去很多不必要的麻烦。系统总体框图如1.2所示:上位机STC89C51单片机键盘控制声光报警芯片测试口芯片数据采集LED显示图1.2系统总体框图Fig1.2 Overall system block disgram2 硬件设计2.1 系统硬件总体设计思路逻辑芯片测试仪就是用来检测逻辑芯片的好坏。一片逻辑芯片若能实现它的全部功能,则说明它可以正常工作,否则说明它不能正常工作。本着这个原则,可以利用单片机及其接口电路来控制逻辑芯片的工作,并让它实现自己的功能,同时采集数据到单片机中,进行分析,然后判断是否符合逻辑芯片的功能表。若与逻辑芯片的功能表完全一致,则说明逻辑芯片可以正常工作,否则说明逻辑芯片不能正常工作。本系统的上位机为带有串行传输接口(COM)和装有MS-DOS操作系统的计算机系统, 用于实现数据的存储、运算和信号显示1。为了使系统更人性化,功能更完善,键盘显示电路是必不可少的。当需要测试逻辑芯片的时候,通过键盘将待测芯片的型号输入到系统中,并在7段LED数码管上显示出该逻辑芯片的型号。按下“开始”键之后,系统将自动测试逻辑芯片,检测结果将以声光报警的形式输出。本设计的硬件系统分为三大功能模块:芯片数据采集模块、键盘显示模块、声光报警模块。考虑到单片机内部程序存储器的存储能力完全满足本系统的软件需求,因此不必外加程序存储器。2.2 方案论证逻辑芯片测试的方法有很多,用单片机及其接口电路来控制逻辑芯片工作,这种方法有准确和灵活的特点。当需要检测一个逻辑芯片的时候,只需要在键盘上输入所要检测的逻辑芯片的型号,然后系统会根据所输入的芯片型号,自动进行测试,测试的过程由软件来完成。若用搭建数字电路的方法,则每一片待测试的逻辑芯片都需要搭建一个电路,来实现自己独有的逻辑功能,从而判断逻辑芯片的好坏。这种方法虽然也可以用来测试逻辑芯片,但是它很不灵活费时又费力。首先,这种方法的工作量很大,每测试一片逻辑芯片都要搭建与其功能相对应的电路。其次,在测试多片逻辑芯片的时候,它就显得非常不灵活,因此,不应选择搭建数字电路的方案。芯片数据采集模块采用并行I/O口的简单扩展,由于扩展接口较多,对其进行统一编址,避免地址冲突。用74LS138的A、B、C分别接AT89C51的P2.5、P2.6和P2.7来实现对扩展芯片的统一编址。如果用P2口的各个引脚直接对扩展芯片进行编址,那样不仅限制了接口的扩展,而且会占用单片机的通用I/O口。因此,应采取外接74LS138译码器的统一编址方法。考虑到TTL电路和CMOS电路的兼容性问题,芯片数据采集应用的是74HC系列的高速CMOS芯片,以便于数据的采集,和逻辑芯片的控制。不用74LS系列的TTL芯片。键盘显示模块采用P1口直接与44矩阵式键盘相连,显示部分采用并行I/O口的简单扩展,利用P0口将数据送到74LS373的数据输出端并锁存,再通过7段LED数码管进行显示。显示部分也可以应用STC89C51的串行接口来实现,但是考虑到对系统功能的完善以及对系统的扩展,不应占用单片机的串行口。2.3 STC89C51RC/RD+系列单片机简介STC89C51RC/RD+ 系列单片机是宏晶科技推出的新一代超强抗干扰/ 高速/ 低功耗的单片机,指令代码完全兼容传统8051 单片机,12时钟/机器周期和6时钟/ 机器周期可任意选择,最新的D 版本内部集成MAX810 专用复位电路。FLASH EPROM 存储器概述:P89C51X2/52X2/54X2/58X2在10000次擦除和编程之后仍能可靠保存FLASH 存储器的内容。存储单元的设计使得擦除和编程结构最优化。此外,先进的沟道氧化工艺和低内部电场的结合使擦除和编程操作更加可靠。特性:带片擦除的FLASH EPROM内部程序存储器内部程序存储器禁止时(EA=0),外部程序存储器最多可达64K可编程加密位每字节最少10000次擦除/编程周期数据最少可保存10年从一般销售商处可获得编程支持2.3.1选择STC89C51系列单片机的理由 加密性强; 超强抗干扰:高抗静电(E S D 保护)轻松过2 K V / 4 K V 快速脉冲干扰( E F T 测试)宽电压, 不怕电源抖动宽温度范围, - 4 0 8 5 三大降低单片机时钟对外部电磁辐射的措施:禁止A L E 输出;如选6 时钟/ 机器周期,外部时钟频率可降一半;单片机时钟振荡器增益可设为1 / 2 g a i n 。超低功耗:掉电模式: 典型功耗 GetDlgItem(IDC_COMBO1);bo2=(CComboBox*)this-GetDlgItem(IDC_COMBO2);bo3=(CComboBox*)this-GetDlgItem(IDC_COMBO3);bo4=(CComboBox*)this-GetDlgItem(IDC_COMBO4);bo5=(CComboBox*)this-GetDlgItem(IDC_COMBO5);k1=bo1-GetCurSel();k2=bo2-GetCurSel();k3=bo3-GetCurSel();k4=bo4-GetCurSel();k5=bo5-GetCurSel();bo1-GetLBText(k1,str1);bo2-GetLBText(k2,str2);bo3-GetLBText(k3,str3);bo4-GetLBText(k4,str4);bo5-GetLBText(k5,str5);if(str3=无NONE) str3=N;else if(str3=奇ODD) str3=0;else str3=E;m_ShowEdit=str0+str1+打开,+str2+,+ str3+,+str4+数据位,+str5+停止位; UpdateData(false);void CSerialPortDlg:OnComm() /打开出口void CSerialPortDlg:OnOpenSerial() SetPort();CString str0=当前状态:;m_MSComm.SetCommPort(1); /打开串口1if(!m_MSComm.GetPortOpen()m_MSComm.SetPortOpen(true);m_OpenSerialBut.SetWindowText(关闭串口);elsem_MSComm.SetPortOpen(false);m_OpenSerialBut.SetWindowText(打开串口);m_ShowEdit=str0+串口关闭;m_MSComm.SetSettings(9600,n,8,1);/波特率9600,无校验,8位数据位,1个停止位 m_MSComm.SetInputMode(1);/一二进制数检取数据 /参数1表示每当串口接收缓冲区中有多于或等于1个字符时将引发一个接收数据的OnComm事件m_MSComm.SetRThreshold(1); m_MSComm.SetInputLen(0); /设置当前接收区数据长度为0m_MSComm.GetInput();/先预读缓冲区以清除残留数据/停止显示void CSerialPortDlg:OnStopShow() /接受数据void CSerialPortDlg:OnReceiveData() VARIANT variant_inp;COleSafeArray safearray_inp;LONG len,k;BYTE rxdata1024;/设置BYTE数CString strtep;if(m_MSComm.GetCommEvent()=2) /事件值为2表示接收缓冲区内有字符variant_inp=m_MSComm.GetInput();/读缓冲区safearray_inp=variant_inp;/变量类型转换len=safearray_inp.GetOneDimSize();/得到有效数据长度for(k=0;klen;k+)safearray_inp.GetElement(&k,rxdata+k); /转换byte类型数组for(k=0;kGetDlgItem(IDC_EDIT5); count=edt-LineLength(1); char* pszFileName = e:myfile.txt;CStdioFile myFile;CFileException fileException;if(!myFile.Open(pszFileName,CFile:typeText|CFile:modeCreate|CFile:modeReadWrite),&fileException)for(i=0;iGetWindowText(ch,i);str.Format(%c,ch);myFile.WriteString(str+n);elseTRACE(Cant open file %s,error=%un, pszFileName,fileException.m_cause);3.3 MFC简介MFC,微软基础类(Microsoft Foundation Classes),同VCL类似,是一种Application Framework,随微软Visual C+ 开发工具发布。目前最新版本为9.0(截止2008年11月)。该类库提供一组通用的可重用的类库供开发人员使用。大部分类均从CObject 直接或间接派生,只有少部分类例外。MFC 应用程序的总体结构通常由 由开发人员从MFC类派生的几个类和一个CWinApp类对象(应用程序对象)组成。MFC 提供了MFC AppWizard 自动生成框架。Windows 应用程序中,MFC 的主包含文件为Afxwin.h。此外MFC的部分类为MFC/ATL 通用,可以在Win32 应用程序中单独包含并使用这些类。由于它的易用性,初学者常误认为VC+开发必须使用MFC。这种想法是错误的。作为Application Framework,MFC的使用只能提高某些情况下的开发效率,只起到辅助作用,而不能替代整个Win32 程序设计。MFC,微软基础类(Microsoft Foundation Classes),实际上是微软提供的,用于在C+环境下编写应用程序的一个框架和引擎,VC+是WinDOS下开发人员使用的专业C+ SDK(SDK,Standard SoftWare Develop Kit,专业软件开发平台),MFC就是挂在它之上的一个辅助软件开发包,MFC作为与VC+血肉相连的部分(注意C+和VC+的区别:C+是一种程序设计语言,是一种大家都承认的软件编制的通用规范,而VC+只是一个编译器,或者说是一种编译器+源程序编辑器的IDE,WS,PlatForm,这跟Pascal和Delphi的关系一个道理,Pascal是Delphi的语言基础,Delphi使用Pascal规范来进行Win下应用程序的开发和编译,却不同于Basic语言和VB的关系,Basic语言在VB开发出来被应用的年代已经成了Basic语言的新规范,VB新加的Basic语言要素,如面向对象程序设计的要素,是一种性质上的飞跃,使VB既是一个IDE,又成长成一个新的程序设计语言),MFC同BC+集成的VCL一样是一个非外挂式的软件包,类库,只不过MFC类是微软为VC+专配的.MFC是Win API与C+的结合,API,即微软提供的WinDOS下应用程序的编程语言接口,是一种软件编程的规范,但不是一种程序开发语言本身,可以允许用户使用各种各样的第三方(如我是一方,微软是一方,Borland就是第三方)的编程语言来进行对WinDOS下应用程序的开发,使这些被开发出来的应用程序能在WinDOS下运行,比如VB,VC+,Java,Dehpi编程语言函数本质上全部源于API,因此用它们开发出来的应用程序都能工作在WinOS的消息机制和绘图里,遵守WinDOS作为一个操作系统的内部实现,这其实也是一种必要,微软如果不提供API,这个世上对Win编程的工作就不会存在,微软的产品就会迅速从时尚变成垃圾,上面说到MFC是微软对API函数的专用C+封装,这种结合一方面让用户使用微软的专业C+ SDK来进行Win下应用程序的开发变得容易,因为MFC是对API的封装,微软做了大量的工作,隐藏了好多程序开发人员在Win下用C+ & MFC编制软件时的大量内节,如应用程序实现消息的处理,设备环境绘图,这种结合是以方便为目的的,必定要付出一定代价(这是微软的一向作风),因此就造成了MFC对类封装中的一定程度的的冗余和迂回,但这是可以接受的.最后要明白MFC不只是一个功能单纯的界面开发系统,它提供的类绝大部分用来进行界面开发,关联一个窗口的动作,但它提供的类中有好多类不与一个窗口关联,即类的作用不是一个界面类,不实现对一个窗口对象的控制(如创建,销毁),而是一些在WinDOS(用MFC编写的程序绝大部分都在WinDOS中运行)中实现内部处理的类,如数据库的管理类等,学习中最应花费时间的是消息和设备环境,对C+和MFC的学习中最难的部分是指针,C+面向对像程序设计的其它部分,如数据类型,流程控制都不难,建议学习数据结构C+版。MFC是微软封装了的API。什么意思呢?windows作为一个提供功能强大的应用程序接口编程的操作系统,的确方便了许多程序员,传统的win32开发(直接使用windows的接口函数API)对于程序员来说非常的困难,因为,API函数实在太多了,而且名称很乱,从零构架一个窗口动辄就是上百行的代码。MFC是面向对象程序设计与Application framework的完美结合,他将传统的API进行了分类封装,并且为你创建了程序的一般框架, MFC是对WindowsAPI的封装,大大简化了我们的工作;学VC主要就是要学MFC,大约有100多个类,但常用的也就二三十个。应该象背4级单词

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论