单片机做的USB键盘如何在开机时发数据给电脑??
想搞个一键还原功能,当想还原系统的时候,就发送一个按键信号到电脑/就好像开机时按Delete进入BIOS一样`
现在的主板都支持USB键盘,应该是可以用的!!!
但就是不知通讯如何进行。是直接发送数据还是怎样???
见过PS/2是可以实现这个功能的,但USB会比较方便插。优先选用USB的方式! 用USB模拟这个目前市场上还没有产品,所以没有办法给您做拆解.
基于V-USB的单片机解决方案是有的
例如
爱特梅尔半导体Atmel的单片机就有这个功能
采用一块单片机完成,最小封装的attiny系列
演示代码一会给您传过来。
----------------------【不知道可否给您一个这样的建议?】--------------------------------
硬件:基于BIOS的一键还原非常成熟,对BIOS改造一下也挺快速,我当时用的是5合一BIOS组件嵌入。
实在不想动用户机箱:用还原精灵硬件版这种原理
基于硬盘引导事件(软件):软件类的挺多。
以上几种都很成熟,改造BIOS的比较安全和有效,对批量的板子发行很不错
案例:当时学校的校园电脑室大都用这种方式,因为采购过程中都是统一型号。 计算机开机启动的过程中有个问题您不知道推演过没有?
1假定您模拟的是键盘事件+还原软件是集成在U盘中,这样的话BIOS的识别率回是一个问题,
2主控方案就不能只是一个8位AVR这么简单了,
3这个物件的便利性好像和这些成熟度产品比较,有点??
我猜开机时应该会重新枚举USB设备吧 look this
http://www.amobbs.com/thread-4789378-1-1.html 由于我电脑上的演示代码有点问题,仅仅只是模拟识别,没有输出。见谅
给您一个爱好者的参考的设计链接:
http://codeandlife.com/topics/v-usb-electronics/
不好意思没能帮上您,论坛里有高手,他们可以。 非常感谢楼上几位的解答,正在看5楼所指的网页。。。。。有结果第一时间发上来! 本帖最后由 fuyufu 于 2013-6-7 12:48 编辑
上个别人的作品截图,但是这个功能很弱,可能达不到您需要的指标
他的设计偏向于USB-KEY
第一张是PCB样式
第二张是应用样式
第三张是裸板外观
第四张是原理图
参考的设计链接依然是:
http://codeandlife.com/topics/v-usb-electronics/ fuyufu 发表于 2013-6-7 12:26 static/image/common/back.gif
上个别人的作品截图,但是这个功能很弱,可能达不到您需要的指标
他的设计偏向于USB-KEY
第一张是PCB样式
不错,感谢分享,等有空,用LGT的芯片做一个来玩玩儿.... foxpro2005 发表于 2013-6-7 13:03 static/image/common/back.gif
不错,感谢分享,等有空,用LGT的芯片做一个来玩玩儿....
支持你,这个绝对是个好的创意,产品市面上还没有,挺你
国外的Digispark项目希望给你触发更多灵感,
这样您的作品可以一物多用噢。
---------------------心得分享------------------------
【一物多用的时候,可以扩大用户群体】
我向您推荐的几个方案,由于芯片有点偏向AVR分支,
希望不会误导你的思路,支持USB的微控制器很多选择。
支持你的思路! 嗯,再次感谢,AVR的还是比较熟悉...
1.使用V-USB的方式,比较占资源,其它能做的事相对会有所减少...
2.如果用硬件本身带USB功能的芯片,当然会比较好...(STM32不是错的选择, PIC18系列也不错...) 用VUSB做就可以了。
估算一下开机后键盘被识别到需要按键的时间。
HOOK设备枚举,开启定时器,到时间发送按键。
推荐参考这个:http://www.frank-zhao.com/cache/usbbusinesscard.php zhujinliang2124 发表于 2013-6-7 14:02 static/image/common/back.gif
用VUSB做就可以了。
估算一下开机后键盘被识别到需要按键的时间。
HOOK设备枚举,开启定时器,到时间发送按 ...
嗯,采取电子名片的思路挺不错的
-------------------------------------------------
我刚才模拟了一下流程,好像有点疑问
1每款不同牌子的计算机的BIOS不统一、加载内容可能不一样,
理论上很难时间偏差,如果偏差较大,
过早触发键盘事件,BIOS会判断为键盘故障,直接就禁用了这个键盘。
过晚触发,硬盘直接都引导进系统了。
2基于USB口的“还原精灵”业内还有成功过。
3普遍键盘的摆放位置都是人体工程学适合的地方,而使用这个USB再模拟是不是有点画蛇?
4USB口在开机过程中是有一次电源瞬间闪断的过程。是否会影响到单片机程序?
5......
不好意思,不敢再问了,我心里是支持这个项目,所以才多了点疑问 楼主不悬赏了么? 放假了。。。。。。还没解决呢!!放心,一定会给的!
fuyufu 发表于 2013-6-7 17:43 static/image/common/back.gif
嗯,采取电子名片的思路挺不错的
-------------------------------------------------
其实只要按照USB标准来,这些都不是问题
1. BIOS差异的问题。当设备是boot型的键盘时,不会去读Report Descriptor。这个是USB标准定义的,可以放心用
2.发送时机问题。当设备支持boot时,会收到Set protocol请求。可以在收到这个请求之后发送键值。
3. 闪断会重新枚举,按照标准流程来就可以了。
---------------------
上面我说的都在USB标准文档中有说明 感觉不错,想法挺好的 USBD12,就可以了,三年前我做个,一个复合设备,插上去显示3个设备:鼠标+键盘+自定义设备。我们这是 用于 游戏的硬件外挂, 唉,还是没解决。。。。。
那位能发个能用的程序过来 看看,莫元付上!!!!
主要是HID那部分! 买个最便宜的USB键盘,用单片机控制扫描矩阵,模拟按下DEL键就可以了,是最容易实现的办法。
另一个方法,用PIC18F4550 USB 单片机,官方例子有USB键盘的程序,模拟DEL就可以。
页:
[1]