Global Sources
電子工程專輯
 
電子工程專輯 > EDA/IP
 
 
EDA/IP  

EE人生:你是否也曾不小心挖個洞給自己跳?

上網時間: 2011年12月02日     打印版  Bookmark and Share  字型大小:  

關鍵字:pSOS  VMEBus  FDDI  BIT  延遲編程 

在我擔任軟硬體工程師的生涯中,曾被指派過一項任務是為一款多年前所做的設計決定導致其後的意外結果進行除錯。當時我們採用的是執行於 pSOS 即時作業系統(RTOS)上的 VMEBus 系統。這種系統使用「光纖分佈式數據介面」(FDDI)網路架構,加上其獨特的系統配置,我們認為如果能在系統上執行某種內建自測試(BIT)應該是個不錯的辦法。

9年後,我們合作的 CPU 板製造商決定為其產品系列進行改款。忽然間,我們原有的 FDDI BIT 測試開始出現問題了。由於我記得這家供應商實際上供應這種 BIT (內建於電路板卡內的韌體),因而我對這部份抱持強烈的懷疑。

我們公司自行編寫的 BIT 測試執行程式用於啟動測試,等過了一段時間後,再讀取狀態暫存器以確認是否通過測試。其實我自己也已經使用VMEBus分析器watchful eye測試過了。我一開始進行測試就發現錯誤,隨即讀取狀態暫存器後就看到測試通過了!

但在這個節骨眼上,我察覺到事情有點不太對勁。我將 VMEBus 分析器改變為非同步模式並執行 BIT ,同時交換新舊 CPU 板。一開始,我注意到新的 CPU 執行一個 VMEBus 讀取的時間大約只需要舊 CPU 讀取時間的60%。然後,我又發現 BIT 測試執行程式仍不斷地讀狀態暫存器。

最後我終於完成軟體部份並證實了原先的懷疑: BIT 測試執行程式正執行一個讀取迴路,固定次數地不斷讀取狀態暫存器,然後再與測試通過(pass)的狀態進行比較。由於新的 CPU 速度更快,它在FDDI卡完成其BIT測試之前就已經完成了n次的讀取次數。

我想你可能會說這不就是個「延遲編程」(lazy programming)的問題嗎?反正你還是得讀取暫存器啊!那麼為什麼不乾脆直接讀取“n”次呢?其實,還有一個更好的辦法就是「等待」(WAIT),利用 pSOS 內建測試的時間或甚至遞減CPU暫存器:這是一種相當可靠的技術,因為時間間隔是基於CPU時脈速度,而非介面速度。不過,真的這麼做的話,千萬也別忘了建檔(Document)!那麼以後像我這樣的可憐蟲就不必非得連續工作好幾個禮拜才找到問題的癥結了!

編譯:Susan Hong

(參考原文:FDDI built-in test,by Dwight Bues)





投票數:   加入我的最愛
我來評論 - EE人生:你是否也曾不小心挖個洞給自己...
評論:  
*  您還能輸入[0]個字
*驗證碼:
 
論壇熱門主題 熱門下載
 •   將邁入40歲的你...存款多少了  •  深入電容觸控技術就從這個問題開始
 •  我有一個數位電源的專利...  •  磷酸鋰鐵電池一問
 •   關於設備商公司的工程師(廠商)薪資前景  •  計算諧振轉換器的同步整流MOSFET功耗損失
 •   Touch sensor & MEMS controller  •  針對智慧電表PLC通訊應用的線路驅動器
 •   下週 深圳 llC 2012 關於PCB免費工具的研討會  •  邏輯閘的應用


EE人生人氣排行
 
返回頁首