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