電梯緩沖器復(fù)位時(shí)間測(cè)試儀的設(shè)計(jì)
2.2 數(shù)據(jù)采集方案
下位機(jī)是一個(gè)基于高性能AVR單片機(jī)的超聲波測(cè)距系統(tǒng),具有溫度校正和軟件補(bǔ)償,承擔(dān)現(xiàn)場(chǎng)緩沖器恢復(fù)狀態(tài)的實(shí)時(shí)數(shù)據(jù)檢測(cè)采集,并按照一定的協(xié)議打包成數(shù)據(jù)包通過串口傳給上位機(jī)。測(cè)量最小距離4cm,最大距離500cm,分辨率為1cm。圖2為數(shù)據(jù)采集的硬件框圖:
3 系統(tǒng)軟件部分:
Windows CE主要分為四個(gè)模塊,如圖所示,這四個(gè)模塊提供最重要的操作系統(tǒng)功能:內(nèi)核,對(duì)象存儲(chǔ)模塊,網(wǎng)絡(luò)與通訊模塊和GWES模塊。
Windows CE還包含其它可選模塊,支持如管理可安裝設(shè)備驅(qū)動(dòng)程序和支持COM的任務(wù),圖3為系統(tǒng)結(jié)構(gòu)圖:
3.1 定制操作系統(tǒng)
為了把Windows CE移植到特定的目標(biāo)平臺(tái)上,微軟提供了一套完整的開發(fā)工具Platform Builder。該工具以對(duì)象庫(kù)格式提供給操作系統(tǒng),以便開發(fā)人員可以將其作為特定操作系統(tǒng)平臺(tái)的組件。
首先,選擇造作系統(tǒng)的基本配置,并且為特定的平臺(tái)選擇相應(yīng)的微處理器和板級(jí)支持包BSP(Board Suppor Packet)。本測(cè)試儀采用S3C2410處理器,因此我們改造了微軟提供的基于S3C2410的BSP,自定義了符合我們要求的BSP。
其次,制定平臺(tái),在此階段可開發(fā)設(shè)備驅(qū)動(dòng),適當(dāng)?shù)夭眉簟⑻砑咏M件。然后,封裝所需的各功能模塊,編譯生成OS鏡像文件。接著,把鏡像文件下載到目標(biāo)設(shè)備,進(jìn)行調(diào)試。在此階段,我們主要進(jìn)行了串口和觸摸屏程序系統(tǒng)相關(guān)組件的添加和裁剪,編譯生成符合我們測(cè)試儀硬件要求的OS鏡像。
最后,導(dǎo)出定制操作系統(tǒng)的SDK(Soltware Development Kit)軟件開發(fā)工具包,安裝到EVC中,便可以進(jìn)行基于我們定制的測(cè)試儀硬件平臺(tái)的應(yīng)用程序開發(fā)。如圖4所示為操作系統(tǒng)移植流程圖:
3.2 應(yīng)用軟件開發(fā)
操作系統(tǒng)的主要任務(wù)是為了管理所有硬件資源,并且提供應(yīng)用軟件一個(gè)合適的操作環(huán)境。將Windows CE操作系統(tǒng)移植到ARM平臺(tái)上以后,下一步工作就是進(jìn)行應(yīng)用軟件的開發(fā)。本系統(tǒng)的上位機(jī)軟件主要在EVC的環(huán)境下開發(fā)完成,使用C語(yǔ)言為主要編程語(yǔ)言。主函數(shù)主要包含以下幾個(gè)模塊:用戶界面模塊、上下位機(jī)串口通訊模塊、算法分析處理模塊。
3.2.1 串口通訊協(xié)議說明
模塊串口波特率9600,無(wú)奇偶效驗(yàn),一位停止位。控制命令通過一致的幀結(jié)構(gòu)通訊,幀長(zhǎng)度4字節(jié):命令+數(shù)據(jù)0+數(shù)據(jù)1+校驗(yàn)和。效驗(yàn)和=命令+數(shù)據(jù)0+數(shù)據(jù)1的相加和的低8位。系統(tǒng)通過上位機(jī)串口直接對(duì)下位機(jī)模塊進(jìn)行操作。上位機(jī)向下位機(jī)發(fā)送啟動(dòng)16位距離讀取命令:Ox22+度數(shù)+NC+SUM。當(dāng)測(cè)量完畢時(shí),這時(shí)返回的數(shù)據(jù)是:Ox22+距離高+距離低+SUM;當(dāng)測(cè)量無(wú)效時(shí)返回的距離高位和低位數(shù)據(jù)都是Oxff。(注:NC代表任意數(shù)據(jù),SUM代表效驗(yàn)和)串行端口在Windows CE下屬于流接口設(shè)備,是串行設(shè)備接口常規(guī)I/O驅(qū)動(dòng)程序的調(diào)用與通信相關(guān)的具體函數(shù)的結(jié)合。串行設(shè)備被視為用于打開、關(guān)閉和讀寫串行端口的常規(guī)的可安裝的流設(shè)備。Windows CE的串口函數(shù)和Windows的串口函數(shù)基本相同,但有幾點(diǎn)值得注意:Windows CE只支持Unicode字符集,在編程時(shí)必須特別注意; Windows CE不支持重疊的I/O操作。在所有的流設(shè)備驅(qū)動(dòng)程序中,均使用CreateFile來打開串行端口設(shè)備,如果這個(gè)端口不存在,CreateFile返回ERROR_FILE_NOT_FOUND。因此,用戶指定的端口必須是存在并且可用的,而且要遵循Windows CE流接口設(shè)備驅(qū)動(dòng)程序的命名規(guī)則,即COM后接要打開的端口號(hào)再緊跟一個(gè)冒號(hào)。
評(píng)論