簡單分析USB設備驅動框架(秒懂~)

2022年09月27日18:51:10 科技 1709

在生活、工作中經常會接觸到USB設備,如滑鼠、鍵盤、攝像頭、可移動硬碟、掃碼槍等。這些設備通過USB介面連接到電腦上後,電腦會立刻提示「檢測到新硬體...」、安裝驅動等。這裡需要強調下USB設備使用的是USB匯流排,window或Linux內核中都會自帶usb匯流排驅動,所以接上USB設備後,主機能夠立刻檢測到,提醒需要安裝設備驅動是指安裝USB設備驅動。

USB設備驅動使用USB匯流排,所以很多操作由USB匯流排驅動幫我們完成了,我們只需要的按照匯流排、設備、驅動框架來實現USB設備的驅動既可。USB設備數據的讀寫操作由匯流排驅動現在,我們可以直接使用匯流排讀取到的數據,然後解析這些數據的含義、再進行相關的操作就可以了(這裡需要注意的一點是USB匯流排驅動只提供USB設備的讀寫操作函數,這函數是通用的,即裡面的數據的含義匯流排驅動並不知道)。

USB設備驅動的框架圖下,具體的代碼可以參考內核中的/drivers/hid/usbhid/usbmouse.c

分配/設置usb_driver結構體,填充裡面的.id_table、.probe、.disconnect成員。
調用usb_register把usb_driver結構體註冊到內核中。

static struct usb_driver usbtouch_driver = {
	.name		= "myusb",
	.probe		= usbtouch_probe,
	.disconnect	= usbtouch_disconnect,
	.id_table	= usbtouch_devices,
};
 
static int __init usbtouch_init(void)
{
	return usb_register(&usbtouch_driver);
}
 
static void __exit usbtouch_cleanup(void)
{
	usb_deregister(&usbtouch_driver);
}

struct usb_driver中的id_table成員是用與和usb設備進行匹配的選項,表示這個驅動支持的設備。

.probe成員為函數指針,就是在設備和驅動匹配成功的時候執行。

.disconnect成員也為函數指針,在設備和驅動關聯成功後再斷開執行,如拔了USB設備或卸載USB設備驅動。


更多linux內核視頻教程文檔資料免費領取後台私信【內核】自行獲取.

簡單分析USB設備驅動框架(秒懂~) - 天天要聞

簡單分析USB設備驅動框架(秒懂~) - 天天要聞

簡單分析USB設備驅動框架(秒懂~) - 天天要聞

科技分類資訊推薦

特斯拉中國宣布:漲價 - 天天要聞

特斯拉中國宣布:漲價

(文/觀察者網周盛明 編輯/高莘)2025年7月1日,特斯拉中國宣布,Model 3長續航全輪驅動版車型售價上漲1萬元,至28.55萬元。 特斯拉中國 在漲價的同時,該車型的續航和加速得到了提升——CLTC續航由713km提升至753km,百公里加速時間由4.4秒提升至3.8秒。值得注意的是,特斯拉Model 3的其他兩個版本售價不變。Model 3後輪驅.
儲能與鋰電領域動態頻出:巨頭競逐、項目簽約與跨界調整並行 - 天天要聞

儲能與鋰電領域動態頻出:巨頭競逐、項目簽約與跨界調整並行

【環球網財經綜合報道】近期,儲能與鋰電領域動態不斷。陽光電源(300274.SZ)與寧德時代(300750.SZ)圍繞第三代儲能電芯定義權展開激烈爭奪。6月,陽光電源發布搭載684Ah電芯的新款儲能系統,電芯由欣旺達供應;寧德時代宣布587Ah電芯於4月投產。當前儲能行業處於二代向三代電芯過渡期,二代容量為314Ah,兩大陣營分化明...
亞馬遜CEO:生成式AI或致員工數量減少,但也將帶來新機遇 - 天天要聞

亞馬遜CEO:生成式AI或致員工數量減少,但也將帶來新機遇

【環球網財經綜合報道】亞馬遜CEO安迪·賈西周一表示,生成式人工智慧的快速推出,意味著公司未來或需更少員工完成計算機可處理的工作,如同每次技術轉型,一些工作將因自動化而用人減少,但也會有新工作產生。東方IC儘管人工智慧會消除部分職位需求,賈西稱亞馬遜仍會在人工智慧、機器人等領域招聘更多員工。不過,本月早...
25萬起售的小米YU7,三分鐘大定20萬台,數據是真的嗎? - 天天要聞

25萬起售的小米YU7,三分鐘大定20萬台,數據是真的嗎?

相信這幾天小米YU7的火爆程度大家都看到了,這款車發布後開啟預定,打開預定通道後不久,小米官方就公布了一個數據,3分鐘大定超20萬台。沒過多久,小米官方又公布了一個更炸裂的數據,小米YU7在1小時內,大定已突破289000萬台。
鄒暉出任格力集團董事長 - 天天要聞

鄒暉出任格力集團董事長

本文來源:時代財經 珠海格力集團官網更新信息顯示,鄒暉已正式出任該集團黨委書記、董事長。公開資料顯示,鄒暉於1982年生,本科學歷。鄒暉曾擔任珠海市人大常委會農村農業工作委員會副主任,後轉任珠海市國資委副主任。此次調整後,格力集團領導班子為:鄒暉擔任集團黨委書記、董事長,王軼任黨委副書記、董事、總裁,吳...
【產業互聯網周報】阿里合伙人名單最新變動:9人已退出;美團在AI投入超百億元;黃仁勛:機器人技術是晶元製造商繼AI之後的最大機遇 - 天天要聞

【產業互聯網周報】阿里合伙人名單最新變動:9人已退出;美團在AI投入超百億元;黃仁勛:機器人技術是晶元製造商繼AI之後的最大機遇

圖片系AI生成【產業互聯網周報是由鈦媒體TMTpost發布的特色產品,將整合本周最重要的企業級服務、雲計算、大數據領域的前沿趨勢、重磅政策及行研報告。】國內資訊北京經信局:北京累計備案上線大模型132款,全國佔比35%在2025全球數字經濟大會新聞發布會上,北京市經濟和信息化局黨組成員、副局長、新聞發言人劉維亮表示,...