数字逻辑芯片的自识别及检测
作者: 龚子健
摘要:随着现代电子技术的迅速发展,芯片的应用越来越广泛。在实验室的学习案例中,74系列逻辑芯片的使用越来越频繁,保证芯片逻辑功能完好,才能确保实验结果准确。若对实验所需芯片的好坏进行检测,需核查芯片型号并逐一检测各个引脚,这往往需要耗费大量的时间和精力。针对74系列14和16引脚芯片,设计了一款基于STM32F103单片机的自识别及检测指示仪。
关键词:数字逻辑芯片;自识别;芯片检测
中图分类号:TM712 文献标识码:A
文章编号:1009-3044(2025)04-0130-03 开放科学(资源服务) 标识码(OSID) :
0 引言
数字芯片是数字电子实验中基础且关键的硬件[1],芯片的完好程度直接影响实验结果的准确性。由于学生操作不规范或在存储过程中对芯片造成的损坏,可能导致芯片逻辑功能失效。同时,实验室采购的芯片无法频繁更换。因此,设计数字逻辑芯片检测仪非常有必要。本设计以实验室中常用的74系列14引脚和16引脚芯片为检测对象,支持检测的芯片型号包括:74LS00、74LS08、74LS20、74LS32、74LS54、74LS74、74LS86、74LS138、74LS151、74LS153、74LS161、74LS192等12种。该装置能够依据芯片的工作原理和内部逻辑功能特征,自动识别芯片型号并判断其逻辑功能是否完好[2]。通过优化检测程序,提高了芯片识别的速度和准确性,并将检测结果实时显示在LCD液晶屏上,便于用户直观地了解检测结果。
1 整体方案介绍
检验数字芯片的完好性,即检验其逻辑功能是否完整。该检测装置具备以下功能:1) 自适应检测14引脚和16引脚芯片;2) 自动识别芯片型号;3) 检测芯片逻辑功能是否完好。系统由主控模块、芯片检测接口模块、LCD液晶显示模块、电流检测模块、LED提示模块和电源模块组成。其整体测试框图如图1所示。
2 工作原理设计
2.1 多型号芯片处理原理
14引脚和16引脚芯片的VCC端均位于右上角第一个引脚,但14引脚芯片的GND端位于7引脚,而16 引脚芯片的GND端位于8引脚。为节约成本,采用16 引脚的IC底座,14引脚芯片可以顶端对齐放置。测试函数能够自适应地将7或8引脚置为低电平,使芯片处于工作状态[3]。IC底座与STM32单片机的连接方式如图2所示。
通过分析不同芯片的逻辑功能,封装测试任务中引脚模式切换的函数[4]。表1显示,大部分芯片的输入输出引脚状态一致,但74LS54芯片需要额外配置两个输入引脚作为输出,且仅有一个PA5引脚作为输入。而74LS20芯片则无须重新编写测试函数,因为PA2和PB5作为输入引脚时,不会产生逻辑信号冲突或短路问题。
由表2 可知,可将74LS151、74LS153 和74LS161 的测试函数按顺序排列编写,因其输入引脚大致相同,引脚状态转换时的工作量较小。其余型号芯片则根据其具体的逻辑功能进行对应的测试函数编写。
2.2 主控引脚预处理设计
本设计选用STM32F103单片机作为主控芯片,该芯片的最高时钟频率可达72 MHz,并集成了多种常用外设。由于单片机I/O口与数字逻辑芯片的电平不兼容,因此需要添加电平转换模块进行转换。为防止运行不同测试函数时,单片机引脚与待测芯片引脚之间导通产生过大电流而损坏芯片,在IC底座和电平转换模块之间添加限流电阻[5]。通过对比不同输入状态下的输出结果与真值表,可以识别出芯片型号。由于采用16引脚IC底座,STM32F103C8T6单片机需要配置15个I/O口引脚,第16个引脚连接电源正极。需要注意的是,不同型号芯片在IC底座同一位置的引脚输入输出状态不同。例如,74LS00 和74LS02 芯片中,74LS00芯片底座1端口为输入,而74LS02的1号端口为输出。因此,不同芯片的测试函数需要配置不同的引脚端口状态[6]。由于多数芯片需要较多的输入状态,暂时将STM32F103C8T6单片机所需的15个I/O口配置为推挽输出状态,并将配置过程封装成函数[7]。以74LS00为例,首先配置15个I/O口为推挽输出模式,将底座7引脚置为低电平使芯片开始工作。四组2输入与非门共有4个输出端口,需要配置4个输入引脚来接收芯片的输出信号。通过端口配置寄存器(GPIO_CRL 或GPIO_CRH) 可以重新配置I/O 口的输入输出状态。以74LS00的1Y输出端为例,将其连接至STM32单片机的PB7引脚时,需要将PB7引脚的推挽输出模式改为上拉输入模式。
该步骤需要执行的代码如下:
GPIOB ->CRL&=0X0FFFFFFF;GPIOB->CRL|=8<<28。其中GPIOB ->CRL&=0X0FFFFFFF这个操作是清除 CRL 中引脚7的相关位设置。8的二进制表示为1000,因此MODE[1:0]两位为00,配置引脚为输入模式;CNF[1:0]两位为10,配置引脚为上拉输入模式,最终将GPIO_Pin_7引脚配置为上拉输入模式。同理可以将上拉输入模式配置为推挽输出模式。
2.3 逻辑芯片型号和功能检测
检测开始时,将所有引脚置为高电平,并添加高精度电流传感器(MAX4080SASA) 来检测芯片是否插反。电流检测模块的输出电压由STM32F103内置的12位ADC进行采集,若芯片插反,引脚底座的VCC端口会产生较大电流,此时系统会自动将7或8引脚置为高电平,防止其持续处于短路状态。同时,LCD1602显示屏会显示相应的提示信息。
测试函数首先会查询支持自检测型号芯片的真值表[8],并以任务遍历的形式逐一执行测试函数。以74LS00(四组2输入与非门) 为例,说明14引脚芯片的测试方法,如图3所示。
当执行到74LS00的测试函数时,根据以下四个电平状态组合进行测试:1A=高电平,1B=高电平;1A= 高电平,1B=低电平;1A=低电平,1B=高电平;1A=低电平,1B=低电平(2A2B、3A3B和4A4B同理) 。分别测试1Y、2Y、3Y和4Y的输出结果,若检测通过,则将对应标志位置为高电平。如果至少有三个与非门的标志位被置为高电平,则确认芯片为74LS00型号。确认芯片型号后,进一步判断其逻辑功能是否完整。如果任意一个与非门的标志位未置为高电平,则认为该芯片功能出现故障。
以74LS161(同步四位二进制计数器) 为例说明16 引脚芯片的测试方法,如图4所示。
当执行到74LS161 测试函数时,首先测试清零端。将引脚底座1端口置为高电平,检测Q0、Q1、Q2 和Q3是否为低电平,若检测结果正确则将对应标志位置为高电平。接着测试预置数功能。将D0、D1、D2 和D3设置为1101,设置延时等待一个上升沿,检测Q0、Q1、Q2和Q3是否为1101,若结果正确则将对应标志位置为高电平,进位输出端和计数控制端的测试方法类似。最后将4个标志位进行与运算,若结果为“真”则表示芯片功能正常。
3 硬件电路设计
3.1 主控芯片介绍
STM32F103C8T6 的芯片工作电压范围在2.0~3.6V,最佳工作电压在3.3V。芯片具有上电/断电复位(POR/PDR)和可编程电压检测器。芯片可以外接4~16MHz外部晶体振荡器,通过内部PLL倍频,最高可达72 MHz。内部有经过出厂调校的40kHz RC振荡器,以及带有校准功能的32kHz RTC振荡器。具有低功耗模式,包括睡眠、停机和待机模式。STM32F103 系列具有2个12位模数转换器,1微秒转换时间,最多支持16个输入通道。基于以上特性,本次设计选择STM32F103C8T6作为主控芯片。
3.2 电源模块
考虑到此仪器的便携性,选择18650锂电池作为供电电源[9]。使用两个18650锂电池配合LM2596S稳压模块,为芯片测试提供5V 供电电压;同时,通过AMS1117降压模块将电压降至3.3 V,为STM32F103C8T6主控芯片供电。
3.3 芯片检测接口模块
由于STM32F103单片机与数字逻辑芯片的逻辑电平不同,需要使用双向电平转换器进行电平匹配。本次设计选用TXS0108E高速全双工8路电平转换模块。该模块支持双向电平转换,适用于常见的3.3V与5V电平之间的转换。
3.4 LED 提示模块
LED提示模块用于直观显示数字逻辑芯片检测仪的工作状态。三个LED灯分别为红灯、绿灯和黄灯。上电后,黄灯亮起表示检测插座未插入芯片。插入芯片后,黄灯熄灭。若绿灯亮起,表示芯片逻辑功能完好;若红灯亮起,则表示芯片功能已损坏。
3.5 电流检测模块
MAX4080 是一款高精度检流放大器,具有极低的输入失调电压(VOS)。在 25°C 时,其最大输入失调电压为 ±0.6 mV;在 -40°C 至 +125°C 的整个工作温度范围内,最大输入失调电压为 ±1.2 mV。MAX4080 电流检测模块通过 16 引脚与底座连接,用于实时监测引脚电流[10]。如果检测到较大电流,可能是待测芯片插反。此时,模块会触发保护机制,通过单片机将底座的 7 引脚或 8 引脚置为高电平,从而切断电路,防止待测芯片因短路而损坏。
3.6 电路保护模块
在电平转换模块与IC底座之间的每个引脚串联一个1KΩ的限流电阻,此做法是防止运行不同测试函数时,单片机引脚与待测芯片引脚之间导通产生较大电流从而烧坏芯片。经过电路实际测试,添加限流电阻后不会对输出高低电平的状态产生影响,且当引脚之间导通时的电流大小为2.62mA不会导致芯片烧坏。
4 软件设计
系统的软件设计流程图如图5所示。当系统进行上电或复位后,首先会对系统时钟、定时器以及LCD1602液晶显示屏进行初始化。初始化完毕后,进入基础页面,LED提示模块亮黄灯表示无芯片插入。插入待检测的数字逻辑芯片后,系统会对数字芯片的12或14个引脚的输入状态进行组合,并将输出结果与真值表进行比较。完成对芯片具体型号的检测后,在LCD1602液晶显示屏的第一行实时显示型号,再检查其逻辑功能是否完好。若完好,则在LCD1602液晶显示屏第二行实时显示“Chip intact”,若芯片功能有误,则显示“Chip damage”。
5 系统测试
测试开始前,首先确认待测芯片的正反,再将待测芯片插入到IC底座上。如果待测芯片在底座上插反,则电流模块上检测的电流值会过大。此时,单片机会将PA6或PA7引脚拉高以防止其一直处于短路状态。须注意的是,14引脚的待测芯片须顶格插入IC 底座。待测芯片正常工作后,根据已编写的测试函数进行任务遍历测试。在测试完一个型号后,进行下一个型号测试之前,会重新配置引脚端口的状态。本次实验总共测试了100个正常芯片和30个故障芯片,其统计结果如表3所示。
6 结论
针对数字电子技术实验课程中常见的74系列芯片损坏和重复使用率低的问题,本文设计了一种数字逻辑芯片检测仪。该仪器能够根据芯片的工作原理和内部特征自动识别型号,并判断其逻辑功能是否完好。通过对检测程序进行优化,提升了芯片识别的速度和准确性,并实时将检测结果显示在LCD液晶屏上,方便用户直观地了解检测结果。
参考文献:
[1] 华国环,董文锋,费敬敬,等.基于模拟选择开关和故障字典的数字芯片检测系统[J].仪表技术与传感器,2018(7):77-80.
[2] 杨恒敏.74HC595芯片对单片机IO口的扩展原理与应用[J].信息与电脑(理论版),2020,32(4):120-122.
[3] 黄晓宗.ESD保护器件研究及其在电路协同设计中的应用[D].成都:电子科技大学,2017.
[4] 徐银霞“. 数字逻辑” 课程教学方法探讨[J].中国电力教育,2013(28):104-105.
[5] 董文锋.基于ESD保护电路的数字逻辑芯片检测系统[D].南京:南京信息工程大学,2019.
[6] 牛恩涛.模拟集成电路的测试技术研究[D].北京:华北电力大学,2015.
[7] 刘潇.一种数字电子实验常用芯片检测指示仪的研究[J].电脑开发与应用,2013,26(10):66-67.
[8] 胡晓进.数字电子技术的实验教学分析[J].电子技术(上海),2023,52(4):268-269.
[9] 蔡妍娜.基于多核心的便携式多线检测仪的设计与实现[J].电子技术,2017,46(9):43-45.
[10] 罗颖,谢小军,朱才溢,等.基于霍尔传感器的直流电能计量装置设计[J].中国检验检测,2020(6):7-12.
【通联编辑:光文玲】