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