基于USB HID類數(shù)據(jù)通信的直流電源監(jiān)控設(shè)計
摘要:為了實現(xiàn)直流電源的監(jiān)控,提出了一種具有USB HID數(shù)據(jù)通信功能的直流電源設(shè)計方案。詳細論述了基于STM32 USB固件庫(USB-FS Device library V3.3)的自定義HID類下位機的實現(xiàn),介紹了如何在VC2010集成開發(fā)環(huán)境中編寫多線程上位機程序并運用PlotLab(一個快速信號繪圖和可視化的VCL組件)顯示實時波形,最后再以實驗開發(fā)板和PC實現(xiàn)了HID數(shù)據(jù)通信,證明了此監(jiān)控設(shè)計方案的可行性。
關(guān)鍵詞:STM32;USB HID;VC2010;固件庫
USB的“即插即用”使其成為了現(xiàn)行十分流行的計算機應(yīng)用接口,從最初的USB1.1到USB2.0及已經(jīng)出現(xiàn)的USB3.0協(xié)議,USB取得了很大的發(fā)展,并有取代RS232之趨勢,越來越多的電子設(shè)備開始包含USB接口,當電子設(shè)備擁有了USB接口,設(shè)備將會更易實現(xiàn)數(shù)據(jù)通信方便設(shè)備的使用和功能的擴展。
1 USB HID類簡介
在眾多的USB設(shè)備類型中,HID類是Windows完全支持的第一批設(shè)備類型,它是為一些人工的輸入輸出設(shè)備而設(shè)計的,連接到計算機的USB設(shè)備幾乎都包含HID類,用于信號控制。Windows系統(tǒng)自帶了HID類的驅(qū)動程序,所以使用HID類來實現(xiàn)數(shù)據(jù)通信將無需為其開發(fā)、安裝驅(qū)動,PC應(yīng)用程序可以直接使用Windows API與之進行通信,這樣將會大大的降低開發(fā)難度,縮短開發(fā)周期。
2 電源系統(tǒng)概述
直流電源基于STM32F107VC設(shè)計,可以通過電源的LCD和鍵盤或者PC上位機監(jiān)控電源,PC上位機可以設(shè)定電源的輸出并能以1 kHz或者100 kHz(只持續(xù)0.1 s)的采樣率觀察電源的輸入輸出波形。整個電源的系統(tǒng)簡化框圖如圖1所示,市電經(jīng)PFC(功率補償)后經(jīng)過不可控整流電路變成直流,STM32F107X主控模塊通過電源面板或者USB接口連接PC上位機實現(xiàn)用戶交互,同時STM32F107X利用AD檢測電源的輸入輸出,運用數(shù)字PID產(chǎn)生PWM控制BUCK電路將整流后的直流變換成用戶想要的輸出,單端反激電路為主控模塊提供5 V電源,這些與平常的BUCK直流電源相比除了擁有USB接口其他并無太多差異。整個下位機軟件流程圖如圖2所示,下位機程序在開始時初始化外設(shè)和定義全局變量,再開啟USB、DMA和定時器等中斷,之后就循環(huán)等待本地面板的控制并刷新面板,DMA在將AD采樣電源輸入輸出得到的數(shù)值存入4個全局變量之后產(chǎn)生中斷將4個全局變量根據(jù)發(fā)送模式送入USB發(fā)送緩沖區(qū),定時器定時利用這4個全局變量和PID算法控制電源的輸出,USB中斷將發(fā)送緩沖區(qū)的數(shù)據(jù)發(fā)送給上位機和將接收到的數(shù)據(jù)存入接受緩沖區(qū)并根據(jù)接收到的數(shù)據(jù)更改下位機的全局標志位。
USB HID類的速度有限,最大有效數(shù)據(jù)速度為64 kByte/s(最大1 kHz的傳輸頻率,每次最大傳輸64 Byte),本設(shè)計采用的速度是:16kBy te/s(1 kHz的傳輸頻率,每次傳輸16Byte);這樣在不使用緩存的情況下只能以1 kHz的采樣率顯示實時波形,為了顯示更高采樣率的波形本設(shè)計使用了12 k的緩沖區(qū)存儲100 kHz采樣率的數(shù)據(jù),12 K的緩沖區(qū)可以存儲1 000次采樣的數(shù)據(jù),在下位機采樣率為100 kHz的情況下1 000次采樣對于下位機是0.1 s鐘,但對于上位機卻是1秒鐘,所以上位機選擇100 kHz采樣率查看下位機輸入輸出的操作每秒鐘只能操作一次,這也能基本滿足諧波分析的需求。本設(shè)計中上下位機傳遞的16 Byte中每個字節(jié)的含義如圖3所示。
pid控制器相關(guān)文章:pid控制器原理
評論