基于ARM9的電梯緩沖器復(fù)位時(shí)間測(cè)試儀的設(shè)計(jì)
3.2.1 串口通訊協(xié)議說(shuō)明
本文引用地址:http://www.antipu.com.cn/article/272747.htm模塊串口波特率9600,無(wú)奇偶效驗(yàn),一位停止位??刂泼钔ㄟ^(guò)一致的幀結(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)通過(guò)上位機(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è)備被視為用于打開(kāi)、關(guān)閉和讀寫(xiě)串行端口的常規(guī)的可安裝的流設(shè)備。Windows CE的串口函數(shù)和Windows的串口函數(shù)基本相同,但有幾點(diǎn)值得注意:Windows CE只支持Unicode字符集,在編程時(shí)必須特別注意; Windows CE不支持重疊的I/O操作。在所有的流設(shè)備驅(qū)動(dòng)程序中,均使用CreateFile來(lái)打開(kāi)串行端口設(shè)備,如果這個(gè)端口不存在,CreateFile返回ERROR_FILE_NOT_FOUND。因此,用戶指定的端口必須是存在并且可用的,而且要遵循Windows CE流接口設(shè)備驅(qū)動(dòng)程序的命名規(guī)則,即COM后接要打開(kāi)的端口號(hào)再緊跟一個(gè)冒號(hào)。

關(guān)閉串行端口比較簡(jiǎn)單,調(diào)用CloseHandle函數(shù)就能關(guān)閉一個(gè)打開(kāi)的串行端口。CloseHandle只有一個(gè)參數(shù),即調(diào)用CreateFile函數(shù)打開(kāi)端口時(shí)返回的句柄,方法如下:
CloseHandle(hPort);
正如使用CreateFile打開(kāi)串行端口一樣,可以使用ReadFile和WriteFile函數(shù)來(lái)讀寫(xiě)串行端 口。假設(shè)已經(jīng)調(diào)用CreateFile成功地打開(kāi)了串行端口,那么只需調(diào)用ReadFile即可從串行端口讀取數(shù)據(jù):

如果從主線程讀、寫(xiě)大量的串行數(shù)據(jù),主線程就會(huì)因?yàn)榈却鄬?duì)較慢的串行讀或串行寫(xiě)操作而阻塞,不能即時(shí)處理其他的消息,因此這里用單獨(dú)的線程來(lái)讀寫(xiě)串行端口。對(duì)于串行端口來(lái)說(shuō),還必須配置超時(shí)值,否則程序可能陷入到一個(gè)等待來(lái)自串口字符的死循環(huán)。通常,配置超時(shí)值和配置串口類似。首先用GetCommTimeouts函數(shù)獲取當(dāng)前串口的超時(shí)值,然后修改CommTimeouts成員變量的值,最后用SetCommTimeouts設(shè)置新的超時(shí)值。
3.2.2 算法分析
根據(jù)電梯檢測(cè)規(guī)程要求,緩沖器從全壓縮到復(fù)位的時(shí)間應(yīng)不大于120秒。上位機(jī)從上電檢測(cè)開(kāi)始每隔0.1秒發(fā)送一次數(shù)據(jù)采集命令,并將返回的距離值和開(kāi)關(guān)量信號(hào)存儲(chǔ)于不同的數(shù)組待分析。數(shù)組s(m)和F(n)分別存儲(chǔ)采集到的距離值和開(kāi)關(guān)信號(hào)值(0或1),t為每次數(shù)據(jù)采集循環(huán)時(shí)間,T為緩沖器回復(fù)時(shí)間。軟件的算法流程圖如5所示:

4 結(jié)束語(yǔ)
基于ARM技術(shù)和Windows CE系統(tǒng)的電梯緩沖器復(fù)位時(shí)間測(cè)試儀功能齊備,精確性高,實(shí)用性強(qiáng),滿足了新的檢測(cè)規(guī)程的要求。本設(shè)計(jì)方案首次實(shí)現(xiàn)了緩沖器復(fù)位過(guò)程中瞬時(shí)脫離點(diǎn)的檢測(cè),實(shí)現(xiàn)了各種狀態(tài)時(shí)刻的精確計(jì)時(shí)和狀態(tài)識(shí)別,解決了信號(hào)同步,結(jié)果自動(dòng)判斷和輸出等問(wèn)題。隨著技術(shù)的進(jìn)一步發(fā)展,必將向著多功能、智能化的方向發(fā)展。
c語(yǔ)言相關(guān)文章:c語(yǔ)言教程
網(wǎng)線測(cè)試儀相關(guān)文章:網(wǎng)線測(cè)試儀原理
評(píng)論