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