引用 虎哥:
话不要说那么绝对,特别是“如果……就”。随便搞个AD采了写写代码就是软件无线电,可以与用什么系统没有半毛钱关系的。
根据我对SDR技术的了解(很遗憾,但我从来没有玩过SDR),SDR是解决现代通信技术领域中出现的各种难题的一柄利器。由于对容量、安全性和可靠性的需求越来越高,以前的很多简单的、可以用简单模拟电路或者数字逻辑进行调制解调的调制方式、协议都变得不适用,取而代之的是各种复杂的令人窒息的新的调制方式、协议。
为这些新的通信方式生产廉价专用硬件,必须要等到其规范成熟之后。例如路由器芯片中的WiFi前端和协议栈。
由此可见,使用专用硬件的缺点有:
1 迟(你无法在WiFi普及前,用按需打样的芯片调试WiFi协议,除非你是制定协议的厂商之一
2 昂贵(不是每个人这辈子都能流一次片
3 大量闭源(路由器芯片厂家的资料什么时候公开过了
4 通用性很低(我想用路由器上GSM,其实在ic里面不难实现,但在用户这边却绝对做不到
随着通讯协议复杂度的提高,专用硬件的成本只会越来越高,另一方面其通用性只会越来越低。这就对工程技术人员学习这方面知识、调试这方面应用带来了很高的壁垒,包括资本壁垒和技术壁垒。
而SDR的好处在于,软件是可以轻易复制的,由于将调制和解调、通信协议等工作软件化,同一款硬件可以通过修改软件,快速而低成本地获得对各种调制方式、协议的兼容,从而成为瑞士军刀一般的角色。如果使用SDR建立通信基站,则可能在不变更硬件的情况下,随时增加更多的功能。而在这里节省的投入,包括设施和人力成本,随着可编程器件、微处理器等技术的发展,有可能超过使用专用硬件所带来的成本优势和功耗优势。概括的讲,未来的通信技术,将是软件的。比如手机基带可能变成ARM公司的某通用解调芯片,可以兼容目前所有蜂窝通信协议,甚至可以改成对讲机使用。
在进行上述阐述之后,下面就可以回应虎哥的几个论点了。
1 在SDR的世界里,很容易一不小心就侵犯资本家的利益。例如,虎哥在windows上面使用该硬件配合若干软件,解调了某知名通讯协议,该协议的专利权利人(同时是该协议专用ic生产商)发现后,向微软提出抗议,结果微软在windows上利用更新等方式,禁止此款软件运行,并拒绝安装相关硬件驱动。又例如,虎哥在windows上面使用该硬件时发现了bug,于是找厂商寻求解决方案。厂商联系微软后,微软拒绝提供其驱动层相关保密源代码,导致此bug无法解决,虎哥体验严重受损。
实际上,这样的问题天天在发生,发生了很多年,于是许多专业技术人员为了保证研发效率,别无选择,只能忍痛割爱,藏win于箱底。从技术角度讲,虎哥在linux上碰到的问题,虽然很讨厌,但尚属尽社区之力可以解决范畴(即便暂时还没有解决);如果这些问题出现在win上面,则是穷一通讯企业之力,仍未必令微软妥协之悲哀了。
以现实情况举例,USRP能够与PC进行高吞吐率的数据交换,得益于其usb3.0接口;不管在windows还是linux下,在进行usb通讯时我们都需要相应的驱动程序支持,也即应用程序无法越过系统权限直接访问USB协议栈。因此,软件工作有一部分是围绕主机的usb驱动程序展开的,这需要对系统内核和usb驱动有良好了解。对于低吞吐率的SDR方案(例如USB2.0 Fullspeed,或者串口),由于面世时间久,各家驱动尚且可以部分兼顾(如串口,可直接调用);到了3.0的时代,个人开发者要想对windows10的系统内核和usb3.0驱动支持有良好了解,由于技术壁垒的存在,其实是非常困难的(除非你很有钱)。显然,对linux内核代码了解的人,在人数上远远大于对windows内核代码了解的人数。特别是有很多必需功能,由于微软闭源其系统,其linux编程难度低于windows。这就决定了,SDR的上位机只能选择linux,不然大家拿回去之后只能看频谱,没办法高效地搞开发了,更别说开源。为什么不能裸机?正如warmonkey所述,裸机无法实现如此复杂且高效的SDR应用环境;同时,根本就没有几个人能给x86写裸机代码。USRP能够实现强大的处理能力,得益于基于英特尔x86处理器的高性能PC平台。x86之所以还能占据市场,乃是由于其复杂的设计带来的极高处理性能。而为x86编译代码,如果使用微软的工具(vc++等),你必须向微软支付高昂的授权费用,这就决定了爱好者无法合法低成本的编译软件。相对的,使用gcc一分钱不要。仪表局局长如果不能理解,恐怕因为也是“盗版软件的受害者”吧。
2 软件定义无线电,这里软件的定义是什么?软件可以是C源代码,也可以是Verilog源代码,即凡是可以自由复制并随意部署的,皆为软件。虎哥说ADC采个样算一算也可称为SDR,那我要强烈的反对一下。
以仪表局的901天分为例,901中运行大量软件,完成各种计算,输出结果到屏幕,但901并不属于SDR产品,正如同MP4播放器不属于“软件定义流媒体解码器”一样。这是因为901中的软件,用户无法重新编程,无法作功能上的修改,从产品的角度讲,属于固件而不是软件。如果901做成接收机,这就是数字接收机,但不能称为SDR接收机。换句话说,这样的产品,无论内部是用软件还是数字还是模拟,对于终端用户并没有任何区别,那还何必提SDR这个概念呢?
纵使USRP有万般不好,考虑到它提供的是廉价但高性能的、由可编程的硬件支撑的、软件资源丰富且不受版权限制的平台,绝对可以称得上是货真价实的SDR。901一定比USRP好用!但901不是SDR。
高性能SDR满足的不是无线电通联爱好者的娱乐需求,而是无线电技术研究者的开发需求。当然,有些廉价SDR方案只能用于娱乐用途,但因为比传统方案便宜,在娱乐方面也有一定市场,两者不能一概而论。如果仅仅看个频谱,根本不需要SDR,只不过某些廉价SDR方案比专门的数字接收机或者频谱仪器要便宜很多,才有用电视棒看频谱这么一说。所以对于此款SDR由于设计过于复杂而无法在较短的时间内满足看频谱这样的简单需求,确实不能称为其缺点,就如同用minecraft画飞机发动机,搞了几天都画不出一片螺旋桨一样。
200字以内,仅用于支线交流,主线讨论请采用回复功能。