专利名称:一种cpu模块地址和数据总线的故障检测方法
一种CPU模块地址和数据总线的故障检测方法
术领域本发明涉及一种CPU模块地址和数据总线的故障检测方法,属于电子产品制造技术领域。
背景技术:
随着自动化水平的提高,各种基于嵌入式计算机技术的自动化设备应用越来越广泛。为了提高研发效率和节约生产成本,自动化设备的控制核心通常会被模块化,形成通用的主控单元部件,即CPU模块,用于各种功能不同的自动化设备中。CPU模块是运算核心,其它应用、驱动、接口等功能再由外围功能扩展电路板来实现。CPU模块硬件最基本的部分包括处理器和基于总线扩展的片外存储器,此外还有引到模块接口上的IO 口线。复用的IO 口线既可做为IO输入输出信号线,也可通过CPU配置为串口、USB、模数转换等功能信号线, 其具体应用功能由外围功能扩展电路板和程序软件决定。如图I所示,CPU模块将处理器和片外存储器和必要的电源、时钟电路设计在一块硬件电路板上并通过接插件引出CPU的 IO 口线等各种外设资源。
在CPU模块的大批量生产过程中,需要快速的对新模块进行生产测试,主要目的是为了检测出在制板、焊 接过程中发生的短路、断路等硬件问题。特别是BGA封装的CPU形式,总线排序没有规律,其焊接问题也难以通过肉眼观察发现。以往通过相邻地址和数据信号线通断关系的测试,难以适应这种无序的布线方式。同时,依据前述对CPU模块结构的介绍,模块测试最核心的是IO 口线、地址和数据总线的故障检测。目前已有文献和资料,没有一个通用的、能快速和可靠的检测地址和数据总线质量问题的方法。发明内容
本发明的目的是提供一种CPU模块地址总线和数据总线的故障检测方法,以解决目前通过相邻地址和数据总线通断关系的检测方法无法对布线无序的CPU模块地址和数据总线进行检测的问题。
本发明为解决上述技术问题而提供一种CPU模块地址和数据总线的故障检测方法,该检测方法的步骤如下1).将CPU的IO口线全部设置为低电平输出状态;2).向CPU片外扩展RAM的连续地址范围依次置高每一根数据线写入数据,CPU从片外扩展的RAM的上述连续地址中读取写入的数据,判断读取的数据和写入的数据是否相同, 如果全部都相同,则进入步骤3),如果不全部相同则说明在CPU模块的访问控制线、数据总线、IO 口线中存在短路断路故障;3).依次置高CPU片外扩展的RAM的每一根地址线,向其写入低位不同且其余高位为 O的不同数据,并进行读回验证,如果读取的数据与写入的数据全部相同,则进入步骤4), 如果不全相同,则说明在CPU模块的地址总线、IO 口线中存在短路断路故障;4).依次置高CPU片外扩展的RAM的每一根地址线,向其写入高位不同且其余低位为O的不同数据,并进行读回验证,如果读取的数据与写入的数据不全相同,则说明在CPU模块的地址总线、IO 口线中存在短路断路故障。
所述步骤2)中连续地址范围是指地址为O至(Nd-I),Nd为CPU数据总线宽度。
所述的步骤3)中写入的数据是低(ND/2)位不同且其余高位为O的不同数据,其中 Na为CPU模块地址总线宽度。
所述的步骤4)中写入的数据是高(ND/2)位不同且其余低位为O的不同数据,其中 Nd为CPU模块数据总线宽度。
所述步骤I)中将CPU的IO 口线全部设置为低电平的输出状态是为了将短路的数据和地址线电平固定为低电平,使与IO 口线搭连的地址和数据线被拉低,从而识别出数据写入和读取时出现的错误。
所述步骤3)和步骤4)之间的顺序是可以调换的。
本发明的有益效果是本发明通过向RAM的连续地址范围依次置高一根数据线写入数据再读回验证,用于检测CPU的数据总线短路和断路情况;依次置高一根地址线向 RAM写入低位不同且其余高位为O的不同数据,读回验证;然后换成高位不同且其余低位为O的数据做相同测试,用于检测CPU的地址总线短路断路情况以及地址总线与数据总线之间的短路情况。此方法能够快速和可靠的检测CPU模块在大规模生产过程可能出现的制板和焊接问题。
图I是CPU模块的基本结构框图;图2是本发明的CPU模块生产测试系统的示意图;图3是本发明的CPU模块地址和数据总线的故障检测方法的电路示意图。
具体实施方式
下面结合附图对本发明的具体实施方式
作进一步的说明。
目前嵌入式系统使用的CPU具有很多管脚,这些管脚除了电源、固定的调试接口之外,主要包括地址总线、数据总线、以及IO 口线,它们在芯片管脚上通常会交错排列,管脚和布线距离都很近。目前,各种CPU的IO 口线通常在默认情况下,都是做为逻辑电平信号的输入和输出接口。如果通过程序配置,可以再启动某些IO的特殊功能,比如串口、SPI 口、CAN接口、AD输入等。当然,本发明仅着重说明地址和数据总线的测试,没有将IO线的测试。但是,地址和数据总线测试第一步,先需要设置这些IO线。
I).将CPU的IO 口线全部设置为低电平输出状态,用于将短路的数据地址线电平固定为低电平,使与IO 口线答连的地址和数据线被拉低,从而使数据写入和读取出现可识别的错误,最终检测出CPU模块的故障。
2).在CPU通过地址和数据总线向片外扩展的RAM的地址O至(ND_1)内依次写入 Nd个数据,写入的数据分别为Dwl(k)=2k,其中Nd为CPU数据总线宽度,k=0、l、2···、(Nd-I);3). CPU从片外扩展RAM的地址O至(Nd-I)中读取数据Dki (k),判断读取数据Dki (k)和写入数据Dwi (k)是否相同,如果都相同,说明CPU模块的数据总线正常,没有出现故障,则执行步骤4),如果存在k使读取数据Dki (k)和写入数据Dwi (k)不同,则检测结束,并输出测试信息为测试失败,并指示以下两种情况的模块故障第一种情况,CPU的访问控制线和数据总线存在短路或断路;第二种情况,CPU的IO 口线与数据总线存在短路。
4). CPU通过地址和数据总线向片外扩展的RAM的地址A1GO依次写入(NA+1)个数据,其中Na为CPU地址总线宽度,当k=0时,A1GO=O,写入数据DW2(k)=0,ik=l、2···、Na 时,写入数据Dw2(k)为低(Nd/2)位不同且其余高位为O的不同数据,然后再从片外扩展的 RAM的地址A1GO读取数据DK2(k),判断读取数据DK2(k)和写入数据Dw2GO是否相同,如果都相同,则说明CPU模块的地址总线没有出现故障,如果不完全相同,则说明在CPU模块的地址总线、IO 口线中存在短路断路故障。实施例
本发明实施例的生产测试系统如图2所示,计算机通过USB与测试工装相连,被测 CPU模块通过顶针与测试工装建立电气连接,被测CPU模块可在USB主机的控制下执行特定的程序,并实现IO 口线设置、地址和数据总线访问功能。被测CPU模块上的电路关系如图3所示,CPU与RAM间共有24根地址线、32根数据线和若干控制线相连,CPU还有IO 口线等通过对外接插件引出。本实施例中的CPU模块地址和数据总线的故障检测方法的具体步骤如下I.将CPU的IO 口线全部设置为低电平输出状态,用于当IO 口线与数据地址线短路时, 可以将短路的数据地址线电平 固定为低电平,从而使与IO 口线答连的地址和数据线被拉低,从而时数据写入和读取出现可识别的错误,最终检测出CPU模块的故障。
2. CPU向片外扩展的RAM的地址O至(Nd-I)内依次写入Nd个数据,写入数据分别为Dwl(k)=2k,其中Nd为CPU数据总线宽度32,k=0,I, 2,…,31,即依次置高每一根数据线,然后CPU再从片外扩展的RAM的O至(Nd-I)读取数据Dki (k),最后如果写入数据Dwi (k) 和读取数据Dki (k)都相同,则继续下一步处理;否则,如果存在k使Dwi (k)和DK1(k)不同, 生产测试结束,并输出测试信息为测试失败。
3. CPU向片外扩展的RAM的地址A1 (k)依次写入(NA+1)个数据,其中Na为CPU地址总线宽度 24,当 k=0 时,△100=0,写入数据0 200=0,当1^=1,2,…,24 时,A1GO =2(H), 写入数据DW2(k)=k,显然DW2(k)满足低16位不同且其余高位为O的不同数据,然后再从片外扩展的RAM的地址A1 (k)读取数据Dk2 (k),最后如果写入数据Dw2 (k)和读取数据Dk2 (k)都相同,则继续下一步处理;否则,如果存在k使DW2(k)和DK2(k)不同,生产测试结束,并输出测试信息为测试失败。
4. CPU向片外扩展的RAM的地址A1GO依次写入(NA+1)个数据,其中Na为CPU地址总线宽度 24,当 k=0 时,△100=0,写入数据0 200=0,当1^=1,2,…,24 时,A1GO =2(H),写入数据Dw2GO= kX216,显然DW2(k)满足高16位不同且其余低位为O的不同数据,然后再从片外扩展的RAM的地址A1 (k)读取数据Dk2 (k),最后如果写入数据Dw2 (k)和读取数据Dk2 (k) 都相同,则说明高CPU模块的地址总线没有出现故障;否则,如果存在k使DW2(k)和DK2(k) 不同,生产测试结束,并输出测试信息为测试失败。
理论上,2、3、4都可以调换测试顺序,只要出现数据写入和读取不符,则发现故障,也不必要求先确认数据总线没问题,再测试地址总线。但是,如果数据总线测试放在地址总线测试之前,更容易定位故障,以便做后续的CPU模块维修工作。即,步骤2发现故障,则先维修检查数据总线;步骤2确认数据总线正常后,再进行步骤3、4,如果步骤3和4故障,只需要检查地址总线,步骤3和4的顺序是可以互换的。
权利要求
1.一种CPU模块地址和数据总线的故障检测方法,其特征在于该测试方法的步骤如下 1).将CPU的IO口线全部设置为低电平输出状态; 2).向CPU片外扩展RAM的连续地址范围依次置高每一根数据线写入数据,CPU从片外扩展的RAM的上述连续地址中读取写入的数据,判断读取的数据和写入的数据是否相同,如果全部都相同,则进入步骤3),如果不全部相同则说明在CPU模块的访问控制线、数据总线、IO 口线中存在短路断路故障; 3).依次置高CPU片外扩展的RAM的每一根地址线,向其写入低位不同且其余高位为O的不同数据,并进行读回验证,如果读取的数据与写入的数据全部相同,则进入步骤4),如果不全相同,则说明在CPU模块的地址总线、IO 口线中存在短路断路故障; 4).依次置高CPU片外扩展的RAM的每一根地址线,向其写入高位不同且其余低位为O的不同数据,并进行读回验证,如果读取的数据与写入的数据不全相同,则说明在CPU模块的地址总线、IO 口线中存在短路断路故障。
2.根据权利要求I所述的CPU模块地址和数据总线的故障检测方法,其特征在于所述步骤2)中连续地址范围是指地址为O至(Nd-I),Nd为CPU数据总线宽度。
3.根据权利要求I所述的CPU模块地址和数据总线的故障检测方法,其特征在于所述的步骤3)中写入的数据是低(Nd/2)位不同且其余高位为O的不同数据,其中Na为CPU模块地址总线宽度。
4.根据权利要求I所述的CPU模块地址和数据总线的故障检测方法,其特征在于所述的步骤4)中写入的数据是高(Nd/2)位不同且其余低位为O的不同数据,其中Nd为CPU模块数据总线宽度。
5.根据权利要求I所述的CPU模块地址和数据总线的故障检测方法,其特征在于所述步骤I)中将CPU的IO 口线全部设置为低电平的输出状态是为了将短路的数据和地址线电平固定为低电平,使与IO 口线搭连的地址和数据线被拉低,从而识别出数据写入和读取时出现的错误。
6.根据权利要求I所述的CPU模块地址和数据总线的故障检测方法,其特征在于所述步骤3)和步骤4)之间的顺序是可以调换的。
全文摘要
本发明涉及一种CPU模块地址和数据总线的故障检测方法,属于电子产品制造技术领域。本发明通过首先在操作RAM之前将CPU的IO口线全部设置为低电平输出状态;再向RAM的连续地址范围依次置高一根数据线写入数据再读回验证,用于检测CPU的数据总线短路和断路情况;然后依次置高一根地址线向RAM写入低位不同且其余高位为0的不同数据,读回验证;最后换成高位不同且其余低位为0的数据做相同测试,用于检测CPU的地址总线短路断路情况以及地址总线与数据总线之间的短路情况。本发明能够快速和可靠的检测CPU模块在大规模生产过程因为制板和焊接所导致的地址和数据总线出现故障的问题。
文档编号G06F11/26GK102929755SQ20121036631
公开日2013年2月13日 申请日期2012年9月27日 优先权日2012年9月27日
发明者万鸿俊, 庞浩, 林向阳, 都正周, 马永武, 孙超亮, 歹志阳, 王林, 张斌斌, 张书同 申请人:许继集团有限公司, 河南许继仪表有限公司, 国家电网公司