1系统硬件结构设计
如图1所示,本系统以AT89C52单片机为核心组成一个具备数据采集、对象控制、结果显示、报警装置、键盘操作等多项功能的复杂完整系统。
1.1 微处理器
本系统采用Atmel公司生产的AT89C52芯片作为微处理器。AT89C52与MCS—51系列单片机完全兼容,他采用静态时钟方式,可以大大节省耗电量。其内部含有Flash存储器,在系统开发时可以十分容易地进行程序修改,即使错误编程也不会成为废品。而且在系统工作中,即使突然掉电也能有效地保存一些数据信息。
1.2 数据采集部分
数据采集和A/D转换由MAX197完成。MAX197是MAXIM公司出品的高性能12位A/D转换器,8通道模拟信号输入,可以满足使用1片A/D分时进行多参数测量的要求。MAX197的其中2路通道为电池重量信号的输入,由压力传感器获取原始信号经运算放大后输入。其余6路分别为电池相关电压、电流各参数信号的输入。MAX197片选信号/CS接AT89C52的P2.7,读写控制信号分别接AT89C52的/WR和/RD。引脚HBEN为12位转换结果选择端,由P1.6控制。当HBEN为高电平,读取转换结果的高4位;当HBEN低电平时读取低8位。设定MAX197的控制字为01000000B,则其工作方式为正常工作方式/内部时钟;内部获取方式;模拟量输入范围为0~5 V;使用通道0。改变控制字的最后3位(000~111)可以依次选取MAX197的第0~7通道。MAX197通过片内的三态并行接口与AT89C52进行接口。由于MAX197本身的转换时间较短,且为固定值,故而在设计时采用了固定延时的方式代替中断方式,进行转换结果的读取,提高了数据的通过率和程序的效率。图2给出了MAX197与AT89C52的接口电路。
1.3 基本I/O部分
电池四参数的标准值由拨码开关设定,开机直接进行显示,直观明了;且可以方便的改变设定值,以满足不同档次电池的测量要求。显示部分采用MAX7219来驱动LED数码管。MAX7219为MAXIM公司出品的串行输入输出、共阴极、8位数字LED显示驱动器。只须一个外部电阻就可以为所有的LED段电流进行设置,简化了电路设计,提高了系统的可靠性。其与AT89C52的接口通过一个方便的三线串行接口完成,各个数字均可被寻址和更新,而不需要重写整个显示器。
AT89C52的P3.0接MAX7219的串行数据输入端DIN,在CLK的上升沿,串行数据从DIN装入到内部16位移位寄存器中。在CLK下降沿的DOUT端数据有效。本系统采用3片MAX7219进行级联,来驱动24个LED数码管,分别显示电池的4个参数值及各分档测量值的统计结果。图3为3片MAX7219级联驱动24个LED数码管。
1.4 对象控制部分
本系统控制的对象有步进电机、电磁阀、机械测量推杆、电子开关等。开机自检后,由步进电机带动传送带把电池运到检测位置处,单片机控制测量推杆夹紧电池进行测量,所得数据经处理后与所设定标准值比较,若满足设定,视为合格产品,由传送带带走;若不满足,则视为次品,由单片机控制电磁阀打开压缩空气,吹走次品电池,达到分检目的。而当电池为次品或无电池及电池正、负极反置时,蜂鸣器发出报警信号。此系统采用气动电磁阀,提高了工作速度和设备的使用寿命。
2 程序模块
本系统软件部分采用MCS—51系列汇编语言设计,采用模块化程序结构,由主程序模块、键盘服务模块、数据采集模块、数据处理模块、输出控制模块和显示模块等几大模块组成。主程序模块简洁明了,核心部分为读键、键解释,进而转向完成不同功能的相应各功能子程序。这样设计使得程序总体结构紧凑、简洁、易懂,且易于设计、调试、维护和移植。
2.1 监控程序
由于本系统的子程序调用条件是多因素的,不仅与外部键盘操作、电信号等有关,也与系统的当前所处的状态有关,故而在监控程序中引用状态分析的方法,采用了一键多义的编写方式。分析系统工作时所有可能所处的状态,设定一键多义,在不同的状态下,键解释的结果不同,故而转向不同的子程序。本系统设定了5个功能键和1个逻辑键,其中显示键为多义键,不同状态下分别显示设定四标准参数、测量所得正次品电池数、电池各分档统计数等。逻辑键为软件键,定义为30 s延时。在上述显示键按下后启动,若再无重复按下,则30 s后恢复到开机显示四设定参数状态。
2.2 数据采集
原始数据采集中,采用了VMOS功率场效应管作为电子开关。使用软件编程的方法,控制电子开关的打开和闭合,选通A/D转换器的各模拟输入通道,从而对电池的不同参数进行测量。VMOS管是一种垂直导电型MOS功率场效应晶体管,兼具有电子管和晶体管的优点。他的开关速度极高,且没有“热崩”和“二次击穿”,易串并联使用。本系统在对电池短路电流测量中,由于放电电流较大,故而采用了2个VMOS管并联使用,以达到分流的作用。
2.3 数据处理
由于现场各种干扰的存在,使得采样所得数据有一定的误差。故对原始数据采取了数字滤波处理。对本系统中开路电压的测量,根据其取值特点在参考值1.5 V左右波动,首先去除奇异值,即对所得采样值序列中明显偏离参考值的数据,视为有干扰存在,滤除掉;然后再对所得数据序列采用中位值滤波法进行处理,即对剩余序列排队,取中间值作为最终滤波结果。这种数字滤波的软件算法,有硬件的功效,却不需要硬件投资,而且算法灵活多样,效果往往优于硬件滤波电路。应用中可根据被测参数实际情况及所得数据规律,而综合采用多种算法,以取得更优的滤波效果。
3 结语
本系统自动化程度高,大大提高了生产效率;人机界面友好,易于操作、存取数据。采用了合适的新型芯片,使得系统整体结构可靠性好,精度高。附加的质量统计功能,还可以提供给生产者以决策依据。实际应用中,取得了很好的效果。