基于多線程的串口通信軟件的設(shè)計與實現(xiàn)

ID:33488725

大?。?99.29 KB

頁數(shù):4頁

時間:2019-02-26

基于多線程的串口通信軟件的設(shè)計與實現(xiàn)_第1頁
基于多線程的串口通信軟件的設(shè)計與實現(xiàn)_第2頁
基于多線程的串口通信軟件的設(shè)計與實現(xiàn)_第3頁
基于多線程的串口通信軟件的設(shè)計與實現(xiàn)_第4頁
資源描述:

《基于多線程的串口通信軟件的設(shè)計與實現(xiàn)》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、2004年3月控制工程Mar.2004第11卷第2期ControlEngineeringofChinaVol.11,No.2文章編號:167127848(2004)0220171204基于多線程的串口通信軟件的設(shè)計與實現(xiàn)吳先亮,劉春生(南京航空航天大學自動化學院,江蘇南京210016)摘要:針對串口通信實時性和系統(tǒng)資源利用的不足,提出了基于多線程技術(shù)和自定義消息機制的異步串口通信的設(shè)計思想。結(jié)合串口通信的機理和多線程同步方式,分析了Win32系統(tǒng)下多線程異步串口通信程序的開發(fā)方法。用Delphi實現(xiàn)了加油站中央控制系統(tǒng)中PC機與單片機間的串行通信軟件,給出了軟件的設(shè)計思路,

2、一般步驟和部分程序代碼。目前該通信軟件已穩(wěn)定地運行在各加油站中央控制系統(tǒng)中,促進了石油行業(yè)自動化的發(fā)展,也為相關(guān)行業(yè)實現(xiàn)自動化提供了幫助。關(guān)鍵詞:多線程;串口通信;Delphi;消息機制中圖分類號:TP311文獻標識碼:A間無人加油、數(shù)據(jù)庫管理以及應(yīng)用IC卡技術(shù)和油1引言站網(wǎng)絡(luò)實現(xiàn)加油一卡通等。系統(tǒng)的組成結(jié)構(gòu)如圖串行通信是計算機與其他設(shè)備進行數(shù)據(jù)交換1所示。后臺監(jiān)控機是系統(tǒng)的心臟,要求后臺監(jiān)時經(jīng)常使用的方法之一,它具有實現(xiàn)簡單、使用靈控軟件具有良好的兼容性和擴展性,所以獨立設(shè)活方便、數(shù)據(jù)傳輸可靠等優(yōu)點,因而在工業(yè)監(jiān)控、計了一套基于多線程的通訊軟件,物理位置與后數(shù)據(jù)采集和實時

3、監(jiān)控系統(tǒng)中得到廣泛應(yīng)用。在臺監(jiān)控軟件在同一臺計算機上,它與前端的加油Windows系統(tǒng)中,通過基于多線程和消息的多任機串口通信是典型的主從式,在硬件上通過moxa務(wù)處理編程可以有效地解決通信的實時性,且能公司的多串口卡實現(xiàn),與后臺監(jiān)控軟件通過標準提高數(shù)據(jù)的吞吐量和應(yīng)用程序的可靠性。的Windows消息機制實現(xiàn)數(shù)據(jù)交換。在單任務(wù)操作系統(tǒng)中,不能同時處理兩件以上不同的任務(wù)。Win32是基于線程的搶先式多任務(wù)操作系統(tǒng),使得應(yīng)用程序能同時執(zhí)行多個任務(wù),即在一個進程中可同時運行多個線程。一個線程是指程序的一條執(zhí)行路徑,它在系統(tǒng)指定的時間圖1加油機監(jiān)控系統(tǒng)結(jié)構(gòu)片中完成特定的功能。系統(tǒng)不

4、停地在多個線程之間切換,由于時間很短,看上去多個線程在同時運3多線程程序設(shè)計行。對于通訊這種需要花費大量的時間來測試1)Windows串行通信機理Windows是與I/O操作,同時又要保持響應(yīng)用戶其他操作的應(yīng)用程序來說,創(chuàng)建多線程是最佳選擇。本文介紹設(shè)備無關(guān)的操作系統(tǒng),在通常的情況下,嚴格禁止的是某公司開發(fā)的加油站監(jiān)控系統(tǒng)中使用的多線用戶模式的應(yīng)用程序直接對硬件進行訪問,應(yīng)用程的串行通信設(shè)計方法,可對從事類似開發(fā)任務(wù)程序?qū)τ布脑L問是通過Win32子系統(tǒng)傳遞的人員有所幫助。IRP給I/O管理器,再傳遞給合適的硬件驅(qū)動程序,由硬件驅(qū)動程序?qū)τ布M行訪問,驅(qū)動程序提2系統(tǒng)結(jié)構(gòu)供

5、應(yīng)用程序接口函數(shù)(API)為應(yīng)用程序調(diào)用。具加油站監(jiān)控系統(tǒng)一般采用MCS251單片機作體結(jié)構(gòu)如圖2所示。為前端加油機的主控CPU芯片,利用計算機作為對PC機串口進行操作,至少要有以下幾個后臺監(jiān)控機來實現(xiàn)實時監(jiān)控、司機自助式加油、晚步驟:①打開進行通訊的串口;②串口進行初始收稿日期:2003207211;收修定稿日期:2003209225作者簡介:吳先亮(19752),男,安徽樅陽人,碩士研究生,主要研究方向為工業(yè)自動化等。·172·控制工程第11卷化;③根據(jù)通訊事件對數(shù)據(jù)進行發(fā)送和接收;④通①應(yīng)用程序介紹根據(jù)多線程程序的開發(fā)方訊結(jié)束關(guān)閉通訊串口。法,該串口通信軟件由負責人機

6、交互的多線程和對串口進行處理的后臺輔助線程組成。主線程是串口通信程序的管理者,用來初始化串口(通過調(diào)用Win32API函數(shù)),自定義通信事件消息,創(chuàng)建、刪除輔助線程,進行人機交互的操作及協(xié)調(diào)好各線程運行。應(yīng)用程序流程如圖3所示。圖2應(yīng)用程序操作硬件機理2)設(shè)計思想①串口操作方式的選擇在加油站監(jiān)控系統(tǒng)串口通信中,采取的是典型的主從式通信方式(即前端加油機完全處于被動應(yīng)答狀態(tài)),應(yīng)用程序發(fā)送、接收數(shù)據(jù)時,對I/O口的讀寫操作有兩種方式,即同步方式與異步方式(重疊)。同步方式執(zhí)行時,必須等到事件和錯誤的發(fā)生才能返回,圖3串口通信程序框圖可能會導致線程的阻塞。異步方式執(zhí)行時,將等②

7、后臺輔助線程分析后臺輔助線程是串口待的動作放到后臺去執(zhí)行,再由程序去判斷是否通信軟件的核心,包括串口監(jiān)視線程,讀線程,寫線已經(jīng)完成,即使操作未完成函數(shù)也會立即完成,避程。串口監(jiān)視線程在后臺對串口進行實時監(jiān)視,當免了同步的缺陷。所以,系統(tǒng)設(shè)計采用了異步方監(jiān)測到預定義的事件時,立即調(diào)用相應(yīng)的線程進行式讀取I/O口。處理并向主線程發(fā)相應(yīng)的消息,如接收到數(shù)據(jù)就調(diào)②線程間的同步在有若干線程并行運行的用讀線程自動接收數(shù)據(jù)并進行處理,同時向主線程環(huán)境里,為避免對共享資源的訪問沖突,同步各不發(fā)送接收到數(shù)據(jù)的消息(WM-COMMRE

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。
关闭