袁智榮
摘 要:在通信電子產(chǎn)品中,總線運(yùn)用非常普遍,為了提高產(chǎn)品的可靠性,通常需要對(duì)總線進(jìn)行檢測(cè)??偩€檢測(cè)的內(nèi)容主要包括數(shù)據(jù)總線、控制總線和地址總線的檢測(cè)。對(duì)于數(shù)據(jù)總線和控制總線的檢測(cè),比較簡(jiǎn)單,一般只要保證寫(xiě)入的數(shù)據(jù)和讀出的數(shù)據(jù)一致就可以判斷數(shù)據(jù)總線和控制總線是否正確;對(duì)于地址總線,由于地址信息是由CPU發(fā)給功能單元的單項(xiàng)輸出信息,因此即使在芯片引腳短路或開(kāi)路情況下,CPU也無(wú)法發(fā)現(xiàn)其錯(cuò)誤的存在。本文針對(duì)非存儲(chǔ)器類(lèi)的芯片設(shè)計(jì)了一種可靠的地址總線檢測(cè)方法,在利用現(xiàn)有電路的基礎(chǔ)上,通過(guò)兩個(gè)特殊的地址再配合一定的算法,即能達(dá)到地址總線檢測(cè)的目的。
關(guān)鍵詞:地址總線 檢測(cè)方法
中圖分類(lèi)號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-3791(2018)04(a)-0044-03
總線檢測(cè)過(guò)程主要由系統(tǒng)的CPU對(duì)其外部功能模塊進(jìn)行檢測(cè),外部功能模塊一般包含存儲(chǔ)器及功能芯片等。對(duì)于存儲(chǔ)器類(lèi)的總線檢測(cè),目前業(yè)界有較多方法可以檢測(cè);但是對(duì)于非存儲(chǔ)器類(lèi)的總線檢測(cè),如功能芯片CPLD(復(fù)雜可編程邏輯器件),其內(nèi)部地址并非是連續(xù)或均可讀寫(xiě)的,這類(lèi)總線的檢測(cè)實(shí)現(xiàn)起來(lái)難度較大。因此,如何對(duì)非存儲(chǔ)器類(lèi)的功能芯片進(jìn)行地址總線的檢測(cè),一直是業(yè)界需要解決的問(wèn)題。
1 傳統(tǒng)地址總線檢測(cè)方法簡(jiǎn)介
業(yè)內(nèi)對(duì)于非存儲(chǔ)器類(lèi)功能芯片的地址總線檢測(cè)方法如下。
對(duì)功能芯片的某一存在的可讀寫(xiě)的地址先寫(xiě)數(shù)據(jù),然后再去讀這一地址的數(shù)據(jù),比較讀回來(lái)的數(shù)據(jù)和寫(xiě)的數(shù)據(jù)是否相等,若相等,則地址總線沒(méi)有故障,若不相等,則地址總線存在故障;更進(jìn)一步的,可以選取兩個(gè)特殊地址,如總線上有8根地址線,如圖1所示。
這兩個(gè)特殊地址選取分別為0×55和0×aa,這兩個(gè)地址和地址總線的對(duì)應(yīng)關(guān)系如表1所示。
這兩個(gè)特殊地址能保證地址總線第0位到第8位上的信號(hào)均出現(xiàn)過(guò)0電平和1電平變化,確保地址線都能測(cè)試到。
以上方法的缺點(diǎn)在于,即使某一地址線存在故障,也無(wú)法檢測(cè)出來(lái)。以下是詳細(xì)分析過(guò)程,如圖2所示。
當(dāng)?shù)刂肪€第1位由于出現(xiàn)故障被強(qiáng)拉到高電平時(shí),則在功能模塊端第1位地址位永遠(yuǎn)為1,如表2所示。
CPU訪問(wèn)地址0×55時(shí),在功能芯片端會(huì)當(dāng)作是0×57,當(dāng)CPU往地址0×55寫(xiě)數(shù)據(jù)時(shí),在功能模塊端實(shí)際寫(xiě)入數(shù)據(jù)的地址為0×57,CPU往地址0×55讀數(shù)據(jù)時(shí),實(shí)際讀出的也是0×57的數(shù)據(jù),CPU比較讀回來(lái)的數(shù)據(jù)和寫(xiě)的數(shù)據(jù)是相等的,根據(jù)以上機(jī)制,地址總線不存在故障,但實(shí)際上地址線第1位是有故障的,因此這種檢測(cè)方式存在缺陷。
2 新設(shè)計(jì)的地址總線檢測(cè)方法
為了解決傳統(tǒng)地址總線檢測(cè)的缺陷,本文設(shè)計(jì)了一種新的方法,以下為了說(shuō)明方便,假設(shè)功能芯片為CPLD(復(fù)雜可編程邏輯器件),其總線上有8根數(shù)據(jù)線、8根地址線,如圖1所示,在CPLD中選取兩個(gè)地址0×55和0×AA,作為測(cè)試地址總線的兩個(gè)專(zhuān)用地址,選取這兩個(gè)地址的原因在前文已經(jīng)有描述,即能測(cè)試到所有地址線。
在檢測(cè)地址總線前,先進(jìn)行數(shù)據(jù)總線的檢測(cè),數(shù)據(jù)總線的測(cè)試方法在前文已經(jīng)有描述,這里不做詳細(xì)描述,在判斷數(shù)據(jù)總線沒(méi)有問(wèn)題后再開(kāi)始地址總線的檢測(cè)。
具體地址總線檢測(cè)流程如圖3所示。
以下分地址線無(wú)故障和有故障兩種情況進(jìn)行描述。
2.1 無(wú)故障情況
在無(wú)故障情況下,CPU往0×55地址發(fā)送寫(xiě)操作,寫(xiě)入第一檢測(cè)數(shù)據(jù)(假設(shè)為0×AA),CPLD收到CPU寫(xiě)0×55地址時(shí),把寫(xiě)入的第一檢測(cè)數(shù)據(jù)按位取反,作為第一參考數(shù)據(jù)(即為0×55),CPU往0×55地址發(fā)送讀操作,CPLD收到CPU的讀操作時(shí),把第一參考數(shù)據(jù)送給CPU;
CPU再往0×aa地址發(fā)送寫(xiě)操作,寫(xiě)入第二檢測(cè)數(shù)據(jù)(為0×55),第一檢測(cè)數(shù)據(jù)和第二檢測(cè)數(shù)據(jù)的相同數(shù)據(jù)位對(duì)應(yīng)的電平必須相反,CPLD收到CPU寫(xiě)0×aa地址時(shí),把寫(xiě)入的第二檢測(cè)數(shù)據(jù)按位取反,作為第二參考數(shù)據(jù)(即為0×AA),CPU往0×aa地址發(fā)送讀操作,CPLD收到CPU的讀操作時(shí),把第二參考數(shù)據(jù)送給CPU;CPU對(duì)第一參考數(shù)據(jù)(0×55)和第二參考數(shù)據(jù)(0×AA)進(jìn)行異或運(yùn)算,結(jié)果為全1,說(shuō)明地址總線無(wú)故障。
表3為地址線無(wú)故障時(shí),檢測(cè)數(shù)據(jù)和參考數(shù)據(jù)的對(duì)應(yīng)關(guān)系。
2.2 有故障情況
在有故障情況下,假設(shè)地址線第1位由于出現(xiàn)故障被強(qiáng)拉到高電平, 如表2所示,則CPU往地址0×55寫(xiě)第一檢測(cè)數(shù)據(jù)(假設(shè)為0×AA),則在CPLD端實(shí)際寫(xiě)入數(shù)據(jù)的地址為0×57,而CPLD收到CPU寫(xiě)0×57地址時(shí),是不會(huì)做取反運(yùn)算的,CPU再往0×55地址讀數(shù)據(jù)時(shí),實(shí)際上讀出的第一參考數(shù)據(jù)即為前面寫(xiě)入的數(shù)據(jù)(0×AA);
CPU往地址0×aa寫(xiě)第二檢測(cè)數(shù)據(jù)(0×55),把寫(xiě)入的第二檢測(cè)數(shù)據(jù)按位取反,作為第二參考數(shù)據(jù)(即為0×AA),CPU往0×aa地址發(fā)送讀操作,CPLD收到CPU的讀操作時(shí),把第二參考數(shù)據(jù)送給CPU;CPU對(duì)第一參考數(shù)據(jù)(0×AA)和第二參考數(shù)據(jù)(0×AA)進(jìn)行異或運(yùn)算,得到的結(jié)果為0,說(shuō)明地址總線有故障。
表4為地址線有故障時(shí),檢測(cè)數(shù)據(jù)和參考數(shù)據(jù)的對(duì)應(yīng)關(guān)系。
3 結(jié)論
本文設(shè)計(jì)了一種可靠的地址總線檢測(cè)方法,利用了特定的兩個(gè)地址(0×55和0×AA),只有當(dāng)訪問(wèn)了該特定地址時(shí),CPLD才會(huì)做按位取反運(yùn)算,訪問(wèn)其他地址,則不會(huì)進(jìn)行此操作,這樣就保證了唯一性。當(dāng)?shù)刂房偩€上某根地址線開(kāi)路或短路時(shí),則無(wú)法同時(shí)訪問(wèn)到如上兩個(gè)地址(0×55和0×AA),最終第一參考數(shù)據(jù)與第二參考數(shù)據(jù)進(jìn)行異或運(yùn)算的結(jié)果為非全1,這樣就能達(dá)到檢測(cè)地址總線的目的。
這種地址總線檢測(cè)的優(yōu)點(diǎn)如下:
(1) 可以實(shí)現(xiàn)對(duì)非存儲(chǔ)器類(lèi)功能芯片進(jìn)行地址總線的檢測(cè),能準(zhǔn)確無(wú)誤地判斷出地址總線是否存在故障。
(2) 提供的地址總線檢測(cè)方法簡(jiǎn)單高效,檢測(cè)時(shí)間非常短,尤其適合上電階段的檢測(cè)。
(3) 提供的地址總線檢測(cè)方法在硬件電路上無(wú)需外加任何器件,能避免引入器件后的不穩(wěn)定性,且成本也無(wú)需增加。
參考文獻(xiàn)
[1] 黨安明,張欽軍.傳感器與檢測(cè)技術(shù)[M].北京:中國(guó)電力出版社,2011.
[2] 數(shù)據(jù)總線[EB/OL].https://baike.so.com/doc/6148763-6361949.html.
[3] 李正軍.現(xiàn)場(chǎng)總線及其應(yīng)用技術(shù)[M].北京:機(jī)械工業(yè)出版社,2017.