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