馮淑萍 竇利軍
?
數(shù)字?jǐn)z影測量工作站三維采集裝置測試系統(tǒng)設(shè)計(jì)
馮淑萍 竇利軍
(西安測繪總站 陜西西安 710054)
運(yùn)用三維采集裝置工作原理,利用80C51與計(jì)算機(jī)的通信,通過串口數(shù)據(jù)交換將數(shù)字?jǐn)z影測量工作站三維采集裝置采集到的數(shù)據(jù)送到上位機(jī),經(jīng)過本測試系統(tǒng)的分析處理,將一些關(guān)鍵參數(shù)顯示在測試界面上,進(jìn)而得到三維采集裝置的故障原因,實(shí)現(xiàn)本測試系統(tǒng)對(duì)其好壞優(yōu)劣及其精度的評(píng)估。
80C51 C++ 串口通信 握手協(xié)議
數(shù)字?jǐn)z影測量工作站是航測作業(yè)的主裝備,其硬件構(gòu)成主要有計(jì)算機(jī)工作站、立體觀測裝置和三維采集裝置等。作為人機(jī)交互的重要設(shè)備,三維采集裝置的性能好壞和精度優(yōu)劣,直接影響著整個(gè)數(shù)字?jǐn)z影測量的全過程。三維采集裝置廣泛使用的是三維鼠標(biāo)和手輪腳盤腳開關(guān)組合,二者都是以旋轉(zhuǎn)編碼器為基本采集單元,旋轉(zhuǎn)編碼器的性能直接影響作業(yè)效率和成圖質(zhì)量,當(dāng)前缺乏有效的檢測手段和設(shè)備。為解決這一問題,急需一套通用的數(shù)字?jǐn)z影測量工作站三維采集裝置測試系統(tǒng),能方便地對(duì)采集裝置進(jìn)行全面評(píng)估,檢測其好壞及精度量級(jí)。
本文詳細(xì)介紹了基于80C51單片機(jī)的數(shù)字?jǐn)z影測量工作站三維采集裝置測試系統(tǒng)的設(shè)計(jì)思路及測試流程。
2.1 硬件采集控制原理
數(shù)字?jǐn)z影測量工作站三維采集裝置測試儀的控制系統(tǒng)采用80C51單片機(jī)系統(tǒng)設(shè)計(jì),主要功能單元包括采集傳感器、檢相電路、脈沖計(jì)數(shù)電路、功能鍵盤、CPU系統(tǒng)和通信接口。系統(tǒng)硬件設(shè)計(jì)連接如圖1所示。
測試儀對(duì)數(shù)據(jù)采集裝置(三維鼠標(biāo)等)的三個(gè)碼盤脈沖鑒相結(jié)果進(jìn)行控制鎖存、清零和輸出,確定讀取計(jì)數(shù)值。
計(jì)數(shù)器74HC193將正反方向的脈沖數(shù)以十六進(jìn)制記錄,通過74HC573將這個(gè)8位計(jì)數(shù)值鎖存和輸出。由單片機(jī)對(duì)74HC193的復(fù)位和74HC573的輸出等動(dòng)作進(jìn)行程序控制,從而完成從旋轉(zhuǎn)編碼器的原始脈沖輸出到數(shù)字信號(hào)的轉(zhuǎn)化。
2.2 單片機(jī)軟件設(shè)計(jì)
數(shù)字?jǐn)z影測量工作站三維采集裝置測試儀采用輪詢方式,在整個(gè)測試系統(tǒng)初始化后,周期性地查看X、Y、Z三個(gè)通道的數(shù)據(jù),比較各個(gè)通道的計(jì)數(shù)值和上一周期的數(shù)據(jù)清零復(fù)位后的計(jì)數(shù)值是否有改變,有則將所獲得的計(jì)數(shù)值進(jìn)行保存并以規(guī)定的數(shù)據(jù)幀格式發(fā)送出去,等待系統(tǒng)軟件進(jìn)行分析。
3.1 軟件設(shè)計(jì)思路
由于目前正在使用的數(shù)字?jǐn)z影測量工作站三維采集裝置大都利用旋轉(zhuǎn)編碼器,以脈沖的形式計(jì)算X、Y、Z三個(gè)方向的位移量,最終都是通過串口將數(shù)據(jù)發(fā)送給上位機(jī)進(jìn)行處理,因而系統(tǒng)軟件設(shè)計(jì)以讀取串口數(shù)據(jù)為手段,通過與單片機(jī)預(yù)留接口的對(duì)接,實(shí)現(xiàn)上位機(jī)下位機(jī)通信。通過上層軟件對(duì)所讀取到的數(shù)據(jù)進(jìn)行分析處理,直觀地對(duì)數(shù)字?jǐn)z影測量工作站三維采集裝置的接收數(shù)據(jù)分別以二進(jìn)制、十六進(jìn)制、十進(jìn)制顯示,同時(shí)軟件內(nèi)部分析處理獲得當(dāng)前各個(gè)通道位移量、精度、轉(zhuǎn)速并顯示在測試軟件界面上。
3.2 軟件設(shè)計(jì)
系統(tǒng)軟件設(shè)計(jì)基于VC6.0平臺(tái),用C++語言開發(fā),界面用MFC設(shè)計(jì),使用CSerial類對(duì)串口進(jìn)行初始化和控制。系統(tǒng)使用多線程技術(shù)大幅提高了系統(tǒng)工作效率。
由于數(shù)字?jǐn)z影測量工作站三維采集裝置的種類比較多,本系統(tǒng)目前只對(duì)Leica三維鼠標(biāo)、top mouse三維鼠標(biāo)和手輪腳盤這三種采集裝置進(jìn)行測量。
點(diǎn)擊“選擇采集裝置”下拉菜單選項(xiàng)選擇相對(duì)應(yīng)的采集裝置,彈出測試界面。在測試界面點(diǎn)擊“測試選項(xiàng)”的下拉菜單選擇測試選項(xiàng),分別選擇按鍵測試、精度數(shù)據(jù)測試,彈出相應(yīng)的測試界面。按鍵測試界面如圖2所示。測試原理為對(duì)鍵值進(jìn)行判斷,系統(tǒng)測試軟件將接收到的鍵值數(shù)據(jù)與標(biāo)準(zhǔn)值進(jìn)行比較,正確則顯示為紅色,其他都為不動(dòng)作。
精度數(shù)據(jù)測試界面如圖3所示。精度數(shù)據(jù)測試界面可對(duì)串口參數(shù)進(jìn)行設(shè)置,可自由地選擇所需串口、波特率、校驗(yàn)位、數(shù)據(jù)位和停止位??墒謩?dòng)打開關(guān)閉串口。在接收設(shè)置區(qū)域可對(duì)接收到的數(shù)據(jù)選擇以十六進(jìn)制、二進(jìn)制、十進(jìn)制進(jìn)行顯示。軟件可同時(shí)對(duì)三個(gè)通道進(jìn)行測試,并迅速顯示出測量結(jié)果,其中位移量有正負(fù),表示距離測試原點(diǎn)旋轉(zhuǎn)編碼器發(fā)送的脈沖數(shù);精度表示旋轉(zhuǎn)編碼器平均每圈與標(biāo)準(zhǔn)脈沖值相差的數(shù)目;轉(zhuǎn)速顯示的是旋轉(zhuǎn)編碼器在一秒內(nèi)轉(zhuǎn)的圈數(shù),單位為轉(zhuǎn)/秒。這些數(shù)據(jù)都由測試軟件內(nèi)部計(jì)算實(shí)現(xiàn),繼而顯示在界面上。
測試流程以上位機(jī)也就是計(jì)算機(jī)與單片機(jī)之間通信為主,采用握手協(xié)議,上位機(jī)與下位機(jī)之間以約定好的數(shù)據(jù)幀格式進(jìn)行數(shù)據(jù)交換。流程如圖4所示,系統(tǒng)上電開始測試,對(duì)計(jì)算機(jī)串口和硬件部分進(jìn)行復(fù)位初始化,檢測串口存在與否,存在則檢查與串口通信是否正常,給串口發(fā)送測試碼,測試碼為0xaa 0x55,等待100ms如果收到單片機(jī)發(fā)送過來的ACK碼“ok”則表示串口通信正常,否則返回繼續(xù)發(fā)送測試碼等待串口。若上位機(jī)收到ACK碼,即上位機(jī)與下位機(jī)之間通信正常,可進(jìn)行測試工作。由單片機(jī)周期性經(jīng)串口將脈沖數(shù)以數(shù)據(jù)幀的格式發(fā)送給上位機(jī),上位機(jī)軟件系統(tǒng)對(duì)接收到的數(shù)據(jù)進(jìn)行分析處理,將所要檢測數(shù)據(jù)顯示在上位機(jī)界面上,即完成一個(gè)測試周期。
本測試系統(tǒng)成功的對(duì)目前流行的數(shù)字?jǐn)z影測量工作站三維采集裝置進(jìn)行了測試,成功地解決了檢修難、沒有測試設(shè)備的問題。通過本測試系統(tǒng),可對(duì)采集裝置的好壞、精度優(yōu)劣進(jìn)行全面判斷,對(duì)一些工作期間出問題的設(shè)備進(jìn)行檢修,不用麻煩地拆開即可通過計(jì)算機(jī)將設(shè)備有可能發(fā)生的故障原因進(jìn)行判斷,然后有針對(duì)性地予以保障即可。
[1] 李曉斌,高延民,李延海.三維鼠標(biāo)的控制原理及其在數(shù)字?jǐn)z影測量中的應(yīng)用[J].測繪技術(shù)裝備,2007(3):47.