STM32F103x的USB多路數據采集系統設計
(2)USB模塊的配置與通信
意法半導體公司還提供了針對STM32F系列的USB開發工具包。該工具包是一個完整的固件和軟件包,包括所有USB傳輸方式的范例,大大減少了開發人員的工作量。利用USB工具包主要完成對IJSB模塊的配置及與USB主機(即上位機)之間的通信。
USB規范定義了4種數據傳輸類型:控制傳輸、塊傳輸、中斷傳輸和同步傳輸。塊傳輸適用于傳輸大量的且對傳輸時間和傳輸速率均無要求的數據;中斷傳輸適用于傳輸少量或中量的且對傳輸時間有要求的數據;同步傳輸適用于傳輸大量的,速率恒定的且對傳輸時間有要求的數據;控制傳輸適用于傳輸少量的且對傳輸時間和傳輸速率均無要求,但必須保證數據傳輸的可靠性。
在本設計中,端點0為控制傳輸端點,實現USB設備上電后的配置過程;端點1為OUT中斷傳輸端點,用以接收上位機發送的命令,實現上位機對數據采集過程的控制;端點2為IN塊傳輸端點,將數據采集結果實時地傳送到上位機,供上位機進行數據分析和處理。利用意法半導體公司提供的USB開發工具包并參照范例,修改一些描述符(設備描述符、配置描述符、接口描述符和端點描述符等)和設備復位函數,添加相應的端點傳輸中斷服務程序等,即可方便地實現本系統的 USB設備開發。端點2的配置代碼如下:本文引用地址:http://www.104case.com/article/202648.htm
在設置端點2發送有效之后,USB模塊可自動完成端點2緩沖區的數據發送。
3.2 上位機應用程序
本設計采用一種使用NI-VISA和LabVIEW進行USB數據采集系統上位機程序開發的快速簡單而且有效的方法,從而避開傳統的Windows編程技術。通過在LabVIEW下調用NI-VISA子控件程序,可以方便地實現與USB設備的通信和應用程序界面的開發。
VISA(Virtual Instrument Software Architecture)是一個用來與各種儀器總線進行通信的高級應用編程接口(API),不受平臺、總線和環境的限制。在利用NI-VISA完成對 USB設備的驅動后,即可在LabVIEW開發環境中直接使用VISA面板對USB設備進行控制和通信。LabVIEW是當今國際上唯一的編譯型圖形化編程語言,能方便、快捷地進行應用程序開發。本系統利用Lab-VIEW設計的USB多路數據采集系統用戶界面如圖4所示。
本系統實現了對16路外部信號的實時采集。圖4中在實時波形顯示區域,可以實時地顯示4個通道的波形曲線。這4個通道通過選擇可以是16個通道中的任意一個通道。在實時數據顯示區域,能觀測到每一路數據采集的結果;在左側的控制及狀態顯示區域,可以實現設備選擇、采集過程的控制以及數據采集系統的工作狀態顯示。
結 語
本設計實現了基于STM32F103x的USB多路數據采集系統,以STM32F103x微控制器為主控芯片實現了外部信號的調理、采集、預處理和USB 數據傳輸,以及上位機應用程序的開發。主控芯片STM32F103x內部集成了豐富的功能模塊,使系統無需外擴大量芯片而能實現數據采集功能,降低了開發的復雜度和成本,達到了提高系統穩定性的目的。
評論