专利名称:软件定义认知无线电装置的制作方法
软件定义认知无线电装置背景许多计算设备配备了允许该计算设备无线地连接到网络或其他计算设备的硬件。 这样的无线硬件通常包含一个或多个无线电装置,每一个无线电装置都具有发射机、接收 机、以及数据处理组件。在一些设备中,无线硬件具有预定义配置,使得每一无线电装置支持根据诸如 Wi-Fi、WiMAX、蓝牙、或HSDPA等特定无线技术的连接。例如,这样的无线电装置可以使用一 个或多个预定义频率来通信并使用预定义控制消息序列来与另一设备连接或交换信息。为 支持与使用不同无线技术通信的不同设备进行通信,无线硬件可包括多个无线电装置,每 一个无线电装置都被配置成使用特定无线技术来通信。一些无线电装置可以支持多种密切相关的无线技术,如802. 11标准的各个变型。 同样,一些无线电装置具有可被设定以适应操作条件的参数。例如,在遇到高误码率的情况 下,适应它们的发射数据率或发射功率级的无线电装置。然而,具有预定义配置的无线电装 置一般在它们可支持的无线技术方面受到限制。在其他设备中,无线硬件是可配置的,使得用于通信的无线技术可以在软件控制 下改变,从而实现有时被称为“软件定义无线电装置”的无线电装置。无线硬件适用于接收 可改变无线电装置的操作参数的控制输入,如用于通信的频率或对接收到的信号执行的数 据处理。通过重新配置硬件的操作参数,对一组硬件组件而言,担当用于不同无线技术的无 线电装置是可能的。发明概述实现了软件定义无线电装置以通过既方便新功能又简化与已知功能的操作来改 进计算设备的用户的体验。在一个方面,该软件定义无线电装置具有带分开的控制平面和 数据平面的体系结构。数据平面执行与无线通信相关联的数据处理操作。控制平面可改变 数据平面的配置以改变无线电装置操作的无线技术或在不改变无线技术的情况下调整操 作参数。有了通过该体系结构所提供的灵活性,可以配置或重新配置该软件定义无线电装 置以支持通过一种或多种无线技术的高效通信。作为通过软件定义无线电装置所提供的灵 活性的一个示例,可在数据平面和控制平面中的组件之间的容易地创建反馈路径。数据平 面中的各组件可以生成关于正在使用的通信信道的状态信息,如误码率或噪声级。这一信 息可被提供给控制平面内的认知模块,该认知模块可标识对数据平面中的各组件的可适应 正在进行的操作条件的调整。以上概述是对由所附权利要求定义的本发明的非限定性的概述。附图简述附图不旨在按比例绘制。在附图中,各个附图中示出的每一完全相同或近乎完全 相同的组件由同样的标号来表示。出于简明的目的,不是每个组件在每张附图中均被标号。 在附图中
图1是根据本发明的一实施例的包括具有软件定义无线电装置的计算设备的计
4算环境的略图;图2是根据本发明的各实施例的包含软件定义无线电装置的计算设备内的各组 件的框图;图3是根据本发明的一实施例的无线技术规范库的数据结构的略图;图4是根据本发明的一实施例的软件定义无线电装置的软件模块的略图;图5A是根据本发明的一实施例的第一配置中合并软件定义无线电装置的计算设 备的略图;图5B是一替换配置中图5A的计算设备的略图;以及图6是根据本发明的各实施例的可配置无线电装置的略图;图7A、图7B、和图7C示出根据本发明的一实施例的可在调制器中生成的状态信 息;图8A和图8B示出根据本发明的各实施例的可在调制器中进行的适应;图9A和图9B示出根据本发明的各实施例的可在编码器进行的适应;以及图10是根据本发明的一实施例的通信过程的流程图;详细描述根据本发明的各实施例,实现了计算设备的具有允许在多个场景中容易地进行配 置和重新配置的体系结构的软件定义无线电装置。其中可以采用这样的软件定义无线电装 置的环境的示例由图1提供。图1示出多个计算设备在其中交互的联网计算环境。这些计算设备中的一个或多 个可包含根据本发明的各实施例的软件定义无线电装置。在所示示例中,如图所示,三个计 算设备无线地通信膝上型计算机110、打印机112、以及智能电话114。虽然示出了三个计 算设备,但任何数量或类型的计算设备可以采用根据本发明的各实施例的软件定义无线电 装置并且为简明起见示出了三个设备。在该示例中,膝上型计算机110与接入点116无线地通信。通过接入点116,膝上 型计算机Iio可获得对网络120和连接到网络120的一个或多个设备的访问。作为膝上型 计算机110可通过网络120访问的各类型的设备的示例,图1示出了服务器150。在该示例 中,服务器150可以是组策略服务器。如本领域中已知的,组策略服务器可被配置成向域加 入的客户机提供管理信息。组策略服务器向网络管理员提供用于向域加入客户机提供策略 信息的机制。这样的服务器可以在企业网络中使用以允许网络管理员配置或以其他方式管 理网络客户机。诸如膝上型计算机110等网络客户机可以用代理来配置,该代理在连接到 网络120时访问组策略服务器150来获得或更新组策略信息。组策略服务器150可以用任何合适的方式来维护组策略信息。在图1的示例中, 可以在数据库130中维护组策略信息。数据库130可以表示可由组策略服务器150访问的 任何合适的计算机存储介质。在图1的示例中,数据库130可包含本领域已知的组策略信 息。作为替换或补充,数据库130可包含对配置膝上型计算机110内的软件定义无线电装 置有用的信息。例如,数据库130可包含在被下载到膝上型计算机110并被应用于膝上型 计算机110内的软件定义无线电装置时配置该软件定义无线电装置以根据特定无线技术 来通信的一个或多个无线技术规范。例如,图1示出从数据库130通过服务器150下载到膝上型计算机110的无线技术规范132。所下载的无线技术规范132可以配置膝上型计算机110内的软件定义无线电 装置以根据任何合适的无线技术来通信。下载到膝上型计算机110的无线技术规范可被串 行或并行地应用于软件定义无线电装置以改变膝上型计算机110内的软件定义无线电装 置的功能,来在不同的时刻支持不同的无线技术或同时支持多种无线技术。例如,在图1中,膝上型计算机110与接入点116无线地通信。与基础结构网络的 接入点的这一通信通常使用根据802. 11协议的无线技术来执行。然而,膝上型计算机110 的用户可能希望访问未连接到基础结构网络120的设备,如打印机112。打印机112可能不 支持根据与接入点116相同的无线技术的通信。通常,诸如打印机112等设备被配置成使 用自组织(ad hoc)网络来通信并可以使用诸如蓝牙等无线技术。因此,可将无线技术规范 132应用于膝上型计算机110内的软件定义无线电装置以将该无线电装置配置成使用与用 于通过接入点116通信的无线技术所不同的无线技术来与打印机112另外地进行通信。打印机112也可包括可被类似地配置成与膝上型计算机110通信的软件定义无线 电装置。但是,具有软件定义无线电装置的设备不必只与具有软件定义无线电装置的其他 设备进行通信,并且打印机112中的无线电装置可以用任何合适的方式来实现。像膝上型计算机110 —样,其他计算设备可包括可通过应用无线技术规范来配置 的软件定义无线电装置。例如,智能电话114被示为与接入点116无线地通信。如上所述, 与接入点116的通信可以根据诸如802. 11协议等无线技术。智能电话114可以另选地使 用不同的无线技术来与通用分组无线业务(GPRS)网络118通信。为支持图1所示的使用 两种无线技术的通信,智能电话114可配备同时使用多个无线技术规范编程的软件定义无 线电装置。使用无线技术规范来编程的每一计算设备可以用任何合适的方式来获得这些无 线技术规范。作为示例,图1示出无线技术规范可由计算设备通过组策略服务器150获得。 更一般地,无线技术规范可在可运输计算机存储介质(如⑶)上获得、从任何合适的服务器 获得、或从任何其他合适的源获得。作为这一能力所提供的灵活性的一个示例,无线设备可以通过因特网或其他公共 可用网络下载无线技术规范。可通过因特网到达的服务器的运营商可以提供无线技术规范 来获得费用或其他商业报酬。例如,GPRS网络118的运营商可以提供无线技术规范,从而 允许计算设备访问GPRS网络118。如果对GPRS网络118的访问只提供给订阅该网络服务 的用户来获得费用,则GPRS网络118的运营商通过允许更多用户访问GPRS网络118并因 此订阅通过GPRS网络118提供的服务来接收商业利益。作为另一示例,公司或其他实体可以操作网站,具有软件定义无线电装置的计算 设备的用户通过该网站可购买或许可一段时间的无线技术规范,从而允许根据特定无线技 术进行通信。例如,这一能力对准备旅行到外国的计算机用户而言是有用的,在该外国中广 泛使用该用户的计算机未针对其进行配置的无线技术。在旅行到该外国之前,计算机用户 可能希望下载无线技术规范,以使用户可以与该外国中的网络或其他设备无线地通信。在 这一场景中,一公司可以提供无线技术规范来获得费用。作为替换或补充,无线技术规范可 以结合对该外国中的无线网络的订阅来提供,这需要支付费用。以此方式,配备软件定义无 线电装置的计算设备的用户可从他们的计算设备可在其上无线地通信的扩展地理区域极 大地获益。即使在使用已下载无线技术规范访问的网络不在外国时,也可获得同一好处。因此,在本发明的各实施例中,无线技术规范可以从任何合适的服务器下载或从任何其他数 据源获得,以用于与处于任何合适位置的任何合适的无线设备进行通信。图2示出具有可使用诸如无线技术规范132 (图1)等无线技术规范容易地配置的 软件定义无线电装置的计算设备200的体系结构。这样的计算设备可以使用任何合适的硬 件来实现。然而,在图2的示例中,计算设备200包括耦合到计算机总线260的处理器210。 例如,计算机总线260可以是PCI总线。然而,可在计算设备200内使用任何合适的总线。 通过计算机总线260,处理器210可以与一个或多个其他硬件组件通信。在图2的示例中, 示出了无线电卡270。处理器210可以是任何合适的一个或多个处理器并且每一个处理器可以具有一 个或多个核。然而,为简单起见,示出了单个处理器210。同样,可以用任何合适的方式来封 装用于实现软件定义无线电装置的硬件组件。例如,实现软件定义无线电装置的各硬件组 件可以在分开的无线网络接口卡上实现或可以与计算设备200内执行其他功能的硬件组 件合并。作为可能的变型的又一示例,用于实现软件定义无线电装置的硬件组件可以分布 在连接到计算机总线260的多个卡上。因此,图2示出其中单个无线电卡270合并软件定 义无线电装置的所有硬件组件的示例实施例,但可以采用硬件组件的任何合适的封装。图2还示出可以在计算设备200内执行的软件组件。在所示实施例中,软件组件可 以作为计算机可执行指令和配置参数来存储在与处理器210相关联的计算机存储介质中。 软件组件可以用任何合适的方式来配置。在所示实施例中,软件组件包括操作系统212。操 作系统212可以是本领域已知的计算机操作系统,但可以使用任何合适的操作系统。操作 系统212可以提供由在计算设备200上执行的应用程序214访问的多个功能。应用程序组 件214的数量和类型可取决于计算设备200的类型和功能。然而,应用程序214的各示例 可包括web浏览器、电子邮件应用程序、或者可生成或消费使用软件定义无线电装置无线 地发射或接收的数据的其他应用程序。操作系统212可以提供应用程序214与软件定义无线电装置之间的接口。操作系 统212还可以提供比无线电装置所提供的更高级的网络功能。例如,无线电装置可以提供 OSI分层网络模型的1到3层的网络功能。操作系统212可以提供对更高网络层的功能的 支持。在这一场景中,操作系统可以支持应用程序124和其他计算设备中的应用程序之间 的连接。例如,应用程序通常使用TCP协议或其他基于连接的协议进行通信。操作系统212 可以包含建立和维护与其他设备中的应用程序的连接的组件,但依赖于软件定义无线电装 置来物理地将有关该连接的数据传达给该其他设备。不管是否采用软件定义无线电装置,操作系统和无线电装置之间的这样的功能划 分在本领域中都是已知的。因此,计算设备200内的操作系统212和软件定义无线电装置 之间的通信功能的具体划分对本发明而言并不重要。在图2的示例中,实现了软件定义无线电装置,其中软件组件被分成数据平面220 和控制平面240。由应用程序214或操作系统212生成的用于无线发射的与特定无线技术 相关的数据或控制消息在其应用于无线电卡270以进行发射之前穿过数据平面220。数据 平面220内的组件所执行的具体处理可以由控制平面240内的组件来定义和配置。在无线 电卡270上无线地接收到的与特定无线技术相关的数据或控制消息在其到操作系统212或 应用程序214的途中可穿过数据平面220的各组件。在数据平面220内对接收到的数据执行的处理同样可由控制平面240内的组件来定义和配置。在所示实施例中,无线电卡270上的硬件组件同样可以分成控制平面和数据平 面。在所示实施例中,数据平面290被示为包含多个组件。无线电卡270内的硬件控制平 面被实现在单个模块280中。然而,控制和数据平面中的每一个内的模块的数量和类型对 本发明而言并不重要。在所示实施例中,软件数据平面220包括分组处理和 安全模块222、媒体访问控制 模块(MAC) 224、以及基带处理模块226。在这些模块中的每一个内执行的具体功能可取决 于软件定义无线电装置的配置。然而,分组处理和安全模块222在处理要发射的数据时可 以接收来自操作系统212的数据并根据该软件定义无线电装置被配置成实现的无线技术 所使用的任何协议将该数据格式化成各个分组。作为形成分组的一部分,分组处理模块222 可以执行分组级加密、将签名应用于分组以用于认证、或对要被无线地发射的数据执行其 他安全功能。MAC处理模块224内的各组件可以适当地执行配置软件定义无线电装置所针对的 无线技术的一个或多个MAC功能。例如,MAC处理模块224内的各组件可以建立计算设备 200可通过其与另一无线设备无线地通信的信道,确定何时可以通过该信道发射数据或用 于通过该信道通信具体频率。除其他功能之外,在处理要发射的数据时,MAC处理模块224内的各组件可以接收 在分组处理和安全模块222内定义的分组并将每一分组转换成源位流以进行发射。这些源位可以提供给基带处理模块226内的各组件以用于进一步处理并最终用 于应用到无线电卡270上的硬件组件以进行无线发射。例如,基带处理模块226内的组件 可以使用前向纠错算法来对源位进行编码。另一组件可以数字地调制经编码的位流,如通 过将位的各编组映射到各个码元以供发射。可以使用的调制方案的一个示例是使用相位和 幅度键控的正交幅度调制(QAM)。然而,所采用的具体调制功能可取决于软件定义无线电装 置所实现的无线技术。另外,处理模块224内的各组件还使用一个或多个数字滤波算法来 对已调制位流进行滤波。与基带处理模块226内的其他组件一样,各滤波组件所执行的具 体功能可取决于要实现的无线技术。为了发射数据,数据处理还可以由无线电卡270上的硬件组件来执行。因此,硬件 卡270可在数据平面290内包括一个或多个硬件组件。在图2的示例中,硬件数据平面290 包括卸载硬件模块292、混合电子装置模块294、以及天线和RF电子装置296。这些硬件模 块中的每一个都可以使用已知数字和/或模拟电子电路组件来实现。这些硬件模块中的每 一个的具体实现可取决于无线电卡270所支持的无线技术的射程。然而,作为示例,为了支 持发射数据,天线和RF电子装置模块296可包含功率放大器和用于执行上变频的频率转换 器。上变频器在其上操作的频率范围可取决于无线电卡270可在其上操作的频率范围。另外,天线和RF电子装置模块296可包含耦合到功率放大器的一根或多根天线。 在一些实施例中,天线是可针对不同频率的操作来配置的,其中基于软件定义无线电装置 所支持的一种或多种无线技术来选择具体配置。在其他实施例中,天线和RF电子装置模块 296可包含可切换地连接到模块296内的各RF电子组件的多根天线。在该实施例中,可以 选择切换到RF电子装置的天线来匹配要发射的信号的频率。这些天线可被实现成本领域 已知的接线天线或可用任何合适的方式来实现。在一些实施例中,天线和RF电子装置模块
8296内的一根或多根天线可以在无线电卡270上实现。然而,在一些实施例中,天线可以位 于计算设备200内的任何合适位置。为了处理要被发射的数据,混合电子装置模块294可包含将软件处理所生成的数 据转换成供天线和RF电子装置模块296发射的模拟信号的各组件。例如,混合电子装置模 块294可包含本领域已知的数模转换器。然而,可使用任何合适的组件。卸载硬件模块292可包含可执行可以在软件数据平面220内执行的功能中的部分 或全部的硬件组件。将卸载硬件模块292合并到无线电卡270提供了用于配置软件定义无 线电装置来以软件或硬件执行一些功能的选项。在所示实施例中,卸载硬件模块292是无 线电卡270上的可任选组件。因此,在配置软件定义无线电装置时,如果卸载硬件模块292 存在并且包含用于执行被用来实现所需无线技术的功能的组件,则卸载硬件模块292内的 一组件可被配置成执行该功能。或者,如果卸载硬件模块292不存在或不包括用于实现作 为所需无线技术的一部分的功能的组件,则该功能可以在软件数据平面220中实现。不论软件数据平面220和硬件数据平面290中的每一模块内的各具体组件如何, 这些组件的集合实现被用来根据特定无线技术发射数据的功能。软件数据平面220和硬件 数据平面290中的各组件还共同实现用于根据指定无线技术接收数据的功能。因此,天线 和RF电子装置模块296可包含用于接收传达该数据的无线信号的一根或多根天线。在一 些情况下,可以使用相同的组件来进行数据的发射和接收。例如,天线和RF电子装置模块 296内的天线可被用于数据的发射和接收两者。在其他情况下,可以包括分开的组件来用于 处理发射和接收到的数据。除用于发射数据的功率放大器和上变频器之外,天线和RF电子 装置模块296可包括用于处理接收到的数据的低噪声放大器和下变频器。混合电子装置模 块294可包括用于将接收到的模拟信号转换成数字信号以供进一步处理的模数转换器。类 似地,作为对所发射的数据执行功能的各组件的替换或补充,卸载硬件模块292可包括用 于对接收到的数据执行功能的各组件。软件数据平面220内的各模块同样可包含用于处理接收到的数据的组件。例如, 基带处理模块226可包括用于操作接收到的数据的滤波器,其可以与用于操作所发射的数 据的滤波器相同或不同。基带处理模块226内的其他组件可以解调接收到的信号或解码已 解调的信号。在一些实施例中,对于接收到的信号的解调和解码操作是对所发射的数据执 行的纠错和调制功能的逆。然而,在每一模块内执行的具体功能可以根据要实现的特定无 线技术来配置。在所示实施例中,在基带处理模块226内处理之后,接收到的信号可被提供给MAC 处理模块224内的各组件以供进一步处理。这些组件可将基带处理模块226输出的位流形 成各分组或以其他方式处理接收到的数据。另外,MAC处理模块224内的各组件可以根据 适用于软件定义无线电装置所实现的无线技术的协议来在接收时确认分组或以其他方式 执行用于维持通信的功能。分组处理和安全模块222内的各组件也可以对接收到的数据执行功能。这些组件 可以提供可作为应用于所发射的数据的功能的逆的解密或认证功能。另外,在通知操作系 统212已接收到各分组之前,分组处理和安全模块222内的各组件可以对各分组进行编组 或以其他方式处理它们。处理以将各分组通知给操作系统212是本领域已知的,但可以使 用任何合适的机制并且与软件定义无线电装置的其他功能一样,在一些实施例中是可配置的。为实现一种或多种所需无线技术的软件定义无线电装置,可以配置软件数据平面 220和硬件数据平面290中的硬件和软件模块中的一个或多个。在所示实施例中,软件数据 平面220内的各组件可由控制平面240内的各组件来配置。在所示实施例中,软件控制平 面240包括提供到软件数据平面220内的各可配置组件中的每一个的接口的无线电配置和 控制模块244。无线电配置和控制模块244与软件数据平面220内的可配置组件进行交互的具体 机制对本发明而言并不重要并且可以使用任何合适的机制。然而,在所示实施例中,模块 222、224和226中的每一个分别包括定义的编程接口 228:、2282、以及2283。接口 228^228^ 以及2283中的每一个可以是所发布的或以其他方式使其为希望开发在软件定义无线电装 置中使用的软件组件的各方所知晓的形式。以此方式,不论数据平面220内包括哪些组件, 无线电配置和控制模块244都可以与这些组件进行接口。虽然接口的具体格式对本发明而言并不重要,但在所示实施例中,接口 228p2282、 以及2283允许双向信息交换,从而允许状态和控制信息穿过该接口。软件数据平面220中 的每一组件可以通过诸如228p2282、以及2283等接口提供状态信息,从而定义其操作状态 以及其操作能力。例如,分组处理和安全模块222内的各组件可以通过接口 228i向无线电 配置和控制模块244传达它们可以支持的特定安全功能。接口 228i还可允许无线电配置 和控制模块244控制应当对要发射的分组或对接收到的分组执行这些功能中的哪一些。类 似地,接口 2282可允许MAC处理模块224内的各组件标识它们可以执行的功能并允许无线 电配置和控制模块244配置这些组件来执行在实现所需无线技术时使用的功能。类似的双 向信息交换可以通过接口 2283发生,从而允许无线电配置和控制模块244确定基带处理模 块226内的各组件所支持的功能并指定这些组件的配置。在图2中所示的实施例中,无线电配置和控制模块244还接口到无线电卡270上 的硬件组件。在所示实施例中,硬件配置和控制模块280用作无线电配置和控制模块244与 硬件数据平面290内的各硬件组件之间的接口。无线电配置和控制模块244与硬件配置和 控制模块280之间的接口的具体形式对本发明而言并不重要。然而,在所示示例中,使得实 现无线电卡270的一方知道接口的形式并且在标准计算机总线上实现该形式。以此方式, 可以使用来自任何合适的来源的、选择使用总线260的格式来实现到无线电配置和控制模 块244的接口的无线电卡270来构造计算设备200。可以使用任何合适的硬件组件来实现硬件配置和控制模块280。例如,硬件配置和 控制模块280可被实现成安装到无线电卡270的门阵列芯片。然而,无线电卡270可以使 用一个或多个专用集成电路(ASIC)来实现,并且硬件配置和控制模块280可被实现成这样 的ASIC的一个或多个部分。不论硬件配置和控制模块280的具体实现如何,在所示实施例中,模块280提供到 硬件数据平面290中的硬件组件的接口,该接口可被用来配置这些组件或者获得关于这些 组件的能力或其他状态信息。例如,硬件配置和控制模块280可以将各值写到与硬件模块 292、294、或296相关联的控制寄存器。相反,硬件配置和控制模块280可以从这些模块读状 态寄存器。不论硬件配置和控制模块280与硬件数据平面290内的硬件组件之间的具体接 口机制如何,硬件配置和控制模块280可以向无线电配置和控制模块244提供从硬件组件获得的配置和状态数据并可将配置应用到无线电配置和控制模块244所指定的硬件组件。
当在无线电配置和控制模块244与硬件数据平面290内的硬件组件之间传递控制 和状态信息时,硬件配置和控制模块280可以转换或以其他方式处理该信息。作为一个示 例,混合电子装置模块294可以接收指定对携带所发射的数据的信号执行的上变频的量的 特定数字码作为配置输入。无线电配置和控制模块244能以与混合电子装置模块294接收 到的格式所不同的格式来指定上变频。在该场景中,硬件配置和控制模块280可被配置成 以无线电配置和控制模块244所生成的格式接收混合电子装置模块294的所需操作参数并 将其转换成可由混合电子装置模块294应用来达到上变频的所需量的格式。
硬件数据平面290和软件数据平面220内的每一组件被配置成执行的具体功能可 取决于软件定义无线电装置的总体配置。在所示实施例中,该配置由无线电装置要实现的 无线技术和(在无线技术具有可变的操作参数的情况下)在任何给定时间针对实现所选择 的具体操作参数两者来驱动。例如,支持Wi-Fi的无线电装置可以与支持诸如Wi-MAX等不 同技术的无线电装置不同地配置。另外,诸如Wi-Fi等一些无线技术支持不同的数据率或 具有在使用时可以变化的其他参数。取决于针对Wi-Fi通信所要支持的数据率或其他参数 的值,实现软件定义无线电装置的组件中的一个或多个可被不同地配置。控制平面240可包含用于基于所需无线技术和该无线技术在任何时间的参数来 确定软件定义无线电装置的具体配置的一个或多个组件。在图2的所示的实施例中,配置 逻辑模块242执行该功能。配置逻辑模块242的具体实现对本发明而言并不重要。作为示 例,配置逻辑模块242可被实现成规则引擎,其应用一组规则以基于从用户或计算设备200 内的其他组件接收到的一个或多个输入和关于操作条件的信息来确定软件数据平面220 和硬件数据平面290中的每一组件在任何给定时间的具体配置。然而,配置逻辑模块242 的具体实现对本发明而言并不重要,并且可以使用任何合适的实现。不论配置逻辑模块242的具体实现如何,模块242可以接收用于确定软件定义无 线电装置的硬件和软件组件在任何给定时间的所需配置的一个或多个类型的输入。在图2 的实施例中,从认知模块252、卸载引擎246、以及配置文件(profile)管理器248向配置逻 辑模块242提供输入。在所示实施例中,配置文件管理器模块248向配置逻辑模块242提供软件定义无 线电装置要实现的无线技术的规范。该规范可定义由软件数据平面220和硬件数据平面 290内的各组件共同实现的功能。这些功能可以按任何合适的方式来指定。例如,这些功能 可以通过指示软件数据平面220和硬件数据平面290内的一个或多个组件的操作参数来指 定。作为替换或补充,该规范可包括可作为组件添加到软件数据平面220内的一个或多个 模块的可执行码。配置文件管理器模块248可以用任何合适的方式获得无线技术的规范。 在所示实施例中,控制平面240包括包含一个或多个无线技术规范的配置文件存储250。配 置文件存储250可以在与计算设备200相关联的计算机存储介质中实现。如结合图1所述, 可以通过网络从服务器或其他合适的源下载诸如规范132(图1)等无线技术规范。然而, 配置文件存储250中的无线技术规范的源和配置文件存储250的具体实现对本发明而言并 不重要,并且可以使用任何合适的机制来获得无线技术规范并选择一个或多个规范来在任 何给定时间使用。除向配置逻辑模块242提供无线技术规范之外,配置文件管理器模块248可以向配置逻辑模块242提供指示软件定义无线电装置在任何时间要实现的无线技术的输入。配 置文件管理器模块248可以基于从一个或多个源接收到的输入来提供要实现的无线技术 的指示。例如,配置文件管理器模块248可包括用户界面,从而允许用户选择软件定义无线 电装置要实现的无线技术。作为替换或补充,可以从操作系统212、应用程序214、计算机 200上的从组策略服务器或任何其他合适的源下载的组策略存储来接收类似输入。配置逻辑模块242还可以从卸载引擎模块246接收关于软件数据平面220和硬件 数据平面290内的各组件的所需配置的输入。如图2所示,无线电卡270可包括卸载硬件 模块292。在存在时,卸载硬件模块292可以执行还可由软件数据平面220内的软件组件执 行的功能。卸载引擎模块246接收并分析卸载硬件模块292输出的能力信息。使用这一能 力信息,卸载引擎模块246可以分析无线技术规范来确定实现该无线技术规范所需的功能 中的某一个是否可以在卸载硬件模块292中执行。如果卸载硬件模块292支持所需功能的 某一个,则卸载引擎模块246可以向配置逻辑模块242提供某些功能可被分配给卸载硬件 模块292的指示。作为响应,配置逻辑模块242可以生成适当的配置命令,使得这些功能由 卸载硬件模块292内的组件来实现。在一些实施例中,卸载引擎模块246可以在向配置逻辑模块242指示硬件组件可 用于执行某些数据处理功能之前执行附加处理。例如,计算系统200内的硬件在一个或多 个方面受到限制,并且在一些情况下,即使卸载硬件模块292包含可执行数据处理功能的 组件,计算系统200的总体操作也可以通过配置软件组件执行相同的功能来优化。卸载引擎模块246可以用任何合适的方式来实现。例如,卸载引擎模块246可以 使用基于规则的技术来实现。另外,配置逻辑模块242可以从配置逻辑模块242可以在配置软件定义无线电装 置的硬件和/或软件组件时使用的认知模块252接收输入。在所示实施例中,认知模块252 接收关于实现软件定义无线电装置的硬件和/或软件组件的操作的状态信息。基于该状 态信息,认知模块252可以执行处理来识别出需要在软件定义无线电装置的配置中进行适 应。在一些实施例中,该适应可涉及修改无线技术内的操作参数。例如,许多无线技术支持在多个频率的操作。这些组件中的一个或多个所输出的 状态信息可以允许认知模块252标识应当使用不同的信道。例如,天线和RF电子装置模块 296内的组件所输出的接收信号可以指示一些频率较少使用或比软件定义无线电装置当前 正在使用的频率具有较少干扰。在该场景中,认知模块252可以向配置逻辑模块242报告 不同的频率将提供更可靠的通信并且配置逻辑模块242可以向软件定义无线电装置中的 一个或多个硬件或软件组件生成配置命令以改变频率。作为替换或补充,认知模块252可以标识需要无线技术内的其他适应的条件。例 如,认知模块252可以标识更低或更高发射功率级是合乎需要的。作为响应,配置逻辑模块 242可以生成配置天线和RF电子装置模块296内的功率放大器的命令以在不同的功率级发射。更一般地,认知模块252可以从软件数据平面220或硬件数据平面290内的任何 组件收集状态信息并对该状态信息执行处理以标识保证适应的正在进行的通信的条件。在 许多情况下,状态信息将涉及通信,如测量到的误码或要发射的数据量。然而,认知模块252 所使用的状态信息不必做此限制。状态信息可包括电池寿命或关于计算设备200的其他信息或在选择或设置无线技术的参数时有用的任何其他可用信息。适应可通过配置逻辑模块242发出重新配置软件数据平面220或硬件数据平面 290中的一个或多个组件以在不改变软件定义无线电装置所实现的无线技术的情况下引起 该适应的命令来实现。认知模块252不限于标识同一无线技术内的适应。在一些实施例中,认知模块252 可被配置成识别更高效通信可以通过使用不同的无线技术进行通信来实现。在这样的实施 例中,配置逻辑模块242可以从配置文件管理器模块248获得不同无线技术的规范。配置 逻辑模块242随后可生成重新配置软件定义无线电装置来使用不同的无线技术进行通信 的配置命令。以此方式,计算设备200可被灵活地控制以通过在一种无线技术内或跨各种 无线技术进行适应来实现高效通信。如果需要对不同的无线技术进行适应,则配置文件管理器248可以从配置文件存 储250获得无线技术规范并将该规范提供给配置逻辑242。可以用任何方式将规范存储在 配置文件存储250中。作为一个示例,图3示出配置文件存储250的可能实现。如图3所示,配置文件存储250可以在任何合适的计算机存储介质中实现。例如, 定义一个或多个规范的数据可以记录在计算机存储介质300上。在所示示例中,示出了记 录31(^310^·· 310N,每一个记录都存储定义无线技术的规范的信息。在记录31(ν··310Ν的每一个内存储定义无线技术的信息的具体格式对本发明而 言并不重要。然而,示出了记录310,的示例性结构。在图3的示例中,记录310,包含多个 字段,每一字段定义在配置软件定义无线电装置时使用的信息。在该示例中,每一记录包含 两种类型的字段。字段320所表示的一种类型的字段包含标识可执行码的信息。在字段 320中标识的可执行码可以是软件数据平面220 (图2)内的模块中的任一个的一个或多个 组件。可以用任何合适的方式在字段320中标识可执行码。例如,计算机可执行指令可以 存储为记录310Ν的一部分。作为另一示例,字段320可包括存储在计算设备200 (图2)内 的其他位置的可执行组件的列表。作为可能实现的又一示例,字段320可以存储到计算设 备200外部的从中可以获得可执行组件的存储位置的一个或多个链接。另外,记录310ν被示为包含存储用于配置硬件数据平面290或软件数据平面 220(图2)中的硬件或软件组件的参数的多个字段,由字段322^··322Μ表示。字段322广· 322Μ中的信息可以用任何合适的形式来存储,这可取决于字段322^··322Μ中的值要被应用 到的具体硬件或软件组件。使用图3中示出的形式的无线技术规范,控制平面240内的组件可以通过提供可 执行组件和/或指定这些组件的操作参数的值来配置软件定义无线电装置。图4示出通过 应用图3所示的形式的一个或多个规范来配置的软件定义无线电装置内的示例模块。图4示出软件数据平面220内的模块——MAC处理模块224——的示例。然而,在 一些实施例中,软件数据平面220内的各模块中的每一个可以具有图4中概括示出的体系 结构。 图4示出MAC处理模块224包括无线电配置和控制模块244或任何其他合适的组 件通过其可配置该模块的接口 2282。通过接口 2282,可以向模块224添加可执行组件。在 图4所示的操作状态中,添加了可执行组件452i、4522、4523、以Z及4544。
组件452Γ··4524中的每一个可以表示任何其他合适形式的编程对象或组件。组件452^·4524中的每一个可以执行模块224内执行的一个或多个功能。在其中模块224执行 MAC处理的示例中,组件组450内的每一组件可以执行与MAC处理相关联的功能,如对控制 分组作出响应或对已分段的接收分组进行编组。然而,组件组450内的组件的具体数量和 功能可取决于模块224的功能和配置软件定义无线电装置所针对的一种或多种无线技术。虽然实现组件452Γ··4524的具体格式对本发明而言并不重要,但该示例实施例示 出这些组件中的每一个可具有相同的一般格式。在所示实施例中,组件组450内的每一组 件都被实现为“插件”。在被实现成插件时,组件452Γ··4524中的每一个包括定义格式的一 个或多个接口,从而允许计算设备200的其他组件与这些组件进行交互。以此方式,在标识 了软件定义无线电装置要实现新功能时可将各组件容易地添加到组件组450。作为一个示例,无线技术协议通常经历多次修订。对于每一修订,生成执行实现经 修订的协议所必需的功能的一个或多个组件是合乎需要的。有了图4的体系结构所提供的 灵活性,计算设备200可被容易地配置成根据经修改的协议来操作,即使未针对该协议来 特别设计。为支持作为插件进行操作,组件组450内的每一组件可以实现一个或多个定义接 口。在所示实施例中,组件组450内的每一组件实现两个接口。取组件452i作为说明,示 出了接口 460i和接口 462p接口 46(^可以是数据接口而接口 462i可以是控制接口。通过 接口 460i,计算设备200内的其他组件可以向组件452i提供数据以供处理。作为替换或补 充,计算设备200内的其他组件可以通过接口 4601获得组件处理的数据。取决于组 件452i的类型和性质,操作系统212、模块224内的或其他模块内的其他组件可以通过接口 460!与组件452i交换数据。组件452i还被示为包含控制接口 462p在图2的实施例中,无线电配置和控制逻 辑244可以通过接口 462i从组件4521接收状态信息并向组件2521提供控制信息。例如, 通过接口 462i,组件452i可以接收指定组件452i的操作的一个或多个方面的参数的值。作 为替换或补充,组件452i可以使用接口 462i来提供状态信息。在一些实施例中,模块224内的所有功能可由组件组450内的组件来实现。然而, 在一些实施例中,模块224可包括一个或多个固定组件410。固定组件410可存在于模块 224中,而不论无线电装置在任何时间的具体配置如何。例如,不论配置如何,固定组件410 都可以协调组件组450内的组件的操作,方便组件组450内的组件与计算设备200(图2) 的其他组件之间的接口,或执行由模块224所执行的功能。图4示出可以使用图4的组件化体系结构实现的又一特征。这些组件的部分或全 部可以合并数字权限管理来控制这些组件的可使用性的一些方面。在图4的示例中,组件 4523被示为包括数字权限管理,如象征性地由权限管理元素454所示。权限管理元素454 可以表示应用于组件4523的密码机制,该密码机制除非是在允许条件下否则阻止组件4523 的执行。允许组件4523执行的条件可按数字权限管理领域已知或任何其他合适的方式来定 义。作为一个示例,这些条件可以基于时间来定义。权限管理元素454可以阻止组件4523 在预定义时间之后的执行。有了这一能力,可以“租用”向软件定义无线电装置提供功能的 组件。或者,权限管理元素454可用来控制允许组件4523执行的其他条件。例如,只要 计算设备200的用户维持对网络或其他服务的订阅,则可允许组件4523执行。
14
转向图5A,提供了可用使用根据本发明的各实施例的体系结构的软件定义无线电 装置实现的功能的又一示例。图5A示出软件定义无线电装置可被配置成支持同时使用多 种无线技术的通信。可以通过配置软件定义无线电装置的各模块来实现由将要实现的多种 无线技术的全部共同执行的所有功能以同时支持多种无线技术。在图5A的示例中,一个或多个应用程序511、5142和5143生成和/或消费用于无 线通信的数据。应用程序514^··5143可以通过操作系统栈512使用本领域已知的栈机制来 与软件定义无线电装置进行接口。然而,在图5Α的示例中,应用程序511可以使用与5143 不同的无线技术来进行通信。操作系统栈512可以使用任何合适的接口来与软件定义无线电装置进行接口。然 而,可以采用常规栈接口。因此,分组处理和安全模块222被示为具有栈接口 520,其可如本 领域已知的那样来实现。然而,就分组处理和安全模块222存储关于使用不同无线技术的 连接的不同类型的连接信息而言,分组处理和安全模块222内可包括用于存储关于应用程 序511和5143所使用的无线技术的连接信息的两个组件。因此,图5A示出存储关于两种 无线技术的连接信息的组件522A和522B。另外,MAC处理模块224还可包含用于实现两种无线技术的组件。在该示例中, 组件530A被示为实现应用程序511所使用的无线技术,而组件530B被示为实现应用程序 5143所使用的无线技术。同样,基带处理模块226A被示为包含分别实现应用程序51+和5143所使用的无 线技术的功能的组件540A和540B。在所示实施例中,硬件550被示为与组件540A和540B接口。硬件550可包含用 于支持对两种无线技术的数据同时进行处理的足够组件。可以合并多路复用组件552来提 供到硬件550的接口。多路复用组件552可以根据时分多路复用方案来操作,其中在一些 时间间隔中,其根据应用程序514的无线技术传递数据并且在其他时间间隔中其传递应用 程序5143所使用的无线技术的数据。在时间被多路复用时,硬件550的操作能以足够高以 使得无线电装置可被认为同时支持两种无线技术的速率来在不同无线技术的数据处理之 间切换。图5B示出其中顺序地支持两种无线技术的替换操作序列。与在图5A的示例中一 样,图5B示出通过操作系统栈512无线地通信的应用程序514^·· 5143。操作系统栈512与 分组处理安全模块222B内的栈接口模块组件520进行接口。就维护与应用程序514广· 5143 使用无线技术同其他设备中的其他组件所形成的连接有关的信息而言,该信息可以在连接 信息组件522中维护。首先,图5B中示出的软件定义无线电装置可被配置成使用第一无线技术进行通 信。为支持使用第一无线技术进行通信,MAC处理模块224B首先可以用组件530A来配置。 同样,基带处理模块226B可以用组件542A来配置以支持使用第一无线技术的无线通信。在某稍后时间,可重新配置无线电装置以根据第二无线技术来操作。可出于任何 合适的原因来进行该重新配置。例如,认知模块252 (图2)可能检测到干扰根据第一无线 技术的通信的干扰源。作为响应,配置逻辑模块242 (图2)可以重新配置软件定义无线电 装置来使用第二无线技术进行通信。例如,这一重新配置可以通过用组件530B配置MAC处 理模块224B并用组件542B重新配置基带处理模块226B来实现。因此,在第二时间实例,通信可以使用第二无线技术来实现。图5B示出在从第一无线技术到第二无线技术的任何切换的情况下,数据平面 220(图2)内的某些模块的操作改变。然而,分组处理和安全模块222B未被重新配置。因 此,在连接信息组件522内维护的连接信息没有作为重新配置的结果被改变。因此,虽然软 件定义无线电装置使用不同的无线技术进行通信,但应用程序514^··5143建立的任何连接 都可被维护。如上所述的配置文件之间的切换可被控制来以任何合适的方式发生。然而,如上 所述的软件定义无线电装置所提供的灵活性使得能够对无线电装置进行“认知”控制。认 知控制允许基于在通信发生时收集的状态信息来控制无线电装置的操作。该状态信息可以 涉及正在进行的通信或可以涉及先前已经存储了其状态信息的已完成的通信。该状态信息 可以用任何合适的方式来使用。例如,状态信息可被用来标识造成通信中的误码的当前操 作条件。或者,状态信息可被用来允许无线电装置内的控制组件标识并实现适当的适应来 补救造成通信中的误码的具体条件。认知控制可以通过数据处理组件和控制组件之间的反馈路径来促进。图6示出包 含这样的反馈路径的无线电装置的各组件。图6所示的组件可以是形成以上结合图2描述 的软件定义无线电装置的硬件和软件组件的组合。然而,可以使用任何合适的组件来形成 根据本发明的各实施例的无线电装置。图6示出各组件被组织成数据平面620和控制平面640。数据平面620或控制平 面640中可包括任何合适的组件。在所示实施例中,控制平面640包括配置逻辑242和认 知模块252。控制平面的这些组件可以与以上结合图2的实施例描述的一样。然而,这些组 件可以用任何合适的方式来配置。在图6的说明性实施例中,数据平面620包括纠错编码器622、调制器624、RF发 射组件626、天线628、RF接收组件630、解调器632、以及纠错解码器634。数据平面620的 各组件也可以与以上结合图2描述的实施例中一样来实现。因此,纠错编码器622、调制器 624、解调器632、以及纠错解码器634可以是软件组件。发射RF组件622和RF接收组件 630以及天线628可以是硬件组件。不论这些组件中的每一个是如何实现的,这些组件的部分或全部可以与控制平面 640中的组件进行接口。这样的接口可以用任何合适的方式来提供。例如,可以使用接口 228p2282、或2283(图2)形式的接口。在所示实施例中,接口允许数据平面620中的每一 组件接收来自配置逻辑242的控制信息并向认知模块252提供状态信息。数据平面620中的全部组件都接收控制信息或全部都生成状态信息是不必要的。 尽管如此,通过合并数据平面620和控制平面640之间的一些控制和状态连接,可以实现某 种形式的反馈循环。数据平面620中的组件所生成的状态信息可以提供给控制平面640中 的一个或多个组件。控制平面中的组件可以处理状态信息来标识无线电装置应当适应以进 行更高效的通信的条件。控制平面640的组件随后可以确定对数据平面620中的组件的适 当调整使无线电装置中的处理适应这些条件。由于可从数据平面620中的组件获得的状态 信息的范围,该适应可认知地进行。数据平面620中的组件所执行的具体功能对本发明而言并不重要。在所示实施例 中,每一组件都可以执行本领域已知的功能。例如,纠错编码器622可以接收位组以供发
16射。编码器622可以将每一位组映射到包含一个或多个纠错位的新位组。调制器624可以接收纠错编码器622形成的位组并将该组映射成码元流。基于调 制器624内指定的调制参数的组合,每一码元可以传递多个位。作为一具体示例,调制器 624可以将每一码元映射成相位和频率值的组合。然而,调制器624所改变来表示每一码元 的具体参数对本发明而言并不重要。可以改变任何一个或多个发射参数,包括相位、频率、 或振幅。另外,调制器624可为这些参数中的每一个指定任何数量的值以创建其中可以表 示任何数量的码元的调制方案。不论调制器624为每一码元指定的发射参数的数量和类型如何,都可以将指定的 发射参数提供给RF发射组件626。RF发射组件626可以是本领域已知的发射组件,其可以 根据调制器624指定的参数来发射RF信号。RF发射组件622所生成的RF信号可以耦合到 天线628,天线628可通过信道来辐射该RF信号作为与另一设备(未示出)的通信的一部 分。天线628可以是本领域已知的天线。天线628可以既发射又接收RF信号。但是, 在一些实施例中,天线628可被实现成一组天线,并且各分开的天线可用于发射和接收信号。不论用于接收RF信号的具体天线如何,接收到的信号可以耦合到RF接收组件 630。RF接收组件630可以是本领域已知的RF组件。这样的组件可以输出接收到的RF信 号的检测到的特性。输出特性可以与调制器624指定的那些特性相同。例如,RF接收组件 630可以检测接收到的RF信号相位、频率、或振幅、或参数的任何组合。RF接收组件630的输出可被提供给解调器632。在一些实施例中,解调器632可 以是本领域已知的执行调制器624的逆操作的组件。因此,解调器632可以根据调制方案 将从RF接收组件630接收到的参数转换成码元。解调器632可将码元信息传输到纠错解码器634。纠错解码器634可以是本领域 已知的执行编码器622所执行的编码操作的逆的组件。并非添加纠错位,而是纠错解码器 634可以处理解调器632所输出的包括纠错位的位组,以确定在接收到的信号的传播中是 否发生误码。如果是,则纠错解码器634可以使用纠错位来纠正该误码。此后,纠错解码器 634可以输出表示图6的无线电装置接收到的数据的位流。虽然图6没有明确示出生成供 发射的数据或使用接收到的数据的组件,但数据可以从任何合适的组件获得或提供给任何 合适的组件。在图2的示例中,数据由操作系统212(图2)或应用程序214(图2)生成或 被提供给它们。然而,数据的源或目的地对本发明而言并不重要,并且图6的示例性无线电 装置可以结合任何合适的组件来使用。虽然数据平面620中的每一组件可以执行本领域已知的无线地发射或接收数据 的功能,但每一组件可被配置成提供状态信息或接收控制信息,从而允许以根据本发明的 各实施例的反馈循环配置各组件。例如,纠错解码器634可被配置成向认知模块252提供状 态信息,该状态信息标识对每一接收到的传输,使用纠错编码纠正的误码的数量。类似地, 解调器组件632可被配置成提供诸如失真向量等状态信息。对于每一接收到的码元,失真 向量指示检测到的RF参数的具体组合与表示有效码元的标称值的参数的组合之间的差异 程度。RF接收组件630也可以提供状态信息。例如,RF接收组件630可以提供接收信号强 度指示符或其他状态信息,其可在认知模块252内被用来标识被用来无线地发送或接收数
17据的通信信道或使该通信信道适应当前存在的条件。数据平面620内的一个或多个组件还可以接收可被用来控制该组件适应认知模 块252所标识的信道条件的控制输入。例如,纠错编码器组件622可以接收改变纠错位对 数据位的比率的控制输入。如本领域已知的,纠错位对数据位的比率可以影响可在传输中 纠正的位误差的数量。通过增加比率,该比率可适应造成较高误码率的信道条件。调制器 组件624同样可具有控制输入。响应于在控制输入处的值,调制器624可以改变其使用的 调制方案的类型或其使用的独特码元的数量。虽然减少调制器624所使用的独特码元的数 量可降低数据发射速率,但传输中发生的误码的数量可对应地降低,净结果是传输效率的 增加。RF发射组件626同样可包括控制输入。响应于其控制输入处的值,RF发射组件626 可以改变RF发射的发射功率级或其他参数。虽然图6只示出认知无线电装置内存在的组件的子集,但该附图示出可通过向认 知模块252提供状态信息并向数据平面620中的一个或多个组件提供控制信息来创建一个 或多个反馈路径。图7A、7B、以及7C示出可由数据平面620内的一个或多个组件测量来生成状态信 息的参数。图7A示出根据其中可以改变RF信号的两个参数来表示所发射的信息的调制方 案的传输。在该示例中,这两个参数在二维坐标系中概括地示出。每一坐标轴表示参数之 一。每一参数例如可以是相位、频率、振幅、或任何其他可用参数。在图7A的示例中,示出 了这一参数绘图的8个区域,每一个区域都对应于一个码元。这些区域被标识为S^ S8。例 如,点R可以表示接收到的信号的参数1和参数2的值。如图7A所示,点R落入区域S2内。 因此,解调器组件632可以将具有参数值R的接收到的信号映射到码元S2。类似映射可结 合其他区域S^-S8中的任一个发生。在一些情况下,因为传输中的失真或其他误差,接收到的信号将不具有恰好落入 区域—内的表示码元的标称参数值的已调制参数的值。标称区域与实际接收到的 值之间的差可被认为是失真向量。图7B示出接收到的信号的、落在与区域S2相关联的范 围附近(但落在其外面)的参数值R。因此,图7B示出表示接收到的值与对应于表示允许 码元的一组标称值的区域之间的差的失真向量X。图7A与图7B的比较示出可对数据平面 620 (图6)进行的用于生成状态信息的测量。在图7A和7B中的每一个中,示出了对应于8个不同码元的调制参数的标称值的 8个区域。因此,每一码元可以映射到至多三个信息位。因为在图7A和7B中,接收到的值 与区域S2最接近,所以接收到的值可被映射到与区域S2相关联的位模式。在该示例中,位 值001被映射到区域S2。然而,区域与位值之间的具体映射对本发明而言并不重要,并且可 以使用任何合适的映射。虽然图7A和7B示出其中接收到的信号被映射到同一码元值的两种情况,但附加 状态信息是可用的。在图7A所示的操作条件下,接收到的值落在区域S2内。因此,解调器 组件632(图6)或其他合适的组件可以识别出接收到的信息对应于有效码元,并且有效位 V被设定成值1。相反,图7B示出接收到的RF信号的参数1和2的值落在与有效码元相关 联的各定义标称区域中的任一个之外。基于接收到的值R与区域S2的接近性,解调器可以 将接收到的码元标识为001。因为接收到的值在所有标称区域的外面,所以解调器还可以通 过将有效位V设成0来生成接收到的参数落在标称区域之外的指示。因此,有效位V可以是解调器组件632 (图6)提供给认知模块252的一段状态信息。图7A和7B还指示可由认知无线电装置中的解调器组件或其他合适的组件生成的 第二类型的状态信息。在图7B中,接收到的信号(由R表示)的参数1和参数2的值与最 接近的区域S2相距X。这一距离可以表示失真向量。因此,图7B示出失真向量D具有值X。 相反,图7A示出接收到的信号具有落入区域S2内的参数1和参数2的值,并且失真向量D 具有值0。另一方面,图7C示出具有由R标识的参数1和参数2的值的接收到的信号,其具 有大于图7B的失真向量。在图7C的示例中,R与标称码元值的最接近区域S2相距Y,从而 产生具有值Y的失真向量D。虽然在图7A、7B、以及7C的各示例中的每一个,接收到的值被映射到一组位,B = 001,但附加信息对处理该接收到的信号的组件是可用的。如上所述,有效位V可被用来指 示误码情况。同样,失真向量D可被用来指示误码情况的存在和量级。这一状态信息以及其他状态信息可被用来标识适应以提供更高效的通信,而不管 可导致误码的信道条件。认知模块252可以处理该状态信息来标识指示其可适应的误码条 件的状态值模式。该模式可以基于单个状态变量的值、单个状态变量的值的趋势、两个或更 多个状态参数的值之间的相关、或状态值的任何其他合适的组合。该模式可以涉及过去或 当前信息。作为一具体示例,纠错解码器634可以输出指示纠正接收到的信号中的位误差 的速率的状态值。高纠错速率可指示有需要或必要进行适应的信道条件。或者,示出纠正 位误差的速率随时间增加的趋势可指示恶化的信道条件。认知模块252可以使用这一信息 来预测将需要适应的时间并在适当的时间生成适应的指示。认知模块252可以基于误码级 增加的速率或基于任何其他合适的可用信息来标识该适当时间。作为另一示例,认知模块252可以基于状态值的组合来标识对适应的需求。例如, 来自RF接收组件630的状态信息可以指示高接收信号强度,而来自解调器组件632、纠错解 码器634、或认知无线电装置内的其他更高层组件的信息可以指示高传输误码率。因为高接 收信号强度通常与低误码率相关联,所以在存在与高误码率相关的高接收信号强度时认知 模块252可以标识异常操作条件。这样的异常操作条件可以例如与频谱中的与用于无线通 信的信道重叠的干扰源相关联。作为响应,认知模块252可以用信号通知涉及重新配置认 知无线电装置以用使用不同频谱的无线技术进行通信的适应。不论认知模块252用来标识是否有需要或必要重新配置无线电装置的具体状态 信息如何,可以使用任何合适的重新配置来适应干扰通信的条件。图8A提供可能的重新 配置的示例。图8A示出与图7A中的接收信号的两个参数的标称值相关联的区域。然而, 图8A与图7A的不同之处在于只示出了四个标称区域S1... S4。因为图8A中示出了更少的 区域,所以每一区域可以更大。结果,由R所示的具有参数值组合的接收信号落入图8A的 示例中的标称区域S2,但各值的同一组合将在图7A的标称区域S^-S8中的任一个的外面。 另外,标称区域S^-S4之间的间隔大于图7A中的标称区域S^-S8之间的间隔。因此,即使 信号失真,该失真也较不可能使得实际接收信号与表示不正确码元的标称区域相关联。如 图8A所示,通过改变对调制器组件624的控制输入的值,可以使用更少的标称信号值。可 以对解调器组件632进行对应的改变。但是,如图8A所示,减少标称区域的数量的后果是 每码元位数降低。例如,在图8A中,在接收信号落入区域S2内时,可以分配位值B = 01。因为四个区域只可标识四个可能的值,所以只可传达两个信息位。相反,图7A中示出的8个可能的标称区域允许在码元中表示三个信息位。因为减少每码元位数的适应可 具有抵销效果,所以认知模块252可以使用任何可用信息来确定这样的适应是否是合乎需 要的。这样的适应可包括关于先前尝试过这样的适应的条件以及该适应是否改进了通信的 总体效率的存储信息。因此,认知模块252可以使用历史信息和任何其他合适的可用信息 来标识是否应当进行适应以及应当进行的适应的具体类型。图8B示出可以进行的另一可能的适应。如图8A—样,标称区域的数量相对于图 7A而言减少了。图8B示出五个标称区域。在该示例中,每一标称区域是通过将图7A中示 出的类型的两个标称区域相交来形成的。因此,每一标称区域并非一般如图7A…7C和图8A 中所示的那样是圆的,而是更一般地是数字“8”的形状。因此,图8B示出在改变参数值和 码元之间的映射时一定范围的适应是可能的。在图8B中,5个标称区域表示2. 25个信息位。因此,图8B还示出指定的调制方案 不必具有2的倍数的每码元位数。图9A和9B示出可进行的适应的另一形式。图9A和9B示出接收码元或码元组与 输出数据值之间的不同映射。这样的映射可以通过纠错解码器634或认知无线电装置内的 任何其他合适的组件来执行。该映射可由存储在计算机可读介质810中或以任何其他合适 的方式合并到计算设备中的数据结构中的值来表示。在图9A的示例中,8个码元值820广· 8208各自被映射到822广*8224所表示的输出数据位。如可在图9A中看到的,码元值和输出 数据位之间不存在一对一映射。相反,在所示示例中,两个码元值被映射到每一组输出数据 位。例如,码元值820!和8202被映射到输出位82210码元值8203和8204被映射到输出位 8222。码元值8205和8206被映射到输出位8223,且码元值8207和8208被映射到输出数据 位8224。因为全部范围的可能码元值只被映射到四个输出位组合,所以输出数据只由两个 输出位表示,如图9A所示。每一码元所表示的输出数据位数的这一减少允许纠错。例如,只可发射特定码元 值。在该示例中,只有码元值SzopSZO3AZO5和8207可表示可允许的发射码元值。如果接 收到任何其他码元值8202、8204、8206或8208,则纠错解码器可以标识出发生了误码并且可 以纠正它。例如,如果接收到码元8 202,则纠错解码器可以标识出发生了误码并可通过将接 收到的码元映射到输出数据值822i来纠正它,因为该数据值表示最接近发射码元的值,所 以其最可能是正确的数据值。同样可在接收到码元8204、8206或8208的情况下检测并纠正 误码。图9B示出可以通过改变接收码元与输出数据位之间的映射来进行的适应。虽然 图9A和9B表示简单的纠错码,但它们示出增加用于检错和纠错的位数可提高正确地接收 到信息的概率。在图9B的示例中,示出了 16个码元值860广*86016。这16个码元值可对应 于图7Α、7Β或7C中示出的参数空间中的16个不同的标称调制区域。或者,图9Β中示出的 这16个码元值可以表示使用图8Α中示出的调制方案接收到的两个连续码元的值,其中每 码元编码了两个位。不论表示码元86(V"86016的值是如何生成的,图9Β示出四个分开的码元值被匹 配到输出位的每一组合。例如,码元860广· 8604被映射到输出位862:。码元860广· 8608被 映射到输出位8622。其余码元86(V"86016以类似的方式被映射到输出位8623和8624。在 每一种情况下,四个码元被映射到一组输出数据位。在图9Β的示例中,四个码元数据位被映射到两个输出数据位。这一情况示出具有两个纠错位的简单纠错码。相反,在图9A的示 例中,三个码元位被映射到两个输出数据位。因此,图9A示出一位纠错码的简单示例。使 用如图9B所示的更多位来进行纠错在一些操作条件下可增加通信效率,因为由于误码而 需要丢弃的接收信号更少。根据本发明的各实施例,认知模块252可以基于数据平面620 内的一个或多个组件提供的状态信息来检测改变所使用的纠错位的数量可提高通信效率 的条件。响应于这一判定,认知模块252可以触发配置逻辑242来生成对于纠错编码器620 和/或纠错解码器634的命令以改变所使用的纠错位的数量。图8A、8B、和9A及9B示出可基于状态信息进行的可能的适应。不论可用状态信息 的具体类型和响应于在该状态信息内检测到的模式而进行的具体适应如何,根据本发明的 各实施例的认知无线电装置可以在图10所示的通信过程中使用。图10的过程在框1010开始。在框1010,可以配置认知无线电装置和来进行通信。 对于图2中示出的形式的无线电装置,可以通过应用来自配置文件存储250的第一配置文 件来配置该无线电装置。然而,在框1010选择并应用初始配置的具体机制对本发明而言并 不重要。除可存储在每一配置文件中的上述信息之外,认知无线电装置的配置文件可包括 标识可进行适应的误码条件的信息。误码条件可被表达成阈值、模式、或用任何其他合适的 方式来表达。一旦配置了无线电装置,则处理继续至框1012。在框1012,根据定义的配置文件 将无线电装置用于通信。作为在框1012的通信的一部分,可以生成并分析状态信息。例如, 可作为正在进行的通信的一部分收集的一种类型的信息是有效位V,如结合图7A、7B和7C 所示。对于接收到的每一码元,处理可基于与该码元相关联的有效位的值在判定框1014处 分支。如果与接收码元相关联的有效位指示该码元是可靠的,则该过程可分支到框1016。如果该码元被认为是可靠的,则在框1016的处理可更新可靠码元的计数。更新可 靠码元的计数可涉及改变存储在计算机可读介质中的数据结构中的值或可以用任何合适 的方式来执行。存储可靠码元的计数是可用于记录历史状态信息机制的示例。该过程随后可继续至判定框1020。在判定框1020,该过程可取决于先前是否对该 无线电装置应用了适应以及基于自应用该适应以来该无线电装置的性能该适应是否被认 为是有效的来进行分支。用于标识适应有效的处理可以用任何合适的方式来执行。该处理 可取决于先前适应的性质或触发先前适应的条件的性质。例如,如果先前适应由高误码率 触发,则在框1020中的处理需要检查误码率在适应之后是否降低到可接受的水平。不论在框1020是如何标识有效适应的,如果先前适应被认为是有效的,则该过程 分支到框1022。在框1022,记录关于有效适应的信息。在框1022的处理需要将信息写到 非易失性计算机可读介质或以任何其他合适的方式进行记录。在框1022记录的信息的类 型可取决于所执行的适应的性质、触发该适应的条件、用于评估适应是否有效的处理、或任 何其他合适类型的信息。在响应于高于阈值的误码率而执行的适应的示例中,在框1022记 录的信息可以指示在该适应之后误码率的降低量。一旦在框1022记录了关于先前适应的信息,则该过程可循环回到框2012,在那里 通信继续。如果先前适应不是有效的或先前没有执行适应,则处理也可从判定框1020循环 回到框1012。在从判定框1020循环回到框1012时,图10的示例实施例不指示存储关于无
21效适应的信息。然而,可以构造其中存储关于有效和无效适应的信息的本发明各实施例因 此,本发明不限于图10所示的具体实施例。图10的流程图示出在其他操作条件下可以采取的其他路径。这些路径指示可以 响应于不同的操作条件来执行不同的处理。例如,如果接收到的码元不被认为是可靠的,则 该过程可从判定框1014分支到框1030。在框1030,更新不可靠码元的计数。在框1016和 1030存储的计数可一起用来确定状态指示符的值。在该示例中,可以形成接收到的可靠和 不可靠码元的数量之间的比率以产生可指示需要适应的信道条件的状态值。不可靠码元之后的处理还可包括在框1032测量失真向量。失真向量可以用任何 合适的方式来测量。在一些实施例中,失真向量可如图7B和7C所示由解调器来测量。不论失真向量是如何测量的,该过程可继续至框1034,在那里更新先前存储的失 真统计量。在框1034的处理可以用任何合适的方式来执行。作为一个示例,在提供每一新 失真向量时可以计算在合适的时间间隔上确定的失真向量的量级的移动平均。在框1034 可以存储经更新的移动平均。除平均值外,可以计算和存储测量到的失真的方差或其他更 高级统计量。这些值可在稍后处理中用于标识对适应的需求或适应的适当形式。也可存储其他状态信息。在图10的示例中,该过程继续至框1036,在那里存储纠 错统计量。如本领域已知的,纠错码可允许纠正多个位误差。诸如解码器634(图6)等纠 错解码器在应用纠错码的过程中可以确定已发生的位误差的数量。可以在框1036将这些 误码发生的速率记录在存储器结构或其他合适的计算机可读介质中。关于已纠正误码的数 量的信息可以用任何合适的方式来存储。例如,关于误码的统计信息可以作为一时间实例 处的速率来存储。或者,可以在处理每一码元时将误码率的移动平均存储在计算机可读介 质中。作为替换或补充,可以在框1036存储从误码率计算得到的方差或更高阶统计量。虽然图9A和9B示出用于检测位误差的纠错码,但在认知无线电装置中可以采用 其他形式的检错和纠错。例如,可以跟踪帧误码率并且在框1036同样可以存储帧误码率的 统计量。因此,本发明不限于基于上述误码或状态信息的具体类型的适应。不论所存储的状态信息的性质如何,该过程可继续至判定框1038,在那里基于所 收集的状态信息作出是否需要适应的判定。如上所述,在框1038的处理需要将当前状态信 息与阈值进行比较来检测所存储的状态信息中的模式。在框1038的处理需要操作单个类 型的状态信息或多个类型的状态信息的组合或相关。不论在框1038的具体处理如何,如果 不要进行适应,则该过程循环回到框1012,在那里通信继续。在判定框1038的处理需要将当前生成的或先前存储的状态信息和与在框1010检 索到的第一配置文件相关联的误码条件进行比较。然而,在判定框1038的处理可以用任何 合适的方式来执行。不论在框1038如何作出是否执行适应的判定,如果执行适应,则该过程分支到框 1040。在框1040,标识适应。该适应可以用任何合适的方式来标识。例如,先前在框1022 记录的信息可以响应于当前状态信息所指示的条件来指示有效适应。在图10的示例中,在 框1040标识适应需要基于根据第二配置文件的通信将更加有效的期望来选择第二配置文 件。然而,该适应可以用任何合适的方式来标识。该过程随后可继续至框1042。在框1042,应用所标识的适应。在所示示例中,其 中图10的过程是在诸如图2所示的计算设备中执行的,该适应可以通过从配置文件存储250获得第二配置文件并将其应用于软件定义无线电装置以配置该无线电装置的硬件和软 件组件来进行应用。另外,如图10所示,配置文件可包括与在框1010所选择的不同的一组 误码条件。因此,随着通信在该过程循环回到框1012时继续并再次返回到判定框1038,可 以应用不同的一组条件来确定是否应当进行进一步适应。该过程能以此方式在通信继续并且无线电装置持续地适应当前影响信道上的通 信的条件的情况下迭代地进行。至此描述了本发明的至少一个实施例的若干方面,可以理解,本领域的技术人员 可容易地想到各种更改、修改和改进。这样的更改、修改和改进旨在是本发明的一部分,且旨在处于本发明的精神和范 围内。因此,上述描述和附图仅用作示例。可以用多种方式中的任一种来实现本发明的上述实施例。例如,可使用硬件、软件 或其组合来实现各实施例。当使用软件实现时,该软件代码可在无论是在单个计算机中提 供的还是在多个计算机之间分布的任何合适的处理器或处理器集合上执行。此外,应当理解,计算机可以用多种形式中的任一种来具体化,如机架式计算机、 台式计算机、膝上型计算机、或平板计算机。另外,计算机可以具体化在通常不被认为是计 算机但具有合适的处理能力的设备中,包括个人数字助理(PDA)、智能电话、或任何其他合 适的便携式或固定电子设备。同样,计算机可以具有一个或多个输入和输出设备。这些设备主要可被用来呈现 用户界面。可被用来提供用户界面的输出设备的示例包括用于可视地呈现输出的打印机或 显示屏和用于可听地呈现输出的扬声器或其他声音生成设备。可被用于用户界面的输入设 备的示例包括键盘和诸如鼠标、触摸板和数字化输入板等定点设备。作为另一示例,计算机 可以通过语音识别或以其他可听格式来接收输入信息。这些计算机可以通过任何合适形式的一个或多个网络来互连,包括作为局域网或 广域网,如企业网络或因特网。这些网络可以基于任何合适的技术并可以根据任何合适的 协议来操作,并且可以包括无线网络、有线网络或光纤网络。而且,此处略述的各种方法或过程可被编码为可在采用各种操作系统或平台中任 何一种的一个或多个处理器上执行的软件。此外,这样的软件可使用多种合适的程序设计 语言和/或常规程序设计或脚本工具中的任何一种来编写,而且它们还可被编译为可执行 机器语言代码或在框架或虚拟机上执行的中间代码。就此,本发明可被具体化为用一个或多个程序编码的一个或多个计算机可读介质 (例如,计算机存储器、一个或多个软盘、紧致盘、光盘、磁带、闪存、现场可编程门阵列或其 它半导体器件中的电路配置、或其他计算机存储介质),当这些程序在一个或多个计算机或 其他处理器上执行时,它们执行实现本发明的上述各个实施例的方法。这一个或多个计算 机可读介质可以是便携的,使得其上存储的一个或多个程序可被加载到一个或多个不同的 计算机或其他处理器上以便实现本发明上述的各个方面。此处以一般的意义使用术语“程序”或“软件”来指可被用来对计算机或其他处理 器编程以实现本发明上述的各个方面的任何类型的计算机代码或计算机可执行指令集。另 外,应当理解,根据本实施例的一个方面,当被执行时实现本发明的方法的一个或多个计算 机程序不必驻留在单个计算机或处理器上,而是可以按模块化的方式分布在多个不同的计算机或处理器之间以实现本发明的各方面。计算机可执行指令可以具有可由一个或多个计算机或其他设备执行的各种形式, 诸如程序模块。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程 序、对象、组件、数据结构等。通常,在各实施例中,程序模块的功能可以视需要组合或分散。而且,数据结构能以任何合适的形式存储在计算机可读介质上。为简化说明,数据 结构可被示为具有通过该数据结构中的位置而相关的字段。这些关系可以通过对各字段的 存储分配传达各字段之间的关系的计算机可读介质中的位置来得到。然而,可以使用任何 合适的机制来在数据结构的各字段中的信息之间建立关系,包括通过使用指针、标签、或在 数据元素之间建立关系的其他机制。本发明的各个方面可单独、组合或以未在前述实施例中具体讨论的各种安排来使 用,从而并不将其应用限于前述描述中所述或附图中所示的组件的细节和安排。例如,可使 用任何方式将一个实施例中描述的各方面与其他实施例中描述的各方面组合。同样,本发明可被具体化为方法,其示例已经提供。作为该方法的一部分所执行的 动作可以按任何合适的方式来排序。因此,可以构建各个实施例,其中各动作以与所示的次 序所不同的次序执行,不同的次序可包括同时执行某些动作,即使这些动作在各说明性实 施例中被示为顺序动作。在权利要求书中使用诸如“第一”、“第二”、“第三”等序数词来修饰权利要求元素 本身并不意味着一个权利要求元素较之另一个权利要求元素的优先级、先后次序或顺序、 或者方法的各动作执行的时间顺序,而仅用作将具有某一名字的一个权利要求元素与(若 不是使用序数词则)具有同一名字的另一元素区分开的标签以区分各权利要求元素。同样,此处所使用的短语和术语是出于描述的目的而不应被认为是限制。此处对 “包括”、“包含”、或“具有”、“含有”、“涉及”及其变型的使用旨在包括其后所列的项目及其 等效物以及其他项目。
权利要求
一种计算设备,包括至少一根天线;多个硬件组件,所述多个硬件组件耦合到所述至少一根天线,所述多个硬件组件适用于生成通过所述至少一根天线来发射的信号或处理通过所述至少一根天线接收到的信号;包括计算机可执行模块的计算机可读介质,所述计算机可执行模块包括用于生成要包括在要发射的信号中的、或要对从通过所述至少一根天线接收到的信号中提取的数据进行操作的数据的数据生成或消费模块;软件定义无线电装置模块,包括多个数据处理模块,所述多个数据处理模块共同被配置成处理在所述硬件组件和所述数据生成或消费模块之间交换的数据,所述数据处理模块的至少一部分可响应于控制输入来配置,并且所述数据处理模块的至少一部分具有状态输出,所述状态输出适用于输出指示与通过所述至少一根天线的传输或处理信号相关联的条件的值;以及至少一个控制模块,所述至少一个控制模块用于接收所述状态输出并基于所述条件生成对所述数据处理模块的至少一部分的控制输入的控制信号。
2.如权利要求1所述的计算设备,其特征在于,所述数据处理模块的所述部分包括解 调器。
3.如权利要求2所述的计算设备,其特征在于,所述解调器适用于在所述解调器的状 态输出处输出表示失真向量的值(X,Y)。
4.如权利要求3所述的计算设备,其特征在于所述数据处理模块的所述部分包括调制器;以及所述至少一个控制模块包括适用于并被配置成基于所述失真向量的值来指定对于所 述调制器的控制输入的认知模块。
5.如权利要求4所述的计算设备,其特征在于,所述认知模块适用于并被配置成响应 于所述失真向量中的趋势来指定所述控制输入。
6.如权利要求1所述的计算设备,其特征在于,所述数据处理模块的所述部分包括解 码器。
7.如权利要求6所述的计算设备,其特征在于,所述解码器适用于在所述解码器的状 态输出处输出表示与接收信号相关联的位误差的数量的值。
8.一种操作具有实现软件定义无线电装置的软件组件的计算设备的方法,所述方法包括接收表示多个无线通信的信号;用所述软件定义无线电装置来处理所述信号,所述处理包括生成关于接收信号与所述 接收信号的预定义状态之间的差异的状态信息;收集一时间间隔上的状态信息;以及基于所述时间间隔上的状态信息的统计量来重新配置所述软件定义无线电装置。
9.如权利要求8所述的方法,其特征在于,所述状态信息包括失真向量(Χ,Υ)。
10.如权利要求9所述的方法,其特征在于,所述软件定义无线电装置包括软件解调 器,并且所述生成包括在所述软件解调器中生成所述状态信息。
11.如权利要求8所述的方法,其特征在于,所述状态信息包括接收信号和预定义位模 式之间的多个位差。
12.如权利要求11所述的方法,其特征在于,所述软件定义无线电装置包括软件解码 器,并且所述生成包括在所述软件解码器中生成所述状态信息的至少一部分。
13.如权利要求11所述的方法,其特征在于,所述软件定义无线电装置包括软件解调 器,并且所述生成还包括在所述软件解调器中生成所述状态信息的至少一部分。
14.如权利要求13所述的方法,其特征在于,所述重新配置包括基于在所述软件解调 器和所述软件解码器中生成的所述状态信息来重新配置所述软件定义无线电装置。
15.一种操作具有实现软件定义无线电装置的软件组件的计算设备的方法,所述方法 包括根据第一配置文件配置所述软件定义无线电装置,所述第一配置文件具有与其相关联 的操作条件;接收表示多个无线通信的信号;用所述软件定义无线电装置来处理所述信号,所述处理包括生成关于接收信号与一组 预定义状态中的一个状态之间的差异的状态信息;收集所述状态信息;以及在所述状态指示所述软件定义无线电装置正根据与所述第一配置文件相关联的操作 条件操作时,根据第二配置文件来配置所述软件定义无线电装置,所述选择是基于所述状 态信息的。
16.如权利要求15所述的方法,其特征在于,还包括至少部分地基于在所述软件定义无线电装置的先前重新配置之后存储的状态信息来 选择所述第二配置文件。
17.如权利要求16所述的方法,其特征在于,生成状态信息包括在多个时间计算失真 向量(X,Y)。
18.如权利要求16所述的方法,其特征在于,生成状态信息包括跟踪通过使用纠错码 检测到的位误差数量。
19.如权利要求16所述的方法,其特征在于,生成状态信息包括跟踪处于与标称值的 阈值偏离级别内的接收码元的速率。
20.如权利要求16所述的方法,其特征在于,所述软件定义无线电装置包括多个组件, 并且与所述第一配置文件相关联的操作条件包括所述多个组件中的至少两个生成的状态 fn息ο
全文摘要
一种具有软件定义无线电装置的计算设备。该软件定义无线电装置具有使用分开的组件来提供控制功能和数据处理功能的体系结构。控制组件配置数据处理组件以使得软件定义无线电装置提供所需操作特性。数据平面中的组件可以导出指示操作条件的信息,其可被提供给控制组件中的一个或多个。作为响应,控制组件可以修改数据平面中的组件以针对操作条件来进行调整。
文档编号G06F15/163GK101896899SQ200880121304
公开日2010年11月24日 申请日期2008年11月18日 优先权日2007年12月14日
发明者A·A·哈萨恩 申请人:微软公司