⑴ usb介面怎麼檢測到已經連接好u盤求硬體原理
USB介面的通訊原理
1、USB設備的接入
USB介面中的+5V電源不但可以為外接設置提供小電流供應,並且還起著檢測功能。當USB設置插入USB介面後,主機的+5V電源就會通過USB邊線與USB設備相通。USB外設的控制晶元會通過兩只10K的電阻來檢查USB設備是否接入了主機的USB埠。如果這兩個引腳一個為高電平,一個為低電平時就表示USB外設已經正常確連入USB介面,這時外設的控制晶元開始工作,並通過DATA+,DATA-向外送出數據。這時主機接收數據後,就會提示發現新硬體,並開始安裝新硬體驅動。
2、USB設備的識別
在USB外設向外送出數據時,其中就包括設備自身的設備名及型號等相關參數,主機就是根據這些信息在顯示器上顯示出所發現的新硬體的名稱型號的。
多說一點:如果現在快閃記憶體的價格降得更低時,我們就可以把掃描儀,列印機,數碼相機的驅動程序存在設備內部。當主機需要驅動程序時,直接從設備內部讀取就可以了,也就不再需要驅動光碟和安裝驅動等繁瑣手續了。
⑵ 如何正確讀取usb設備數據
是不是來你讀取的通道配錯自了?譬如你想在EP1上收發數據,卻配成了EP2,而事實上EP1的MPS是64,EP2的MPS是512?
把usb_bulk_msg的最後一個參數Timeout值設的大一點試一下,另外提醒下,usb_bulk_msg是阻塞的,也就是說你要讀一定長度的數據,只有底層完全讀到這些數據或者超時才會返回,如果在超時時間內設備未發送完全部的數據,那麼此時返回err值,最簡單的辦法是加大Timeout值,最標準的做法是用usb_submit_urb非同步方式提交URB包,效率比較高,Linux下的USB分層機製作的比較好,你可以看一下drivers/usb/serial下面就是最簡單的主機側串口驅動,裡面基本上用的都是非同步方式,看你幫定的應用是哪個應用Class對應看usb下面的代碼
⑶ 如何確定哪些 USB 設備已連接到計算機上
關於如何確定哪些USB設備已連接到計算機上,可以根據以下步驟來操作:專
第一、在電腦桌面屬上找到「我的電腦」圖標,右擊選擇「屬性」按鈕,如下圖所示:
⑷ 如何查看在電腦上連接過的USB設備
USBDeview是一款可以查看電腦上使用過哪些 USB 設備的小工具。USBDeview可以檢測 USB 設備連接電腦的時間、哪個接版口、設備的名稱、權描述、序列號等等,同時還可以停用、啟用特定設備等。
⑸ 如何通過枚舉設備來判斷我的USB已經處在連接狀態
您好,一旦獲悉有新設備連接上來,主機就會發送一系列的請求(Resqusts)給設備所掛載到的hub,再由hub建立起一條連接主機(Host)和設備(Device)之間的通信通道。然後主機以控制傳輸(ControlTransfer)的方式,通過端點0(Endpoint0)對設備發送各種請求,設備收到主機發來的請求後回復相應的信息,進行枚舉(Enumerate)操作。所有的USB設備必須支持標准請求(StandardRequests),控制傳輸方式(ControlTransfer)和端點0(Endpoint0)。在講解枚舉之前,先大概說說USB的一種傳輸模式——控制傳輸。這種傳輸在USB中是非常重要的,它要保證數據的正確性,在設備的枚舉過程中都是使用控制傳輸的。控制傳輸分為三個階段:①建立階段。②數據階段。③確認階段。建立(setup)階段:都是由USB主機發起,它是一個setup數據包,裡麵包含一些數據請求的命令以及一些數據。如果建立階段是輸入請求,那麼數據階段就要輸入數據;如果建立階段是輸出請求,那麼數據階段就要輸出數據。如果在數據階段,即便不需要傳送數據,也要發一個0長度的數據包。數據階段過後就是確認階段。確認階段剛好跟數據階段相反,如果是輸入請求,則它是一個輸出數據包;如果是輸出請求,則它是一個輸入數據包。確認階段用來確認數據的正確傳輸。
⑹ linux usb 設備重新掛載
用crontab
* */1 * * * /etc/init.d/network restart;
每隔一小時重啟一下網路服務。
或插拔USB.
* */1 * * * "umount /dev/hdd1;mount /dev/hdd1 /mnt/usb"
通常,在Linux系統中,如果要使用硬碟、光碟、軟盤或U盤等存儲設備, 一般先要掛載(但有些高版本的Linux可以做到自動識別和載入設備). 當存儲設備掛載完成後就可以像目錄一樣進行訪問了.
在掛載之前需要確定下列三種信息:
*) 要掛載對象的文件系統類型;
*) 要掛載對象的設備名稱;
*) 確定掛載點.
1) 獲得掛載對象的文件系統類型:
cat /proc/filesystems 可以查看當前Linux系統支持的文件類型:
vfat : Windows常用的FAT32文件系統,兼容FAT16系統.
hpfs : OS2文件系統.
ext3 : Linux文件系統
iso9660 : 光碟文件系統
2) 確定設備名稱:
在Linux下設備名稱通常都在/dev目錄下,這些設備的命名都是有規則的,比如: /dev/hda1
"hd"即: hard disk,代表IDE硬碟; 'hd'同樣也可以用'sd'代替,即SCSI,代表SCSI硬碟; a代表第一個設備,如果pc機上可以連接4塊IDE硬碟, 則設備名稱依次為hda,hdb,hdc,hdd. 如果是SCSI硬碟, 則設備名稱為sda.sdb,sdc,sdd.
數字1表示a硬碟的第一個分區,hda2,代表硬碟的第二個分區.
查看/var/log/messages文件,可找出Linux辨認出來的設備代號.
3) 確定掛載點:
Linux系統中有一個/mnt目錄,專門用作掛載點目錄:
掛載光碟的例子:
$mount -t iso9660 /dev/cdrom /mnt/cdrom
$umount /mnt/cdrom
掛載軟盤的例子:
$mount /dev/fd0 /mnt/floppy
$umount /mnt/floppy
掛載u盤的例子:
$fdisk -l查看外掛快閃記憶體的設備號,一般為/dev/sda1
$mount /dev/sda1 /mnt/usb
$umount /mnt/usb
掛載外掛硬碟分區:
$fdisk -l 查看外掛的硬碟分區設備號,假設為: /dev/hda1
$mount -t vfat /dev/hda1 /mnt/vfat
$umount /mnt/vfat
所以,根據上面流程思想,我們現在來看看如何把自己的USB(U盤設備掛載到系統中來),從而可以自由訪問U盤里邊的文件。看了以下的操作,你會發現操作命令並不是那麼的復雜的。此次測試是在VMWARE+RedHat9.0 上測試的。
首先要查看USB設備的名稱。 我們在Terminal終端用這個命令: dmesg|more 查看系統相關信息。dmesg用來顯示開機信息,kernel會將開機信息存儲在ring buffer中。若是開機時來不及查看信息,可利用dmesg來查看。開機信息亦保存在/var/log目錄中,名稱為dmesg的文件里邊。
得到USB設備的設備名稱為 sdb
然後在/mnt/下建立一個usb的文件夾:
Mkdir /mnt/usb
最後要用mount命令來掛載sdb(也就是U盤)里邊的東西了。
mount /dev/sdb /mnt/usb
其實mount 中並不無其他參數。 因為mount里可以自動識別其中的文件系統。
這樣在/mnt/usb下即可以看到里邊的文件了。
當卸載USB時,需用umount命令來卸載
⑺ 怎麼確定哪些 USB 設備已連接到計算機上
第一、在電腦桌面上找到「我的電腦」圖標,右擊選擇「屬性」按鈕
第二、打開系統頁面之後,選擇「控制面板主頁」按鈕
第三、打開電腦的控制面板,選擇「硬體和聲音」選項,點擊進去
第四、頁面右上角顯示「設備5」,USB在本電腦連接了總共5個設備;你還可以選擇「添加設備」按鈕來添加新的設備。
⑻ 怎麼查看電腦插過U盤的記錄
1、其來實USB存儲設備在插入電自腦的時候計算機早已悄悄記錄下這些設備的「蹤跡」,下面就來看看,怎麼找出曾經連接過的USB設備型號,這樣就可以大致知道是誰的設備了。
⑼ 在Linux上怎麼樣查看USB設備
在大多數Linux套件中,硬體識別最常用的兩個工具是Lspci和Lsusb。
Lspci工具可以顯示所有PCI匯流排信息回,並答列出與它們相連的硬體設備。Lspci對於集成音效卡和顯卡的X86主板尤其有用,因為它可以識別使用在主板PCI電路中的確切晶元。
Lsusb工具可提供USB匯流排和連接設備的同類信息。
USB設備一般表示為 /dev/sda 或/dev/hda1 等等
如果是USB存儲器,像硬碟分區那樣直接掛載即可
mount /dev/sda /mnt/sda
⑽ 怎樣在我的電腦上找到連接的USB設備
把移動硬碟接在前置USB口上時就有可能出現系統無法識別出設備的故障。原因是電壓不夠,當專然劣質的電源也可能屬會造成這個問題。解決方法是把硬碟不要接在前置USB介面上,更換劣質低功率的電源或盡量使用外接電源的硬碟盒。還有就是不是不得以的情況下,不要去按F1,F2這種鍵,那會導致一些數據消失,有可能格式化,!
謝謝!
希望你能滿意!
呵呵!