STM32F103x的USB多路數據采集系統設計
2.2 STM32F103x的ADC模塊
STM32F103x系列微控制器所帶的2個(gè)12位ADC是一種逐次逼近型模擬數字轉換器。它有16個(gè)外部通道,可測量16個(gè)外部信號源。各通道的A/D 轉換可以是單次、連續、掃描或不連續模式執行,其轉換結果可以左對齊或右對齊方式存儲在16位數據存儲器中。ADC轉換頻率最高可達1 MHz,且每個(gè)通道的采樣間隔時(shí)間均可獨立編程設置。在通道轉換期間,ADC能產(chǎn)生DMA請求,使DMA來(lái)傳輸ADC轉換值,提高了數據傳輸的效率。 ADC模塊的結構示意圖如圖2所示。
2.3 STM32F103x的USB2.0全速設備接口模塊
USB接口模塊為上位機和由微控制器實(shí)現的功能設備之間提供了符合USB規范的通信連接。USB接口模塊通過(guò)和微控制器共享一塊專(zhuān)用的數據緩沖區實(shí)現上位機和系統存儲器之間的數據傳輸。這塊專(zhuān)用數據緩沖區的大小由所使用的端點(diǎn)數目和每個(gè)端點(diǎn)最大的數據分組大小來(lái)決定,每個(gè)端點(diǎn)最大可使用512字節緩沖區,最多可用于16個(gè)單向或8個(gè)雙向端點(diǎn)。USB接口模塊根據UJSB
規范實(shí)現了令牌分組的檢測,數據發(fā)送/接收的處理和握手分組的處理。整個(gè)傳輸的數據格式由硬件自動(dòng)生成,其中包括CRC的生成和校驗。USB2.0全速設備接口模塊的結構示意圖如圖3所示。
3 數據采集系統軟件設計
數據采集系統軟件設計主要包括設備固件程序設計和上位機應用程序設計兩部分。
3.1 設備固件程序
設備固件程序設計的兩個(gè)主要部分是ADC模塊的配置和USB模塊的配置與通信。
(1)ADC模塊的配置
意法半導體公司針對ARM的32位STM32F103x系列MCU提供了固件庫。該固件庫提供了包括ADC在內的各種功能模塊的軟件使用接口,使用該固件庫可以有效節省用戶(hù)產(chǎn)品的開(kāi)發(fā)和調試時(shí)間。利用該庫,本設計中ADC的配置代碼如下:
ADC校準之后通過(guò)函數ADC_SoftwareStart-ConvCmd(ADC1,ENABLE)即可啟動(dòng)A/D轉換。
評論