本文從本人的163博客搬遷至此。編程
幾年以來,一直擔任學校「虛擬儀器」課程教師。之前上課都以介紹LabVIEW編程爲主,硬件實驗一直沒有開展。此次借「西部高校實力提高工程」的機會,學院採購了一批NI的數據採集卡,終於有機會讓學生動手開展一點硬件實驗了。此次採購的是入門級的USB數據採集卡——USB-6009,NI沒有爲這卡提供外圍實驗電路,要用他上實驗課還得本身動手爲這個「小寶貝」設計幾個實驗,並配些外圍電路。接下來的幾篇博文,將分幾回介紹爲學生設計的實驗及外圍電路,寫到哪算哪吧。今天先從小寶貝工具USB-6009介紹起。(NI官方網站上介紹資料的內容就不原樣重複了,只把我以爲有用、有趣和你們會感興趣的內容摘一下)安全
在NI衆多的數據採集卡中,USB-6009能夠算是性能最低的了,價格也相對最低——官方渠道約小3000元(我的以爲仍是比國產的其餘數據採集卡仍是貴多了)。USB-6009性能不高,但「麻雀雖小,五臟俱全」,常見的功能包羅萬象,基本可以體現LabVIEW+NI數據採集卡的開發特色。先來張外觀照片。工具
再看看內部電路板(PCB的頂層,底層沒東西)。性能
1、USB-6009的內部構成測試
打開後蓋,看到USB-6009主要有兩個芯片,一個是Silicon Labs的單片機,另外一個是TI的十四位ADC,這兩個芯片決定了USB-6009的基本性能。網站
單片機上的激光絲印看不出它的型號,但「Silicon Labs」、「TQFP-32封裝」、「有USB DEVICE接口」幾個條件一綜合,大概能猜出來了:C8051F320——2.3KB RAM+16KB Flash。設計
TI的ADS7871是個功能挺全面的ADC。四個全差分通道,或變爲八個單端通道。其餘參數包括:14位分辨率;帶有片上PGA;參考電壓等都和USB-6009同樣。我的以爲這個ADC最大的缺點就是最高採樣率只有48KBPS。3d
2、USB-6009的模擬輸入blog
一、輸入範圍接口
ADS7871,雖然能夠接受差分形式的負電壓,但同時要求輸入電壓的絕對值不能爲負(0V到接近電源電壓)。組成USB-6009後,模擬輸入範圍有一個值得注意的參數變化:USB-6009的任意模擬輸入引腳均可以接受負電壓(具體可達-10V到+10V),也就是支持真正的雙極性輸入,這一點多是由USB-6009板子上的偏置調整電路作到的。就此要爲NI點贊,實在是大大方便了使用者。偏置電路的出廠較準,在產品的生產過程當中實在是比較麻煩的一件事情,這也許也是USB-6009價格較高的重要緣由之一。
二、模擬分辨率
ADS7871的分辨率是14bits,在-10V到+10V的狀況下,分辨率約爲1.22mV。在不少應用中,這個分辨率並不算很高,例如後面將要提到的半導體溫度傳感器測溫實驗中1.22mV的分辨率就顯得不太夠。
固然在不少狀況下,能夠在進入A/D轉換以前,對模擬信號進行放大以提升輸入其分辨率,這樣作的代價了是下降模擬信號的輸入範圍。例如,用PGA(可編程增益放大器)將信號放大10倍後ADC對放大前模擬信號分辨率將達到122uV,而輸入範圍將被限制在-1V到+1V之間。
值得注意的是NI對USB6009的設置很是有趣,只容許差分輸入模式的模擬通道使用PGA,而對單端模式的通道卻不能使用PGA。也就是說一旦在LabVIEW中將USB-6009的某個通道設置爲RSE模式(單端)後,不論怎樣配置其餘參數,這個通道的分辨率都將爲1.2mV。若是將USB-6009的某個通道設置爲差分模式後,LabVIEW會自動的根據該通道模擬輸入範圍參數來控制PGA的增益值,從而達到提升模擬分辨率的效果。所以在這種狀況下對模擬輸入最大值和最小值的設置將是很是重要的。
三、模擬輸入阻抗
ADS7871的輸入阻抗達到6M歐姆,但USB-6009的輸入阻抗僅爲150K歐姆左右,多是因爲輸入範圍調整形成的,在客觀上也起到了提升輸入電流,提高抗干擾能力的做用。但在進行某些高輸出阻抗的測試中,這可能致使測試失敗,須要當心。
四、緩衝FIFO
C8051F320的片上RAM只有2.3KB,這意味着USB-6009單次採集緩衝的大小不可能超過這個數量。在LabVIEW編程時,最好不要把各個通道的「每通道採樣數」之和設置到1K以上(每次採樣須要14bits緩衝寬度)。
2、USB-6009的模擬輸出
一、輸出範圍
USB-6009的輸出電壓範圍是0-5V,且不能用程序調整該電壓範圍。這與模擬輸入參數相差較大,在設計時須要特別注意,例如後面將要介紹的,用USB-6009測試三極管輸出特性曲線的例子中,就須要調整模擬輸出電壓範圍。
二、模擬輸出阻抗
爲保護USB-6009的模擬輸出電路,其輸出端串聯了一個50歐姆的輸出電阻。在使用中若是不注意這個輸出電阻,它可能會在後級電路的輸入阻抗的共同做用下,影響輸出的電壓值。
三、輸出刷新速度
USB-6009的模擬輸出很是奇怪:刷新速度只有150SPS!不知NI在這一點上是如何考慮的,這致使USB-6009基本沒法輸出有意義的時域波形,其模擬輸出只能產生控制電壓。
四、2.5V參考電壓輸出
這是由USB-6009輸出的參考電壓,在數字輸出一邊的第14腳,但應該屬於模擬輸出引腳,做用是供外部電路做爲參考電壓。使用時要注意,這個參考電壓的輸出阻抗較大,可達2K歐姆左右——這一點USB-6009的參考手冊沒有述及。
3、USB-6009的數字I/O
USB-6009共有12個數字I/O,分爲P0——八個和P1——四個。每一個均可以單獨配置爲「數字輸入」、「集電極開路輸出」或「推輓輸出」三種模式。
一、數字輸出
缺省狀況下,爲保證USB-6009的端口安全,當任意I/O被配置爲輸出時,它將採用集電極開路輸出。雖稱爲「集電極開路」,但並不是真正意義上的集電極開路。真實狀況是這樣的:該I/O的輸出集電極被一個4.7K的電阻弱上拉到5V電源。這也意味着,若是使用缺省輸出模式,最多隻能輸出1mA左右的拉電流——1mA即便只用來點亮一個小LED燈都很暗淡。在缺省的輸出模式下若是想得到較大輸出電流,應該採用灌電流形式:根據手冊可得到8.5mA灌電流。
固然也能夠採用「推輓輸出」模式,獲取較大的拉電流。但這種模式須要在LabVIEW中使用屬性節點功能來配置,且推輓模式使用的高電平爲3.3V。
二、數字輸入
使用數字輸入功能時,須要注意的是在「數字輸入」模式下,USB-6009的輸入阻抗較小。以鏈接觸摸按鍵爲例,須要使用1K歐姆左右的上拉電阻,才能使USB-6009讀到高電平。
未完待續…………