新聞中心
linux 操作系統(tǒng)已經(jīng)在各個行業(yè)應用非常廣泛,本文將詳細討論Linux下USB驅動,以及數(shù)據(jù)傳輸過程中涉及到的技術概念。

網(wǎng)站建設哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、微信小程序定制開發(fā)、集團企業(yè)網(wǎng)站建設等服務項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了云龍免費建站歡迎大家使用!
USB驅動指的是系統(tǒng)的驅動軟件,他的作用是將使用者的輸入轉換成計算機可以識別的信號并進行處理,使用者可以通過接口手柄或者操作鍵盤等設備與計算機進行通信,USB驅動把系統(tǒng)和使用者之間架起一座橋梁。
Linux中的USB驅動也一樣,它負責外設的識別、驅動加載、連接狀態(tài)記錄等功能,讓系統(tǒng)可以和外設通信及使用外設功能。
在 Linux 系統(tǒng)中,USB 驅動分為兩個模塊:usbcore 和 usbfs,它們組成Linux的USB核心,提供所有的USB驅動支持。
USBcore 通過一系列的函數(shù)和datastructure來支持USB樹,并定義 USB 的控制和狀態(tài)轉移機制,以及數(shù)據(jù)傳輸?shù)漠惒綑C制;而 usbfs 屬于用戶空間,它和USBcore配合完成了USB設備的初始化,設備管理和設備配置的工作,其機制如下圖:
圖 1 Linux的 USB 驅動工作流程示意圖
常用的usbcore函數(shù)主要有:
usb_register():對USB設備進行初始化,注冊usbcore設備。
usb_deregister():將usbcore設備注銷掉,處理USB設備移除時的正確操作。
usb_alloc_urb():動態(tài)分配urb緩沖區(qū),用來傳輸USB控制和數(shù)據(jù)報文。
usb_submit_urb():把urb報文傳到USB設備驅動模塊中去,實現(xiàn)數(shù)據(jù)傳輸。
usb_read():從USB設備讀取數(shù)據(jù)。
usb_write():向USB設備寫入數(shù)據(jù)。
usb_bulk_msg():應用程序發(fā)送和接收USB數(shù)據(jù)報文。
數(shù)據(jù)傳輸過程中,USB還采用了如下協(xié)議:
1. USB 設備認證協(xié)議(USB Device Authentication Protocol)
2. USB 設備識別協(xié)議(USB Device Enumeration Protocol)
3. USB 設備數(shù)據(jù)傳輸協(xié)議(USB Device Data Transfer Protocol)
4. USB 設備管理協(xié)議(USB Device Management Protocol)
以上就是Linux下USB驅動和USB通信協(xié)議的基礎概念,它們對USB的通信是至關重要的,是使用USB設備的前提。本文的介紹僅作為對Linux下的USB驅動和USB數(shù)據(jù)傳輸機制的簡單了解,更多內(nèi)容請關注文章末尾的參考文獻。
參考文獻:
[1] USB 技術基礎. (2009, June 16). Retrieved from https://baike.baidu.com/item/USB%E6%8A%80%E6%9C%AF%E5%9F%BA%E7%A1%80/4154275?fr=aladdin
[2] 西瓜小王子. (2016, May 24). USB接口及其在Linux下的驅動. Retrieved from https://blog.csdn.net/jq0123/article/details/50851207
香港服務器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務提供商,擁有超過10年的服務器租用、服務器托管、云服務器、虛擬主機、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗。專業(yè)提供云主機、虛擬主機、域名注冊、VPS主機、云服務器、香港云服務器、免備案服務器等。
網(wǎng)站欄目:「Linux下USB驅動詳解」(linux中usb驅動)
鏈接URL:http://fisionsoft.com.cn/article/coppggi.html


咨詢
建站咨詢
