无线收发器的接口协议和api的制作方法

文档序号:6479036阅读:389来源:国知局
专利名称:无线收发器的接口协议和api的制作方法
技术领域
目前所公开的主题涉及计算与电子领域,且更具体地涉及诸如娱乐控制台的领 域,尽管这些仅是示例性和非限制性的领域。
背景技术
视频游戏和娱乐系统越来越多地结合无线特征和附件。无线无线电设备和必要的 驱动程序的开发需要大量的设计工作。而,控制和管理无线接口所需的命令和协议是复杂 的,并且无线系统的软硬件附件的开发者需要大量的开发资源。此外,无线技术和相关标准 频繁改变,需要开发者适应新的接口要求。因而,开发者在开发特定无线接口的产品上的投 资在这些接口和协议频繁改变时得不到补偿。无论如何,使用开发无线特征和附件的现有标准的接口是有利的。在行业中广泛 使用的并且为大量产品所支持的接口标准一般驱动成本下降,并且结合这样的非定制组件 对于减少产品开发成本是合乎需要的。此外,在无线收发器的情形中,限制处理器之间通信 所需的IC引脚数量同时提供足够的数据带宽一般是合乎需要的。因此,可选择简单的串行 接口用于无线架构。在本领域普遍使用且周知的、提供这些特征的一个这样的标准接口是 串行外设接口(SPI)。SPI接口的一个限制是数据传送限于一次8位。因为许多应用需要 较高的命令和数据传送能力,所以需要一种具有串行接口优点的较高级协议。此外,提供一 种开发者可以使用来利用无线特征而不必关心接口的物理和传输细节的接口是有利的。发明概述本文公开了用于提供一种支持为使用串行接口如串行外设接口(SPI)的视频游 戏和娱乐系统开发新的无线附件的平台的各种系统、方法和计算机可读指令。在本公开的 一个示例性和非限制性方面,一种智能收发器设备可包含无线协议栈的完整的物理(PHY) 和媒体访问控制(MAC)层,并且无线协议功能可被划分到单个设备中。在各种实施例中,公开了一种可用于向和从智能收发器设备提供控制和数据传送 的协议。具体地,公开了一种用于协议、命令和响应的示例性格式。在另一实施例中,公开了用于提供一种为开发者提供一组硬件无关服务的接口的 应用编程接口(API)。这样的API可用于向和从系统以及智能收发器设备建立、维护和传输 数据。可按需通过API来调用各服务。具体地,公开了一组示例性和非限制性的服务、功能 调用、配置方法、事件和参数。应当注意,提供本概述以便用简化形式描述在下面的详细描述中的一些概念。本 概述不旨在标识所要求保护的主题的关键特征或基本特征,也不旨在用于帮助确定所要求 保护的主题的范围。附图简述上面的概述以及下面的详细描述在结合附图阅读时能得到更好地理解。为了说明 本公开,示出本公开的各方面。然而,本公开不限于所示的这些特定方面。包括下列附图

图1示出本文所述主题的示例性控制台;图2示出本文所述主题的示例性计算环境;
图3示出本文所述主题的示例性连网环境;图4示出使用一种本文公开的协议的实施例的示例性数据传送;图5示出使用一种本文公开的协议的实施例的示例性数据传送;图6示出描绘使用本文公开的协议的实施例的总线传送的示例性时序图;图7示出描绘使用本文公开的协议的实施例的总线传送的示例性时序图;图8示出描绘使用本文公开的协议的实施例的总线传送的示例性时序图;图9示出描绘使用本文公开的协议的实施例的总线传送的示例性时序图;图10示出描绘使用本文公开的协议的实施例的总线传送的示例性时序图;图11示出描绘使用本文公开的协议的实施例的总线传送的示例性时序图;图12提供在本文公开的智能收发器的实施例中启动信号收发和消息收发的示例 性图示;图13示出适于使用本文公开的协议的实施例的系统的示例;图14示出使用本文公开的协议的实施例的使用服务原语的数据通信服务;图15示出使用本文公开的协议的实施例的API参数和配置值;图16示出本文公开的协议的实施例的简化状态转移图;以及图17示出本文公开的API的实施例的示例结构。示例性实施例的详细描述示例件游戏控制台、PC和连网方面本公开的这个章节提供示例性和非限制性游戏控制台的各个大体方面。现在参考 图1,框图示出一个示例性多媒体控制台。多媒体控制台100具有中央处理单元(CPU) 101, 它具有1级(Li)高速缓存102、2级(L2)高级缓存104、和闪存R0M(只读存储器)106。1 级高速缓存102和2级高速缓存104临时存储数据且因此减少存储器存取周期的数量,从 而提高处理速度和吞吐量。闪存ROM 106可存储在多媒体控制台100通电时的引导过程的 初始阶段期间加载的可执行代码。或者,在初始引导阶段期间加载的可执行代码可被存储 在闪存存储器设备(未示出)中。此外,ROM 106可位于与CPU 101分开的地方。图形处理单元(GPU) 108和视频编码器/视频编解码器(编码器/解码器)114形 成高速和高分辨率图形处理的视频处理流水线。数据从图形处理单元108经由总线传送到 视频编码器/视频编解码器114。视频处理流水线输出数据至A/V(音频/视频)端口 140 用于传输到电视或其它显示器。存储器控制器110连接到GPU 108和CPU 101以便于处理 器对各种类型存储器112诸如但不限于RAM(随机存取存储器)的访问。多媒体控制台100包括I/O控制器120、系统管理控制器122、音频处理单元 123、网络接口控制器124、第一 USB主机控制器126、第二 USB主机控制器128、和前面板 I/O组合件130,它们较佳地在模块118上实现。USB控制器126和128用作外设控制器 142(1)-142(2)、无线适配器148、和外部存储器单元146 (例如,闪存存储器、外部⑶/DVD ROM驱动器、可移动介质、等等)的主机。网络接口 124和/或无线适配器148提供对网络 (例如,因特网、家庭网络等)的访问并且可以是各种各样的各种有线或无线接口组件中的 任何一种,这包括以太网卡、蓝牙模块、电缆调制解调器等等。提供系统存储器143以存储在引导过程期间加载的应用数据。提供介质驱动器 144并且它可包括DVD/CD驱动器、硬盘驱动器、或者可移动介质驱动器等等。介质驱动器
5144对于多媒体控制台100可以是内置的或者是外置的。可经由介质驱动器144访问应用 数据以由多媒体控制台100来执行、回放等。介质驱动器144经由总线如串行ATA总线或 其它高速连接(例如IEEE 1394)连接到I/O控制器120。系统管理控制器122提供与确保多媒体控制台100的可用性有关的各种服务功 能。根据上述本公开的各方面,音频处理单元123和音频编解码器132形成具有高保真、 3D、环绕和立体声音频处理的相应音频处理流水线。音频数据经由通信链路在音频处理单 元123和音频编解码器126之间传送。音频处理流水线输出数据到A/V端口 140供外部音 频播放器或者具有音频功能的设备再现。前面板I/O组合件130支持电源按钮150和弹出按钮152以及暴露在多媒体控制 台100的外表面上的任何LED(发光二极管)或其它指示器的功能。系统电源模块136向 多媒体控制台100的各组件供电。风扇138冷却多媒体控制台100内的电路。CPU 101、GPU 108、存储器控制器110、和多媒体控制台100内的各种其它组件经 由一个或多个总线(包括串行和并行总线、存储器总线、外设总线、和使用任何各种总线架 构的处理器或局部总线)互连。当多媒体控制台100通电或重新引导时,应用数据可从系统存储器143加载到存 储器112和/或高速缓存102、104中并且在CPU 101上执行。应用可呈现图形用户界面, 它在导航至多媒体控制台100上可用的不同媒体类型时提供一致的用户体验。在操作中, 应用和/或介质驱动器144内包含的其它媒体可从介质驱动器144启动或播放以向多媒体 控制台100提供附加的功能。多媒体控制台100可作为独立的系统通过简单地将该系统连接至电视或其它显 示器来操作。在该独立模式中,多媒体控制台100可允许一个或多个用户与系统交互、观看 电影、收听音乐等等。然而,在集成了通过网络接口 124或无线适配器148产生的宽带连接 能力之后,多媒体控制台100还可作为较大网络社区的参加者来操作。在这后一种情形中, 控制台100例如可经由网络连接至服务器。接着,现在转到图2,所示的是表示适于结合实现上面公开的主题使用的示例性计 算设备的框图。本公开的众多实施例可在计算机上执行。例如,完成用于在游戏控制台上 提供PC体验的过程和方法的计算机可执行指令可驻留如图1所示这样的计算环境中和/ 或在该环境中执行。计算系统环境220只是合适计算环境的一个示例并且不旨在暗示对有 关当前公开的主题的使用范围或功能有任何限制。也不应当将计算环境220解释为对在示 例性操作环境220中所示的任何一个组件或组件组合有任何依赖性或要求。在一些实施例 中,各种描绘的计算元件可包括被配置为具体化本公开的各特定方面的电路。例如,在本公 开中使用的术语电路可包括被配置为通过固件或开关完成(各)功能的专用硬件组件。在 其它示例实施例中,术语电路可包括通过体现可用于完成功能的逻辑的软件指令配置的通 用处理单元、存储器等等。在电路包括软硬件组合的示例实施例中,实现者可编写体现逻辑 的源代码并且可将源代码编码成可由通用处理单元处理的机器可读代码。由于本领域技 术人员会了解到本领域的技术状态已经发展到了在硬件、软件或软硬件组合之间只存在很 少的差别的阶段,因此选择硬件或软件来实现特定功能只是留给实现者的一个设计选择而 已。更具体地,本领域的技术人员会了解到软件过程可被转换成等价的硬件结构,并且硬件 结构本身可被转换成等价的软件过程。因而,选择硬件实现或软件实现只是设计选择之一
6并将它留给实现者。计算机241 —般包括各种计算机可读介质。计算机可读介质可以是可由计算机 241访问的任何可用介质并且它包括易失性和非易失性介质、可移动和不可移动介质。系 统存储器222包括易失性和/或非易失性存储器形式的计算机存储介质,如只读存储器 (ROM) 223和随机存取存储器(RAM) 260。基本输入/输出系统224 (BIOS) —般存储在ROM 223中,它包含如在启动时帮助计算机241内元件之间传送信息的基本例程。RAM 260 —般 包含可由处理单元259立即访问和/或当前正在操作的数据和/或程序模块。作为示例且 非限制,图2示出操作系统225、应用程序226、其它程序模块227、和程序数据228。计算机241还可包括其它可移动/不可移动、易失性/非易失性计算机存储介质。 仅作为示例,图2示出读写不可移动非易失性磁介质的硬盘驱动器238、读写可移动非易失 性磁盘254的磁盘驱动器239、和读写可移动非易失性光盘253如⑶ROM或其它光介质的 光盘驱动器240。可在示例性操作环境中使用的其它可移动/不可移动、易失性/非易失性 计算机存储介质包括但不限于,磁带盒、闪存卡、数字多功能盘、数字视频带、固态RAM、固态 ROM、等等。硬盘驱动器238 —般通过不可移动存储器接口如接口 235连接至系统总线221, 并且磁盘驱动器239和光盘驱动器240 —般通过可移动存储器接口如接口 235连接至系统 总线221。上面讨论并且在图2中示出的这些驱动器及其相关联的计算机存储介质为计算 机241提供计算机可读指令、数据结构、程序模块和其它数据的存储。在图2中,例如,硬盘 驱动器238被示为存储操作系统258、应用程序257、其它程序模块256、和程序数据255。注 意,这些组件可以与操作系统225、应用程序226、其它程序模块227、以及程序数据228相 同或者不同。操作系统258、应用程序257、其它程序模块256、和程序数据257在这里给出 不同的标号以说明至少它们是不同的拷贝。用户可通过输入设备如键盘251和通常称为鼠 标、轨迹球或触摸板的定点设备252将命令和信息输入到计算机241中。其它输入设备(未 示出)可包括话筒、操纵杆、游戏垫、卫星天线、扫描仪、等等。这些和其它输入设备常常通 过耦合至系统总线的用户输入接口 236连接至处理单元259,但也可通过其它接口和总线 结构如并行端口、游戏端口或者通用串行总线(USB)来连接。监视器242或者其它类型的 显示设备也可通过接口如视频接口 232连接至系统总线221。除了监视器之外,计算机可包 括其它外设输出设备如扬声器244和打印机243,它们可通过输出外设接口 233来连接。计算机241可在使用至一个或多个远程计算机如远程计算机246的逻辑连接的网 络化环境中操作。远程计算机246可以是个人计算机、服务器、路由器、网络PC、对等设备或 者其它通用网络节点,并且通常包括许多或全部上面相对于计算机241所述的元件,但仅 在图2中示出存储器存储设备247。图2所示的逻辑连接包括局域网(LAN) 245和广域网 (WAN) 249,但也可包括其它网络。这样的连网环境在办公室、企业级计算机网络、内联网和 因特网中是很常见的。当在LAN连网环境中使用时,计算机241通过网络接口或者适配器237连接至LAN 245。当在WAN连网环境中使用时,计算机241—般包括调制解调器或者用于在WAN 249如 因特网上建立通信的其它装置。调制解调器250可以是内置或外置,可通过用户输入接口 236或者其它合适机制连接至系统总线221。在网络化环境中,相对于计算机241描绘的程 序模块或者其部分可存储在远程存储器存储设备中。作为示例且非限制,图2示出驻留在存储器设备247上的远程应用程序248。可以了解,所示网络连接是示例性的并且可使用在 计算机之间建立通信链路的其它装置。图3提供示例性网络化或分布式计算环境的示意图。该环境包括计算设备153、 156和157以及对象155和数据库158。这些实体153、155、156、157和158中的每一个可包 括或者利用程序、方法、数据存储、可编程逻辑等等。这些实体153、155、156、157和158可跨 越相同或不同设备如PDA、音频/视频设备、MP3播放器、智能电话、DVD播放器、有线电视盒 调谐器的各部分,或者就是具有获得由服务器PC提供的远程内容的能力的任何计算设备。 每一实体153、155、156、157和158可以通过通信网络154与其它实体153、155、156、157和 158通信。在这点上,任何实体可负责数据库158或者其它存储元件的维护与更新。这个网络154本身可包括向图3的系统提供服务的其它计算实体并且本身表示多 个互联的网络。根据当前公开的主题的一方面,每一实体153、155、156、157和158可包含 离散的功能程序模块,这些模块可利用API或者其它对象、软件、固件和/或硬件来请求其 它实体153、155、156、157和158中的一个或多个的服务。还可了解的是,对象如155可被主存在另一个计算设备156上。因而,尽管所描述 的物理环境将连接的设备示为计算机,但这样的图示仅仅是示例性的并且物理环境可另选 地被描绘或者描述为包括如PDA、电视、MP3播放器之类的各种数字设备、如接口、COM对象 之类的软件对象等。存在支持分布式计算环境的各种系统、组件、和网络配置。例如,计算系统可通过 有线或无线系统由局部网络或者大范围分布的网络连接在一起。目前,许多网络耦合到因 特网,后者提供用于大范围分布计算的基础设施并且包括许多不同网络。任何这样的基础 设施,无论是否耦合到因特网,都可结合所提供的系统和方法使用。网络基础设施允许容纳各种网络拓扑结构如客户机/服务器、对等、或者混合架 构。“客户机”是一类或一组的成员,它使用与其无关的另一类或另一组的服务。在计算中, 客户机是一个进程,概略地讲就是请求另一个程序提供的服务的一组指令或任务。客户机 进程利用所请求的服务而不必“知道”有关该其它程序或服务本身的任何工作细节。在客 户机/服务器架构特别是网络化系统中,客户机通常是访问由另一个计算机例如服务器提 供的共享网络资源的计算机。在图3的示例中,任何实体153、155、156、157和158可以根 据环境被视为客户机、服务器、或者两者。而且此外,对于娱乐控制台,它可以是服务器的客 户机。尽管不是必要的,服务器一般是可通过远程或本地网络如因特网访问的远程计算 机系统。客户机进程可在第一计算机系统中是活跃的,而服务器进程可在第二计算机系统 中是活跃的,彼此通过通信介质进行通信,从而提供分布式功能并且允许多个客户机利用 服务器的信息收集能力。任何软件对象可跨多个计算设备或对象分布。客户机和服务器利用协议层提供的功能进行相互通信。例如,超文本传送协议 (HTTP)是结合万维网(WWW)即“Web”使用的常见协议。通常,计算机网络地址如因特网协 议(IP)地址或其它参考如统一资源定位器(URL)可用于相互标识服务器或者客户机计算 机。网络地址可以被称为URL地址。可在通信介质上提供通信,例如可经由TCP/IP连接将 客户机和服务器耦合在一起用于高性能通信。按照可根据图3提供的一般框架建立的各种计算环境并且可在如图3的网络环境
8中计算时发生的变化,不能将本文提供的系统和方法解释为以任何方式受限于特定的计算 架构或操作系统。相反,目前公开的主题应当不限于任何单个实施例,而是应当按照所附权 利要求书的本质和范围来解释。从而例如,尽管已经讨论了游戏控制台和服务器PC,但是这 就象完全尺寸的台式机可为智能电话远程控制以作为访问数据和功能一样容易,否则智能 电话不能访问数据和功能。最后,还应当注意,本文所述的各种技术可结合硬件或软件或者在适当情况下结 合两者的组合来实现。因而,目前公开的主题的方法、计算机可读介质和系统或者其某些方 面或部分可以采用包含在有形介质如软盘、⑶-ROM、硬盘驱动器、或者任何其它机器可读存 储介质的形式,在当程序代码被机器如计算机加载到该机器中并且被执行时,该机器就变 成了实践本主题的装置。在程序代码在可编程计算机上执行的情形中,计算设备一般可包括处理器、处理 器可读存储介质(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备、和 至少一个输出设备。可利用本公开的领域专用编程模型各方面的创建和/或实现的一个或 多个程序,例如通过使用数据处理API等,较佳地用高级过程或面向对象的编程语言来实 现以与计算机系统通信。然而如果需要的话,程序可用汇编或机器语言来实现。在任何情 形中,语言可以是编译或解释语言,并且可与硬件实现相结合。SPI协议和侖令结构本文公开了用于提供支持为视频游戏和娱乐系统开发新无线附件的平台的各种 系统、方法、和计算机可读指令。为限制支持处理器之间通信所需的IC引脚数量,可使用简 单的串行接口。具体地,为提供与尽可能多的非定制CPU部件一起使用并且支持所需的通 信量的通用接口,可实现基于串行外设接口(SPI)的设计。SPI是允许在主设备与从设备之间串行交换数据的接口。SPI —般使用同步协议, 其中发送和接收是由主微控制器生成的时钟信号来指导的。SPI接口允许连接若干SPI设 备同时主设备用CS (片选)信号来选择每一设备。SPI 一般由四个信号线组成主出从入(M0SI)主入从出(MIS0)串行时钟(SCLK或SCK)片选(CS)SPI是同步串行数据链路标准。设备在其中主设备启动数据帧的主/从模式中通 信。通过各个片选线来允许多个从设备。在每一 SPI时钟周期期间,进行全双工数据传输,在其中主设备在M0SI线上发送 一个位,从设备在该线上读取该位,从设备在MIS0线上发送一个位,并且主设备在该线上 读取它。传输一般涉及两个给定字大小诸如8位的移位寄存器,一个在主设备中而一个在 从设备中。移位寄存器以环形配置连接。数据一般先从最高位移出,而将新的最低位移入 同一寄存器中。在该寄存器已经移出后,主设备和从设备就交换了寄存器值。随后可按需 重复该过程。在本公开的一个示例性且非限制性方面,可提供智能收发器设备来支持快速开发 游戏平台的新无线附件。在一实施例中,智能收发器可为物理和链路无线通信层提供接收
9器和发送器功能。具体地,无线协议栈的物理和链路层以及用于这样的设备的无线协议功 能可在无线专用集成电路(ASIC)中实现。在一个实施例中,智能收发器可以是从设备而主 控制应用可以是SPI总线的主设备。在一实施例中,可使用具有准予每一无线附件无线电时间的时分多址(TDMA)的 频跳数字无线电协议来提供无线通信。可使用在全世界无许可证的2. 4GHz工业科学医学 (ISM)无线电频段。可需要最少量的外部组件来实现符合世界规定的要求的完全跳频扩频 (FHSS) 2. 4GHz ISM频段数字无线电收发器。标准SPI接口的缺点是数据传送限于一次8位。因为许多应用要求较高的命令和 数据传送能力,所以需要仍保持串行接口的优点的较高级协议。在各种实施例中,在考虑 SPI总线上全双工数据传送的高效控制/数据传输方法时,公开了一种基于帧的SPI协议, 它可用于向和从智能收发器设备提供控制和数据传送。具体地,公开了用于该协议、命令和 响应的示例性格式。在一实施例中,每一帧可由2字节头部和可变有效载荷长度组成。头 部可包括2个部分——命令字节和长度字节。有效载荷的长度可取决于特定命令,并且最 长的分组可定义传送的长度。图4提供了典型数据传送的示例性图示。因为所公开的协议包括全双工接口,如果一个设备没有信息要传送,则该设备可 发送一个空闲命令。所公开的协议可维护主/从结构,其中主控制应用一般控制所有事务, 并且主控制应用每当它具有准备好发送的消息时就传送数据。智能收发器可用作从设备并 且可返回指示该请求的结果、对命令的顺从、或者来自先前请求的事件的发生的指示的回 答。智能收发器还可生成至主控制应用的中断,它指示消息已经准备好供主设备读取。所公开的协议还可包括下列应用于帧事务的规则。首先,片选处于活跃状态。其 次,在链路的两端总是先发送头部。如果一端没有有效消息要发送,则命令域可置为0x00。 第三,可使用最长帧(主至从或者从至主)来定义传送的长度。第四,如果一方具有多于一 个分组要发送,则可在同一帧中将独立的消息追加在一起。在下表中所示的情形都是示例性的有效传送。
情形 编号主从数据无数据数据无数据1XX2X1)X3XX4XX5X2)X2)6X2)X1)7X3)X2)1)单一命令2)多个数据3)哑命令图5-11示出描绘在该表中略述的场景的总线传送的示例性时序图。图5描绘主
10设备有数据要发送而从设备有命令要发送但没有数据。图6描绘主设备有命令要发送但没 有数据而从设备没有数据。图7描绘主设备有数据要发送且从设备有数据要发送。图8描 绘主设备有命令要发送但没有数据而从设备有数据。图9描绘主设备有多个数据分组且从 设备有多个数据分组。图10描绘主设备有多个数据分组而从设备有单个数据分组要发送。 最后,图11描绘主设备没有数据要发送而从设备设备有多个数据分组。在帧头部之后不需要保护时间。CSIHS到高的转变可用于帧同步。为支持SPI多 个从应用,可在完成数据传送之后将MIS0焊点设置为三态(由CS#触发)。在发送了由长 度字节定义的数量的数据字节之后,数据字节可被置为“随意”。在一个实施例中,可在启动时选择智能收发器功能。智能收发器的功能可根据所 需的应用而不同。功能还可取决于在其中使用智能收发器的产品类型。例如,如果IC在只 有语音的设备中使用,则该IC可与产品为游戏控制器设备时不同地操作。SPI命令结构可 根据为其配置智能收发器的应用的类型而改变。可将智能收发器设备设计为同时支持至多4个数据和语音附件或者4个只有数据 和4个只有语音的附件,或者其间的任何组合。智能收发器当在无线附件中实现时可与无 线视频游戏控制台或者启用无线的个人计算机或者配备了相似的智能收发器的其它计算 设备通信。智能收发器是可用于支持各种产品配置的平台。可调整智能收发器内的固件以支 持各种产品版本而不改变芯片硬件。在视频游戏系统中,智能收发器可用于支持视频控制 台产品、游戏控制器产品、和各种外设产品。图12提供在智能收发器的实施例中的启动信号收发和消息收发的示例性图示。 参考该附图,智能收发器发送收发器启动消息610。主控制应用随后可发送启动配置消息至 智能收发器615。启动配置消息可向智能收发器提供有关大体设置的信息,包括正在使用的 SPI协议、所需的输出时钟、主控制应用使用的EEPR0M存储的类型和EEPR0M的长度。智能收发器可用启动配置响应来应答620。主控制应用可发送命令以在EEPR0M数 据中检索应用配置625。如果已发送,则主控制应用可发送这些命令并且等待来自智能收发 器的响应630。主控制应用可发送应用配置命令635。应用配置命令可将智能收发器芯片设置成 主控制应用需要的模式中。智能收发器可用应用配置响应来应答640。主控制应用可发送该命令以将该应用设置为活跃645。智能收发器随后可用“应 用活跃”的当前模式来应答650。在配置待机状态中,主控制应用可允许有限的SPI命令。智能收发器一般没有足 够的信息以在该时刻执行任何功能并且需要主控制应用提供更多的数据。一般在该状态中 所允许的命令只有模式控制(即,通电、复位)和启动配置消息收发。在主控制应用发送有效启动配置消息之后可进入预应用状态。该状态可允许更多 的SPI命令但数量受到限制,因为该应用尚未被建立。所允许的命令的主要功能一般是配 置读、配置设置和模式控制。智能收发器可保持在该状态中直至主控制应用将它改变成另 一个状态。在主控制应用设置应用配置之后可进入应用待机状态。应用一般直至主控制应用 将状态设置为活跃之后才开始。
可在主控制应用将模式设置为活跃之后从应用待机状态进入应用活跃状态。应用 活跃状态一般是设备的正常操作模式。主控制应用可继续发出应用所允许的命令。下面是支持智能收发器功能的消息的示例性列表。在两个组中描绘这些命令。第 一组是应用无关命令。第二组描绘了示例性的应用专用命令。通常,命令组可以是更完整 的命令组的子集。下面的表列出示例性应用无关命令。在附录A中提供命令细节(特定的格式和域 含义)。
主控制应用至智能收发器智能收发器至主控制应用命令#描述命令#描述0x00没有命令或响应正在被发 送0x01消息失败0x02模式控制0x03模式控制响应0x05缓冲区警告0x07缓冲区警告清除0x38语音同步设置请求0x39语音同步设置响应0x3B语音同步消息0x3E设置语音编码类型0x3F语音编码类型响应0x44EEPROM读请求0x45EEPROM读垧应0x46EEPROM写请求0x47EEPROM写响应0x80启动配置消息0x81启动配置响应0x82智能收发器启动消息请求0x83智能收发器启动消息
0χΒ8无线帧同步设置0xB9无线帧同步设置响应OxBB无线帧同步OxCOGPIO设置OxClGPIO设置响应/状态0xC2GPIO读/写消息0xC3GPIO状态/响应消息应用无关消息游戏手柄应用可使用关联于游戏手柄操作的无线协议。游戏手柄应用的语音部分 可使用游戏手柄规则获得语音信道。下表示出可由游戏手柄应用使用的SPI消息。
游戏手柄应用消息语音设备应用可使用关联于语音设备的无线协议。无线应用的语音部分可使用语 音规则获得语音信道。下表示出由语音应用使用的示例性SPI消息。 语音应用消息应用编程接口(API)接着,描述API。在一个实施例中,从设备可由应用处理器(AP)和作为无线协议 处理器的智能收发器组成。API可位于应用处理器中。这两个处理器可经由串行外设接口 (SPI)连接。如图13所示,尽管可独立于实际的硬件和软件环境提供这些服务,但在一个实施 例中,API可假设单独的应用处理器(主控制应用处理器)经由串行接口与智能收发器通 信。此外,在另一个实施例中,API可由一般的GPI0应用来使用。在一个实施例中,API可处理对物理无线电信道和对智能收发器引脚的访问。API 还可负责下列任务1.使用SPI驱动程序通过SPI与智能收发器通信。2.简化智能收发器的设置。3.同步应用与智能收发器之间的通电模式和功能状态。4.提供应用的无线数据和语音传输功能的框架。5.支持对应用与智能收发器的通信的调试。可考虑五个API服务分组1.用于通过无线链路发送和接收固定大小的数据分组的数据服务。2.用于通过无线链路发送和接收语音分组的语音服务。可包括特殊的机制来支持 该服务的等时性质并且支持对语音样本的编码或解码。3.用于配置其它服务的参数的层管理服务。4.用于在智能收发器的一些空引脚上执行面向位的10的GPI0服务。
5.用于提供应用以访问智能收发器产品测试界面的产品测试服务。可按照图14例示的服务原语定义数据通信服务。服务原语是服务提供层和任何 服务用户(任务、层等)之间的抽象交互。因此它可独立于软件实现细节。该服务可被实 现为适于目标系统的功能调用或者操作系统消息。如图15所示,信息库(IB)可包含API参数和配置值。服务原语可以是四种一般 类型之一·请求可从服务使用层向下传递请求原语以请求由API启动的服务。 指示可从API向上传递指示原语。该事件可在逻辑上与远程服务请求有关,或 者它可由内部API事件引起。·确认确认原语可从API传递至应用/网络层以传送一个或多个关联的先前服 务请求的结果。·响应响应原语可从服务使用层传递至API以完成由指示原语在先前调用的过程。下面的约定可用于原语< 原语名称X原语类型 >。< 原语类型 > 可以是下列各 项之一 =Req (请求),Ind (指示),Conf (确认)或Resp (响应)。这些服务原语可提供下列功能..力站乂数据)...具有各种固定大小的数据分组的传输。...Connect (连接)...连接建立。...Disconnect (断开连接)...连接释放。下面示出上行数据服务的分组类型的示例性列表。可以按照任意顺序使用所有类 型。可给出每帧48字节(加上头部中的至多16个位)的最大上行吞吐量。帧持续时间可 以是8毫秒。总的请求吞吐量一般不超过最大值。对于纯无线语音设备(例如耳机)可使 用…DATA VOICE(数据语音)...分组类型。
上行数据服务大多数上行分组类型和对应的数据(子)服务在无线电链路上不提供任何分组排 队或者流控制。这些数据分组假设是可重写的。当可重写的分组发送得比可用吞吐量所允 许的快时,后面发送的分组可重写早先发送的分组。可重写的分组一般用于周期性地发送 某种状态信息。列出下行数据服务的分组类型的示例性列表。可按任意顺序使用所有类型。可给 出每帧8字节(加上头部中的至多16个位)的最大下行吞吐量。帧持续时间可以是8毫秒。 总吞吐量一般不超过最大值。对于纯无线语音设备(例如耳机)可使用...DATA VOICE (数 据语音)...分组类型。 下行数据服务对于语音服务,服务原语提供下列功能. . . TxRx...指示PCM语音分组的传输定时。通过特殊功能GetVoiceBuffer (取 语音缓冲区)来交换实际的语音分组。…Connect. ··连接建立。· · · Disconnect. · ·连接释放。. . . Samp IeRate (取样速率)...指示上行取样速率改变。因此可由智能收发器编码PCM数据以满足吞吐量限制。可按照每样本16个位传 送PCM语音样本(左对齐,2的补码,小尾序格式)。取样速率可由主设备在任何时候改变。可为该情形提供取样速率指示,以触发音 频处理程序来相应地改变AD转换参数。上行语音分组大小(属性IB_VOICE_PACKET_SIZE)和初始上行编码类型(属性 IB_UPSTREAM_VOICE_ENCODING_TYPE)可在 IB 头文件中设置。管理服务可经由信息库(IB)组合与数据或语音传输服务和层配置不直接相关的 原语。在典型的应用环境中,IB属性具有固定值并且不需要在应用执行期间改变。管理服务原语可提供下列功能... Init (初始化)...API软件初始化。. . . Start (开始)...:开始与智能收发器的通信。...Reset (复位)...:API和智能收发器复位。...PowerDown (断电)...智能收发器断电。...BindU^S)...主/从绑定(连接的先决条件,但只需要一次)。...StopBind (停止绑定)...停止绑定。. ..Read (读)...智能收发器 EEPROM 读。...Write (写)...智能收发器 EEPROM 写。作为将来的扩展的选择,IB属性也可由对应的原语(get (取)和set (设置))来 访问。然后IB访问原语可具有单独的确认原语,因为在大多数情形中涉及与智能收发器的
通{曰。智能收发器具有可用于输入或输出的空闲的GPIO引脚。配置可通过IB属性来完 成。服务原语可设置或清除至多16个IO引脚或者在请求(用确认原语)或者主动提 供(用指示原语)时递送至多16个IO引脚的当前状态。图16描绘API协议的实施例的简化状态转移图。API状态可定义为已初始化API准备好被使用。已开始建立并配置了与智能收发器的通信。已连接建立了数据和/或语音连接并且可发送或接收数据和/或语音。为简化 状态图,未示出无语音状态或转移,但其可作为单独的独立实例存在。绑定这是在绑定到主设备期间的瞬时状态。为仅仅达到已连接状态通常不必进 行绑定。在从设备的使用期限中通常只发生一次。图17中示出API的示例性基本结构。示出了状态机,它可处理应用的请求、根据
17智能收发器收到的SPI消息为应用生成事件、以及内部状态。用于在主控制应用控制器与 智能收发器之间传送数据和语音的缓冲区可集成在API中。应用层可就原语功能调用与 API通信以发出请求。另外,在一个实施例中,存在两个功能GetEVent(...)(取事件)和 ReadEventDetailsC ..)(读事件细节)用于处理来自API的事件消息。对于语音处理,可 实现两个功能PutVoiceBuffer ( )(放入语音缓冲区)和GetVoiceBuffer ( )(取语音 缓冲区)。SPI驱动程序可通过这四个功能与API接口以处理API缓冲区。可考虑两种类型的请求1.可以没有对应确认的请求。请求操作的结果一般在功能调用返回之后知道。2.具有对应确认的请求。对于这些类型的请求,存在两种不同方式来处理操作 同步或异步。对于同步实现,功能调用的结果可在功能调用返回之后知道,但该功能会等待 确认并且进行调用的任务会被阻塞直至该功能返回。相反,异步实现了具有立即返回的功 能调用,但操作的结果可被独立地处理。指示和确认可由应用作为事件来接收(事件标识符和指向收到的原语元素的指 针列表)。功能调用可用于取事件和读事件细节。为优化语音处理任务,语音样本的缓冲区 管理可通过单独的功能调用而非事件来处理。通过底层的操作系统,这可通过由任务或线 程收到的消息来实现。代替拥有接收指示和确认的事件循环,可向API注册回调功能。当收到相应的指 示或确认时,可调用对应的功能。下表将用户和第三方应用可用的SPI命令与本文所述原语进行交叉引用。如果 一个原语列出多于一次,则根据原语参数(例如,Xair_MdDataReq)或者内部驱动程序状态 (例如,Xair_MmStartReq)选择相关的命令。标记为FFS的命令目前未被包括在规范中但 可按需添加。
SPI命令与原语之间的交叉引用附录B提供由API服务提供的各种功能的细节。最后,尽管已经结合如在各附图中示出的较佳方面描述了本公开,但可理解,可使 用其它相似方面或者可对所述方面进行修改或添加以完成本公开的相同功能而不偏离本 公开。例如,在本公开的各方面中,公开了一种协议和API。然而,本文的教导还设想了这些 所述方面的其它等价机制。因此,本公开不应当限于任何单一方面,而是应当根据所附权利 要求书的本质和范围来解释。附录A智能收发器启动消息当智能收发器初次启动并且SPI模式已经被检测到并且它已经准备进行SPI传送 时,它可在其SPI输出FIFO中加载启动消息并断言“D_AVAIL#”行。该消息一般用作配置 消息来让主控制应用知道芯片的类型及其配置。即使智能收发器可在启动时自动发送该消 息,主控制应用也可在任何时间用智能收发器启动消息请求来请求它。智能收发器至主控制应用 表1-智能收发器启动消息(0x83)多媒体控制台至智能收发器 表2-智能收发器启动消息请求(0x82)启动配置在主控制应用收到智能收发器启动消息之后它可发送启动配置消息至智能收发 器芯片。该消息可让智能收发器知道它正在使用的是什么SPI协议版本和它想要的输出时 钟速度。响应消息可包含为调试检查而发送的配置数据。当前启动配置可由主控制应用通 过发送长度为0(无有效载荷)的命令来轮询。主控制应用至智能收发器 表3-智能收发器启动配置消息(0x80)智能收发器至主控制应用注意响应包含与启动命令一起发送的数据作为它被正确接收的确认。 表4-启动配置响应(0x81)如果SPI驱动程序使用不同于芯片所支持的SPI协议版本,则该芯片可返回其支 持的版本而不是所请求的版本。使用芯片能操作的版本是驱动程序的责任。模式控制主控制应用对智能收发器操作具有最终控制。模式命令允许主控制应用改变智能 收发器的模式。不同的复位模式复位智能收发器芯片使得它可以从一已知状态开始。电源 模式使智能收发器断电或者将其置入另一个电源状态。模式改变消息可由智能收发器在模 式改变发生之前确认。模式控制轮询是供主控制应用确定智能收发器仍正确地处于不同的模式中的“保 持活动”消息的好选择。主控制应用至智能收发器主控制应用可发送该命令至智能收发器以改变模式或者请求当前模式。如果没有 长度发送,则请求可被视为对当前模式的轮询。
25 表5-模式控制请求(0x02)智能收发器至主控制应用 表6-模式控制响应(0x03)模式控制响应消息在收到模式控制请求的1毫秒内在SPI接口处可用。消息缓冲区警告通常,主控制应用不会发送消息太快而让智能收发器无法处理。然而,在智能收发 器缓冲区正在开始填充的情形中,定义了错误消息。有一个消息用于向主控制应用警告缓 冲区几乎要满。有另一个消息用于清除对缓冲区类型的警告。另外,有一个消息用于让智 能收发器告诉主控制应用最后的消息被拒绝。拒绝消息仅在主控制应用忽略缓冲区警告并 且以任何方式为该缓冲发送数据或者在消息对于当前的应用或状态为错时才被发送。智能收发器至主控制应用缓冲区警告该消息可由智能收发器在一个或多个缓冲区几乎被填满时发送。可编写智能收发 器固件使得它在还有用于至少一个以上的消息的空间时(不包括当前正在接收的消息)发 送该警告。每当发送该消息时,发送处于警告状态的所有缓冲区的列表。当主控制应用收 到缓冲区警告时,它应当不再发送该类型的缓冲区直至该警告被清除为止。
表7-缓冲区警告消息(0x05)智能收发器至主控制应用缓冲区警告清除该消息可在处于警告的缓冲区已经被足够地清空以允许更多消息时发送。有效载 荷可列出正在清空的每一项缓冲区类型。这可仅列出具有先前置位的警告类型且现在可以 安全写入的缓冲区。 表8-缓冲区警告清除消息(0x07)智能收发器至主控制应用消息失败通过良好的主控制应用编码,该消息应当从不发送,但在主控制应用忽略缓冲区 警告消息并且发送智能收发器不能接受的缓冲区时或者在消息对于当前的应用或状态为 错时可发送它。 表9-消息失败(0x01)EEPR0M 命令主控制应用可请求向EEPR0M写数据或从EEPR0M读数据。消息限于32字节的数 据并且一次仅有一个消息未完成(一个EEPR0M读或一个写消息)。EEPR0M 读主控制应用可向EEPR0M请求数据。这是通过读请求来完成的。稍后,当智能收发 器芯片读EEPR0M时,它可通过SPI用EEPR0M读响应消息返回数据。这两个消息均包含正 在读的EEPR0M偏移和长度,这让主控制应用将其未完成的读请求与响应同步。如果存在错 误,则智能收发器可返回没有EEPR0M数据读的请求。该消息收发允许主控制应用处理器将上下文放入要返回的消息中。这可以用主控制应用处理器所想要的任何方式来使用。例如, 这可以是在收到响应消息时要继续的任务编号。主控制应用至智能收发器EEPROM读请求 表IO-EEI3ROM 读请求(0x44)智能收发器至主控制应用EEPROM读响应 表Il-EEI3ROM 读响应(0χ4δ)EEPROM 写主控制应用可以在EEPROM中保存非易失性数据。这是通过写请求来完成的。稍 后,在智能收发器芯片写好数据并且验证数据之后,它可通过SPI信道返回响应消息以让 主控制应用知道它已完成。这两个消息均可包含正在读的EEPROM偏移和长度,允许主控制 应用将其未完成的写请求与响应同步。如果存在错误,则智能收发器可返回具有错误状态 的请求。该消息收发允许主控制应用处理器将上下文放入要返回的消息中。这可以用主控 制应用处理器所想要的任何方式来使用。例如,这可以是在收到响应消息时要继续的任务编号。在响应中可返回所写的数据,因此主控制应用可以验证正确的数据被写入。主控制应用至智能收发器EEPROM写请求 智能收发器至主控制应用EEPROM写响应 表13-EEraOM 写响应(0x47)有两部分的智能收发器固件可以知道当前的语音类型。1.链路层需要知道正在上行发送什么类型的数据。2.如果智能收发器硬件正在提供语音编码/解码,则应用可以知道要用于编码的 编码类型。在发送该注释时,智能收发器在必要时可改变上行路径的冊编码类型,并且还可
29以用该类型来标记上行语音数据。如果发送没有有效载荷的命令,则智能收发器可发送当 前类型。主控制应用至智能收发器设置语音编码类型 表14-设置语音编码类型(0x3E)智能收发器至主控制应用语音编码类型响应 表15-语音编码类型响应(0x3F)GPI0 控制智能收发器IC具有可由主控制应用芯片用于输入或输出的空闲GPI0引脚。在智 能收发器初始化时,所有空闲GPI0可被配置为输入并且将它们的状态作为智能收发器启 动消息的一部分发送。消息可允许主控制应用配置GPI0并且对GPI0读或写。当配置输入 时,主控制应用可请求每当所请求的输入改变时即发送GPI0状态消息。这些消息可被排队 并且准备好在4毫秒内发送至主控制应用。GPI0状态消息的优先级比缓冲区和模式消息 低。在所有GPI0命令中,位0映射到GPI0 0,位1映射到GPI0 1,以此类推。主控制应用至智能收发器GPI0设置如果主控制应用想要使用智能收发器的GPI0,则它必须正确地设置它们。有独立 的位映射以确定输入和输出。
表16-GPI0 设置(OxCO)智能收发器至主控制应用GPI0设置响应 表17-GPI0 设置响应(OxCl)主控制应用_至智能收发器GPI0读/写 表18-GPI0 设置(0xC2)智能收发器至主控制应用GPI0状态/响应 表19-GPI0 设置响应(0xC3)无线帧同步应用可在帧中任何位置设置帧同步消息。默认地,帧同步消息可被关闭。当启用 时,帧同步消息可在帧位时钟到达触发值时被加载到SPI缓冲中并且做好准备。主控制应用至智能收发器帧同步设置请求 表20-帧同步设置请求(0xB8)智能收发器至主控制应用帧同步设置响应
12位置枚举1表21-帧同步设置响应(0xB9)智能收发器至主控制应用帧同步消息 表22-帧同步消息(OxBB)无线语音同步为提高通过SPI端口的吞吐量,有可能同步上行和下行语音数据使得两种分组类 型通过全双工连接同时传送。可使用语音同步设置请求消息来启用该特征。主控制应用至智能收发器语音同步设置请求默认地,当启用该消息时,可禁用帧同步消息。当禁用该消息时,可启用帧同步消 肩、ο 表23-语音同步设置请求(0x38)智能收发器至主控制应用语音同步设置响应 表24-语音同步设置响应(0x39)智能收发器至主控制应用语音同步消息主控制应用可使用该消息来开始通过SPI接口的全双工传输。 表25-语音同步消息(0x3B)配置消息收发配置消息允许主控制应用将智能收发器芯片设置为具有其特定选项的正确的应用。设置应用和选项该机制允许主控制应用选择正确的应用以及用于它的各种选项。主控制应用至智能收发器应用配置_第三方 表26-应用配置一第三方(0x84)智能收发器至主控制应用应用配置响应 表27-SPI应用配置响应(0x85)如果无效的选项标志或者语音分组大小域被智能收发器检测到,则它可保持在预 应用状态中直至它收到有效的应用配置命令为止。主机连接一旦主控制应用准备好,它就可尝试启动到主机的连接。在游戏手柄应用中,它首 先可建立数据连接,并且一旦完成连接如果有耳机插入的话它就可尝试建立语音连接。一 旦建立连接就可因为三种不同的情况丢弃它们1.主控制应用请求链路丢弃。在该情形中链路被丢弃并且无线电被关闭。主控制 应用可发出新的连接请求来开启无线电并重新建立新链路。2.主机请求链路丢弃。在该情形中链路被丢弃并且无线电被关闭。可向主控制应 用通知连接丢弃和无线电关闭。主控制应用可发出新连接请求以开启无线电并重新建立新 链路。3.与主机的同步丢失。在该情形中链路被丢弃并且无线电被关闭。可向主控制应 用通知连接丢弃和无线电关闭。主控制应用必须发出新连接请求以开启无线电并重新建立 新链路。数据连接请求一旦应用开启并且运行,它就可请求智能收发器连接至主机。智能收发器芯片可 使用协议规则来找到主机并选择无线槽。一起动了连接过程,主机即可返回连接请求响应。 一旦获得一个槽,就可发送连接状态报告。如果主控制应用想要丢弃连接,则它可将动作设 置为“丢弃连接”并且发送该消息。智能收发器可丢弃连接并关闭无线电。可返回“连接被丢弃”响应。另外,链路状态消息可通过“按主控制应用请求丢弃的槽”的链路状态且随后 是“无线电关闭”的链路状态来发送。主控制应用不应当在它收到指示链路已获得的链路状态消息之前发送要被传送 的任何数据。如果它这么做,则数据会被冲掉并且不再被发送。主控制应用至智能收发器数据连接请求注意该命令可包括用于初始报告的域。 表28-数据连接请求(OxEO)智能收发器至主控制应用数据连接响应 表29-数据连接响应(OxEl)语音连接请求一旦应用开启且运行并且插入了耳机和获得了数据连接,主控制应用就可请求智 能收发器进行语音连接。智能收发器芯片可使用游戏手柄语音协议规则来选择无线槽。一 起动连接过程,主机即可返回连接请求响应。一旦获得一个槽,就可发送连接状态报告。主控制应用至智能收发器语音连接请求 表30-语音连接请求(0xE2)智能收发器至主控制应用语音连接响应 表31-语音连接响应(0xE3)链路状态主控制应用可能想要查询链路状态。另外,智能收发器应用可能想要在链路状态 改变时发送消息。语音槽可用性主控制应用至智能收发器链路状态请求 表32-链路状态请求(0x42)智能收发器至主控制应用链路状态 表33-链路状态响应(0x43)控制器缓冲传送一旦应用开启且运行并且无线电链路已获得,则大多数的传送是用于要发送的数 据或者接收的数据的缓冲区传送。在协议中定义的每一数据类型具有其自己的缓冲区集 合。对于上行消息,主控制应用可在它具有缓冲区时发送这些缓冲区。如果用于特定数据 类型的缓冲分配区低,则智能收发器芯片可发送该缓冲区类型低的的警告。主控制应用可 仅再发送该类型的一个缓冲区(包括同时正在传送的缓冲区)直至它得到“警告清除”为 止。在实践中,假设存在足够的缓冲区而警告从不发生。在智能收发器从无线信道收到消 息时,它可使用正确的数据类型消息将它们发送到主控制应用上。主控制应用至智能收发器(上行)缓冲区控制器头部报告控制器头部报告是经由无线头部发送的状态报告。这些的一个示例是设备类型报告。 表34-控制器头部报告(0x08)控制器数据 表35-控制器数据(OxOC)控制器传送 一般报告缓冲区该缓冲区类型可以用于所有没有专用缓冲区消息的缓冲区类型。 表36-—般报告缓冲区(OxOA)智能收发器至主控制应用(下行)缓冲区控制器头部请求 表37-控制器头部请求(0x09)控制器数据表40-—般请求缓冲区(OxOB)语音缓冲区传送语音缓冲区是可在一个消息中定期发送的最长的数据。为允许全双工总线的较佳 使用,主控制应用可将语音缓冲区配置为被分成较小的片段。该配置可在启动时设置并且 不能在运行时设置。分组0可视为基本类型,并且如果语音没有被划分,则它可以是唯一传 送的语音分组类型。主控制应用处理器可让智能收发器芯片知道正在使用的是什么类型的 编码使得它可以将正确的数据类型放在语音头部中。如果智能收发器正在执行语音编码, 则它可使用主控制应用已经设置的类型。智能收发器可能需要跟踪通过SPI接收的语音分组并且确保在使用划分的分组时,在通过无线信道发送全部缓冲区之前收到了所有的分 组。主控制应用可能需要对它从智能收发器接收的数据提供相似功能。主控制应用至智能收发器(上行)缓冲区语音头部报告 表41-语音头部报告(0x14)语音传输 表42-语音传输报告(0x16)PCM语音分组0-7如果主控制应用已经将应用配置为提供语音解码和编码,则这些分组类型可用于 填充缓冲区。配置选项“上行语音分组计数”可用于控制哪些分组被发送。可使用具有不 同命令代码的分组使得智能收发器可以将其DMA设置为指向正确的缓冲区位置。表43示 出用于PCM分组的最大分组大小。所有PCM样本可以是16位、2的补码、小尾序格式。这意味着第一字节是第一样本 的低位字节,第二字节是第一样本的高位字节,等等。另外,如果使用小于16位的ADC,则样 本可以左对齐。
表43-上行PCM语音分组大小对比分组数量 表44-PCMi吾音缓冲区(0x28—0x36)智能收发器至主控制应用(下行)缓冲区语音头部请求 表45-语音头部请求(0x15)语音传输 表46-语音传输报告(0x17)PCM语音分组0-7如果主控制应用已经将应用配置为提供语音解码和编码,则可发送这些分组类 型。配置选项“下行语音分组计数”可用于控制多少分组被发送。表47示出用于PCM分组 的最大分组大小。注意这些分组可包含用于状态的额外字节,以让主控制应用处理器知道 数据CRC是否被确认。“坏”数据仅在主控制应用已经为它配置了智能收发器时才被发送。 表47-下行PCM语音分组大小对比分组数量 表48-PCM 语音缓冲区分组 0_7 (0x29-0x37)配置消息收发配置消息允许主控制应用将智能收发器芯片设置为具有其特定选项的正确的应用。
设置应用和选项该机制允许主控制应用选择正确的应用以及用于它的各种选项。主控制应用至智能收发器应用配置一第三方 表49-应用配置,第三方(0x84)智能收发器至主控制应用应用配置响应 表50-应用配置响应(0x85)主机连接一旦主控制应用准备好,它就可尝试启动到主机的连接。在语音设备应用中,它首 先可搜索主机并与主机同步且随后使用语音设备协议建立语音槽连接。一旦建立连接就可 因为三种不同的情况丢弃它们
1.主控制应用请求链路丢弃或者无线电关闭。在该情形中链路可被丢弃。如果主 控制应用请求无线电关闭,则也可丢弃与主机的同步并且关闭无线电。在任一情形中,主控 制应用必须发出新的连接请求以重建新链路。2.主机请求链路丢弃。在该情形中,链路可被丢弃并且可向主控制应用通知,但与 主机的同步可被保持。这允许在将来无须搜索主机就能完成连接。在该场景中,智能收发 器可尝试并重建连接,以及如果它这么做的话则通知主控制应用。3.与主机的同步丢失。在该情形中,智能收发器应用可尝试与主机重新同步并且 随后重建丢失的连接。可向主控制应用通知进展但不必重新发送连接消息。语音连接请求一旦应用启动且运行,则主控制应用就可请求智能收发器进行语音连接。智能收 发器芯片可使用语音设备协议规则来选择无线槽。一起动连接过程,主机即可返回连接请 求响应。一旦获得槽,就可发送连接状态报告。如果没有绑定信息,则智能收发器可返回错 误连接响应。主控制应用至智能收发器语音连接请求 表51-语音连接请求(0xE2)智能收发器至主控制应用语音连接响应 表52-语音连接响应(0xE3)链路状态主控制应用可能想要查询链路状态。另外,智能收发器应用可能想要在链路状态 改变时发送消息。语音槽可用性
45
主控制应用至智能收发器链路状态请求 表53-链路状态请求(0x42)智能收发器至主控制应用链路状态 表54-链路状态响应(0x43)语音缓冲区传送语音缓冲区是可在一个消息中定期发送的最长的数据。为允许全双工总线的较佳 使用,主控制应用可将语音缓冲区配置为被分成较小的片段。该配置可在启动时设置而不 能在运行时设置。分组0被视为基本类型并且如果语音没有被划分则它可以是唯一被传送 的语音分组类型。主控制应用处理器可让智能收发器芯片知道正在使用的是什么类型的编 码,使得它可以将正确的数据类型放在语音头部中。如果智能收发器正在执行语音编码,则 它可使用主控制应用已经设置的类型。智能收发器可能需要跟踪通过SPI接收的语音分组 并且确保在使用划分的分组时,在通过无线信道发送全部缓冲区之前收到了所有的分组。 主控制应用可能需要对它从智能收发器接收的数据提供相似功能。主控制应用至智能收发器(上行)缓冲区语音头部报告 表55-语音头部报告(0x14)语音传输在语音设备中使用语音传输来进行命令请求和状态报告。 表56-语音传输报告(0x16)PCM语音分组0-7如果主控制应用已经将应用配置为提供语音解码和编码,则这些分组类型可用于 填充缓冲区。配置选项“上行语音分组计数”可用于控制哪些分组被发送。可使用具有不 同命令代码的分组使得智能收发器可以将其DMA设置为指向正确的缓冲区位置。表43示 出用于PCM分组的最大分组大小。所有PCM样本是16位、2的补码、小尾序格式。这意味着第一字节是第一样本的低 位字节,第二字节是第一样本的高位字节,等等。另外,如果使用小于16位的ADC,则样本可 以左对齐。 表57-上行PCM语音分组大小对比分组数量 表58-PCM 语音缓冲区(0x28-0x36)智能收发器至主控制应用(下行)缓冲区语音头部请求 表59-语音头部请求(0x15)语音传输在语音设备可使用语音传输用于命令请求和状态报告。 表60-语音传输报告(Ox 17)PCM语音分组0-7
如果主控制应用已经将应用配置为提供语音解码和编码,则发送这些分组类型。 配置选项“下行语音分组计数”用于控制多少分组被发送。表47示出用于PCM分组的最大 分组大小。注意,这些分组包含用于状态的额外字节以让主控制应用处理器知道数据CRC 是否被确认。 表61-下行PCM语音分组大小对比分组数量 表62-PCM 语音缓冲区分组 0-7 (0x29-0x37)附录B数据服务的请求功能API请求功能可从应用调用以便在API层起动通信栈中的动作。API功能可以用 req作为前缀和后缀。Xair_MdDataReq功能XAIR_RESULT_T Xair_MdDataReq(XAIR_UP_PACKET_T PacketType, uint8*Data);执行已止 升少。描述发送上行数据分组至主设备。本地缓冲的数量在API 配置中定义。默认缓冲区深度为4,表示数据被复制一次 并且至多四个缓冲区可用。因为异步执行,需要至少一个 缓冲区。输入参 数PacketType (分组类型)数据缓冲区的大小也由 分组类型确定 Data(数据)指向要发送的数据返回值 XAIR_SUCCESS 数据缓冲区的内容被复制并且被 调度以发送到智能收发器芯片。
XAIR_BUFFER_FULL 操作失败,因为没有空间可 用于排队该请求(API流控制)。
XAIR_0VERL0AD 操作失败,因为当前不接受该分 组类型用于在无线电链路上发送(由智能收发器流控制)。 这可在超过无线电链路的吞吐量时发生。
XAIR_CL0SED 操作失败,因为数据连接被关闭。Xair_MdConnectReq
置。表63:设备子类型Xair_MdDisconnectReq 数据服务的事件Xair_MdDataInd Xair_MdConnectConf Xair_MdDisconnectConf Xair_MdDisconnectInd Xair语音服务的请求功能Xair_MvConnectReq Xair_MvDisconnectReq Xair语音服务的事件Xair_MvTxRxlnd
需要该事件来确保相对于无线帧信号的语音分组交换 的同步处理。该事件在经由SPI在后端控制器和智能收发 器芯片之间交换了无线帧的所有上行/下行语音分组之后 发生。注意对于音频时钟同步,后端控制器必须使用硬 件帧同步信号。
事件XAIR_MV_C0NNECT_C0NF 回答语音连接请求。
参数1XAIR_RESULT_T* 指向连接请求的结果。
XAIR_SUCCESS 建立语音连接。
XAIR_ERR0R 操作失败。
事件XAI R_MV_D I SC0NNECT_C0NF 回答语音连接释放请求。
参数1XAIR_RESULT_T* 指向释放请求的结果。
XAIR_SUCCESS 语音连接现在关闭。
主动提供的数据连接失败的指示。
参数1 XAIR_RESULT_T* 指向该指示的原因。
XAIR_CL0SED 无线电链路关闭。 Xair管理服务的请求功能Xair_MmInitReq Xair_MmStartReq Xair_MmResetReq Xair_MmStopBindReq Xair_MmReadReq Xair GPIO服务的请求功能Xair_MgIoReq Xair GPIO服务的事件Xair_MgIoConf Xair_MgIoInd Xair_MpSendRawSpiDataReq 事件和缓冲处理功能Xair_GetEvent Xair_PutVoiceBuffer Xair_GetVoiceBuffer API的配置和设计API的所有配置可通过“xair_api_xib.h”头文件中的定义来完成。在这里,完整 的API可根据主控制应用系统中的可用资源进行调整。用于排队RX/TX数据的缓冲区的数量可通过以下参数来调整-XIB_TX_DATA_QUEUE_SIZE-XIB_EVENT_QUEUE_SIZE-XIB_RX_DATA_QUEUE_SIZE这样就可以根据主控制应用系统的可用存储器空间调整所使用的队列大小。可通过以下项来配置所使用的EEPROM类型和存储大小-XIB_EEPROM_TYPE-XIB_PERSISTENT_ST0RE_SIZE
可通过以下项来设置SPI模式-XIB_SPI_M0DE可以设置模式0.. 3。默认是SPI模式0。可以用以下项来设置智能收发器芯片提供的输出时钟的频率-XIB_PROVIDED_CLOCK_FREQUENCY可以将时钟设置为12、24或48MHz。默认为12MHz。可通过以下项来设置工作应用类型-XIB_APPLICATION_TYPE可以设置数据、Voice (语音或者两者。默认为数据。可通过以下项来设置集成语音设备的能力-XIB_VOICE_ABILITY可以设置为启用或者禁用。默认为启用。可通过以下项来调整由智能收发器生成的帧同步消息的位置-XIB_SYNC_EVENT_POSITION可以设置SYNC_EVENT_0FF (同步事件关闭)、SYNC_EVENT_FRAMESTART (同步事件 帧开始)、SYNC_EVENT_BROADCAST (同步事件广播)或者 SYNC_EVENT_RX_FINISHED (同步事 件接收完成)。默认为SYNC_EVENT_FRAMESTART。用以下项设置所使用的上行语音编码类型_XIB_UPSTREAM_VOICE_ENCODING_TYPE可用以下来设置语音同步消息的生成-XIB_V0ICE_SYNC可以设置为启用或者禁用。默认为启用。可用以下项来设置智能收发器芯片的初始GPIO设置-XIB_GPIO_INPUTS/** < 16位,小尾序,位清除表示忽略,位置位表示输入*/-XIB_GPIO_INTERRUPT_MASK/**< 16位,小尾序,位清除表示忽略,位置位表示在输入改变时收到Xair_ MgIoInd 事件 */-XIB_GPI0_0UTPUTS/** < 16位,小尾序,位清除表示忽略,位置位表示该位为输出*/-XIB_GPI0_0UTPUT_TYPE/** < 16位,小尾序,位清除表示这是推/拉,位置位表示这是漏极开路*/-XIB_GPI0_0UTPUT_INIT/** < 16位,小尾序,初始化输出状态*/-XIB_GPIO_INPUT_TYPE/#< 32位,配置GPIO输入引脚。两位一对的域用于定义每一 GPIO引脚*/用以下项设置数据和语音分组缓冲区的相同大小-XIB_VOICE_EQ_DATA_BUFFER(语音等于数据缓冲区)可以设置为真(TRUE)或假(FALSE)。默认为真。Xair API 功能(xair_api. h)
/*XAIR_EVENT_T 的 API 类型定义 */typedef enum{XAIR_NULL_EVENT, /**〈无事件可用 */XAIR_MM_smart transceiver_COM_READY_IND, /** <智能收发器 / 主 SPI 通信就 绪指示(在自动检测之后)*/XAIR_MM_START_CONF, /** <开始请求结束 */XAIR_MM_RESET_IND, /** <复位发生 */xair_mm_bind_conf, /** <绑定请求结束 */xair_mm_stop_bind_conf, /** <停止绑定请求结束 */xair_mm_read_conf, /** <智能收发器 eeprom 读结束 */XAIR_MM_WRITE_CONF, /** <智能收发器 EEPROM 写结束 */XAIR_MM_SYNC_IND, /** <指示无线帧同步消息 */XAIR_MD_C0NNECT_C0NF, /** <数据连接请求结束 */XAIR_MD_DISC0NNECT_C0NF, /** <数据断开连接请求结束 */XAIR_MD_DISCONNECT_IND, /** <数据连接释放 */XAIR_MD_DATA_IND, /** <数据收到 */XAIR_MV_C0NNECT_C0NF, /** <语音连接请求结束 */XAIR_MV_DISC0NNECT_C0NF, /** <语音断开连接请求结束 */XAIR_MV_DISCONNECT_IND, /** <语音连接释放 */XAIR_MV_SAMPLE_RATE_IND, /** <取样速率改变指示 */XAIR_MV_RX_TX_IND, /** <指示语音分组同步 */XAIR_MG_I0_C0NF, /** < GPIO 设置请求结束 */XAIR_MG_I0_IND, <主动提供的GPIO状态的指示*/XAIR_MP_PR0TEST_C0NF, /** <产品测试命令请求结束 */}XAIR_EVENT_T ;/** < XAIR API 事件的枚举类型定义 */
/*xair_result_t 的 api 类型定义 */typedef enum{xair_success, /** <请求成功 */XAIR_ERR0R, /** <请求错误 */XAIR_CL0SED, /** <连接(非预期地)关闭 */xair_not_available, /** <智能收发器芯片不可用 */XAIR_MISCONFIG, <智能收发器配置失败*/xair_connected, <智能收发器芯片连接已经建立*/XAIR_RESET, /** <复位发生 */xair_buffer_full, /** <缓冲区满 */XAIR_VOICE_SYNC, /** <语音分组速率不同步 */}XAIR_RESULT_T ;< XAIR API 结果的枚举类型定义 */
/*Xair层管理服务的API原语*/XAIR_RESULT_T Xair_MmInitReq(void);XAIR_RESULT_T Xair_MmStartReq(void);XAIR_RESULT_T Xair_MmResetReq(void);XAIR_RESULT_T Xair_MmPowerDownReq(void);XAIR_RESULT_T Xair_MmBmdReq(void);XAIR_RESULT_T Xa i r _MmR e a dRe q (uintl60ffset, uint8Size, uintl6BackendContext);XAIR_RESULT_T Xair_MmffriteReq(unitl60ffset, uint8Size, uint8*Data, uintl6BackendContext);/*Xair层数据服务的API原语*/XAIR_RESULT_T Xair_MdDataReq(XAIR_UP_PACKET_TYPE_TPacketType, uint8*Data);XAIR_RESULT_T Xair_MdConnectReq(uint8*Data);XAIR_RESULT_T Xair_MdDisconnectReq(void);/*Xair层语音服务的API原语*/XAIR_RESULT_T Xair_MvConnectReq(uint8*Data);XAIR_RESULT_T Xair_MvDisconnectReq(void);/*Xair 层 GPIO 服务的 API 原语 */XAIR_RESULT_T Xair_MgIoReq (uintl6 OutputClearMask, uintl6 OutputSetMask);XAIR_RESULT_T Xair_MpSendRawSpiData(uint8氺Data);/*API 事件功能 */XAIR_EVENT_T Xair_GetEvent(void);XAIR_RESULT_T Xair_ReadEventDetai1s(P0INTER_T*Paraml, POINTER, T*Param2,P0INTER_T*Param3,P0INTER_T*Param4);XAIR_RESULT_T Xair_PutVoiceBuffer(P0INTER_T*NextTxBuff);XAIR_RESULT_T Xair_GetVoiceBuffer(P0INTER_T*RxBuff, uint8*CrcStatus);/*API调试和跟踪功能*/XAIR_RESULT_T Xair_DbgEnable(uint8Level);XAIR_RESULT_T Xair_DbgSetLevel(uint8Level);XAIR_RESULT_T Xair_DbgPrint(uint8氺DebugMessage,uint8Length);XAIR_RESULT_T Xair_DbgDisable(void);/*SPI驱动程序的API功能*/void Xair_Spi2XairTxReady(XAIR_SPI_FRAME_TYPE_TType);bool Xair_Xair2SpiGetRx(uint8 xdata* ^address, XAIR_SPI_FRAME_TYPE_T Type);void Xair_Spi2XairRxReady(XAIR_SPI_FRAME_TYPE_TType);/*Xair API的过程,必须周期性地调用以处理新的请求或者rx SPI消息*/
690677]void Xair_Api_State_Machme_Handler(void);
0678]Xair 信息库(xair_api_xib. h)
0679]/* <请求/SPI tx消息队列的大小(每一项分配35/67字节的存储器)。有效参 数是1,2,4,8,...*/
0680]#define XIB_TX_DATA_QUEUE_SIZE 2
0681]/**<事件队列的大小(每一项分配18字节的存储器)。有效参数是1,2,4,
0682]#define XIB_EVENT_QUEUE_SIZE
0683]
2
、*<SPI rx数据队列的大小(每一项分配35/67字节的存储器)。有效参数是 ,2,4,8,···*/
0684] #define XIB_RX_DATA_QUEUE_SIZE 2
0685]
0687]
0689]
/** <持久存储大小(EEPR0M长度)。*/
0686] #define XIB PERSISTENT STORE SIZE 0x0200
、*<SPI协议版本。用于访问智能收发器芯片的协议。*/
0688] #define XIB SPI PROTOCOL VERSION 0x0100
< SPI 模式(0,1,2,3)*/
0690]#define XIB_SPI_M0DE0
0691]/**<由智能收发器芯片提供的时钟频率,单位为MHz (12,24或48 (仅主机))。*/
0692]#define PR0VIDED_CL0CK_120x00
0693]#define PR0VIDED_CL0CK_240x01
0694]#define PR0VIDED_CL0CK_480x02
0695]#define XIB_PR0VIDED_CL0CK_FREQUENCY PR0VIDED_CL0CK_12
0696]/** <应用类型(数据、语音、数据和语音)。*/
0697]#define APPLICATI0N_TYPE_DATA 0x01
0698]#define APPLICATI0N_TYPE_V0ICE 0x02
0699]#define APPLICATI0N_TYPE_B0TH 0x03
0700]#define XIB_APPLICATI0N_TYPE APPLICATI0N_TYPE_DATA
0701]/** < XIB_V0ICE_ABILITY 集成语音能力。*/
0702]#define V0ICE_ABILITY_ENABLE0x40
0703]#define V0ICE_ABILITY_DISABLE 0x00
0704]#define XIB_V0ICE_ABILITYV0ICE_ABILITY_ENABLE
0705]/**<用于同步与无线帧相关的事件消息的位置。*/
0706]#define SYNC_EVENT_0FF0x00
0707]#define SYNC_EVENT_ 0x01
0708]#define SYNC_EVENT_BR0ADCAST0x02
0709]#define SYNC_EVENT_RX_FINISHED 0x03
0710]#define XIB_SYNC_EVENT_P0SITION SYNC_EVENT_FRAMESTART
0711]/** <由智能收发器芯片进行语音编码*/
0712]#define VOICE CODING DISABLE0x00
#define V0ICE_C0DING_ENABLE0x01#define XIB_V0ICE_C0DINGV0ICE_C0DING_ENABLE/** <上行和下行语音分组大小(32,64字节)*/#define VOICE_PACKET_SIZE_640x00#define V0ICE_PACKET_SIZE_320x01#if(XIB_V0ICE_C0DING = = V0ICE_C0DING_ENABLE)#define XIB_VOICE_PACKET_SIZE VOICE_PCM_PACKET_SIZE_32#else#define XIB_VOICE_PACKET_SIZE 0x01#endif/**<启用/禁用语音同步消息(注意示例SPI驱动程序需要语音同步!!!)*/#define VOICE_SYNC_DISABLE0x00#define VOICE_SYNC_ENABLE0x01#define XIB_V0ICE_SYNCVOICE_SYNC_ENABLE/** < GPIO输入,16位,小尾序,位清除表示忽略,位置位表示输入。*/#define XIB_GPIO_INPUTS0x0000/** < GPIO中断掩码,16位,小尾序,位清除表示忽略,位置位表示在输入时接收 Xair_MgloInd 事件。氺/XIB_GPIO_INTERRUPT_MASK0x0000/** < GPIO输出,16位,小尾序,位清除表示忽略,位置位表示该位为输出。*/XIB_GPI0_0UTPUTS0x0000/** < GPIO输出,16位,小尾序,位清除表示这是推/拉,位置位表示这是漏极开 路。*/XIB_GPI0_0UTPUT_TYPE0x0000/** < GPIO输出初始化,16位,小尾序,初始输出状态。*/XIB_GPI0_0UTPUT_INIT0x0000/#< 32位,配置GPIO输入引脚,两位一对的域用于定义每一 GPIO引脚。 */#define XIB_GPIO_INPUT_TYPE0x05555555/** <语音和数据缓冲区具有相同的长度(真,假)*/#define XIB_VOICE_EQ_DATA_BUFFER TRUE
权利要求
一种游戏系统或外设(142)包括无线协议处理器和串行外设接口(SPI)链路,包括被配置为通过SPI链路提供全双工命令和数据消息收发协议的电路,所述协议允许形成包括头部和可变长度有效载荷的数据分组,头部包括命令域和长度域,长度域表示所述可变长度有效载荷的大小,所述长度域取决于所述命令域的内容,且所述命令域指示应用无关命令和应用专用命令。
2.如权利要求1所述的系统,其特征在于,所有通过所述SPI的事务是由发送所述至少 一个数据分组至从设备的主设备来起动的,且其中,所述电路还被配置为从所述从设备接 收响应,所述响应包括来自主设备的请求的结果、对所述命令的顺从和来自先前请求的事 件的发生的指示中的至少一项。
3.如权利要求1所述的系统,所述电路还被配置为选择功能模式以及提供一组命令作 为所述功能模式的功能,在初始化阶段期间选择并且由产品类型确定所述功能。
4.如权利要求1所述的系统,其特征在于,由主设备发送的所述应用无关命令包括下 列各项中的至少之一无命令或响应被发送、模式控制、语音同步设置请求、设置语音编码类型、链路状态请 求、EEPR0M读请求、EEPR0M写请求、启动配置消息、收发器启动消息请求、无线帧同步设置、 测试传输请求、请求无线槽调试消息、GPI0设置、GPI0读/写消息、主EEPR0M读响应、和主 EEPR0M写响应。
5.如权利要求1所述的系统,其特征在于,由从设备发送的所述应用无关命令包括下 列各项中的至少之一消息失败、模式控制响应、缓冲区警告、缓冲区警告清除、语音同步设置响应、语音同步 消息、语音编码类型响应、链路状态、EEPR0M读响应、EEPR0M写响应、启动配置响应、智能收 发器启动消息、无线帧同步设置响应、无线帧同步、测试。
6.如权利要求1所述的系统,其特征在于,还包括被配置为通过SPI驱动程序提供对无 线协议处理器的访问的电路,所述被配置为提供对无线协议处理器的访问的电路还包括用 于通过所述无线链路发送和接收固定大小的数据分组的数据服务、用于通过所述无线链路 发送和接收语音分组的语音服务、用于配置其它服务的参数的层管理服务、用于在无线协 议处理器的空闲引脚上执行面向位的输入/输出的GPI0服务、以及用于提供对所述无线协 议处理器的产品测试接口进行访问的产品测试服务。
7.—种通过串行外设接口链路提供全双工命令和数据消息收发协议的方法,包括形成至少一个包括16位的头部和可变长度有效载荷的数据分组,头部包括命令字节和长度字节,长度域表示所述可变长度有效载荷的大小,其中,所述长度域取决于所述命令 域的内容且所述命令域指示包括应用无关命令或者应用专用命令的命令;通过发送所述至少一个数据分组至从设备来启动事务;发送对所述至少一个数据分组的响应。
8.如权利要求8所述的方法,其特征在于,所有事务是由发送所述至少一个数据分组 的主设备启动的,且其中,所述响应包括来自主设备的请求的结果、对所述命令的顺从和来 自先前请求的事件的发生的指示中的至少一项。
9.如权利要求7所述的方法,其特征在于,还包括选择功能模式并且提供一组命令作 为所述功能模式的功能,其中所述功能模式是在初始化阶段期间被选择并且由产品类型来确定。
10.如权利要求7所述的方法,其特征在于,由主设备发送的所述应用无关命令包括下 列各项中的至少之一无命令或响应被发送、模式控制、语音同步设置请求、设置语音编码类型、链路状态请 求、EEPR0M读请求、EEPR0M写请求、启动配置消息、收发器启动消息请求、无线帧同步设置、 测试传输请求、请求无线槽调试消息、GPI0设置、GPI0读/写消息、主EEPR0M读响应、和主 EEPR0M写响应。
11.如权利要求7所述的方法,其特征在于,由从设备发送的所述应用无关命令包括下 列各项中的至少之一消息失败、模式控制响应、缓冲区警告、缓冲区警告清除、语音同步设置响应、语音同步 消息、语音编码类型响应、链路状态、EEPR0M读响应、EEPR0M写响应、启动配置响应、智能收 发器启动消息、无线帧同步设置响应、无线帧同步、测试传输响应、GPI0设置响应/状态、和 GPI0状态/响应消息。
12.一种使用应用编程接口(API)提供对无线协议处理器的访问的方法,包括通过串行外设接口(SPI)驱动程序与所述无线协议处理器通信;在应用与所述无线协议处理器之间同步电源模式和功能状态;以及协调所述应用的无线数据和语音传输功能。
13.如权利要求12所述的方法,其特征在于,所述API被配置为使用SPI驱动程序通过 SPI提供与无线协议处理器的通信,简化无线协议处理器的设置,在应用与无线协议处理器 之间同步电源模式和功能状态,提供应用的无线数据和语音传输功能的框架,以及支持对 应用与无线协议处理器的通信的调试。
14.如权利要求12所述的访求,其特征在于,还包括提供用于通过无线链路发送和接 收固定大小的数据分组的数据服务、用于通过所述无线链路发送和接收语音分组的语音服 务、用于配置其它服务的参数的层管理服务、以及用于在无线协议处理器的空闲引脚上执 行面向位的输出输出的GPI0服务。
15.如权利要求12所述的方法,其特征在于,所述数据服务还包括服务原语,所述服务 原语还包括请求原语、指示原语、确认原语、和响应原语。
全文摘要
在包含无线协议栈的物理(PHY)和媒体访问控制(MAC)层的智能收发器设备中实现无线协议。在各种实施例中,使用基于串行外设接口(SPI)的设计。公开了可用于向和从智能收发器提供控制和数据传送的协议的实施例。具体地,公开了协议、命令和响应的示例性格式。在另一实施例中,公开了一种应用编程接口(API)。API提供可用于向和从该系统和智能收发器设备建立、维护和传送数据的硬件无关服务。具体地,公开了一组示例性和非限制性的服务、功能调用、配置方法、事件和参数。
文档编号G06F13/00GK101874241SQ200880118673
公开日2010年10月27日 申请日期2008年11月14日 优先权日2007年11月27日
发明者D·W·卢梭, D·古姆利希, G·R·史密斯, U·帕克多夫 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1