串行协议——USB驱动[基础]

        多年前的学习记录,整理整理。 

一、USB协议基础

二、Linux内核USB驱动源码分析

USB中不同类型设备使用的 设备描述符(设备类\设备子类\设备协议) 配置不同,典型的以下几种:
    1)HID设备: Human Input Device人工输入设备, 如鼠标\键盘\游戏手柄等.
    2)CDC设备: Communications Device Class通信设备类, 如usb转串口. 电脑一般没有串口, 要与串口设备进行通信, 有效的方法就是硬件上采用usb转串口模块, 软件上编写对应的驱动程序.
    3)USB Mass Storage Class 协议是U盘等存储设备.
    4)USB Audio Class 协议用于音频设备.
    5)USB Video Class 协议用于视频设备.(UVC驱动———usb摄像头)


struct usb_device usb_dev;           // 描述一个usb设备
struct usb_device_id x;              // 驱动匹配的id表

[1]usb设备驱动, eg: HID设备mouse
内核源码路径: hid/usbhid/usbmouse.c
struct usb_driver x1;                // usb设备驱动
MODULE_DEVICE_TABLE(usb, x);         // 宏用于将设备id表注册到内核
module_usb_driver(x1);               // 注册USB设备驱动


[2]usb串口设备驱动, eg: CDC设备pl2303
内核源码路径: usb/serial/pl2303.c
struct usb_serial_driver x1;         // usb串口设备驱动, 继承于usb_driver, 并添加自己的成员.需要设置串口的流控(波特率等)       
module_usb_serial_driver(x1, x);

 Linux内核鼠标驱动工作流程:

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值