日韩av片免费播放-日韩av东京社区男人的天堂-日韩av成人-日韩avdvd-成人影视在线观看-成人影视在线播放

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


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

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

返回列表來源:天氏庫力 發布日期 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.309114.com/轉載請注明出處

最新資訊

全國服務熱線134-0513-1752

欧美乱人伦中文字幕在线| 免费A级毛片无码视频| 99久久精品国产波多野结衣| 性无码一区二区三区在线观看| 日本无遮挡吸乳视频| 你再躲一个试试BY深巷无酒| 久久久久国色AV∨免费看| 国产欧美亚洲精品第一页| 动漫精品视频一区二区三区| AV夜夜躁狠狠躁日日躁| 伊人久久大香线蕉综合AV| 亚洲精品成人久久久| 亚洲AV成人无码久久精品黑人| 少妇午夜福利水多多| 日本japanese人妻护士| 女同久久精品国产99国产精品| 旧番无码熟肉动漫在线观看 | JAPANESE人妻少妇HD| 又大又粗弄得我好爽GIF| 亚洲美女高潮久久久久| 亚洲成AV人在线观看成年美女| 性荡视频播放在线视频7777| 为了撞上你1∨1SC| 天堂资源中文最新版在线一区| 三上悠亚被弄到痉挛惨叫AV| 日本免费AⅤ欧美在线观看 | 亚洲а∨天堂男人色无码蜜臀69| 熟妇高潮一区二区麻豆Av渉谷 | 艳妇乳肉豪妇荡乳| 亚洲色国产欧美日韩| 亚洲欧美日韩精品久久| 亚洲乱码AV中文一区二区| 亚洲成AV人片在线观看不卡| 亚洲AV无码专区在线电影成人| 亚洲AV成人片在线观看18 | chinese熟女老女人hd视频| 51成品网站W灬源码16| 真实国产乱子伦沙发睡午觉 | 久久精品午夜亚洲AV无码少妇| 精品无码一区二区三区爱欲| 精品无人区乱码1区2区3区在线| 精品人妻Av乱码一区二区| 九九精品99久久久香蕉| 久久精品网站免费观看| 久久夜色精品国产| 男女无遮挡XX00动态图120| 欧美18VIDEOSEX性极品| 欧美性猛交XXXX乱大交丰满| 日本50岁丰满熟妇XXXX| 少妇高潮抽搐无码久久AV | 野花高清在线观看免费3中文| 野花高清免费观看完整视频中文版 | 天海翼一区二区三区高清在线| 天天天天躁天天爱天天碰2018| 午夜福制92视频| 亚洲精品AⅤ无码精品丝袜足| 亚洲综合成人AⅤ在线观看| 在线观看AV无需播放器| JAPANESE少妇高潮喷水| 丰满少妇BBWBBW| 国产免费AV一区二区三区| 好男人视频在线观看| 久久久久国产精品免费免费搜索| 毛茸茸的中国女BBW| 啪啪男女爱高潮GIF| 少妇搡BBBB搡| 亚洲の无码国产の无码影院| 孕妇滴着奶水做着爱A| HEYZO高清中文字幕在线| 丰满人妻熟妇乱又伦精品视频三| 国产欧美日韩一区二区三区| 久久精品国产99久久久香蕉| 奶头被民工们吸得又红又肿怎么办| 人妻少妇精品无码专区二区| 天天摸天天碰天天添中文无码| 亚洲AⅤ日韩久久久久久| 亚洲中文字幕无码日韩| GAY2022空少被体育生暴菊| 丰满熟妇XXXX性久久久| 国精产品一品二品国精日本| 久久亚洲AV成人无码软件| 青青青国产手线观看视频2019| 熟妇高潮喷沈阳45熟妇高潮喷| 亚洲国产精华推荐单单品榜 | 99亚洲国产精品精华液| 国产V亚洲V天堂A无码久久蜜桃| 国偷自产一区二视频观看| 久青草国产97香蕉在线视频 | 少妇被粗大的猛烈进出96影院| 亚洲AV激情无码专区在线下载| 伊人精品久久久久7777| 波多野结衣与黑人AV| 国产亚洲精品无码专区| 免费看黄的成人APP| 他的舌头含有起了我的小豆豆| 亚洲人成网站999久久久综合| ZEESEA在日本| 好深啊太粗好烫撑满了| 男朋友要再做一次才同意分手 | 国产区图片区小说区亚洲区 | 免费无码国产V片在线观看| 少妇激情AV一区二区三区| 亚洲日韩亚洲另类激情文学一| YY8090福利午夜理论片| 国产在线无遮挡免费观看| 免费无码又爽又刺激高潮的动态图| 少妇搡BBBB搡BBB搡| 亚洲综合色婷婷在线观看| 动性配人ⅩXXXX配| 久久青青草原精品国产| 少妇被躁爽到高潮无码文| 夜夜天天噜狠狠爱2019| 堕落的人妻1―10雨柔| 久久精品国产自清天天线| 日韩乱码人妻无码中文视频| 亚洲熟妇色XXXXX无码| 动物交配的全过程| 老熟仑妇乱一区二区AV| 无码精品人妻一区二区三区影院 | 国产AV无码专区亚洲AⅤ| 久久久噜噜噜久久熟女| 天天槽夜夜槽槽不停| 中文无码一区二区三区在线观看| 国产精品日日摸夜夜添夜夜添20| 免费无码午夜福利片69| 亚洲AV网站在线观看| 凹凸国产熟女精品视频APP| 精品人妻无码中字系列| 色综合亚洲一区二区小说性色AⅤ| 伊人色综合久久天天小片| 国产精品女同一区二区| 欧美肉体裸交做爰XXXⅩ性玉| 亚洲久悠悠色悠在线播放| 国产成人精欧美精品视频| 男男AV纯肉无码免费播放无码| 亚洲AV无码成H人动漫在线观看 | 国内精品久久久久久久COENT| 人妻无码一区二区19P| 亚洲日韩中文第一精品| 国产电影在免费播放在线观看| 妺妺窝人体色WWW在线图片 | 亚洲色大成网站WWW看下面| 国产成人亚洲精品无码青青草原| 欧美成人看片黄A免费看| 亚洲另类无码专区丝袜| 国产YW855.CCM免费观看| 欧美精品偷自拍另类在线观看| 亚洲熟妇中文字幕日产无码| 国产女人好紧好爽| 色爽黄1000部免费软件下载| 92午夜少妇极品福利无码电影| 精品无码人妻一区二区三区| 无码秘 蜜桃一区二区三区| 被绑在机器上强行高潮H| 麻豆熟妇人妻XXXXXX| 亚洲精品无码专区久久| 国产猛男猛女超爽免费视频| 日韩亚洲欧美精品综合| CHINESE叫床对白VIDEOS| 久久人妻XUNLEIGE无码| 亚洲成AⅤ人在线观看无码| 国产成人无码精品XXXX| 日产乱码一二三区别免费观看| 91精品人妻欧美一区二区三区| 久久久久亚洲AV无码专区网站| 亚洲AV永久无码精品少妇| 国产精品偷窥熟女精品视频| 色悠久久久久综合网伊| 被强迫各种姿势侵犯N白月视频| 牧场ⅩXXXBBBB变态另类| 一級黃色毛片免費看| 精品人妻AV无码一区二区三区| 性色AV 一区二区三区| 国产好爽…又高潮了毛片| 日日摸夜夜添夜夜添AV| 宝宝又大了1V1| 欧美一性一乱一交一视频| 最新中文字幕AV专区| 噜噜狠狠色综合久色A站网址| 亚洲在AV极品无码高清| 精品噜噜噜噜久久久久久久久| 亚洲AⅤ天堂AV天堂无码| 国产精品视频色尤物YW| 玩弄JAPAN白嫩少妇HD小说| 国产成人精品午夜福利APP色多| 肉丝超薄少妇一区二区三区| 波多野结衣高清一区二区三区| 人妻AV鲁丝一区二区三区蜜臀| CHINESE国产AVVIDE| 欧美日韩中文国产一区发布| BIGBANG幼稚视频入门幼年| 欧美乱妇高清无乱码在线观看 | 国产精品夜间视频香蕉| 无码成人精品区在线观看| 国产精品国产三级国产AV麻豆| 无码超乳爆乳中文字幕久久| 国产精品国产三级国AV麻豆| 无码精品日韩专区| 国产在线乱子伦一区二区| 亚洲AV综合AV一区二区三区|