|
|
USB无冲问题是个兼容性的问题,几种可能的技术实现在某些陈旧系统都会有一些问题,有点类似千年虫问题。在技术选择上,有成熟产品,已经在市场占有份额的企业会趋于保守,保证兼容已有系统。新兴企业就会激进些,制造 ...
Saphire 发表于 2011-5-2 19:01 
恩,有技术难度的,需要多听听你的话语,才更有可信度,没事没事,我一般只作拆解,很少在这里聊天,今天能跟你聊天,收获不少。
刚才跟一个键友探讨了1个小时的无冲突技术的应用性
发现有处疑问:
即:先有键盘后有应用软件/游戏, 还是先有应用软件/游戏,颇有些“鸡和蛋”的纠结不清的劳神问题的感觉。
一:如果先有键盘,也就是说有了市场上绝大部分的不支持多键无冲突的键盘,然后,应用软件/游戏设计者在进行游戏设计的时候需要考虑组合按键功能实现的必要性和可行性。
这样,相信绝大部分软件设计者不会选择去实现一种很少有键盘能够支持的或者说一般用户很难操作的组合按键功能。
相信设计者在设计的时候,会充分考虑常见键盘的冲突组合,尽量选择不会冲突的按键进行组合。
这种情况属于软件设计需要考虑硬件的兼容性的情况。
二:如果是先有应用软件/游戏,有了多键位无冲突的设计用法,那么键盘控制电路设计者会根据此需求,进行键盘的设计,这样键盘就为游戏而生。
这种情况属于根据软件/游戏定制键盘功能的情况。
以上两种“鸡和蛋”的问题,互不兼容,在现有情况下相信趋向于一的情况会更多一些。
然而,科技在发展,事态在变化,技术永远不是问题,需求才是根本,需求才是推动技术发展方向的决定因素。
如果确实有全无冲的需求(现在想想,全部100多键位无冲突,似乎不大可能有这种需求),而且这种需求越来越强烈,越来越合乎人们的需要,相信会有一种彻底的突破:
改变现有软硬件实现方式,努力推进无冲突进程,大踏步迈向无冲时代!
接下来,跟这位键友开始讨论到需求的问题上了,既:到底多少个按键同时按下会满足人们的需求。
一,一个人使用一把键盘的情况:
办公应用类软件中极少数会用到六键以上的组合情况。
游戏中,一个人同时按6个以上的情况,似乎也不多,主要是6个以上,一般人真的很难驾驭的住。
二,两个人使用一把键盘的情况:
办公应用软件就算了,没有哪个这类软件会设计成让两个人用一把键盘的。
游戏中,会有一些2人对战,协战的情况出现,但是这类游戏比较少,而且使用手柄的比较多,其实每个手柄的按键真的不多,而且一般一人一只手柄,想想,即使一个手柄的按键多过6个,一般玩家也不会强大到经常需要6键同时按下的情况。
因此,我们对这种需要6键以上无冲突的需求不是持很乐观的态度,认为短时间内,有强有力的推动的需求因素不多,我很赞成你的如下一段分析,很客观,很理性:
“从启动阶段进入OS阶段后,OS会对总线发出RESET命令,然后重新枚举设备,这时主机会读取报告描绘符,规范里的范例实现依然用了6个字节作为按键队列。但规范并没有限制是6个。而大多数新的操作系统,比如Windows和Linux也支持6个以上的按键状态,但是这里习惯又占了上风,既然规范范例是6个,保不齐那个主机侧实现硬编码为6个,为了最大的兼容性,或者说大多数制造商不关心这种用途,选择最稳妥的做法,这形成目前USB 6键无冲的局面。这样考虑的原因可能是在USB 1.1规范中,低速模式下Packet的上限是8字节。
这里面还有一个推波助澜者就是控制器芯片制造商,大多数键盘制造商没有选择使用通用控制器,来自己实现全部内容,包括USB HID协议栈和扫描矩阵相关程序,而是使用现成的键盘芯片,这种芯片固件中已经包含了一个键盘所需的全部功能,键盘制造商只需设计简单的外围电路,然后在固件中写入键盘扫描矩阵码和自己的标识信息,一枚键盘就出炉了。这种固件通常遵循规范的默认实现,即6键无冲。” |
|