摘 要: 对空间动态信息捕捉系统的同步控制技术进行了设计和研究,利用电磁信号的发射和接收实现了无线同步控制。
关键词: 单片机 线阵CCD 多点探测 同步控制
空间动态信息捕捉系统是实现活动目标空间多点三维位置信息的获取、各信息的实时采集和传输的设备。目前常用的三维坐标探测主要有机械式、声学式、电磁式和光学式,其中以电磁式和光学式最为常见。本文研制的系统利用光电信号采集装置,探测安装在目标各个部位上的发光装置,将各个发光点的空间坐标信息经过采集、信号传输、信息预处理后,传送到计算机再进行处理。由于光具有不可穿透性,为了保证在各个角度都能获取每个发光点的信号,分别在探测空间安装了如图1所示的四个采集设备,图中模块1~4表示四个接收设备。
该系统由发光控制模块、采集设备、数据传输转接器和主控计算机等部分组成。系统中,各个发光点是按顺序分时工作的,每个发光点在发光时必须保证各个采集模块都能同时获取信息,否则各个点的位置信息会发生位置混乱,无法实现多采集模块的信息融合。因此各个点的发光时刻必须与多个采集模块严格同步。同步控制在该探测装置的设计中是至关重要的,关系到坐标数据的准确、稳定。
1 同步工作原理
本系统的采集设备和发光控制模块是系统的核心组成部分。采集设备由四个采集模块组成:一个主控采集模块和三个辅采集模块。图2是本文研制的一个采集模块,有三个探头:左右二个探头探测发光点的水平坐标,中间的探头探测纵向坐标。每个探测头由一个线阵CCD实现数据采集。线阵CCD的每一个扫描周期只能采集一个发光点数据。如果一个扫描周期内采集二个以上的发光点数据,就会出现数据重叠或位置混乱,使得系统无法识别发光点原来的顺序。为了使系统能实现多点数据采集,而且不发生发光点顺序混乱,可采取由多个扫描周期组成一个完整的数据帧,每个发光点按固定顺序发光,每个扫描周期只采集一个对应该周期发光的发光点。
当系统工作时,主控制采集模块首先发射这个被测点的编码信号,并启动扫描电路采集信号。当发光模块收到这个编码信号时,发光模块的单片机就控制相应编码的发光点发光;同时,辅采集模块也收到这个编码信号,启动扫描电路采集信号。主控制采集模块依次地发射相应发光点的编码信号,从而实现了多个采集模块采集多点数据。
2 同步格式及时序设计
对于多点的探测实际是一种串行检测,每一时刻只检测一个点。检测速度由探头中线性CCD的扫描速度决定,线阵CCD每扫描一次可以检测到一个点的数据。为了实现虚拟环境中的实时动态效果,要求对多点检测的完整数据周期不大于40ms,即每秒24幅画面。因此对于所检测空间点数的多少受线阵CCD扫描速度限制。本文采用的线阵CCD扫描一次的时间是1.2ms,因此最多检测30个点就可以得到连续的画面。对于人体运动姿态建模,在该项研究中需要26个点就可以进行较好的描述。因此该探测装置可以25幅/s的检测速度较好地进行人体运动姿态的空间三维数据采集。
该系统的同步控制主要包括主控采集模块与人体携带的发光控制模块之间和多个采集模块之间的同步控制。为了不影响表演者的行动,被检测的多点发光控制模块与主控采集设备之间采用了无线同步控制。由于多个采集模块之间距离较远,很难采用统一时钟实现同步采集,所以采集模块之间采用串行编码准同步控制。各个采集模块之间可以采用485接口或无线设备实现控制。采集设备与计算机之间通过USB接口实现数据通信。设备接入既可以采用有线连接也可以使用无线USB连接。若使用USB1.0有线接入并借助线驱动器,则可以实现15m的可靠数据传输。其数据格式定义如下:(1)USB传送数据格式。USB传送采用一个64字节和一个128字节的数据包实现,实际传送160个字节。第一个数据包传60个字节,第二个数据包传100个字节。每10个字节为一组,含有2个数据点。一次最多传送32个点坐标,每个点由3个数据组成。(2)锁存器数据格式。锁存器数据共有10个字节,其中:前9个字节表示6个12位的数据,最后1个字节用其中的6位表示这6个数据的有效性。(3)图像数据帧格式。一个扫描周期约1.2ms,每帧数据由29个扫描周期组成。其中,第1和第2个周期为同步信息,第3~28周期依次为接收到的位置信息及信号有效标志,第29周期为结束。每个数据由双字节组成,低位在前,数据最高位为数据有效标志(一帧共有26×3个数据)。(4)控制时序。系统同步控制主要包括三部分:①采集模块三个线阵CCD扫描时序的同步;②四个采集模块之间的扫描同步;③发光点发光时刻的同步。实现同步的最好办法是使用统一时钟。但是,一方面,由于监测对象与采集模块之间无连线,所以无法使用统一时钟;另一方面,各个采集模块之间距离较远,实现起来也比较困难。
通过分析发现,并不需要在时序、相位上完全同步。只要满足发光点在扫描周期内发光,不发生在相邻的扫描周期内就能满足系统要求。为保证每个数据帧的完整,每个数据帧设有一个同步字。同时,使线阵CCD实现可控的间断扫描,但停顿时间尽可能短,以保证线阵CCD增益的均衡。
该系统工作时,其四个采集模块和发光控制器同步动作。其中一个采集模块为主接收机,起主控制器作用;其他三个采集模块为辅接收机,随主接收机同步采集数据。同时,发光控制器按主接收机的时序控制发光点顺序发光。每帧数据由29个扫描周期组成,每帧数据由一个同步字进行控制,而且每个扫描周期由信号边沿实现同步触发。同步控制时序见图3,其中1~29表示线阵CCD的扫描周期。
3 硬件设计
采集设备的各个模块采用基本相同的结构,图4是主控采集模块的方框图,主控采集模块与辅采集模块之间只相差一个无线发射电路。传感器使用线阵CCD。线阵CCD的数据采集和扫描控制电路利用一片EPM7160和具有USB接口的单片机EZ-USB AN2131设计实现。EPM7160可以同时控制和采集三个线阵CCD。其工作过程是:单片机首先通过无线通道和有线通道发出同步控制脉冲编码,并启动线阵CCD扫描电路;发光点的数据被采集后,直接通过EPM7160内的硬件锁存器保存;线阵CCD扫描周期结束时,发出中断信号给单片机,由单片机读取数据,然后发送下个同步控制脉冲编码,重新开始扫描。当数据满足一个完整数据帧时,单片机通过USB接口将数据传送给主控计算机。
系统对于无线电磁波发射和接收电路要求可靠性高、抗干扰性强、传送速率大于20KHz。由于采用金属外壳,需要外接天线匹配。
发光控制模块采用单片机89C2051,发光驱动电路选用ULN2003A,无线接收电路使用标准的接收模块。发光控制模块接收到无线电编码信号后,由单片机进行识别,并控制相应编码点发光。该控制电路可控制32个发光点。
4 软件设计
在硬件设计过程中,为了开发方便,选用具有51指令集的单片机。使用Keilc51作为工具,完成发光模块和采集模块的固件程序的开发。
发光模块程序比较简单,采用汇编软件实现。使用单片机串行口接收同步控制编码,解码后控制相应发光点发光。
在采集模块控制程序中,扫描周期长度是由硬件决定的,因此它采用实时性的外中断方式进行数据接收。在中断程序中每次读取三个线阵CCD的6个数据,共9个字节。将接收到的字节存放在预先设定的USB缓冲区内,当接收到数据帧结束标志后,即发送数据给主控计算机。数据发送过程由AN2131的USB内核自动完成。
使用单片机串行口0实现同步控制,设置单片机的串行口采用方式3通信;通信的数据格式为每帧11位,包括1位起始位、8位数据位、1位奇偶校验位和1位停止位;片内定时器T2作为波特率发生器,选择传送的波特率为9 600bps,定时器T2的初值应设置为TL2=B2H,TH2=FFH。另外应禁止定时器T2中断,以免因定时器T2溢出而产生不必要的中断。定时器T1用来控制同步脉冲的宽度,根据无线通信模块性能对定时器T1进行相应的设置。采集模块控制程序的流程如图5所示。
本文研制的空间动态信息捕捉系统按照线阵CCD的扫描时序同步控制四个采集模块和发光控制模块实现数据采集。实验证明,在区域为3m×6m时,能够可靠地实现数据帧同步采集,每个扫描周期同步误差小于20μs。采集26个点数据时,其采集速度达到27帧/s以上。
参考文献
1 宋万杰,罗丰,吴顺君.CPLD技术及其应用.西安:西安电子科技大学出版社,1999
2 王庆有.CCD应用技术.天津:天津大学出版社,2002