http://www.kadhoai.com.cn 2026-04-07 20:18:59 來源:傳感器資訊
目前市場上有很多種數據采集設備可用於在PC上記錄數據,如NationalInstrument的LabVIEW,不過這類設備的傳感器件開始越來越多地采用USB接口而不是RS232或其他傳統接口。過去在嵌入式係統中應用USB設備需要性能相對較強的硬件,要帶有USBHost控製器接口、RTOS以及USB軟件驅動,結果因USBHost功能實施成本的原因設計工程師一直都不太願意在小型8位或16位MCU係統上增加USB設備。但隨著最新一代智能USBHost控製器IC的推出,與MCU配合使用不僅可為PC應用使用USB數據采集設備,而且還可將數據存儲在低成本高容量的閃存盤上。
數據記錄應用
第一個應用實例顯示了一個MCU控製器和一個帶有兩個端口的FTDIVNC1LUSBHost控製器:一個用於數據傳感器件讀取信息,另一個用於閃存盤以存儲信息。MCU和USBHost控製器之間通過UART(或者SPI)命令監控接口進行通信,可使應用通過簡單的命令集控製USB設備。
應用原理框圖見圖1。這裏選擇的MCU是MicrochipPICDEM4演示板上的PIC18F1320,雖然它應該直接連到PIC係列其他成員以及其他MCU係列。MCU和VNC1L之間采用4線連接(再加上電源和地),連到PIC的EUSART(Tx和Rx)和兩個I/O端口,以進行RTS/CTS數據流控製。另外,4線SPI端口還可以通過直接位拆裂I/O端口實現。下麵提供了兩種方法的C語言源代碼。
該應用要求從一個DLPDesign的DLP-TILT2軸傾角傳感器讀取數據,然後以CSV格式將接收到的數據存在USB閃存盤上。當DLP-TILT模塊從USB總線接收到一個包含字母“z”的OUT數據包後,就會對傳感器電流讀數進行采樣,傾角傳感器讀數被一個IN數據包讀取。通過VNC1L監控器,OUT數據包可以和DSD(設備發送數據)命令一起發送,後麵跟著數據字節數和發送的數據。IN數據包和DRD(設備讀取數據)命令一起被接收,VNC1L將返回字節數和從設備讀出的所有數據。
由於USB需要將數據傳遞到數據包中,所以通常USB設備會有幾個毫秒的延遲,盡管這可以通過對傳感器數據提供更大的緩衝加以解決。當然,有些設計可能不需要USB傳感器件而隻是將數據存儲到閃存盤上,在數據采集應用中通常都是這種情況,此時MCU采樣模擬數據或者記錄外部源傳來的數據。由於無需探查USB設備,因此這樣可以得到更高的采集數據率。
數據采集應用
圖2顯示了一個模擬輸入應用。此例中我們還是使用MicrochipPICDEM4演示板上的PIC18F1320作為MCU。加速計模塊是意法半導體的STEVAL-MKI010V1,它連到PIC的模擬輸入端。PIC定期對該輸入進行采樣,結果送入FIFO緩衝器中,在軟件中執行,然後由VNC1L寫入存儲設備。
VNC1L監控器提供命令對USB閃存盤文件進行讀寫,它還有命令管理文件係統,可對文件及文件目錄進行建立、重命名以及刪除操作。
有了與USB設備進行通信的命令後,文件係統命令使用非常簡單。將數據寫入文件的順序是:使用OPW(打開準備寫入)命令,後麵緊跟文件名,然後是WRF(寫入文件),後麵是寫入字節數,然後是CLF(關閉文件),後麵還是跟著文件名。
USB閃存盤的標準扇區大小是512字節,因此要達到最好效果就是在寫入USB閃存盤之前提供512字節數據的緩存。USB閃存盤通常使用的文件係統是FAT12、FAT16或者FAT32,在這些係統中簇按需分配,這樣當簇沒有按順序排列時可能造成一些小的延遲,然而這通常隻是在那些內容快滿的盤上比較常見。
使用Vinculum
幾乎所有扇區容量為512字節和采用FAT文件係統的USB閃存盤都可以作為VNC1L的存儲設備。VNC1L的固件可以在現場進行升級,通過USB閃存盤上特別的升級文件或者通過其UART接口進行ROM升級。基於VNC1L設計的其它優點是當USB閃存盤沒有使用時它可以使其暫停以省電,而在執行文件操作期間自動喚醒,VNC1L本身也可進入低功耗睡眠模式並由微控製器應用喚醒。將USB設備協議及文件管理係統放到一個單獨的IC上可為嵌入式數據記錄或數據采集係統設計帶來很多好處,它可使低功耗8位和16位MCU訪問USB設備和閃存盤,而FTDI的VNC1L則以一種符合成本效益的方式實現了這一功能。