Q.我需要數(shù)據(jù)轉(zhuǎn)換器來適應狹小的空間,我懷疑串行接口會有所幫助。我需要知道什么才能選擇和使用一個?
A.讓我們首先看看串行接口的工作原理,然后將其與并行接口進行比較。通過這樣做,我們將消除一些關于串行數(shù)據(jù)轉(zhuǎn)換器的神話。
圖中所示為連接到ADSP-7890數(shù)字信號處理器(DSP)串行端口的8通道多路復用12位串行模數(shù)轉(zhuǎn)換器(ADC)AD2105。圖中還顯示了DSP用于與ADC通信的時序。構(gòu)成轉(zhuǎn)換結(jié)果的12位作為串行數(shù)據(jù)流通過單行傳輸。數(shù)據(jù)流還包括三個額外的位,用于標識AD7890多路復用器當前選擇的輸入通道。為了區(qū)分串行數(shù)據(jù)流的位,必須提供時鐘信號(SCLK),通常由DSP提供;但是,有時ADC會提供此時鐘作為輸出。DSP通常(但并非總是)提供一個額外的成幀脈沖,該脈沖在通信開始時激活一個周期,或者如圖所示(TFS/RFS)在傳輸期間處于活動狀態(tài)。
在本例中,DSP的串行端口用于對ADC中的內(nèi)部5位寄存器進行編程。寄存器的位控制諸如選擇要轉(zhuǎn)換的通道、將器件置于省電模式以及開始轉(zhuǎn)換等功能。很明顯,在這種情況下,串行接口必須是雙向的。
另一方面,并行ADC直接(或可能通過緩沖器)連接到與其接口的處理器的數(shù)據(jù)總線。圖中顯示了與ADSP-7892接口的AD2101。轉(zhuǎn)換完成后,AD7892中斷DSP,DSP通過單次讀取ADC的解碼存儲器地址來響應。
串行和并行數(shù)據(jù)轉(zhuǎn)換器之間的主要區(qū)別在于所需的接口線數(shù)量。從節(jié)省空間的角度來看,串行轉(zhuǎn)換器具有明顯的優(yōu)勢,因為減少了器件引腳數(shù)。這樣就可以將12位串行ADC或DAC封裝在8引腳DIP或SO封裝中。更重要的是,由于串行接口連接需要更少的PCB走線,因此節(jié)省了電路板空間。
Q.我的數(shù)模轉(zhuǎn)換器必須在物理上遠離中央處理器,并且彼此遠離。解決這個問題的最佳方法是什么?
A.最初,您必須決定是使用串行DAC還是并行DAC。使用并行 DAC,您可以將每個 DAC 映射到內(nèi)存映射的 I/O 位置,如圖所示。然后,只需對適當?shù)?I/O 位置執(zhí)行寫入命令即可對每個 DAC 進行編程。但是,這種配置有一個明顯的缺點。它需要一條并行數(shù)據(jù)總線以及一些控制信號,連接到所有遠程位置。顯然,可以只有兩根電線的串行接口更經(jīng)濟。
串行轉(zhuǎn)換器通常不能映射到處理器的內(nèi)存中。但是許多串行DAC可以連接到處理器的串行I / O端口。然后,處理器上的其他端口可用于生成芯片選擇信號,以單獨啟用DAC。片選信號需要從每個器件到接口的線路。但是處理器上可以配置為傳輸芯片選擇信號的線路數(shù)可能存在限制。
解決此問題的一種方法是使用可以菊花鏈連接在一起的串行DAC。該圖顯示了如何將多個DAC連接到單個I/O端口。每個DAC都有一個串行數(shù)據(jù)輸出(SDO)引腳,該引腳連接到鏈中下一個DAC的串行數(shù)據(jù)輸入(SDI)引腳。LDAC 和 SCLK 并聯(lián)饋送到鏈中的所有 DAC。由于時鐘輸入SDI的數(shù)據(jù)最終出現(xiàn)在SDO(N個時鐘周期后),因此單個I/O端口可以尋址多個DAC。但是,端口必須輸出長數(shù)據(jù)流(每個DAC的N位乘以鏈中的設備數(shù)量)。這種配置的最大優(yōu)點是不需要設備解碼。所有設備實際上都位于同一 I/O 位置。菊花鏈的主要缺點是可訪問性(或延遲)。為了改變單個DAC的狀態(tài),處理器仍必須從I/O端口輸出完整的數(shù)據(jù)流。
Q.如果串行數(shù)據(jù)轉(zhuǎn)換器節(jié)省了如此多的空間和電線,為什么它們不能用于每個空間敏感型應用?
A.串行接口的一個主要缺點是速度與空間的權(quán)衡。例如,要對并行DAC進行編程,只需將數(shù)據(jù)放在數(shù)據(jù)總線上,然后用單個脈沖將其時鐘輸入DAC。但是,當寫入串行DAC時,這些位必須按順序輸入(N位轉(zhuǎn)換器為N個時鐘脈沖),然后是負載脈沖。處理器的 I/O 端口花費相對較大的時間與串行轉(zhuǎn)換器通信。因此,吞吐速率高于500 ksps的串行轉(zhuǎn)換器并不常見。
Q.我的 8 位處理器沒有串行端口。有沒有辦法將AD12等串行7893位ADC連接到處理器的并行總線?
A.當然,可以使用外部移位寄存器來完成,該寄存器串行(和異步)加載,然后時鐘進入處理器的并行端口。但是,如果問題的意義是“沒有外部邏輯”,則可以像1位并行ADC一樣連接串行ADC。將轉(zhuǎn)換器的 SDATA 引腳連接到處理器的數(shù)據(jù)總線線路之一(它連接到圖中的 D0)。使用一些解碼邏輯,可以將轉(zhuǎn)換器映射到處理器的存儲器位置之一,以便可以使用 12 個連續(xù)的 Read 命令讀取轉(zhuǎn)換結(jié)果。然后,其他軟件命令將讀取的 12 字節(jié)的 LSB 集成到單個 12 位并行字中。
這種技術有時被稱為“位敲擊”,從軟件的角度來看效率非常低。但在處理器運行速度比轉(zhuǎn)換器快得多的應用中,這可能是可以接受的。
Q.在最后一個示例中,處理器寫入信號的門控版本用于在AD7893上開始轉(zhuǎn)換。這種方法有問題嗎?
A.我很高興你發(fā)現(xiàn)了這一點。在本例中,可以通過對AD7893的映射存儲器位置進行虛擬寫入來啟動轉(zhuǎn)換。不交換數(shù)據(jù),但處理器提供開始轉(zhuǎn)換所需的寫入脈沖。從硬件的角度來看,這種配置非常簡單,因為它避免了生成轉(zhuǎn)換信號的需要。但是,不建議將該技術用于必須定期對信號進行采樣的交流數(shù)據(jù)采集應用。即使處理器被編程為定期寫入ADC,寫入脈沖上的相位抖動也會嚴重降低可實現(xiàn)的信噪比(SNR)。門控過程可能會使寫入信號抖動更加嚴重。例如,采樣時鐘相位抖動電平僅為1 ns,會使理想的100 kHz正弦波的SNR降低到約60dB(小于10 dB有效分辨率)。還有一個額外的危險,即采樣信號上的過沖和噪聲會進一步降低模數(shù)轉(zhuǎn)換的完整性。
Q.什么時候應該選擇異步串行接口的轉(zhuǎn)換器?
A.異步鏈路允許設備相互交換未計時的數(shù)據(jù)。設備最初必須編程為使用相同的數(shù)據(jù)格式。這涉及設置特定的數(shù)據(jù)速率(通常以波特或每秒比特數(shù)表示)。一項規(guī)定如何啟動和結(jié)束傳輸?shù)墓s也是必要的。我們使用稱為開始位和停止位的可識別數(shù)據(jù)序列來做到這一點。傳輸還可能包括便于錯誤檢測的奇偶校驗位。
該圖顯示了AD1B60數(shù)字化信號調(diào)理器如何連接到PC的異步COM端口。這是一個 3 線雙向接口(為清楚起見,省略了接地線)。請注意,接收和傳輸線路在線路的另一端交換角色。
異步數(shù)據(jù)鏈路在設備僅偶爾通信的應用程序中非常有用。由于每次傳輸都包含開始位和停止位,因此設備可以隨時通過簡單地輸出其數(shù)據(jù)來啟動通信。設備之間的連接數(shù)量減少,因為不再需要時鐘和控制信號。
Q.我正在考慮的ADC數(shù)據(jù)手冊建議在串行接口上使用非連續(xù)時鐘。為什么?
A.該規(guī)范可能要求在轉(zhuǎn)換過程中時鐘保持非活動狀態(tài)。一些ADC之所以需要這樣做,是因為連續(xù)數(shù)據(jù)時鐘會饋入器件的模擬部分,并對轉(zhuǎn)換的完整性產(chǎn)生不利影響。如果I/O端口具有成幀脈沖,則在轉(zhuǎn)換期間可以中斷連續(xù)時鐘信號;它用作門控信號,僅在數(shù)據(jù)傳輸期間使串行時鐘連接到轉(zhuǎn)換器。
Q.是什么使器件與SPI或MICROWIRE兼容?
A.SPI(串行外設接口)和MICROWIRE是分別由摩托羅拉和美國國家半導體開發(fā)的串行接口標準。大多數(shù)同步串行轉(zhuǎn)換器可以很容易地連接到這些端口;但在某些情況下,可能需要額外的“膠水”邏輯。
問:好的我決定拋開偏見,在當前的設計中使用串行ADC。我剛剛按照數(shù)據(jù)表的規(guī)定將其連接起來。當我的微讀取轉(zhuǎn)換結(jié)果時,ADC似乎總是輸出FFFHEX。發(fā)生了什么事情?
A.也許您遇到了通信問題。我們需要查看ADC和處理器之間的連接,以及時序和控制信號是如何設置的。我們還需要查看中斷結(jié)構(gòu)。下一期將回到這個問題,討論設計串行接口時遇到的問題。
審核編輯:郭婷
-
dsp
+關注
關注
552文章
7920瀏覽量
347650 -
接口
+關注
關注
33文章
8366瀏覽量
150554 -
adc
+關注
關注
97文章
6348瀏覽量
543390
發(fā)布評論請先 登錄
相關推薦
評論