数位类比转换器的快速测试(验证)方法
前言:
或許您也有這樣的經驗;有些時候,我們取得一些數位資料,但這些數位資料中僅僅是由0、1所組成,這時,您一定會感到相當困惑,因為要如何來做這些資料的解讀與分析呢?
其實,以人類的觀感而言,將文字資料圖形化是最容易讓人類理解的方式,而透過圖形化的資料,通常是藉由將數位資料轉換成類比資料而再以圖形的方式呈現。類比晶片可以將我們的感官所能處理的訊號轉換成二位元脈衝,或是將二位元脈衝再轉換回來;藉由這種方式,它們得以將數位邏輯連接到「真實的」世界。然而問題是:要以什麼方式做到上述的這些動作,以下就是本文所要傳達的。
系統架構:
以下我們以一個實作來說明,首先為硬體架構方面:我們以Acute
Technology Inc 所研發的Programmable Data Generator(以下簡稱PG)為架構主軸。PG 是一台可以產生多種數位波形的可程式資料產生器,具有高速,多Channels及多用途的功能,可輕易的編輯波形,並輸出至測試板上,不需大費周章製作一個電路板。
不管是電路模擬、IC測試、ROM模擬、零件燒錄…等等波形,都可用Acute PG來產生。PG也提供多種波形資料編輯方式:直接畫波形、文字檔轉入、Altera波形檔轉入、Acute LA波形檔轉入等等…
PG擁有完美的Windows操作介面,可與Notebook連接,易於攜帶,且搭配Acute 邏輯分析儀(LA)時,可以用LA來擷取量測物的波形,再交由Acute PG將波形輸出給另一個電路。此外,更可組合Acute LA 與Acute PG做成自動測試系統或自動驗證系統。
我們將PG連接上DAC(D/A Converter),為了要使產生的波形有比較高的解析度,DAC我們採用14Bits之輸入晶片, 最後DAC將轉換後的類比訊號透過BNC線傳送給示波器,我們將透過示波器來做波形驗證的
工作。底下圖一為系統的架構圖:
圖一 系統架構圖
系統實作:
關於實作方面,我們以正弦波為例,底下為構成8Bits的正弦波50筆二進位制的值:
1. 0111 1111 16. 1111 1000 31. 0011 0100
2. 1000 1111 17. 1111 0010 32. 0010 1000
3. 1001 1111 18. 1110 1010 33. 0001 1101
4. 1010 1110 19. 1110 0001 34. 0001 0100
5. 1011 1100 20. 1101 0110 35. 0000 1100
6. 1100 1010 21. 1100 1010 36. 0000 0110
7. 1101 0110 22. 1011 1100 37. 0000 0010
8. 1110 0001 23. 1010 1110 38. 0000 0000
9. 1110 1010 24. 1001 1111 39. 0000 0000
10. 1111 0010 25. 1000 1111 40. 0000 0010
11. 1111 1000 26. 0111 1111 41. 0000 0110
12. 1111 1100 27. 0110 1111 42. 0000 1100
13. 1111 1110 28. 0101 1111 43. 0001 0100
14. 1111 1110 29. 0101 0000 44. 0001 1101
15. 1111 1100 30. 0100 0010 45. 0010 1000
46. 0011 0100
47. 0100 0010
48. 0101 0000
49. 0101 1111
50. 0110 1111
而Aute PG的文字(向量)檔PGV(PG Vector File)格式的8Bits的正弦波50筆十六進位制的值如下:
備註: 文字(向量)檔是PG EDITOR專用的向量檔,這個檔案的附屬檔名為PGV。您可以用任何的文字編輯程式先將向量檔寫好, 如Notepad、PE2等等軟體。
INPUTS PG_Function DATA;
ASSIGN DATA 13..6;
RADIX AUTO;
FREQUENCY 50000 Hz;
PATTERN
8FFh 7Fh // 00000: ( MOV RL, 255 )
2FFh 7Fh // 00001: ( MOV RH, 255 )
900h 7Fh // 00002: ( MOV RH, 255 )
000h 7Fh // 00003:
000h 7Fh // 00004:
000h 7Fh // 00005:
000h 7Fh // 00006:
000h 7Fh // 00007:
000h 7Fh // 00008:
000h 7Fh // 00009:
000h 7Fh // 00010: START Pattern
000h 8Fh // 00011:
000h 9Fh // 00012:
000h AEh // 00013:
000h BCh // 00014:
000h CAh // 00015:
000h D6h // 00016:
000h E1h // 00017:
000h EAh // 00018:
000h F2h // 00019:
000h F8h // 00020:
000h FCh // 00021:
000h FEh // 00022:
000h FEh // 00023:
000h FCh // 00024:
000h F8h // 00025:
000h F2h // 00026:
000h EAh // 00027:
000h E1h // 00028:
000h D6h // 00029:
000h CAh // 00030:
000h BCh // 00031:
000h AEh // 00032:
000h 9Fh // 00033:
000h 8Fh // 00034:
000h 7Fh // 00035:
000h 6Fh // 00036:
000h 5Fh // 00037:
000h 50h // 00038:
000h 42h // 00039:
000h 34h // 00040:
000h 28h // 00041:
000h 1Dh // 00042:
000h 14h // 00043:
000h Ch // 00044:
000h 6h // 00045:
000h 2h // 00046:
000h 0h // 00047:
000h 0h // 00048:
000h 2h // 00049:
000h 6h // 00050:
000h Ch // 00051:
000h 14h // 00052:
000h 1Dh // 00053:
000h 28h // 00054:
000h 34h // 00055:
000h 42h // 00056:
816h 50h // 00057: ( MOV RL, 22 )
200h 5Fh // 00058: ( MOV RH, 0 )
100h 6Fh // 00059: JP 10
000h 000h // 00060:
;
備註:
PGV資料格式說明:
INPUTS PG_Function DATA: 設定訊號名稱。每一個名稱用空白分隔開來,名稱可以為文字或是數字如果為Bus(Group)時,可以用中括號來指定。例如某個Bus為4個通道所組成那就可以用A[3..0]來代替,A[3..0]就代表A3、A2、A1、A0等4個訊號。注意!『PG_Function』是一個保留字,如果在INPUTS指令的定義中有『PG_Function』,就代表PATTERN中會包含PG的專用指令。而且『PG_Function』也不能配合ASSIGN指令使用。
ASSIGN DATA 13..6: 用來指定INPUTS指令所定義的訊號名稱之通道值。指定的方式如下:INPUTS A[3..0]; ASSIGN A[3..0]=8..11;
就表示A3=CH8, A2=CH9, A1=CH10, A0=CH11。
RADIX AUTO: 設定PATTERN區域的進位值。如果PATTERN區域的數值有進位識別符號時,此時就要將RADIX的值設成AUTO。例如RADIX 設定成AUTO時,PATTERN區域的某一數值為35與35h是不一樣的,但是當Radix設成HEX(十六進位)時,這兩個值就是一樣的。但是當RADIX設成DEC時,而PATTERN區域的值為35h時,卻是會被當成35。
RADIX共有五種定義: AUTO : 由數值的進位識別符號決定。
HEX : 16進位。
DEC : 10進位。
OCT : 8進位。
BIN : 2進位。
而在PATTERN區域的進位識別符號定義是『h』代表16進位、『o』代表8進位和『b』代表2進位,而不加任何識別符號就代表10進位。
FREQUENCY: 設定每個PATTERN之間的時間(單位:頻率)。
PATTERN: 是用來定義波形資料的區域。
START Pattern:波形資料開始處。
JP 10:回到第十點,也就是說波形為反覆輸出。
『//』:註解符號。
由以上的PGV檔案的內容中,您可以發現從00010 到 00059 共50筆的資料中,和之前產生8Bits的正弦波50筆二進位制的值完全一樣,唯一不同的是;PGV檔的值為十六進制以及多了些給PG的指令。而且,就算PGV檔為二進制,PG也一樣能夠讀取,所以對於值為二進制、八進制或是十六進制並無任何限制,只要在PGV檔中,指定進制值即可。至於PG如何讀取含有PGV格式的檔案,以下我們以圖解來配合文字說明:
1.進入PG軟體 該介面如下:
2.進入文字(向量)檔轉成波形該程式 介面如下:
將您寫好的文字(向量)檔載入該程式,畫面如下:
然後再按下『波形轉換』會出現以下畫面:
這時,您的文字向量檔已經成功轉成波形,接下來要做的就是按下上欄的『波形輸出』。
我們使用Acute DSO來觀察波形:
由示波器我們可以觀察到該文字向量檔經過PG的轉換顯示在示波器上的正是一個正弦波,這也證明了該測試用的D/A Converter功能是正常的,確實完成了測試及驗證數位轉類比的動作,以下是整個測試(驗證)系統的完整架構圖,並將整個硬體的連接方式做一詳細說明:
圖二 完整硬體架構圖
由圖二您可以看到構成整個系統的三個硬體元件: PG、DAC、
DSO都是以USB傳輸線連接電腦來取得電源,再來是關於PG與DAC
的連接,我們將PG的通道(主要為傳輸資料的資料線)分別接到DAC上,之後,再將BNC線接到DSO,就可以完成整個硬體系統的建構。
PG透過 波形編輯器 該程式可以完成上述波形轉換的功能外,還可以透過一些訊號內容參數的設定而達到快速改變取樣頻率、Bits數、及資料的內容。以取樣頻率(Sample Rate)來說,可以藉由
波形編輯器 上欄的功能欄位中
波形放大 以及
波形縮小來達到比較高的取樣頻率或者是比較小的取樣頻率;而Bits數以及資料內容都可以按照您的需求來做訊號內容參數的設定。
如欲獲得更多Programmable Data Generator(PG)的資訊,您可以上以下的網站: http://www.acute.com.tw/。