999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于HID的開關控制系統設計

2021-12-10 02:11:36譚汝浩韋紅錄黃冬梅
視聽 2021年12期
關鍵詞:調試報告數據庫

譚汝浩 韋紅錄 黃冬梅

一、概述

廣播電視發射系統中信號源子系統設備繁多,有衛星信號接收機、光纖信號解碼器、信號源切換器等重要設備。若這些設備發生故障,很可能致使廣播電視節目信號中斷,導致頻點靜音靜幀等現象,造成停播事故。臺站原有的電源復位器功能單一,自動化程度低,通道數量少,很多設備電源接入到同一通道上。若某個設備故障需要復位重啟,對該設備接入的通道復位時,整個通道的設備都會被復位重啟,這樣就有可能導致其他設備工作異常,造成停播現象。因此,可以采用一個新的解決方案,即采用USB-HID控制信號源系統設備電源。USB-HID是基于USB通信的,與電源復位器通信方式不同,后者采用網絡通信,兩者互不影響,因此還可以串聯組合運行。

USB-HID是Universal Serial Bus-Human Interface Device的縮寫,HID設備通常是鼠標、鍵盤、游戲手柄等,不過HID設備并不一定要有人機接口,只要符合HID類別規范的設備都是HID設備。HID通信相對簡單,響應快,所以比較適合用作控制設備。交換的數據需要存儲在稱為報表(report)的結構內,設備固件必須支持HID報表格式。相對其他USB設備,HID主要由控制傳輸和中斷傳輸來傳送與接收數據。報表的格式非常有彈性,可以處理任何類別的數據。HID類別設備的規范是Device Class Definition for Human Interface Devices①。另外還有一份文件 HID Usage Tables②,用來定義讓主機了解以及使用HID數據的數值。

二、HID底層通信

現有資源為一塊HID繼電器控制板,配套資料是一份DLL及其頭文件,沒有源碼,根據現有資源進行反匯編學習HID通信原理。使用OllyDbg對該DLL進行調試。圖1是OllyDbg調試界面,區域1是反匯編指令窗口,第一列是地址欄,第二列是機器碼,第三列是匯編代碼,第四列是注釋,匯編指令眾多但是常用的很少,這點服從二八定律,少量的指令完成大部分功能。區域2是CPU寄存器窗口,最重要的是前面9個寄存器,這9個寄存器保存著當前程序段的運行參數、結果等重要信息,各個寄存器的說明詳見參考文獻③。區域3是數據窗口,在這里查看內存數據,常量數據一般都存放在此處,例如常用數值、字符串等。在區域1和2中,右鍵一個地址指針即可跟隨轉存到這里查看該地址的內存數據。區域4是棧窗口,棧通常用于保存臨時變量,棧操作push是將目標壓棧,pop將棧頂彈出到目標。除了這兩個操作還有棧對齊,保證棧頂指針為某字節的整數倍;升棧,分配局部變量空間;降棧,刪除棧部分數據。

圖1 OllyDbg調試界面

根據頭文件分析DLL的導出函數及其傳入參數類型和返回參數類型。調試過程中DLL所用到的Win32Api會被OllyDbg標示出來,可以從注釋中看到是什么Api,而所用到的HIDDLL的Api沒有標記,要手動添加注釋信息。整個通信的建立過程都是基于Win32Api和HIDDLL的Api完成的。

經過耐心的跟蹤調試得到如圖2的通信流程圖。其中SetupDiGetDeviceInterfaceDetailA函數連續調用兩次,第一次獲得required_size參數,第二次將required_size傳入獲得設備詳細信息。CreateFile函數也是連續調用兩次,第一次ShareMode參數為空,如果是鼠標、鍵盤等獨占設備是不能通過CreateFile打開的,將會在此返回失敗,相當于在此過濾鼠標、鍵盤等獨占設備;第二次ShareMode參數為3,函數成功返回HID設備句柄,設備句柄是與設備通信的唯一標識。通信階段使用DeviceIoControl函數向HID設備發起查詢請求,獲得特征報告(Feature Report),該設備自定義的序列號就在特征報告里面,繼電器狀態也包含在特征報告里。HidD_SetFeature函數用于發送特征報告,設置繼電器狀態。

圖2 流程圖

三、固件

固件開發過程需要用到Bus Hound。Bus Hound是一個USB通用的強大的調試工具,類似于網絡抓包工具,用于抓取電腦總線數據,還可以模擬發送請求數據。圖3是Bus Hound調試界面。21.0表示21號設備端點0,CTL表示主機發送控制請求,請求內容為其后的Data,GET DESCRIPTOR表示該請求為獲取描述符。IN表示設備發送數據到主機。圖中的數據是設備上電枚舉階段發生的數據交換。共四條GET DESCRIPTOR,第一條描述符為設備描述符,第二條獲取配置描述符長度,第三條根據長度再次請求配置描述符,第四條獲取報告描述符。設備描述符和配置描述符為USB通用,報告描述符為HID傳輸的數據用途(usage)上的說明。至此,獲得了HID固件關鍵的三個描述符。報告描述符的用法和修改參照HID Usage Tables。官網還有報告描述符工具提供使用。

圖3 Bus Hound調試界面

MCU采用stm32f407vet6,從stc官網獲取HID固件庫④。使用固件庫參照HID協議進行修改調試。這里的主要問題是我們沿用舊設備的數據交換方式,即特征報告(Feature Report),上位機發送請求特征報告失敗返回0xC0000004,查詢HID協議找到7.2 Class-Specific Requests(特殊請求),7.2.2 Set_Report Request有說明“A device might choose to ignore input Set_Report requests as meaningless.”,由此得知固件默認不處理特征報告。因此要添加對特征報告的處理,7.2 Class-Specific Requests查找發現7.2.4 Set_Idle Request這一請求是處理成功的。于是在固件庫找到Set_Idle Request的處理,在其同級增加條件分支完成添加特征報告的處理,使用端點0收發特征報告數據。

四、數據庫

臺站主控電腦使用SQL Server處理數據,各個設備狀態被相應的上位機實時更新到數據庫,通過查詢數據庫獲取設備狀態,相當于借助數據庫與其他上位機進行進程間通信。

為模擬相關環境在自己電腦上安裝SQL Server和SSMS。添加數據庫和數據表,添加數據元組示例。客戶端對數據庫的操作只有讀取,因此采用sqlcmd命令行獲取數據比較簡便,使用popen函數執行命令行獲取返回的數據。sqlcmd的使用比較簡單,需要的參數有-S服務器、-U用戶名、-P密碼、-d使用數據庫名稱、-Q查詢命令(sql查詢語句)。圖4為在我的電腦的模擬環境中進行查詢得到的結果。

圖4 命令行查詢數據

五、端口拓展

為了獲得更多的控制通道,以及預留IO口做其他用途,使用74HC595進行端口拓展。74HC595是8位串行輸入/輸出或者并行輸出移位寄存器,具有高阻、關、斷狀態。圖5是其真值表。通過將串行數據輸出管腳SQH級聯到下一個74HC595的SI輸入管腳達到加長拓展。OE拉低SCLR拉高,需要控制的有時鐘輸入SCK、鎖存信號RCK和數據源SI,只需要三個MCU IO口即可控制數位寄存器狀態。最后通過ULN2803驅動繼電器。

圖5 74HC595真值表

六、客戶端

客戶端工作流程如圖6所示,實現自動控制和接管控制。綜合考慮數據庫查詢壓力和信號快速恢復,設定每秒查詢一次設備狀態。使用MFC對話框設計一個簡單的界面,添加接管按鈕、各個設備開關按鈕,在初始化函數中鏈接底層通信DLL,完成客戶端的開發工作。

圖6 客戶端工作流程

七、總結

自動控制只開發了信號源部分,實現發現切換器故障無輸出關閉切換器電源,發現設備通信異常重啟復位恢復通信等功能。手動控制支持更多端口,可以控制其他設備,例如,鄉鎮熊貓數字電視發射機無輸出,控制其復位。

注釋:

①Device Class Definition for Human Interface Devices.

②HID Usage Tables.

③劉穎東.揭秘數據解密的關鍵技術[M].北京:人民郵電出版社,2009.

④STM32F10xxx USB-FS-Device firmware library.

猜你喜歡
調試報告數據庫
基于航拍無人機的設計與調試
電子制作(2018年12期)2018-08-01 00:47:44
FOCAS功能在機床調試中的開發與應用
一圖看懂十九大報告
數據庫
財經(2017年2期)2017-03-10 14:35:35
無線通信中頻線路窄帶臨界調試法及其應用
電子制作(2017年19期)2017-02-02 07:08:38
報告
南風窗(2016年26期)2016-12-24 21:48:09
數據庫
財經(2016年15期)2016-06-03 07:38:02
調壓柜的調試與試運行探討
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
主站蜘蛛池模板: 日韩一区精品视频一区二区| 香蕉视频在线观看www| 亚洲精品大秀视频| 91娇喘视频| 欧美综合激情| 国产毛片不卡| 91网红精品在线观看| 精品久久久久久久久久久| 国产日本欧美在线观看| 国产91久久久久久| 久久精品波多野结衣| 亚洲福利一区二区三区| 少妇精品网站| 久久精品一品道久久精品| 国产在线98福利播放视频免费| 无码日韩视频| 国产一区二区在线视频观看| 国产精品浪潮Av| 在线播放国产一区| 久久精品视频亚洲| 久久久久人妻一区精品色奶水| 亚洲日韩精品无码专区| 日本高清在线看免费观看| 国产亚洲高清视频| 日韩精品无码免费一区二区三区 | a毛片免费在线观看| 国产男人的天堂| 亚洲男人的天堂久久香蕉网| 国产精品va免费视频| 免费国产好深啊好涨好硬视频| 一级香蕉人体视频| 伊大人香蕉久久网欧美| 国产无遮挡裸体免费视频| 2020国产精品视频| 永久免费av网站可以直接看的| 波多野结衣无码视频在线观看| 色天天综合久久久久综合片| 午夜精品区| 欧美区一区| 一本久道久综合久久鬼色| 狠狠综合久久| 色综合天天操| 尤物在线观看乱码| 亚洲三级电影在线播放 | 成人国产免费| 五月婷婷丁香综合| 国产三级精品三级在线观看| 国产精品久久久久久久久久久久| 日韩在线第三页| 性欧美精品xxxx| 日韩免费视频播播| 国产丝袜精品| 爆乳熟妇一区二区三区| 91在线播放免费不卡无毒| 日韩不卡高清视频| 国产欧美专区在线观看| 日韩国产高清无码| 欧美日韩高清在线| 国产精品久久久精品三级| 国产91九色在线播放| 农村乱人伦一区二区| 一级毛片在线直接观看| 久久精品国产91久久综合麻豆自制| 在线亚洲精品福利网址导航| 日韩毛片基地| 国产精品视频导航| 午夜爽爽视频| 黄片在线永久| 青草视频网站在线观看| 中文字幕免费在线视频| 国产在线98福利播放视频免费| 毛片免费在线| 成年片色大黄全免费网站久久| 成人一级黄色毛片| 国产精品一线天| 中文无码日韩精品| 国产成人亚洲毛片| 久久久久人妻一区精品色奶水| 无码啪啪精品天堂浪潮av| 狠狠色综合网| 国产成人三级在线观看视频| 国产在线小视频|