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