- 相關推薦
基于單片機和EDA技術的邏輯分析儀設計
摘要:本設計采用單片機控制8路邏輯信號電平采集;采用EDA技術設計的CPLD芯片處理邏輯信號,控制點陣掃描和分析結果在示波器上顯示;單片機和CPLD間采用中斷方式交換數(shù)據(jù)。該設計具有1、3級觸發(fā)方式,觸發(fā)字位置和浮動時標線顯示等功能,以及友好操作界面和波形穩(wěn)定顯示等特點,并拓寬示波器使用功能。
關鍵字:點陣掃描控制;邏輯分析;CPLD;VHDL編程
The design of the logical analysis apparatus of one-chip microcomputer and the EDA's technology baseding on
【Abstract】This design uses the one-chip microcomputer to be controlled gathering of logical signal levels of 8 tunnels, Use CPLD's chip of EDA's technical design to the logic signal processing and Control scanning to the lattice signal and The result of display analysis on the oscillograph , Use the interrupt mode exchange data between one-chip microcomputer and CPLD. this design has 1 and 3 grade of method of activation , trigger word seat display and time to be marked thread display etc. merit ability,As well as friendly operation interface and waveform stabilization what shows etc. characteristic , And widen the oscillograph use merit ability .
【Key words】The lattice scanning control; The logical analysis; CPLD; VHDL's programming
1 引言
邏輯分析儀是數(shù)字電路調試和信號分析中不可缺少的工具。本設計參照“2003年全國大學生電子設計競賽”的題目,用雙蹤信號示波器作為邏輯分析結果顯示設備;用單片機控制邏輯信號采集和邏輯分析儀的各項功能操作;用EDA(電子設計自動化)技術設計的CPLD(復雜可編程邏輯器件)芯片處理邏輯信號,控制邏輯分析結果波形的點陣掃描;達到一般邏輯分析儀應有的功能和指標[1]。本設計的邏輯分析儀特點是性能穩(wěn)定、成本低,并拓寬了示波器使用功能。
2 總體結構及各硬件設計
邏輯信號分析的總體結構如圖1所示;其中邏輯分析儀由8路邏輯信號檢測電路、單片機系統(tǒng)和CPLD點陣掃描控制電路構成。邏輯分析儀能接受8路邏輯信號(D7~D0)和位傳送時鐘信號(B-CLK);其接受的邏輯信號形式如圖2所示。
600)makesmallpic(this,600,1800);' src="file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/ksohtml/wps_clip_image-7831.png" width="554" height="202" />
邏輯分析儀各部分解釋如下:
2.1 邏輯信號檢測
8路邏輯信號檢測部分由8選1采樣模擬開關(CD4051)和模數(shù)轉換器ADC(MAX7820)組成,如圖3所示。為了適應較寬范圍(0.25~4V)邏輯信號門限電壓(邏輯1的電壓)的輸入,對邏輯信號電平采用模擬信號采樣,當AD轉換獲得邏輯信號電平的數(shù)字量(A/D-DATA)大于門限電壓對應的數(shù)字量時,確定為邏輯1。由于分時檢測8路邏輯信號(D7~D0),要求采樣開關速度和AD轉換速度要遠遠大于邏輯信號位傳送速度;當位傳送時鐘信號到來時,才能保證8路邏輯信號每1路采樣點在靠近位的中間位置,從而得到可靠的電平數(shù)字量。
本設計的CD4051從地址選通(CH-SELECT)到數(shù)據(jù)輸出時間約500ns,MAX7820轉換一路信號所需的時間約3ns,采集處理8路邏輯信號各位(1個字節(jié))所需時間約5us。若8路邏輯信號每位采樣點在位中間的三分之一區(qū),則邏輯信號的位寬約為15us,因此本設計的邏輯分析儀可對66kHz以下波特率的8路信號進行邏輯分析。
600)makesmallpic(this,600,1800);' src="file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/ksohtml/wps_clip_image-16949.png" width="519" height="222" />
2.3 單片機系統(tǒng)
單片機系統(tǒng)[2]由單片機(AT89C51)、點陣液晶顯示模塊和4×4鍵盤三部分組成,其示意圖見圖1的“單片機系統(tǒng)”部分。單片機的P0口在不同的時間段分別用于顯示數(shù)據(jù)輸出,邏輯信號采樣數(shù)據(jù)輸入,采樣字節(jié)輸出的數(shù)據(jù)傳送;P1、P3口用于邏輯信號檢測(見圖3引腳標注)、CPLD點陣掃描控制(見圖4引腳標注)和液晶顯示模塊的操作控制;P2口用于4×4鍵盤掃描及按鍵信息接受。單片機系統(tǒng)的鍵盤和顯示部分用于完成1、3級觸發(fā)方式,1級、3級觸發(fā)字,16級門限電壓選擇,數(shù)據(jù)采集區(qū)的前、中、后顯示頁面(16字節(jié))選擇,時間線位置等參數(shù)的設定和顯示,以及相關功能操作。
2.4 CPLD點陣掃描控制
CPLD點陣掃描控制部分由可編程邏輯陣列(CPLD)、數(shù)模轉換器(DAC)和X、Y、Z軸掃描信號放大電路組成,并在CPLD控制下工作;其電路如圖4所示。
600)makesmallpic(this,600,1800);' src="file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/ksohtml/wps_clip_image-5417.png" width="549" height="280" />
CPLD向通過輸出中斷CPLD-INT請求(單片機的INT0)從單片機系統(tǒng)獲得采樣字節(jié);對每個采樣字節(jié)按順序進行8路邏輯信號位波形(或時標線)的點陣掃描的信息處理,并控制數(shù)模轉換(DAC)、信號放大、信號掃描顯示和回掃信號消隱處理。在處理一個頁面(1/3數(shù)據(jù)區(qū))16個采樣字節(jié)后,重復處理過程。
CPLD內(nèi)部由計數(shù)器鏈(2分頻器,點、位、字節(jié)計數(shù)器)、數(shù)據(jù)接收器、X軸位邊界定位器、加法器、Y軸定位輸出器、2選1多路器、消隱控制器等部分組成,如圖5所示。CPLD外部引腳CLK(CPLD-CLK)、EN(使能)、TR(信息類型控制)、DI[7~0] (CPLD-DATA)、CP(鎖存)、-INT(CPLD-INT)分別連邏輯分析儀單片機的ALE、P1.7、P3.1、P0[0~7]、P3.0、P3.2引腳(見圖4的引腳標注);-WR、A0(通道選擇)、DO[7~0]分別連DAC的-WR、A0、D[7~0]引腳;Zout連信號放大器的Z軸輸入端。CPLD工作原理說明如下:
600)makesmallpic(this,600,1800);' src="file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/ksohtml/wps_clip_image-12884.png" width="438" height="246" />
開機后,CPLD內(nèi)部復位,EN=0,CPLD處于保持狀態(tài)。
1.數(shù)據(jù)傳送——首先設置EN=0,CPLD處于保持;然后,CP的上升沿,將外部數(shù)據(jù)送入數(shù)據(jù)接收器;設置TR=0,傳送8路信號采樣字節(jié);TR=1,傳送觸發(fā)字或時標線位置的4位編碼(給出16個位置信息)。傳送數(shù)據(jù)后,設置EN=1,CPLD工作。
2.邏輯信號掃描——在EN=1,TR=0前提下,外部時鐘CLK的上升沿驅動計數(shù)器鏈工作。字節(jié)計數(shù)器(采樣字節(jié)計數(shù))值ByteC經(jīng)過X軸位邊界定位器處理后的值X1(X1=ByteC*10H)與點計數(shù)器(位內(nèi)點計數(shù))值Xc再經(jīng)過加法器處理,產(chǎn)生當前掃描點X軸數(shù)字量X=X1+Xc=ByteC*10H+Xc。位計數(shù)器(采樣字節(jié)各位計數(shù))值BitC和數(shù)據(jù)接收器(存放采樣字節(jié))值DI[7~0]經(jīng)過Y軸定位輸出器處理,產(chǎn)生當前掃描點Y軸數(shù)字量的Y有兩種:①當DI[BitC]=0,Y=0E0H-(BitC*20H)+05H;②當DI[BitC]=1,Y=0E0H-(BitC*20H)+15H。在A0正(A0=1)、負(A0=0)狀態(tài)對2選1多路器的驅動下,分時將Y、X送到DO[7~0]總線上;以此同時,在兩個-WR(-CLK)的上升沿(A0正、負半個周期的中間)驅動下,將送到DO[7~0]總線上的Y和X分別寫入數(shù)模轉換器DAC的兩個通道。位計數(shù)器值BitC=7時,表示一個采樣字節(jié)處理完,CPLD發(fā)出傳送下一個字節(jié)的中斷請求-INT。邏輯分析儀單片機收到中斷請求后,進行一次數(shù)據(jù)傳送處理。
3.觸發(fā)字和時間線位置掃描——在EN=1前提下,TR=1將數(shù)據(jù)接收器DI[3~0](位置信息)送入字節(jié)計數(shù)器,并控制點計數(shù)器值Xc=0,經(jīng)過X軸位邊界定位器和加法器處理后,產(chǎn)生掃描點X軸數(shù)字量X=X1+Xc=DI[3~0]*10H+0;同時TR=1控制Y軸定位輸出器的值Y按計數(shù)方式工作,在CLK1驅動下,輸出Y=00~0FFH的計數(shù)值,在示波器屏上顯示豎線,表示觸發(fā)字或時間線位置。當Y=0FFH時,表示位置信息掃描完畢,發(fā)出傳送下一個字節(jié)的中斷請求信號。
4.消隱處理——在Xc=0FH,即開始下1路時鐘位各點掃描時,點計數(shù)器輸出Z1=1;在BitC=7,即開始8路信號下一組各時鐘位(下一個采樣字節(jié))掃描時,Y軸定位輸出器輸出Z2=1;在Y=OFFH,即觸發(fā)字和時間線位置掃描結束時,Y軸定位輸出器輸出Z2=1;在A0=1時,為了消除當前傳送的Y軸數(shù)字量與前一次X軸數(shù)字量產(chǎn)生的干擾掃描點,2分頻器輸出的A0使Z3=1;Z1、Z2、Z3信號經(jīng)過消隱控制器(或非門電路)處理,使Zout為低電平,經(jīng)反相放大器處理后,向示波器Z軸輸出+12V電壓,以消除回掃線和干擾點。
雙蹤信號示波器調整到X-Y工作方式,探頭Y1為X軸輸入,探頭Y2為Y軸輸入,顯像管電子槍控制端為Z軸輸入。CPLD輸出的X、Y軸數(shù)字量X、Y經(jīng)過數(shù)模轉換和放大處理后,產(chǎn)生示波器X、Y軸掃描的模擬信號,在示波器屏上顯示8路邏輯信號。CPLD輸出的Zout信號經(jīng)放大后,控制示波器的Z軸,以消隱回掃線和干擾點,使8路邏輯信號更清晰的顯示。
3 軟件設計
軟件設計部分有邏輯信號檢測及數(shù)據(jù)采集處理、鍵盤顯示掃描處理、采樣字節(jié)輸出處理和CPLD內(nèi)部結構設計VHDL(硬件描述語言)編程四部分。本文主要介紹邏輯信號檢測及數(shù)據(jù)采集處理和CPLD結構設計VHDL編程部分。
3.1 邏輯信號檢測及數(shù)據(jù)采集處理
邏輯信號檢測及數(shù)據(jù)采集處理是通過單片機的INT1中斷服務程序來完成。其中1級觸發(fā)字邏輯信號檢測中斷服務程序和數(shù)據(jù)采集處理子程序流程如圖6、圖7所示。
當各項參數(shù)設定后,按“確認鍵”保存參數(shù),并打開邏輯信號檢測中斷(INT1),關閉采樣字節(jié)輸出中斷(INT0)。每次邏輯信號發(fā)生器的位傳送時鐘(B-CLK)觸發(fā)一次邏輯信號檢測中斷服務程序的執(zhí)行,每次服務程序執(zhí)行要進行8次路選和8次AD轉換啟動,并分別檢測轉換結束狀態(tài)和讀取轉換結果。每次邏輯信號檢測中斷服務,要調用8路邏輯信號數(shù)據(jù)采集處理子程序,將8路信號狀態(tài)轉換成1個采樣字節(jié),并存入采樣數(shù)據(jù)區(qū)。當數(shù)據(jù)區(qū)存滿后,關閉邏輯信號檢測中斷,打開采樣字節(jié)輸出中斷,等待CPLD輸出中斷請求(CLPD-INT)。
600)makesmallpic(this,600,1800);' src="file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/ksohtml/wps_clip_image-27242.png" width="514" height="421" />
CPLD點陣掃描控制電路在每次輸出8路1位信號波形后,向單片機系統(tǒng)發(fā)出采樣字節(jié)輸出中斷;對每次采樣字節(jié)輸出中斷的服務,單片機要對CPLD進行一次采樣字節(jié)輸出及寫操作控制。輸出的采樣字節(jié)有波形數(shù)據(jù)、觸發(fā)字和時標線位置三種數(shù)據(jù)類型。
3.2 CPLD結構設計的VHDL編程
CPLD內(nèi)部結構各部分設計采用硬件描述語言VHDL編程來實現(xiàn)[3]。由于篇幅所限,僅給出部分設計的編程及解釋說明。
1.點計數(shù)器設計的編程
if TR='0' then -- TR=0時,邏輯信號時鐘位的掃描點計數(shù)。
if f='0' then -- f為回掃時鐘插入標志位,f=0時,正常的點計數(shù)掃描。
Xc<=Xc+1; -- 點計數(shù)增1。
else
Xc<=Xc; -- f=1時,Xc保持1個時鐘時間。
end if;
if Xc="1111" then
f<='1'; -- 計完1個時鐘位16個點后,f置1控制插入一個回掃時鐘
BitC<=BitC+1; -- 采樣字節(jié)的位計數(shù)增1
Z1<='1'; -- 控制下一時鐘周期不顯示
else
f<='0'; -- 控制正常計數(shù)
Z1<='0'; -- 控制正常顯示
end if;
else -- TR=1時,觸發(fā)字和時標線位置掃描
Xc<="0000"; -- 點計數(shù)器值Xc 置0
end if;
程序中的“Xc<=Xc+1”語句僅為點計數(shù)器增1作準備,只有下一個時鐘到來后,才計數(shù)增1變化;因此,對后邊的“if Xc="1111" then”語句,判斷到Xc="1111"時,已經(jīng)為點計數(shù)器Xc變成0做好了準備。程序中的“--”為注釋標志。
2.Y軸定位輸出器設計的編程
if TR='0' then -- TR='0'邏輯信號掃描,由位計數(shù)器值和數(shù)據(jù)接收器值確定Y值
if BitC="000" then — 第1路邏輯信號,對應字節(jié)內(nèi)的最高位,示波器上端
if DI(7)='0' then Y<="11100101"; -- DI(7)=0,Y=E5H
else Y<="11110101"; -- DI(7)=1,Y=F5H
end if;
elsif BitC="001" then -- 第二路
if DI(6)='0' then Y<="11000101"; -- DI(6)=0,Y=C5H
else Y<="11010101"; -- DI(6)=1,Y=D5H
end if;
elsif BitC="010" then -- 第三路
if DI(5)<='0'then Y<="10100101"; -- DI(5)=0,Y=A5H
else Y<="10110101"; -- DI(5)=1,Y=B5H
end if;
elsif BitC="011" then -- 第四路
if DI(4)<='0'then Y<="10000101"; -- DI(4)=0,Y=85H
else Y<="10010101"; -- DI(4)=1,Y=95H
end if;
elsif BitC="100" then -- 第五路
if DI(3)='0' then Y<="01100101"; -- DI(3)=0,Y=65H
else Y<="01110101"; -- DI(3)=1,Y=75H
end if;
elsif BitC="101" then -- 第六路
if DI(2)='0' then Y<="01000101"; -- DI(2)=0,Y=45H
else Y<="01010101"; -- DI(2)=1,Y=55H
end if;
elsif BitC="110" then -- 第七路
if DI(1)='0' then Y<="00100101"; -- DI(1)=0,Y=25H
else Y<="00110101"; -- DI(1)=1,Y=35H
end if;
elsif BitC="111" then -- 第八路
if DI(0)='0' then Y<="00000101"; -- DI(0)=0,Y=05H
else Y<="00010101"; -- DI(0)=1,Y=15H
end if;
end if;
else -- TR='1'觸發(fā)字和時標線位置掃描,Y軸定位輸出器按計數(shù)方式工作
if Y<"11111111" then -- Y<"11111111"時,計數(shù)增1,從下到上掃描位置線
Y<=Y+1;Z2<=’0’; -- Z2=’0’,正常顯示
else -- Y="11111111"時,消隱控制,發(fā)出中斷申請
Z2<='1', INT<='0';
end if;
end if;
4 結束語
本設計將單片機和EDA技術結合起來,簡化了硬件結構,工作性能穩(wěn)定,經(jīng)過應用測試,達到了邏輯分析儀應有的功能要求。
通過本設計,筆者認為,運用EDA技術設計電路,設計者可專注于電路的行為和功能,而不必考慮電路如何實現(xiàn)及電路布線,并且可通過計算機進行設計效果的模擬和修改,為設計者提供了更廣闊的設計空間。用單片機和EDA技術開發(fā)的電子產(chǎn)品,在功能、性能指標和開發(fā)效率等方面比傳統(tǒng)的方法有明顯的提高,而且成本降低。
參考文獻:[1]顧乃級,孫續(xù). 邏輯分析儀原理與應用[M]. 北京:人民郵電出版社,1973.
[2]李華,MCS-51系列單片機實用接口技術[M]. 北京:北京航空航天大學出版社,1993.
[3]潘松,黃繼業(yè). EDA技術實用教程[M]. 北京:科學出版社,2002.
【基于單片機和EDA技術的邏輯分析儀設計】相關文章:
基于EDA技術的FPGA設計09-03
基于單片機技術的波形發(fā)生器采用單片機設計(一)10-21
基于單片機的MicroDrive接口設計05-19
EDA技術及其應用07-27
基于單片機的液位測量系統(tǒng)設計10-10
基于51單片機復位電路設計10-25
基于單片機和GPRS的配電變壓器遠程監(jiān)測系統(tǒng)設計09-24
在單片機上和模糊邏輯檢測室性早博10-06
基于Ajax技術的網(wǎng)站設計08-03