摘 要: 對空間動態(tài)信息捕捉系統的同步控制技術進行了設計和研究,利用電磁信號的發(fā)射和接收實現了無線同步控制。
關鍵詞: 單片機 線陣CCD 多點探測 同步控制
空間動態(tài)信息捕捉系統是實現活動目標空間多點三維位置信息的獲取、各信息的實時采集和傳輸的設備。目前常用的三維坐標探測主要有機械式、聲學式、電磁式和光學式,其中以電磁式和光學式最為常見。本文研制的系統利用光電信號采集裝置,探測安裝在目標各個部位上的發(fā)光裝置,將各個發(fā)光點的空間坐標信息經過采集、信號傳輸、信息預處理后,傳送到計算機再進行處理。由于光具有不可穿透性,為了保證在各個角度都能獲取每個發(fā)光點的信號,分別在探測空間安裝了如圖1所示的四個采集設備,圖中模塊1~4表示四個接收設備。
該系統由發(fā)光控制模塊、采集設備、數據傳輸轉接器和主控計算機等部分組成。系統中,各個發(fā)光點是按順序分時工作的,每個發(fā)光點在發(fā)光時必須保證各個采集模塊都能同時獲取信息,否則各個點的位置信息會發(fā)生位置混亂,無法實現多采集模塊的信息融合。因此各個點的發(fā)光時刻必須與多個采集模塊嚴格同步。同步控制在該探測裝置的設計中是至關重要的,關系到坐標數據的準確、穩(wěn)定。
1 同步工作原理
本系統的采集設備和發(fā)光控制模塊是系統的核心組成部分。采集設備由四個采集模塊組成:一個主控采集模塊和三個輔采集模塊。圖2是本文研制的一個采集模塊,有三個探頭:左右二個探頭探測發(fā)光點的水平坐標,中間的探頭探測縱向坐標。每個探測頭由一個線陣CCD實現數據采集。線陣CCD的每一個掃描周期只能采集一個發(fā)光點數據。如果一個掃描周期內采集二個以上的發(fā)光點數據,就會出現數據重疊或位置混亂,使得系統無法識別發(fā)光點原來的順序。為了使系統能實現多點數據采集,而且不發(fā)生發(fā)光點順序混亂,可采取由多個掃描周期組成一個完整的數據幀,每個發(fā)光點按固定順序發(fā)光,每個掃描周期只采集一個對應該周期發(fā)光的發(fā)光點。
當系統工作時,主控制采集模塊首先發(fā)射這個被測點的編碼信號,并啟動掃描電路采集信號。當發(fā)光模塊收到這個編碼信號時,發(fā)光模塊的單片機就控制相應編碼的發(fā)光點發(fā)光;同時,輔采集模塊也收到這個編碼信號,啟動掃描電路采集信號。主控制采集模塊依次地發(fā)射相應發(fā)光點的編碼信號,從而實現了多個采集模塊采集多點數據。
2 同步格式及時序設計
對于多點的探測實際是一種串行檢測,每一時刻只檢測一個點。檢測速度由探頭中線性CCD的掃描速度決定,線陣CCD每掃描一次可以檢測到一個點的數據。為了實現虛擬環(huán)境中的實時動態(tài)效果,要求對多點檢測的完整數據周期不大于40ms,即每秒24幅畫面。因此對于所檢測空間點數的多少受線陣CCD掃描速度限制。本文采用的線陣CCD掃描一次的時間是1.2ms,因此最多檢測30個點就可以得到連續(xù)的畫面。對于人體運動姿態(tài)建模,在該項研究中需要26個點就可以進行較好的描述。因此該探測裝置可以25幅/s的檢測速度較好地進行人體運動姿態(tài)的空間三維數據采集。
該系統的同步控制主要包括主控采集模塊與人體攜帶的發(fā)光控制模塊之間和多個采集模塊之間的同步控制。為了不影響表演者的行動,被檢測的多點發(fā)光控制模塊與主控采集設備之間采用了無線同步控制。由于多個采集模塊之間距離較遠,很難采用統一時鐘實現同步采集,所以采集模塊之間采用串行編碼準同步控制。各個采集模塊之間可以采用485接口或無線設備實現控制。采集設備與計算機之間通過USB接口實現數據通信。設備接入既可以采用有線連接也可以使用無線USB連接。若使用USB1.0有線接入并借助線驅動器,則可以實現15m的可靠數據傳輸。其數據格式定義如下:(1)USB傳送數據格式。USB傳送采用一個64字節(jié)和一個128字節(jié)的數據包實現,實際傳送160個字節(jié)。第一個數據包傳60個字節(jié),第二個數據包傳100個字節(jié)。每10個字節(jié)為一組,含有2個數據點。一次最多傳送32個點坐標,每個點由3個數據組成。(2)鎖存器數據格式。鎖存器數據共有10個字節(jié),其中:前9個字節(jié)表示6個12位的數據,最后1個字節(jié)用其中的6位表示這6個數據的有效性。(3)圖像數據幀格式。一個掃描周期約1.2ms,每幀數據由29個掃描周期組成。其中,第1和第2個周期為同步信息,第3~28周期依次為接收到的位置信息及信號有效標志,第29周期為結束。每個數據由雙字節(jié)組成,低位在前,數據最高位為數據有效標志(一幀共有26×3個數據)。(4)控制時序。系統同步控制主要包括三部分:①采集模塊三個線陣CCD掃描時序的同步;②四個采集模塊之間的掃描同步;③發(fā)光點發(fā)光時刻的同步。實現同步的最好辦法是使用統一時鐘。但是,一方面,由于監(jiān)測對象與采集模塊之間無連線,所以無法使用統一時鐘;另一方面,各個采集模塊之間距離較遠,實現起來也比較困難。
通過分析發(fā)現,并不需要在時序、相位上完全同步。只要滿足發(fā)光點在掃描周期內發(fā)光,不發(fā)生在相鄰的掃描周期內就能滿足系統要求。為保證每個數據幀的完整,每個數據幀設有一個同步字。同時,使線陣CCD實現可控的間斷掃描,但停頓時間盡可能短,以保證線陣CCD增益的均衡。
該系統工作時,其四個采集模塊和發(fā)光控制器同步動作。其中一個采集模塊為主接收機,起主控制器作用;其他三個采集模塊為輔接收機,隨主接收機同步采集數據。同時,發(fā)光控制器按主接收機的時序控制發(fā)光點順序發(fā)光。每幀數據由29個掃描周期組成,每幀數據由一個同步字進行控制,而且每個掃描周期由信號邊沿實現同步觸發(fā)。同步控制時序見圖3,其中1~29表示線陣CCD的掃描周期。
3 硬件設計
采集設備的各個模塊采用基本相同的結構,圖4是主控采集模塊的方框圖,主控采集模塊與輔采集模塊之間只相差一個無線發(fā)射電路。傳感器使用線陣CCD。線陣CCD的數據采集和掃描控制電路利用一片EPM7160和具有USB接口的單片機EZ-USB AN2131設計實現。EPM7160可以同時控制和采集三個線陣CCD。其工作過程是:單片機首先通過無線通道和有線通道發(fā)出同步控制脈沖編碼,并啟動線陣CCD掃描電路;發(fā)光點的數據被采集后,直接通過EPM7160內的硬件鎖存器保存;線陣CCD掃描周期結束時,發(fā)出中斷信號給單片機,由單片機讀取數據,然后發(fā)送下個同步控制脈沖編碼,重新開始掃描。當數據滿足一個完整數據幀時,單片機通過USB接口將數據傳送給主控計算機。
系統對于無線電磁波發(fā)射和接收電路要求可靠性高、抗干擾性強、傳送速率大于20KHz。由于采用金屬外殼,需要外接天線匹配。
發(fā)光控制模塊采用單片機89C2051,發(fā)光驅動電路選用ULN2003A,無線接收電路使用標準的接收模塊。發(fā)光控制模塊接收到無線電編碼信號后,由單片機進行識別,并控制相應編碼點發(fā)光。該控制電路可控制32個發(fā)光點。
4 軟件設計
在硬件設計過程中,為了開發(fā)方便,選用具有51指令集的單片機。使用Keilc51作為工具,完成發(fā)光模塊和采集模塊的固件程序的開發(fā)。
發(fā)光模塊程序比較簡單,采用匯編軟件實現。使用單片機串行口接收同步控制編碼,解碼后控制相應發(fā)光點發(fā)光。
在采集模塊控制程序中,掃描周期長度是由硬件決定的,因此它采用實時性的外中斷方式進行數據接收。在中斷程序中每次讀取三個線陣CCD的6個數據,共9個字節(jié)。將接收到的字節(jié)存放在預先設定的USB緩沖區(qū)內,當接收到數據幀結束標志后,即發(fā)送數據給主控計算機。數據發(fā)送過程由AN2131的USB內核自動完成。
使用單片機串行口0實現同步控制,設置單片機的串行口采用方式3通信;通信的數據格式為每幀11位,包括1位起始位、8位數據位、1位奇偶校驗位和1位停止位;片內定時器T2作為波特率發(fā)生器,選擇傳送的波特率為9 600bps,定時器T2的初值應設置為TL2=B2H,TH2=FFH。另外應禁止定時器T2中斷,以免因定時器T2溢出而產生不必要的中斷。定時器T1用來控制同步脈沖的寬度,根據無線通信模塊性能對定時器T1進行相應的設置。采集模塊控制程序的流程如圖5所示。
本文研制的空間動態(tài)信息捕捉系統按照線陣CCD的掃描時序同步控制四個采集模塊和發(fā)光控制模塊實現數據采集。實驗證明,在區(qū)域為3m×6m時,能夠可靠地實現數據幀同步采集,每個掃描周期同步誤差小于20μs。采集26個點數據時,其采集速度達到27幀/s以上。
參考文獻
1 宋萬杰,羅豐,吳順君.CPLD技術及其應用.西安:西安電子科技大學出版社,1999
2 王慶有.CCD應用技術.天津:天津大學出版社,2002