當前位置:首頁 > 嵌入式 > 嵌入式硬件

敘述了PC機與嵌入式計算機系統(tǒng)的多線程串行通信的實現(xiàn)。介紹了多線程設(shè)計思想的必要性,給出了程序設(shè)計流程。

  1、引言

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

  2、系統(tǒng)功能簡介及基本結(jié)構(gòu)

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

  3、多線程串行通信實現(xiàn)流程

  3.1 用API函數(shù)實現(xiàn)串行通信的基本流程

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

  串行通信結(jié)束時調(diào)用函數(shù)CloseHandle()來關(guān)閉CreateFile()函數(shù)返回的串口句柄。

  3.2 PC機的程序?qū)崿F(xiàn)流程

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

  讀線程的優(yōu)先級>寫線程的優(yōu)先級>主線程的優(yōu)先級。

  在PC機端,創(chuàng)建輔助線程實時監(jiān)視串口通信狀態(tài),并由串口通信監(jiān)視線程根據(jù)通信狀態(tài)向主線程發(fā)送相應(yīng)的消息,由主線程分析處理。多線程串行通信法的最大優(yōu)點是程序?qū)邮諗?shù)據(jù)具有自主覺察能力,一旦輔助的通信監(jiān)視線程查詢到數(shù)據(jù)已經(jīng)發(fā)送到串行口上,輔助線程自動接收數(shù)據(jù)后,向主線程發(fā)送數(shù)據(jù)接收到的消息,應(yīng)用程序可根據(jù)該消息來處理通信串口傳送過來的數(shù)據(jù),并且采用通信監(jiān)視線程不占用CPU時間。

  程序?qū)崿F(xiàn)建立輔線程:串口讀線程,完成串口通信操作,用來監(jiān)視和管理串口通信的輸入。讀線程一直等待,從通信串口讀取數(shù)據(jù)并傳輸給主線程處理。主線程除完成串口通信資源的打開、參數(shù)配置以及關(guān)閉的工作外,還要完成讀線程的創(chuàng)建及關(guān)閉、多線程的協(xié)調(diào)、數(shù)據(jù)的中間處理與前端的人機交互等工作。

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

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

  3.3 嵌入式從機的程序?qū)崿F(xiàn)流程

  在嵌入式從機部分,通信實現(xiàn)采用的是單線程,初始化設(shè)備之后等待通信數(shù)據(jù),如果數(shù)據(jù)到達,則調(diào)用接收函數(shù)接收PC機數(shù)據(jù),并將數(shù)據(jù)解析,返回結(jié)果向PC機發(fā)送數(shù)據(jù)。如果沒有數(shù)據(jù)則繼續(xù)等待。程序流程圖如圖4所示

  4、 結(jié)束語

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

  參考文獻:

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

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉