答案是可能的。已经有网友通过在原配的Modem模块上飞线引出USB信号线的方式,实现了蓝牙模块的内置。但是这种方式并不完美:首先它需要在机器中飞线,对安全不利;其次这样简单飞线的方式无法实现蓝牙模块的热键控制,只能永远开着-这对于某些场合是不允许的-从而给使用带来不便。
经过本人的研究,已经实现了在T41/T43上安装任意版本的蓝牙模块,并支持热键控制与蓝牙灯指示(虽然没有在T40/T42/X31/X32/X40/X41等机型上实践,但是由于这些机型的芯片组与样机是一样的,因此我认为也应该可以实现加装)。解决问题的关键就在于对CDC接口定义的了解。见图:
由此图可知,ThinkPad笔记本识别CDC接口上安装的是什么模块,是通过识别pin38(BDC_ID)、pin39(MDM_ID)、pin40(ETH_ID)三个引脚状态来实现的。根据本人实测的结果,BDC_ID接地说明CDC接口上安装的是BDC模块,MDM_ID和ETH_ID同时接地则说明CDC接口上安装的是BMDC模块。因此,我们只需要将pin39和pin40接地就可以让ThinkPad笔记本认为在CDC接口上已经安装了一个BMDC模块,从而在FN+F5菜单中增加蓝牙模块的控制选项(据测试,在T41上,将CDC模块定义为BDC也是可以的,而在T43上则不能使用)。
但是,简单的将自制模块定义为BMDC并不能使ThinkPad笔记本正常开机,而是报告1803错误-很简单,我们自制的模块是无论如何也不可能通过BIOS的硬件检测,并使其认为是原厂模块的-要解决这个问题,有两个办法:1、挑选硬件结构与原厂模块完全一致的USB蓝牙,并刷入官方固件。显然这个办法没有实用价值;2、使用**程序,使BIOS不检测CDC模块直接开机。经过查找资料,发现论坛中用来**1802错误的小程序也可以用来**1803错误,并实测通过。
现在,我们的小黑已经认识了我们自制的BDC,但是它要如何控制BDC的工作呢?这就需要在CDC接口的pin37(BDC_ON)上加装一套MOS管控制电路,当pin37为3.3V时,这个电路接通pin27(VCC3B,主3.3V电源)与蓝牙模块电源端,给蓝牙模块供电。而pin37为0电位时关闭蓝牙模块的电源供应。这样我们的小黑就可以控制自制BDC的工作情况啦。
由此,自制CDC蓝牙的理论准备工作就全部完成了。根据这个方案,我试制了一批PCB,并实际装配测试了两个“BDC”。
包上Modem上拆来的绝缘胶布
安装后的效果如图:
经过实际使用测试,这个自制的BDC在使用效果上与原装的BMDC几乎完全一致,只有因为没有安装天线的缘故信号略差。如果对原装BDMC的高昂价格及过低的蓝牙版本不满,不妨自制一个吧!








评论列表
发表评论

