串行數(shù)據(jù)轉(zhuǎn)換器接口知識(shí)問答
問:我應(yīng)該在什么時(shí)候選擇具有異步串行接口的數(shù)據(jù)轉(zhuǎn)換器?
答:異步通信方式允許設(shè)備之間交換信息,不必借助于時(shí)鐘。為了使用相同的數(shù)據(jù)格式 ,必須對(duì)設(shè)備初始化,其中包括設(shè)置一種傳輸速率(通常用波特率表示,或位數(shù)每秒)。還應(yīng) 該規(guī)定轉(zhuǎn)換結(jié)果如何開始傳送和結(jié)束傳送。我們使用容易識(shí)別的帶有起始位和停止位的數(shù)據(jù) 序列來傳送數(shù)據(jù)。傳送過程還包括奇偶校驗(yàn)位,用來檢測(cè)設(shè)備出錯(cuò)。
圖106示出了AD1B60數(shù)字化信號(hào)調(diào)節(jié)器與PC機(jī)異步通信端口之間的接線圖。這是一種3 線雙向接口(為了簡明,地線省去未畫)。應(yīng)該注意發(fā)送線與接收線在線路的另一端位置交換 。
圖106 AD1B60與PC機(jī)之間的異步通信接口
異步通信線路對(duì)僅限于設(shè)備分散式通信應(yīng)用場合是很有用的。因?yàn)樵诿看蝹魉椭卸及?括起始位和停止位,所以設(shè)備在任何時(shí)間只要輸出其數(shù)據(jù)就可以開始通信。另外設(shè)備之間 的接線數(shù)目也減少了,因?yàn)闀r(shí)鐘和控制信號(hào)線都不需要了。
問:有一種ADC產(chǎn)品說明在串行接口中推薦使用非連續(xù)時(shí)鐘,為什么?
答:這種技術(shù)要求可能是指ADC在轉(zhuǎn)換過程期間要求其時(shí)鐘信號(hào)無效。有的ADC有這種要 求,因?yàn)檫B續(xù)的時(shí)鐘信號(hào)能夠饋送到ADC的模擬部分,反過來會(huì)影響轉(zhuǎn)換結(jié)果。如果I/O端 口有一個(gè)幀脈沖,那么連續(xù)的時(shí)鐘信號(hào)在轉(zhuǎn)換期間可能變成不連續(xù)。這個(gè)幀脈沖用作門控信 號(hào),只有在數(shù)據(jù)傳遞時(shí)才允許將串行時(shí)鐘送到ADC。
問:如何使設(shè)備與SPI或MICROWIRE接口標(biāo)準(zhǔn)兼容?
答:SPI(串行外圍接口)與MICROWIRE分別是美國摩托羅拉公司和國家半導(dǎo)體公司研制的 串行接口標(biāo)準(zhǔn)。大多數(shù)同步串行式數(shù)據(jù)轉(zhuǎn)換器都很容易與這兩種接口連接,但是在有些情況 下可能需要附加連接邏輯(glue logic)。
問:好,我放棄偏見,在我的當(dāng)前設(shè)計(jì)中決定使用串行ADC。我按照產(chǎn)品說明的技術(shù)要求 剛剛把線路接好。當(dāng)用MICROWIRE標(biāo)準(zhǔn)轉(zhuǎn)換結(jié)果時(shí),ADC的輸出好像總是FFF HEX (不論 模擬輸入電壓如何變化),這是怎么回事?
答:這或許是通信問題。首先我們需要檢查ADC與處理器之間的連接問題,即定時(shí)和控制 信號(hào)線是否接好。我們還需要檢查一下處理器的中斷結(jié)構(gòu)。與時(shí)序有關(guān)的可能誤差有許多。你要想檢查這個(gè)問題,首先將所有的時(shí)序信號(hào)要么接到邏輯分析儀上,要么接到多通道示波 器 上(至少需要3個(gè)通道才能同時(shí)檢測(cè)全部時(shí)序信號(hào))。你在儀器的熒光屏上應(yīng)該觀察到類似圖1 0.7所示的時(shí)序圖。首先保證從微處理器或從獨(dú)立的信號(hào)源產(chǎn)生一個(gè)啟動(dòng)轉(zhuǎn)換命令CONVST) 。常見的錯(cuò)誤是所施加的CONVST信號(hào)極性不對(duì)。雖然也能啟動(dòng)轉(zhuǎn)換,但不是按照你期望的時(shí) 序轉(zhuǎn) 換 。另外應(yīng)該記住的是,通常要求CONVST信號(hào)有一個(gè)最小的脈沖寬度(典型值約為50ns)。一般 來自快速微處理器的寫脈沖或讀脈沖寬度都不能滿足這個(gè)要求。如果脈沖寬度太窄,可用軟 件方法插入等待周期來增大脈沖寬度。
圖107 串行ADC時(shí)序圖
其次應(yīng)該保證在讀周期開始之前微處理器一直在等待模數(shù)轉(zhuǎn)換完成。為了使微處理器產(chǎn) 生中斷信號(hào),你的應(yīng)用軟件應(yīng)該知道完成A/D轉(zhuǎn)換所需要的時(shí)間,或等待ADC轉(zhuǎn)換結(jié)束(EOC) 發(fā)出的指示信號(hào)。還要保證EOC信號(hào)極性正確,以免ADC在轉(zhuǎn)換進(jìn)程中會(huì)產(chǎn)生中斷。如果微處 理器對(duì)中斷不響應(yīng),你應(yīng)該檢查軟件中斷的設(shè)置。
另外,如果轉(zhuǎn)換器尋址不對(duì),檢查一下串行時(shí)鐘序列(SCLK)的狀態(tài)也是很有必要的。正 如 前面的討論所述,有些DAC和ADC在連續(xù)時(shí)鐘作用下,工作不正常。除此以外,還有些DAC和A DC要求SCLK在某一指定狀態(tài)總得有一個(gè)閑音(idles)。
問:我現(xiàn)在已經(jīng)發(fā)現(xiàn)了我的軟件中的問題和一些解決方法,使問題有所改善。當(dāng)改變輸 入電壓時(shí),ADC輸出的數(shù)據(jù)也發(fā)生變化,但是轉(zhuǎn)換結(jié)果好像不可識(shí)別,這是怎么回事?
答:可能產(chǎn)生的誤差源仍然很多。ADC的轉(zhuǎn)換結(jié)果或者直接用二進(jìn)制數(shù)據(jù)形式表示,或者 用2的補(bǔ)碼形式表示(BCD碼用得不太多)。為了使微處理器接受合適的數(shù)據(jù)格式,應(yīng)該檢查它 的配置。如果微處理器的配置不能直接接受2的補(bǔ)碼,你應(yīng)該將轉(zhuǎn)換數(shù)據(jù)與100…00二進(jìn)制數(shù) 進(jìn)行異或操作,將其轉(zhuǎn)換成二進(jìn)制數(shù)。
通常利用串行時(shí)鐘的前沿(上升或下降沿)選通ADC的數(shù)據(jù)輸出并且進(jìn)入數(shù)據(jù)總線。然后 利用時(shí)鐘的后沿使數(shù)據(jù)進(jìn)入微處理器。應(yīng)該保證微處理器與ADC在同一轉(zhuǎn)換條件下正常工作 ,保證所有準(zhǔn)備時(shí)間和保持時(shí)間都滿足要求。如果串行ADC的轉(zhuǎn)換結(jié)果恰好是期望值的一半 或二 倍時(shí),這是一個(gè)告警信號(hào),它說明這個(gè)數(shù)字結(jié)果(尤其是MSB)是由于受錯(cuò)誤的時(shí)鐘邊沿作用 。同樣一個(gè)問題,對(duì)于串行DAC則表現(xiàn)為其輸出電壓恰好為期望值的一半或二倍。
驅(qū)動(dòng)轉(zhuǎn)換器的數(shù)字信號(hào)應(yīng)該干凈。過沖或欠沖除對(duì)器件可能引起長期損壞以外,還能產(chǎn) 生轉(zhuǎn)換誤差和通信誤差。圖108示出了用來驅(qū)動(dòng)單電源轉(zhuǎn)換器的時(shí)鐘輸入 具 有很大過沖的尖脈沖信號(hào)。在這種情況下,時(shí)鐘輸入驅(qū)動(dòng)PNP晶體管的基極。按照慣例,將 器件的P型襯底內(nèi)部連接到最負(fù)的電位,這里為地。在SCLK線上大于地電位以下03V的幅度 完 全能使N型晶體管的基極和P型襯底之間的寄生二極管開始導(dǎo)通。如果經(jīng)常出現(xiàn)這種情況,而 且作用時(shí)間很長,可能會(huì)導(dǎo)致器件損壞。
圖108 過沖或欠沖波形及其損壞器件的機(jī)理
評(píng)論