APP下载

地址总线检测方法

2018-10-26袁智荣

科技资讯 2018年10期
关键词:存储器总线芯片

袁智荣

摘 要:在通信电子产品中,总线运用非常普遍,为了提高产品的可靠性,通常需要对总线进行检测。总线检测的内容主要包括数据总线、控制总线和地址总线的检测。对于数据总线和控制总线的检测,比较简单,一般只要保证写入的数据和读出的数据一致就可以判断数据总线和控制总线是否正确;对于地址总线,由于地址信息是由CPU发给功能单元的单项输出信息,因此即使在芯片引脚短路或开路情况下,CPU也无法发现其错误的存在。本文针对非存储器类的芯片设计了一种可靠的地址总线检测方法,在利用现有电路的基础上,通过两个特殊的地址再配合一定的算法,即能达到地址总线检测的目的。

关键词:地址总线 检测方法

中图分类号:TP393 文献标识码:A 文章编号:1672-3791(2018)04(a)-0044-03

总线检测过程主要由系统的CPU对其外部功能模块进行检测,外部功能模块一般包含存储器及功能芯片等。对于存储器类的总线检测,目前业界有较多方法可以检测;但是对于非存储器类的总线检测,如功能芯片CPLD(复杂可编程逻辑器件),其内部地址并非是连续或均可读写的,这类总线的检测实现起来难度较大。因此,如何对非存储器类的功能芯片进行地址总线的检测,一直是业界需要解决的问题。

1 传统地址总线检测方法简介

业内对于非存储器类功能芯片的地址总线检测方法如下。

对功能芯片的某一存在的可读写的地址先写数据,然后再去读这一地址的数据,比较读回来的数据和写的数据是否相等,若相等,则地址总线没有故障,若不相等,则地址总线存在故障;更进一步的,可以选取两个特殊地址,如总线上有8根地址线,如图1所示。

这两个特殊地址选取分别为0×55和0×aa,这两个地址和地址总线的对应关系如表1所示。

这两个特殊地址能保证地址总线第0位到第8位上的信号均出现过0电平和1电平变化,确保地址线都能测试到。

以上方法的缺点在于,即使某一地址线存在故障,也无法检测出来。以下是详细分析过程,如图2所示。

当地址线第1位由于出现故障被强拉到高电平时,则在功能模块端第1位地址位永远为1,如表2所示。

CPU访问地址0×55时,在功能芯片端会当作是0×57,当CPU往地址0×55写数据时,在功能模块端实际写入数据的地址为0×57,CPU往地址0×55读数据时,实际读出的也是0×57的数据,CPU比较读回来的数据和写的数据是相等的,根据以上机制,地址总线不存在故障,但实际上地址线第1位是有故障的,因此这种检测方式存在缺陷。

2 新设计的地址总线检测方法

为了解决传统地址总线检测的缺陷,本文设计了一种新的方法,以下为了说明方便,假设功能芯片为CPLD(复杂可编程逻辑器件),其总线上有8根数据线、8根地址线,如图1所示,在CPLD中选取两个地址0×55和0×AA,作为测试地址总线的两个专用地址,选取这两个地址的原因在前文已经有描述,即能测试到所有地址线。

在检测地址总线前,先进行数据总线的检测,数据总线的测试方法在前文已经有描述,这里不做详细描述,在判断数据总线没有问题后再开始地址总线的检测。

具体地址总线检测流程如图3所示。

以下分地址线无故障和有故障两种情况进行描述。

2.1 无故障情况

在无故障情况下,CPU往0×55地址发送写操作,写入第一检测数据(假设为0×AA),CPLD收到CPU写0×55地址时,把写入的第一检测数据按位取反,作为第一参考数据(即为0×55),CPU往0×55地址发送读操作,CPLD收到CPU的读操作时,把第一参考数据送给CPU;

CPU再往0×aa地址發送写操作,写入第二检测数据(为0×55),第一检测数据和第二检测数据的相同数据位对应的电平必须相反,CPLD收到CPU写0×aa地址时,把写入的第二检测数据按位取反,作为第二参考数据(即为0×AA),CPU往0×aa地址发送读操作,CPLD收到CPU的读操作时,把第二参考数据送给CPU;CPU对第一参考数据(0×55)和第二参考数据(0×AA)进行异或运算,结果为全1,说明地址总线无故障。

表3为地址线无故障时,检测数据和参考数据的对应关系。

2.2 有故障情况

在有故障情况下,假设地址线第1位由于出现故障被强拉到高电平, 如表2所示,则CPU往地址0×55写第一检测数据(假设为0×AA),则在CPLD端实际写入数据的地址为0×57,而CPLD收到CPU写0×57地址时,是不会做取反运算的,CPU再往0×55地址读数据时,实际上读出的第一参考数据即为前面写入的数据(0×AA);

CPU往地址0×aa写第二检测数据(0×55),把写入的第二检测数据按位取反,作为第二参考数据(即为0×AA),CPU往0×aa地址发送读操作,CPLD收到CPU的读操作时,把第二参考数据送给CPU;CPU对第一参考数据(0×AA)和第二参考数据(0×AA)进行异或运算,得到的结果为0,说明地址总线有故障。

表4为地址线有故障时,检测数据和参考数据的对应关系。

3 结论

本文设计了一种可靠的地址总线检测方法,利用了特定的两个地址(0×55和0×AA),只有当访问了该特定地址时,CPLD才会做按位取反运算,访问其他地址,则不会进行此操作,这样就保证了唯一性。当地址总线上某根地址线开路或短路时,则无法同时访问到如上两个地址(0×55和0×AA),最终第一参考数据与第二参考数据进行异或运算的结果为非全1,这样就能达到检测地址总线的目的。

这种地址总线检测的优点如下:

(1) 可以实现对非存储器类功能芯片进行地址总线的检测,能准确无误地判断出地址总线是否存在故障。

(2) 提供的地址总线检测方法简单高效,检测时间非常短,尤其适合上电阶段的检测。

(3) 提供的地址总线检测方法在硬件电路上无需外加任何器件,能避免引入器件后的不稳定性,且成本也无需增加。

参考文献

[1] 党安明,张钦军.传感器与检测技术[M].北京:中国电力出版社,2011.

[2] 数据总线[EB/OL].https://baike.so.com/doc/6148763-6361949.html.

[3] 李正军.现场总线及其应用技术[M].北京:机械工业出版社,2017.

猜你喜欢

存储器总线芯片
关于CAN总线的地铁屏蔽门控制思路论述
装错芯片的机器人
植入芯片变身“超人”,挥手开门不再是传说
独立拼装手机
什么是AMD64
存储器——安格尔(墨西哥)▲
Q&A热线
PCI9030及其PCI总线接口电路设计
Buffalo推出四硬盘网络存储器 主打Soho一族
测试小型存储器阵列的新方法