拉力机|拉力试验机|拉力测试机厂家-苏州天氏库力精密仪器有限公司

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


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

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

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

最新資訊

全國服務熱線134-0513-1752

主站蜘蛛池模板: 紫铜箔(带)导电胶带定做,定做紫铜箔(带)导电胶带厂家[价格]-艾飞敏铜箔 | 万通汽车学校,汽车学校,汽修学校,汽修培训学校,汽车美容学校,汽车维修学校,学汽修-武汉万通汽车学校官方网站 | 找刑事辩护律师_找深圳刑事律师多少钱★王平聚【清华博士/刑法教授】 | 粮食烘干机|玉米烘干机|稻谷烘干机|小麦烘干机|大型连续烘干塔|500吨连续烘干塔|钢板仓|-郑州新光矿山机械制造有限公司 | 消防栓保温罩,玻璃钢灭火器箱,玻璃钢消防沙箱-潍坊辰阳玻璃钢有限公司 | 新洲际教育-一站式留学解决方案领航者【官网】 | 水硬度在线分析仪-氟离子|悬浮固体浓度分析仪-ldo分析仪-上海植茂 | 土石_泥石分离机_无轴滚筒筛_振动筛 - 巩义市鑫利重工机械制造有限公司 | 制冷设备|冷库|空调|配件【制冷通】国内领先的制冷服务平台 | 深圳沃亚游学官网丨国外游学丨国际夏冬令营丨美国游学线路丨出国短期游学丨亲子海外游丨游学咨询: 0755-83843308 | 意大利留学-意大利语培训-马来西亚留学【长青藤海外】 | 湖南净声源环保科技有限公司是一家专业从事噪声治理和建筑声学设计生态环境综合治理服务的企业,专业从事株洲电梯隔音治理,湘潭中央空调降噪处理,衡阳邵阳冷却塔噪音治理,岳阳常德大型风机噪声隔音降噪,张家界空压机噪声治理,益阳配电房变压器噪声治理,专业郴州永州工厂企业车间噪声治理,怀化娄底专业机械设备减振降治理,武汉噪音治理隔音降噪公司,孝感噪音治理,立式球磨机的噪声控制,专业隔音降噪公司,、以及各类机械动力设备减振降噪噪声治理的公司,同时为客户提供咨询与解决方案 | 轻质隔墙板厂家-加气隔墙板_grc轻质隔墙板_空心实心复合隔墙板_水泥混凝土轻质隔墙板批发价格 | 上海离婚律师|婚姻律师离婚纠纷咨询解答-金牌上海离婚律师团队 | 停车场收费管理系统,通道闸系统,门禁系统,东莞停车场收费管理系统,东莞通道闸系统,-东莞市骄阳交通设备有限公司 | 中国(北京)国际园林绿化设备展览会 | 小程序定制,小程序开发,北京小程序公司,网站建设,网站制作,北京网站建设,北京网站制作 | 水电站泵站LCU控制屏_发电机保护_变压器保护_逆功率保护_防孤岛保护装置_ 电力微机保护网 | 立式离心泵_不锈钢自吸泵_液下泵_变频无负压供水设备-大东海泵业无锡有限公司 | 饮料瓶-白酒瓶-绿色玻璃瓶-山东玻璃瓶厂家-枣庄市金泰玻璃有限公司 | 卧式镗铣床,道斯镗铣机床加工中心-江苏道斯数控科技有限公司 | 智能门锁管理-公寓管理软件-智能水电表管理系统-深圳安安智能 | 阻垢剂|缓蚀剂|杀菌剂|分散剂|水处理剂|印染助剂|水处理药剂|造纸助剂|膜阻垢剂|缓蚀剂|HEDP|ATMP|螯合剂-山东凯瑞化学有限公司 水处理药剂生产厂家 | 深圳市福田区建筑装饰设计协会 | 微行科技(MicroX):半导体装备核心供应商-超高真空炉 | 上海上市答谢酒会_企业年会_新品上市发布会_周年/开业庆典_会议会务_活动策划布置演出公司 | 深圳市桃子自动化科技有限公司-点胶机_灌胶机_焊锡机_螺丝机_SCARA机器人 | 无锡紫苹果装饰首页-高端别墅装修设计,专业别墅装饰公司 | 生物除臭_废气处理_玻璃钢风机_布袋除尘_脱硫脱硝_催化燃烧_生物滤池_广东正州环保科技股份有限公司 | 西安测试仪-西安电压测试仪-西安电流测试仪-西安热油汽水测试仪-西安阻抗测试仪-西安时间速度测试仪-西安电力设备厂家-西安中洲电力设备有限公司 | 山东汇河环保科技集团有限公司,水囊水袋,水罐,油囊,预压水袋,吊重水袋_山东汇河环保科技集团有限公司,水囊水袋,水罐,油囊,预压水袋,吊重水袋 | 河北撒旺肥业有限公司 | 破碎机设备-锤式颚式反击式圆锥移动冲击式破碎机厂家-成都大宏立机器公司 | 专业无机盐,化工产品检测公司,水处理剂检测公司,第三方水质检测机构—准诺检测 | 压滤机专用泵|柱塞泥浆泵|咸阳华星泵业有限公司 | 自动龙门裁断机-四柱|液压裁断机-吸塑裁断机-东莞市源德机械科技有限公司 | 曲阜市好博医疗器械有限公司_手术无影灯厂家,电动手术台出售,妇科手术台价格 | 室内模拟高尔夫,射箭馆-北京鹰搏蓝天科技有限公司 | 上海升降机_导轨式升降货梯_移动铝合金升降机_上海力盏电动液压平台厂家 | 热门网页游戏平台_页游排行榜_新开网页游戏开服表_599游戏 | 山东土工膜_复合土工膜_防水板生产厂家-山东德旭达土工材料有限公司 |