林龍森
在數(shù)字信息化社會,信號檢測分析設(shè)備對數(shù)字系統(tǒng)的研發(fā)起著相當(dāng)重要的作用.特別是示波器和邏輯分析儀,示波器主要側(cè)重于觀察信號以及測量波形的獨(dú)立參數(shù),但是很難實(shí)現(xiàn)多路信號的同步分析和觸發(fā)采集.邏輯分析儀具有多通道的復(fù)雜觸發(fā)功能,能夠?qū)π盘枙r(shí)序的同步工作狀態(tài)進(jìn)行綜合分析,但其波形顯示和參數(shù)測量功能又顯不足.因此,僅有示波器已不能滿足需求,“邏輯分析儀+示波器”的配置在數(shù)字產(chǎn)品設(shè)計(jì)和維護(hù)中應(yīng)用范圍廣[1-2],但配置兩臺儀器成本高、體積大、攜帶不方便,且測試接口不統(tǒng)一,影響了產(chǎn)品的開發(fā)維護(hù)效率.
本文設(shè)計(jì)了一臺簡易的邏輯分析儀,檢測需要進(jìn)行邏輯分析的多路時(shí)序信號,并利用示波器的X-Y模式,配合示波器本身的調(diào)節(jié)功能,將示波器的液晶作為邏輯分析儀的主顯示器.系統(tǒng)整合了示波器和邏輯分析儀兩臺儀器,在節(jié)省成本和不增加額外設(shè)施設(shè)備的基礎(chǔ)上實(shí)現(xiàn)了簡易的邏輯時(shí)序分析功能.
系統(tǒng)將多路邏輯輸入信號轉(zhuǎn)入示波器顯示,因此,與示波器的接口是整個(gè)系統(tǒng)的核心之一.系統(tǒng)利用示波器的X-Y模式使示波器能夠顯示邏輯分析儀的多路信號分析結(jié)果.X-Y模式是獨(dú)立的動(dòng)態(tài)點(diǎn)掃描模式,X、Y通道分別對應(yīng)顯示的X軸和Y軸,顯示內(nèi)容由X、Y通道接入的電壓決定.設(shè)計(jì)的邏輯分析儀能夠接入示波器,利用示波器的X-Y模式同時(shí)顯示基于公共同步時(shí)鐘的外部8 路邏輯時(shí)序信號.為了指示方便,示波器能夠顯示一條豎線,用于定位和顯示各個(gè)邏輯狀態(tài)(狀態(tài)字).系統(tǒng)能夠?qū)壿嫊r(shí)序進(jìn)行觸發(fā)設(shè)置、狀態(tài)字讀取等操作.
邏輯分析儀主要由控制處理單元、顯示單元和信號掃描驅(qū)動(dòng)模塊組成.控制處理單元讀入8 路信號的邏輯時(shí)序,并輸出處理后的掃描信號和控制信號給掃描驅(qū)動(dòng)模塊.掃描驅(qū)動(dòng)模塊負(fù)責(zé)將接收到的信號送示波器顯示.示波器不能顯示、難以顯示的內(nèi)容由邏輯分析儀的液晶顯示,包括時(shí)鐘頻率、觸發(fā)狀態(tài)、觸發(fā)字、狀態(tài)字等.顯示部分也由獨(dú)立的單片機(jī)控制.提供了液晶界面后,不僅豐富了整個(gè)產(chǎn)品的顯示內(nèi)容,也提高了用戶人機(jī)交互體驗(yàn).由于邏輯分析儀的波形顯示內(nèi)容多,示波器顯示的方案能整合并充分利用現(xiàn)有資源,避免使用價(jià)格昂貴的大型TFT 顯示屏[3].因此,系統(tǒng)采用示波器作為主顯示器(圖1).同步時(shí)鐘信號clock 作為工作基準(zhǔn),需要將其引入主要的控制單元和示波器信號掃描驅(qū)動(dòng)模塊.控制處理單元和顯示單元均采用宏晶科技STC8 單片機(jī)實(shí)現(xiàn)控制,該系列機(jī)型功能多、適用的場合廣[4],能夠滿足系統(tǒng)要求.控制處理單元包括按鍵讀取、時(shí)序邏輯輸入輸出以及掃描驅(qū)動(dòng)控制,并和顯示單元通信.顯示單元主要包括液晶顯示電路、按鍵電路和LED 指示電路.
圖1 整體系統(tǒng)框圖
系統(tǒng)采用的示波器X-Y點(diǎn)掃描模式需要有專門的掃描和驅(qū)動(dòng)使顯示內(nèi)容清晰、穩(wěn)定.X、Y兩個(gè)通道都需要根據(jù)顯示內(nèi)容設(shè)計(jì)獨(dú)立的掃描和驅(qū)動(dòng)電路.
X通道需要產(chǎn)生一個(gè)斜升鋸齒波,作為示波器的信道掃描信號,該信號斜升曲線要平直,下降邊沿要陡峭,使得示波器掃描出的圖形才能夠均勻和準(zhǔn)確.同時(shí),掃屏信號的相位需要嚴(yán)格與clock 時(shí)鐘相位對齊,才能使屏幕信號穩(wěn)定.因此,系統(tǒng)設(shè)計(jì)了一個(gè)具備相位同步觸發(fā)的鋸齒波信號發(fā)生電路,如圖2 所示.
圖2 鋸齒波產(chǎn)生電路
電路利用對電容C1 的充放電產(chǎn)生鋸齒波.D1、R1、Q1 組成了恒流充電電路,改善整體鋸齒波的線性度.由于通過穩(wěn)壓管D1 的鉗位作用(穩(wěn)壓管電壓Uz),在R1 上的電壓UR1=UZ-0.7.因此經(jīng)過R1 的電流IR1近似于給電容充電的電流i.只要穩(wěn)壓管UZ固定、電阻R1 固定,充電電流就固定,保證充電曲線的線性度.
來自于clock 同步時(shí)鐘的分頻信號經(jīng)過C2、R2 組成的微分電路,將邊沿信號整形成尖脈沖信號.由于電路只利用正脈沖(正邊沿),所以脈沖信號的周期和同步時(shí)鐘分頻信號的周期一致.尖脈沖進(jìn)一步通過U1 比較、整形,使得需要結(jié)束充電時(shí),信號能夠可靠觸發(fā)導(dǎo)通三極管Q2,讓電容結(jié)束充電,開始放電.放電的寬度即尖脈沖跨度,也是鋸齒波的下降幅度.由于微分信號的尖脈沖寬度窄,因此能夠形成鋒利的鋸齒波下降沿跳變.
X通道的信號一般來說是鋸齒波屏幕掃描信號(圖3 中A 路).但是,當(dāng)顯示豎線時(shí),X通道的信號不需要掃描,而是決定豎線位置的一個(gè)直流電壓信號(圖3 中B 路).系統(tǒng)根據(jù)不同情況選通不同信號到X通道(圖3).
圖3 X 通道信號選擇電路
圖3 中,單片機(jī)生成PWM 信號,并經(jīng)過RC 濾波整形,通過調(diào)整PWM 波形的占空比就可以調(diào)整所需的直流電壓信號大小.最后輸入X通道的信號由二選一模擬開關(guān)決定,模擬開關(guān)掃描信號計(jì)數(shù)器控制.當(dāng)掃描普通信道時(shí),接入A 路鋸齒波;當(dāng)顯示豎線時(shí),接入B路PWM 電壓調(diào)節(jié)信號.
邏輯時(shí)序信號在Y軸顯示.根據(jù)顯示的邏輯時(shí)序的信道數(shù)不同,為了使各個(gè)波形不互相沖突、干涉,每個(gè)信道的顯示位置、幅度各有不同.以8 通道為例,在各個(gè)通道切換時(shí)利用加法器疊加原始邏輯時(shí)序信號和初始電平信號(如圖4).
圖4 Y 通道信號選擇電路
圖4 中,U2 為計(jì)數(shù)器芯片,負(fù)責(zé)多信道切換的計(jì)數(shù)分配,單片機(jī)為每個(gè)信道提供初始電平,該初始電平由PWM 信號RC 濾波后給定.當(dāng)計(jì)數(shù)切換到豎線信道時(shí),接入豎線掃描信號,此豎線掃描信號由分頻信號引入.U3 為多路模擬開關(guān),根據(jù)計(jì)數(shù)分配信號切換各個(gè)信道初始電平和豎線信號.單片機(jī)根據(jù)掃描時(shí)鐘發(fā)送不同信道的邏輯時(shí)序,該時(shí)序經(jīng)過R14 和R15 壓縮衰減后,和U3 的輸出通過加法器U6 疊加,最終的信號送入Y通道顯示.
示波器的X-Y模式不同于Y-T模式,沒有T時(shí)間軸.因此,設(shè)計(jì)的邏輯實(shí)訓(xùn)分析儀若要將X軸作為邏輯時(shí)序的時(shí)間軸,X軸屏幕掃描時(shí)鐘必須要與同步時(shí)鐘信號有對應(yīng)一致關(guān)系.系統(tǒng)的X軸屏幕掃描時(shí)鐘信號由同步時(shí)鐘的分頻而得,并進(jìn)入單片機(jī)和周圍系統(tǒng).基于統(tǒng)一的時(shí)鐘信號,屏幕顯示的邏輯時(shí)序波形就能穩(wěn)定.同時(shí),屏幕掃描時(shí)鐘信號也為通道切換、豎線掃描提供基準(zhǔn).因此,屏幕掃描時(shí)鐘信號改變的同時(shí)也會改變邏輯時(shí)序波形的顯示周期數(shù)等相關(guān)信息.
單片機(jī)開辟顯示緩沖區(qū)來存儲和交互時(shí)序邏輯信號,負(fù)責(zé)讀取多通道的邏輯時(shí)序,將每個(gè)同步時(shí)鐘周期的邏輯狀態(tài)存儲入顯示緩沖區(qū),并實(shí)時(shí)更新.顯示緩沖區(qū)的深度依據(jù)用戶設(shè)置的顯示周期長度、通道個(gè)數(shù)而定.例如,若1 個(gè)完整的時(shí)序邏輯周期為8 個(gè)時(shí)鐘周期,而系統(tǒng)要顯示8 通道2 時(shí)序周期的邏輯信號,那么就要開辟16 個(gè)字節(jié)的顯示緩沖區(qū).顯示緩沖區(qū)是一個(gè)環(huán)形結(jié)構(gòu)的存儲空間.當(dāng)邏輯狀態(tài)存儲深度已經(jīng)超過緩沖區(qū)長度時(shí),自動(dòng)從緩沖區(qū)的第1 個(gè)字節(jié)存儲起.
系統(tǒng)可以配置邏輯觸發(fā)字.當(dāng)通道的邏輯與觸發(fā)字一致時(shí),截獲和顯示所有通道的邏輯時(shí)序.同時(shí),該觸發(fā)字狀態(tài)可以選擇“開始觸發(fā)”“中點(diǎn)觸發(fā)”“末尾觸發(fā)”三種模式.三種觸發(fā)模式分別指的是捕獲到的觸發(fā)字狀態(tài)顯示在屏幕的左側(cè)、中間還是右側(cè).
顯示緩沖區(qū)的內(nèi)容和示波器顯示內(nèi)容一一對應(yīng),但邏輯時(shí)序的發(fā)送和屏幕掃描信號不一定對齊初始相位.因此,將掃描鋸齒波信號整形為脈沖波引入單片機(jī)中斷(圖5),獲取屏幕掃描的初始相位,從初始相位開始計(jì)數(shù)同步時(shí)鐘,使相位對齊.系統(tǒng)找到滿足觸發(fā)字邏輯狀態(tài)的同步時(shí)鐘計(jì)數(shù)值,根據(jù)計(jì)數(shù)值偏移該觸發(fā)字邏輯狀態(tài)在顯示緩沖區(qū)的位置,就能調(diào)整觸發(fā)字狀態(tài)的顯示位置.
圖5 觸發(fā)點(diǎn)設(shè)置流程
系統(tǒng)的供電電壓為5 V,一般來說,與之匹配的示波器X軸設(shè)置為500 mV/div,觀察效果比較好.X軸的顯示長度由“掃描信號產(chǎn)生電路”的電容充電電壓決定.根據(jù)圖2,電容的充電電壓為:
其中:i為充電電流,t為充電時(shí)間,C為充電電容容量.在充電時(shí)間固定的情況下,調(diào)整可變電阻R1,就可以調(diào)整鋸齒波幅值.除了手動(dòng)調(diào)整,也可以自動(dòng)匹配(固定)X軸的顯示長度.不論同步時(shí)鐘如何變化,掃描鋸齒波信號的峰值電壓都需要是一個(gè)固定值,這樣才能使X軸在示波器屏幕上顯示的長度固定.結(jié)合公式(1)和公式(2),有:
其中,電容充電時(shí)間t即是同步時(shí)鐘周期,此時(shí)能使掃描處理的邏輯時(shí)序波形完整.單片機(jī)可以單獨(dú)調(diào)整Uc來調(diào)整X軸顯示長度,或者為了觀察方便,Uc固定,即顯示的X軸顯示長度固定.根據(jù)式(3),根據(jù)同步時(shí)鐘周期t改變充電電阻R1,使最終的Uc不變,具體軟件設(shè)計(jì)控制流程詳見圖6.
圖6 X 軸顯示長度自動(dòng)匹配流程
邏輯分析儀需要處理高速的邏輯時(shí)序,因此需要高速的處理芯片,如STM32、FPGA等[5-6],本系統(tǒng)應(yīng)用到的單片機(jī)為STC 超高速1T 單片機(jī),價(jià)格低、性能高,能夠滿足簡易邏輯分析儀的需求.
由于每個(gè)同步時(shí)鐘周期都要讀入邏輯時(shí)序信號并處理,所以單片機(jī)既要處理核心控制功能(分析輸入邏輯信號時(shí)序、用戶按鍵處理、示波器顯示信號輸出等),又要負(fù)責(zé)界面顯示(液晶顯示、LED 指示等).當(dāng)邏輯分析儀需要處理的頻率較高時(shí),單片機(jī)的處理速度就顯得不夠.系統(tǒng)將界面顯示和核心控制功能分別由2 個(gè)單片機(jī)處理(圖7),減輕了單片機(jī)的運(yùn)行負(fù)擔(dān),提高整機(jī)速率.兩個(gè)單片機(jī)之間通過UART 通信來交互相關(guān)信息.
圖7 單片機(jī)雙機(jī)通信架構(gòu)
同步時(shí)鐘頻率(即邏輯時(shí)序信號)越快,單片機(jī)的運(yùn)行負(fù)擔(dān)越高.因此,兩個(gè)單片機(jī)間的通信協(xié)議不能過于復(fù)雜,如家居物聯(lián)網(wǎng)常用的數(shù)據(jù)幀格式[7].文章設(shè)計(jì)了一個(gè)針對本系統(tǒng)的簡易通信協(xié)議,以夠用為度,越簡越好,能夠有效提升通信效率.協(xié)議為主從方式,每個(gè)數(shù)據(jù)幀僅3 個(gè)字節(jié),包括一個(gè)起始字節(jié)、一個(gè)命令字節(jié)、一個(gè)數(shù)據(jù)字節(jié)(圖8).
圖8 通信數(shù)據(jù)幀結(jié)構(gòu)
幀起始字系統(tǒng)定為0x5a.系統(tǒng)接收到幀起始字后需要再接收2 個(gè)字節(jié).命令字節(jié)表示數(shù)據(jù)的屬性和含義,具體用到的主要命令字定義如表1 所示.兩個(gè)單片機(jī)通過簡單的通信協(xié)議和命令實(shí)現(xiàn)狀態(tài)字、觸發(fā)字、觸發(fā)點(diǎn)等數(shù)據(jù)的共享.
表1 命令字含義表
實(shí)驗(yàn)證明,系統(tǒng)在輸入簡易測試邏輯時(shí)序波形[8]的情況下運(yùn)行良好(圖9).
圖9 產(chǎn)品測試圖
本文設(shè)計(jì)的邏輯分析儀利用已有的示波器X-Y模式使屏幕能夠顯示多通道的邏輯時(shí)序波形.邏輯分析儀能夠完成觸發(fā)字設(shè)置、觸發(fā)點(diǎn)選擇、邏輯狀態(tài)讀取等功能.該系統(tǒng)可以利用示波器實(shí)現(xiàn)邏輯分析儀的基礎(chǔ)功能,在無邏輯分析儀和考慮低成本的情況下,是完成時(shí)序邏輯分析的可行性解決方案.