華國環(huán), 徐瀚文, 桑春洋, 張文鋒
(南京信息工程大學(xué)電子與信息工程學(xué)院,南京 210044)
為了順利開展數(shù)字電子技術(shù)實驗課程[1],各開設(shè)此課程的高校每年都會大量采購數(shù)字邏輯芯片。由于學(xué)生各種不符合規(guī)范的操作,實驗室內(nèi)不完備的實驗設(shè)施,維護人員不合理的存儲方式,都會導(dǎo)致數(shù)字邏輯芯片出現(xiàn)故障。同時數(shù)字邏輯芯片故障檢測設(shè)備又缺乏,導(dǎo)致數(shù)字邏輯芯片的重復(fù)使用率很低。學(xué)生在實驗過程中出現(xiàn)的問題,很大一部分原因是因為使用了功能損壞的芯片[2]。本文設(shè)計的新型數(shù)字芯片故障檢測儀能夠方便、快捷地驗證芯片的好壞,并準確定位芯片的故障引腳。該檢測儀利用芯片內(nèi)部各引腳的ESD保護機制,配合霍爾電流線圈檢測芯片的短路和開路故障。同時根據(jù)芯片的功能定義,由MCU提供相應(yīng)的激勵信號,然后通過芯片的輸出響應(yīng)是否正確判斷其有無邏輯故障,并且能實時將檢測結(jié)果顯示在與其連接的LCD液晶屏或電腦端系統(tǒng)上,直觀地呈現(xiàn)給用戶[3]。
本文數(shù)字芯片故障檢測儀主要檢測數(shù)字芯片兩類故障:①芯片各引腳與VDD和VSS之間存在短路和斷路故障;②芯片內(nèi)部邏輯功能發(fā)生錯誤。主要利用芯片內(nèi)部ESD泄放二極管工作原理及故障字典法進行檢測。
ESD(Electro-Static Discharge)即是靜電釋放現(xiàn)象,處在不同電位的兩物體之間,因為近距離接觸或相互接近而導(dǎo)致的電荷轉(zhuǎn)移,此靜電場內(nèi)電子設(shè)備會因此產(chǎn)生故障或進行誤動作[4]。
本文主要利用ESD泄放二極管工作原理,即在芯片內(nèi)部每一個引腳上都串接兩個特別設(shè)計的二極管。在芯片引腳上的信號電壓幅值介于VDD和GND之間時,這兩個二極管是截止?fàn)顟B(tài),不影響芯片的正常運行;當(dāng)ESD現(xiàn)象發(fā)生時,芯片引腳上的信號會通過這兩個二極管的導(dǎo)通來把過高或者過低的脈沖電壓泄放到VDD或者GND上,從而保護芯片內(nèi)部的電路。當(dāng)高脈沖電壓消失,泄放二極管恢復(fù)截止?fàn)顟B(tài),芯片恢復(fù)正常工作[5-6]。數(shù)電實驗教學(xué)活動中日常使用的芯片以14/16引腳居多,根據(jù)上述原理,芯片內(nèi)部的ESD保護二極管電路可簡化如圖1所示。

圖1 ESD保護電路簡化圖
根據(jù)芯片內(nèi)部各引腳的ESD泄放原理,可以判斷芯片的引腳是否與芯片的VDD引腳、VSS引腳之間存在短路或者開路故障。將芯片的被測引腳與輸出低電平的端口相連,VDD引腳與輸出高電平的端口相連。芯片正常工作時,被測引腳與VDD腳間的二極管D1反接,二極管D1截止,此時流經(jīng)被測引腳的電流微乎其微。當(dāng)被測引腳存在大電流時,說明被測引腳與VDD端之間發(fā)生短路故障。判斷芯片的各引腳與VDD端是否發(fā)生開路故障,是將被測引腳與輸出高電平的端口相連,VDD引腳與輸出低電平的端口相連。由于此時D1是正向?qū)ǖ模粶y引腳上存在較大電流。當(dāng)被測引腳上沒有電流經(jīng)過時,即說明被測引腳與VDD端之間發(fā)生開路故障[7]。基于同樣方法,可以判斷被測引腳與VSS引腳之間是否存在短路或開路故障。
流過待測引腳上的電流值需要使用霍爾傳感器來采集。該傳感器基于霍爾效應(yīng),內(nèi)部產(chǎn)生的電勢差與通過霍爾閉環(huán)線圈的電流大小成正比。
故障字典法是指在同等測試條件下,對比電路發(fā)生故障和正常運行時的情況,得到電路發(fā)生故障時的特征,即故障特征集。因此,應(yīng)先分別提取芯片引腳發(fā)生短路、斷路及芯片內(nèi)部邏輯錯誤這3種故障的故障特征集[8]。短路、斷路特征集的生成流程如圖2所示。取同一型號的具有短路故障、斷路故障的數(shù)字芯片和正常工作的數(shù)字芯片若干枚,根據(jù)上文中判斷是否發(fā)生短路或者斷路的方案,比對分析由霍爾閉環(huán)線圈產(chǎn)生的輸出電動勢,選取合適的閾值,作為故障特征集[9]。

圖2 提取短路、斷路故障字典流程圖
芯片內(nèi)部邏輯錯誤故障特征集的生成流程如圖3所示。取同一型號的發(fā)生內(nèi)部邏輯錯誤的數(shù)字邏輯芯片和正常工作的數(shù)字邏輯芯片若干枚,根據(jù)芯片的功能定義及芯片數(shù)據(jù)手冊推得芯片的輸入激勵,也稱為測試集。將測試集分別輸入到故障芯片和正常芯片中分別生成故障響應(yīng)和結(jié)果集[10]。對比兩者,即可提取芯片發(fā)生內(nèi)部邏輯錯誤時的故障特征集。

圖3 提取內(nèi)部邏輯錯誤故障字典流程圖
根據(jù)上述原理和測試方法可知,需要將被測引腳和VDD引腳(或VSS引腳)分別與輸出測試電平的端口連接,此時其他的無關(guān)引腳應(yīng)該處于懸空的狀態(tài),防止引腳之間相互干擾。為了達到此目的,即需要待測芯片所有引腳都能夠在高電平、低電平和懸空3種狀態(tài)之間切換。本設(shè)計選用的STM32F103系列MCU芯片,具有64個I/O口,完全滿足設(shè)計需求。此外該芯片功耗低、性價比高、應(yīng)用廣泛,運行速度快,其時鐘頻率最高可達到72 MHz,還集成了許多常用外圍設(shè)備及接口電路[11]。根據(jù)上述原理要求芯片各引腳切換的3種狀態(tài)都可以通過程序控制I/O口的各種輸入輸出模式來實現(xiàn)。
如圖4所示,本文設(shè)計的數(shù)字芯片故障檢測儀包含以下模塊:以STM32F103系列MCU作為主控部分的微處理器模塊;通過鋰電池供電、升壓芯片、降壓芯片等實現(xiàn)供電及轉(zhuǎn)換電壓功能的電源模塊;由繼電器、多通道開關(guān)選擇、霍爾電流傳感器組成的故障檢測模塊以及包含電腦端上位機和下位機的人機交互模塊。

圖4 硬件部分組成
出于該儀器的便攜性考慮,將鋰電池作為供電電源。由于本檢測儀目標(biāo)檢測的數(shù)字芯片主要是74系列和CD系列,芯片內(nèi)部工作電壓在2~6 V之間不等,統(tǒng)一使用5 V作為芯片檢測時的測試電壓,目的是減少設(shè)計成本,使用ME2188A50芯片使得電源電壓穩(wěn)定輸出5 V。另外該檢測儀的STM32F103系列主控芯片工作電壓是3.3 V,需要使用AMS1117線性穩(wěn)壓芯片將5 V轉(zhuǎn)換為3.3 V。
2.2.1 繼電器部分設(shè)計
數(shù)字芯片的兩個特殊引腳為VDD引腳和VSS引腳,不僅需要能夠由程序控制在高電平、低電平和懸空3種模式狀態(tài)之間進行切換,同時還需要檢測這兩個引腳上的電流大小,尋常芯片引腳承受大電流的能力有限,因此使用繼電器來通過較大的電流。
繼電器選用高性價比的HK4100F型號。1個繼電器類似于2選1控制模塊,分別使用2組繼電器作用于芯片的VDD腳和VSS腳,通過程序控制繼電器的吸合和未吸合狀態(tài)來實現(xiàn)3種狀態(tài)的切換[12-13]。
根據(jù)STM32F103芯片手冊,芯片單個I/O口的驅(qū)動輸出電流最大不超過8 mA,無法直接驅(qū)動繼電器正常工作,因此本設(shè)計選用最大驅(qū)動電流達500 mA的復(fù)合晶體管芯片ULN2003來保證繼電器正常工作。
2.2.2 多通道選擇部分設(shè)計
以16個引腳的數(shù)字芯片為例,除去VDD腳和VSS腳,還有14個引腳需要檢測,采用上文設(shè)計方法,仍需28個繼電器才能實現(xiàn),這會使得設(shè)計成本過高,檢測儀的電路板過于臃腫降低了便捷性。因此本設(shè)計使用74HC595芯片、三極管及排阻組合成多通道選擇電路模塊。
當(dāng)測試數(shù)字芯片的某個引腳時,選用74HC595的兩個輸出引腳分別連到一個PNP型三極管和一個NPN型三極管的基極上,并且將兩個三極管串接在一起,它們的集電極和數(shù)字芯片的引腳相連。利用三極管的通斷,數(shù)字芯片的引腳可實現(xiàn)3種狀態(tài)的切換。如果數(shù)字芯片的全部引腳都由STM32的I/O口控制,則需要28個I/O管腳,這會增加MCU的資源消耗。使用具有8位并行輸出的74HC595芯片可以解決此問題。具體方法是將4片74HC595芯片的SDI端和SCLK端各自相連,分別由MCU的兩個I/O去控制,通過控制LOAD端的電平變化來實現(xiàn)數(shù)字芯片引腳狀態(tài)的切換[14-15]。此設(shè)計方案只需要6個MCU的I/O引腳就能夠控制數(shù)字芯片所有引腳的狀態(tài),極大的提高了檢測儀中各芯片的利用率,節(jié)約了設(shè)計成本。
2.2.3 不同引腳數(shù)目的數(shù)字芯片選擇切換設(shè)計
由于該檢測儀主要針對14腳和16腳的數(shù)字邏輯芯片,查閱實驗室常用芯片資料可知,兩類芯片的VDD端都是右上方第一個引腳,但是14腳芯片VSS端在7腳,16腳芯片VSS端在8腳。按照上對齊原則放置芯片時,使得兩類芯片的VDD腳對齊,但VSS腳無法在同一位置。為節(jié)約設(shè)計成本,提高電路板資源利用率,本設(shè)計中采用的是16引腳的IC底座,選用SGM3157單路模擬開關(guān)芯片來實現(xiàn)數(shù)字芯片的7引腳和8引腳連接GND的切換。
2.2.4 霍爾傳感器部分設(shè)計
完成芯片選擇及引腳選擇部分的設(shè)計后,需要使用霍爾電流傳感器負責(zé)確定流過待測引腳的電流值。本設(shè)計的采用霍爾電流傳感器產(chǎn)品型號為HBCLSP6A。查閱該型號傳感器資料可知,該傳感器產(chǎn)生的輸出電動勢Uout與通過閉環(huán)線圈中心通孔的電流值之間的計算公式如下[16]:

式中:Ip是霍爾傳感器的最大測量電流;電流I為流經(jīng)傳感器中心通孔的電流值,其電流方向決定正負。
本設(shè)計的人機交互模塊由一塊128×64分辨率的點陣LCD屏、輕觸式開關(guān)按鍵、主控芯片的UART串口通信部分及電腦端顯示軟件構(gòu)成。
本文開發(fā)設(shè)計的數(shù)字芯片故障檢測儀的實物圖如圖5所示。

圖5 數(shù)字芯片故障檢測儀實物圖
數(shù)字芯片故障檢測儀的內(nèi)部系統(tǒng)軟件部分由電腦端模塊和下位機模塊構(gòu)成。軟件程序主要由3部分組成:數(shù)字芯片各個引腳電壓數(shù)據(jù)采集程序、數(shù)字芯片故障判斷程序以及人機交互程序。利用STM32F103系列MCU內(nèi)置的12位ADC進行數(shù)字芯片的各個引腳電壓數(shù)據(jù)采集。數(shù)字芯片故障判斷程序分為短路檢測、開路檢測和邏輯功能檢測。
完成短路檢測所需流程:首先利用故障字典法生成短路故障特征集,根據(jù)圖2的步驟,分別取正常芯片和有短路故障的芯片各50枚,然后讀取霍爾閉環(huán)線圈輸出的電動勢。對全部正常芯片進行測試,讀取電動勢輸出范圍在2.49~2.51 V之間;測試與VDD腳存在短路故障的芯片,得到電動勢輸出范圍在2.71~2.96 V之間。按照同樣方法操作,配合霍爾模塊可知與VSS腳發(fā)生短路故障的芯片被采集到的輸出電動勢范圍在2.17~2.32 V之間,分析數(shù)據(jù)發(fā)現(xiàn)芯片由霍爾閉環(huán)線圈采集到的輸出電動勢以2.5 V為標(biāo)準,電動勢波動范圍在0~0.01 V間;與VDD腳/VSS腳發(fā)生短路故障的芯片電動勢波動范圍在0.18~0.46 V間。芯片檢測短路故障時,當(dāng)由霍爾模塊采集到的輸出電動勢波動范圍在0.1 V以內(nèi),判斷芯片正常,不在此范圍時,判斷芯片發(fā)生短路故障[7]。
基于相同原理檢測正常芯片和存在引腳與VDD端、GND端之間發(fā)生開路的芯片,分析數(shù)據(jù)提取芯片的開路故障特征集,通過與開路故障特征集比較,判斷芯片是否發(fā)生開路故障。
完成邏輯功能檢測所需步驟:根據(jù)圖3步驟,利用故障字典法生成芯片發(fā)生內(nèi)部邏輯錯誤時的故障特征集。根據(jù)芯片的功能定義及芯片數(shù)據(jù)手冊推得芯片的輸入激勵,由MCU提供相應(yīng)的輸入激勵信號給數(shù)字芯片,比對數(shù)字芯片的輸出響應(yīng)與芯片內(nèi)部邏輯錯誤故障特征集,判斷芯片是否發(fā)生邏輯功能錯誤。
完整的芯片故障檢測流程圖6所示。

圖6 芯片故障檢測流程
電腦端模塊負責(zé)發(fā)送、接收數(shù)據(jù)以及顯示芯片檢測結(jié)果。本文基于Qt Creator開發(fā)環(huán)境設(shè)計了一個電腦端系統(tǒng),其中包含多級菜單和窗口,使得用戶能直接進行芯片型號的選擇。數(shù)字邏輯芯片檢測電腦端界面如圖7所示。

圖7 電腦端主界面
儀器上電運行后,首先進行系統(tǒng)的初始化,隨后對芯片進行自動識別或手動選擇芯片,之后等待按鍵響應(yīng),進行芯片的故障檢測。芯片被檢測完成之后,系統(tǒng)輸出檢測結(jié)果并進入低功耗狀態(tài)。STM32單片機具有超低功耗的特點,當(dāng)儀器沒有收到檢測命令時,始終以低功耗模式運行,大幅降低儀器功耗。流程圖如圖8所示。

圖8 軟件運行流程圖
功能測試部分依次測試芯片類型的選擇與自動識別、芯片正常工作時檢測結(jié)果顯示、芯片發(fā)生短路或斷路及邏輯功能故障時。
(1)芯片類型的選擇和識別。用戶使用該儀器不僅可通過上下按鍵選擇74LS00和CD系列的芯片類型,使用確認按鍵進入下一級菜單,還可以選擇自動識別模式,讓系統(tǒng)對芯片類型進行自主識別。設(shè)計的二級菜單如圖9所示。

圖9 芯片型號選擇
選用正常的74LS00芯片在該檢測儀上進行檢測,選擇圖9菜單中的自動識別模式,LCD液晶屏上顯示檢測結(jié)果如圖10所示。

圖10 LCD屏顯示芯片正常工作
若在程序中將74LS00的檢測序列改為空,復(fù)位儀器,對芯片重新進行檢測,在LCD顯示屏和電腦端的顯示結(jié)果都為“芯片未識別”。
(2)芯片故障檢測功能測試。為了測試該檢測儀的功能,將74LS00芯片的3引腳折斷,隨后用該芯片進行測試,檢測結(jié)果在LCD液晶屏和電腦端上顯示圖分別如圖11所示。

圖11 LCD屏顯示芯片發(fā)生斷路及故障引腳
經(jīng)過測試,芯片發(fā)生短路故障和內(nèi)部邏輯故障時,同樣能被該檢測儀及時檢測出來,檢測顯示結(jié)果如圖11所示。
由于在數(shù)字電子技術(shù)實驗中對各類儀器有3個基本要求,即低功耗運行、便攜式操作、長時間待機。使用直流電源給檢測儀供電,直流電源輸出電壓設(shè)置為4 V,記錄其功耗。在待機狀態(tài)下工作電流為0.09 A,待機功耗0.36 W;在工作狀態(tài)下最大電流為0.16 A,最高功耗0.64 W。數(shù)據(jù)表明,該儀器的運行功耗和待機功耗都很低,完全滿足數(shù)字電子技術(shù)實驗教學(xué)課程中的要求。
取100枚正常芯片和50枚故障芯片,使用本檢測儀分別進行測試,以此來驗證檢測儀的正確率。測試結(jié)果如表1所示。

表1 數(shù)字芯片故障檢測儀準確率測試
從表1多次測量的結(jié)果可以看出,本檢測儀可在短時間內(nèi)完成對待測芯片的檢測,在3 s內(nèi)即可判斷該芯片是否發(fā)生故障。該檢測儀在檢測正常芯片時出現(xiàn)了極少數(shù)的判斷錯誤,除此之外檢測準確率高達99.6%。結(jié)合測試結(jié)果分析出錯原因是:在檢測過程中,霍爾模塊產(chǎn)生的輸出電動勢剛好在確定的閾值臨界處,導(dǎo)致檢測儀無法正常判斷。這種情況很可能是由于芯片使用時間過長,使用次數(shù)過多。如果進行故障特征字典提取時能使用更多的故障芯片標(biāo)本,檢測儀的正確率會更高。
針對各個高校數(shù)字電子技術(shù)實驗課程開展過程中出現(xiàn)的數(shù)字芯片損壞率高,重復(fù)使用率低等問題,本文設(shè)計出一種數(shù)字芯片故障檢測儀。該檢測儀的具體功能為通過自動識別功能來檢測未知型號的芯片或自主選擇74LS00系列和CD系列的芯片,可檢測被儀器自主識別或被人工選中的14/16引腳的數(shù)字邏輯芯片的短路、斷路和邏輯功能故障,并且定位芯片的故障引腳。該檢測儀利用芯片內(nèi)部各引腳的ESD保護二極管機制,配合霍爾傳感器來判斷芯片是否存在短路和開路故障;同時根據(jù)芯片的功能定義,由MCU產(chǎn)生相應(yīng)的激勵信號,然后通過芯片的輸出響應(yīng)是否正確來判斷其有無邏輯故障,并且能實時將故障類型和故障位置顯示在與其連接的LCD液晶屏或電腦端系統(tǒng)上,直觀的呈現(xiàn)給用戶。該檢測儀具有人機交互界面友好、體積小巧便于攜帶、成本低廉、運行功耗低、準確率高、檢測速度快等優(yōu)點。該檢測儀在高校數(shù)字電路實驗室的日常管理和維護方面具有很高的應(yīng)用價值,實驗室維護人員能夠利用此儀器及時的排查出故障芯片,對故障芯片和正常芯片進行區(qū)分、維修,減少誤用率。在高校采購數(shù)字芯片過程中,可當(dāng)作芯片選擇和質(zhì)量檢測的便捷工具。在數(shù)字電子技術(shù)實驗教學(xué)過程中,該檢測儀能夠確保學(xué)生進行實驗期間不會使用到功能損壞的數(shù)字邏輯芯片,避免學(xué)生在不知情的情況下使用已損壞芯片,提高實驗的成功率,也大幅提高了教師在數(shù)電實驗教學(xué)中的教學(xué)效率,提升了教學(xué)效果,值得在各個開設(shè)電子信息專業(yè)的高校中推廣使用。