鼠标宏好还是usb芯片宏和硬件宏好

血手幽灵吃鸡鼠标宏电竞机械游戏绝地求生刺激战场宏编程辅助自动压枪专用无后座力双飞燕usb芯片吃鸡神器V8M-汽车配饰网上商城
您身边的网上汽车用品商城-【】
分享/收藏:
血手幽灵吃鸡鼠标宏电竞机械游戏绝地求生刺激战场宏编程辅助自动压枪专用无后座力双飞燕usb芯片吃鸡神器V8M
参考价:¥600 元
折扣价:¥159 元 今日特价 优惠了441元
商品热度:已有 1486 位车友购买!
推荐来源:
相关商品推荐
&148.00 268.00销量(359)
恩源数码专营店 天猫
&179.00 299.00销量(572)
雷柏展豪专卖店 天猫
&229.00 399.00销量(977)
罗技g绝胜专卖店 天猫
&199.00 418.00销量(151)
雷柏尊宝专卖店 天猫
&69.00 199.00销量(92)
金存数码专营店 天猫
海迅数码专营店
进入卖家店铺可查看更多推荐商品
当前查看的商品【血手幽灵吃鸡鼠标宏电竞机械游戏绝地求生刺激战场宏编程辅助自动压枪专用无后座力双飞燕usb芯片吃鸡神器V8M】选自海迅数码专营店,市场参考价格为600元,您可以进入海迅数码专营店享受更优惠的价格和更优质的服务。喜欢认可我们的服务,记得收藏和分享给更多的车友!
想浏览更多的商品,您还可以通过商品的相关标签【】查看更多相关信息。
相关商品对比
¥309.00 最近热销345件
罗技赛睿金牌店淘宝
¥199.00 最近热销114件
雷柏旗舰店天猫
¥99.00 最近热销57件
宁美国度官方旗舰店天猫
¥129.00 最近热销11件
恩源数码专营店天猫
¥45.00 最近热销1002件
冠伦数码专营店天猫
¥199.00 最近热销29件
kingmiky11淘宝
¥99.00 最近热销160件
迪德思通讯配件城淘宝
¥169.00 最近热销678件
罗技g百事得专卖店天猫
¥39.00 最近热销274件
赛德斯旗舰店天猫
¥129.00 最近热销14件
鑫源泽数码专营店天猫
¥49.00 最近热销16件
九江网际数码专营店天猫
¥158.00 最近热销77件
剑圣一族旗舰店天猫
¥159.00 最近热销184件
我是轶淘宝
¥179.00 最近热销60件
雷柏钥玥专卖店天猫
车品推荐汇
¥259.00 最近热销1445件
包黑子车品旗舰店天猫
¥12.60 最近热销43262件
奇奇正旗舰店天猫
¥12.90 最近热销84315件
永舜汽车用品专营店天猫
¥780.00 最近热销310件
固特异汽车用品旗舰店天猫
¥175.00 最近热销6006件
戴安汽车用品专营店天猫
¥12.80 最近热销42725件
leeioo旗舰店天猫
¥22.00 最近热销16936件
妙卡斯车品专营店天猫
¥186.00 最近热销12643件
联驭汽车用品专营店天猫
¥5.90 最近热销48360件
以斯帖车品专营店天猫
¥55.00 最近热销10860件
鑫祥汽车用品旗舰店天猫
¥6.80 最近热销6140件
奇奇正旗舰店天猫
¥32.00 最近热销65414件
飞虎车品旗舰店天猫
¥4.80 最近热销35472件
妙卡斯车品专营店天猫
¥379.00 最近热销2728件
亿力电器旗舰店天猫
¥6.90 最近热销21985件
紫诺车品旗舰店天猫
¥28.90 最近热销7079件
德亿龙车品旗舰店天猫
¥29.00 最近热销3545件
沃捷汽车用品专营店天猫
¥49.00 最近热销24580件
车舞飞扬车品专营店天猫
¥55.00 最近热销13027件
车舞飞扬车品专营店天猫
¥49.80 最近热销21059件
泉灵汽车用品专营店天猫
¥23.80 最近热销30043件
巴赛夫旗舰店天猫
¥79.00 最近热销14132件
卡卡买车品旗舰店天猫
¥12.00 最近热销16318件
曼妮斯车品专营店天猫
¥9.80 最近热销28009件
以斯帖车品专营店天猫
¥14.80 最近热销51688件
卡嘉易车品专营店天猫
¥17.00 最近热销37858件
婷舞车品专营店天猫
¥5.80 最近热销32047件
奇奇正旗舰店天猫
¥28.00 最近热销6728件
颂礼旗舰店天猫
¥28.80 最近热销13598件
将军虎车品旗舰店天猫
¥62.00 最近热销464件
宽欧汽车用品专营店天猫
¥25.00 最近热销24859件
雅驭车品专营店天猫
¥25.00 最近热销23700件
卫洲车品专营店天猫
¥24.90 最近热销20654件
随缘汽车用品专营店天猫
¥288.00 最近热销261件
金星汽车用品专营店天猫
¥86.00 最近热销307件
典雅车品专营店天猫
¥99.00 最近热销9113件
先科天富专卖店天猫
¥15.10 最近热销8255件
快途车品旗舰店天猫
¥11.50 最近热销7510件
和邦汽车用品专营店天猫
¥949.00 最近热销467件
好孩子汽车用品旗舰店天猫
¥18.00 最近热销3283件
希尚车品专营店天猫
热门车系用品/配件
Copyright & -www.jstoyota.cn 保留所有版权 沪ICP备号-34
买汽车配饰就上中国汽车用品网上商城,各种车型车品应有尽有!绝地求生成科技王国,主播压枪用USB芯片!有名女主播恐要被锤!绝地求生成科技王国,主播压枪用USB芯片!有名女主播恐要被锤!游有王木木百家号绝地求生主播有没有开挂关乎主播的直播前途,主播一旦被观众认为开挂,就会直接身败名裂,难以翻身。玩家对外挂的愤怒都会发泄在开挂主播身上,魔音糯米、油条、蛇哥、卢本伟等大主播都是因为这个原因而凉凉。绝地求生枪械的弹道后坐都是固定的,所以可以通过鼠标宏来达到压枪无后坐力的效果,蓝洞官方也点名鼠标宏属于和外挂一样的作弊行为。B站UP主“大海是猪”曾经揭露过主播专用外挂,通过自己开外挂的操作证明蛇哥操作有问题,质疑虎牙主播童话开挂,也在不久之前怼过全民战队,是目前非常热衷于锤主播开挂的UP主之一。虽然因为LOL小智逼他发毒誓,搞得后来全民这事没了下文,只能等待全民战队线下赛自证。而他在今天预告下一部实锤视频,将会是关于主播专用USB芯片微控压枪芯片的视频,UP主感慨现在真的是科技王国了!原来UP主通过淘宝了解到了一款硬件,普通的鼠标宏是不能左右压枪的,能力有限,容易看出来。可这种硬件芯片可以左右微控跟着人走压枪,而看完该硬件的演示视频以后,UP主表示可以分辨有哪些操作是用了这种芯片的,并且联想到了一个女主播。他表示这个东西很贵,但自己要去买一个来做实锤外挂的视频。那这个东西到底会多贵呢?小编去找了一下,发现了这一款价格为799元,价格确实不便宜。卖家表示这个用起来非常安全,因为连软件都没有,蓝洞要怎么封?这么一个小东西就能达到压枪无后坐力的效果吗?难怪UP主会发出那样的感慨,现在的科技技术真是越来越强大了!那UP主刚刚提到的女主播到底会是谁呢?目前女主播里似乎只有斗鱼吃鸡一姐雪MM被怀疑透视,也陷入过封号风波,难道UP主要锤的会是她吗?关于绝地求生USB压枪这件事你怎么看,欢迎留言,分享你的看法。本文由百家号作者上传并发布,百家号仅提供信息发布平台。文章仅代表作者个人观点,不代表百度立场。未经作者许可,不得转载。游有王木木百家号最近更新:简介:提供游戏趣闻、主播动态、赛事等原创资讯作者最新文章相关文章基于光传输的USB键盘鼠标一体化设计
查看: 1568|
摘要: 为解决通用串行总线USB的传输距离短的问题,提出了一种用光纤传输替代电气传输的方案。该方案通过在
USB主机端和USB设备端分别添加一MCU来分别模拟主机和设备的行为,从而实现USB主机和USB设备的隔离,以便
可以通过光纤传输来代替电传输。通过键盘鼠标一体化设计实例,验证了该方案具有可行性和实用性。该设计方案已经在
实际项目中得到了很好的应用。
&2012年7月
第33卷 第7期
计算机工程与设计
COMPUTER ENGINEERING AND DESIGN
July 2012
Vol.33 
基于光传输的USB键盘鼠标一体化设计
戴 捷,胡晓吉
(中国电子科技集团公司第十五研究所,北京100083)
摘 要:为解决通用串行总线USB的传输距离短的问题,提出了一种用光纤传输替代电气传输的方案。该方案通过在
USB主机端和USB设备端分别添加一MCU来分别模拟主机和设备的行为,从而实现USB主机和USB设备的隔离,以便
可以通过光纤传输来代替电传输。通过键盘鼠标一体化设计实例,验证了该方案具有可行性和实用性。该设计方案已经在
实际项目中得到了很好的应用。
关键词:通用串行总线;光纤传输;固件程序;可编程逻辑阵列FPGA;人机接口设备
中图法分类号:TN915 文献标识号:A 文章编号:1000-7024 (2012)07-2620-08
收稿日期:2011-08-17;修订日期:2012-02-07
作者简介:戴捷(1986-),男,江苏泰州人,硕士研究生,研究方向为视频处理和视频可靠性传输;胡晓吉(1962-),男,辽宁锦州人,
硕士,正研级高级工程师,研究方向为计算机抗恶劣环境技术。E-mail:canghai19860918@163.com
Design and implementation of USB optical fiber transmission keyboard
and mouse on one chip
DAI Jie,HU Xiao-ji
(15th Research Institute of China Electronics Technology Group Corporation,Beijing 100083,China)
Abstract:To prolong the transmission distance of USB,a solution is put forward,which utilizes optical fiber to transparently
transmit USB signals instead of using electrical wire.This method include two MCUs adding separately at the USB host and device,
imitating the action of the host and device,so that they can be isolated and optical transmission is adopted instead of electrical
 transmission.The feasibility and practicability of the design are confirmed through the case of keyboard-mouse integrated in
one device.Excellent performance is gotten in the practical use.
Key words:universal serial bus;optical fiber transmission;field programmable gate array;human interface device
0 引 言
光纤通信系统具有可靠性高和带宽宽的特点,因此在
远程通信中得到了广泛应用。但是,由于通常计算机都不
具有支持光纤的接口,因此,开发基于光纤传输的通用接
口设备是很有必要的。此外,光纤能够有效抵抗电磁干扰,
这就使得光传输在军用领域尤为得到青睐。USB接口已经
是目前应用得最为广泛的外设接口。基于USB接口的设备
随处可见,作为计算机必备的输入设备,USB键盘和鼠标
通常是作为相互独立的设备连接到计算机上的。本文提出
了一种单芯片的解决方案,即通过一块芯片同时实现USB
键盘和鼠标的功能,可以称之为带鼠标功能的键盘。为了
便于扩展,设计中没有专门设计键盘和鼠标的按键电路,
而是采用通用的USB键盘和鼠标,通过设计一控制电路,
来达到能够同时操作鼠标和键盘的目的。这样,从主机的
角度来看,只检测到一个人体学输入设备;但是,从用户
端看,鼠标和键盘能够同时使用。
1 USB光纤传输系统总体架构
系统的总体设计框图如图1所示。
通用USB键盘和鼠标同时插入设备端的USB接口,
键盘和鼠标通过各自的USB总线通道经差分转单端电路转
换后,由光发送器发送至主机端;主机端接收到键盘或是
鼠标的数据后,经由FPGA解码,将数据按照USB HID用
途表中定义的格式发送至USB控制芯片CY7C68013,USB
控制芯片对数据进行必要的整合,使之满足USB协议的格
式,发往PC机。
通过对USB控制芯片进行编程,使得PC机能够识别
该系统为人体学输入设备,并挂至Windows通用HID
第33卷 第7期  戴捷,胡晓吉:基于光传输的USB键盘鼠标一体化设计 
图1 USB光纤键盘/鼠标总体设计框架
2 硬件电路设计
2.1 USB接口设计
USB接口部分的电路是联系USB主机与USB设备之
间的桥梁。当有USB设备插入主机时,主机能够识别到设
备的插入并且知道插入的是何种类型的设备(低速/全速/
高速),同时主机还要完成对设备的枚举。
在USB主机或者USB集线器的下游端口的D+和D-
上,分别接一个15KΩ的下拉电阻到地。这样,没有设备
插入时,输入端就被这两个下拉电阻拉到了低电平。而在
USB设备端,在D+或D-上接了一个1.5KΩ 的上拉电
阻。上拉电阻接在D+或D-上,由设备的速度决定。对
于全速和高速设备,上拉电阻接在D+上;对于低速设备,
上拉电阻接在D-上。
当设备插入到主机或集线器时,接了上拉电阻的那条
数据线的电压或被拉高,集线器检测到这个高电平就报告
给USB主控制器,这样就检测到设备的插入了,并根据检
测到被拉高的数据线是D+还是D-来判断插入的是什么
速度类型的设备。
上述过程完成后,USB主机紧接着就要完成的是对设
备的枚举。枚举就是从设备读取各种描述符信息,主机根
据这些信息来加载合适的驱动程序,从而知道设备是什么
样的设备(是存储类还是打印机类又或者是人机接口类),
如何进行通信等。本设计中需要完成的是一个光传输的键
盘/鼠标,考虑到Windows操作系统自带的人机接口类
HID驱动程序,因此,枚举的主要工作就是将此USB键
盘/鼠标配置成HID类设备,并且将其挂接到Windows通
用HID驱动下。
USB设备的枚举可以通过专用芯片实现或是通过MCU
(单片机或FPGA)编程来模拟。当使用MCU 来模拟枚举
过程时,还需要一通用的接口芯片如PDIUSBD12来连接
USB差分数据线接口和MCU 接口,在MCU 中实现USB
协议。这种方式工作量比较大,需要对USB的协议有比较
深入的理解。
Cypress公司推出的EZ-USB FX2芯片CY7C68013实
现了物理协议芯片和单片机的集成。其内部包含了USB2.0
微处理器、USB2.0收发器、SIE (串行接口引擎)、增强的
8051内核和可编程的外围接口。按照硬件电路连接要求完
成相应的连接后,对内部51单片机进行编程也即所谓的固
件编程,就可以实现所需的功能。Cypress提供了固件编程
框架,简化了编程的工作量,只需在框架的基础上修改或
添加代码就能够完成固件的编程。本设计中,正是采用了
专用芯片的解决方案。
2.2 光接口设计
光纤接口设计主要包括接收模块和发送模块两部分,
它们总是成对的出现。本系统中需要三组收发模块。一组
用来接收鼠标发送的信息。两外两组分别用来接收来自键
盘的按键信息,同时向键盘传输来自PC机的控制信息:数
字键盘锁定灯和大写字母锁定灯的控制信息。
2.3 其他部分设计
此外,设计中还用到两组单端/差分转换电路,用来将
USB差分信号转成单端信号,或是将单端信号转成USB差
分信号对。
FPGA部分的设计注意对输入输出信号进行滤波,对
于PLL和内核供电电压进行掉电和过压保护设计。
3 Cypress固件程序设计
Cypress固件程序的设计是此次设计的核心。Cypress
提供了固件编程框架,该框架已将USB标准请求和USB
电源管理封装,并且提供了钩子函数,只需根据需要在钩
·2621·
 计算机工程与设计2012年
子函数中编写代码即可完成编程。
建立框架所需的文件包括:Reg80320.h、Ezusb.h、
FX2regs.h、Fw.c、Periph.c、Dscr.a51、Ezusb.lib和USBJmpTb.
OBJ等。其中,Ezusb.h 是库函数申明,以及变
量、宏定义、数据类型定义;Reg80320.h是8051头文件,
由KEIL提供;FX2regs.h是FX2寄存器头文件;Fw.c是
固件框架源文件;Ezusb.lib 是EZUSB 库文件;USBJmpTb.
OBJ是中断跳转函数目标文件。这些文件Cypress
均已提供,直接应用即可。Periph.c是用户钩子函数,用
户可以修改,在不同的应用中文件名可以不一样。
Dscr.a51是USB描述符列表,用户也可以修改。在实际的
编程中,需要根据目标需求对Periph.c和Dscr.a51两个文
件进行修改。
USB枚举的过程也是主机要求设备返回各种描述符的
过程。端点0默认配置为控制管道,用来完成所规定的设
备请求。设计中需要对Dscr.a51进行必要的修改。
(1)设备描述符(DeviceDscr)用来唯一地标识设备,
设备驱动程序加载是通过该描述符中的VID 和PID 来
(2)接口描述符(Interface Descriptor)主要用来定义
接口包含的端口数及接口所使用的类;
(3)HID描述符(HIDDscr)是HID设备配置所必需
的描述符,应该跟在接口描述符的后面;
(4)端点描述符(Endpoint Descriptor)是比较重要的
描述符,主要用来定义接口所包含的端点数目以及端点的
属性、所支持的最大包的长度和端点的查询时间;
(5)字符串描述符(StringDscr)是可选的,方便开发
中的产品标识;
(6)HID报告描述符(HIDReportDscr)是很重要的
一种描述符,也是在实际开发中可以根据需要灵活修改
的一种描述符。USB HID 设备正是通过报告(report)
来传送数据的,包括输入报告和输出报告。输入报告
是USB设备发送给主机的,本设计中主要指键盘和鼠标的
按键信息;输出报告是主机发送给USB设备的,在设计
中,由于使用了FPGA模拟USB设备,所以可以不需要输
报告里面实际包含的是要传送的数据,数量为整数个
字节,被划分为一个个域。通常,输入报告是通过中断输
入端点返回的,输出报告则不然。输出报告的发送有两种:
当没有中断输出端点时,可以通过控制输出端点0发送;
当有中断输出端点时,通过中断输出端点发出。不管设备
是否具有中断输出端点(中断输入端点是必须的),主机都
可以通过获取报告和设置报告的请求从端点0来获取或发
本设计中提出了一种单芯片的USB键盘/鼠标解决方
案。系统中只用到了一个输入端点和一个输出端点即可同
时实现键盘和鼠标功能。
要实现上述功能,HID报告描述符的设计是关键。在
报告描述符中要同时能够实现键盘报告和鼠标报告。
一个报告描述符中可以有多个外层应用集合,而系统
软件就是通过分析外层应用集合的功能来增加不同的设备
驱动的。在本设计中只需要实现用途分别为键盘和鼠标的
两个应用集合即可。同时,每个应用集合里还要增加一个
报告ID。以区分返回数据的作用。报告ID是报告输入或者
输出时的第一个字节,当没有定义报告ID时,报告前面就
没有报告ID。对于返回的没有报告ID的报告,人体学输入
设备驱动会自动增加一个报告ID0;而应用程序在发送数据
出去时,也要带一个值为0的报告ID。人体学输入设备驱
动会自动去掉这个值为0的报告ID,只发送数据出去。因
此,本设计中,分别在两个开集合的条目后增加一个报告
ID的条目,报告ID分别为1和2 (报告ID0是保留的,不
能使用)。
如下所示是设计中采用的报告描述符:
HIDReportDscr:
//键盘报告描述符
 db 05h,01h ; Usage Page(Generic Desktop)
 db 09h,06h ; Usage(Keyboard)
 db 0A1h,01h; Collection(Application)
 db 85h,01h ; 键盘报告ID为1
 db 05h,07h ; Usage Page(Key codes)
 db 19h,0E0h; Usage minimum (234)
 db 29h,0E7h; Usage maximum (231)
 db 15h,00h ; Logical minimum (0)
 db 25h,01h ; Logical maximum (1)
 db 75h,01h ; Report size(1)
 db 95h,08h ; Report count(8)
 db 81h,02h ; Input(data,variable,absolute)
 db 95h,01h ; Report count(1)
 db 75h,08h ; Report size(8)
 db 81h,01h ; Input(constant)
 db 95h,05h ; Report count(5)
 db 75h,01h ; Report size(1)
 db 05h,08h ; Usage Page(LED)
 db 19h,01h ; Usage minimum (1)
 db 29h,05h ; Usage maximum (5)
 db 91h,02h ; Output(data,variable,absolute)
 db 95h,01h ; Report count(1)
 db 75h,03h ; Report size(3)
 db 91h,01h ; Output(constant)
 db 95h,03h ; Report count(3)
 db 75h,08h ; Report size(8)
 db 15h,00h ; Logical minimum (0)
·2622·
第33卷 第7期  戴捷,胡晓吉:基于光传输的USB键盘鼠标一体化设计 
 db 25h,65h ; Logical maximum (101)
 db 05h,07h ; Usage page(key codes)
 db 19h,00h ; Usage minimum (0)
 db 29h,65h ; Usage maximum (101)
 db 81h,00h ; Input(data,array)
 db 0C0h ; End Collection
//鼠标报告描述符
 db 05h,01h ;  Usage Page (Generic Desktop),
 db 09h,02h ; Usage(Mouse),
 db 0A1h,01h ; Collection(Application),
 db 85h,02h ; 鼠标报告ID为2
 db 09h,01h ; Usage(Pointer),
 db 0A1h,00h ; Collection(Physical),
 db 95h,03h ; Report Count(3),
 db 75h,01h ; Report Size(1),
 db 05h,09h ; Usage Page(Buttons),
 db 19h,01h ; Usage minimum (1)
 db 29h,03h ; Usage maximum (3)
 db 15h,00h ; Logical minimum (0),
 db 25h,01h ; Logical maximum (1),
 db 81h,02h ; Input(Data,Variable,Absolute),(
3button bits)
 db 95h,01h ; Report Count(1),
 db 75h,05h ; Report Size(5),
 db 81h,01h ; Input(Constant)
 db 75h,08h ; Report Size(8)
 db 95h,02h ; Report Count(2)
 db 05h,01h ; Usage Page(Generic Desktop),
 db 09h,30h ; Usage(X),
 db 09h,31h ; Usage(Y),
 db 16h,01h,80h ; Logical Minimum(-127),
 db 26h,0ffh,7Fh ; Logical Maximum (+127),
 db 81h,06h ; Input(Data,Variable,Relative)
 db 0C0h ; End Collection
HIDReportDscrEnd:
上述设计中,键盘输入报告有6个字节,分别存入
CY7C68013的EP1INBUF [0]-EP1INBUF [5]中,第一
个字节为报告ID,值为1;第二个字节表示特殊按键,如
ctrl、shift、alt等;第三个字节保留;后面的3个字节为普
通按键。如果同时有多个键按下,则在相应的字节显示键
值,无键按下时,则为0。具体的键位值可以查看HID用
图表(USB HID usage table)。
键盘的输出报告2个字节,存入EP1OUTBUF [0]和
EP1OUTBUF [1]中,第一个字节是报告ID,第二个字节
用来标识键盘的工作状态如Num Lock等状态信息,实际
系统设计中可以不用。设计中,在FPGA内部直接模拟这
些特殊的按键状态,即,当Caps Lock或Num Lock键按下
时,不需要等待主机发送输出报告,FPGA 程序内部直接
按照USB 数据格式发送输出数据至差分数据线D+、
对于鼠标,只有输入报告,没有输出报告。其输入报
告有5个字节,分别存入CY7C68013的EP1INBUF [0]-
EP1INBUF [4]中,第一个字节为报告ID,值为2;第
二个字节表示按键;第三个字节表示x轴偏移(正值表
示右移,负值表示左移,0表示不动);第四个字节表示
y轴偏移(正值表示下移,负值表示上移,0表示不动);
第五个字节表示鼠标滚轮(正值为往上滚动,负值为往
下滚动)。
完成描述符部分的设计后,即可在钩子函数TD_Init
()和TD_Poll()中编写需要实现的功能函数。
TD_Init()在FX2重枚举后首先调用,用户可以在
该函数中完成全局变量和FX2寄存器的初始化操作。
TD_Poll()函数在main函数while程序模块中被调
用,除非被更高级别的中断所打断,该函数将被重复调用,
根据需要在此添加所需的功能。
设计中的部分功能代码如下:
void TD_Init(void)   //Called once at startup
{      
 key_oldbuttons=0xf0;
 mouse_oldbuttons=0xf0;
 OED &=0x00; //PD.0-PD.7按键输入
 OEE &=0x00; //PE.0-PE.7按键输入
 EP1OUTCFG =0xB0; //valid,interrupt
 EP1INCFG =0XB0; //valid,interrupt
 EP2CFG = EP4CFG = EP6CFG= EP8CFG=0;
 //disable unused endpoints
void TD_Poll(void)  //Called repeatedly while
the device is idle
 if (! (EP1INCS & bmEPBUSY)) //Is the
IN1BUF available,
   key_buttons=IOD&0/x/ff读;取键盘按键值
   fun=IOD&0xc0; //获取功能按键值,
PD.7和PD.6
·2623·
 计算机工程与设计2012年
   key=IOD&0x3f; //获取普通按键值,
PD.5-PD.0
   mouse_buttons=IOE&0xff; //获取鼠标按
键信息,PE.3-PE.0
   if((key_oldbuttons-key_buttons)!=0)
    {
    if (fun!=0x80)  //无shift键
    { 
    EP1INBUF [0]=0x01;
    EP1INBUF [1]=0;
    EP1INBUF [3]=key;
    }
    else
    {
    EP1INBUF [0]=0x01;  //Shift键按下
        EP1INBUF [1]=0x02;
    EP1INBUF [3]=key;
    }
    EP1INBUF [4]=0;
    EP1INBUF [5]=0;
    EP1INBUF [2]=0;
    EP1INBC=6;
    }
    key_oldbuttons=key_buttons;
    }
   if((mouse_oldbuttons-mouse_buttons)!=0)
    {
    EP1INBUF [0]=0x02;
    if(mouse_oldbuttons&0x01)
    {
    EP1INBUF [1]=0x01;    //左键
    }
    if(mouse_oldbuttons&0x02)
    {
    EP1INBUF [1]=0x02;    //右键
    }
    if(mouse_oldbuttons&0x04)
    {
    EP1INBUF [2]=-10;    //x轴左移
10个单位,值可修改
    }
    if(mouse_oldbuttons&0x08)
    {
    EP1INBUF [2]=10;     //x轴右
移10个单位,值可修改
    }
    if(mouse_oldbuttons&0x10)
    {
    EP1INBUF [3]=-10;    //y轴上移
10个单位,可修改
    }
    if(mouse_oldbuttons&0x20)
    {
    EP1INBUF [3]=10;    //y轴下移
10个单位,可修改
    }
     //未定义滚轮
    mouse_oldbuttons= mouse_buttons;
    }
可以看出功能函数部分的代码比较简单,这是因为
PD.0-PD.7管脚的信息是已经经过FPGA 解码后的按键
值,在TD_Poll()函数中,只需读取管脚值即可。实际
上,FPGA的编解码工作也可以由FX2处理器来完成。但
是,考虑的8051的处理速度以及系统的可扩展性(管脚数
目和逻辑单元),我们将这一部分的工作都由FPGA 来完
成。这样,FPGA的工作就是用来模拟USB 键盘,所以,
除了需要在有按键按下的时候进行解码并向FX2处理器进
行输出外,对于某些特殊按键时的主机应答也由FPGA来
模拟实现,这就进一步简化了Cypress固件程序的设计。
Cypress固件部分只需读取按下的键值,无需输出任何信
息。当有特殊按键按下时,FPGA 内部的程序模拟主机的
应答信号,并对它进行编码,使之符合在USB差分数据线
上传输的数据格式。
4 FPGA程序设计
FPGA内部的模块结构如图2所示。
USB键盘/鼠标输出的差分数据经差分转单端电路转
换,作为FPGA的输入信号Keyboard-Rx和Mouse-Rx。鼠
标和键盘的串并转换模块由两个彼此独立的状态机构成。
对于键盘,FPGA检测到输入信号后,进行解码操作,
判断是普通键还是特殊键(Caps Lock、Num Lock等),是
单个键还是组合键(Shift、Alt和Windows与其他按键的
组合)。如果是普通键或者是组合按键,则经发送模块处理
后,输出至FX2处理器;如果是特殊按键,则直接转到编
码模块,模拟USB主机的应答数据,编码成USB总线上
的数据格式,经并串转换后输出给键盘。
对于鼠标,相对简单一些。解码模块只需判断是否有
按键按下(左键/右键)、X轴方向和Y轴方向的偏移以及
·2624·
第33卷 第7期  戴捷,胡晓吉:基于光传输的USB键盘鼠标一体化设计 
图2 FPGA内部模块结构
滚轮的改变量,同时无需输出任何信息给鼠标。
4.1 时钟和串并转换模块
USB协议中定义了3种数据模式:1.5Mb/s的低速模
式、12Mb/s的全速模式和480Mb/s的高速模式。HID设
备类属于低速设备。设计中需要注意速度的匹配问题。在
本设计中,有两处数据的传输遵循的是USB总线协议,一
是CY7C68013与上位机的接口部分,二是通用USB键盘/
鼠标与FPGA接口部分。如果要实现USB协议,设计的难
度比较大。所幸的是CY7C68013在其内部已经实现了USB
总线协议;我们的主要工作就集中在对键盘/鼠标传输的数
据进行编解码。
时钟分频电路的设计是为了满足对USB总线上的数据
进行采样的需要。USB总线上传输数据是以包为基本单位
的。USB总线上数据的传输速率可以通过对总线上传输的
包的格式进行分析来确定,但是需要对协议进行深入地分
析。我们还可以通过示波器来测得。经试验测量,总线上
的数据传输速率为15Kb/s,因此,设计中采用30k的时钟
来对输入数据进行采样。
串并转换模块的核心是一有限状态机FSM。当USB总
线上没有数据传输时,总线一直呈高电平,检测到一个高
电平到低电平的数据变化时,表示有数据传输的发生。对
于传输的数据是干扰还是有效数据,需要对接下来各个状
态下所采样到的数据进行分析,当其满足USB数据包的格
式,则认为是有效的USB数据。
4.2 编解码模块
编码解码模块的设计遵循的都是USB总线协议。编码
是解码的逆过程。故而,本文仅对解码模块进行详细分析。
USB总线上传输数据的基本单位是包。一个包被分成
不同的域。USB协议中主要规定了4种包:令牌包、数据
包、握手包和特殊包。这4种包,所包含的域是不一样的。
其中,令牌包、握手包主要用在重枚举过程中;特殊包在
一些特殊的场合中使用,如:PING (测试)、ERR (错误)
等。在本系统中,采用了Cypress芯片来模拟USB设备,
芯片本身集成了对各种包的处理功能,所以在与PC接口端
的连接无需考虑各种包的处理过程;在设备端,FPGA 负
责对通用USB键盘/鼠标发送过来的数据进行处理,而忽
略重枚举和差错检测等过程,所以,只需要关注对数据包
数据包和所有包一样,都是以同步域SYNC开始,紧
跟着一个包标识符PID,最终以包结束符EOP结束。数据
包格式见表1。
表1 USB数据包格式
Field SYNC PID DATA CRC16 EOP
Bits 8 8 0-8192 16 2-3
要进行编解码操作,就需要对数据包进行深入地分析。
下述分析都是针对差分转单端后的信号而言。
对于全速和低速设备,同步域使用的是00000001,后
面紧跟着PID标识,DATA表示要传输的数据,全速USB
的最大长度为1023Bytes,CRC16表示DATA 的校验和,
全速/低速设备的EOP是一个大约2个数据位宽的单端
如上所述,这就是单端串行数据线上要发送的原始数
据。并非数据线上所传输的真正数据,原始数据还需要经
过位填充和不归零NRZI编码后方能进行传输。因此,FPGA
接收到的、USB键盘所能接收的都是经过位填充和
NRZI编码后的数据。
CY7C68013与PC机通信时也是遵循这样的数据格式。
但是,CY7C68013与FPGA之间传输的数据格式遵循的却
·2625·
 计算机工程与设计2012年
是USB HID类设备用途表中的定义,具体值可以参考USB
HID usage table,此不赘述。因此,设计中需要将接收的
来自键盘的编码后的数据解码成USB HID类设备用途表中
定义的键值。
通过上述分析,通常的解码方案是按照USB数据包协
议,逐步解码,即先反NRZI编码,在去除位填充,然后
再提取出数据值,这种方案需要按照USB协议顺序解包,
算法工作量比较大,但是具有通用性,对于按照USB协议
传输的数据都可以按照这种方法来解码。
考虑到键盘传输的按键数有限(通用键盘104键,精
简键盘更少),设计中提出了一种整体处理的思想。即将
FPGA接收到的编码后的数据直接作为单个按键的码值,
再将每个码值所对应的USB HID类设备用途表中的键值进
行转换,这样发送给CY7C68013芯片的就是芯片所能处理
的有效数据。这个方案大大降低了编写代码的工作量,有
效地提高了设计效率,能够满足键盘/鼠标的数据传输,不
足之处在于不具备通用性,对于向U 盘、打印机设备等传
输的数据无法适用。
4.3 发送模块
发送模块的核心也是一有限状态机。主要任务将接收
到的数据按照键盘和鼠标有区别地发送至CY7C68013芯
片,供其处理。为此,在FPGA串并转换接口模块部分设
定一标志寄存器以区分接收到是键盘数据还是鼠标数据。
发送模块在检测到有待发送的数据后,通过判断标志寄存
器的值来决定要发送的数据是键盘数据还鼠标数据。状态
转移图如图3所示。
图3 发送模块状态转移
5 实验结论
按照上述设计方案设计的光传输一体化键盘/鼠标在完
成硬件电路的调试、固件程序和FPGA程序的下载后,插
入主机,查看设备管理器,会看到多了一个USB人体学输
入设备,一个HID键盘设备,一个USB兼容鼠标。移动鼠
标,打开记事本等应用程序,鼠标和键盘均能正常工作。
组合和特殊功能按键正常,键盘和鼠标也能配合使用。采
用QA+Win32测试软件测试结果如图4所示,鼠标测试结
果如图5所示。
对比普通键盘和鼠标,在同时插入键盘和鼠标后,查
看设备管理器,会看到多了两个人体学输入设备,一个
HID键盘设备,一个USB兼容鼠标。显然,本设计能够更
节省系统资源。
同时,可以看到,采用光传输之后的键盘/鼠标,传输
距离较之普通USB设备传输距离得到大幅度的提升。光传
输良好的抗电磁干扰特性也是其一大亮点。有这两点优势,
USB的光纤传输技术能够在军用领域,特别是抗恶劣环境
领域得到很好的应用。
6 结束语
本论文基于对USB传输在当前军用领域的应用瓶颈进
行研究,提出了采用光纤传输替代电缆传输的设计方案。
同时,针对键盘和鼠标的共性进行研究,提出了一种键盘/
鼠标一体化的设计思路,能够在保证系统性能的前提下,
节省系统资源。目前,该系统已经在多个嵌入式系统中得
到了应用,运行良好,具有非常好的安全性、可靠性、可
参考文献:
[1]MENG Xiang-lu.Study and design of the remote USB optical
fiber transmission system [M].Shanghai:Master thesis of
Shanghai Jiaotong University,2005 (in Chinese). [孟翔鹭.
远程USB光纤传输系统的研究与设计[D].上海:上海交通
大学硕士学位论文,2005.]
[2]USB Implementer’s Forum.USB HID Usage Table Rev1.12
[S].http://www.usb.org,2005.
·2626·
第33卷 第7期  戴捷,胡晓吉:基于光传输的USB键盘鼠标一体化设计 
[3]HID class device interface guide [S].2006-10-03.
[4]Universal Serial bus specification [S](Revision 3.0),2008.
[5]LIU Rong.Quan-quan teaches you what is USB [M].Beijing:
Beijing Aerospace University Press,2009:1-160 (in
Chinese).[刘荣.圈圈教你玩USB [M].北京:北京航空航
天大学出版社,2009:1-160.]
[6]LI Zhong.Study and design of the remote USB WDM system
[D].Shanghai:Master thesis of Shanghai Jiaotong University,
2005 (in Chinese).[李忠.远程USB波分复用光纤通信
系统研究与设计[D].上海:上海交通大学硕士学位论
文,2005.]
[7] MENG Xiang-lu.Analysis of the remote USB optical fiber
transmission system [M].Guangxi:Optical Fiber Transmission
 Technology,2005 (in Chinese). [孟翔鹭.远程USB光
纤传输系统远端设备工作性能分析[M].广西:光通信技
术,2005.]
[8]XU Chun-qing.The development and study of USB based on
embedded system [D].Wuxi:Master thesis of Jiangnan University,
2008 (in Chinese). [徐春青.基于嵌入式系统的
USB开发与研究[D]. 无锡: 江南大学硕士学位论
文,2008.]
[9]SHI Guangfan,YAN Guangming,LI Jigang,et al.The design
 and implement of virtual instrument based on computing
technique and USB platform [J].IEEE,2005,17 (18):
101-148
[10]SHAN Fangfang.Design of special module control program
based on USB [D].Master thesis of Xi’an Electronic Science
and Technology University,2009 (in Chinese). [单芳芳.
基于USB的专用模块控制程序设计[D].西安:西安电子科
技大学硕士论文,2009.]
(上接第2595页)
[9]QIN Mingwei,YAO Yuancheng,LI Yun.Time synchronization
 in network time-delay measurement [J].Communications
Technology,2008,41 (8):149-150 (in Chinese).[秦明伟,
姚远程,李云.网络时延测量中的时间同步系统应用研究
[J].通信技术,2008,41 (8):149-150.]
[10] WANG Yini.Clock synchronization and stability analysis
based on clock drift rate [D].Beijing:Beijing University of
Chemical Technology,2008:1-71 (in Chinese). [王旖旎.
基于时钟漂移率的时钟同步及稳定性分析[D].北京:北京
化工大学,2008:1-71.]
[11] Andrew.Tanenbaum. Modern operating systems [M].
CHEN Xiangqun,transl.China Machine Press,2005 (in
Chinese).[Andrew.Tanenbaum.现代操作系统[M].陈
向群,译.机械工业出版社,2005.]
[12]ZHAO Ying.Analysis of clock adjusting strategy based on NTP
[J].Journal of Chinese Computer Systems,2008,29 (10):
1812-1815 (in Chinese).[赵英.基于NTP的时钟调整策略分析
[J].小型微型计算机系统,2008,29 (10):1812-1815.]
[13]LIN Guoyuan,XU Feng,HUANG Hao.Improving intrusion
detection rate using high precision time stamps [J].Journal
of System Simulation,2006,18 (9):2672-2675 (in Chinese).
[林果园,许峰,黄皓.利用高精度时间戳提高入侵
检测率[J].系统仿真学报,2006,18 (9):2672-2675.]
[14]GUO Qisheng,DONG Zhiming,SHAN Jiayuan,et al.
Simulation systems [M].Beijing:National Defence Industrial
 Press,2006 (in Chinese). [郭齐胜,董志明,单家
元,等.系统仿真[M].北京:国防工业出版社,2006.]
[15]TANG Qingmao,CHEN Ping,SHEN Bo.Clock synchronization
 algorithm in simulation systems [J].Computer Engneering,
2009,35 (18):37-39 (in Chinese). [唐庆茂,
陈平,沈博.仿真系统中的时钟同步算法[J].计算机工程,
2009,35 (18):37-39.]
·2627·】优领域 http://www.you01.com
Copyright &}

我要回帖

更多关于 芯片宏和硬件宏 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信