linux ACM驱动详解

本文详细介绍了Linux ACM(Abstract Control Model)驱动的工作原理。在模块初始化时注册tty_driver,ACM USB驱动的probe中注册tty_device。每个ACM设备包含两个接口,第一个接口用于控制,第二个接口用于数据传输。在probe过程中,会找到对应接口并进行声明,使它们与同一usb_driver匹配。此外,还阐述了Epcontrol、Epread和Epwrite的作用,以及如何与tty子系统交互处理数据读写和控制事件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Module_init中会注册tty_driver,tty_device会在acm usb_driver的probe中注册。

每个ACM设备都由2个Interface组成,第一个interface有一个interrupt endpoint主要负责控制,第二个interface主要负责数据传输,有2个endpoint,有可能是两个int,也有可能是2个bulk。他们都是成对出现的。

比如:

这个是第一个interface,其中CDC Union中,bMasterInterface就是设备的第0interface,它就是ACM中的第一个interface,作为主interface,它所对应的从interface的号是1,也就是负责数据传输的那个interface。他们两个是成对出现的。

    Interface Descriptor:

      bLength                 9

      bDescriptorType         4

      bInterfaceNumber        0

      bAlternateSetting       0

      bNumEndpoints           1

      bInterfaceClass         2 Communications

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值