尹冀波
(中國電子科技集團(tuán)公司第四十七研究所,沈陽 110032)
COM即組件對(duì)象模型,是一種跨應(yīng)用和語言共享二進(jìn)制代碼的方法。COM對(duì)象在內(nèi)存中表現(xiàn)為組件對(duì)象類CoClass的一個(gè)實(shí)例,該對(duì)象保持它們自己的引用計(jì)數(shù),當(dāng)引用計(jì)數(shù)為零時(shí),COM對(duì)象將自己從內(nèi)存中釋放。在實(shí)際的工程項(xiàng)目中,可以根據(jù)COM客戶機(jī)-服務(wù)器的應(yīng)用方法,建立適合需求的架構(gòu)模型。
芯片試驗(yàn)具有需要處理的信息量大、快速響應(yīng)、并行數(shù)據(jù)計(jì)算的特點(diǎn)。根據(jù)上述特點(diǎn),選取COM作為試驗(yàn)的工程架構(gòu),配合C8051F340微處理器為核心的硬件電路,組成了完整的芯片試驗(yàn)平臺(tái)。
在芯片試驗(yàn)過程中,芯片的電流曲線能夠反映出該芯片對(duì)于外界所施加影響而產(chǎn)生的內(nèi)部物理結(jié)構(gòu)變化。根據(jù)這種情況,可以使用OpenGL專業(yè)級(jí)的COM繪圖組件來繪制電流實(shí)時(shí)變化波形,該組件給圖形統(tǒng)計(jì)和動(dòng)態(tài)圖形顯示提供了比較好的解決方案,如圖1所示。
圖1 電流波形動(dòng)態(tài)圖表
系統(tǒng)需要實(shí)時(shí)監(jiān)測芯片的A型電流、B型電流、C型電流。當(dāng)外界施加影響之后,A型電流、B型電流會(huì)首先出現(xiàn)攀升以及持續(xù)的增長,到達(dá)一定域值后產(chǎn)生階越性跳變。針對(duì)這樣的需求,在系統(tǒng)中設(shè)計(jì)一個(gè)電源管理COM組件,用于監(jiān)管電源電壓和電流門限域值。
命令控制以及硬件反饋消息組成了本系統(tǒng)的信息鏈路。用戶下達(dá)的命令包括:輸出電壓、電流上限值、測試啟動(dòng)、片選、復(fù)位以及其它控制。上述命令提交給電源組件,由電源管理COM組件負(fù)責(zé)命令解析和命令重新打包,提交給通信組件,再由通信組件向電源下達(dá)指令。
硬件電路檢測到芯片功能參數(shù)的變化,生成芯片消息,上傳至芯片COM組件。芯片組件進(jìn)行消息解析和消息打包,提交到控制臺(tái)。
消息幀格式如表1所示。
表1 消息幀格式
MD:主設(shè)備標(biāo)識(shí);VD:子設(shè)備標(biāo)識(shí);FI:A型電流;SI:B型電流;EI:C型電流;FV:A型電壓;SV:B型電壓;EV:C型電壓。
命令幀格式如表2所示。
表2 命令幀格式
MD:主設(shè)備標(biāo)識(shí);VD:子設(shè)備標(biāo)識(shí);VC:電壓命令;IC:電流命令;EC:緊急命令;GC:附加命令。
用于芯片測試的硬件邏輯電路以C8051F340微處理器為核心,由通信電路、穩(wěn)壓電路、邏輯電路、繼電器組合電路以及待測芯片組共同構(gòu)成。硬件電路邏輯框圖如圖2所示。
圖2 硬件電路邏輯圖
本系統(tǒng)的軟件構(gòu)建基于COM架構(gòu),控制臺(tái)與COM組件的結(jié)構(gòu)圖如圖3所示。
圖3 軟件架構(gòu)圖
(1)防止同一程序多次啟動(dòng),創(chuàng)建自定義編輯框,設(shè)定多個(gè)編輯框的初始值,設(shè)定模塊管理智能指針,設(shè)定電源模塊通信智能指針,啟動(dòng)電源模塊,創(chuàng)建電源模塊的事件連接點(diǎn),通道模塊初始化,設(shè)置邏輯,創(chuàng)建通道圖表,初始化通道圖表,繪制通道的初始圖表。
(2)啟動(dòng)測量電流,向電源模塊下達(dá)啟動(dòng)測量電流的命令,啟動(dòng)繪圖的定時(shí)器,設(shè)置邏輯,向電源模塊下達(dá)關(guān)閉測量電流的命令,關(guān)閉繪圖的定時(shí)器,向電源模塊發(fā)出停止記錄的命令。
(3)向電源模塊下達(dá)啟動(dòng)電源輸出的指令,設(shè)置邏輯,向電源模塊下達(dá)關(guān)閉電源輸出的指令,向電源模塊下達(dá)命令,停止檢測電流,向電源模塊下達(dá)命令,停止記錄,停止定時(shí)器,停止繪圖。
(4)獲取自定義編輯框的內(nèi)容,提示用戶確認(rèn),向電源模塊下達(dá)輸出參數(shù)的命令。根據(jù)通道號(hào),選擇處理函數(shù)。提示用戶,更新電流變量數(shù)值。
(1)工作線程啟動(dòng),創(chuàng)建同步對(duì)象,創(chuàng)建設(shè)備事件的連接點(diǎn),創(chuàng)建針對(duì)設(shè)備的智能指針,通過智能指針主動(dòng)獲取設(shè)備的當(dāng)前狀態(tài),釋放智能指針,建立Map表,Agency初始化,置設(shè)備的當(dāng)前狀態(tài)為準(zhǔn)備就緒。
(2)設(shè)置與通信模塊的智能指針,設(shè)置與通信模塊的連接點(diǎn),初始化模塊。區(qū)分消息來自于哪一個(gè)通道,檢測電流是否達(dá)到上限。記錄電流達(dá)到上限,停止定時(shí)器,下達(dá)關(guān)閉電源輸出命令,向控制臺(tái)報(bào)告。
(3)尋找回調(diào)指針,向控制臺(tái)的連接點(diǎn)相應(yīng)接口轉(zhuǎn)發(fā)消息。向通信模塊發(fā)出開啟電源輸出的命令。重置代理變量,向電源下達(dá)輸出參數(shù)。啟動(dòng)定時(shí)器,每隔固定時(shí)間發(fā)送一次電流監(jiān)測命令。
(1)全局初始化,打開通信接口,啟動(dòng)接收發(fā)送線程,啟動(dòng)分發(fā)線程。在接收發(fā)送線程中,如果發(fā)送隊(duì)列不為空,則發(fā)送動(dòng)作為真。
(2)從發(fā)送隊(duì)列提取命令,向通信接口發(fā)送該命令。如果讀取通信接口消息不為空,將該消息放入分發(fā)隊(duì)列,激活分發(fā)事件。
本系統(tǒng)固件使用ANSI C進(jìn)行編寫,編譯完成后的文件通過JTAG下載到C8051F340微處理器的FLASH區(qū)域。
固件流程如下:
(1)關(guān)閉看門狗,UART初始化,端口初始化,晶振初始化。
(2)中斷初始化以及相應(yīng)的中斷處理。
(3)啟動(dòng)主程序循環(huán),監(jiān)聽中斷消息,判斷并處理統(tǒng)計(jì)指令、查詢指令、啟動(dòng)指令和復(fù)位指令。
該芯片試驗(yàn)方法經(jīng)過改進(jìn),可以應(yīng)用在以X86為核心處理器的嵌入式開發(fā)系統(tǒng)中,與待測芯片的連接方式改為PCI104總線方式。
[1]李朝青.單片機(jī)原理及接口技術(shù)[M],北京:北京航空航天大學(xué)出版社,1999.
[2]潘愛民.COM原理與應(yīng)用[M].北京:清華大學(xué)出版社,2000.
[3]劉曉華.精通MFC[M].北京:電子工業(yè)出版社,2003.
[4]PST-PSS-PSH Programmer Manual[M].GoodWill Company,2005.