无线网卡的原理,和刚才做的那两个无线电收发器,其实差不了多少。
但即使真的做出来了,也别指望用286就能上网冲浪。
江寒想做这个的真正目的,是和外面的笔记本电脑组成局域网,实现文件共享。
他此前就发现了,的确能在系统里,买到各种型号的无线网卡,只可惜并不能用在这台286上。
这台286年代太久远了,久远到……
那个时候的外设接口,还是以ISA为主,别说WLAN协议、USB了,连PCI都还影儿都没有!
这样一来,江寒只能自己DIY一个无线网卡。
无线网卡的工作电路,通常包含无线收发器、带通滤波器、功率放大器、低通滤波器、收发切换器、低噪声放大器和天线等几大部分。
市面上常见的无线网卡,很多功能都封装在一颗芯片里,比如RTL8192之类。
江寒没有那个条件,也买不起系统提供的芯片,只能用“土办法”来实现相应的功能。
好在这些知识,都包含在《射频电路设计》里,而这本书又是很多电子专业的必修课。
硬件方面虽然困难不小,江寒还是有自信解决的。
关键是软件。
和刚才用于遥控电动车、机械臂的无线收发器不同。
再怎么简单的无线网卡,也必须支持常见的数据传输协议,才能和普通的计算机联网。
此外,无线网卡的工作,还需要软件上的支持。
现代的操作系统一般都预置了许多驱动,安装新硬件十分方便。
而DOS系统中,必须为每一个硬件设备,编写相应的驱动程序,并在应用程序中,调用相应的API接口,硬件才能正常地工作。
这些知识很多都不经常用到,江寒了解的也不算特别多。
但不要紧,不会就学呗。
他琢磨了一会儿后,暂时退出了虚拟空间,准备上网找些资料做参考。
然而,刚刚打开电脑,他忽然感觉到一丝异常。
事实上,昨天他就隐约察觉到了,今天终于得到了证实。
虚拟空间刚开放时,内外时间的流速,是10:1。
而今天,自己在虚拟空间中,至少度过了七、八十个小时。
按照10比1的比例换算,就是七、八个小时。
所以按理说,这时候外面应该差不多亮天了。
然而此刻外界的时间,居然才晚上11点多。
显而易见,虚拟空间内外的时间比例,和以前不一样了。
粗略估计一下,就能发现,现在两个时间的速度之比,赫然是惊人的100比1!
也就是说,在虚拟空间里度过100个小时,外界的时间只流逝1个小时。
为什么会这样?
江寒很快就产生了一丝明悟。
刚激活虚拟空间时,他就有过一个猜想:虚拟空间里的时间流速,取决于他的思考速度。
如今看来,这个猜想更加接近事实了。
这样就容易解释了,为何在对大脑进行“升级”后和改造后,这个时间流速也发生了变化。
当然,无论实情怎样,江寒无疑是十分乐意看到这种变化的。
人生苦短。
能在同样的时间里,做完更多事情,这是多少钱也换不来的。
而且这样一来,在10年之内突破命运限制,打破“紧箍咒”,解决寿命问题的几率,多少也增大了一丝丝。
江寒开始上网。
网络上资料比较混乱,好在他的分辨能力还是很强的。
花费了一番心血后,终于理顺了知识脉络,然后将几十份资料整合在一起,并归纳出了技术要点。
接下来,他就再次返回虚拟空间,开始打造真正的无线网卡。
这是一项大工程。
江寒足足花费了四十多个小时,才搞定了设计图。
反复检查了几遍,确定没有任何问题,就将其回收掉,然后又在图纸列表里,将无线网卡自动构建了出来。
这个无线网卡完全采用晶体管、震荡器、电阻之类的基本元件打造。
所以,设计复杂还在其次,关键是体积有点庞大。
一张工作台几乎摆不下,你敢信?
好吧,能用就行。
江寒将这个硕大的无线网卡,通过一个25PIN的DB-25连接器,连接到了286扩展接口卡的标准并行接口(SPP)上。
然后尝试在电脑端编程,读取并口数据。
测试的结果非常喜人。
江寒在电脑并口中,成功地检测到了数据,这说明无线网卡是可以工作的。
接下来,需要给网卡编写一个驱动程序。
为什么要有驱动程序?
一般的回答是“为了构建应用程序到硬件之间的桥梁”。
很多人都以为硬件不驱动就无法使用,而事实上……
在应用程序中自己写代码,使用指定的硬件,理论上是完全可行的。
说到底,驱动本身也只不过是一种程序。
但在现实中,为了提高代码复用率,增加可移植性,硬件厂商都会给硬件开发独立的驱动。
在DOS中编写驱动程序并不复杂,只是有一些术语,在Windows时代已经看不到了。
比如什么“策略例程”、“中断例程”……
相关的资料网上都有,江寒开发起来也算得心应手。
当然,开发驱动这种底层程序,基本上都要使用汇编语言。
这并不是功能上的问题,虽然汇编能做的事情,C几乎都能做。
但C程序即使再怎么优化,一般来说,也要比纯汇编语言慢20%~30%。
江寒经过一番折腾,终于写好了这个无线网卡的驱动。
之后,就可以在其他程序中,使用这个驱动提供的API接口访问网络了。
江寒又写了一个小程序,用来把从网卡上接收的数据,以文件的形式保存下来。
程序运行后,出现了一个闪烁的光标,表示处于等待数据状态。
随后江寒退出了虚拟空间,然后在现实中的笔记本电脑里,搜索了一下网上邻居。
很快,他就在网上邻居中发现了那台位于虚拟空间中的286!
这意味着那台土制网卡,得到了Windows系统的承认。
但是,别以为接下来就可以顺顺当当地组成局域网了。
Windows系统和Dos联网,可是一件很让人崩溃的事情。
江寒又开发了一个小软件,利用NETBIOS数据报(datagram)机制,通过无线网卡发送不指定目标的数据。
当然,为了使这台电脑能和虚拟空间的286“握手”,他还特意在每个数据包的头部,加上了一些“识别码”。
而286那边,就可以通过识别码,在接收到的无数无线信号中,过滤出有用的数据,进而保存成文件。
通过这样的操作,江寒终于在两台电脑之间,实现了单向的文件传输。
如果想要实现双向传输的话,还需要扩充一下程序的功能,将上述过程反过来……
大约12点多,江寒终于搞定了准备工作,开始正式传输文件。
而他第一个要传输的,却是一本英文字典。
没错,看原版教材、参考书或者英文资料的时候,经常会遇到一些专有名词,又或者什么特别生僻的词。
这种时候,一般都要用手机上网查,要么就是捧着一本厚厚的大字典,显得特别没有逼格。
而把字典“安装”到大脑里之后,江寒就可以闭一下眼睛,就能解决这种小问题了。
很快,江寒又想到了一个新的应用。
那就是把要学习的书籍,扫描一下,弄成文档,传输到虚拟空间里去。
这样就等于把知识安装到了大脑中,以后就可以在虚拟空间里,躺着学习了……
当然,在这台落后的286上,看图是个大问题,最好是纯文字的格式。
这样的话,又要求有个好使的OCR软件才行。
而现在市场上的OCR软件,说真的,性能实在不怎么样。
识别正确率能有个90%上下,都算得上行业翘楚了。
英汉字典很快传完,江寒再次进入虚拟空间。
然后用C语言编写了一段代码,对词典的数据进行了处理。
又编写了一个软件,以提供基本的查字典功能。
软件编写完了,江寒试用了一下,结果不出意外的,屏幕上出现了一堆乱码……