999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

STM32CubeMX的全速USB通信及測速模塊設計*

2018-09-07 02:31:50,,,
單片機與嵌入式系統應用 2018年9期
關鍵詞:程序設備設計

,,,

(西安工程大學 電子信息學院,西安 710048)

引 言

USB設備因具備傳輸速率快,且通信較為穩定、抗擾能力強以及便于插拔等特性,成為電子通信設計、有線數據傳輸中首選的通信接口[1]。其中USB1.0協議的全速USB設備理論速率可達12 Mbps,USB2.0協議的高速USB設備理論速率可達480 Mbps。

目前市場上大多數微處理器都具備USB功能但不同芯片的集成度不同,主要分為USB芯片集成于處理器內部和需要外擴USB芯片兩種模式[2]。當芯片內部集成時,可以有效降低外部電路設計的復雜性[3]。故在數據傳輸速率要求不是很高的情況下,選用適當的設計方式可以有效提高設計效率[4]。但與此同時USB設備通信協議以及底層驅動設計的復雜性仍然是制約USB應用的主要原因[5],在傳統USB開發中不僅要針對USB從機進行相應的定義,還要在主機設備上編寫運行相應驅動才能最終實現通信[6-7]。

本設計方案以USB數據采集[8]為設計背景,采用ST(意法半導體)開發的基于HAL庫的STM32CubeMX快速完成USB從機端的通信協議配置[9-10],USB主機端使用LabVIEW編寫,并借助NI-VISA軟件生成USB驅動[11-13],完成USB鏈接,實現主機、從機之間的全速USB設計,從而極大節省開發中底層驅動及通信協議開發的時間,降低了USB通信開發的難度[14]。

1 全速USB通信模塊方案設計

本設計由作為數據采集核心的STM32F4x部分,以及在PC上由LabVIEW編寫的包括采集數據展示以及速率測試等功能的數據處理部分構成[15]。其中數據采集入口為STM32F4x本身所帶有的片上A/D轉換器來實現,通信部分由片上全速USB實現,無需進行外擴USB高速芯片電路設計[16],因而采集端主要由STM32F4x芯片以及相應的外圍電路和STM32CubeMX生成再由MDK keil5進行編譯的主程序構成[17]。PC端主要由LabVIEW編寫的可供鍵入采集指令以及進行后期數據展示的上位機程序和利用NI-VISA生成的用于識別接口的驅動構成[18-20]。其程序流程為通過PC端LabVIEW程序發送數據采集持續時間等指令,啟動采集端開始采集數據,經過A/D轉換后由DMA傳輸至待發送緩存區,通過全速USB反饋至PC端予以展示,同時對其傳輸速率等進行實時測定。其總體框圖如圖1所示。

圖1 基于STM32的全速USB通信模塊設計方案

2 全速USB通信硬件設計

本文提出的全速USB通信模塊的設計方案以基于STM32的USB數據采集器為設計背景,主要構成為STM32F4x的最小系統,因USB1.0傳輸協議傳輸帶寬為12 Mbps,即理想環境下傳輸速率最大可達1.5 MB/s,可滿足設計需求,故設計中無需外擴高速USB芯片,只需將全速USB引腳引出至USB接口即可,但實際電路設計中需注意USB中的D+、D-與STM32F4x的連接走線需遵循平行等長的原則,否則可能出現USB無法識別或識別為未知設備而無法通信等問題。實際電路原理如圖2所示。

圖2 USB通信模塊從機原理圖

3 USB數據采集器軟件設計

本設計中軟件部分包括以LabVIEW編寫的PC端程序,以及基于STM32CubeMX生成初始代碼再經過MDK編譯的采集端程序。最后通過二者之間的通信來共同完成USB數據采集器的設計。

3.1 STM32F4x全速USB通信模塊從機程序設計

本部分程序主要包括作為STM32F4x的數據處理程序以及USB通信程序。首先利用STM32CubeMX進行硬件初始化程序配置,從而完成原始代碼生成。其配置過程為:首先在STM32CubeMX中新建STM32F4x的工程,本設計選用的芯片型號為STM32F4IGT6,在新建工程時根據微處理器的型號進行選擇,系列 Series 中選擇STM32F4,引腳Lines中STM32F407/417,封裝中Package選擇STM32F407IGTx,由此完成硬件的選擇;之后使能相關引腳并完成引腳定義,如使能全速USB功能引腳PA11、PA12,以及其它功能引腳。

根據設計需求在時鐘樹中通過分頻以及倍乘等工具完成時鐘的配置,之后對所用到的引腳進行初始狀態的定義,例如對GPIO口的輸入/輸出設計,以及ADC入口的狀態等進行定義,隨后利用報告生成模塊生成整體配置的報告文件,進行核對確認無誤后即可生成基于HAL庫的初始代碼。

STM32CubeMX可生成支持EWARM、MDK等多個編譯器,此處選擇MDK編譯器生成工程。系統開始運行后首先進行初始化操作,硬件中間層代碼在STM32CubeMX配置中已經生成,在MDK中主要完成主程序的編寫。主程序主要包含STM32F4x的硬件初始化、采集數據緩存處理、USB通信程序三個部分。

STM32F4x初始化主要包括:重置所有外設,初始化Flash的HAL_Init()函數,系統時鐘配置SystemClock_Config()函數,以及初始化I/O的MX_GPIO_Init()函數等。同時需要進行USB協議棧初始化,包括初始化設備庫、添加支持類和啟動設備庫。完成初始化設置之后即可進行USB發送程序編寫,首先設置1024字節的緩存區UserTxBuffer[1024],對緩存區進行按位清零,判定USB接收標志位(USB_FS_Receive_Flag)是否為0,若不為0,則進行清零操作,當標志位清零后,開始通過庫函數CDC_Transmit_FS進行數據的發送,傳輸過程借鑒乒乓傳輸模式,將傳輸緩存區按順序分為前后兩段,每段設置為512,發送過程中每存滿512長度即進行一次傳輸,同時另半區繼續進行緩存操作以提高程序運行效率。最后進行發送數據量的判斷,若發送數據幀數滿足預設值,則發送幀計數清零,程序跳回,判斷USB標志位操作重新開始下一循環,若規定時間內未發滿設定幀數,則回到USB標志清零處進行單次發送以滿足條件。其程序流程如圖3所示。

圖3 采集端USB通信主程序流程圖

3.2 基于LabVIEW的USB主機端程序設計

主機端程序由LabVIEW編寫,由前面板和后面板兩部分構成,其中前面板主要用于用戶操作。具體包含數據幀計數模塊、數據計數模塊、采集器選擇模塊、各通道采集持續時間定義模塊以及波形顯示模塊。本設計PC端系統選用的是Windows10操作系統,數據采集端所選用的通信方式為USB虛擬串口,故連接時需借助NI-VISA工具生成對應驅動以供PC端程序識別[16],此外后面板設計中需要用到的VISA函數如表1所列。

為了滿足數據通信的要求,首先應保證LabVIEW程序能夠成功鏈接到USB設備中,這部分通過表1中的VISA打開函數實現,在選定USB設備后通過創建數組函數以及VISA函數寫入采集持續時間等常量,隨后通過VISA讀取函數讀取數據采集器返回數據,并按照對應幀格式進行幀計數和數據計數。在讀取數據完成后,通過對數據進行隊列操作和數據類型轉換,最后通過數組創建函數生成波形數據,并通過波形顯示模塊予以展示。最后設置VISA關閉函數,當持續時間滿足鍵入值或通信出現錯誤時,關閉VISA函數停止數據采集。

表1 VISA函數

4 STM32全速USB通信模塊測試

本設計中的USB通信測試是基于STM32CubeMX設計的數據采集下位機程序發送數據到基于LabVIEW編寫的PC端程序的傳輸速率測試。方案設計速率要求為400 kbps。首先連接USB數據采集器至PC機,在設備管理器中可見NI-VISA設備,若所選設備的識別碼與采集端程序預設相同,鏈接成功;接下來發送采集命令給采集端。

測試通過在順序結構中設置兩個時間獲取控件來獲得傳輸開始到結束所用的時間,通過數據讀取計數模塊來統計數據個數,最后通過除法運算計算傳輸速率。因硬件干擾等產生的傳輸誤差導致速率波動過大,測速過程中為避免這種情況導致偶然性,故在LabVIEW上位機設計中采用了雙循環結構進行設計,其中內循環次數默認設計為100,即每傳輸100幀數據利用除法運算求出傳輸速率,并利用波形圖表予以顯示;最后利用LabVIEW中統計樣板中的Mean函數計算整體傳輸過程中的速率均值并通過顯示模塊展示,其中運行150 000 ms的測試結果如圖4所示,經過10次不同時長測試得出的傳輸速率如表2所列,從而使得使用者能夠清晰直觀地觀測傳輸過程中的速率情況。此外,實時速率的圖表顯示也方便了使用者對干擾原因的定位以及修改驗證。

圖4 速率測試結果

由于該方案是基于STM32的官方庫函數實現的,相比于直接針對寄存器的開發來說,庫函數版本具有開發便捷、操作難度小等特點,同時也有代碼量較大、程序運冗余較大而導致的程序運行時間較長等缺點,因而本方案實驗結果還存在優化可能,使用寄存器直接開發既可提升代碼效率也可獲取更高的效率。

表2 運行時間及平均速率

結 語

本文給出的設計方案以STM32F4IGT6為例,以8位數據采集器位應用背景,提出了一種基于STM32CubeMX的USB通信模塊設計方法,能夠高效、便捷地完成STM32微處理器與PC端 LabVIEW程序之間USB通信。

鄧鑫(研究生在讀),主要研究方向為信號與信息處理、嵌入式硬件設計。

猜你喜歡
程序設備設計
諧響應分析在設備減振中的應用
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
基于MPU6050簡單控制設備
電子制作(2018年11期)2018-08-04 03:26:08
“程序猿”的生活什么樣
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
500kV輸變電設備運行維護探討
工業設計(2016年12期)2016-04-16 02:52:00
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
主站蜘蛛池模板: 欧美亚洲中文精品三区| 亚洲成aⅴ人在线观看| 久久综合一个色综合网| 99久久精品免费视频| 国产国产人在线成免费视频狼人色| 欧美性猛交一区二区三区| 人妻无码中文字幕第一区| 国产精品亚洲а∨天堂免下载| 午夜福利免费视频| 久久久噜噜噜久久中文字幕色伊伊 | 国产制服丝袜91在线| 亚洲天天更新| 日韩亚洲高清一区二区| 亚洲精品福利网站| 国产AV毛片| 国产成人精品视频一区二区电影| 免费全部高H视频无码无遮掩| 精品超清无码视频在线观看| 亚洲国产成人久久精品软件| 四虎影视8848永久精品| 亚洲成A人V欧美综合| 亚洲第一天堂无码专区| 欧洲亚洲欧美国产日本高清| 自拍欧美亚洲| 国产高清在线丝袜精品一区| 欧美另类图片视频无弹跳第一页| 欧美国产在线精品17p| 国产99热| 国产日韩丝袜一二三区| 日本不卡视频在线| 国产午夜精品鲁丝片| 在线视频一区二区三区不卡| 国产日韩欧美在线播放| 日韩欧美高清视频| 五月天综合婷婷| 久久综合色天堂av| 国产91麻豆免费观看| 亚洲欧洲日本在线| 国产粉嫩粉嫩的18在线播放91| 亚洲综合色婷婷中文字幕| 欧美午夜视频在线| 制服丝袜亚洲| 91午夜福利在线观看| 国产手机在线小视频免费观看| 亚洲三级a| 国产乱码精品一区二区三区中文 | 午夜激情福利视频| 亚洲欧洲自拍拍偷午夜色无码| 色综合婷婷| 国产无码性爱一区二区三区| 成人毛片免费观看| 欧美精品亚洲精品日韩专区| 免费av一区二区三区在线| 国产麻豆福利av在线播放| 国产欧美精品一区aⅴ影院| 手机在线国产精品| 国产成人久久777777| 天堂岛国av无码免费无禁网站| 99草精品视频| 精品無碼一區在線觀看 | 在线观看无码av免费不卡网站| 久久亚洲美女精品国产精品| 72种姿势欧美久久久大黄蕉| 国产成人精品男人的天堂下载 | 亚洲午夜18| 精品视频一区在线观看| 这里只有精品国产| 三区在线视频| 亚洲黄网在线| 激情乱人伦| 青青青国产视频手机| 亚洲国产第一区二区香蕉| 香蕉99国内自产自拍视频| 欧美天堂在线| 爱爱影院18禁免费| 一区二区三区毛片无码| 国产欧美在线观看精品一区污| 免费中文字幕一级毛片| 亚洲床戏一区| 亚洲成人在线免费观看| 日韩无码视频播放| aaa国产一级毛片|