在医疗过程中要取出病患喉咙里的异物或插入呼吸管医生往往得使用所谓的喉镜。喉镜是一种检视病患喉咙的仪器由一个手柄和一个压舌板组成.如图1所示。为便于检查喉咙.这种仪器的形状必须符合人体工学而且易于操作。使用时医生把仪器插入病患口腔然后抬起下端并轻柔地往上推进。这种方法可能会对病患的门牙造成伤害引起一些并发症。此外大约有20%的病患会出现呼吸困难的意外现象.因而无法使用仪器。

解决这些问题的一个方案是在压舌板的顶端嵌入一个微型相机,以扩大喉镜的视野范围(图2)。目前市面上的这类系统中.微型相机是经由电缆与监视器相连接的.而这种电缆对于手术室或急救车而言的确是一大障碍。鉴于此,喉镜和相机之间若采用无线连接将会使操作更方便。要保证图像质量且避免失真,传输应该以数字方式进行。为了便于医生正确诊断目标物的移动应该无延迟地出现在屏幕上,这意味着视频信号不一定会通过压缩电路或大量的层堆叠。由于这类仪器要求大带宽(对与NTSC质量的图像为166Mbit/s)和近场操作距离(1-10m).所以UWB正是理想的传输媒介。

相机架构
视频传感器是CMOS类型的。为了补偿传输线路上数据率的波动并让视频帧可以重复传输图像在传送给UWBMAC之前将被捕获在帧内存储。UWBMAC和微控制器之间一条紧密连接的微控制器总线(Amba主总线)可让大部分UWB功能(比如信标产生)由软件支持。这个UWB单元包含了UWB收发器(UWBPHY和UWB流媒体访问控制器。
由于这个相机单元由电池供电.故必须尽量把功耗降至最小.以保证每次电池充电后系统的工作时间至少达2个小时。电池充电系统也由微控制器控制。
UWB流MAC的主要原理
UWB网络管理所需的用户数据(主要是视频内容)和图表都保存在存储器中。该存储器可以置于MACASJC内部也可以位于MAC器件之外。UWBMAC利用同步数据流.把来自数据源的连续数据流传送到目的地(显示器)。要达此目的业界开发出一种结合了快速用户数据路径和调度器的概念。快速用户数据路径按照ECMA-368标准所定义的UWB协议对数据流进行格式化而调度器则由固件控制,根据UWBMAC时序要求把数据包发送到UWBPHY。这样一来在相机端的MAC和显示器端的MAC之间的非时间关键功能如网络管理和资源协调等,都可在微控制器的固件中执行。
快速用户数据路径和调度器需要以硬件执行。固件除了提供典型的MAC层功能性之外.还可为点到点传输提供简单的链路控制功能性,比如断开与显示器的连接以及规定所需的带宽。
固件信标处理
UWB传输会被组织成为多个超帧(superframe)而每一个超帧也分为信标周期(BeaeonPerlod,Bp)和有效载荷。信标和有效载荷占用了超帧256个媒体访问时隙。
从信标周期结束开始固件会处理接收到的信标.并计算下一个超帧中自己的信标。
图3显示了设备A和B在两个超帧期间的信标处理.图中水平轴为从左到右的时间线。两个设备都会在每个超帧的信标周期发送信标。在超帧[n-1]的有效载荷被发送期间设备A的固件就会处理由设备B所发送的信标信息单元(BeacoNInformationElement.IE)。当超帧[n-1]完成发送时,固件也完成了设备日的信息并在超帧[n]中设备A的信标信息单元内出现。

由于MAC程序可被视为一个实时线程(thread),因此与应用的通信使用了一个请求和响应队列。
图4所示为设备A和B之间的一个通信周期。设备A的应用程序发出请求然后其固件在SF[N-1]内产生信标眨请求.接着.该请求便在SF[N]的BP内被发送。设备B接收到这个信标并计算它在数据周期SF[n]的答案。最后设备A就可以解释(interpret)SF[n+1]接收到的信标。
实现方案
概述
由于这种设备是电池供电的因此功耗是一个大问题。如“相机架构“一节所述MAC的架构需要调度器和微控制器之间紧密连接。CMOS传感器由JZC总线控制,而电池管理则需要A/D转换器和脉宽调制(PWM)。由于所有东西都得集中在喉镜的手柄中故部件数目应该减至最少。这样看来标准单元ASIC是一个明显的选择不过,大批量并不一定意味着低开发成本。鉴于这些原因,爱特梅尔基于ARM的微控制器CAP带有掩膜可编程定制逻辑综合了高集成度、低一次性开支(NRE)、低部件成本和低功耗,正是这种应用的理想选择。
下面一节将介绍适合爱特梅尔CAp架构的UWBMAC实现方案,这款UWBMAC采用了用户金属可编程模块实现,通过一个6层AHB阵列与ARM9AHB连接。为了充分利用价廉的大容量存储器,数据和UWB管理(见UWB流MAC的主要原理一节)所用的RAM位于CAP外部,通过EBI接口连接。对此.CAP9架构的多层A日B阵列可提供极好的支持它允许AHB总线主控设备在金属可编程模块中实现。当经由外部总线接口(EBI)从外部的大容量存储器存取数据时.MAC就成为总线主设备.对于不能延时存取的存储器,比如信标帧产生,便会使用CAP上的SRAM。
图5所示为UWBMAC架构的简图。

图中上半部分是MAC-PHY接口(MPI)与CAP的AMBA先进高性能总线(AHB)之间的快速数据路径。外部存储器查找通过RX和仪端点(EndPint)实现。每一个端点都包含一个地址指针用以确定AHB主设备所需的起始地址.终止地址和存储器读写位置。每一个表或存储区域都需要一个端点。MACPHY接口(MPI)是到UWB物理层的接口,符合任CMA-369标准。
TX数据流
TX数据流(图6)是将所有帧从应用发送到PH丫的高速数据路径。这个数据源可能是AHB寻址空间的存储空间或单个寄存器。AHB主设备的作用类似于OMA,在收到请求后仅AHB主设备便会从存储器缓冲区读取数据并传送给MPI接口。当总线获得允许主设备就开始进行连续有序的传送。突发流量大小、起始地址方向和包络边界(wrapboundary)都通过AHB主设备配置接口由秋端点提供。若RXAHB主设备和TXAHB主设备都需要传送数据,TXAHB主设备拥有优先权。秋端点模块根据自己的配置情况和存储段逻辑所提供的信息对MAC帧头字段进行更新。MPI接口负责根据调度器更新PHY报文头(header)字段(信息包含在MAC和PHY头字段中)。报文头信息由状态/报文头(Status/Beader)RAM提供后者是CAP紧密连接的存储模块的一部分。此外,也可以无需经过报文头生成过程,而报文头直接由来自存储器的用户数据提供。
这个端点会实现与调度器(schedujer)的握手接口.而状态/报文头(Status/header)RAM则存储多个端点的状态和配置信息。如果调度器请求一个帧,FSM便开始从RAM往AHB主设备加载配置然后加载状态和配置寄存器。如果由软件设置.该端点此时会把帧头从RAM发送到TXSTREAM总线。接着.FSM启动AHB主设备,把数据从外部存储器传送到TXSTREAM总线。当发送操作成功结束时,调度器会发出一个成功的命令这时.FSM会把状态信息写回RAM。如果帧发送不成功便会发出一个错误命令来阻止FSM写回状态信息。如果采用B-ACK调度器可能在成功或错误命令被发送之前就发送请求命令。
RX数据流
由图7可见RX数据流是由PHY接收并发送给应用的所有帧的高速数据路径。当帧RX.TX逻辑(FRI)从PHY接收到一个帧时.便会将其存储在FRT的缓冲器中,直到它确定该帧的地址;而CRC32校验码也匹配。这时.FRT就会通知调度器有新帧到来。RX端点负责配置RXAHB主设备然后数据会通过AHB主设备从FRT缓冲器发送到存储器空间(或AHB地址空间内的寄存器)。如果成功RX端点可以在发送数据之前抛弃帧头;或者端点可能完全抛弃接收到的帧。

AMBAAHB主设备负责把RX端点的数据存储到外部存储器中。当总线允许时,主设备便开始连续有序的传送。突发流量的大小、起始地址、方向和包络边界都通过AHB主设备配置接口由RX端点提供.
帧接收发送逻辑(FRT)为RX端点提供帧信息比如UWB寻址、配置和端点状态。当FRT通知有新帧被接收时厂SM便开始搜索匹配的滤波器。如果发现适当的滤波器端点FSM从配置RAM向RXAHB主设备加载AHB配置数据。然后.这个帧会被发送到一个外部存储器而RAM内的RX计数器字段将被更新。另一种方式是端点不搜索适配的滤波器,而由调度器提供固定的端点数目。当帧/链路只以时间来区分时(例如ORP).这种方式是很有用的。这些端点的激活可以与自动搜索和调度器预选无关。只需把帧顺序地存储在EBI数据存储器中便可以重新组装碎片帧.而其中只有第一个帧存储它的帧头。这种重组装工作只有在端点被设置为从单个地址接收帧时才起作用。本设计尚不支持群发端点和无序发送。要完全支持重新组装,需要一个中段存储空间(不论是在内部还是外部)。
帧接收发送逻辑(FRT)
图8为FRT接口的简图利用一个CRC32逻辑在这些帧接收或发送期间实时计算它们的校验和(checksum)。FRT中的FSM从调度器接收命令.并启动RX或侧操作。此外,它还控制发送帧的附加循环冗余校验码(CRC)。FRT-FSM的状态通过FRT状态接口报告给调度器.FRT-FSM与调度器锁步.并由命令行与状态寄存器所控制。
通过FRT接收到的数据会被存储在FRT接口的RX缓冲器中。只有在确定CRC和帧的目标地址有效之后,FRT-FSM才通知RX控制模块新帧已到达。接着RX控制逻辑读取新接收到的帧的帧头并向RX端点输入大小、类型和源地址等信息.而RX端点控制从RX缓冲器读取数据。RX缓冲器中的一个附加位则会示意帧边界同步。
TX数据将根据调度器提供的配置信息被格式化然后数据会存储在TX缓冲器中。TX缓冲器的主要用途是补偿EBI和AHB造成的存储器数据读取延迟。当FRT-FSM发出一个仅操作命令时,TX缓冲器便会向FRT发送数据并在发送期间计算出CRC再附加在数据流之末。
调度器
图9所示为调度器的模块示意图。调度器负责及时修正PHY和快速数据路径(FastUserDataPath)的控制。调度器接收的信息来自网络分配向量(netwok al-location vector,nav)、指令表、时序计算器和定时器等额外模块。时序计算器模块计算帧的大小和调度器请求的持续时间。通过ARM外设总线(APB)可访问寄存器和指令表,在自动模式下.从指令表加载调度器指令。指令表包含了每一个MAS的行为,比如TX或RX操作、突发模式或应答模式。

图10所示为单个MAS帧的发送示图。在发送周期开始时.调度器会发出命令启动该无线设备。软件必须确定帧够小.才有足够的空间留给保护时隙(GuardTime)和短帧间隔(ShortInterFrameSPACjngSIFS)。
图11所示为一个突发交易.两个帧在一个MAS时隙中被发送。这两个帧必须根据速率被帧间间隔(IFS)分开,至于MAS之末的SIFS和保护时隙,则上面的规则同样适用。
图12所示为一个即时应答交易。在交易之后,帧从RX切换到秋接收即时应答(I-ACK)。如果I-ACK成功,在TX端点的帧便会清除掉。如果没有接收到I-ACK.调度器将暂停工作.帧将被标注为未发送。

MAC固件
UWB MAC固件执行三个协议层:链路控制层、MAC层和硬件访问层.
链路控制层
由于固件负责控制实时处理.故消息队列是必需的。消息队列按照循环链表执行而置放(PUt)和取得(Get)操作是独立进行的。链路控制层根据链路控制请求产生一个DRP信息单元(IE)请求。两个设备间的链路有固定的带宽。ORP信息单元(IE)会描述保留的MAS(数据率等),并由MAC层控制。带宽大小取决于MAS数目、数据率、突发模式和应答策略.由于一个MAS内能发送的最大数据率依赖于接收到的信号强度.因此链路层需要调节保留的MAS数目.而链路层之间的通信会通过链路反馈眶完成。
MAC层
MAC层负责资源管理。不同MAC间通过信标彼此通信,接收到的信标被解释并创建一个自有的发送信标。信标周期占用MAP(Beacon period Occupancy MAP)和MAS可用MAP (MAS AvailabilityMAP)必须不断更新及时反映出网络的分配状态。
硬件访问层
该硬件通过寄存器编程来配置。信标通信至少需要一个RX和一个TX端点。RX端点必须接收所有信标帧,而这些信标会被存储在存储器中.因此可由固件处理。由于寄存器被存储器映像.故MAC的配置工作很容易。对于信标接收.需要对存储器中的一个环形缓冲器进行管理.当新的自有信标出现时TX端点O必需被更新.
固件执行
图13阐释了在信标周期结束时该程序是如何执行的。在程序执行之后一个新的自有信标就准备好被发送。固件处理通过信标周期中断(BeaConpe-rIodInterrupt“)的结束与超级帧同步。图14显示了固件的主要任务.分为三部分:信标产生之前(预),信标产生期间和信标产生之后(后)。在信标产生期间接收到的信标将被解释。首先设备状态会被更新:然后请求队列中的新请求就会被加载。设备只有在连接时才产生自己的信标.

固件支持的信息单元
迄今下列的信息单元都可以由固件支持;
*分布式保留协议((DRP)
*DRP效用性
*专用IE(视频链路信息)
*链路反馈
* MAC能力
* PHY能力
*信标周期占用
*探测
总结

本文介绍的原型产品配备了Realtek的RTU7010UWBPHY评估模块。在320MB的原始数据率和3m距离时.位误差率仅为0-1.5%,此外.传输还能够穿透30cm厚的砖墙而不会衰减。由于该设计是专门为医疗应用而开发的,故每年需求量小于1万。这样的批量规模不足以支持定制的无线电设计.所以在生产中采用了Abocom公司基于RTU7010的UWB无线电模块UWY6500。
作者:日ans一JOachimGelke,。anielAlberti,瑞士苏黎世应用科学大学嵌入式系统研究院




