瞿安連
2003年全國大學生電子設計競賽D題為《簡易邏輯分析儀》,任務是:設計并制作一個8路數字信號發生器與簡易邏輯分析儀。湖北賽區共有50個隊參加,約占賽區參賽隊總數的五分之一強,說明該題受到參賽同學的歡迎。作品中有80%以上可正常通電測試,比例大大高于上屆《簡易數字存儲示波器》一題(兩題有某些相似之處)。該題主要反映學生對數字電路和單片機方面的應用和設計能力。題目要求的結構框圖見圖1。
1.方案評述
按題目基本要求,制作分為數字信號發生器和簡易邏輯分析儀兩部分。
(1)制作數字信號發生器 約90%的通電測試參賽隊都僅用一片單片機實現了8位數字信號發生器的功能,用開關進行循環字的預置,以軟件實現循環移位。這是一個比較好的方案,因為題目要求序列時鐘頻率僅為100Hz,且負載能力要求不高,用價格極為低廉的8051系列單片機完成這項功能已綽綽有余。其余的隊則是用CPLD或中規模集成的移位寄存器實現,但效果均不如單片機方案靈活方便,性價比較低。
(2)制作簡易邏輯分析儀
微控制器系統 100%的通電測試參賽隊均采用單片機實現對系統的控制功能,且絕大部分采用8051系列的單片機,有少數使用性能更加完善的凌陽單片機系統。從功能實現上看沒有顯著差別。
8位輸入電路 題目要求:8位輸入電路的輸入阻抗大于50kΩ,其邏輯信號門限電壓可在0.25~4V范圍內按16級變化,以適應各種輸入信號的邏輯電平。
絕大部分參賽隊采用8個比較器電路同時對8路輸入信號電平分別進行比較,以確定各路輸入邏輯電平的高低。這種電路輸入電阻大于50kΩ一般不成問題。作為邏輯信號門限電壓比較的參考電壓,則方案有多種。其中半數以上使用8bit數模轉換器以程控方法進行設定;也有用電阻16級分壓,以模擬開關程控選通或波段開關選通實現的。顯然使用數模轉換器電路更簡單一些。有一個隊使用帶刻度的10圈電位器連續調整,與題目要求的“16級變化”有些偏差。上述方案在本質上沒有太大的差別和特色。
參賽隊中有一種方案對于實現本題要求(不是真正的邏輯分析儀)是具有特色的。他們采用一個8選1模擬開關和一個8bit模數轉換器,與時鐘信號同步,分別對8路邏輯信號進行模數轉換,將與邏輯電平成比例關系的數字量輸入單片機,然后在程序中用數值比較的方法確定各路邏輯電平的高低。該方案可以使電路得到簡化,并且可根據要求,分別對各個通道置入相應的邏輯信號門限電壓值,對不同邏輯電平的各通道信號分別進行比較,確定其邏輯值。
控制電路和RAM 由于微控制器系統中一般已包含RAM,根據題目要求,“每通道的存儲深度為20bit”,如果每個時鐘周期只采樣一組數據,而不采用高速數據采集的方案,則數據存儲量不大,所要求的數據處理速度也不高,所以大多數參賽隊都是將8位輸入電路所確定的邏輯信號直接輸入單片機系統,沒有另外設計結構框圖中所要求的控制電路和RAM。
實際上,真正的邏輯分析儀經常以遠高于信號變化的頻率進行高密度采樣,以發現邏輯信號中的延遲和競爭冒險現象(俗稱“毛刺”),這樣就會產生大量的數據,需要大容量的RAM及控制電路。
字觸發功能 由于題目要求“序列時鐘頻率為100Hz”,字采集的間隔時間有10ms,處理器在此時間內至少可執行數千條指令,大多數參賽隊的字觸發功能都是用軟件編程方法實現的,對實現本題的要求已足夠了。少數隊采用硬件邏輯比較方案,以FPGA實現,對于本題來說似無必要,而要實現序列時鐘頻率更高的邏輯分析儀,硬件邏輯比較才是好方案。
波形與邏輯狀態顯示 題目的基本要求:“能利用模擬示波器清晰穩定地顯示所采集到的8路信號波形,并顯示觸發點位置”,而題目發揮部分要求:“能在示波器上顯示可移動的時間標志線”。
有半數以上的參賽隊采用示波器的X-Y顯示模式,用單片機控制兩個數模轉換器分別產生模擬信號送入模擬示波器的X軸和Y軸輸入端,并在相應時間產生同步的Z軸信號以控制顯示亮度,從而得到穩定清晰的邏輯波形以及觸發點、時間標志線等。應當說這已是最佳方案。
有部分隊采用外觸發的X軸掃描模式,可省去一路數模轉換通道,觸發信號和Z軸亮度信號則由單片機同步產生。該方案雖然也可以得到穩定顯示的波形,但觸發點和時間標志只能采用在波形上添加窄脈沖或亮點的方式實現顯示,有些隊則增加一條掃描線來標志。這種方案的顯示質量明顯比X-Y模式低。此外,沒有用Y軸方向的直線或虛線來顯示“時間標志線”,也與題目要求略有距離。
時間標志線所對應時刻的8路輸入信號邏輯狀態,有些采用8個發光二極管顯示,有些則用兩位16進制數顯示,二者無本質差別,前者似乎顯示更清楚一些。
2. 問題
(1)由于絕大多數參賽者未使用過,甚至未見過邏輯分析儀,事先對它的工作原理和性能指標知之甚少,因此出現一些理解上的錯誤。例如對“三級狀態字”、 “觸發點位置”、“觸發位置可調”、“時間標志線”以及邏輯分析儀的輸入“跳接線”等,都有一些參賽隊由于理解有誤而不能做出完全正確的設計。該題的發揮也因此受到局限,例如很少有人考慮以高速采樣方式采集數據線上的邏輯狀態,以測量邏輯電路的延遲特性及發現被測邏輯電路中的競爭冒險現象和其它瞬時邏輯錯誤。
(2)在測評中,對輸入電路的門限電壓測試有很多作品不完全成功。很多參賽隊使用LM324或TL084這樣的運算放大器作輸入比較器,為了與邏輯電路接口,這些運放往往使用+5V單電源供電,因為受到共模信號輸入范圍的限制,在邏輯信號門限電壓較高的情況下,電路輸出常常沒有響應,TL084對于低于1V的門限電壓也常常失去比較能力。產生這種問題的原因也許是現行教材引起的,目前大多數教材都以“運放的非線性應用”引出比較器,從而造成一個錯覺,以為運放可作為比較器使用。實際上運放和比較器是兩種集成器件,它們的技術指標有很大差別,用運放作比較器是不妥的,原因如下:其一是運放在開環狀態下帶寬很窄,輸出對輸入信號的響應速度很慢,且輸出脈沖電壓的上升、下降沿時間很長,而集成比較器則相反,其技術指標中往往列出輸出對輸入信號的響應時間,以及輸出電壓上升、下降沿的最大時間;第二,運放通常工作于線性閉環(深度負反饋)條件下,同相輸入端和反相輸入端之間的信號電壓極小,在集成電路設計時對輸入電路的過載能力沒有留出過多的余量,因而運放做比較器使用時,若未加輸入保護電路,極易造成輸入電路損傷,而集成比較器的輸入電路遠較運放“結實”,從而適合工作在開環和輸入電壓過驅動狀態下;第三是運放不易與邏輯電路接口,TL084之類的運放尤為突出,它輸出的低電平電壓有時超過TTL電路標準所允許的低電平輸入電壓最大值,而集成比較器一般都考慮了與邏輯電路的接口問題。如果使用+5V單電源供電,正確的選擇應當是采用具有Rail-to-Rail輸入特性的集成比較器。如果采用LM339這樣老式的比較器,則電源電壓應高于+5V才能使輸入共模信號電壓范圍(比較電壓范圍)高于4V,可靠達到題目所要求的指標。這時,LM339集電極開路輸出電路的上拉電阻應接在邏輯電路電源的+5V上。
(3)在湖北賽區,本題目的基本模塊設計大多雷同,缺乏能使人興奮的創新和特色,從而有很多參賽隊的作品測試成績相近。題目本身的特點決定了其測評項目大多是功能的有無,而不是作品達到指標的水平,這也給測試成績的拉開造成困難。
(4)有些作品設計過于“豪華”,使用多片高檔單片機、大容量雙口RAM、大屏幕液晶顯示器、大容量FPGA等硬件構成一個龐大系統。有的作品竟需要6路穩壓電源供電,而又有些作品外加語音提示,紅外遙控等功能,而邏輯分析儀本身應具備的特性和功能卻未見提高。更令人奇怪的是,有些作品中出現一些微處理機外圍器件閑置不用的現象。如此設計背離了工程設計的基本原則,脫離了實際。縱觀歷次競賽,作品的“豪華”程度有增無減,這也使參賽學校的競賽成本大幅度提高,經濟上不堪重負。希望今后競賽中能適當考慮作品的性能/價格比,將其作為評審的指標之一。
上述測評分析,僅是印象較深的部分內容,沒有相關作品原稿作參考,并且是從個人角度觀察得出的意見,難免偏頗,不妥之處敬請讀者提出。筆者的email地址為:alqu@mail.hust.edu,熱切期待著與同行們的交流。