账号:
密码:
最新动态
产业快讯
CTIMES / 文章 /
蓝牙应用市场的推手──可编程逻辑组件在HCI桥接领域的价值
 

【作者: Mamoon Hamid】2007年04月03日 星期二

浏览人次:【6212】

想象一下,未来您每天早上醒来,您的电子邮件、语音邮件以及工作列表都已经从笔记本电脑、移动电话等数据源下载到您的PDA个人数字助理之中。您只要随身携带这个PDA,就可以随时和四周的汽车音响、MP3播放器、数字相机、打印机等装置互相沟通。随着兼容性配备不断地增加,有一点可以确定的是:我们目前所使用的各种电子配备,未来将全部具备蓝芽通讯功能,带动整个PAN(个人网络)概念的实现。


新版的蓝芽通讯规格于今年稍后问世,提供更高的带宽与更广的运作范围,这样的改良使得蓝芽通讯产品的数量更为扩充,不但可携式消费性电子商品、计算机外设配备将具备蓝芽通讯功能,用户住家、办公室甚至厂房中各种不同的电子器材亦皆能提供蓝芽功能,因此现有的电子器材将出现附加蓝芽接口的需求。



《图一》
《图一》


蓝芽通讯规格所定义的装置通讯接口,将用户的人为操作需求降到最低,但截至目前为止,大多数标准的蓝芽芯片只提供UART或USB主控接口(host controller interface;HCI)。如果要将现有的电子器材重新设计成具备UART或USB接口的版本,未免过于大费周章,较为理想的解决方式是使用系统现有的接口桥接到蓝芽次系统。可编程逻辑组件(PLD)由于具备无比的弹性,非常适合用来设计这样的桥接方案,将蓝芽次系统衔接到现有的PCI、1394等通讯接口,甚至组件制造商的专属总线接口。



《图二》
《图二》

蓝芽技术背景简介

蓝芽技术是一种短距离的无线电通讯技术,用来取代固接式或可携式电子器材的缆线。蓝芽通讯器材使用不受管制的2.4 GHz工业∕科学∕医学(ISM)专用频带,其基频协议支持「线路交换」及「分组交换」两种通讯方式,并使用跳频分散频谱(FHSS)技术来传递数据。在北美洲或欧洲大多数地区,蓝芽配备使用2.402到2.480 GHz的频率范围,并将这个频带再细分为79个1MHz的子频道。


蓝芽协议支持分组交换及线路交换两种通讯技术,每一个Piconet网络(最多包含八个蓝芽配备)可支持一个异步数据频道、最多三个同时传输的同步语音频道,以及多种不同的联机。每一个语音频道都是每秒64 kb的同步全双工频道,特别称为「同步连接导向」(SCO)线路。而异步传输频道则称为「异步不连接」(ACL)线路,可支持不对称带宽(最高723.2 kb/s传出,57.6 kb/s回传)或对称式带宽(433.9 kb/s)。


蓝芽通讯规格将建构蓝芽接口所需的功能,细分为三大功能区块(见图一),这三个功能区块直接对应到蓝芽规格的功能划分方式。



《图三》
《图三》

蓝芽无线电

无线电是用于建构蓝芽器材的宽带无线传输接口,通常是以多芯片模块的方式建构,包含一个天线开关、Baluns、扩大器、数字PLL频率复原、调变、解调变的专用电路。


蓝芽联机控制器

蓝芽联机控制器基频功能是由多个低阶链接层功能所构成,这些基频功能包括:*CVSD语音编码


*标头错误查核码(HEC)的产生与查核


*正向错误更正码(FEC)的产生与查核


*循环性重复查核码(CRC)的产生与查核


*数据漂白(编码)


*酬载(Payload)的加密与解密


*跳频功能的定序



《图四》
《图四》

蓝芽连接管理器

连接管理器区块可执行连接管理器协议(LMP),掌管低阶控制层功能,这些功能包括:


*不同装置之间的联机设定


*密钥的产生、交换与查核


*基频封包大小的协商


*无线电的供电模式与工作周期


*Piconet中某个装置的联机状态由于这些功能相当复杂,因此需要以软件方式建构,而且通常需要内建RISC处理器来执行。这种软件建构方式也使处理器能用于其他用途,包括连接至主机系统的接口韧体。



《图五》
《图五》

蓝芽主控接口

蓝芽通讯规格所定义的主控接口(HCI)如下:


HCI提供一个连接到基频控制器及连接管理器的指令接口,并读取硬件状态及控制缓存器,这个接口提供一个存取蓝芽基频功能的统一方式。


HCI接口包含两个部分,一个是建构指令接口的软件部分,另一个是用来将蓝芽次系统连接到主机的实体硬件部分。HCI软件的功能,在于使接口硬件透通化,让系统中较高阶的软件能不受限制。


HCI软件

蓝芽通讯规格的软件架构包含两大组件,其中数据层组件负责透过联机传输数据,而控制层组件则负责联机的控制与管理。在这份报告中,我们将着重探讨HCI的控制层与数据层组件。(图二)显示出HCI的软件架构以及HCI与蓝芽主机接口硬件之间的关系。



《图六》
《图六》

HCI指令与事件

系统主机可透过HCI驱动程序所提供的多种指令来控制蓝芽网络接口。除了这些指令之外,蓝芽规格还定义一套事件规格,这些事件由蓝芽网络接口的HCI韧体所产生,可显示接口的状态变动。


HCI指令与事件会和ACL、SCO联机的数据汇合到HCI传输接口硬件上,至于这些数据如何透过该接口进行多任务传输,则随不同的接口而异。(图三)为其运作方式的示意图。


HCI硬件∕传输

HCI传输规格定义三种数据类型在蓝芽网络接口与蓝芽主机间的传输方式。HCI传输规格定义这些数据型态在接口硬件上的封装与多任务传输方式。目前蓝芽通讯规格总共定义了三个HCI传输层。


*UART 传输层


*RS232 传输层


*USB传输层



《图七》
《图七》

另外,蓝芽SIG集团的白皮报告书还另外叙述了第四种传输层──PC卡传输层。以下将简单介绍这些传输层。


UART传输层


RS232与UART传输层使用UART序列通讯方式,在蓝芽网络接口与蓝芽主机之间传输数据。这两种传输层的差异在于所默认的环境不同,因此通讯协议的设计也不同。


UART传输层适用于蓝芽网络接口与主机位于相同电路板的运作环境,在这样的环境下,线路发生错误的机率微乎其微。HCI指令的封装包含一个HCI封包指示码(以显示该封包的内容为指令、事件或数据封包),接着是一个长度指示码(用于检查封包的同步化是否丧失;若失去同步化时,还可提供一个简单的恢复机制。)由于线路的两端都位于相同的电路板上,因此UART传输层并没有明订电子讯号的传输规格,但在大多数情况下,电子讯号将以TTL方式传送。另外,由于线路两端都位于相同的电路板,因此也没有定义特别的鲍率协商机制。


RS232传输层


RS232传输层适用于蓝芽网络接口与主机位于不同机壳中的通讯环境,也因为如此,RS232传输层定义了明确的电子讯号规格以及详尽的连接协议,以便因应较长的联机距离以及较高的线路错误率。


USB 传输层


USB不同于UART、RS232传输规格。USB本身的端点机制,可提供简易的联机多任务传输方式,而且不必消耗额外的系统资源来鉴别数据类型。因此USB传输规格主要在描述蓝芽数据类型如何对应到USB端点,其中包括如何将SCO数据流对应到USB的等时性(Isochronous)数据服务。



《图八》
《图八》

PC卡传输层


这个传输层并没有定义在蓝芽通讯规格中,但蓝芽SIG集团1999年八月发表的第一版白皮报告书「蓝芽PC卡传输层」一节,则对此传输层有所说明,其细节可至www.bluetooth.com网站查询。


蓝芽通讯规格并没有限制PC卡传输层的建构细节,唯一的要求是卡片硬件必须符合PC卡与Cardbus的标准规格。为了保持装置的兼容性,制造商必须提供该接口硬件专用的传输驱动程序,而且该驱动程序必须能搭配HCI驱动程序在主机系统上使用。


HCI支持ASSP

除非厂商有足够的时间与资源从头开始设计一个全新的蓝芽网络接口,否则HCI的建构策略必须仰赖现有的ASSP功能。目前ASSP共有两大类:一类只建构联机控制器功能,另一类包含联机控制器与连接管理器两者。这两类组件的主要差异在于后者内建一个RISC处理器,用于建构连接管理器与HCI功能。


至于应选择哪一类的组件,则需要权衡两者的优劣利弊。以下以一个实际范例来说明如何使用可编程逻辑组件解决HCI接口问题。


开发实际产品方案的挑战

要将蓝芽技术以低成本方式整合到系统层级的设计中,必须面对下列的挑战:


*不断变迁的规格标准:虽然蓝芽规格的核心协议已经成熟稳定,但高阶协议与服务(例如IP通讯)的对应方式仍然在不断变动。


*ASSP仍有不少设计错误:目前使用的大多数ASSP都还相当新,系统设计人员必须设法因应这些ASSP的设计缺陷。


*新兴的产品应用模型:在大多数情况下,蓝芽技术目前还过于昂贵,不适合原先设定的目标市场(取代现有缆线)。这个因素再加上未来「重量级应用产品」的吸引力,迫使蓝芽技术进入尚待定义的应用领域。


很明显的,目前我们最需要的是一套弹性化技术,让系统设计人员能够快速开发蓝芽方案,并同时因应一个不断变动的应用环境。而使用可编程逻辑组件来连接上述两类蓝芽ASSP,正可以满足这样的需求。


联机控制器+连接管理器ASSP

选择已经具备联机控制器与连接管理器功能的ASSP组件,可以让您在设计之初就享有相当完整的功能。这些组件已经包含一个RISC处理器以及一个以上预先定义好的HCI传输接口。此外,制造厂商还提供HCI与连接管理器韧体。使用这些组件,系统层级的整合只要将HCI传输接口连接到主机就可以。如果主机系统已经有现成的USB或UART端口,整个工程根本不需要使用额外的硬件,而且这些端口通常已经整合到系统的核心逻辑芯片组之中。图四显示一个采用这种「零接合」(Zero-glue)接口的系统。


蓝芽次系统的三大组件为:


*RF-射频组件


*BB-基频处理器


*μC-微控制器


在许多情况下,这种设计方式可能因为下列原因而无法进行:


*主机系统没有可连接到蓝芽次系统的UART或USB端口。


*主机系统没有足够的USB或UART端口可供使用,这可能因为主机的端口数目有限,或因为该应用装置所需的端口数目过高。


*主机系统缺乏能够支持全速蓝芽数据传输率的串行端口。为了支持最高的系统效能,蓝芽ASSP已经包含数据传输率高达1.5 Mbps的UART。


*标准端口接口的ASSP没有专门针对蓝芽协议的处理而设计,因此当这些ASSP以蓝芽通讯速率运作时,可能会消耗大量的处理器资源。例如,中断向量的处理可能会耗损过多的主机处理器资源。


可编程逻辑组件可用于建构上述情况所需的接口硬件。在深层内嵌的应用装置中,这个接口通常是位于USB、UART核心与系统内嵌处理器的局部总线之间。虽然可编程逻辑组件可用于建构USB或UART传输接口,但UART接口的传输协议较为简单,因此成本较为低廉,系统效能也比较好。


建构UART接口比较节省成本,因为所需的硬件资源较少。而且UART采用单一模式运作,数据都是八位,没有同位检查Parity),采用一个停止位Stop Bit),因此整个建构工程相当简单,而且运作速度很快。除此之外,UART接口和USB、RS232接口不同的是:当UART传输层建构在FPGA之中时,不需要外接移位器Level Shifter)或收发器。


此外,可编程逻辑可以迅速针对目标应用装置开发出最适合的接口方案,因此可发挥较佳的系统效能。(图五)为一个UART示意图,该UART具备DMA及HCI讯框传输状态机逻辑。


这种方法可以降低收发讯号时处理中断服务的资源消耗,提升系统效能。而且这种设计与传统UART所不同的是:传统UART芯片上的小型FIFO在每次满载或清空时,都会产生一个中断向量,但新型设计只有在传送或接收一个完整的HCI讯框之后,才会产生中断向量。这种功能是透过特定应用逻辑来解读HCI标头的讯框尺寸信息,以适当设定DMA逻辑。此外,其逻辑电路也可以检查并确保讯框的适当同步化。


由于主机处理中断向量的负荷降低,因此处理器有多余的效能可用来处理其他加值功能。目前市面上有各式各样的标准界面与内存控制器IP,因此可编程逻辑组件还可用来建构其他的核心功能。


只具备联机控制器功能的ASSP

虽然使用只具备联机控制器逻辑的ASSP,必须进行额外的设计才能成为完整的产品方案,但这种设计用在深层内嵌系统时,可以达到更紧密的整合度与更低的系统成本。如果蓝芽网络接口与主机位于相同的电路板,就不需要用到HCI传输层,因此控制基频处理与无线电功能的接口,以及用来传输数据讯框的接口,都是直接连接到主机处理器。因为这些接口通常会随着所用的ASSP而不同,因此可编程逻辑组件可以透过低廉的成本,将这些接口连接到主机处理器总线,或PCI之类的I/O总线。(图六)显示另一种使用可编程逻辑组件整合其他核心逻辑功能的范例。


在这样的设计中,主机CPU必须负担所有的协议处理功能,如此一来,系统就不需要使用原先专门处理联机管理功能的RISC处理器与非挥发性内存,这可以使系统成本进一步降低。透过这样的架构,蓝芽软件堆栈将可进一步扁平化,成为(图七)所示的组态。


应用范例:由UART转接PCI


使用可编程逻辑组件开发高速的UART─PCI桥接接口,非常适合用来将蓝芽通讯配备整合到旧式系统中,使用FPGA来进行设计,可以立即加快FIFO缓冲器的速度,而且这些缓冲器可以重新设定深度与宽度,以因应更快的数据传输率、更大的字宽或自定义字宽。图八显示一个单信道UART─PCI网桥的功能组件组态。由于目前市面上有很多专为FPGA设计的标准界面及内存控制器IP,因此可以用同样的方式开发类似的衍生设计,建构各式各样的核心逻辑功能。(图八)也示范一些额外功能的整合例如SDRAM控制器、自定义逻辑等等)。这种设计多样性可以让您的工程投资发挥持久力与竞争力,让您快速有效地改良现有设计,抢先竞争对手将产品打入新市场区间。


可编程逻辑是整合蓝芽技术至内嵌系统的理想方案,这种方式可发挥多重效益,加快产品的上市速度。首先,市面上有多种不同的IP可供选用,因此可让您立即掌握主要的设计组件。第二点,这些可编程逻辑方案可让系统设计师以最快的速度完成一套功能完整的硬件平台。第三点,厂商在软件开发阶段就可以迅速推出少量的产品进行实际测试及改良。


软件开发是整合蓝芽技术的过程中最大的的问题之一,但由于可编程逻辑设计能够快速完成硬件开发,因此在这个领域具有相当的优势。如果再将可编程逻辑的设计弹性考虑在内,则发挥的效益更大。举例来说,通常设计人员都希望能重复利用现有的驱动程序与韧体。透过可编程逻辑组件的使用,系统设计师可以在刚开始时设计接口逻辑使用标准的驱动程序,之后再逐步更新接口逻辑以提升效能。尤其有时设计必须采用其他厂商所开发的韧体,因为设计人员对这些韧体不熟悉,或这些韧体并不完全适合目标应用环境,这时可编程逻辑组件的弹性就特别重要。


产品开发的本质并不是一种百分之百精确的科学,软硬件设计的错误、不兼容性与改良修正都是无法避免的事实。由于可编程逻辑组件可以重复编程,因此在这方面具有重要的优势,正在量产中的产品可以沿用原先的硬件随时进行错误修补,即使是已经安装的系统也可进行改版。这样的特性可以保持生产线的顺畅,并大幅降低库存零件过时的风险,同时也可避免昂贵的现场零件更换。(本文作者任职于Xilinx策略应用部门资深工程师)


相关文章
全面保障硬体安全
PLD克服高常用系统的设计挑战
持续演进的汽车ECU设计
高容量PLD元件的模组架构设计
在高效能DSP应用中使用PLD
comments powered by Disqus
相关讨论
  相关新闻
» 爱德万测试与东丽签订Micro LED显示屏制造战略夥伴关系
» 格斯科技携手生态系夥伴产学合作 推出油电转纯电示范车
» Arm:因应AI永无止尽的能源需求 推动AI资料中心工作负载
» 英特尔晶圆代工完成商用高数值孔径极紫外光微影设备组装
» 联发科技签署绿电合约 大步迈向净零里程碑


刊登廣告 新聞信箱 读者信箱 著作權聲明 隱私權聲明 本站介紹

Copyright ©1999-2024 远播信息股份有限公司版权所有 Powered by O3  v3.20.1.HK84P5ZFZ78STACUK4
地址:台北数位产业园区(digiBlock Taipei) 103台北市大同区承德路三段287-2号A栋204室
电话 (02)2585-5526 #0 转接至总机 /  E-Mail: webmaster@ctimes.com.tw