《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > PC與嵌入式系統的多線程串行通信實現
PC與嵌入式系統的多線程串行通信實現
摘要: 敘述了PC機與嵌入式計算機系統的多線程串行通信的實現。介紹了多線程設計思想的必要性,給出了程序設計流程。...
Abstract:
Key words :

  1、引言

  目前,先進的嵌入式計算機以其優良的品質、高可靠性及模塊化,廣泛地應用于工業控制、航空航天、醫療、智能儀表、通信、數控、自動化生產設備、數據采集等領域。在實際應用中,有時需要借助微機強大的數據處理能力和豐富的軟件資源,使得組成的系統功能更為強大。這樣,為了提升系統的整體性能,必須實現PC機和嵌入式計算機之間的通信。在導航儀生產管理中,由于串行通信具有連接簡單、使用靈活方便、數據傳遞可靠等優點,采用串行通信方式進行數據下載。但由于Windows 95/98對系統底層操作采取了屏蔽的策略,不允許用戶對硬件I/O口進行直接操作,進行串行通信只能通過調用API函數來完成;同時Windows 9x通過消息隊列驅動管理程序,DOS中斷服務例程在其下面也很難實現,且實時性和可靠性都得不到保證;因此通過多線程編程解決這一問題,且能提高數據傳輸的吞吐量和應用程序的可靠性。

  2、系統功能簡介及基本結構

  本文以導航儀生產管理系統為背景進行論述。現場的嵌入式計算機給PC機上傳所存儲的信息,并從PC上下載最新的版本信息。而嵌入式計算機發送回來的數據可以通過PC機的人機界面生動實時地向用戶顯示。系統基本結構如圖1所示。PC機與嵌入式計算機(從機)之間按照RS-485協議連接。

  3、多線程串行通信實現流程

  3.1 用API函數實現串行通信的基本流程

  如圖2所示,首先CreatFile()函數打開通信資源,之后配置通信資源屬性由以下API函數完成:SetupComm()設置串行通信端口的輸入和輸出緩沖區的大小;通過設備控制塊DCB修改和設置串口工作狀態的參數,如波特率、數據位、奇偶校驗位等通信參數,SetCommState()將DCB結構中的內容寫入串口設置;SetCommTimeouts()設置串口讀寫操作的溢出時間。設置工作完成后串行通信可用ReadFile( )對通信資源進行讀操作,WriteFile()進行寫操作。

  串行通信結束時調用函數CloseHandle()來關閉CreateFile()函數返回的串口句柄。

  3.2  PC機的程序實現流程

  多線程的串口I/O通信編程中,將對串口的讀、寫操作視為同一進程的兩個不同任務,創建讀線程和寫線程分別完成對串口的讀、寫操作;由于異步串行通信事件的隨機性和實時性,要求通信線程優先于主線程被處理,所以設置各線程的優先級別如下:

  讀線程的優先級>寫線程的優先級>主線程的優先級。

  在PC機端,創建輔助線程實時監視串口通信狀態,并由串口通信監視線程根據通信狀態向主線程發送相應的消息,由主線程分析處理。多線程串行通信法的最大優點是程序對接收數據具有自主覺察能力,一旦輔助的通信監視線程查詢到數據已經發送到串行口上,輔助線程自動接收數據后,向主線程發送數據接收到的消息,應用程序可根據該消息來處理通信串口傳送過來的數據,并且采用通信監視線程不占用CPU時間。

  程序實現建立輔線程:串口讀線程,完成串口通信操作,用來監視和管理串口通信的輸入。讀線程一直等待,從通信串口讀取數據并傳輸給主線程處理。主線程除完成串口通信資源的打開、參數配置以及關閉的工作外,還要完成讀線程的創建及關閉、多線程的協調、數據的中間處理與前端的人機交互等工作。

  圖3為PC機的串口通信流程圖。左邊為主線程,右邊為子線程。實線框內為用戶界面的視類函數,虛線框內為通信類函數。用戶通過VC設計的界面上的控件打開串口,并且發送數據。當對串口的參數設置完畢,串口成功打開的同時,子線程即接收線程開始運行。用戶發送數據的同時,接收線程的控制函數也同時運行,當控制函數接收到讀串口事件時,調用讀串口函數,讀取串口接收到的數據。子線程一直運行,也不斷的讀取接收到的數據,并顯示在用戶的界面上。當用戶關閉串口,主線程要終止,此時子線程也收到主線程發送的關閉串口事件,終止線程,關閉串口。

  在實際通信過程中,由于干擾等原因,數據傳輸可能發生錯誤,因此還要加上實時錯誤處理以保證數據正常傳輸。這里不再贅述。

  3.3  嵌入式從機的程序實現流程

  在嵌入式從機部分,通信實現采用的是單線程,初始化設備之后等待通信數據,如果數據到達,則調用接收函數接收PC機數據,并將數據解析,返回結果向PC機發送數據。如果沒有數據則繼續等待。程序流程圖如圖4所示

  4、 結束語

  本文分析了多線程技術在實現PC機與單片機串口通信程序中的作用。通過兩個通信線程并發執行,加以同步管理,應用程序能夠在發送數據的同時接收數據,實時響應性強,高效可靠,有效地避免了數據丟失、程序鎖死等問題。在實際應用中結果令人滿意。

  參考文獻:

  [1] Mark Nelson. 串行通信開發指南.瀟湘工作室譯.M. 北京:中國水利水電出版社,2000.
  [2]求是科技 譚思亮等.Visual C++串口通信工程開發實例導航.M.北京:人民郵電出版社,2001
  [3]李朝青. PC機與單片機數據通信技術.C. 北京:北京航空航天大學出版社,2001.

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
久久久久久久激情视频| 国产精品久久久久久久久免费| 夜夜嗨av一区二区三区四季av| 久久精品国产99精品国产亚洲性色 | 亚洲精品无人区| 91久久精品www人人做人人爽| 欧美在线观看视频一区二区三区| 午夜精品久久久久久久99樱桃| 亚洲性图久久| 亚洲——在线| 欧美一级电影久久| 欧美在线视频免费播放| 欧美一区二区三区另类| 欧美一区二区三区四区在线 | 久久国内精品视频| 亚洲国产91色在线| 亚洲二区三区四区| 久久精品99国产精品日本| 久久不射网站| 亚洲国产三级在线| 亚洲免费电影在线观看| 一区二区高清视频| 亚洲永久在线| 久久不射中文字幕| 久久精品中文字幕一区二区三区| 久久国产精品色婷婷| 久久久精品动漫| 欧美 日韩 国产 一区| 欧美麻豆久久久久久中文| 欧美三级在线视频| 国产精品久久久久久超碰 | 欧美综合77777色婷婷| 亚洲国产天堂久久综合网| 亚洲精品综合久久中文字幕| 亚洲毛片网站| 亚洲欧美日韩中文在线制服| 久久成人久久爱| 老鸭窝亚洲一区二区三区| 欧美久久久久| 国产精品久久久久久久久免费| 国产欧美在线观看| 在线视频国内自拍亚洲视频| 亚洲美女啪啪| 午夜精品久久久99热福利| 亚洲国产高清一区| 中日韩在线视频| 欧美在线黄色| 欧美激情第3页| 国产精品亚洲产品| 伊人婷婷久久| av成人激情| 久久精品免费播放| 亚洲视频一区二区| 久久久久免费视频| 欧美精品在线看| 国产婷婷一区二区| 亚洲人体偷拍| 先锋亚洲精品| 日韩视频免费大全中文字幕| 午夜影院日韩| 欧美成人精品三级在线观看| 国产精品久久久久久久久免费| 伊人久久噜噜噜躁狠狠躁| 亚洲视频999| 91久久精品国产91久久性色tv | 免费一区视频| 国产精品嫩草影院一区二区| 在线观看欧美| 亚洲女同性videos| 亚洲免费av网站| 久久久久久九九九九| 欧美日韩日本网| 在线成人h网| 亚洲欧美久久久| 夜夜嗨av一区二区三区中文字幕 | 91久久精品国产91性色| 在线视频一区二区| 亚洲国语精品自产拍在线观看| 亚洲男人第一av网站| 免费欧美在线| 国产一区二区激情| 一区二区三区蜜桃网| 亚洲精品老司机| 久久久www| 国产精品日日摸夜夜添夜夜av| 亚洲国产欧美日韩精品| 欧美一区二区三区在线观看 | 欧美午夜在线观看| 最新国产乱人伦偷精品免费网站 | 亚洲大胆女人| 亚洲欧美综合精品久久成人| 欧美大片91| 国模精品一区二区三区色天香| 中文亚洲视频在线| 一本色道久久88综合日韩精品| 久久综合狠狠综合久久综青草| 国产精品免费观看视频| 99精品视频免费在线观看| 亚洲欧洲一区二区三区在线观看| 久久爱www| 国产精品永久免费在线| 在线视频精品一| 99热这里只有精品8| 欧美暴力喷水在线| 国内一区二区三区| 午夜视频一区在线观看| 午夜精品福利视频| 国产精品久久久久久亚洲毛片| 日韩午夜av在线| 亚洲最新中文字幕| 欧美黑人多人双交| 在线欧美三区| 亚洲国产精品一区在线观看不卡| 久久高清一区| 国产一区91| 欧美在线三级| 久久九九精品99国产精品| 国产精品一页| 欧美一区二区高清| 久久精品亚洲乱码伦伦中文| 国产午夜精品在线观看| 午夜一区二区三区不卡视频| 欧美综合国产| 国产一区二区在线观看免费播放 | 国产日韩一区二区三区在线| 午夜精品久久久久久久99水蜜桃| 欧美一区二区视频在线| 国产日韩精品视频一区| 欧美亚洲免费| 久久漫画官网| 1024精品一区二区三区| 亚洲日韩成人| 欧美区视频在线观看| 日韩天天综合| 亚洲男女自偷自拍| 国产精品色婷婷久久58| 欧美亚洲午夜视频在线观看| 久久精品国产成人| 国产综合婷婷| 91久久久久久国产精品| 欧美国产成人在线| 99这里只有精品| 午夜精品成人在线| 国产三区精品| 亚洲国产成人在线播放| 欧美日韩成人| 亚洲综合欧美日韩| 久久伊人精品天天| 亚洲精品欧美专区| 午夜精品亚洲一区二区三区嫩草| 国产午夜精品在线观看| 亚洲黄色影片| 欧美性天天影院| 欧美综合二区| 欧美激情综合色| 亚洲午夜久久久久久久久电影网| 久久精品国产精品| 亚洲激情成人| 午夜精品影院| 伊人久久大香线| 一区二区福利| 国产一区二区三区四区老人| 亚洲精品视频中文字幕| 国产精品久久久久aaaa九色| 欧美在线亚洲| 欧美日韩国产欧| 欧美与欧洲交xxxx免费观看| 免费不卡欧美自拍视频| 一区二区三区久久精品| 久久久一区二区| 日韩午夜av在线| 久久久久在线观看| 亚洲精品一线二线三线无人区| 午夜一区二区三区在线观看| 亚洲东热激情| 欧美一区二区三区在线| 在线精品观看| 欧美一级艳片视频免费观看| 亚洲国产精品va在线观看黑人| 亚洲欧美日韩精品久久久| 精品av久久久久电影| 亚洲欧美成人在线| 影音国产精品| 欧美一乱一性一交一视频| 亚洲电影av| 久久精品中文| 亚洲视频在线二区| 欧美激情国产高清| 欧美中文在线字幕| 国产精品白丝jk黑袜喷水| 亚洲欧洲一区二区三区| 国产精品永久免费视频| 一本一本久久| 亚洲成色999久久网站| 欧美在线欧美在线| aa日韩免费精品视频一| 欧美成人午夜激情| 欧美一区二区三区四区在线| 国产精品99一区二区| 99av国产精品欲麻豆|