专利名称:一种基于主机处理的电子白板系统的制作方法
技术领域:
本实用新型涉及基于超声定位原理的电子白板系统,具体涉及到基于超声定位的
电子白板系统的实现架构/结构和软硬件实现。
背景技术:
基于超声波定位原理的电子白板系统(包括复印式电子白板和交互式电子白板) 的基本组成(如附图1和2所示)超声波和红外信号发射笔、两个超声波和红外信号接收 器及其测距模块和电子白板软件所在的计算机,接收器之间以及接收器与计算机之间的连 接线,以及白板。其中,本领域技术人员知道,接收器之间以及接收器与计算机之间可以通 过连接线连接也可以通过无线连接。定位的原理是超声波信号和红外信号从发射笔发出, 超声信号以声速在空气中的传播,并被两个超声波和红外信号接收器所接收到,红外信号 以光速从发射笔的位置传播到接收器上的红外接收二极管。相对于超声信号的传播时间, 红外信号在空中的传播时间可以忽略不计,所以红外信号相当于笔和接收器之间的同步信 号,也就是从红外信号接收器能知道超声波的发射时刻。所以根据红外信号提供的超声波 发射时刻,和两个超声波和红外信号接收器所接收到超声信号,就能得到发射笔到两个超 声波和红外信号接收器的距离dl和d2。再利用两个超声波和红外信号接收器之间的已知
间距d3,根据三角定位就能确定笔的精确位置。 现有的接收器是一种"硬接收器"。具体的实现方式如图3所示接收器电路板 上有一个专门用来做测距和定位计算的DSP处理器,接收器向主机发送的是笔尖所在的 位置坐标,接收器硬件被主机识别成一个标准的人机交互接口 (HID—Human Interface Device)设备,主机上的电子白板软件主要就是处理和响应这个HID设备发给应用程序的 各种消息。这种"硬接收器"的系统架构决定了它具有以下特点 1.专门用来做测距和定位计算的DSP处理器大大地增加了整个接收器的硬件成 本; 2.接收器上有限的硬件资源(计算能力和存储单元)限制了算法的实现复杂度。 为了能在接收器硬件上实现超声定位算法,有时不得不牺牲算法的性能,对算法进行必要 的简化。 3.因为超声定位算法是固化在接收器的硬件电路中的,为了提高系统定位精度, 要升级或者更新硬件上的算法,是非常困难的。 一般必须扔掉旧的接收器硬件,而购买全新 的接收器硬件。 超声测距和定位是一个不断发展和完善的技术。特别是最近几年,高精度的定位 算法(时频,相关定位)层出不穷。但是这些新算法的共同特点是计算复杂度越来越大,需 要的计算量和存储空间也越来越多。"硬接收器"的系统架构就阻碍了先进的定位算法在电 子白板系统中的应用进程。
发明内容为了使先进的信号处理算法能迅速应用到电子白板产品中,并且算法的升级换代 又能最大程度地利用原有的硬件资源,减小电子垃圾,本实用新型基于接收器必须和计算 机一起工作的这个特点,提出了一种"软接收器"的系统架构。设计了一种基于主机处理的 电子白板系统,其包括超声波和红外信号发射笔,超声波和红外信号接收器,主机,白板; 其特征在于超声波和红外信号接收器采集2路超声信号和1路红外信号、对这3路信号 进行模拟放大,采样/量化,缓存/同步,形成同步数据流,主机对接收到的同步数据流进行 解包,恢复出2路超声信号和l路红外信号,从而计算确定出笔尖的当前位置。该电子白板 系统还包括ADC,用于对2路超声信号进行幅度采样和量化,和一个红外信号的上升沿检测 器。此外,该电子白板系统还包括软接收器,该软接收器的软件架构有两种方式, 一种是接 收器硬件被主机识别成一个标准的USB设备,该设备必须工作在ISO模式;另一种是定位算 法被集成到了接收器设备驱动中。 如图4所示,在"软接收器"中,原来在接收器硬件上完成的定位计算被挪到了和 接收器相连的计算机/主机上用软件实现,软接收器只是把两路超声信号和一路红外信号 同步地以某种数据流格式传送给主机,这样接收器就只是一个简单的数据采集设备,不再 具有任何计算能力,在"硬接收器"中占很大一块硬件成本的信号处理器也就不需要了 ,所 以整个接收器的硬件成本也就极大地降下来了,是一个真正的"瘦(thin)"接收器。 随着USB接口带宽的不断扩大和USB2. 0在电脑上的普及,通过USB2. 0接口把两 路超声信号和一路红外信号(带宽为96kHz*3*16bits)从接收器实时地传送给应用程序 已经不存在任何问题。随着半导体加工工艺的改进(45nm)和CPU新架构(超线程,双核) 的推出,现有计算机的CPU处理能力也越来越大,完全超越了现有应用程序的需求,形成了 很大MIPS富裕和浪费。我们完全可以利用这部分被闲置的计算资源来对连接在计算机上 "硬接收器"进行瘦身。 对于"软接收器",我们可以在原有接收器硬件的基础上,通过更新主机软件(定位算 法)来提高系统性能。这样企业就可以通过软件下载的方式升级/更新客户的电子白板产品, 并提供其它的增值服务,有利于提高客户对企业的满总度和忠诚度。并且,降低接收器的硬件 成本、使接收器硬件资源能得到重复利用、并能通过软件来更新核心算法,提高系统的性能。
图1基于超声波和红外定位的电子白板系统。 图2基于DSP硬件的电子白板系统的定位示意图。 图3基于DSP的硬接收器的结构/框图,板子上有用于坐标计算的处理器和接口
芯片。因为笔的坐标点,数据量相对较小,对接口芯片的带宽要求比较小。 图4基于主机的软电子白板(soft whiteboard)。 图5软电子白板的硬件实现具体框图。 图6红外时间戳。 图7主机软件架构。 图8数据流的格式具体实施方式为了降低接收器的硬件成本、重复利用接收器硬件资源、并能通过更新软件来提 高系统的性能,本实用新型提出了一种"软接收器"的系统架构,把原来在接收器硬件上完 成的超声测距和定位计算挪到了和接收器相连的计算机/主机上,用软件来实现。 为实现"主机处理(Host processing)"或"软接收器(Soft Receiver)"这一方 法,硬件和软件系统需作如下相应的调整 第一部分接收器的硬件系统设计 在"软接收器"中,接收器硬件系统仪仅只是把2个超声接收传感器捕获到的2路 超声原始信号和1个红外接收管感应到1路红外原始信号传输到主机上,不做任何定位计 算,或只做部分计算。 如图4所示,空中传播的超声信号被接收器上2个独立的超声接收传感器(换能 器)捕获并转换成电信号,红外信号也被接收器上的红外接收管捕获并转换成电信号。这 3路微弱电信号经过模拟放大,经过采样和量化,变成了数字信号,再被缓存和同步,最后形 成一个同步的数据流。通过接收器和主机之间的连线,送到主机上去。 从超声和红外接收传感器,模拟放大,到经过模数转换器ADC变成数字信号,再到 同步缓存,"软接收器"和"硬接收器"都是一样的。与硬接收器不同的是,软接收器是把同 步缓存的3路超声和红外数据打包后,直接通过USB接口芯片,把数据传送给主机。下面我 们就对ADC后的3路数字信号到接口芯片的这部分数字系统进行详细描述。 如图5所示,这部分系统分为Timing Control,TS Gen,S/P Co読rt,PacketGen, FIFO以及GDMA (State Management被合并到GDMA中)这6个模块。TimingControl产生 系统所需的所有时钟,包括AD的系统时钟以保证整个数据流同步的时钟。S/P Convert将 A/D产生的串行数据并行化,并指示Packet Gen在合适的时刻取数据。TS Gen根据LRCK上 升沿和IrDA的上升沿出现的时间差计算TS,并指示Packet Gen在合适的时刻取数据。TS Gen和S/P Convert产生的数据的同步是由Timing Control产生的LRCK保证的。Packet Gen根据数据包的格式要求,首先产生数据包头写入FIFO,然后将S/P Convert产生的两路 16比特数据和TS Gen产生的一路16比特的TS数据整合为一组数据,写入FIFO,写完16 组数据后,重新开始产生数据包头,如此循环。FIFO缓存采集到的数据包,供USB IC通过 GDMA模块读取。GDMA负责维护FIFO的状态并在USB IC的要求下,通过GDMA接口将数据 从FIFO读取出来传送给USB IC。 1. Timing Control禾口 S/P Convert 如图5所示,ADC产生两路96KHZ, 24BIT的音频数据,并以串行的方式提供给S/P Convert模块。S/P Convert用96KHZ*64 = 6. 144MHZ的时钟BCK采数。ADC和S/P Convert 由LRCK同步,LRCK是一个占空比50%,频率96KHZ的方波信号。LRCK为高时,ADC开始产 生L路的采样值,S/P Convert在每个BCK的上升沿取L路的采样值的一个比特,24拍后采 完L路的一个数据,剩下8拍采的是无效值。32拍后,LRCK变低,S/P Convert指示Packet Gen取L路数据,ADC开始产生R路的采样值,S/P Convert在每个BCK的上升沿取R路的 采样值的一个比特,24拍后采完R路的一个数据,剩下8拍采的是无效值。32拍后,LRCK再 次变高,S/P Convert指示Packet Gen取R路数据,同时TS Gen也产生了当前两路数据对 应的TS值,并指示Packet Gen取TS数据。如此循环。Packet Gen在每个数据包数据到达
5之前已经生成好包头并写入FIFO,然后等待S/P Convert和TS Gen产生数据。 2. Package Gen 当S/P Convert指示取L路数据时,Packet Gen取走L路数据,当S/P Convert指 示取R路数据时,Packet Gen取走R路数据,同时TS Gen也指示Packet Gen取走TS数据。 此时Packet Gen已经取完一组数据,包括两个32比特的音频数据和一个16比特的TS数 据。此时Packet Gen将两个32比特的音频数据截断为两个16比特的音频数据。然后将 这三个16比特的数据依次写入FIFO。写完后继续等待指示下一组数据的到来,如此重复写 完16组数据后,重新生成好包头并写入FIFO,然后等待S/P Convert和TS Gen产生数据。 3.FIF0和GDMA 如此循环。Packet Gen写入FIFO的数据由GDMA读取给USB IC。当USB IC指示 要从GDMA读取数据时(通过DREQ指示),如果FIFO中有足够多的数据,GDMA进入传送状 态,从FIFO中读取数据传送给USB IC,若在传送过程中,FIFO中的数据小于某一阈值,则 GDMA进入停止状态并指示USB IC暂停传输(维持DIOW为高),直到FIFO中的数据大于阈 值才继续进入传送状态传送数据。当USB IC指示无数据需要传输时,GDMA进入停止状态。 在停止状态,若FIFO还有一个数据就写满,则Drop Packets Block开始接管读取FIFO的 工作,此时每当PacketGen写入FIFO—个数据,Drop Packets Block就读取一个数据,防 止FIFO溢出。直到USB IC指示要从GDMA读取数据,Drop Packets Block停止工作,转入 正常的传输状态。 4.对原始的红外信号进行数字化的一种新方法 在"软接收器"里,对于两路超声信号,我们是直接用ADC对信号的幅度进行数字 化(采样和量化)。而对于红外信号(IrDA),我们并没有像在"硬接收器"里那样用AD直 接对红外信号幅度的进行数字化。考虑到我们从红外信号IrDA中主要是为了得到红外脉 冲的时间信息(在时间轴上的位置信息),我们设计了一个IrDA的上升沿检测器。如果没 有上升沿,当前96kHz的数字化的红外信号就是OxFFFF。如果对IrDA信号监测到上升沿, 如图6所示,TS Gen根LRCK上升沿和IrDA的上升沿出现的时间差计算ST,并把ST的值 作为当前时刻的数字化的红外信号。 5.数据流的格式 Package Gen是按照一定的数据格式把数据写入FIFO,并由GDMA读取给USBIC的。 数据流的格式如图8所示,数据流是由一个一个连续的FPGA Package组成,每个Package 具有以下格式4个字节的Package Header,后面紧跟着16个同步包。Package Header是 由Package ID和Package Counter组成,每个同步数据包由2个超声样本和1路红外时间 信号组成。 第二部分软件架构 为了配合"软接收器",计算机/主机就要对接收到的一路同步数据流进行解包, 恢复出2路超声信号和1路红外信号,并根据这3路原始信号来计算确定出笔尖的当前位 置,再将笔的位置坐标和其他消息发送给电子白板软件。 根据算法是否在驱动中实现,"软接收器"的软件可以用两种架构来实现 —种是接收器硬件被主机识别成一个标准的USB设备,驱动负责把数据从USB 口
传送到上层/应用层实现的定位算法。如图7所示,因为硬件向主机发送的是2路超声和1路红外原始数据,主机上的硬件驱动程序就要接收硬件送上来的数据,并把数据送给应用 程序。为了实时把大量数据从硬件送到应用层,该设备驱动必须工作在ISO模式(同步数 据传输模式)。可以用循环缓冲区(RingBuffer)在驱动和应用程序之间实时高效地交换数 据。 另一种是算法被集成到了接收器设备驱动中,这个驱动被主机识别成一个标准的 人机交互接口设备HID设备,上层的电子白板软件只是处理和响应这个HID设备发给应用 程序的各种消息,这样算法就实现在kernel层。 数据包丢包检测 主机收到同步数据流后,要正确地把原始的超声和红外数据解析出来,首先要检 测数据包是否有损坏和丢失。 测试模式下,包头PID为0xFFAF, Packet counter固定为0x0808。数据包中数据 为连续递增的16位数。若检测到不连续的数据,或者PID和Packetcounter有误,或者一 个数据包中的数据不是96个16位数,说明发生了错误。 正常模式下,包头PID为0xFF7F,Packet counter连续递增。若发现PID有误,或 者Packet counter不是连续递增的16位数,或者一个数据包中的数据不是96个16位数, 说明发生了错误。注意,刚开始读取的数据不一定恰好是包头,可能是从某个数据包的中间 开始读取的。 红外信号数据处理 根据数字化的红外信号,我们可以计算出超声信号的起始时间。若数据组中的红 外数据为OxFFFF,表示采集此组数据的间隔中没有遇到红外信号的上升沿,称为无效的红 外数据。若红外数据为0-63之间的数,表示采集此组数据的间隔中遇到红外信号的上升 沿,称为有效的红外数据。有效的红外数据对应红外信号的上升沿。两个红外信号的上升 沿之间的时间间隔即为Time stamp。设两个有效的红外数据之间无效的红外数据个数为 N,这两个有效的红外数据分别为nl和n2,则这两个有效的红外数据对应的两个红外信号 的上升沿之间的时间间隔为Time stamp = 64*N+64+n2_nl ;时间单位为6. 144Mhz的时钟 周期。 以上,详细说明了将在接收器硬件上完成的定位计算被挪到了和接收器相连的计 算机/主机上实现"软接收器"的完整技术方案,并详细说明了该结构架构及各组成部件的 特征。 显然,本领域技术人员可以对本实用新型进行各种改动和变形而不脱离本实用新 型的精神和范围。倘若本实用新型的这些修改和变形属于本实用新型权利要求及其等同技 术的范围之内,则本实用新型也意图包含这些改动和变形在内。
权利要求一种基于主机处理的电子白板系统,其包括超声波和红外信号发射笔,超声波和红外信号接收器,主机,白板;其特征在于超声波和红外信号接收器,用于采集2路超声信号和1路红外信号,对这3路信号进行模拟放大,采样/量化,缓存/同步,形成同步数据流;主机,用于对接收到的同步数据流进行解包,恢复出2路超声信号和1路红外信号,从而计算确定出笔尖的当前位置。
2. 如权利要求1所述的系统,其还包括ADC,用于对2路超声信号进行幅度采样和量 化,和一个红外信号的上升沿检测器。
3. 如权利要求1所述的系统,其还包括软接收器,该软接收器的软件架构有两种方式, 一种是接收器硬件被主机识别成一个标准的USB设备,该设备必须工作在ISO模式;另一 种是定位算法被集成到了接收器设备驱动中,被主机识别成一个HID设备。
专利摘要一种基于主机处理的电子白板系统,其包括超声波和红外信号发射笔,超声波和红外信号接收器,主机,白板。超声波和红外信号接收器采集2路超声信号和1路红外信号、对这3路信号进行模拟放大,采样/量化,缓存/同步,形成同步数据流,主机对接收到的同步数据流进行解包,恢复出2路超声信号和1路红外信号,根据这3路原始信号来计算确定出笔尖的当前位置,这样就降低接收器的硬件成本、使接收器硬件资源能得到重复利用、并能通过软件来更新核心算法,提高系统的性能。
文档编号G06F3/042GK201444295SQ200820127769
公开日2010年4月28日 申请日期2008年7月21日 优先权日2008年7月21日
发明者贾颖 申请人:贾