基于并口通訊的雙路高速可編程數(shù)字及模擬信號源設(shè)計(jì)
應(yīng)用EPP模式的并口通訊實(shí)現(xiàn)了一種可同時(shí)輸出數(shù)字和模擬信號的雙路可編程信號源;使用一片CPLD實(shí)現(xiàn)所有的接口邏輯和控制邏輯,并給出了相應(yīng)的PCB布線技巧??蓮V播應(yīng)用于各種DSP系統(tǒng)的調(diào)試。
??? 關(guān)鍵詞:EPP 數(shù)字信號處理(DSP) 信號源 可編程 虛擬儀器
大多數(shù)DSP應(yīng)用系統(tǒng)都包括一個(gè)前端的模/數(shù)轉(zhuǎn)換電路(ADC)。在測試高速數(shù)字信號處理(DSP)系統(tǒng)時(shí),通常是做一個(gè)專用的模擬信號源(如雷達(dá)中頻模擬信號源等),加上一個(gè)為實(shí)際應(yīng)用特制的模/數(shù)轉(zhuǎn)換電路(ADC),以獲取與實(shí)際應(yīng)用相當(dāng)?shù)膶S眯盘枖?shù)據(jù)來調(diào)試該DSP系統(tǒng)。通常,模擬信號源、ADC及DSP系統(tǒng)是由不同的開發(fā)人員設(shè)計(jì)制作的。為了調(diào)試DSP系統(tǒng),需要各方人員協(xié)作,調(diào)試任務(wù)相當(dāng)繁雜。且不同的DSP系統(tǒng)調(diào)試需要不同的信號源和ADC,也是系統(tǒng)研發(fā)階段的難點(diǎn)。
在多種調(diào)試DSP系統(tǒng)之后,設(shè)計(jì)并制作了一種高速雙路可編程信號源。它的輸出具有數(shù)字和模擬兩種形式;信號的內(nèi)容、輸出速率、數(shù)據(jù)托度等都可以通過PC機(jī)并口來進(jìn)行設(shè)置和控制;數(shù)據(jù)輸出速率可高達(dá)75M字/s,相應(yīng)的模擬輸出信號最大頻率為37.5MHz,數(shù)據(jù)重復(fù)長度最大為128K字;可廣泛應(yīng)用于各類DSP系統(tǒng)的調(diào)試。由于該信號源運(yùn)用計(jì)算機(jī)產(chǎn)生所需的數(shù)據(jù)和控制信息,因此它也屬于通常所稱的虛擬儀器范疇。其應(yīng)用形式有兩種:①利用輸出的模擬信號替代專用的模擬信號源;②利用直接輸出的數(shù)字信號替代模擬信號源和ADC。兩種應(yīng)用分別如圖1和圖2所示。
1 可編程信號源電路原理
該信號源的基本設(shè)計(jì)思路是,由計(jì)算機(jī)編程產(chǎn)生所需的兩路信號數(shù)據(jù)(包括加噪數(shù)據(jù))。通過計(jì)算機(jī)并口(EPP模式)將數(shù)據(jù)分別傳到信號源的兩個(gè)高速數(shù)據(jù)緩沖區(qū)(兩個(gè)128K×8的SRAM),在信號源的內(nèi)部時(shí)鐘推動(dòng)下將數(shù)據(jù)高速輸出;同時(shí)將相應(yīng)數(shù)據(jù)經(jīng)過兩路高速數(shù)/模轉(zhuǎn)換器(DAC)電路轉(zhuǎn)換成模擬信號同步輸出。其中數(shù)據(jù)輸出的長度以及輸出速率是可以設(shè)置的。
信號源的所有邏輯及時(shí)序功能由一片CPLD(MACH4-128/64)完成,包括EPP模式并口的接口控制、數(shù)據(jù)存儲(chǔ)器的地址及讀寫信號產(chǎn)生、數(shù)據(jù)緩沖隔離控制、DAC控制、內(nèi)部時(shí)鐘控制、數(shù)據(jù)時(shí)鐘同步的產(chǎn)生。整個(gè)電路的原理結(jié)構(gòu)如圖3所示。
1.1 EPP模式并口邏輯設(shè)計(jì)
EPP模式的并口I/O空間除了標(biāo)準(zhǔn)接口(SPP)用到的3個(gè)端口以外,還增設(shè)了兩個(gè)雙向的8位端口,即地址端口和數(shù)據(jù)端口,它們分別占用基地址(通常為378H)的偏移量3和4處。正是這兩個(gè)新增的雙向端口使得并口EPP模式被廣泛開發(fā)應(yīng)用。這兩個(gè)端口從時(shí)序上是一樣的,由各自的選通脈沖信號來區(qū)分。在本信號源設(shè)計(jì)中,采用地址端口鎖存數(shù)據(jù)作為控制命令,數(shù)據(jù)端口用于傳送數(shù)據(jù),包括數(shù)據(jù)內(nèi)容、長度和輸出數(shù)率選擇。在EPP并口通訊協(xié)議中,地址寫周期時(shí)序如圖4所示。
為正確完成一個(gè)EPP地址或數(shù)字的讀寫周期,需要正確產(chǎn)生一個(gè)等待信號(Waite#)。在EPP協(xié)議時(shí)序圖上,它比地址選通信號要推遲一些(如圖4)。如何產(chǎn)生這個(gè)等待信號是經(jīng)常困惑設(shè)計(jì)人員的問題。通過仔細(xì)研究協(xié)議規(guī)則,發(fā)現(xiàn)一個(gè)正常的讀寫周期是由等待信號來推動(dòng)的。比如當(dāng)計(jì)算機(jī)向地址端口寫數(shù)據(jù)時(shí),計(jì)算機(jī)的EPP接口邏輯首先使寫信號有效,然后監(jiān)視等待信號,如果為低,才施加選通信號(AddrStrobe#),之后繼續(xù)監(jiān)視等待信號,如果等待信號為高表明終端設(shè)備已取得數(shù)據(jù),從而撤消選通信號并結(jié)束寫周期。數(shù)據(jù)周期與地址周期類似。了解這一點(diǎn)之后,在讀寫數(shù)據(jù)或地址端口時(shí),等待信號可以直接用選通信號取反來產(chǎn)生,只要速度上能保證在選通信號結(jié)束時(shí)可以正確讀出或者保存數(shù)據(jù);由于存在地址和數(shù)據(jù)兩個(gè)選通信號(Addr Strobe#和Data Strobe#),用它們的與非來產(chǎn)生該等待信號即可。
1.2 地址產(chǎn)生
本信號源的地址產(chǎn)生邏輯實(shí)際上是一個(gè)同步加計(jì)數(shù)器,用以產(chǎn)生順序加1的地址,只是它的同步時(shí)鐘有兩個(gè)來源。當(dāng)計(jì)算機(jī)通過并口寫數(shù)據(jù)時(shí),它的計(jì)數(shù)時(shí)鐘由數(shù)據(jù)選通信號(Data Strobe#)來驅(qū)動(dòng),保證計(jì)算機(jī)每寫一個(gè)數(shù)據(jù)使得高速緩存器的地址加1;而當(dāng)信號源高速輸出數(shù)據(jù)時(shí),計(jì)數(shù)時(shí)鐘由信號源的內(nèi)部時(shí)鐘驅(qū)動(dòng)。它們的切換是由CPLD內(nèi)的控制寄存器來控制的。每次在計(jì)算機(jī)寫數(shù)據(jù)時(shí),應(yīng)當(dāng)由計(jì)算機(jī)通過控制寄存器給計(jì)數(shù)器清零;而在信號源輸出數(shù)據(jù)時(shí),清零信號由數(shù)據(jù)長度寄存器和當(dāng)前地址值的比較結(jié)果來確定,一旦地址值與數(shù)據(jù)長度寄存器相等,立即產(chǎn)生一個(gè)清零信號,以使數(shù)據(jù)從零地址處周期性重復(fù)輸出。該地址產(chǎn)生器的邏輯原理如圖5所示。
1.3 內(nèi)部時(shí)鐘控制
對內(nèi)部時(shí)鐘的控制決定了最終輸出的數(shù)據(jù)的速率?;緯r(shí)鐘由一個(gè)有源晶振產(chǎn)生,可以通過更換晶振來取得特定的輸出時(shí)鐘速率。同時(shí)提供對該時(shí)鐘的分頻選擇。該分頻器實(shí)際上是一個(gè)7位同步2進(jìn)制計(jì)數(shù)器,輸出晶振時(shí)鐘的2/4/8...128分頻量,由此提供一種有限但卻簡單的時(shí)鐘選擇。對時(shí)鐘的選擇可以用簡單的AHDL語言來完成設(shè)計(jì)。假設(shè)分頻器的輸出為Q6~Q0,時(shí)鐘為JTCLK,分頻選擇控制位為F2~F0,輸出時(shí)鐘為OUTCLK,相應(yīng)AHDL語言的Equations段如下:
[Q6..Q0]:=[Q6..Q0]+1; "設(shè)計(jì)7位的二進(jìn)制計(jì)數(shù)器
[Q6..Q0].clk=JTCLK; "計(jì)數(shù)器時(shí)鐘為晶振輸出
WHEN[F2..F0]=^b 000) THEN OUTCLK=JTCLK;"不分頻
WHEN([F2..F0]=^b001) THEN OUTCLK=Q0;"1/2分頻
WHEN([F2..F0]=^b010) THEN OUTCLK=Q1;"1/4分頻
WHEN ([F2..F0]=^b011) THEN OUTCLK=Q2;"1/8分頻
WHEN ([F2..F0]=^b100) THEN OUTCLK=Q3;"1/16分頻
WHEN ([F2..F0]=^b101) THEN OUTCLK=Q4;"1/32分頻
WHEN ([F2..F0]=^b110) THEN OUTCLK=Q5;"1/64分頻
WHEN ([F2..F0]=^b111) THEN OUTCLK=Q6;"1/128分頻
輸出時(shí)鐘OUTCLK分別用于地址計(jì)數(shù)器的計(jì)數(shù)時(shí)鐘驅(qū)動(dòng)、DAC的轉(zhuǎn)換時(shí)鐘驅(qū)動(dòng)以及產(chǎn)生輸出數(shù)據(jù)同步時(shí)鐘(包括正、反兩種相位)。
2 信號源PCB板設(shè)計(jì)
由于該信號源PCB板含有數(shù)字及模擬兩種電路,使得PCB板的設(shè)計(jì)非常關(guān)鍵。如PCB設(shè)計(jì)不當(dāng),將使DAC電路輸出的模擬信號噪聲增大,從而影響信號源的性能。
在該P(yáng)CB設(shè)計(jì)中,主要考慮兩個(gè)因素,一是電源濾波,另一個(gè)是接地。
在電源入口處,應(yīng)當(dāng)接入一個(gè)幾十微法的鉭電解電容和一個(gè)0.1μF的獨(dú)石電容。數(shù)字電路部分的電源濾波一般只需在數(shù)字IC的電源端用一只0.1μF或0.01μF的獨(dú)石電容進(jìn)行旁路濾波。該電容必須盡量靠近數(shù)字IC的電源引腳處,并且接地端要直接接入大面積的地線,否則收效甚微(見圖6)。模擬電路的5V電源應(yīng)當(dāng)和數(shù)字電路的5V電源分開走線,中間用磁珠加以隔離,以消除數(shù)字電路引起電源波動(dòng)對模擬電路的影響。DAC電路的運(yùn)放要同時(shí)進(jìn)行高頻低頻濾波,即在各運(yùn)放在正負(fù)電源端同時(shí)采用數(shù)微法的鉭電解和0.1μF的獨(dú)石電容進(jìn)行旁路。如果使用開關(guān)電源,則運(yùn)放的正負(fù)12V電源都要用磁珠串聯(lián)以減輕開關(guān)噪聲對輸出信號的影響。
相對于電源濾波,接地問題尤為重要。接地問題的關(guān)鍵是采用單點(diǎn)共地技術(shù),即數(shù)字電路和模擬電路兩部分的地線在PCB板上嚴(yán)格分開,只在一點(diǎn)進(jìn)行共地連接,該點(diǎn)稱為星點(diǎn)(STAR POINT)。該技術(shù)能抑制大部分模數(shù)混合電路中特有的數(shù)字噪聲對模擬電路的影響。而且根據(jù)理論和實(shí)際經(jīng)驗(yàn),模擬部分應(yīng)當(dāng)置于靠近電源入口的一端。
3 軟件設(shè)計(jì)
軟件采用專為虛擬儀器設(shè)計(jì)的LabWindows/CVI來完成程序的主體及界面設(shè)計(jì),使得該信號源的軟件界面具有真實(shí)儀器的面板風(fēng)格。由于計(jì)算機(jī)并口只使用I/O空間,并且多數(shù)操作系統(tǒng)(如WINDOWS9X)都沒有對I/O端口進(jìn)行屏蔽,軟件的控制和數(shù)據(jù)傳輸部分就非常簡單,直接使用I/O函數(shù)即可(LabWindows/CVI提供相應(yīng)函數(shù)支持)。軟件的主要工作是產(chǎn)生所需特定信號的數(shù)據(jù)。根據(jù)需要,可以產(chǎn)生兩路8位或單路16位的信號數(shù)據(jù),其中16位的數(shù)據(jù)信號要分為高低8位兩部分?jǐn)?shù)據(jù)分別傳送。需要注意的是,如果信號數(shù)據(jù)是16位,則DAC電路輸出的兩路模擬信號與輸出數(shù)據(jù)是不一致的,只有其中一路可以粗略地觀察到該信號波形(數(shù)據(jù)高8位的波形)。為了使用多種工具(如Matlab等)產(chǎn)生的信號數(shù)據(jù),軟件在產(chǎn)生常用信號的基礎(chǔ)上,可選擇讀取數(shù)據(jù)文件的方式,從而可以更快更靈活地得到各種特定信號的輸出。
評論
查看更多