基于USB HID類(lèi)數(shù)據(jù)通信的直流電源監(jiān)控設(shè)計(jì)
要打開(kāi)USB設(shè)備就要利用HID類(lèi)驅(qū)動(dòng)提供的API,這些API在hid.lib和setupapi.lib中,圖6說(shuō)明了我們用到的API和使用這些API的流程。本文引用地址:http://www.ex-cimer.com/article/175749.htm
多媒體定時(shí)器提供了Windows系統(tǒng)下精準(zhǔn)定時(shí),本設(shè)計(jì)中使用每1ms中斷來(lái)使用PlotLab顯示實(shí)時(shí)波形,PlotLab是一個(gè)快速信號(hào)繪圖和可視化的VCL組件,由美國(guó)Mitov軟件公司基于自由OpenWire技術(shù)開(kāi)發(fā)的,它提供了虛擬示波器和瀑布圖等功能。設(shè)置完VC2010對(duì)PlotLab的地址后并includeCSLScope.h>后即可使用其提供的波形顯示API,例如使用Scope.Channels[0].Data.AddYPoint(Value)函數(shù)就可以在示波器0通道顯示序列中加入Value。為了提高界面的交互能力,本設(shè)計(jì)使用了多線程技術(shù),在VC2010中使用AfxBeginThread()函數(shù)可以建立線程并指定處理函數(shù)。
4 實(shí)驗(yàn)測(cè)試
在實(shí)驗(yàn)開(kāi)發(fā)板上實(shí)現(xiàn)了本設(shè)計(jì):下位機(jī)將上位機(jī)發(fā)送的數(shù)據(jù)回傳給上位機(jī),上位機(jī)顯示波形。圖7和圖8是在設(shè)定電源輸出為電壓1.111 V和電流2.222 A的情況下得到的,圖7是由BUS Hound軟件監(jiān)視USB接口所得,圖8是上位機(jī)界面。在圖7中可見(jiàn)數(shù)據(jù)與上位機(jī)發(fā)送的數(shù)據(jù)一致:電壓1.110V精確到毫伏則為1110對(duì)應(yīng)16數(shù)據(jù)包中7、6和5 3個(gè)字節(jié)數(shù)據(jù)為0X000456,電流2.221A精確到毫安則為2221對(duì)應(yīng)16數(shù)據(jù)包中4、3和2 3個(gè)字節(jié)數(shù)據(jù)為0X0008AD,其他數(shù)據(jù)為命令;也可以見(jiàn)到每次發(fā)送間隔并不是非常準(zhǔn)確的1ms,這是由于PC主機(jī)的windows系統(tǒng)并不是硬實(shí)時(shí)系統(tǒng),所以在主機(jī)要引入多媒體定時(shí)器以確保界面顯示的時(shí)間軸準(zhǔn)確。圖8是上位機(jī)界面截圖,可見(jiàn)其顯示的數(shù)據(jù)與收到的數(shù)據(jù)一致:輸出電流為2.221 A圖中Y軸精確到毫安即為2221,輸出電壓為1.110V圖中Y軸精確到毫伏即為1110,示波器的X軸為采樣點(diǎn)數(shù)目;另外PlotLab提供的示波器還具有放大縮小和保存波形等功能,這讓人機(jī)交互界面更加人性化。
5 結(jié)論
文中提出了一種以STM32F107VC為主控芯片具有USBHID類(lèi)數(shù)據(jù)通信功能的直流電源設(shè)計(jì)方案,文中詳細(xì)論述了如何在電源和PC上位機(jī)之間實(shí)現(xiàn)USB HID類(lèi)數(shù)據(jù)通信,最后運(yùn)用實(shí)驗(yàn)開(kāi)發(fā)板和PC實(shí)現(xiàn)了USB HID數(shù)據(jù)通信并完成上位機(jī)的界面的編寫(xiě),達(dá)到了預(yù)期的效果,證明了基于USBHID數(shù)據(jù)通信的電源監(jiān)控設(shè)計(jì)方案的可行性和穩(wěn)定性。
pid控制器相關(guān)文章:pid控制器原理
評(píng)論