久久久精品久久久久三级-久久久精品久久视频只有精品-久久久精品免费观看-久久久精品免费热线观看-国产成人午夜福在线观看-国产成人系列

您好,歡迎訪問天氏庫力官網!


首頁 > 技術支持 > 技術文庫 >

試驗機的兩種實時串口通信方法詳解

返回列表來源:天氏庫力 發布日期 2018-12-25 瀏覽:

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

推薦閱讀

【本文標簽】:試驗機實時串口通信方法

【責任編輯】:天氏庫力 版權所有:http://www.llldw.cn/轉載請注明出處

最新資訊

全國服務熱線134-0513-1752

人妻系列无码专区免费视频| 欧美成人精品高清在线播放 | 亚洲成AV人片在线观看无线 | 国产美女视频免费观看| 亚洲国产精品无码久久久动漫| 麻花传媒MV一二三区别在哪里看| 啊宝宝的扇贝真会夹C视频| 无码国产精品一区二区免费式影视| 精品国产乱码久久久久软件 | 久久精品国产亚洲ΑV忘忧草| 99久久精品免费看国产一区二区| 书房双乳晃动干柴烈火| 娇妻系列交换27部多P小| 中国小YOUNV女YOUNV| 日韩人妻无码一区二区三区综合| 国内精品视频在线观看九九 | 亚洲国产成人精品无码区在线| 美女MM131爽爽爽| 丰满熟妇乱又伦精品| 亚洲国产欧美在线人成长黄瓜| 你日的我走不了路了| 公交车上掀开麻麻超短裙| 亚洲国产成人五月综合网| 女邻居的大乳中文字幕理论| 国产成人无码精品一区在线观看 | 韩国无码AV片在线观看网站| 最新欧美精品一区二区三区| 色综合久久88色综合天天| 精品VPSWINDOWS妇女| BRAZZERSHD欧美大屁股| 午夜爽爽爽男女污污污网站| 两个男用舌头到我的蕊花 | 欧亚成年男女深夜百度网盘| 国产熟女一区二区| 综合人妻久久一区二区精品| 挺进绝色老师的紧窄小肉六视频| 久久人妻AV无码中文专区| 成人无码精品1区2区3区免费看| 亚洲国产成人无码网站大全| 青草青草视频2免费观看| 国产综合久久久久| AV在线播放网站| 性一交一乱一伦一色一情孩交 | 亚洲午夜久久久久久久久电影网 | 99久久免费只有精品国产| 无码人妻精品一区二区三区在线 | 亚洲人色婷婷成人网站在线观看| 人人爽人人爽人人片AV免费| 精品国产污污免费网站入口| 波多野结衣在线观看av| 亚洲乱人伦中文字幕无码| 日本三级强伦姧护士HD| 精品综合无码奶水一区二区| 成年美女黄网站18禁免费| 亚洲人成色7777在线观看不卡| 日本强伦姧人妻69影院| 精品久久香蕉国产线看观看亚洲| 被公侵犯怀孕的人妻中文字幕| 亚洲人成网站18禁止无码| 日韩人妻一区二区三区免费| 久久久久夜色精品国产| 国产VA免费精品观看精品| 中文在线天堂А√在线| 性丰满ⅩXXOOO性FREE| 欧美色成人综合天天影院| 狠狠色噜噜狠狠狠狠色综合久AV| 被CAO的奶水直喷高H| 亚洲性XXXXX极品少妇| 太紧了夹得我的巴好爽欧美 | 精品精品国产高清A级毛片| 餐桌下他深深顶撞H| 亞洲成AV無碼人在線觀看| 婷婷综合久久中文字幕蜜桃三电影| 免费看涩涩无遮挡的漫画| 国产综合亚洲专区在线| 本免费AV无码专区一区| 一本大道久久精品 东京热| 我和几个亲戚都做了爱| 欧美人与动牲交A欧美精品Z| 精品亚洲AⅤ在线观看| 国产成人AV三级在线观看按摩| 1000部拍拍拍18勿入免费视频下载| 亚洲AV色区一区二区三区| 日韩精品人成在线播放| 秘密列车动漫在线观看| 好男人在在线社区WWW在线影院| 差差漫画免费页面漫画在线观看| 尤物一二三区在线内射美女 | 色偷偷色噜噜狠狠成人免费视频 | 中文字幕人乱码中文字幕| 亚洲AV无码熟妇在线观看| 日韩乱码人妻无码中文字幕视频| 蜜臀AV在线播放| 激情综合五月丁香五月激情| 国产69精品久久久久久人妻精品| 99久久久国产精品免费牛牛| 亚洲熟妇无码八V在线播放| 无码人妻AⅤ一区二区三区夏目| 轻点灬大JI巴大粗长了视频| 巨胸喷奶水视频WWW免费动漫| 国内精品久久久久久无码不卡| 豆国产96在线 | 亚洲| 99精产国品一二三产| 亚洲色偷偷综合亚洲AV| 性VODAFONEWIFI另类| 色一情一乱一伦一区二区三欧美| 欧美激情精品久久久久久| 久久精品国产99国产精品导航| 国产麻豆放荡AV剧情演绎| 厨房里我扒了岳的内裤| 99热都是精品久久久久久| 一区二区三区无码被窝影院| 亚洲VA中文字幕无码久久| 婷婷久久综合九色综合97| 日本高清视频www| 女人大胆张开荫道口∞| 久久天天躁狠狠躁夜夜2020| 韩漫画免费网站在线观看| 国产成人精品一区二区秒拍| 被蹂躏的她 电影| 97丨九色丨国产人妻▌| 永久亚洲成A人片777777| 亚洲精品在看在线观看| 亚洲AⅤ精品一区二区三区| 少妇被躁爽到高潮无码文| 人人做天天爱夜夜爽2020| 牛鞭进入女人下身的视频| 久久亚洲精品无码播放| 精品久久久BBBB人妻| 国产亚洲欧美日韩在线一区二区三| 国产成人剧情AV麻豆映画| 成人无码特黄特黄AV片在线| TPU色母和PA6色母的性能| 666西方最大但人文艺术| 又嫩又硬又黄又爽的视频| 亚洲一线二线三线品牌精华液| 亚洲成A人片在线观看无码下载 | 日韩中文人妻无码不卡| 热RE99久久精品国产99热| 欧美18VIDEOSEX性极品| 免费无遮挡禁18污污网站| 老司机精品成人无码AV| 久久精品国产久精久精| 精品免费久久久久久久| 含羞草传媒入口免费网站腾讯网| 国产青草视频在线观看| 国产大学生酒店在线播放| 粉嫩性色av一区二区三区| 超碰CAO已满18进入离开| ZOOM与动物ZOOM| JAPANESE日本护士HD| 99在线国内在线视频22| 4D肉蒲团之性奴大战奶水| 重口老太大和小伙乱| 中文字幕无码一线二线三线| 中国女RAPPER大妈| 制服 丝袜 人妻 专区一本| 在线观看片免费人成视频无码| 伊人久久大香线蕉AV色| 揄拍成人国产精品视频| 在线麻豆精东9制片厂AV影现网 | 久久丫免费无码一区二区| 久久久亚洲熟妇熟| 看国产黄大片在线观看| 理论片午午伦夜理片久久| 美女把尿口扒开让男人桶爽| 美女图片禁欲系高级感| 男女上下拱试看120秒| 年轻老师的滋味3在观整有限中字| 欧美XXXX做受欧美88XX| 欧美人与性动交a欧美精品| 欧美最猛黑人XXXⅩ猛男欧视频| 欧美日韩在线视频一区| 强开小娟嫩苞又嫩又紧| 日本Α片无遮挡在线观看| 日韩精品无码成人专区| 色翁荡息又大又硬又粗又爽| 天美传媒MV在线播放高清视频| 无码AV免费不卡在线观看| 小SAO货都湿掉奶头好硬男女| 亚洲AV涩涩涩成人网站| 亚洲精品成人福利网站APP| 亚洲色欲综合一区二区三区小说| 一边做一边潮喷30P| 专干熟肥老妇人视频在线看| GOOD电影网韩国三级无码| 被客人玩得站不起来大前端| 动漫成人无码精品一区二区三区| 国产A级三级三级三级| 国产美女mv一区二区竹| 狠狠做深爱婷婷久久综合一区| 久草玖玖玖爱在线资源| 久久久亚洲裙底偷窥综合| 男女久久久国产一区二区三区| 欧美一级 片内射黑人i| 日韩精品无码一区二区三区视频| 太深太粗太大太猛太爽了视频| 小雪被老外黑人撑破了视频 | 国产美女裸体无遮挡免费视频高潮| 韩国全部三级伦在线播放|