版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
放弃Decawave保留更改产品规格,恕不另行通知。至于以功能和规范可能发生的变化将在产品的具体勘误表或本文件的新版本发布。建议客户检查Decawave对这款产品的更新©2016DecawaveDecawave产品未被用于安全关键型应用(如生命支持)使用,其中Decawave产品会合理预期导致严重的人身或。Decawave客户以这样的方式使用或销售Decawave产品在自己的风险这样做完全,并同意全额赔偿Decawave及其人因在此类安全关键应用中使用Decawave产品的ESD2此适用于由Decawave(“Decawave”)提供的APIDW1000源代码和“DecaRanging”示例应用程序的源代码(统称为“Decawave软件”)。,接受交付或使用Decawave软件表示您同意本免责的条款。如果你不与本免责中的条款不,接受交付或使用Decawave软件。Decawave软件仅旨在帮助您开发,纳入Decawave半导体产品的系统。您理解并同意,您仍然有责任使用独立的分析,评价和判断在设计你的系统和产品。使用方法DECAWAVE软件的全部或部分您的系统和产品的决定权完全DECAWAVE软件提供“ASIS”。DECAWAVE不作任何保证或陈述,关于DECAWAVE软件或DECAWAVE软件,明示的使用,暗示或法定的,包括准确性和完整性。DECAWAVE否认所有权和任何担保适用于特定用途,并就DECAWAVE软件或其使用任何第知识的权利适销性,任何暗示的保证。DECAWAVE概不负责,并须就此不辩护或你方赔偿针对任何第索赔,涉及到或者是基于DECAWAVE软件或DECAWAVE半导体技术的DECAWAVE软件的使用。在任何情况下DECAWAVE都不对任何实际的,特殊的,损失的普适性替代产品或服务;丧失使用,数据或利润;或业务中断),损失或费用导致的第索赔。这些限制将不分ACTION的形式不论是根据规约APPLY,您被在您的最终产品中使用Decawave软件以及修改Decawave软件在你的终端产品的发展。然而,任何其他,明示或暗示,反言或以其他方式任何其他DECAWAVE知识,更没有任何第技术或,。 ,。Decawave半导体产品或Decawave
件全权负责,尽管可以通过Decawave提供的任何应用程序相关的信息或支持。Decawave保留在任何时间进行更正,补充,改进和其它改变其软件的权利。邮寄地址:- 3(C)22/04/2015由Decawave 4介绍..................................................................................................................................................... 构建代码............................................... 运行代码............................................... 概述................................................. .................................................. DECARANGING码结构的详细说明 .................................... VIRTUALCOM港口/CHEETAHANDUSB接口.................................................................................................... -CODE。 dEVICEd河-DW1000dEVICE大号埃颂.................................................................................................... NSTANCE颂 PPLICATIO ....................... F较旧的结 测距算法 .................................................. dECA[RANGING“小号ŤAG/一个NCHORŤWO-单向测距算 ESSAGESINUSEDdECA[RANGING小号ŤAG/NCHORŤWO-单向测距.................................................. FrameŤ我DJUSTMENTS FrameŤransmit-T我 Frame[Receive-T我 CODE/SYSTEM问题 一个 执行操作流程 .................................................. 一世NSTANCE状态机 5 PCUSBTOSPI协议处理 INED............................................................................................. PROTOCOLTOw^[READDW1000SPI数 参考书目 文档历史记录 ......................... 主要变化................................................ [R闻稿 [R闻稿 更多信息................................................ ......................... 一世”DecaRanging(PC)的源代码指南”Decawave的双向测距应用源代码‘DecaRanging’为PC演示。配套文件:“EVK1000用户指南”DW1000DecaRanging这个文档讨论了DecaRanging应用程序的源代码,覆盖该软件的结构和测距演示应用程序特别被计算出的范8-本文件涉及:“DecaRangingMP版本3.03”应用程序版本和“DW1000设备驱动程序版本00"年2月16日 UILDINGTHECVisualC++2010ExpressEdition [RunningtheC机上运行DecaRanging.exe可从 Ø1DecaRanging的层状结构,赋予与每个层和在该层提供的功能的简要描述相关联的DW1000SPIDecaRangingPCDW1000ICDW1000USB-EVB1000ARMUSBSPI控制器来操作,传递DecaRangingPC应用SPI/从DW1000IC。请参阅EVK1000用户手册记录通过SPI接口头-中EVK1000用户手册文档中如何为DW1000直接SPI配置EVB1000细节。该DecaRangingPCUSB至SPIDW1000IC。这是早期版本支持DecaRanging1USBSPI转换器是总相位的市售品,Inc.该Decawave的USB至SPI转换器是在EVB1000DecaRanging应用中,SPI命令被格式化并通过虚拟COM端口驱动器从PCDecaRanging应用程序发送(deca_vcspi.c)通过USB接口对EVB1000的ARM。在那里,ARM的USB-SPI应用程序令和谈话的DW1000虽然SPI接口。从总相公司的猎豹USB至SPI转换器提供了PC上的SPI接口功能。猎豹附带了需要安装使用产品前,一个DLL需要在运行时和USB驱动程序cheetah.c文件内置到应用程序。请参阅总相位文档了解信息,在 -deca_spi.copenspi()closespi()writetospi()readfromspi()这些调用适当的猎豹SPI或虚拟COM端口驱动程序的功能。-1猎豹SPI主机适配器-这些都可以从 /products/cheetah_spi/为USD$9”实例代码(instance.c)提供一种简单的测距的演示应用程序。这种情况下的代码位于其中MAC通常驻留。在制定测距示范,展示范围和DW1000的表现权宜之计,测距演示应用程序实现了直接在DW1000驱动程序API之上。测距演示应用程序是通过在功能状态机实现testapprun()从函数调用instance_run(),这是主要的入口点运行的实例代码。实例在不同的模式下运行根据设定在应用层的作用的配置(器,或锚)。模式刚刚接收消息并经由GUI应用层报告它们接收。和锚模式为一对,以在两个单元之间提供双向测最初,处于发现阶段,其中它发送包含它自己的地址,之后将其来自锚定的测距发起响应一个闪烁消息。如果没有得到一个它等待再次闪烁之前一段时间(1秒默认值)。器将任何闪烁。当选择锚模式中,用户将选择它希望与配对,然后将锚将等待来自该标记的闪烁消息的标记。然后,锚将与标记对当它从它获得的闪烁消息,并发送测距的初始信息从发现阶段退出和进入测距阶段。图2的双向的排列和一般操作范围由实现DecaRanging应用。部分6更详细地描述包括交换的消听听轮 么 锚 2:双向测距10
眨眨眨眨眨眨周期性闪烁, 并发送所计算出的飞行时 最锚标记之前睡明年投 发送另一个投图3一旦锚固进入测距相位它接通其和无限期地等待轮询消息。发送轮询消息,然后等待来自锚,在此之后它发送一个最终消息的响应消息。在这个交换结束锚计算范围的,并发送测距报告到供其显示,包括在锚固的下一个响应消息。可能不需要在这取决于发起端是否需要知道所产生的范围内实际执行该报告。如果锚响应未接收到超时并再次发送轮询消息。部分6更详细地描述包括交换的消息的格式和进行的计算的测距算法。作为真正的中断处理通过猎豹或虚拟COM端口驱动,所以是不可能的dwt_isr()函数,而不是从所谓的instance_run()基本上实现通过轮询“RX帧中接收的”或“TX帧发送”设备接口。在移植到微控制器,坐在这种情况下电平以上是窗口的GUI应用程序,它提供了部分描述的用户界面2.5以下。读者可以直接在文件中的代码instance.c和 mon.c该层的细节。文件instance_log.c包含用于记录接收 WindowsGUI应用程序(decaranging.cpp)DecaRanging存在如下情况:状态行显示飞行时间(TO)和距离的估计的时间的主窗口。主窗口包括控制面板,用于暂停和恢复操作,选择,锚和听者的作用和配置其他参数。子菜单允许寄存器,累加器(道响应曲线图)的显示,定时设置,日志文件使能等估板(EVK1000)的概述,并且,描述了如何安装和操作DecaRanging应用。deca_util.cDW1000该DW100040位值,最低阶位具有为IEEE802.15.4a标准时间戳建议对准1/128499.2MHz时钟周期。对这些在WindowsDecaRanging应用操作使用由VC++和现代的台式电脑CPU所支持的64位本机的Int64。在更温和尺寸嵌入式微处理器的实际测距应用它可能不是必需的,因为具有适度的响应时间的完整往返可以326440位的数字来操作,且其中没有的话,左移丢弃一些低序位的一般不会1DecaRanging应用程序源代码的文件夹结构。读者可1DecaRanging夹简要描述; DW1000各种外部和DW外设[Ranging本节介绍DecaRanging范围演示应用程序所使用的测距算法。相较于一些早期版本DecaRanging演示,发送寻址到目标锚定轮询消息,并发送时间,TP。侦听响应消息。如果没有响应一段时间后到达的将超时并重新发送投票。锚给它一个轮询消息。当锚收到注意到接收时间TRP,并发送一个响应消息发送回所述,并其发送时间TSR。当接收到响应消息它接收时间TRR并设置未来派的最终响应消息的T时间,(W0的一个特征),它发起的最后消息的延迟发送到锚之前嵌入此时间在邮件中。它还会从以前的测距交换走TOF和显示的距离。所述锚接收到该最终响应消息(在TRF)范围。Ť1轮TRR-TSP;ŤREPLY1TSR-TRP;Ťround2TRF-TSR;ŤREPLY2TSF-TRR应当的是,对于小的范围内,所接收的信号电平的偏差校正必须应用到计算出的原始范围。可在11“在TWR方案错误的来源”中找到关于这个偏差修正的细节。在DecaRanging范围演示锚将计算出飞行时间发送给给它的东西来显示。这个飞行时间将在接下来的响应消息中发送。图4示出了该交换,并给出在所述范围的计算中使用的。ŤŤ1时 Ť支锚 Ť=
Ť1×Tround2ŤREPLY1Ť1Tround2TREPLY1在此之后,锚接通其再次以等待下一个轮询消息,而同时计算关闭延迟周期到下一个测五个消息在/锚双在发现阶(眨眼和发起消息)和个在测距(轮询息,响应,)的范围,二使用,如图图。EERLS的消IO/EC-()基于EE4格式被标时WB。在演示中使用的息的格式在下给出。General一般消息格式为数据帧中的IEEE802.15.4标准的编码。图5显示了这种格式。两个字节帧控制八位字节是用于DecaRanging应用恒定的,因为它总是使用的数据帧用8字节(64位)的源和目的地地址,和一16位的PANID(0xDECA)。唯一的例外是,其中所述的闪烁信息6.2.2以下。在实际的802.15.4网络中,PANID可能被协商为与网络相关联的一部分,或者它可能是基于所述应用程序的定义的常量。 5至 及以个字 个字2帧控制PAN的的写
0123位4位5位67位8 PEND 0位0 00 数据帧 1164 图5256IEEE的源和目的地地址是唯一地编程到每个设备(期间EVB1000制造)的64位数字。这可以通过应用程序被用来给每个DW1000基础的产品一个唯一的地址。所述框架的所述测距消息部分的含量取决于其中三个测距消息是的。这些都显示在图
5特殊眨眼消息帧格式用于眨眼消息的发送功能。眨眼帧被简单地没有任何额外的应用程序有效载荷级发送,即,闪烁帧的应用数据字段长度是零。其结果是一个12个八位组的眨眼帧。最小眨眼的编码中,6。1 1个字节8个字 2个字序列。民64位代码ID图6:12帧缓冲指数 111个字节12参51个字节12参5为-帧缓冲指数
22 27日至 32至1155个字 5个字嵌入式预测最后X时间标记- 12221222---测距发起消 图7Response所述响应消息是由所述锚定响应于从所述的轮询消息发送。响应消息的单个八位字节就足够了,但是允许一些未来扩展方式的更复杂的编码已被列入。表2列出并描述了响应消息内的各个字段。值1这个八位位组为0x10标识此作为锚响应控制的活23这个两个字节的参数是闲置活动0×02值59-这五八位位组是从以前的测距交换差测距。40位最终的消息由接收所述锚定的响应消息后发送。最后消息的长度是16个八位位组。表3列出并介绍了值126-TX时间戳标记的查询信息,即精确时间7-6RX时间戳的响应轮询消息,即,时间12-6TX时间戳,即,在精确的时间的最后的消息嵌入TX最后消息包括字段是它自己的发送时间戳。微处理器需要预先计算此和启动的最后消息的发送之前将其嵌入在消息缓冲器。假设它已经计算出的D,答复时间编程作为延迟发送时间该消息,嵌入时间然后只是T掩蔽以清除下9位,再加上X天线的延迟值。DecaRanging源代码,这个计算是在文件中完成instance.cTA_TXFINAL_WAIT_SEND74值10x2023-这16位字段可以通过可以用来改变使用指定的16位地址64值4-16位位字段给出了锚响应时间在以下范围中使用6-该16位的位字段给出响应时间在以下范围中使用成功的测距依靠系统能够精确地确定消息的TX和RX倍,因为它们离开一个天线,而在另一天线到达上。这使TX和RX倍显著在IEEE802.15.4定义为“测距标记(RMARKER):物理层(PHY)报头的第一比特的第一个超宽带(UWB)脉冲(PHR)的测距帧(RFRAME)”。时间戳应反映在该 RMARKERTXTX时间戳,并且,减去从RX时间戳RX天线延迟的数字硬件。DecaRanging用户设置的主网页控制面板上的天线的延迟。指定的值被TXRX天线之间的延迟等分。实验设置,直到报告距离平均为所测量的距离。需要重新调整天线延时在节中讨论5.1以下。DW1000RMARKER如果TX_ANTD寄存器值被编程将被自动添加到在所述寄存器中的TX时间戳,并且没有软件调整在DW1000,接收时间戳最初由作为表示接收到的RMARKER一个适当的检测数字电路,和再求算法18精确地,最后的值被减去配置RX天线的延迟值来调整。这最终调整RX时间戳保存在寄存器中,软件不进行任何进一步的调整到来的从IC寄存器时间。CSystem天线延迟可能需要改变,如果操作模式被改变,即改变的信道频率或PRF可能意味着需要改变上/下该PRF设置改变时,DecaRanging16MHz64MHzPRF的值单独注意:如果该天线延迟值过大时,它会导致负RTD计算结果(在内部的软件),并且这些RTD值被丢弃为坏和没有RTD/距离测量将被报告。在使用该系统,如果通信似乎是工作,(即TX和RX信息计数显示没有错误交互),但时间的飞行状态行没有更新,那么这可能是因为天线延迟设置为太大的值。这可以通过清除天线延零进行检查。调谐天线延迟为正确的值是尝试和错误的过程,调整天线延迟直到报告的平均距离用卷尺测量的真实天线到天线距离相匹配。19本节的目的是指导,因为它运行时,读这篇文章,通过查看代码,同时下面应该给读者的软件控制操作的基本方式有很好的理解该软件的执行流程流经的层来实现发送和接收。这种理解应该是整合/移植测距功能到其他平台的。这里描述的要有效地使用此,建议读者在同一时间浏览源代码阅读本说明,并找到在源代码中提到的每个项目,并按照流程为。指挥它们的传输,通过命令接收(RX)TXRXTXRX时实例代码使用函数调用testapprun()下面段落该实例状态机的执行的初始化从通过测距交换的TX和RX操作流程。这主要是通过看端的操作来完成。它开始通过发送眨眼消息,并等待开始测距交换之前接收测距发起消息。然后,它会发送一个投票消息,等待响应,然后发送最后一条消息来完成测距交换。锚过渡不在这里详细讨论,但在阅读读者下面的执行流程的描述后,应装备精良,以同样遵循执行的该tae_n()功能是该实例的主要功能,可周期性地运行或作为待处理的中断的结果。它检查是否有需要处理,并调用任何悬而未决的tetapn()函数来处理它们。它还消息/计数器,如果任何计时器有检查过期。下面的段落描述了tetpn()TE机详细:Initialtestapprun()“开关(>e)”语句在函数的开始。初始状态“ ”2执行初始化,并且确定下一个状态取决于是否运行“模式”是选择或锚操作。让我们假设它是一个,并按照下一个状态的执行。在一个的情况下,我们要发送眨消息,以允许锚定来发现标记,然后发起测距交换,因此,状态“->e”改为“D”。
20在该州”D”我们要发送的眨消息,所以,首先我们建立了消息帧的控制数据,然后填充的地址的消息的其余部分。发送后眨消息(使用具有预期响应参数集直接发送选项),状态机状态将被改变为“F”,其中等待帧传输的确认。=在开始传输之前,我们还可以配置对时延和RX帧等待超时接收转。延迟又由指定inst->rnginitW4Rdelay_syRXinstfwtoTimeB_sy。的延迟和超时被计算为应用程序的初始instancesetreplydelay()作为发送命令有DWT_RESPONSE_EXPECTED设置将自动开启,然后,如果没有接收到消息超时。超时后会去空闲模式和等待blink_period_ms重新开始闪烁(这是在做“TA_SLEEP_DONE”状态)。在该州”TA_TXPOLL_WAIT_SEND”我们要发送的查询信息,所以,首先我们设定了目的地地址,然后我们调用函数setupmacframedata(),其中规定了所有其它参数/轮询消息的字节。testapprun()状态机状态设置为“TA_TX_WAIT_CONF”,并作为该国已多用“instpreviousState注:在这种情况下,如果一个发送查询信息,被立即发送此消息。然而,在锚响应的情况下(状态“TA_TXRESPONSE_WAIT_SEND”这里没有记录),以及的最后消息(状态“TA_TXFINAL_WAIT_SEND”如到这一点,我们使用延迟发送。这是通过选择“delayedTx”第二个参数的功能instancesendpacket()。我们还配置和启用RX帧等待超时,所以,如果反应不来,将超时并在重新开始测距这是下一个测距交换开始之前被称为(即之前的下一个轮询消息的发送)被发送或下一个闪烁消息之前所述 的状态。在该州”TA_TX_WAIT_CONF”我们期待着该消息传输已完成的确认。当IC完成传输的“TX完成”状态位被产生,然后由TX回调函数处理的(设备驱动器的中断程序拾取instance_txcallback())。实例,成功传送的确认后,将并保存TX时间,然后继续下一个状态(TA_RXE_WAIT)以接通并等待响应消息。因此,下一个状态设置为“inst->testAppState=TA_RXE_WAIT”8.1.6对于这是什么一样的细节。TA_RX_WAIT_DATA在那里等待处理任何接收的消息或将超时。由于会开启自动(因为我们有DWT_RESPONSE_EXPECTEDTX命令的一部分),TA_RX_WAIT_DATA等待来自锚或超时预期的响应消息。我们使用自动延迟打开,因为我们知道确切的时间响应使用延时传送发送。它是可能的(并且理想的功率效率)以延迟打开,直到响应预期之前。接下来的状态是:“inst->testAppState=TA_RXE_WAIT_DATA”。注意:如果延迟发送失败(即,由于开始为时已晚),那么恢复禁用收发器和将被在此状态下正状态“TA_RX_WAIT_DATA”是很长,因为它处理所有预期RX消息。这并不是很稳定的行为。应真的只期望从锚,(反之亦然)预期的消息。我们“开关(信息)”,并且处理消息到达由接收的作为信号发送。如果一个很好的框架已收到(SIG_RX_OKAY)MAC有效载荷数据的第一字节(IEEEMAC帧头字节)和“开关(rxmsg->messageData[FCODE])”。FCODEDecaRangingDecawave定义的标识符;7对于看这里讨论的正在等待锚的响应或测距发起消息的点,所以我们会期待CE匹配“P“要么”T”在发现阶段的时候。在这段代码中,我们注意到该消息的接收时间标记“e”,计算“dTe”这是当我们要发送的最后消息,完成测距交换。在这种情况下,我们的下一个(和随后的状态)设置为:insttestAppStateTA_TXFINAL_WAIT_SEND状态 DW1000触发帧等待超件。该RXIC3。当超时发生时,标insttestAppStateTA_TXE_WAIT;instnextState
inst->testAppState=inst->在这种状态下“TA_TXE_WAIT”,该将更新从锚的报告所显示的范围,并继续TA_SLEEP_DONE状态,如果下一帧传输是一个眨眼或。如果下一帧发送是最后消息时,将继续到状态在该州”TA_TXFINAL_WAIT_SEND”我们要发送的最后一条消息最后的消息包括嵌入式的轮询消息“的TX时间戳inst->tagPollTxTime”与锚的RX时间戳沿着响应消“inst->txantennaDelay”。所以,现在最后的消息是由与我们所说的“faa()”功能,以所述消息结构的其余部分。最终的消息在特定的时间相对于发送到消息拉客的响应的到达,这是使用延迟发送完成后,通过选择“x”第二个参数的功能“kt)”。我们通过设置控制变量完成处理“inst->previousState=TA_TXFINAL_WAIT_SEND”来表示,我们来自何方,我们设置了“inst->testAppState=TA_TX_WAIT_CONF”选择这个作为新状态的下一次调用“testapprun()”状态:TA_TX_WAIT_CONF(为最终消
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论