鲁杰爽

(湖北职业技术学院,湖北孝感,432000)

0 引言

在“新工科”理念的引领下,高校在工程教育创新改革中更加注重大学生的专业实践技能[1]。单片机应用技术是高职电子信息类专业、自动化类专业必修的一门非常重要的专业基础课,在智能控制中应用广泛[2~3]。在教学过程中,我们采用基于项目制作导向的教学模式,教学做一体化,教师边做边讲,学生边做边学,学生在制作实践中掌握单片机开发的综合专业技能。

单片机制作项目采用模块化电路设计,将项目分成多个功能独立的子模块,每个独立的电路模块功能相对独立、特性明确、界面清晰。模块化设计具有独立设计、独立组装、独立调试、便于故障分析检测,大大降低了电路设计和实现的难度,提高了电路的电气性能。为了更好地培养学生的创新设计能力,提高学生的硬件电路装调和故障分析能力,也可以采用在洞洞板上焊接电子元件和连接导线来制作这些模块电路板,这样能够显着提升学生的专业实践技能。

单片机系统板是制作项目中核心的模块电路板。在制作过程中如果单片机系统板出现故障,因为没有专门的检测仪器,板子上也没有LED灯之类的各种故障状态指示信号,往往无法直接判断出故障原因。只能针对不同电路结构的单片机系统板,采取不同的检测方案,来进行故障的分析与排除。

1 单片机系统板模块电路的故障检测原理

下面以一种典型的单片机系统板为例,如图1所示,介绍其故障检测的基本原理,当它不能正常工作时,该如何进行故障的分析和排除。

图1 一种典型的单片机系统板模块电路

模块电路板检测的基本依据就是看它是否实现了预期的独立功能。

该单片机系统板,一方面通过P0 口分时复用地向外输送8 位数据信号,从而形成单片机与外部设备交换数据的8位双向数据总线。为了提高数据总线上能够“挂接”外部设备的数量,该数据总线经过了双向功率驱动器74LS245 与外部设备进行数据的交换,以提高数据总线的输出功率。

另一方面P0 口分时复用,也通过地址锁存器芯片74LS373,向外部输送外RAM 存储单元的低8 位地址信号,连同P2 口送出的外RAM 存储单元高8 位地址信号,共同构成单片机与外部设备的16 位地址信号总线。该模块单元还将P2 口的高3 位地址信号,经译码器74LS138 译码后可以形成8 个外部设备片选信号C0、C1 等,从而可以连接数量更多的外部设备,方便系统的扩展。

该单片机系统板还对外提供了常用的读信号、写信号等控制信号。

单片机系统板是否工作正常,就是要通过检测电路板输出的地址信号、数据信号和控制信号等是否正常来加以判断。

2 单片机系统板的测试与故障分析

根据该单片机系统板的功能,主要对其输出的高8 位地址信号、低8 位地址信号、8 位数据信号、读出/写入控制信号进行逐步的测试和故障分析。

为了测试这三类信号,编写了下面的综合测试程序,下载到单片机系统板中运行,然后用示波器检查这三类信号是否正常,来分析判断故障所在。

(1)检查单片机输出的高8 位地址信号

对电路原理图进行分析,可以计算出该电路板输出的外部设备片选信号C0、C1、C2、C3 的地址分别为0x00XX,0x20XX、0x40XX、0x60XX(X 表示该位信号可以任意)。单片机向外部设备读写数据时,一般需要经过输出外部设备地址信号、输出读/写控制信号、读出/写入数据等3 个阶段,因此可以让单片机分别向这几个外部设备地址发送写数据指令,经过指令的解释执行,就会分别输出这几个外部设备地址,从而输出C0、C1、C2、C3 的片选信号。

丘吉尔有句名言,我宁可失去一个印度,也不愿失去一位莎士比亚。其中的深刻之处,正在于指出了历史文化不仅是一个民族无法割舍的血脉基因,更蕴含着破解各种难题的钥匙。”文化是一所高校赖以生存、发展的根基和血脉,高校校园文化对学生成长有着潜移默化、耳濡默染的效应,可以教化、培育和提高人的知识、素质和技能,从而推动人的全面发展。因此,高职辅导员要时刻牢记高职教育目的与职能,自觉承担培育学生文化自信的责任,通过创建具有高职特色的文化,浸润、教化具有高职特质的专门人才。

据此原理编写了上述测试程序,将它下载到单片机中运行,如果运行正常,就可以用示波器检测到C0、C1、C2、C3 信号的输出波形。如图2 所示。

图2 单片机输出的高8 位地址信号波形图

如果没有信号输出,则表明电路存在故障,需要进行故障的检测与排除。故障检测的基本步骤是从输出级向输入级逐级单元进行排除。每一级单元都分别以各核心芯片或元件为中心,判断某级芯片是否有故障的基本方法,是依次检查周围电路提供给该芯片的各输入信号是否都正常,如果某个输入信号不正常,则应逆序向前检查与其相连接的上一级单元电路的输出信号是否正常。如果该级芯片所有的输入信号都检测正常,但其输出信号不正常,则可以断定是该芯片已经损坏,更换芯片就可以正常工作。

据此方法,从74LS138 译码器芯片查起,检查其各种输入信号是否正常(包括VCC 和E3 引脚是否有+5V 电压,和GND 引脚是否接地,A、B、C 引脚是否有连续方波信号输入)。如果这些输入信号都正常,则可以判定是译码器芯片已经损坏,更换即可。如果某个输入信号不正常,则如A 引脚没有方波信号输入,则应逆向检查与其相连接的上一级单片机芯片是否正常工作。如果单片机工作正常,则表明单片机芯片的P25 引脚与译码器的A 引脚的连接线不通,通常情况是这2 个引脚虚焊、连接线焊接错误、连接线断开、与其他连接线短路等原因造成的,可以通过万用表的欧姆档很容易就可以查找到问题所在。

还有另外一种可能,那就是单片机芯片可能存在故障而没有正常工作,自然也就没有输出P25 地址信号。单片机是否正常工作,可以通过检查其ALE 引脚是否有方波信号输出(其频率大概是晶振频率的六分之一)来加以判定。如果ALE 没有信号输出,则表明单片机没有正常工作。此时,可以依次检查单片机芯片的VCC 和引脚是否有+5V 电压、GND 引脚是否接地、RESET 引脚的复位信号是否正常(在开机通电瞬间,RESET 引脚有一个电压冲高回落过程,这一点用指针式万用表可以很容易观察得到)、XTAL2 晶振引脚(18 号引脚)是否有振荡脉冲信号输出。如果这些信号都正常,那就可以断定是单片机芯片损坏了,需要进行更换。

实践中,往往在查找分析这些信号时,就找到了故障问题所在,如线路虚焊、断开、短路、元件损坏等。

(2)检查单片机输出的低8 位地址信号

类似于单片机输送高8 位地址信号的过程,可以让单片机分别向这几个外部设备地址(0x0055,0x20AA,0x4055,0x60AA)发送写数据指令,经过指令的解释执行,就会让低8 位地址总线(A0~A7)中的每个信号线不停地循环输出高电平和低电平,从而形成图3 所示的输出信号波形。

图3 单片机输出的低8 位地址信号

运行上述测试程序时,继续用示波器检查图中A0、A1、A2、A3 信号。运行正常时,应有图3 所示的波形输出(A4、A5、A6、A7 信号也是这样检查),如果没有这样的波形则表明相关电路有故障。

类似的,查找故障的方法,也是从地址锁存器芯片74LS373 开始,检查VCC 引脚是否+5V 电压、GND 引脚是否接地、引脚是否接地,LE 引脚是否有振荡脉冲信号输入,如果这些信号都正常,此时再检查74LS373 的D0-D3 引脚是否有类似上图的波形信号输入,如果有则表明该地址锁存器芯片损坏而需要更换,如果没有这种波形信号输入,同样应该顺着该信号去查找上一级单片机芯片对应的输出引脚。

(3)检查单片机输出的8 位数据总线信号

检测数据总线信号的方法,是让单片机循环地向数据总线D0~D7 输出0x55 和0xAA,从而让数据总线中的每个数据线上循环地输出高电平和低电平,从而形成连续方波的输出。运行上述测试程序时,继续用示波器检查图中8 位数据信号D0-D7。运行正常时,应有图4 所示的波形输出。

图4 单片机输出的8 位数据信号波形图

同样地,如果检测不到上面的波形输出,则首先应检查双向功率驱动芯片74LS245 的输入信号:VCC 引脚是否接+5V,GND 引脚是否接地,引脚是否接地,DIR 引脚是否有振荡脉冲输入,检查完这些引脚的输入信号正常,再检查芯片74LS245 的输入信号A0-A7,如果这些信号不正常,则同样地也要顺着这些信号查找其上一级芯片对应的输出信号是否正常。例如如果DIR 引脚没有振荡脉冲输入的话,那就要用示波器检查其上一级单片机芯片的读信号(17号)引脚是否有振荡脉冲的输出。

(4)检查单片机输出的控制信号

本单片机系统板对外输出的控制信号就是写信号L2 和读信号L3。让单片机运行上述测试程序,使单片机循环地对外部设备写入数据,如前所述,单片机将循环地输出写信号,然后用示波器直接检查单片机的写信号的输出波形,如果能够检测到连续的振荡脉冲波形,则说明工作正常,否则就可以采用本文前面所述的单片机芯片检测方法。读信号的检查方法类似,不再赘述。

3 结语

单片机系统板是最重要的模块电路板,故障检测的基本依据就是通过设计并运行针对性的测试程序,检查它是否实现了预期的独立功能,包括输出地址信号、数据信号和控制信号。故障检测的基本步骤是从输出级向输入级逐级单元进行排除,判断某级芯片是否有故障的基本方法,是依次检查周围电路提供给该芯片的各输入信号是否都正常,不正常则逆序检查其上一级单元对应的输出信号,直至查找到故障并加以排除。本文介绍的单片机系统板的故障测试程序的编写和故障的检测分析方法,能够有效帮助大学生在单片机项目设计与制作过程中检测排除故障,培养过硬的专业实践技能。