基于ARM9的電梯緩沖器復位時間測試儀的設計
0 引言
隨著《電梯監(jiān)督檢驗規(guī)程》的發(fā)布,對檢驗機構的電梯檢驗質量提出了新的要求。但在《檢規(guī)》的實施過程中,不斷發(fā)現(xiàn)現(xiàn)有的檢驗項目缺乏必要的、科學的檢測手段。為此,探索研制一些檢測儀器,設法滿足特種設備檢驗的需要勢在必行。
本研究針對電梯緩沖器復位時間的檢測要求而展開。《檢規(guī)》中是這樣描述的:"對耗能型緩沖器需進行復位試驗,復位時間應不大于120s。"對應的檢驗方法是:"轎廂在空載情況下,以檢修速度下降,將緩沖器全壓縮,從轎廂開始離開緩沖器瞬間起,直到緩沖器回復原狀。觀察并用秒表計時。"
上述檢測手段主觀性太大,造成實際的檢驗結果不具有科學性、準確性,應當開發(fā)一套成本相對較低,但檢驗精度高、效率高,安裝容易,可靠性好的系統(tǒng),用于緩沖器復位時間的檢驗??紤]到上述要求和用戶的易用性,我們提出了基于ARM9的嵌入式Windows CE平臺方案。
1 系統(tǒng)功能特點
采用三星S3C2410芯片,基于ARM-Windows CE的電梯緩沖器復位時間測試儀具備以下功能特點:精確性:采用轎廂運動過程中的緩沖器受力變化狀態(tài)信號以及緩沖器復位狀態(tài)信號的實時采集、分析方式,達到檢測結果精確,瞬時性好的目標。
實用性:應用數(shù)據(jù)通信接口規(guī)范,使檢驗結果判斷和檢驗結果輸出自動進行,達到有效提高檢驗的安全性和工作效率的目標。
易用性:采用便攜式設計,提供彩色圖文界面和觸摸屏操作,直觀方便易用。
2 系統(tǒng)硬件實現(xiàn)方案
2.1 總體設計方案
電梯緩沖器復位時間測試儀三星S3C2410的ARM芯片為核心,采用TFT彩色液晶圖文顯示和觸摸屏操作。預留各種通信接口。系統(tǒng)主要有控制部分,數(shù)據(jù)采集部分,數(shù)據(jù)存儲部分,輸入輸出部分等4個主要組成部分。硬件上主要有上位機和下位機兩部分組成,之間采用串口標準RS232通訊,具體硬件框圖如下圖1所示:
系統(tǒng)的下位機部分主要負責前端的傳感器數(shù)據(jù)采集存儲以及和上位機的有關通訊,有關數(shù)據(jù)的分析和算法處理及用戶程序設計主要有上位機的S3C2410來完成。其通過串口接收下位機上傳的數(shù)據(jù)包,負責向下位機發(fā)送包含采樣參數(shù)的信息包,并承擔數(shù)據(jù)的處理,算法分析以及靜態(tài)參數(shù)的計算和顯示等工作。
2.2 數(shù)據(jù)采集方案
下位機是一個基于高性能AVR單片機的超聲波測距系統(tǒng),具有溫度校正和軟件補償,承擔現(xiàn)場緩沖器恢復狀態(tài)的實時數(shù)據(jù)檢測采集,并按照一定的協(xié)議打包成數(shù)據(jù)包通過串口傳給上位機。測量最小距離4cm,最大距離500cm,分辨率為1cm。圖2為數(shù)據(jù)采集的硬件框圖:
3 系統(tǒng)軟件部分:
Windows CE主要分為四個模塊,如圖所示,這四個模塊提供最重要的操作系統(tǒng)功能:內核,對象存儲模塊,網(wǎng)絡與通訊模塊和GWES模塊。
Windows CE還包含其它可選模塊,支持如管理可安裝設備驅動程序和支持COM的任務,圖3為系統(tǒng)結構圖:
3.1 定制操作系統(tǒng)
為了把Windows CE移植到特定的目標平臺上,微軟提供了一套完整的開發(fā)工具Platform Builder。該工具以對象庫格式提供給操作系統(tǒng),以便開發(fā)人員可以將其作為特定操作系統(tǒng)平臺的組件。
首先,選擇造作系統(tǒng)的基本配置,并且為特定的平臺選擇相應的微處理器和板級支持包BSP(Board Suppor Packet)。本測試儀采用S3C2410處理器,因此我們改造了微軟提供的基于S3C2410的BSP,自定義了符合我們要求的BSP。
其次,制定平臺,在此階段可開發(fā)設備驅動,適當?shù)夭眉?、添加組件。然后,封裝所需的各功能模塊,編譯生成OS鏡像文件。接著,把鏡像文件下載到目標設備,進行調試。在此階段,我們主要進行了串口和觸摸屏程序系統(tǒng)相關組件的添加和裁剪,編譯生成符合我們測試儀硬件要求的OS鏡像。
最后,導出定制操作系統(tǒng)的SDK(Soltware Development Kit)軟件開發(fā)工具包,安裝到EVC中,便可以進行基于我們定制的測試儀硬件平臺的應用程序開發(fā)。如圖4所示為操作系統(tǒng)移植流程圖:
3.2 應用軟件開發(fā)
操作系統(tǒng)的主要任務是為了管理所有硬件資源,并且提供應用軟件一個合適的操作環(huán)境。將Windows CE操作系統(tǒng)移植到ARM平臺上以后,下一步工作就是進行應用軟件的開發(fā)。本系統(tǒng)的上位機軟件主要在EVC的環(huán)境下開發(fā)完成,使用C語言為主要編程語言。主函數(shù)主要包含以下幾個模塊:用戶界面模塊、上下位機串口通訊模塊、算法分析處理模塊。
3.2.1 串口通訊協(xié)議說明
模塊串口波特率9600,無奇偶效驗,一位停止位??刂泼钔ㄟ^一致的幀結構通訊,幀長度4字節(jié):命令+數(shù)據(jù)0+數(shù)據(jù)1+校驗和。效驗和=命令+數(shù)據(jù)0+數(shù)據(jù)1的相加和的低8位。系統(tǒng)通過上位機串口直接對下位機模塊進行操作。上位機向下位機發(fā)送啟動16位距離讀取命令:Ox22+度數(shù)+NC+SUM。當測量完畢時,這時返回的數(shù)據(jù)是:Ox22+距離高+距離低+SUM;當測量無效時返回的距離高位和低位數(shù)據(jù)都是Oxff。(注:NC代表任意數(shù)據(jù),SUM代表效驗和)串行端口在Windows CE下屬于流接口設備,是串行設備接口常規(guī)I/O驅動程序的調用與通信相關的具體函數(shù)的結合。串行設備被視為用于打開、關閉和讀寫串行端口的常規(guī)的可安裝的流設備。Windows CE的串口函數(shù)和Windows的串口函數(shù)基本相同,但有幾點值得注意:Windows CE只支持Unicode字符集,在編程時必須特別注意; Windows CE不支持重疊的I/O操作。在所有的流設備驅動程序中,均使用CreateFile來打開串行端口設備,如果這個端口不存在,CreateFile返回ERROR_FILE_NOT_FOUND。因此,用戶指定的端口必須是存在并且可用的,而且要遵循Windows CE流接口設備驅動程序的命名規(guī)則,即COM后接要打開的端口號再緊跟一個冒號。
關閉串行端口比較簡單,調用CloseHandle函數(shù)就能關閉一個打開的串行端口。CloseHandle只有一個參數(shù),即調用CreateFile函數(shù)打開端口時返回的句柄,方法如下:
CloseHandle(hPort);
正如使用CreateFile打開串行端口一樣,可以使用ReadFile和WriteFile函數(shù)來讀寫串行端 口。假設已經(jīng)調用CreateFile成功地打開了串行端口,那么只需調用ReadFile即可從串行端口讀取數(shù)據(jù):
如果從主線程讀、寫大量的串行數(shù)據(jù),主線程就會因為等待相對較慢的串行讀或串行寫操作而阻塞,不能即時處理其他的消息,因此這里用單獨的線程來讀寫串行端口。對于串行端口來說,還必須配置超時值,否則程序可能陷入到一個等待來自串口字符的死循環(huán)。通常,配置超時值和配置串口類似。首先用GetCommTimeouts函數(shù)獲取當前串口的超時值,然后修改CommTimeouts成員變量的值,最后用SetCommTimeouts設置新的超時值。
3.2.2 算法分析
根據(jù)電梯檢測規(guī)程要求,緩沖器從全壓縮到復位的時間應不大于120秒。上位機從上電檢測開始每隔0.1秒發(fā)送一次數(shù)據(jù)采集命令,并將返回的距離值和開關量信號存儲于不同的數(shù)組待分析。數(shù)組s(m)和F(n)分別存儲采集到的距離值和開關信號值(0或1),t為每次數(shù)據(jù)采集循環(huán)時間,T為緩沖器回復時間。軟件的算法流程圖如5所示:
4 結束語
基于ARM技術和Windows CE系統(tǒng)的電梯緩沖器復位時間測試儀功能齊備,精確性高,實用性強,滿足了新的檢測規(guī)程的要求。本設計方案首次實現(xiàn)了緩沖器復位過程中瞬時脫離點的檢測,實現(xiàn)了各種狀態(tài)時刻的精確計時和狀態(tài)識別,解決了信號同步,結果自動判斷和輸出等問題。隨著技術的進一步發(fā)展,必將向著多功能、智能化的方向發(fā)展。
評論