新聞中心

        EEPW首頁 > 電源與新能源 > 設計應用 > 基于USB HID類數據通信的直流電源監控設計

        基于USB HID類數據通信的直流電源監控設計

        作者: 時間:2013-08-22 來源:網絡 收藏

        摘要:為了實現直流電源的監控,提出了一種具有數據通信功能的直流電源設計方案。詳細論述了基于 USB(USB-FS Device library V3.3)的自定義HID類下位機的實現,介紹了如何在集成開發環境中編寫多線程上位機程序并運用PlotLab(一個快速信號繪圖和可視化的VCL組件)顯示實時波形,最后再以實驗開發板和PC實現了HID數據通信,證明了此監控設計方案的可行性。
        關鍵詞:

        USB的“即插即用”使其成為了現行十分流行的計算機應用接口,從最初的USB1.1到USB2.0及已經出現的USB3.0協議,USB取得了很大的發展,并有取代RS232之趨勢,越來越多的電子設備開始包含USB接口,當電子設備擁有了USB接口,設備將會更易實現數據通信方便設備的使用和功能的擴展。

        1 類簡介
        在眾多的USB設備類型中,HID類是Windows完全支持的第一批設備類型,它是為一些人工的輸入輸出設備而設計的,連接到計算機的USB設備幾乎都包含HID類,用于信號控制。Windows系統自帶了HID類的驅動程序,所以使用HID類來實現數據通信將無需為其開發、安裝驅動,PC應用程序可以直接使用Windows API與之進行通信,這樣將會大大的降低開發難度,縮短開發周期。

        2 電源系統概述
        直流電源基于F107VC設計,可以通過電源的LCD和鍵盤或者PC上位機監控電源,PC上位機可以設定電源的輸出并能以1 kHz或者100 kHz(只持續0.1 s)的采樣率觀察電源的輸入輸出波形。整個電源的系統簡化框圖如圖1所示,市電經PFC(功率補償)后經過不可控整流電路變成直流,STM32F107X主控模塊通過電源面板或者USB接口連接PC上位機實現用戶交互,同時STM32F107X利用AD檢測電源的輸入輸出,運用數字PID產生PWM控制BUCK電路將整流后的直流變換成用戶想要的輸出,單端反激電路為主控模塊提供5 V電源,這些與平常的BUCK直流電源相比除了擁有USB接口其他并無太多差異。整個下位機軟件流程圖如圖2所示,下位機程序在開始時初始化外設和定義全局變量,再開啟USB、DMA和定時器等中斷,之后就循環等待本地面板的控制并刷新面板,DMA在將AD采樣電源輸入輸出得到的數值存入4個全局變量之后產生中斷將4個全局變量根據發送模式送入USB發送緩沖區,定時器定時利用這4個全局變量和PID算法控制電源的輸出,USB中斷將發送緩沖區的數據發送給上位機和將接收到的數據存入接受緩沖區并根據接收到的數據更改下位機的全局標志位。

        本文引用地址:http://www.104case.com/article/175749.htm

        a.JPG

        b.JPG


        USB HID類的速度有限,最大有效數據速度為64 kByte/s(最大1 kHz的傳輸頻率,每次最大傳輸64 Byte),本設計采用的速度是:16kBy te/s(1 kHz的傳輸頻率,每次傳輸16Byte);這樣在不使用緩存的情況下只能以1 kHz的采樣率顯示實時波形,為了顯示更高采樣率的波形本設計使用了12 k的緩沖區存儲100 kHz采樣率的數據,12 K的緩沖區可以存儲1 000次采樣的數據,在下位機采樣率為100 kHz的情況下1 000次采樣對于下位機是0.1 s鐘,但對于上位機卻是1秒鐘,所以上位機選擇100 kHz采樣率查看下位機輸入輸出的操作每秒鐘只能操作一次,這也能基本滿足諧波分析的需求。本設計中上下位機傳遞的16 Byte中每個字節的含義如圖3所示。

        c.JPG


        pid控制器相關文章:pid控制器原理



        上一頁 1 2 3 下一頁

        關鍵詞: STM32 USB HID VC2010 固件庫

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 吉林市| 上杭县| 盐山县| 辉南县| 都兰县| 东至县| 庆阳市| 奉化市| 寿阳县| 嫩江县| 东莞市| 甘洛县| 屯留县| 盘山县| 镇江市| 青田县| 抚宁县| 昌黎县| 体育| 临洮县| 临沧市| 纳雍县| 浦城县| 瓦房店市| 禄劝| 仪陇县| 石城县| 平山县| 湄潭县| 虹口区| 德昌县| 科尔| 漯河市| 江孜县| 法库县| 星子县| 正安县| 红河县| 喀喇沁旗| 辉县市| 深圳市|