找回密码
 FreeOZ用户注册
查看: 5597|回复: 12
打印 上一主题 下一主题

[Windows] 使用鼠标滚轮的同时听音乐导致声卡发出杂音的解决办法

[复制链接]
跳转到指定楼层
1#
发表于 5-7-2008 18:25:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?FreeOZ用户注册

x
这是个很普遍的问题,不知道大家都自己解决了还是一直在忍受着?

悠闲的周末or上班的时候,你一边带着耳麦听音乐,一边上网冲浪or上网查资料。 可恼的是,一旦你用鼠标滚轮翻动页面,耳机里就会传来烦人的滋滋啦啦的噪音。鼠标滚轮停了,噪音也就消失了。当排除了声卡问题,耳机问题,驱动问题,软件问题后你就只能怀疑自己的RP问题了,可是如果当你知道大家普遍都有这个烦恼时,连RP问题都排除了,你知道就一直这样在无法反抗的通知默默地享受着这该死的噪音。

今天我实在无法忍受了,一边上网找资料,一边试图从计算机的基本原理上分析原因。 终于解决了这个顽疾,哈哈。

有没有有人遇到过这个问题已经解决了的?先说说看和我的解决方法是不是一样,吊吊大家的胃口
回复  

使用道具 举报

2#
发表于 5-7-2008 18:58:11 | 只看该作者
用小黑,很少在电脑上听音乐,所以没有遇到这个问题。

不过,我在想这个问题的可能成因:
1.电脑声卡部分电路没屏蔽好(如果是台式机,换声卡)
2.鼠标的电磁干扰不合格,导致产生干扰(换鼠标:)

不知道老乞丐是不是从这两个思路来解决。
回复  

使用道具 举报

3#
 楼主| 发表于 5-7-2008 19:37:23 | 只看该作者

回复 #2 ubuntuhk 的帖子

以上你的假设都被排除了,这其实和硬件质量无关,也不光是小黑的问题,很多笔记本和台式机在Windows下都有这个问题,再等一会再公布答案。
回复  

使用道具 举报

4#
发表于 5-7-2008 22:36:20 | 只看该作者

回复 #3 coredump 的帖子

等。。。。快点公布啦。。。我的机子也有这个问题
回复  

使用道具 举报

5#
发表于 5-7-2008 22:44:28 | 只看该作者
对了,我想起来,我的Dell台式机,用滚轮的时候,音箱确实会发出滋滋的声音。
回复  

使用道具 举报

6#
发表于 5-7-2008 23:25:29 | 只看该作者
我的电脑没有这个问题
回复  

使用道具 举报

7#
发表于 5-7-2008 23:37:46 | 只看该作者
我的是兼容机或笔记本都没有这问题,you are unlucky
回复  

使用道具 举报

8#
发表于 5-7-2008 23:39:27 | 只看该作者
我想是不是可以试一下更新你的主板、声卡的驱动。试试MS认证版本的,或者最新版的。这个可能需要一点时间来尝试一下。
回复  

使用道具 举报

9#
 楼主| 发表于 6-7-2008 00:26:17 | 只看该作者

正式公布答案

既然Ana MM都来询问了,咱就不卖关子了

这个问题涉及的技术点:
BIOS
ACPI
IRQ
IRQ共享

简单的说就是,声卡和鼠标放着各个的阳关道不走,非要去挤同一个独木桥。其实不光是声卡这样,实际上很多外部设备在Windows下都在挤独木桥,只不过人耳对声音连续性的敏感让我们感觉出来而已。

略懂计算机原理的TX应该知道,计算机的外部设备工作是通过中断的方式来进行的,术语成为IRQ,PC机一共为外部设备提供了16个IRQ(由主板上两个Intel 8259芯片提供),每个设备一个。这在PC机刚出现时绰绰有余了,键盘,串口,并口,鼠标。。。但是PC发展到了现在16个IRQ显然大大不足,特别是USB的出现,让16这个数字显得更为尴尬。为了应付这一局面,从Windows 2000开始微软在OS中实现了IRQ共享这一功能,能够让多个外部设备共用同一个IRQ号。。嗯,很聪明的想法,不过问题也是从此而来。。。。。。。先给大家补习点IRQ的知识:

FROM:http://blog.programfan.com/article.asp?id=30734
IRQ 为 Interrupt ReQuest的缩写,中文可译为中断请求。因为计算机中每个组成组件都会拥有一个独立的IRQ,除了使用PCI总线的PCI卡之外,每一组件都会单独占用一个 IRQ,且不能重复使用。

由于在计算机运行中,CPU是持续处于忙碌状态,而当硬件接口设备开始或结束收发信息,需要CPU处理信息运算时,便会透过IRQ对CPU送出中断请求讯号,让CPU储存正在进行的工作,然后暂停手边的工作,先行处理周边硬件提出的需求,这便是中断请求的作用。

在每个系统中会有两颗芯片来提供16个IRQ,其中大多的IRQ都有固定的编排,例如 IRQ 0固定为系统定时器,IRQ1则是键盘。因为每一个IRQ只能让一种设备使用,所以IRQ数目十分有限,若计算机安装很多的配件,IRQ势必就会不敷使用,所以可能会发生两个设备共占同一个IRQ的现象,此时也就会出现IRQ冲突问题,造成该设备无法使用。

最简单的解决方法就是到操作系统的硬件设备管理器中去手动调整IRQ的分配,或是在BIOS中作调整。如果是IRQ不敷使用的情形,可以利用其它的方式来解决此一窘境,像是PCI总线可以共享一个IRQ,所以基本上可以采增加PCI插卡的方式,就不会被IRQ所限制。其次是使用USB传输来解决,因为USB控制芯片只会占用一个IRQ,并非所有的USB产品都要独占一个IRQ,所以理论上可以连结最多到127件周边产品,而且目前拥有USB传输界面的产品也越来越普遍了。所以对于传输速度要求不高的周边设备,未来大概将逐渐朝USB接口发展。

and more from : http://en.wikipedia.org/wiki/IRQ
16个IRQ的功能分配如下:
Master PIC
  • IRQ 0 - System timer. Reserved for the system. Cannot be changed by a user.
  • IRQ 1 - Keyboard. Reserved for the system. Cannot be altered even if no keyboard is present or needed.
  • IRQ 2 - Cascaded signals from IRQs 8-15. A device configured to use IRQ 2 will actually be using IRQ 9
  • IRQ 3 - COM2 (Default) and COM4 (User) serial ports
  • IRQ 4 - COM1 (Default) and COM3 (User) serial ports
  • IRQ 5 - LPT2 Parallel Port 2 or sound card
  • IRQ 6 - Floppy disk controller
  • IRQ 7 - LPT1 Parallel Port 1 or sound card (8-bit Sound Blaster and compatibles)


Slave PIC
  • IRQ 8 - Real-time clock (RTC)
  • IRQ 9 - Free / Open interrupt / Available / SCSI. Any devices configured to use IRQ 2 will actually be using IRQ 9.
  • IRQ 10 - Free / Open interrupt / Available / SCSI
  • IRQ 11 - Free / Open interrupt / Available / SCSI
  • IRQ 12 - PS/2 connector Mouse. If no PS/2 connector mouse is used, this can be used for other peripherals
  • IRQ 13 - ISA / Math co-processor
  • IRQ 14 - Primary IDE. If no Primary IDE this can be changed
  • IRQ 15 - Secondary IDE

大家可以看到IRQ9, 10, 11是可选的,自由定义,由于Windows自从Windows 2000之后有了NB烘烘的IRQ共享能力,自然觉得有一个IRQ给我就足够了,于是默认下,很多的设备会被分配到同一个IRQ上面(计算机->管理->设备管理器->查看->依连接排序资源, 看PCI Bus节点,所有共享同一IRQ的设备会被归结到一起)。 这个策略的确很有效,使大家根本不用担心IRQ资源冲突的问题了,正是由于Windows越来越出色的硬件管理能力,IRQ这个术语渐渐的远离我们而去。

不过聪明总有反被聪明误的时候,当声卡和很多USB设备共享同一IRQ的时候,本文所述的问题往往就出现了,当然出现这个问题不光怨Windows,也需要BIOS的配合,因为很多BIOS现在已经懒得去分配IRQ了,大部分BIOS给全部PCI设备统统配置成了IRQ11或IRQ9也加剧了IRQ资源争夺的现象,所以才导致了现在的“挤独木桥”现象。

明白了原理,处理起来就非常轻松:
1. 重启机器,进入BIOS设置
2. 在PCI的IRQ配置页,选auto select或者手工分配不同的IRQ
3. 如果不用串口,并口,MODEM和软驱的话,把这些设备在BIOS里统统禁用掉

F10 保存并退出BIOS,重启后问题就解决了。

评分

参与人数 1威望 +30 收起 理由
ubuntuhk + 30 太牛,不能不赞:)

查看全部评分

回复  

使用道具 举报

10#
发表于 12-7-2008 21:53:47 | 只看该作者
LS debug能力不是一般的强啊
回复  

使用道具 举报

11#
发表于 13-7-2008 02:15:42 | 只看该作者

回复 #9 coredump 的帖子

原来如此,我一直往辐射上面想呢,心想,这刷新LCD画面也能产生很强的电磁辐射
回复  

使用道具 举报

12#
发表于 13-7-2008 20:39:11 | 只看该作者
只有用滚轮的时候有噪音吗,鼠标的任何移动不都是应该调用中断?还是因为滚轮用中断比较厉害所以能察觉到?
回复  

使用道具 举报

13#
 楼主| 发表于 14-7-2008 09:42:30 | 只看该作者

回复 #12 stan 的帖子

滚轮比较明显,鼠标移动没有噪音感觉。另外按住向上或向下箭头滚动网页也有噪音,说明这个问题不完全是由鼠标的工作引起的,键盘,鼠标等USB设备的中断处理本身并不消耗多少资源,现在的计算机完全能够应付。我感觉是用滚轮或下拉箭头滚动网页时的IO处理抢占了声卡输出的带宽,因此除了把USB等设备的IRQ和声卡分卡外,对于有些机型(比较老的机器BIOS才有这个设置),最好把”Assign IRQ to VGA“禁用,最起码,选个和声卡不一样的IRQ通道,以免视频处理和声卡冲突。

reference:

Assign IRQ for VGA:  http://www.adriansrojakpot.com/s ... /BIOS_Guide_01d.htm
回复  

使用道具 举报

您需要登录后才可以回帖 登录 | FreeOZ用户注册

本版积分规则

小黑屋|手机版|Archiver|FreeOZ论坛

GMT+11, 17-11-2024 10:41 , Processed in 0.022647 second(s), 29 queries , Gzip On, Redis On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表