日本在线www-日本在线播放一区-日本在线不卡免费视频一区-日本在线不卡视频-成人影院久久久久久影院-成人影院一区二区三区

最新廣告
關(guān)注中國自動化產(chǎn)業(yè)發(fā)展的先行者!
工業(yè)智能邊緣計算2025年會
CAIAC 2025
2025工業(yè)安全大會
OICT公益講堂
當前位置:首頁 >> 案例 >> 案例首頁

案例頻道

多線程技術(shù)在嵌入式數(shù)據(jù)采集系統(tǒng)中的應(yīng)用
  • 企業(yè):控制網(wǎng)     領(lǐng)域:機器視覺    
  • 點擊數(shù):2223     發(fā)布時間:2006-05-19 09:57:55
  • 分享到:

(深圳信息職業(yè)技術(shù)學院,廣東 深圳 518029)  林  濤,耿  壯

林濤(1963-)

    男,碩士,現(xiàn)任深圳信息職業(yè)技術(shù)學院計算機應(yīng)用系講師,主要研究方向為單片機與嵌入式系統(tǒng)、網(wǎng)絡(luò)技術(shù)、信息安全。

1  引言

    目前,先進的嵌入式計算機以其優(yōu)良的品質(zhì)、高可靠性及模塊化,廣泛地應(yīng)用于工業(yè)控制、航空航天、醫(yī)療、智能儀表、通信、數(shù)控、自動化生產(chǎn)設(shè)備、數(shù)據(jù)采集等領(lǐng)域。在實際應(yīng)用中,為了提升系統(tǒng)的整體性能,必須實現(xiàn)PC機和嵌入式計算機之間的通信。由于串行通信具有連接簡單、使用靈活方便、數(shù)據(jù)傳遞可靠等優(yōu)點,可采用串行通信方式進行數(shù)據(jù)下載。但是,Windows操作系統(tǒng)對系統(tǒng)底層操作采取了屏蔽的策略,不允許用戶對硬件I/O口進行直接操作,進行串行通信只能通過調(diào)用API函數(shù)來完成;同時Windows 9x通過消息隊列驅(qū)動管理程序,DOS中斷服務(wù)例程在其下面也很難實現(xiàn),且實時性和可靠性都得不到保證;筆者考慮可以通過多線程編程解決這一問題,來提高數(shù)據(jù)傳輸?shù)耐掏铝亢蛻?yīng)用程序的可靠性。

    高速串口數(shù)據(jù)采集軟件的設(shè)計不同于普通串口通信,要求在接收數(shù)據(jù)采集設(shè)備發(fā)送大量數(shù)據(jù)的同時完成對已接受到數(shù)據(jù)的實時存儲,如果處理不好二者之間的關(guān)系,會造成數(shù)據(jù)的丟失甚至程序的崩潰。這就要求應(yīng)用程序能夠同時處理兩件以上不同的任務(wù)。Win32是基于線程的搶先式多任務(wù)操作系統(tǒng),使得應(yīng)用程序能夠同時執(zhí)行多個任務(wù),即在一個進程中可以同時運行多個線程。一個線程是指程序的一條執(zhí)行路徑,系統(tǒng)不停的在多個線程之間切換。由于時間很短,看上去多個線程在同時運行。對于通訊這種需要花費大量時間來測試I/O操作,同時又要保持響應(yīng)用戶其它操作的應(yīng)用程序來說,創(chuàng)建多線程是最佳選擇。

2  基于ARM的嵌入式數(shù)據(jù)采集系統(tǒng)

    本文以基于ARM的嵌入式數(shù)據(jù)采集系統(tǒng)為背景進行論述。現(xiàn)場的嵌入式數(shù)據(jù)采集系統(tǒng)采集各種傳感器發(fā)來的數(shù)據(jù),包括電流、電壓、溫度、壓力、振動等。采集系統(tǒng)通過485總線實時將數(shù)據(jù)送到給PC機,PC機通過多線程方式接收嵌入式數(shù)據(jù)采集系統(tǒng)發(fā)來的數(shù)據(jù),送本地數(shù)據(jù)庫系統(tǒng)或者通過Internet發(fā)往數(shù)據(jù)處理中心,如圖1所示。

    文中的嵌入式數(shù)據(jù)采集系統(tǒng)采用了由PHILIPS公司生產(chǎn)的ARM7TDMI微處理器LPC2214,LPC2214是基于一個支持實時仿真和跟蹤的16/32位ARM7TDMICPU的微控制器,并帶有16K字節(jié)片內(nèi)靜態(tài)RAM和256 KB嵌入的高速Flash存儲器。128位寬度的存儲器接口和獨特的加速結(jié)構(gòu)使32位代碼能夠在最大時鐘速率下運行。對代碼規(guī)模有嚴格控制的應(yīng)用可使用16位Thumb模式將代碼規(guī)模降低超過30%,而性能的損失卻很小。LPC2214較小的144腳封裝、極低的功耗、多個32位定時器、8路10位ADC(64腳和144腳封裝)以及多達9個外部中斷使它們特別適用于工業(yè)控制、醫(yī)療系統(tǒng)、訪問控制和POS機。可使用的GPIO(General Purpose Input/Output,通用輸入輸出)高達76(使用了外部存儲器)~112個(單片應(yīng)用)。由于內(nèi)置了寬范圍的串行通信接口,它們也非常適合于通信網(wǎng)關(guān)、協(xié)議轉(zhuǎn)換器、嵌入式軟Modern以及其它各種類型的應(yīng)用。


圖1 基于ARM的數(shù)據(jù)采集系統(tǒng)

3  用多線程技術(shù)實現(xiàn)數(shù)據(jù)采集系統(tǒng)和PC機的通信

    (1)  多線程程序設(shè)計思想 

    在32位Windows系統(tǒng)中,多任務(wù)是指系統(tǒng)可以同時運行多個進程,每個進程也可以同時執(zhí)行多個線程。進程就是應(yīng)用程序的運行實例。每個進程都有自己私有的虛擬地址空間,每個進程都有一個主線程,但可以建立另外的線程。進程中的線程是并行執(zhí)行的,每個線程占用CPU的時間由系統(tǒng)來劃分。

    可以把線程看作是操作系統(tǒng)分配CPU時間的基本實體,系統(tǒng)不停的在各個線程之間切換,它對線程的中斷是匯編語言級的。系統(tǒng)為每一個線程分配一個CPU時間段,某個線程只有在分配的時間段內(nèi)才有對CPU的控制權(quán)。

    高速串口數(shù)據(jù)采集的特點是接收數(shù)據(jù)的速度要求很高,數(shù)據(jù)量很大,根據(jù)這些特性,可以在程序中創(chuàng)建一個輔助工作者線程專門來監(jiān)視串行口的輸入。由于寫串口的數(shù)據(jù)量不大,不會太費時,所以可以在主線程中完成寫端口的任務(wù),不必另外創(chuàng)建線程。

    (2)  用API函數(shù)實現(xiàn)串行通信的基本流程

    首先CreatFile()函數(shù)打開通信資源,之后配置通信資源屬性由以下API函數(shù)完成:SetupComm()設(shè)置串行通信端口的輸入和輸出緩沖區(qū)的大小;通過設(shè)備控制塊DCB修改和設(shè)置串口工作狀態(tài)的參數(shù),如波特率、數(shù)據(jù)位、奇偶校驗位等通信參數(shù),SetCommState()將DCB結(jié)構(gòu)中的內(nèi)容寫入串口設(shè)置;SetCommTimeouts()設(shè)置串口讀寫操作的溢出時間。設(shè)置工作完成后串行通信可用ReadFile()對通信資源進行讀操作,WriteFile()進行寫操作。

    串行通信結(jié)束時調(diào)用函數(shù)CloseHandle()來關(guān)閉CreateFile()函數(shù)返回的串口句柄。

    (3)  數(shù)據(jù)采集線程

    多線程的串口I/O通信編程中,將對串口的讀、寫操作視為同一進程的兩個不同任務(wù),創(chuàng)建讀線程和寫線程分別完成對串口的讀、寫操作;由于異步串行通信事件的隨機性和實時性,要求通信線程優(yōu)先于主線程被處理,所以設(shè)置各線程的優(yōu)先級別如下:

    讀線程的優(yōu)先級>寫線程的優(yōu)先級>主線程的優(yōu)先級。

    主線程是數(shù)據(jù)采集程序的管理者,用來初始化串口(通過調(diào)用Win32 API函數(shù)),自定義通信事件消息,創(chuàng)建、刪除輔助線程,進行人機交互的操作及協(xié)調(diào)好各線程的運行。程序流程如圖2所示。


圖2  數(shù)據(jù)采集程序框圖

    左邊為主線程,右邊為子線程。用戶通過VC設(shè)計的界面上的控件打開串口,并且發(fā)送數(shù)據(jù)。當對串口的參數(shù)設(shè)置完畢,串口成功打開的同時,子線程即接收線程開始運行。用戶發(fā)送數(shù)據(jù)的同時,接收線程的控制函數(shù)也同時運行,當控制函數(shù)接收到讀串口事件時,調(diào)用讀串口函數(shù),讀取串口接收到的數(shù)據(jù)。子線程一直運行,也不斷的讀取接收到的數(shù)據(jù),并顯示在用戶的界面上。當用戶關(guān)閉串口,主線程要終止,此時子線程也收到主線程發(fā)送的關(guān)閉串口事件,終止線程,關(guān)閉串口。

    (4)  后臺輔助線程   

    后臺輔助線程是數(shù)據(jù)采集軟件的核心,包括串口監(jiān)視線程、讀線程。串口監(jiān)視線程在后臺對串口進行實時監(jiān)視,當監(jiān)視到預(yù)定義的事件時,立即調(diào)用相應(yīng)的線程進行處理并向主線程發(fā)相應(yīng)的消息,如接收到數(shù)據(jù)就調(diào)用讀線程自動接收數(shù)據(jù)并進行處理,同時向主線程發(fā)送。


圖3  串口監(jiān)視線程的實現(xiàn)

    接收到數(shù)據(jù)的消息,串口監(jiān)視線程發(fā)送完此消息后就執(zhí)行后面的程序代碼,繼續(xù)對串口進行監(jiān)視,做到了處理消息與監(jiān)視串口兩不誤,既保證了數(shù)據(jù)采集的實時性,又避免了資源的浪費,其處理過程如圖3所示。

4  結(jié)語

    本文分析了多線程技術(shù)在嵌入式數(shù)據(jù)采集系統(tǒng)中的應(yīng)用,利用多線程,可以實現(xiàn)嵌入式系統(tǒng)與PC機的高速通信。通過兩個通信線程并發(fā)執(zhí)行,加以同步管理,應(yīng)用程序能夠在發(fā)送數(shù)據(jù)的同時接收數(shù)據(jù),實時響應(yīng)性強,高效可靠,有效地避免了數(shù)據(jù)丟失、程序鎖死等問題。在數(shù)據(jù)采集的實際應(yīng)用中結(jié)果令人滿意。

    其他作者:耿壯(1954-),現(xiàn)任深圳信息職業(yè)技術(shù)學院計算機應(yīng)用系副教授,主要研究方向為單片機與嵌入式系統(tǒng)、網(wǎng)絡(luò)管理、多媒體技術(shù)。

參考文獻
[1]  S3C44B0X RISC Microprocessor Data Sheet, Samsung semiconductor Ltd, 2001.
[2]  蔣亞群, 張春元. ARM微處理器體系結(jié)構(gòu)及其嵌入式SOC[J]. 計算機工程.
[3]  王田苗. 嵌入式系統(tǒng)設(shè)計與實例開發(fā)―基于ARM微處理器與μC/OS-Ⅱ?qū)崟r操作系統(tǒng)[M]. 北京:清華大學出版社, 2002, 9.
[4]  江俊輝. 基于ARM的嵌入式系統(tǒng)硬件設(shè)計[J]. 微計算機信息, 2005.
[5]  BOBINI A, CORBET J.Linux Device Drevers[M]. O

熱點新聞

推薦產(chǎn)品

x
  • 在線反饋
1.我有以下需求:



2.詳細的需求:
姓名:
單位:
電話:
郵件:
主站蜘蛛池模板: 欧美成人tv在线观看免费-欧美成人tv-欧美成人h版影院在线播放-欧美成人h版影片在线观看-欧美成人h版白雪公主-欧美成人h版 | 久久99热不卡精品免费观看,色播综合,国产一级视频在线观看网站,激情综合激情,aa视频在线观看,五月天综合激情网 | 日本成人一区,欧美日韩亚洲无线码在线观看,交换伦交,在线观看国产视频,日韩欧美视频一区,国产精品欧美一区二区三区不卡 | 制服师生一区二区三区在线-制服师生av在线-制服 丝袜 亚洲 中文 综合-直接看毛片-欧美视频在线观看视频-欧美视频在线观看免费最新 | 一个人看的在线www高清视频-一个人看的小说在线阅读-一个人看的手机视频www-一个人看的视频在线观看免费播放动漫-久久99精品久久久久久秒播放器-久久99精品久久久久久秒播 | 黄色在线免费播放-黄色在线免费-黄色在线看网站-黄色在线观看网站-色综合小说天天综合网-色综合小说久久综合图片 | 亚洲色图网站-亚洲色图图片专区-亚洲色图图片区-亚洲色图图片-精品久久久中文字幕一区-精品久久久中文字幕二区 | 亚洲精品高清国产一久久,免费观看国产,国产欧美日韩精品在钱,国产在线观看入口,国产日产欧美精品一区二区三区,国产一级在线观看 7788理论片在线观看-7788av-777午夜精品免费播放-777奇米影视一区二区三区-蜜桃传媒在线-蜜桃成熟时1997在线看免费看 | a级国产精品片在线观看-a级国产乱理伦片野外-a级国产乱理伦片在线观看a-a级国产乱理片在线观看-a级国产片-a级国产视频 | 精品国产亚一区二区三区,91久久精品国产一区二区,久久精品国产国产精品四凭,91午夜精品亚洲一区二区三区,精品在线看,国产视频资源在线观看 | 六月婷婷国产精品综合-六六影院午夜伦理-六级黄色片-六度影院最新-最近的2019中文字幕国语完整版-最近的2019中文字幕国语版 | 麻豆黑色丝袜jk制服福利网站-麻豆精品传媒视频观看-麻豆精品传媒一二三区在线视频-麻豆精选传媒4区2021-在线视频99-在线视频a | 中文国产成人精品久久下载-中文国产成人精品久久久-中文国产成人精品久久app-中文国产-99精品影视-99精品视频在线免费观看 | 波多野结衣的av一区二区三区-波多野结衣的电影-波多野结衣的中文-波多野结衣第二页视频-波多野结衣电影网-波多野结衣电影一区二区 | 香蕉网站男人网站-香蕉网站狼人久久五月亭亭-香蕉网在线视频-香蕉网在线观看-香蕉网伊-香蕉婷婷 中文有码中文字幕免费视频-中文有码视频-中文伊人-中文一区在线观看-欧美性综合-欧美性在线视频 | 欧美黑寡妇香蕉视频-欧美国产一区视频在线观看-欧美国产一区二区三区-欧美国产一区二区-国产成人精品第一区二区-国产成人精品2021欧美日韩 | 五月天婷婷缴情五月免费观看,久久综合热,高清中国一级毛片免费,国产一级高清免费观看,普通话对白国产精品一级毛片,日韩在线不卡视频 | 欧美视频综合-欧美视频中文字幕-欧美视频在线观在线看-欧美视频在线观看网站-直接观看黄网站免费视频-正在播放久久 | 欧美性高清极品猛交-欧美性高清hd-欧美性高清bbbbbbxxxxx-欧美性妇-中国一级毛片视频免费看-中国一级毛片国产高清 | 日韩中文字幕视频在线观看-日韩中文字幕视频在线-日韩中文字幕视频-日韩中文字幕久久久经典网-亚洲不卡高清免v无码屋-亚洲成_人网站图片 | 欧美日本一道免费一区三区-欧美日本一道高清二区三区-欧美日本一道道一区二区三-欧美日本亚洲国产一区二区-在线观看黄的网站-在线观看国内自拍 | 欧美一区二区三区香蕉视-欧美一区二区三区网站-欧美一区二区三区四区在线观看-欧美一区二区三区四区五区六区-欧美一区二区三区四区视频-欧美一区二区三区视视频 欧美性xxxxxx性,国产精彩视频在线观看,亚洲欧美视屏,久艹网,国产日韩欧美中文,亚洲欧美经典 | 国产一级视频在线-国产一级视频免费-国产一级视频久久-国产一级视频播放-日本中文字幕在线视频站-日本中文字幕在线视频 | 欧美视频综合-欧美视频中文字幕-欧美视频在线观在线看-欧美视频在线观看网站-直接观看黄网站免费视频-正在播放久久 | 国产福利视频在线观看福利-国产福利视频情侣视频-国产福利视频-国产福利美女福利视频免费看-国产鲁鲁视频在线播放-国产噜噜噜精品免费 | 天海翼中文字幕-天海翼一区 在线播放-天海翼无码-天海翼视频在线-国产精品网红女主播久久久-国产精品外围在线观看 | 久久精品久噜噜噜久久-久久精品久久久久-久久精品久久久-久久精品久久精品久久精品-亚洲影视一区-亚洲影视精品 | 一个色综合网-一个色综合高清在线观看-一个色在线视频-一个色亚洲-一个人在线观看的www-一个人在线观看www中国 | 欧美一区二区三区香蕉视-欧美一区二区三区网站-欧美一区二区三区四区在线观看-欧美一区二区三区四区五区六区-欧美一区二区三区四区视频-欧美一区二区三区视视频 欧美性xxxxxx性,国产精彩视频在线观看,亚洲欧美视屏,久艹网,国产日韩欧美中文,亚洲欧美经典 | 丰满的日本护士-丰满的日本护士xxx-丰满的少妇一区二区三区免费观看-丰满的熟妇岳中文字幕-丰满多毛少妇做爰视频-丰满多毛少妇做爰视频爽爽和R | 欧美日韩在线成人免费-欧美日韩在线成人看片a-欧美日韩在线不卡-欧美日韩在线播放-自拍偷拍三级-自拍偷拍欧美亚洲 | 久草视频精品-久草视频免费-久草视频免费看-久草视频免费在线播放-天天操操-天天操操操操操 | 久久99国产亚洲高清-久久99国产亚洲高清观看首页-久久99国产亚洲精品观看-久久99国产一区二区-久久99国产一区二区三区-久久99国产综合精品 | 性欧美高清精品video-性欧美高清videofree-性欧美俄罗斯-性欧美xxxx乳高跟-国产真实乱偷人视频-国产真实乱了全集mp4 | yy一级毛片免费视频-yyyyyy高清成人观看-yy6080理aa级伦大片一级毛片-yy4080午夜理论一级毛片-色吊丝在线观看国产-色的视频在线观看免费播放 | 黑人巨大精品欧美-黑人巨大精品欧美一区二区-黑人巨大精品欧美一区二区o-黑人巨大精品欧美一区二区免费-黑人巨大跨种族video-黑人巨大两根一起挤进A片 | 国产精品高潮呻吟AV久久-国产精品高潮呻吟AV久久床戏-国产精品高潮呻吟AV久久动漫-国产精品高潮呻吟AV久久黄-国产精品高潮呻吟AV久久无码-国产精品高潮呻吟爱久久AV无码 | 国产精品jizzjizz-国产精品hd在线播放-国产精品hd免费观看-国产精品blacked在线-日日人人-日日欧美 | 日韩伦理在线-日韩伦理片-日韩久久网-日韩精选-日韩精品综合-日韩精品资源 | 精品无码免费黄色网站-精品无码免费一区二区三区-精品无码免费在线播放-精品无码免费专区-精品无码免费专区午夜-精品无码欧美黑人又粗又 | 久久精品片-久久精品欧美一区二区-久久精品女人毛片国产-久久精品嫩草影院免费看-在线日韩国产-在线日韩不卡 |