久热精品在线_不卡专区在线_亚洲综合国产激情另类一区_99久久婷婷国产综合精品首页 _精品国产午夜肉伦伦影院_日韩在线观看一区二区三区_国际精品欧美精品_激情亚洲网站_狠狠久久综合_狠久久av成人天堂

您好,歡迎訪問(wèn)天氏庫(kù)力官網(wǎng)!


首頁(yè) > 技術(shù)支持 > 技術(shù)文庫(kù) >

試驗(yàn)機(jī)的兩種實(shí)時(shí)串口通信方法詳解

返回列表來(lái)源:天氏庫(kù)力 發(fā)布日期 2018-12-25 瀏覽:

計(jì)算機(jī)被越來(lái)越廣泛地使用在從外部機(jī)器或設(shè)濟(jì)上獲取數(shù)據(jù),并在對(duì)數(shù)據(jù)進(jìn)行加工處理后進(jìn)步去控制外部機(jī)器或設(shè)備的應(yīng)用中。在此過(guò)程中,計(jì)算機(jī)與外部電路采用什么接口就顯得尤為重要。PC機(jī)中的異步串行通信口因具有接口簡(jiǎn)單,容易實(shí)現(xiàn)等優(yōu)點(diǎn),己被廣泛的使用,成為一種常用接口。
 
在Windows中,異步串行通信口驅(qū)動(dòng)程序充當(dāng)了通信程序的角色,它對(duì)Windows程序設(shè)計(jì)人員隱藏了串口通信的底層操作,通過(guò)Windows的API函數(shù)為用戶提供了更簡(jiǎn)單的訪問(wèn)接口-與文件的操作常相似的接口。
 
1.兩種實(shí)時(shí)串口通信方法
當(dāng)串口的通信電路收到一個(gè)數(shù)據(jù)后,會(huì)向CPU發(fā)出個(gè)中斷請(qǐng)求,通過(guò)響應(yīng)這個(gè)中斷可以非常及時(shí)±也對(duì)數(shù)據(jù)進(jìn)行處理,可以說(shuō)這是實(shí)時(shí)串口通信的最好不能進(jìn)行像響應(yīng)斷這樣低級(jí)的報(bào)作,只能通過(guò)編寫設(shè)備驅(qū)動(dòng)程序來(lái)實(shí)現(xiàn)。而編寫設(shè)備驅(qū)動(dòng)程序比編寫普迎的應(yīng)用程序要復(fù)雜得多。且如果設(shè)備驅(qū)動(dòng)程序有問(wèn)題將有可能造成整個(gè)windows崩潰。所以,除非是在對(duì)實(shí)時(shí)性要求非常苛刻的應(yīng)用中,否則建議不要采用上述方法。下面將介紹兩種能夠在windows中實(shí)現(xiàn)串口通信的簡(jiǎn)單易行的方法。
 
1.1利用定時(shí)器
 
定時(shí)器是一種特殊的資源,它能夠被賦予一個(gè)時(shí)間值,此后每隔這個(gè)時(shí)間,定時(shí)器便會(huì)向指定窗口發(fā)送一條定時(shí)器消息或調(diào)用一個(gè)指定的回調(diào)函數(shù)。因此利用定時(shí)器,我們便可以在一定程度上實(shí)現(xiàn)實(shí)時(shí)串口通信,設(shè)置定時(shí)器,進(jìn)入消息循環(huán),然后在收到一條定時(shí)器消息時(shí)便去接收傳到串口中的數(shù)據(jù),并對(duì)數(shù)據(jù)進(jìn)行相應(yīng)的處理;然后繼續(xù)消息循環(huán),等待下條定時(shí)器消息。這種通信方式有兩個(gè)需要澄清:
 
a.在等待定時(shí)器消息到達(dá)期間,可能有不止一個(gè)數(shù)據(jù)傳到串口中,這樣會(huì)造成數(shù)據(jù)丟失嗎?
因?yàn)閣indows本身對(duì)串口提供了一個(gè)數(shù)據(jù)緩沖區(qū),每當(dāng)收到一個(gè)數(shù)據(jù)后,windows會(huì)首先將該數(shù)據(jù)保存到該緩沖區(qū)中,因此只要在等待定時(shí)器消息到來(lái)期間傳到串口的數(shù)據(jù)不超過(guò)windows的串緩沖區(qū)的大小,便不會(huì)造成數(shù)據(jù)丟失。
 
b.如何確定定時(shí)器的時(shí)間值
定時(shí)器的時(shí)間值的確定要根據(jù)實(shí)際應(yīng)用環(huán)境中對(duì)系統(tǒng)的實(shí)時(shí)性要求及接收的數(shù)據(jù)試來(lái)確定。如果應(yīng)用環(huán)境對(duì)實(shí)時(shí)性要求不高、接收到的數(shù)據(jù)不多則可以將時(shí)間值設(shè)得大些;相反,在對(duì)實(shí)時(shí)性要求相對(duì)較高的數(shù)據(jù)很多時(shí),則應(yīng)將時(shí)間值設(shè)得小些。
 
另外,windows對(duì)實(shí)時(shí)器的最小時(shí)間值有個(gè)限制。就是最小時(shí)間值為55ms,如果定時(shí)器被賦予比這個(gè)時(shí)間值更小的值,系統(tǒng)都認(rèn)為是55,也就是說(shuō),利用定時(shí)器進(jìn)行實(shí)時(shí)串口通信,最大的延遲可能為55ms。如果應(yīng)用環(huán)境要求實(shí)時(shí)處理的延遲低于55ms,或在55ms內(nèi)所接收到的數(shù)據(jù)大于windows串緩沖區(qū)的人小則不能使用這個(gè)實(shí)時(shí)通信方法
 
1.2利用多線程技術(shù)
在利用定時(shí)器產(chǎn)生的定時(shí)器消息可以每間隔一段時(shí)間去進(jìn)行一個(gè)串口通信處理,那么為什么非要間隔一段才去處理而不是一直等待,一旦發(fā)現(xiàn)串口接收數(shù)據(jù)立即處理呢?這需要從windows消息循環(huán)機(jī)制說(shuō)起。對(duì)于每個(gè)擁有窗口用戶界面的應(yīng)用程序,windows都要求它有個(gè)消息循環(huán)來(lái)處理各種消息(如鍵盤按鍵。鼠標(biāo)移動(dòng)窗口繪制等),一旦消息循環(huán)中止。該應(yīng)用程序的窗口將不再響應(yīng)任何消息。從用戶的角度來(lái)看,這個(gè)窗口就意味著己經(jīng)停止響應(yīng),是個(gè)死窗口。所以,在一般的單線程應(yīng)用程序中,如果一直等待串口接收到數(shù)據(jù),就將造成程序的窗口界面不可訪問(wèn)。
 
要解決這一問(wèn)題可以采用多線程程序設(shè)計(jì)技術(shù)。當(dāng)系統(tǒng)創(chuàng)建一個(gè)進(jìn)程時(shí),都會(huì)同時(shí)為該進(jìn)程創(chuàng)建一個(gè)線程稱之為主線程。普通的應(yīng)用程序只有這一個(gè)線程。消息循環(huán)依賴于它,所以它絕不應(yīng)該在消息循環(huán)之外停下來(lái)等待某事件發(fā)生。
 
一個(gè)線程不行,考慮能否使用多個(gè)線程。即在程序啟動(dòng)后,人為的再創(chuàng)建一個(gè)線程稱之為輔助線程,這樣包括系統(tǒng)創(chuàng)建進(jìn)程時(shí)創(chuàng)建的線程就有兩個(gè)線程了。讓主線程執(zhí)行消息循環(huán),而輔助線程則專門負(fù)責(zé)進(jìn)行串口通信。這樣一來(lái)便可以讓輔助線程停下來(lái),專門等待傳到串口中的數(shù)據(jù)。一旦收到數(shù)據(jù)就立即執(zhí)行。對(duì)數(shù)據(jù)進(jìn)行處理。可見(jiàn),通過(guò)多創(chuàng)建一個(gè)輔助線程使得串口通信的實(shí)時(shí)性比利用定時(shí)器要高得多,比直接響應(yīng)中斷的方式相差不了多少了。
 
2.試驗(yàn)機(jī)應(yīng)用中的比較
對(duì)彈簧試驗(yàn)機(jī)和材料試驗(yàn)機(jī)測(cè)試系統(tǒng)中有關(guān)上下位通信問(wèn)的解決法,分別采用了上述兩種方法,下面將從幾個(gè)不同的方面對(duì)這兩種方法的優(yōu)缺點(diǎn)進(jìn)行比較。
 
①實(shí)現(xiàn)的難易程度上看
利用定時(shí)器來(lái)實(shí)現(xiàn)實(shí)時(shí)串行通信的方法可以說(shuō)是很簡(jiǎn)單的,只需要設(shè)置一個(gè)定時(shí)器,然后在響應(yīng)windows的定時(shí)器消息時(shí)進(jìn)行一次串行通信。由于這種方法只需要一個(gè)線程因此也不存在線程同步的問(wèn)題。
 
利用多線程來(lái)實(shí)現(xiàn)實(shí)時(shí)串行通信相對(duì)而言就比較復(fù)雜了,首先,要額外創(chuàng)建一個(gè)線程并要對(duì)該線程進(jìn)行管理,其次,兩個(gè)線程之間如果需耍進(jìn)行數(shù)據(jù)交換則還需要考慮到線程同步的問(wèn)題。
 
②CPU資源占用率上看。
對(duì)于第一種方法。由于每隔一段時(shí)間就要查詢一次是否有數(shù)據(jù)到達(dá)。而且隨著應(yīng)用環(huán)境對(duì)實(shí)時(shí)性要求的提高,這個(gè)時(shí)間間隔越短,如果不是很頻繁地接收到數(shù)據(jù),那么這些查詢勢(shì)必會(huì)減小CPU的利用率。
 
對(duì)于第二種方法則CPU的利用率較高,因?yàn)槿绻麤](méi)數(shù)據(jù)到達(dá),則串口通信的輔助線程處于等待狀態(tài),只有串口接收到數(shù)據(jù)后該線程才會(huì)被激活重新進(jìn)的就緒狀態(tài)。因此它不會(huì)消費(fèi)CPU資源。
 
③實(shí)時(shí)性程度的角度上看
第一種方法的實(shí)時(shí)性程度是可變的,與設(shè)置的定時(shí)器的時(shí)間間隔有關(guān),但最小間隔是55ms,因此這種方法所能達(dá)到的實(shí)時(shí)性程度并不是很高。而這55ms是被系統(tǒng)所制約的,無(wú)法通過(guò)提高計(jì)算機(jī)性能或提高算法效率等方法來(lái)縮小這一限制。
 
第二種方法則不同,只要一接收到數(shù)據(jù),程序便可以立即處理,因此實(shí)時(shí)性比第一種方法要高得多,且制約實(shí)時(shí)性的唯一因素就是處理數(shù)據(jù)的那段代碼所消耗的時(shí)間,這一時(shí)間可以通過(guò)提高計(jì)算機(jī)性能、提高算法效率或改變線程優(yōu)先級(jí)等手段來(lái)縮短。從而進(jìn)一步提高實(shí)時(shí)性程度。
 
由此看出,在實(shí)際應(yīng)用中應(yīng)該根據(jù)具體的應(yīng)用環(huán)境來(lái)選擇不同的方法:如果應(yīng)用環(huán)境對(duì)實(shí)時(shí)性要求不高時(shí),則可利用定時(shí)器,這將便于程序的調(diào)試也不會(huì)碰到因線程同步不好而造成系統(tǒng)出錯(cuò)或死鎖的問(wèn)題;如果應(yīng)用環(huán)境對(duì)實(shí)時(shí)性要求較高,用定時(shí)器無(wú)法實(shí)時(shí)或只能勉強(qiáng)實(shí)現(xiàn)時(shí),則應(yīng)考慮采用多線程技術(shù)。此時(shí)應(yīng)注意線程同步問(wèn)題及對(duì)輔助線程的管理。
 
3.結(jié)束語(yǔ)
本文介紹的兩種方法可以較好地實(shí)現(xiàn)windows下的實(shí)時(shí)串口通信,且己經(jīng)能夠滿足大部分的應(yīng)用需求,這兩種實(shí)時(shí)串口通信的方法都分別在彈簧試驗(yàn)機(jī)和材料試驗(yàn)機(jī)測(cè)試系統(tǒng)有成功的應(yīng)用,并取得了令人滿意的效果。然而我們應(yīng)該知道,如果通過(guò)對(duì)windows對(duì)串口進(jìn)于操作。由于windows在發(fā)送數(shù)據(jù)之前或接收數(shù)據(jù)之都要進(jìn)行很多額外的處理,這些都將消耗一定的CPU資源從而降低了處理實(shí)時(shí)性程度,因此如果應(yīng)用環(huán)境對(duì)實(shí)時(shí)要求相當(dāng)苛刻則這兩種方法都將不再適用,這時(shí)則應(yīng)考慮采用編寫設(shè)備驅(qū)動(dòng)程序的方法了。

推薦閱讀

【本文標(biāo)簽】:試驗(yàn)機(jī)實(shí)時(shí)串口通信方法

【責(zé)任編輯】:天氏庫(kù)力 版權(quán)所有:http://www.greenjie.net/轉(zhuǎn)載請(qǐng)注明出處

最新資訊

全國(guó)服務(wù)熱線134-0513-1752

久热精品在线_不卡专区在线_亚洲综合国产激情另类一区_99久久婷婷国产综合精品首页 _精品国产午夜肉伦伦影院_日韩在线观看一区二区三区_国际精品欧美精品_激情亚洲网站_狠狠久久综合_狠久久av成人天堂
久热成人在线视频| 日韩精品看片| 黄色在线观看www| 久久99高清| 三级中文字幕在线观看| 久久综合影院| 精品中文视频| 欧美日韩精品一区二区三区视频| 久久久国产精品一区二区中文| 亚洲综合另类| 经典三级久久| 久久精品国产免费| 午夜亚洲福利在线老司机| 国产一区二区三区四区三区四| 极品尤物一区| 欧美日韩一区二区高清| 日韩av在线播放网址| 国产精品丝袜在线播放| 亚洲人成人一区二区三区| 免费日韩av| 白嫩白嫩国产精品| 麻豆久久久久久久| 蜜臀久久99精品久久久久宅男| 日日欢夜夜爽一区| av资源网在线播放| 极品日韩av| 日韩av黄色在线| 欧美一站二站| 99riav视频一区二区| 麻豆成人在线| 久久免费大视频| 日本亚洲三级在线| 少妇高潮一区二区三区99| 另类图片国产| 外国成人激情视频| 午夜久久99| 日日夜夜精品| 男人天堂视频在线观看| 亚洲国产综合在线看不卡| 国际精品欧美精品| 日本中文在线一区| 伊人成年综合电影网| 日韩视频一二区| 欧美一区激情| 久久91导航| 麻豆久久精品| 99久久久久| 久久精品一级| 日韩中文在线电影| 三级一区在线视频先锋| 欧美综合在线视频观看 | 国产午夜精品一区在线观看 | 亚洲自拍偷拍网| 性感美女一区二区在线观看| 妖精视频成人观看www| 国产专区一区| 精品理论电影在线| 久久天堂久久| 在线一区视频| 极品少妇一区二区三区| 国产伦理久久久久久妇女| 国产精品中文字幕亚洲欧美| 麻豆精品久久精品色综合| 欧美独立站高清久久| 国产高清不卡| 亚洲91视频| 欧美一区二区三区久久| 国产精品亚洲欧美一级在线 | 老司机一区二区三区| 在线视频观看日韩| 91精品国产自产在线观看永久∴| 日韩激情中文字幕| 综合亚洲自拍| 欧美高清hd| 日本精品在线中文字幕| 一区二区乱码| 国产色播av在线| 久久亚洲国产精品一区二区| 好看的日韩av电影| 黄色精品免费| 蜜臀久久精品| 日本亚洲欧美天堂免费| 北条麻妃一区二区三区在线观看| 日韩欧美天堂| 激情综合激情| 视频二区不卡| 国产日产精品_国产精品毛片| 久久久噜噜噜久久狠狠50岁| 日韩主播视频在线| 免费在线成人| 精品久久久亚洲| 蜜臀久久久99精品久久久久久| 国产精品久久777777毛茸茸| 69精品国产久热在线观看| 久久亚洲一区| 一区久久精品| 成人av资源电影网站| 91视频综合| 亚洲综合色站| 欧美99久久| 亚洲成人高清| 北条麻妃在线一区二区免费播放| 石原莉奈一区二区三区在线观看| 日本成人在线不卡视频| 青青一区二区| 经典三级一区二区| 日本精品视频| 国产精品久久久久久| 久久99国内| 麻豆久久精品| 韩国三级大全久久网站| 黄色av一区| 国产精品大片免费观看| 亚洲午夜极品| 久久精品国产99| 91精品久久久久久久久久不卡| 亚洲人成在线网站| 7m精品国产导航在线| 三级在线观看一区二区| 国产亚洲字幕| 99亚洲视频| 亚洲午夜剧场| 国产亚洲永久域名| 91久久青草| 亚洲女优在线| 国产传媒欧美日韩成人精品大片| 91久久中文| 国产精品久久久久久| 日韩电影免费在线观看网站| 日韩在线观看一区二区| 亚洲精华一区二区三区| 日韩成人激情| 69精品国产久热在线观看| 国产精品啊啊啊| 日本欧美韩国国产| 蜜桃在线一区二区三区| 亚洲动漫在线观看| sm捆绑调教国产免费网站在线观看| 你懂得影院夜精品a| 欧美aaaaaa午夜精品| 五月精品视频| 国产videos久久| www.九色在线| 六月丁香久久丫| 久久尤物视频| 午夜在线精品偷拍| 日韩在线影视| а√天堂资源国产精品| 亚洲欧美综合| 国产欧美一区二区三区精品观看| 国产黄大片在线观看| 欧美中文一区| 综合精品一区| 中文字幕高清在线播放| 99视频精品视频高清免费| 麻豆成人在线观看| 免费av成人在线| 精品成人自拍视频| 欧美精品导航| 极品视频在线| 欧美69视频| 日韩精品一区二区三区中文字幕| 欧美在线一级| 99伊人成综合| 99re8这里有精品热视频8在线| 欧美美女福利视频| 先锋资源久久| 51亚洲精品| 亚洲精品麻豆| 亚洲欧美小说色综合小说一区| 亚洲二区视频| 麻豆久久一区| 欧美日韩亚洲一区| 九九色在线视频| 香蕉成人久久| 成人三级视频| 亚洲精品中文字幕99999| 日韩欧美三区| 免费在线看成人av| 欧美日韩女优| 日韩在线你懂的| 欧美日韩一区二区三区四区在线观看| 蜜桃久久久久久| 亚洲第一毛片| 亚洲精品aⅴ| 国产不卡精品在线| 国产精品久久久久久久久免费高清 | 伊色综合久久之综合久久| 亚洲日韩成人| 国产极品嫩模在线观看91精品| 蜜臀av性久久久久蜜臀aⅴ四虎 | 久久精品一区二区不卡| 久久av网站| 欧美女王vk| 欧美a一区二区| 国产精品.xx视频.xxtv| 亚洲欧美se| 超碰99在线| 在线一区视频| 欧美网站在线|