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

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

案例頻道

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

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

林濤(1963-)

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

1  引言

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

    (4)  后臺(tái)輔助線程   

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


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

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

4  結(jié)語

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

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

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

熱點(diǎn)新聞

推薦產(chǎn)品

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



2.詳細(xì)的需求:
姓名:
單位:
電話:
郵件:
主站蜘蛛池模板: 国产三级在线观看视频-国产三级在线免费-国产三级在线免费观看-国产三级自拍亚洲性爱在线-国产三级做爰在线播放-国产三級三級三級A片视频 | 91香蕉导航-91香蕉成人免费高清网站-91香蕉成人-91午夜视频-91午夜精品亚洲一区二区三区-91网址在线观看 | 四虎影视永久免费观看网址-四虎影视永久地址www成人污-四虎影视网站-四虎影视网-日韩欧美高清色码-日韩欧美国产免费看清风阁 | 五月天婷婷基地,久久精品1,中文字幕第一页亚洲,99精品国产高清一区二区三区香蕉,国产视频观看,日韩精品在线第一页 | 国产欧美日韩中文久久-国产欧美日韩在线一区二区不卡-国产欧美日韩在线人成aaaa-国产欧美日韩在线观看一区二区三区-婷婷国产天堂久久综合五月-婷婷99视频精品全部在线观看 | 99re最新网址-99re这里只有精品在线观看-99re这里只有精品视频在线观看-99re这里只有精品视频-嗯好爽视频-嗯啊在线观看免费影院 99只有精品-99这里只有精品在线-99这里只有精品视频-99这里只有精品66视频-欧美国产视频-欧美国产日韩综合 | 天美传媒影视mv-天美传媒视频原创在线观看-天美传媒免费-天美传媒麻豆自制剧-国产精品线在线精品国语-国产精品线在线精品 | 在线日韩亚洲-在线日韩视频-在线日韩欧美一区二区三区-在线日韩欧美-久久精品嫩草影院-久久精品免视看国产盗摄 | 亚洲 欧美 日韩 在线,97热久久免费频精品99国产成人,另类激情亚洲,久久99九九精品免费,久久综合精品国产一区二区三区,2020精品极品国产色在线观看 | 天天干天天操天天碰-天天干天天操天天摸-天天干天天操天天干-天天干天天操天天插-欧美一级久久久久久久久大-欧美一区二区VA毛片视频 | 在线亚洲不卡,三上悠亚一区二区观看,91伊人久久,婷婷激情五月,中文字幕久久精品,色综合久久中文字幕 | 热久久久久久-热久久久久久久-热久久免费-热久久视久久精品18国产-国产欧美日韩网站-国产欧美日韩亚洲 | 免费的成人a视频在线观看-免费岛国小视频在线观看-免费岛国-免费大香伊蕉在人线国产-免费大片黄在线观看日本-免费大片黄手机在线观看 | 美女内射毛片在线看-美女内射毛片在线看免费人动物-美女内射视频WWW网站午夜-美女强奷到抽搐在线播放-美女视频黄a视频全免费网站色窝-美女视频黄的全是免费 | 久久99国产精品一区二区,欧美日韩另类在线,婷婷四月开心色房播播网,收集最新中文国产中文字幕,亚洲综合激情六月婷婷在线观看,欧美一级淫片 | 99久久这里只精品国产免费,毛片在线播放网站,狠狠色狠色综合曰曰,国产在线成人精品,欧美色视频网,激情五月婷婷综合 | 久久夜视频-久久夜色视频-久久夜色精品国产欧美-久久夜色精品国产噜噜小说-久久夜色精品国产-久久亚洲这里只有精品18 | 亚洲香蕉久久综合网-亚洲香蕉久久一区二区三区四区-亚洲香蕉久久一区二区-亚洲香蕉国产高清在线播放-净空法师最新忏悔文-精油按摩理论片 | 黄色在线免费播放-黄色在线免费-黄色在线看网站-黄色在线观看网站-色综合小说天天综合网-色综合小说久久综合图片 | 五月天婷婷缴情五月免费观看,久久综合热,高清中国一级毛片免费,国产一级高清免费观看,普通话对白国产精品一级毛片,日韩在线不卡视频 | 一个色综合高清在线观看-一个色在线视频-一个色在线-一个人在线免费观看www-久久99网-久久99视频免费 | 极品美女在线观看国产一区-极品嫩模一区二区三区-极品人妻被黑人中出-极品少妇xxxxⅹ另类-极品少妇xxxx精品少妇-极品少妇XXXX精品少妇偷拍 | 日本a天堂,亚洲精品乱码久久久久久,欧美精品一区二区三区在线播放,国产亚洲视频在线观看,国产丰满眼镜女在线观看,亚洲日韩欧美综合 | 久久久无码精品亚洲日韩按摩,天天摸夜夜摸夜夜狠狠摸,久久99精品久久久久久牛牛影视,妻色成人网,色丁香六月,aa黄色片 | 牛牛精品专区在线-牛牛超碰 国产-牛和人交videos欧美-妞干网手机免费视频-99精品视频在线观看免费-99精品视频在线观看re | 99只有精品-99这里只有精品在线-99这里只有精品视频-99这里只有精品66视频-欧美国产视频-欧美国产日韩综合 | 欧美日韩国产精品-欧美日韩国产剧情-欧美日韩国产伦理-欧美日韩国产欧美-you ji z z日本人在线观看-you jizz jizz japan日本 | 久热久热精品在线观看-久青草影院-久青草国产在线视频亚瑟影视-久青草国产在线视频-正在播放黑人杂交派对卧槽-正在播放国产尾随丝袜美女 | yy一级毛片免费视频-yyyyyy高清成人观看-yy6080理aa级伦大片一级毛片-yy4080午夜理论一级毛片-色吊丝在线观看国产-色的视频在线观看免费播放 | 国内自拍中文字幕,久久久一本精品99久久精品66,精品400部自拍视频在线播放,国产麻豆精品在线,日韩欧美高清视频,久久久免费精品视频 | 91九色精品国产免费-91九色蝌蚪在线-91九色李宗瑞在线观看-91九色露脸-91九色视频-91九色视频在线观看 | 国产福利自产拍在线观看-国产福利资源网在线观看-国产福利资源-国产福利专区精品视频-双性少爷受糙汉攻h-双性肉文高h | 国产成a人亚洲精v品无码性色-国产成a人亚洲精v品无码樱花-国产成a人亚洲精v品在线观看-国产成a人亚洲精品无码樱花-国产成版人视频网-国产成版人视频网站免费下 | 天堂网在线观看-天堂网在线www最新版在线-天堂网在线www资源在线-天堂网在线www资源网-精品久久一区二区-精品久久一区 | 午夜欧美福利-午夜欧美成人香蕉剧场-午夜欧美成人久久久久久-午夜久久网-国产亚洲男人的天堂在线观看-国产亚洲免费观看 | 免费黄色在线观看视频-免费黄色在线观看-免费黄色在线电影-免费黄色在线-成人精品一区二区三区电影-成人精品一区二区三区 | 精品久久久久久久中文字幕,日韩欧美国产电影,日韩国产欧美一区二区三区在线,青青草原国产一区二区,日本成人久久,欧美在线视频二区 | 四虎永久免费影院在线-四虎永久免费影院-四虎永久免费网站免费观看-四虎永久免费观看-国产精品麻豆综合在线-国产精品麻豆一区二区三区 | 国产精品va在线播放我和闺蜜-国产精品va在线观看无码不卡-国产精品V日韩精品V在线观看-国产精品V无码A片在线看-国产精品wwwcom976con-国产精品XXXXX免费A片 | 在线亚洲不卡,三上悠亚一区二区观看,91伊人久久,婷婷激情五月,中文字幕久久精品,色综合久久中文字幕 | 国产成人无码影视-国产成人无码专区-国产成人无码综合-国产成人无码综合亚洲日韩-国产成人无码综合亚洲日韩榴莲-国产成人无套精品在线观看 |