文件.docx

上传人:b****5 文档编号:8207922 上传时间:2023-01-29 格式:DOCX 页数:65 大小:336.03KB
下载 相关 举报
文件.docx_第1页
第1页 / 共65页
文件.docx_第2页
第2页 / 共65页
文件.docx_第3页
第3页 / 共65页
文件.docx_第4页
第4页 / 共65页
文件.docx_第5页
第5页 / 共65页
点击查看更多>>
下载资源
资源描述

文件.docx

《文件.docx》由会员分享,可在线阅读,更多相关《文件.docx(65页珍藏版)》请在冰豆网上搜索。

文件.docx

文件

1引言

随着电子技术的飞速发展,电子产品深入的影响这每个人的日常生活,人们对电子产品的质量问题也越来越关注。

发光管阵列在近几年中技术发展很快,随着超亮度发光管的研制成功,发光管阵列已经逐渐突破只作为装饰性设施的应用程度,而逐渐被广泛的应用于各种信号设备甚至是照明设备中。

发光管阵列作为民用电子产品中的常用的输出元件,其质量直接影响着人民的生活,所以对其质量的检测也显得日益重要。

目前,市场上存在着很多发光管阵列的产品都存在着暗点、超亮点、坏点的情况,还有一些用人的肉眼看不出的产品质量问题,虽然在使用初期人眼无法识别但会给发光阵列的使用寿命带来隐患,给人民生活的不便。

而对发光管阵列测试是各生产发光管阵列的厂家对其产品检测的重要手段。

为克服人工检测带来的不稳定性并有效、高速的完成检测任务,自动检测成为必然选择,而目前使用的大部分检测仪检测的发光阵列产品为小规模点阵,其使用简单但功能少,无法对大规模器件进行有效检测。

本设计为针对性解决发光管阵列在线质量检测的问题。

发光阵列检测仪是将待检测的发光阵列按照指定的方式点亮后,采集发光阵列产品的测试点的电压,由于发光管两端的电压与流过的电流呈近似线性的关系,在一般应用场合可以忽略其非线性可忽略不记,根据采集到的值可以判断出发光管的亮度。

目前市场上的类似产品大部分是也都是基于这种方法进行检测的。

本设计是以General-tec公司产品作为检测对象。

其被测产品集成规模较大,被测试时要求的自动化和有效性要求较高。

尤其由于被测发光阵列驱动端数目多,产品系列多,使得在发光阵列测试仪设计时要考虑到被测对象的特点及当产品升级时仪器的升级问题。

根据这些特点,利用上位计算机作为与检测员交互的信息通道,以单片机作为控制核心,采用串行芯片作为控制模块为检测仪升级提供方案的设计思想来实现大容量、多驱动端的发光阵列检测仪设计方案。

本发光管阵列测试仪设计的以下功能:

1)LED亮度测试:

红、绿、蓝分别点亮,要求:

找出亮度差别特别大的点(非常亮,非常暗);

2)全亮测试:

白色测试,要求:

找出亮度,色差差别特别大的点(非常亮,非常暗);

3)相邻LED测试:

行顺序点亮、列顺序点亮。

要求:

找出相邻的短路LED;

4)烧码测试:

将客户指定的代码实时(产品编码和生产日期)写入指定位置;

5)代码校验:

要求读出的code和客户要求code一致。

2整体方案设计

2.1发光管阵列测试仪的基本原理和构成

图2-1发光管阵列测试仪结构框图

发光管阵列测试仪是将计算机、单片机和其他外围控制技术结合的综合应用,由上位机、通信接口电路、单片机、接口控制电路、检测电路和外围辅助电路几个主要部分组成,其结构框图如图2-1。

上位计算机使用VisualBasic6.0(以下简称VB)软件进行人机交互,并利用MSCOM控件实现计算机和单片机之间实现信息传递。

通信接口电路完成通信电平的转换,单片机对接收到的数据进行处理后,经接口控制电路实现发光管阵列的点亮动作,检测电路对发光管阵列板上的测试点进行数据采集,再将数据处理后上传至上位机进行显示,完成整个检测功能。

当测试员要求对待测发光管阵列的产品代码进行烧入或校验时,单片机将数据通过I

C接口对测试板进行相关操作,处理数据后上传至上位机进行显示。

2.2上位机程序设计

VB是一种功能强大、简单易学的程序设计语言。

它不但保留了原先Basic语言的全部功能,而且还增加了面向对象程序设计功能。

不需要设计者编写大量的代码去描述界面外观和位置,只要把预先建立的控件直接应用到屏幕上,简化了设计过程,应用简单信息交互方便。

它不仅可以方便快捷地编制适用于数据处理、多媒体等方面的程序,而且利用ActiveX控件MSComm还能十分方便地开发出使用计算机串口的计算机通信程序。

2.2.1上位机程序功能和界面

上位机部分的功能主要是完成人机交互,实现上位机对检测仪的控制;将界面中的人机交互动作转变为机器可以识别的二进制数据,并通过串行接口发出控制指令,并承担将单片机上串的数据处理后进行显示等任务,实现检测信息的交互。

上位机部分采用VB编写程序完成界面设计,界面内有以下几个功能区域可供操作者点击:

单独测试区、行顺序测试区、列顺序测试区。

每个测试区分别具有相应的功能按键可以对红灯、绿灯、黄灯、全亮进行测试,此外还单独有校验码功能区对产品代码进行相应操作,写如代码由上位机传送到单片机后将其写如存储器中并与原代码作比较,若相同屏幕显示“OK”,若不同屏幕显示“error”)等.

上位机VB编写界面中使用了文本控件、命令按纽控件、标题控件、SSTAB控件、MSCom控件等,对其属性进行了相关设置。

使用了VB中的对话*.Show、*.Hide和MSComm1_OnComm等系统函数,用五个基本界面完成系统。

这五个基本界面和基本功能为:

1)用户登陆界面,要求输入使用者和密码;

2)选择板型界面,对目标板进行选择;

3)用户主界面,检测时使用的主界面;

4)登陆错误界面,要求使用者重新输入密码和用户名;

5)板型选择错误,要求重新输入板型。

在模块级范围内声明了一个公共数组作为数据传递和存储使用,在子模块中使用局域变量。

这样的设计使各个模块中数值可以直接传递,且不会造成过多的系统消耗,使全局和模块直接的关系直观,逻辑清晰。

本设计其主程序设计流程图如图2-2,由于校验码功能比较独立,这里暂时略去后面将单独介绍。

图2-2VB主程序设计流程图

上位机程序是基于VB的比较基础的设计,其中用户名和密码均由程序设计时指定,当有多个用户使用或用户权限不同时可以使用VB于数据库连接的方法进行设计。

用户登录界面和用户名错误界面如图2-3。

图2-3用户登录界面和用户名错误界面

选择板型后用户进入主界面如图2-4,进行检测或对检测板的产品代码进行操作,图中左半部分别对应对红、绿、黄、白(三色同时点亮)逐个检测、平行检测、垂直检测,右半部分对应的是产品代码的自动写入并校验、只进行写入、读出并比对功能。

图2-4用户主界面

2.2.2MSComm控件介绍

串口通信被广泛的应用于计算机和单片机之间通信系统中,这种使用一根数据信号线,数据在一根数据信号线上按位进行传输的协议,是每一位数据都占据一个固定的时间长度,在远距离通信中可以节约通信成本。

要实现串口通信程序设计并不复杂,一般有两种实现途径:

其一就是使用MSCOMM控件,此控件提供很多方便操作的属性和方法,利用它们可以很方便地实现目的;另外一种途径就是使用WindowsAPI,微软为开发者提供了很多相关的串行操作的编程接口,使用这些接口,可以很完成更为强大的功能。

VB提供了串行端口控制Mscomm来为应用程序提供串行通讯。

该控件屏蔽了通信过程中的底层操作,可以通过设置、监视Mscomm控件的属性和事件,完成对串行口的初始化和数据的输入输出工作。

其基本的操作步骤为首先初始化串口,比如端口号,波特率等属性,然后打开端口,通过接受缓冲区读上行数据,通过发送缓冲区来写下行数据。

最后通过事件驱动来反映数据的到达与发送过程,另外在通讯过程中的错误的产生也可以通过CommEvent属性来管理。

MSComm提供了两种处理通信问题的方法,一是事件驱动方法,一是查询法。

事件驱动法:

在使用事件驱动法设计程序时,每当有新字符到达或端口状态改变,或发生错误时,MSComm控件将触发OnComm事件,而应用程序在捕获该事件后,通过检查MSComm控件的CommEvent属性可以获知所发生的事件或错误,从而采取相应的操作。

这种方法的优点是程序响应及时,可靠性高。

查询法:

查询法适合于较小的应用程序,在这种情况下,每当应用程序执行完某一串行口操作后,将不断检查MSComm控件的CommEvent属性,以检查执行结果或检查某一事件是否发生。

串行通信的两种格式:

字符形式:

通常以小于ASCII码128的字符码来传递,通常用于传送指令。

二进制形式:

将数据以二进制编码的方式传递,它可能含有ASKCII码128以上的字符码,通常用来传送数据,以提高速度。

2.2.3MSComm控件常用属性

CommPort:

设置或者返回串行端口。

Settings:

用来设置和返回波特率,奇偶校验,数据位和结束位。

PortOpen:

设置或者返回通讯端口的状态,也可以打开和关闭一个端口。

Input:

从接受缓冲区里获取或删除数据。

Output:

给发送缓冲区里写数据。

InputMode:

设置或返回接收数据的类型。

Inputlen:

设置或返回一次从接收缓冲区中读取字节数。

InBufferSize:

设置或返回接收缓冲区的大小,缺省值为1024字节。

InBufferCount:

设置或返回接收缓冲区中等待计算机接收的字符数。

OutBufferSize:

设置或返回发送缓冲区的大小,缺省值为512字节。

OutBufferCount:

设置或返回发送缓冲区中等待计算机发送的字符数。

Rthreshold:

该属性为一阀值。

当接收缓冲区中字符数达到该值时,MSComm控件设置Commevent属性为ComEvReceive,并产生OnComm事件。

用户可在OnComm事件处理程序中进行相应处理。

若Rthreshold属性设置为0,则不产生OnComm事件。

例如用户希望接收缓冲区中达到一个字符就接收一个字符,可将Rthreshold设置为1。

这样接收缓冲区中接收到一个字符,就产生一次OnComm事件。

Sthreshold:

该属性亦为一阀值。

当发送缓冲区中字符数小于该值时,MSComm控件设置Commevent属性为ComEvSend,并产生OnComm事件。

若Sthreshold属性设置为0,则不产生OnComm事件。

要特别注意的是仅当发送缓冲区中字符数小于该值的瞬间才产生OnComm事件,其后就不再产生OnComm事件。

例如Sthreshold设置为3,仅当发送缓冲区中字符数从3降为2时,MSComm控件设置Commevent属性为ComEvSend,同时产生OnComm事件,如发送缓冲区中字符始终为2,则不会再产生OnComm事件。

这就避免了发送缓冲区中数据未发送完就反复发生OnComm事件。

CommEvent:

这是一个非常重要的属性。

该属性设计时无效,运行时只读。

一旦串口发生通信事件或产生错误,依据产生的事件和错误,MSComm控件为CommEvent属性赋不同的代码,同时产生OnComm事件。

用户程序就可在OnComm事件处理程序中针对不同的代码,进行相应的处理。

CommEvent属性的代码、常数及含义参见下:

常量值描述

ComEventBreak1001收到了断开信号。

ComEventCTSTO1002ClearToSendTimeout。

在发送字符时,在系统指定的事1件内,CTS(ClearToSend)线是低电平。

ComEventDSRTO1003DataSetReadyTimeout。

在发送字符时,在系统指定的事件内,DSR(DataSetReady)线是低电平。

ComEventFrame1004数据帧错误。

硬件检测到一个数据帧错误。

ComEventOverrun1006端口溢出。

硬件中的字符尚未读,下一个字符又到达,并且丢失。

ComEventCDTO1007CarrierDetectTime。

在发送字符时,在系统指定的事件内,CD(CarrierDetect)线是低电平。

CD也称为RLSD(ReceiveLineSingalDetect,接收线信号检测)。

ComEventRxOver1008接收缓冲区溢出。

在接收缓冲区中没有空间。

ComEventRxParity1009奇偶校验错。

硬件检测到奇偶校验错误。

ComEventTxFull1010发送缓冲区满。

在对发送字符排队时,发送缓冲区满。

ComEventDCB1011检取端口DCB(DeviceControlBlick)时发生了没有预料到的错误。

本设计在加载界面3时的同时对串口进行初始化,并同时打开串口其具体设置如下:

接收缓冲区的大小为6字节;发送缓冲区的大小为5字节;接收缓冲区阀值为6;每次从接收缓冲读取字节数为6;一直向发送缓冲写入数据;波特率为9600偶校验;接收二进制数据。

同时发送握手信号其格式为5个二进制数0,当单片机返回6个二进制数0时系统认为通信正常,否则连接错误。

在连接正确后用户选择检测类型命令按键,VB发送相应的数据到串口由单片机进行相应的操作。

当单片机完成检测任务后将向上位机发送反馈信息,将触发VB的MSCOM控件的接收事件,产生中断信号,中断子程序流程图如图2-5。

图2-5中断子程序流程图

2.3上位计算机通信和单片机通信的硬件电路

由于上位计算机串口通信所使用的电平与单片机信号电平并不兼容,解决两者通信的关键问题就在于将通信接口电平相互兼容,从而达到良好通信。

本设计使用了目前广泛使用的MAX232实现该功能。

2.3.1RS-232接口介绍

目前RS-232是PC机与通信工业中应用最广泛的一种串行接口。

RS-232被定义为一种在低速率串行通讯中增加通讯距离的单端标准。

RS-232采取不平衡传输方式,即所谓单端通讯。

收、发端的数据信号是相对于信号地,典型的RS-232信号在正负电平之间摆动,在发送数据时,发送端驱动器输出正电平在+5~+15V,负电平在-5~-15V电平。

当无数据传输时,传输线上为TTL电平,从开始传送数据到结束,线上电平从TTL电平到RS-232电平再返回TTL电平。

接收器典型的工作电平在+3~+12V与-3~-12V。

  由于发送电平与接收电平的差仅为2V至3V左右,所以其共模抑制能力差,再加上双绞线上的分布电容,其传送距离最大为约15米,最高速率为20kb/s。

RS-232是为点对点(即只用一对收、发设备)通讯而设计的,其驱动器负载为3~7kΩ。

所以RS-232适合本地设备之间的通信。

2.3.2MAX232实现通信电平转换

由于PC机在和单片机串口通信时使用的通信电压为RS232标准电平,而单片机为TTL0/5V标准电平信号,电平差异需要进行相应转换,以便实现系统的上位机与下位机之间的良好通信。

本设计采用的MAX232芯片是一款德州仪器公司(TI)推出的一款兼容RS232标准的通讯用电平转换芯片。

其特点为功耗低、集成度高,+5V电压供电。

该器件包含2个驱动器、2个接收器和1个电压发生器电路提供TIA/EIA-232-F电平。

串口通信的RS232接口采用9针串口DB9,串口传输数据只要有接收数据针脚和发送针脚就能实现:

同一个串口的接收脚和发送脚直接用线相连,两个串口相连或一个串口和多个串口相连。

MAX232芯片内部电路和外部C1~C4组成了升压电路,在外部5V的单电压供电的情况下,生成+5V到+10V及+10V到-10V两组电压,保证了TTL或CMOS电平与RS232的正常转化,使系统只需要单一电源供电简化了电路。

图2-6MAX232元件内部结构图

2.4下位机的功能和实现

2.4.1下位机功能和框架

控制部分是整个仪器的核心,由单片机实现逻辑控制功能。

上位机传送的数据如表2-1:

表2-1上位机下行数据格式

单独亮按钮组

数据

平行亮按钮组

数据

竖直亮按钮组

数据

按钮

数据

RED

101406

RED

101506

RED

101606

握手信号

00000

GREEN

101706

GREEN

101806

GREEN

101906

自动校码

1011606

YELLOW

101106

YELLOW

101206

YELLOW

101306

烧码

1013206

WHILE

1011006

WHILE

1011106

WHILE

1011206

校码

1014806

单片机接收上位计算机发送来的数据并相应处理。

当上位机要求检测发光管质量时,单片机按照指令控制接口电路完成发光管的闪烁任务,并待发光管亮度稳定后采集到相应亮度值。

单片机在将采集到的若干个亮度值后,利用发泡法将所有数据进行比较,找到最亮和最暗的两个点的值和位置,将这两个数据传送到上位机,由上位机进行显示。

当上位机要求对产品代码进行操作时,单片机将对存储器进行有效操作,并将结果上传到上位机。

单片机上传的数据其格式如表2-2:

表2-2VB上行数据格式表

数据位置

1

2

3

4

5

6

数据值

0XFF

XX

XX

XX

XX

0X06

意义

上传同步开始

板型

数据位

数据位

保留

停止

由此可见,单片机作为控制核心是其任务是很重要的,且功能烦琐,故选用一款适应现代化生产的快速和高可靠性要求,高速度和高可靠性成为单片机选型的首要考虑因素。

2.4.2单片机的选型

在单片机选型方面考虑到早期单片机主要由于工艺及设计水平不高、功耗高和抗干扰性能差等原因,所以采取稳妥方案:

即采用较高的分频系数对时钟分频,使得指令周期长,执行速度慢。

以后的CMOS单片机虽然采用提高时钟频率和缩小分频系数等措施,但这种状态并未被彻底改观(51以及51兼容)。

此间虽有某些精简指令集单片机(RISC)问世,但依然沿袭对时钟分频的作法。

而AVR单片机的推出,彻底打破这种旧设计格局,废除了机器周期,抛弃复杂指令计算机(CISC)追求指令完备的做法;采用精简指令集,以字作为指令长度单位,将内容丰富的操作数与操作码安排在一字之中(指令集中占大多数的单周期指令都是如此),取指周期短,又可预取指令,实现流水作业,故可高速执行指令。

当然这种速度上的升跃,是以高可靠性为其后盾的。

此外由于本设计需要的接口种类多,涉及到了UART、SPI和I

C而AVR单片机中的有很多款在硬件设计时就将这些接口集成在芯片内部,大大的简化了用户对接口的操作。

这样的设计降低了软件的设计难度,并使程序量大为缩短。

而本设计中需要对测试点的电压值进行采集,使用AVR单片机中内部集成10位AD转换器可省去一片单独的AD转换器,减少电路面积。

所以AVR单片机成为实现本设计逻辑控制部分的首选芯片。

2.4.3AVR单片机特点

AVR单片机硬件结构采取8位机与16位机的折中策略,即采用局部寄存器存堆(32个寄存器文件)和单体高速输入/输出的方案(即输入捕获寄存器、输出比较匹配寄存器及相应控制逻辑)。

提高了指令执行速度(1Mips/MHz),克服了瓶颈现象,增强了功能;同时又减少了对外设管理的开销,相对简化了硬件结构,降低了成本。

故AVR单片机在软/硬件开销、速度、性能和成本诸多方面取得了优化平衡,是高性价比的单片机。

AVR单片机的I/O线全部带可设置的上拉电阻、可单独设定为输入/输出、可设定(初始)高阻输入、驱动能力强(可省去功率驱动器件)等特性,使的得I/O口资源灵活、功能强大、可充分利用。

AVR单片机有自动上电复位电路、独立的看门狗电路、低电压检测电路BOD,多个复位源(自动上下电复位、外部复位、看门狗复位、BOD复位),可设置的启动后延时运行程序,增强了嵌入式系统的可靠性。

AVR单片机技术体现了单片机集多种器件(包括FLASH程序存储器、看门狗、EEPROM、同/异步串行口、TWI、SPI、A/D模数转换器、定时器/计数器等)和多种功能于一身,充分体现了单片机技术的从“片自为战”向“片上系统SOC”过渡的发展方向。

综上所述,AVR单片机博采众长,又具独特技术,是8位机中的佼佼者。

它具备了高可靠性、功能强、高速度、低功耗和低价位的特点。

也正因为此,本仪器使用了AVR单片机中的一款高端单片机Atmage16作为控制核心。

2.5单片机与PC间串口通信的实现

单片机作为控制核心其首要职能是将上位机传送来的数据接收并相应处理。

而通信的可靠性和有效性直接影响到了仪器的功能。

由于本设计采用的是有线通信,有较好的可靠性,而AVR单片机本身有着强大的串行通信能力,只要对Atmage16内部通讯设备进行设置就可实现简单通信。

2.5.1AVR单片机串行接收器和转发器的特点

AVR单片机的通用同步和异步串行接收器和转发器(USART)是一个高度灵活的串行通讯设备。

主要特点为:

1)全双工操作(独立的串行接收和发送寄存器);

2)异步或同步操作;

3)主机或从机提供时钟的同步操作;

4)高精度的波特率发生器;

5)支持5,6,7,8,或9个数据位和1个或2个停止位;

6)硬件支持的奇偶校验操作;

7)数据过速检测;

8)帧错误检测;

9)噪声滤波,包括错误的起始位检测,以及数字低通滤波器;

10)三个独立的中断:

发送结束中断,发送数据寄存器空中断,以及接收结束中断;

11)多处理器通讯模式;

12)倍速异步通讯模式;

13)增强性的高速同/异步串口,具有硬件产生校验码、硬件检测和校验侦错、两级接收缓冲、波特率自动调整定位(接收时)、屏蔽数据帧等功能,提高了通信的可靠性,方便程序编写,更便于组成分布式网络和实现多机通信系统的复杂应用,串口功能大大超过MCS-51/96单片机的串口,加之AVR单片机高速,中断服务时间短,故可实现高波特率通讯。

进行通信之前首先要对USART进行初始化。

初始化过程通常包括波特率的设定,帧结构的设定,以及根据需要使能接收器或发送器。

重新改变USART的设置应该在没有数据传输的情况下进行。

2.5.2通信格式

本设计将单片机设定为8位桢结构、接收发送使能、偶校验、波特率设定为和上位计算机相同9600,在初始化之后可等待上位计算机发出握手信号,单片机在发出返回信号后进入实际测试程序。

2-7单片机串行程序流程图

为防止上位机在检测过程中发出新的数据造成检测中断,本设计在检测执行过程中将单片机的接收功能关闭,监测结束后上传检测结果后再次打开等待新的数据指令。

2.6单片机对发光管阵列控制

本设计需要使用大量的逻辑输出端控制数量庞大发光二极管驱动矩阵,而在任何一款单片机中I/O口都是最稀缺的资源之一,因此直接使用单片机I/O口作为发光二极管驱动矩阵的逻辑控制端从数量上来讲就难以实现;其次作为系统的控制核心,它需要较稳定的供电环境以及较低的电磁干扰环境,虽然AVR单片机的I/O口具有高达20mA的电流承受能力,但是这势必会直接造成单片机的工作负荷增大,会有可能造成不良影响致使系统工作趋于不稳定状态。

为解决此问题,本系统采用的是使用74LS595来完成单片机的I/O扩展功能,同时还有效的降低了单片机自身I/O口上的电流的大小,间接的降低了电磁场对单片机的直接干扰。

74LS595是一个八位串入并出,串入串出移位寄存器,八位数据锁存器和驱动器三个主要部分组成的高速CMOS电路,移位寄存器接受串行输入数据,输出串行数据,并提供送往锁存器的并行数据,移位寄存器和锁存器有独立的时钟输入端,对移位寄存器有一个异步的复位端。

2.6.174LS595特点和内部结构:

1)数据处理速度高,串行最高时钟频率大于等于15MHz(在供电电源为5V时);

2)提供并行输出灌电流最大为40mA,简化使用可不加限流电阻,可直接驱动LED点阵和低电流型继电器;

3)CMOS电路的低功耗特性,输入端设有施密特整形电路,有较好的抗干扰能力;

4)串行输出电流大,便于直接级联,串行输出拉电流10mA,串行输出灌电流10mA;

5)数据输出为低电平有效,保证串行和并行输出提供灌电流;

6)工作电压范围大,可在3-6V工作;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 简洁抽象

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1