在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > PC機與單片機多機主從互通的實現

            PC機與單片機多機主從互通的實現

            作者: 時間:2014-01-16 來源:網絡 收藏

              0 引言

              PC 機與組成的主從系統(tǒng)很常見,在很多領域中都得到了應用。在這些系統(tǒng)中,PC 機與之間一般采用串行通信方式,按照一定的格式,進行數據、指令的交換,完成的控制、數據前送,或者單片機上數據、狀態(tài)等信息的回送。

              當單片機數量較多時,比較容易實現PC 機對所有單片機的控制。一般在這種情況下,采用廣播的方式。

              所有單片機都掛在一條串行數據總線上,只需對單片機進行地址編碼,將地址數據和控制報文進行廣播,單片機接收廣播數據后進行地址比對,篩選出所需的數據,完成相應的數據傳送。

              如果PC 機要對單片機多機進行廣播,并回傳所有單片機的信息,即單片機還要發(fā)送數據至,再加上單片機數量較多(大于100 個單片機),則要實現PC 機與單片機多機的互相通信,難度是比較大的。

              本文提出了一種切實可行的方法,通過實際電路搭建和調試,實現了PC機與單片機多機的互相通信,達到了預定的目標,使該系統(tǒng)具有如下功能:

             ?。?)PC機可以對所有100多個單片機進行控制,根據需要,發(fā)送不同控制字到達每個單片機;

             ?。?)PC機對單片機的狀態(tài)修改是隨機的、沒有規(guī)律的;

              (3)所有單片機將自身的一些狀態(tài)信息按照順序回傳至PC機。

              1 互通信的幾種實現方法

              PC 機至多個單片機的廣播比較簡單,難度較大的是多個單片機發(fā)送數據至PC機。由于100多個單片機均掛在一個數據總線上,系統(tǒng)設計的難點就在于數據總線控制權的傳遞,絕對不能出現有2個或者2個以上設備同時向總線上發(fā)送數據。系統(tǒng)設計之初,考慮了兩種總線控制方式有接力式和點名式:

              (1)接力式總線控制方式

              這種控制方式的基本思路是:初始化后,所有單片機在接收完PC機數據后,處于串行接收狀態(tài),不占用總線控制權。PC機發(fā)出回送開始指令,第1個單片機響應該指令,并立即占有總線控制權,向總線上的PC機發(fā)送數據,數據發(fā)送完成后,緊接著第1個單片機發(fā)送控制指令,通知第2個單片機,同時第1個單片機退出總線控制權,處于接收狀態(tài);第2個單片機接收到第1個單片機的開始指令后,和前面第1個單片機一樣,開始向總線上發(fā)送數據,并在結束傳送之后通知第3個單片機,如此這般,不斷接力傳輸,輪流控制總線,直至最后一個單片機完成數據傳送。在單片機控制總線,進行回傳的過程中,如果要通過PC機向某個或者某些單片機傳送數據時,PC機軟件會自動將這些數據存儲下來,等到最后一個單片機接收向PC機送數據之后,PC機再占用數據總線,開始向單片機傳送數據。

             ?。?)點名式總線控制方式

              該控制方式與接力式控制方式大體相同,不同的是這種控制方式需要等待PC 機點名指令。系統(tǒng)初始化后,單片機接收PC機指令、數據之后,PC機發(fā)送點名指令,讓第1個單片機開始傳送數據,第1個單片機接收該指令后,立即占用總線,開始傳送數據,傳送結束后,發(fā)送結束指令至PC 機,PC 機在接收該結束指令后,立即占用總線,再發(fā)送點名指令,讓第2個單片機開始傳送數據,如此不斷動作,直至最后一個單片機結束傳送。

              在單片機傳送數據時,如果PC 機要送數據至單片機,可以在接收完某個單片機數據之后,暫停發(fā)送點名指令,直接發(fā)送數據至某個或者某些單片機。待數據發(fā)送完成后,繼續(xù)接上原先的中斷的點名順序號,繼續(xù)向后點名、傳送數據。綜合考慮這兩種總線控制方式,不難發(fā)現,由于沒有來回傳遞點名的指令時間開銷,接力式的傳輸效率會略高于點名式,所以,一開始還是采用了接力式的控制方式。

              但是在進行大的系統(tǒng)聯調時,問題出現了。由于接力式脫離PC機的過程干預,一旦出現某個單片機程序跑飛、死機時,整個程序就沒法進行下去,一直處于等待狀態(tài),整個系統(tǒng)就癱瘓了。調試過程中出現過好幾次死機的情況。最后,不得不回頭修改總體方案,采用點名式的控制方式。如果中間某個單片機出現異常,沒有按照預定的程序回傳數據,則PC機就可以判斷該單片機死機,在經歷過一段等待時間后,自行跳過該單片機,點名下一個單片機,繼續(xù)后續(xù)的回傳和程序。如果該故障單片機還在占用總線,影響下一個單片機的工作,則對單片機公用的復位端發(fā)送一個整體復位信號,讓所有單片機復位。經過重新調整方案后,經過長時間運行,均沒有出現整機死機的狀況,總體運行情況良好。另外,這種控制方式還有其他兩種控制方式所不具有的優(yōu)勢:

              可以隨時打斷回傳,幾乎實時發(fā)送新的指令到某個或者某些單片機上,該功能是非常實用的。

              2 系統(tǒng)的硬件構成

              根據系統(tǒng)的總體要求,構建了如圖1所示的硬件平臺。

              

              整個系統(tǒng)采用RS 485 總線結構,RS 485 為差分平衡數字通信方式,具有較強的抗干擾能力,廣泛應用于遠距離數字通信。RS 485和RS 422A總線最大的區(qū)別是RS 485 可以單工雙向傳輸,而RS 422A 只能單向傳輸數據,在本系統(tǒng)由于存在大量單片機,如果使用RS 422A,電纜會增加一倍。另外,由于標準的RS 485鏈路只可以連接32個設備,故每個轉換器上要增加驅動器。目前PC 機上已經很難找到串口了,故PC 機與RS 485 總線之間采用PL2303 芯片進行橋接。PL2303為Prolific 公司產品,可以很方便地將USB 接口轉換成標準RS 232 電平,用戶根本不用關心復雜的USB 協議和規(guī)范,在PC端的軟件編程中,只需像標準com口一樣使用USB口,因為Prolific公司提供的驅動中,已經將該USB 口模擬成了一個標準的com 口了。該芯片最高速度可以達到115 200 b/s,極大地方便了普通串行通信與PC機的連通。復位監(jiān)視與讀寫轉換電路也是一個單片機,不過該單片機只完成兩個功能。一個是就是接收RS 485 總線前的PC 機TXD(RS 232 端的TXD)發(fā)出信號,一旦出現PC機發(fā)出的全局復位串行代碼后,立即產生一個全局復位信號,將所有單片機進行復位。該功能就是為了防止某個單片機出現故障,一直意外占用總線,導致整個系統(tǒng)癱瘓。


            上一頁 1 2 下一頁

            評論


            相關推薦

            技術專區(qū)

            關閉