<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > EDA/PCB > 設(shè)計應(yīng)用 > 基于并口通訊的雙路高速可編程數(shù)字及模擬信號源設(shè)計

          基于并口通訊的雙路高速可編程數(shù)字及模擬信號源設(shè)計

          作者: 時間:2006-05-07 來源:網(wǎng)絡(luò) 收藏

          摘要:應(yīng)用EPP模式的并口通訊實現(xiàn)了一種可同時輸出數(shù)字和模擬信號的雙路可編程信號源;使用一片CPLD實現(xiàn)所有的接口邏輯和控制邏輯,并給出了相應(yīng)的PCB布線技巧??蓮V播應(yīng)用于各種DSP系統(tǒng)的調(diào)試。

          本文引用地址:http://www.ex-cimer.com/article/226433.htm

          關(guān)鍵詞:EPP 數(shù)字信號處理(DSP) 信號源 可編程 虛擬儀器

          大多數(shù)DSP應(yīng)用系統(tǒng)都包括一個前端的模/數(shù)轉(zhuǎn)換電路(ADC)。在測試高速數(shù)字信號處理(DSP)系統(tǒng)時,通常是做一個專用的模擬信號源(如雷達(dá)中頻模擬信號源等),加上一個為實際應(yīng)用特制的模/數(shù)轉(zhuǎn)換電路(ADC),以獲取與實際應(yīng)用相當(dāng)?shù)膶S眯盘枖?shù)據(jù)來調(diào)試該DSP系統(tǒng)。通常,模擬信號源、ADC及DSP系統(tǒng)是由不同的開發(fā)人員設(shè)計制作的。為了調(diào)試DSP系統(tǒng),需要各方人員協(xié)作,調(diào)試任務(wù)相當(dāng)繁雜。且不同的DSP系統(tǒng)調(diào)試需要不同的信號源和ADC,也是系統(tǒng)研發(fā)階段的難點。

          在多種調(diào)試DSP系統(tǒng)之后,設(shè)計并制作了一種高速雙路可編程信號源。它的輸出具有數(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)試。由于該信號源運用計算機(jī)產(chǎn)生所需的數(shù)據(jù)和控制信息,因此它也屬于通常所稱的虛擬儀器范疇。其應(yīng)用形式有兩種:①利用輸出的模擬信號替代專用的模擬信號源;②利用直接輸出的數(shù)字信號替代模擬信號源和ADC。兩種應(yīng)用分別如圖1和圖2所示。

          1 可編程信號源電路原理

          該信號源的基本設(shè)計思路是,由計算機(jī)編程產(chǎn)生所需的兩路信號數(shù)據(jù)(包括加噪數(shù)據(jù))。通過計算機(jī)并口(EPP模式)將數(shù)據(jù)分別傳到信號源的兩個高速數(shù)據(jù)緩沖區(qū)(兩個128K×8的SRAM),在信號源的內(nèi)部時鐘推動下將數(shù)據(jù)高速輸出;同時將相應(yīng)數(shù)據(jù)經(jīng)過兩路高速數(shù)/模轉(zhuǎn)換器(DAC)電路轉(zhuǎn)換成模擬信號同步輸出。其中數(shù)據(jù)輸出的長度以及輸出速率是可以設(shè)置的。

          信號源的所有邏輯及時序功能由一片CPLD(MACH4-128/64)完成,包括EPP模式并口的接口控制、數(shù)據(jù)存儲器的地址及讀寫信號產(chǎn)生、數(shù)據(jù)緩沖隔離控制、DAC控制、內(nèi)部時鐘控制、數(shù)據(jù)時鐘同步的產(chǎn)生。整個電路的原理結(jié)構(gòu)如圖3所示。

          1.1 EPP模式并口邏輯設(shè)計

          EPP模式的并口I/O空間除了標(biāo)準(zhǔn)接口(SPP)用到的3個端口以外,還增設(shè)了兩個雙向的8位端口,即地址端口和數(shù)據(jù)端口,它們分別占用基地址(通常為378H)的偏移量3和4處。正是這兩個新增的雙向端口使得并口EPP模式被廣泛開發(fā)應(yīng)用。這兩個端口從時序上是一樣的,由各自的選通脈沖信號來區(qū)分。在本信號源設(shè)計中,采用地址端口鎖存數(shù)據(jù)作為控制命令,數(shù)據(jù)端口用于傳送數(shù)據(jù),包括數(shù)據(jù)內(nèi)容、長度和輸出數(shù)率選擇。在EPP并口通訊協(xié)議中,地址寫周期時序如圖4所示。

          為正確完成一個EPP地址或數(shù)字的讀寫周期,需要正確產(chǎn)生一個等待信號(Waite#)。在EPP協(xié)議時序圖上,它比地址選通信號要推遲一些(如圖4)。如何產(chǎn)生這個等待信號是經(jīng)常困惑設(shè)計人員的問題。通過仔細(xì)研究協(xié)議規(guī)則,發(fā)現(xiàn)一個正常的讀寫周期是由等待信號來推動的。比如當(dāng)計算機(jī)向地址端口寫數(shù)據(jù)時,計算機(jī)的EPP接口邏輯首先使寫信號有效,然后監(jiān)視等待信號,如果為低,才施加選通信號(AddrStrobe#),之后繼續(xù)監(jiān)視等待信號,如果等待信號為高表明終端設(shè)備已取得數(shù)據(jù),從而撤消選通信號并結(jié)束寫周期。數(shù)據(jù)周期與地址周期類似。了解這一點之后,在讀寫數(shù)據(jù)或地址端口時,等待信號可以直接用選通信號取反來產(chǎn)生,只要速度上能保證在選通信號結(jié)束時可以正確讀出或者保存數(shù)據(jù);由于存在地址和數(shù)據(jù)兩個選通信號(Addr Strobe#和Data Strobe#),用它們的與非來產(chǎn)生該等待信號即可。

          1.2 地址產(chǎn)生

          本信號源的地址產(chǎn)生邏輯實際上是一個同步加計數(shù)器,用以產(chǎn)生順序加1的地址,只是它的同步時鐘有兩個來源。當(dāng)計算機(jī)通過并口寫數(shù)據(jù)時,它的計數(shù)時鐘由數(shù)據(jù)選通信號(Data Strobe#)來驅(qū)動,保證計算機(jī)每寫一個數(shù)據(jù)使得高速緩存器的地址加1;而當(dāng)信號源高速輸出數(shù)據(jù)時,計數(shù)時鐘由信號源的內(nèi)部時鐘驅(qū)動。它們的切換是由CPLD內(nèi)的控制寄存器來控制的。每次在計算機(jī)寫數(shù)據(jù)時,應(yīng)當(dāng)由計算機(jī)通過控制寄存器給計數(shù)器清零;而在信號源輸出數(shù)據(jù)時,清零信號由數(shù)據(jù)長度寄存器和當(dāng)前地址值的比較結(jié)果來確定,一旦地址值與數(shù)據(jù)長度寄存器相等,立即產(chǎn)生一個清零信號,以使數(shù)據(jù)從零地址處周期性重復(fù)輸出。該地址產(chǎn)生器的邏輯原理如圖5所示。

          1.3 內(nèi)部時鐘控制

          對內(nèi)部時鐘的控制決定了最終輸出的數(shù)據(jù)的速率?;緯r鐘由一個有源晶振產(chǎn)生,可以通過更換晶振來取得特定的輸出時鐘速率。同時提供對該時鐘的分頻選擇。該分頻器實際上是一個7位同步2進(jìn)制計數(shù)器,輸出晶振時鐘的2/4/8...128分頻量,由此提供一種有限但卻簡單的時鐘選擇。對時鐘的選擇可以用簡單的AHDL語言來完成設(shè)計。假設(shè)分頻器的輸出為Q6~Q0,時鐘為JTCLK,分頻選擇控制位為F2~F0,輸出時鐘為OUTCLK,相應(yīng)AHDL語言的Equations段如下:

          [Q6..Q0]:=[Q6..Q0]+1; 設(shè)計7位的二進(jìn)制計數(shù)器

          [Q6..Q0].clk=JTCLK; 計數(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分頻

          輸出時鐘OUTCLK分別用于地址計數(shù)器的計數(shù)時鐘驅(qū)動、DAC的轉(zhuǎn)換時鐘驅(qū)動以及產(chǎn)生輸出數(shù)據(jù)同步時鐘(包括正、反兩種相位)。

          2 信號源PCB板設(shè)計

          由于該信號源PCB板含有數(shù)字及模擬兩種電路,使得PCB板的設(shè)計非常關(guān)鍵。如PCB設(shè)計不當(dāng),將使DAC電路輸出的模擬信號噪聲增大,從而影響信號源的性能。

          在該P(yáng)CB設(shè)計中,主要考慮兩個因素,一是電源濾波,另一個是接地。

          在電源入口處,應(yīng)當(dāng)接入一個幾十微法的鉭電解電容和一個0.1μF的獨石電容。數(shù)字電路部分的電源濾波一般只需在數(shù)字IC的電源端用一只0.1μF或0.01μF的獨石電容進(jìn)行旁路濾波。該電容必須盡量靠近數(shù)字IC的電源引腳處,并且接地端要直接接入大面積的地線,否則收效甚微(見圖6)。模擬電路的5V電源應(yīng)當(dāng)和數(shù)字電路的5V電源分開走線,中間用磁珠加以隔離,以消除數(shù)字電路引起電源波動對模擬電路的影響。DAC電路的運放要同時進(jìn)行高頻低頻濾波,即在各運放在正負(fù)電源端同時采用數(shù)微法的鉭電解和0.1μF的獨石電容進(jìn)行旁路。如果使用開關(guān)電源,則運放的正負(fù)12V電源都要用磁珠串聯(lián)以減輕開關(guān)噪聲對輸出信號的影響。

          相對于電源濾波,接地問題尤為重要。接地問題的關(guān)鍵是采用單點共地技術(shù),即數(shù)字電路和模擬電路兩部分的地線在PCB板上嚴(yán)格分開,只在一點進(jìn)行共地連接,該點稱為星點(STAR POINT)。該技術(shù)能抑制大部分模數(shù)混合電路中特有的數(shù)字噪聲對模擬電路的影響。而且根據(jù)理論和實際經(jīng)驗,模擬部分應(yīng)當(dāng)置于靠近電源入口的一端。

          3 軟件設(shè)計

          軟件采用專為虛擬儀器設(shè)計的LabWindows/CVI來完成程序的主體及界面設(shè)計,使得該信號源的軟件界面具有真實儀器的面板風(fēng)格。由于計算機(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ù)文件的方式,從而可以更快更靈活地得到各種特定信號的輸出。



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();