Linux kernel 如何使用USB端口/电缆控制自定义硬件?

Linux kernel 如何使用USB端口/电缆控制自定义硬件?,linux-kernel,usb,hardware,drivers,led,Linux Kernel,Usb,Hardware,Drivers,Led,我正在努力学习用Linux编写驱动程序。我将一个LED连接到一个经过测试并工作的试验板上(电阻器与LED串联)。我把它连接到一根切断的USB电缆上,这样正极数据端连接到电路的一端,接地电缆连接到另一端。我通过一个有电源的USB集线器来运行它,以避免从我的电脑中抽取太多的电流,但即使我直接连接它,它似乎也不会引起任何问题 不管怎样,我想做的是通过USB电缆发送信号,使灯闪烁、打开或其他。我不想使用FPGA板或特殊硬件。我想控制通过USB电缆发送的位 我阅读了下面的教程,但它对我不起作用。我试图根

我正在努力学习用Linux编写驱动程序。我将一个LED连接到一个经过测试并工作的试验板上(电阻器与LED串联)。我把它连接到一根切断的USB电缆上,这样正极数据端连接到电路的一端,接地电缆连接到另一端。我通过一个有电源的USB集线器来运行它,以避免从我的电脑中抽取太多的电流,但即使我直接连接它,它似乎也不会引起任何问题

不管怎样,我想做的是通过USB电缆发送信号,使灯闪烁、打开或其他。我不想使用FPGA板或特殊硬件。我想控制通过USB电缆发送的位

我阅读了下面的教程,但它对我不起作用。我试图根据我的直觉修改代码(我已经编写了大约7年的程序,只是从来没有使用过驱动程序或硬件)。显然我的直觉不适用于司机。。。哦,好吧

我的密码


我会很感激教程等。我这样做是为了学习,所以我真的不想使用FPGA板。我宁愿改变我的电路也不愿得到一块电路板。如果我是哑巴,请善意地告诉我:)

USB端口不打算直接与简单电路接口,而只是与支持USB的微控制器或外围芯片内部相当复杂的USB收发器接口

但是,您只是在使用USB电源线。少数系统/集线器允许软件控制各个端口的电源。如果您的系统或集线器具有该功能,您可以使用该功能打开和关闭LED。但是你可能需要花相当长的时间才能找到一个真正有通过晶体管的集线器(即使集线器ic可能有管脚来控制这样的晶体管,通常没有一个真正安装在电路板上)


对于不需要非常仔细地选择主机硬件的便携式项目,您必须使用支持USB的微控制器或接口芯片。

串行端口或USB串行适配器如何?一个“串行端口”将对数据进行时间多路复用,因此也不能很好地与简单电路进行接口。但大多数串行端口,包括USB串行适配器,也有一些控制信号,可以在软件控制下断言。(在linux上,您可以使用
stty
工具来实现这一点,尽管语法不清楚)。这些可能适合你想做的事情——USB版本有一点延迟,但只要你不想多次切换它们,它们就应该看起来很快。