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