99久久久国产精品免费蜜臀,国产SUV精品一区二区,麻豆国产VA免费精品高清在线,国产永久精品嫩草影院,久久精品国产99久久无毒不卡,国产精品亚洲成在人线,国产精品亚亚洲欧关中字幕_免费99久久国产综合_国产伦精品一区二区三区视频猫咪_国产片婬乱一级毛片调教视频_中日精品无码一本二本三本_久久久精品免费_91孕妇精品一区二区三区_中文无码日韩欧免费视频

您好智能化,歡迎訪問天氏庫力官網(wǎng)連日來!


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

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

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

計算機(jī)被越來越廣泛地使用在從外部機(jī)器或設(shè)濟(jì)上獲取數(shù)據(jù)發展,并在對數(shù)據(jù)進(jìn)行加工處理后進(jìn)步去控制外部機(jī)器或設(shè)備的應(yīng)用中重要作用。在此過程中重要組成部分,計算機(jī)與外部電路采用什么接口就顯得尤為重要近年來。PC機(jī)中的異步串行通信口因具有接口簡單銘記囑托,容易實(shí)現(xiàn)等優(yōu)點(diǎn),己被廣泛的使用交流等,成為一種常用接口製造業。
 
在Windows中,異步串行通信口驅(qū)動程序充當(dāng)了通信程序的角色自動化裝置,它對Windows程序設(shè)計人員隱藏了串口通信的底層操作狀態,通過Windows的API函數(shù)為用戶提供了更簡單的訪問接口-與文件的操作常相似的接口。
 
1.兩種實(shí)時串口通信方法
當(dāng)串口的通信電路收到一個數(shù)據(jù)后發揮效力,會向CPU發(fā)出個中斷請求全面革新,通過響應(yīng)這個中斷可以非常及時±也對數(shù)據(jù)進(jìn)行處理,可以說這是實(shí)時串口通信的最好不能進(jìn)行像響應(yīng)斷這樣低級的報作穩定發展,只能通過編寫設(shè)備驅(qū)動程序來實(shí)現(xiàn)方便。而編寫設(shè)備驅(qū)動程序比編寫普迎的應(yīng)用程序要復(fù)雜得多。且如果設(shè)備驅(qū)動程序有問題將有可能造成整個windows崩潰更好。所以基石之一,除非是在對實(shí)時性要求非常苛刻的應(yīng)用中,否則建議不要采用上述方法各有優勢。下面將介紹兩種能夠在windows中實(shí)現(xiàn)串口通信的簡單易行的方法技術發展。
 
1.1利用定時器
 
定時器是一種特殊的資源,它能夠被賦予一個時間值資料,此后每隔這個時間自動化,定時器便會向指定窗口發(fā)送一條定時器消息或調(diào)用一個指定的回調(diào)函數(shù)。因此利用定時器集成,我們便可以在一定程度上實(shí)現(xiàn)實(shí)時串口通信規模最大,設(shè)置定時器,進(jìn)入消息循環(huán),然后在收到一條定時器消息時便去接收傳到串口中的數(shù)據(jù)重要手段,并對數(shù)據(jù)進(jìn)行相應(yīng)的處理;然后繼續(xù)消息循環(huán)橫向協同,等待下條定時器消息不折不扣。這種通信方式有兩個需要澄清:
 
a.在等待定時器消息到達(dá)期間,可能有不止一個數(shù)據(jù)傳到串口中穩定性,這樣會造成數(shù)據(jù)丟失嗎最深厚的底氣?
因?yàn)閣indows本身對串口提供了一個數(shù)據(jù)緩沖區(qū),每當(dāng)收到一個數(shù)據(jù)后健康發展,windows會首先將該數(shù)據(jù)保存到該緩沖區(qū)中提供了有力支撐,因此只要在等待定時器消息到來期間傳到串口的數(shù)據(jù)不超過windows的串緩沖區(qū)的大小,便不會造成數(shù)據(jù)丟失堅實基礎。
 
b.如何確定定時器的時間值
定時器的時間值的確定要根據(jù)實(shí)際應(yīng)用環(huán)境中對系統(tǒng)的實(shí)時性要求及接收的數(shù)據(jù)試來確定積極。如果應(yīng)用環(huán)境對實(shí)時性要求不高、接收到的數(shù)據(jù)不多則可以將時間值設(shè)得大些前景;相反經驗,在對實(shí)時性要求相對較高的數(shù)據(jù)很多時,則應(yīng)將時間值設(shè)得小些長效機製。
 
另外進一步意見,windows對實(shí)時器的最小時間值有個限制。就是最小時間值為55ms等地,如果定時器被賦予比這個時間值更小的值產業,系統(tǒng)都認(rèn)為是55,也就是說共享應用,利用定時器進(jìn)行實(shí)時串口通信工具,最大的延遲可能為55ms。如果應(yīng)用環(huán)境要求實(shí)時處理的延遲低于55ms增強,或在55ms內(nèi)所接收到的數(shù)據(jù)大于windows串緩沖區(qū)的人小則不能使用這個實(shí)時通信方法
 
1.2利用多線程技術(shù)
在利用定時器產(chǎn)生的定時器消息可以每間隔一段時間去進(jìn)行一個串口通信處理倍增效應,那么為什么非要間隔一段才去處理而不是一直等待結果,一旦發(fā)現(xiàn)串口接收數(shù)據(jù)立即處理呢?這需要從windows消息循環(huán)機(jī)制說起重要意義。對于每個擁有窗口用戶界面的應(yīng)用程序規則製定,windows都要求它有個消息循環(huán)來處理各種消息(如鍵盤按鍵。鼠標(biāo)移動窗口繪制等)引領,一旦消息循環(huán)中止表現明顯更佳。該應(yīng)用程序的窗口將不再響應(yīng)任何消息。從用戶的角度來看多樣性,這個窗口就意味著己經(jīng)停止響應(yīng)性能穩定,是個死窗口試驗。所以規模,在一般的單線程應(yīng)用程序中,如果一直等待串口接收到數(shù)據(jù)新格局,就將造成程序的窗口界面不可訪問作用。
 
要解決這一問題可以采用多線程程序設(shè)計技術(shù)。當(dāng)系統(tǒng)創(chuàng)建一個進(jìn)程時特點,都會同時為該進(jìn)程創(chuàng)建一個線程稱之為主線程。普通的應(yīng)用程序只有這一個線程。消息循環(huán)依賴于它製度保障,所以它絕不應(yīng)該在消息循環(huán)之外停下來等待某事件發(fā)生聯動。
 
一個線程不行,考慮能否使用多個線程顯示。即在程序啟動后技術特點,人為的再創(chuàng)建一個線程稱之為輔助線程,這樣包括系統(tǒng)創(chuàng)建進(jìn)程時創(chuàng)建的線程就有兩個線程了共同努力。讓主線程執(zhí)行消息循環(huán)保持競爭優勢,而輔助線程則專門負(fù)責(zé)進(jìn)行串口通信。這樣一來便可以讓輔助線程停下來發展邏輯,專門等待傳到串口中的數(shù)據(jù)方案。一旦收到數(shù)據(jù)就立即執(zhí)行。對數(shù)據(jù)進(jìn)行處理發展機遇撔卵诱??梢姡ㄟ^多創(chuàng)建一個輔助線程使得串口通信的實(shí)時性比利用定時器要高得多統籌,比直接響應(yīng)中斷的方式相差不了多少了哪些領域。
 
2.試驗(yàn)機(jī)應(yīng)用中的比較
對彈簧試驗(yàn)機(jī)和材料試驗(yàn)機(jī)測試系統(tǒng)中有關(guān)上下位通信問的解決法,分別采用了上述兩種方法高質量,下面將從幾個不同的方面對這兩種方法的優(yōu)缺點(diǎn)進(jìn)行比較研究與應用。
 
①實(shí)現(xiàn)的難易程度上看
利用定時器來實(shí)現(xiàn)實(shí)時串行通信的方法可以說是很簡單的適應性,只需要設(shè)置一個定時器,然后在響應(yīng)windows的定時器消息時進(jìn)行一次串行通信有效保障。由于這種方法只需要一個線程因此也不存在線程同步的問題激發創作。
 
利用多線程來實(shí)現(xiàn)實(shí)時串行通信相對而言就比較復(fù)雜了,首先稍有不慎,要額外創(chuàng)建一個線程并要對該線程進(jìn)行管理探索,其次,兩個線程之間如果需耍進(jìn)行數(shù)據(jù)交換則還需要考慮到線程同步的問題全面協議。
 
②CPU資源占用率上看重要作用。
對于第一種方法。由于每隔一段時間就要查詢一次是否有數(shù)據(jù)到達(dá)講實踐。而且隨著應(yīng)用環(huán)境對實(shí)時性要求的提高增幅最大,這個時間間隔越短,如果不是很頻繁地接收到數(shù)據(jù)最為顯著,那么這些查詢勢必會減小CPU的利用率滿意度。
 
對于第二種方法則CPU的利用率較高,因?yàn)槿绻麤]數(shù)據(jù)到達(dá)生產能力,則串口通信的輔助線程處于等待狀態(tài)智慧與合力,只有串口接收到數(shù)據(jù)后該線程才會被激活重新進(jìn)的就緒狀態(tài)。因此它不會消費(fèi)CPU資源可持續。
 
③實(shí)時性程度的角度上看
第一種方法的實(shí)時性程度是可變的措施,與設(shè)置的定時器的時間間隔有關(guān),但最小間隔是55ms,因此這種方法所能達(dá)到的實(shí)時性程度并不是很高情況。而這55ms是被系統(tǒng)所制約的,無法通過提高計算機(jī)性能或提高算法效率等方法來縮小這一限制。
 
第二種方法則不同完善好,只要一接收到數(shù)據(jù)促進進步,程序便可以立即處理,因此實(shí)時性比第一種方法要高得多全過程,且制約實(shí)時性的唯一因素就是處理數(shù)據(jù)的那段代碼所消耗的時間發揮效力,這一時間可以通過提高計算機(jī)性能、提高算法效率或改變線程優(yōu)先級等手段來縮短勞動精神。從而進(jìn)一步提高實(shí)時性程度穩定發展。
 
由此看出,在實(shí)際應(yīng)用中應(yīng)該根據(jù)具體的應(yīng)用環(huán)境來選擇不同的方法:如果應(yīng)用環(huán)境對實(shí)時性要求不高時明顯,則可利用定時器更好,這將便于程序的調(diào)試也不會碰到因線程同步不好而造成系統(tǒng)出錯或死鎖的問題;如果應(yīng)用環(huán)境對實(shí)時性要求較高基礎上,用定時器無法實(shí)時或只能勉強(qiáng)實(shí)現(xiàn)時安全鏈,則應(yīng)考慮采用多線程技術(shù)行業分類。此時應(yīng)注意線程同步問題及對輔助線程的管理。
 
3.結(jié)束語
本文介紹的兩種方法可以較好地實(shí)現(xiàn)windows下的實(shí)時串口通信增持能力,且己經(jīng)能夠滿足大部分的應(yīng)用需求應用領域,這兩種實(shí)時串口通信的方法都分別在彈簧試驗(yàn)機(jī)和材料試驗(yàn)機(jī)測試系統(tǒng)有成功的應(yīng)用,并取得了令人滿意的效果提高鍛煉。然而我們應(yīng)該知道統籌推進,如果通過對windows對串口進(jìn)于操作。由于windows在發(fā)送數(shù)據(jù)之前或接收數(shù)據(jù)之都要進(jìn)行很多額外的處理進行培訓,這些都將消耗一定的CPU資源從而降低了處理實(shí)時性程度科普活動,因此如果應(yīng)用環(huán)境對實(shí)時要求相當(dāng)苛刻則這兩種方法都將不再適用,這時則應(yīng)考慮采用編寫設(shè)備驅(qū)動程序的方法了關鍵技術。

推薦閱讀

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

【責(zé)任編輯】:天氏庫力 版權(quán)所有:http://www.yks315.cn/轉(zhuǎn)載請注明出處

最新資訊

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

揭东县| 镇赉县| 台南县| 永济市| 新丰县| 彭阳县| 丘北县| 苍溪县| 内丘县| 大渡口区| 建瓯市| 合川市| 柘荣县| 桂平市| 定兴县| 望江县| 廉江市| 连云港市| 佛冈县| 叙永县| 定陶县| 故城县| 鄢陵县| 阜新| 鞍山市| 寻乌县| 榆林市| 武邑县| 崇礼县| 土默特左旗| 天水市| 高碑店市| 阳泉市| 南木林县| 西城区| 温宿县| 磐安县| 临颍县| 葫芦岛市| 云梦县| 哈密市|