當前位置:自動化網>武漢波仕電子有限公司門戶>應用案例>單片機的RS-485/422多機通信方案

          單片機的RS-485/422多機通信方案

          發布時間:2011-03-29 15:56   類型:解決方案   人瀏覽

                                              武漢波仕電子公司  2011-3

          8051單片機的串行通信里可以支持多處理器通信,本文討論的就是這方面的技巧。不過若連接的對象是PC機時,(9600bps,n,8,1)反而是最常用的通信格式,所以本文介紹的是要實現多個8051單片機與PC機的連接實例,因為PC機身我們身邊最常用且最方便取得外部設備,當然你也可以用兩塊8051單片機做串口通信實驗。

               8051單片機串行傳輸模式2和模式3可以做多處理器通信,其中的重點正在SCON寄存器的SM2位和TB8及RB8位上,這幾位就決定了多處理器通信的核心。至于波特率的問題,只要發送與接收的雙方一致即可。圖1 是一個典型的多處理器通信的連接示意圖。

               多處理器通信與RS-232的一對一通信的最大的差異就是多了一個地址傳輸碼。一對一通信時,我送數據就輪到你接收,而你送數據時就換成為我接收,完全沒有商量的余地。但是多處理器通信時,主CPU發出的信息如何正確地傳到某個從CPU呢?針對這個問題,在多處理器系統中每一個從CPU都有其特定的編號(也有人稱為ID),在數據傳輸前面個從CPU都處于待命的狀態,當主CPU指定到某個特定的從CPU時,改從CPU才開始接收或發送數據,而這項指定特定從CPU的操作,實際上就是送出地址ID值,每個從CPU上的程序收到地址后,會先判斷一下是否叫到要啟動,若屬實則開始執行啟動的所有程序。接下來我們用一步一步說明的方式,詳細介紹多處理器通信額程序。

               在多處理器通信中我們一直提到“地址傳送”,在串行通信時,我們如何去辨別地址值(Adress)和數據(Data)呢?這正是8051串行模式2和模式3的魅力所在。當8051工作在以上兩個模式時,除了數據占8位外,傳輸時多了一個TB8位,接收時則多了一個RB8位。在多處理器通信時,當TB8=1代表正傳輸一個地址值,該地址值有8位寬,所以理論上可以連接256個CPU在同一個系統中。TB=0代表正在傳輸一個數據值,在此串行傳輸線上,每筆串行數據共有11個位,但其中以第10個位的狀態來區分地址或數據,接收端可以依此格式立刻判斷出其中的差異來。

             在從CPU上通常以串行中斷的方式來對待進來的數據,若把SCON寄存器的SM2位設置成為1時,即允許8051的串行接口做多處理器的地址判斷,在這個模式下:

              CPU只在接收地址值(其RB8=1)時才產生中斷要求。

              在串行中斷的服務程序上,只要由SBUF內讀回地址值,再做一個判斷是否被調用。若YES時則跳去執行程序設置的操作,若NO時則不做任何操作,隨即結束此中斷服務程序回主程序,被指定到的從CPU先設置成為SM2,然后開始發送或者接收數據,而其他的從CPU并未啟動傳輸,所以此瞬間仍然是一對一的通信,當主CPU在最初的發送地址階段卻是一對多的通信。圖1的連接方式是否可以用RS-232呢?答案是否定的。

              當主CPU傳送數據給各從CPU時,如果只有發送其他都是接收的情況下是可以使用RS-232的構架,可是當主CPU欲收數據而其中只有一個從CPU發送時,會造成數據電平沖突,使得主CPU無法由RXD腳上得到正確值。因此,在實際應用上改采用另外一種傳輸規格RS-422,這種傳輸方式只有傳輸的硬件上不同而已,軟件上的串行通信程序都無需做任何修改。波仕電子的H485C型號的轉換器可以實現單片機TTL電平的串口與RS-422之間的相互轉換。RS-422的傳輸線有4條(T+、T—、R+、R—),其連接方式如圖2。注意波仕電子的H485C轉換器還具有將PC機的RS-232轉換為RS-422/485的功能,所以如果上位機的接口上計算機的RS-232口,也一樣可以用H485C。

            


             另外一種常用的多處理器傳輸的接口上RS-485接口,只要2根線就可以將多個CPU連接在一起,這種做法使得數據共享的可能性大為提高,請看圖3的RS-485連線圖。波仕電子的H485C型號的轉換器還可以實現單片機TTL電平的串口與RS-422之間的相互轉換,。當多處理器以RS-422接口連接時,一定有一個主CPU和多個從CPU,若想作從CPU之間的數據傳輸時,所傳輸的路徑是從CPU到主CPU ,然后由主CPU再送給另外一個從CPU。若采用圖3的RS-485構架時,只要傳輸線空閑,任意兩個CPU,無論主從,都可以相互傳輸數據,完全沒有主從之分。若以此構架再做發展時,就形成了現在我們常用的ARCNET或ETHERNET的LAN網絡了。


              

           

             為什么要將8051的串行口抓換為RS-485呢?首先可以方便地實現多機通信。另外通信距離也有TTL的幾米延長到了1200米!雖然波仕的H485C也可以將PC機的RS-232口轉換為RS-485或者RS-422,但是現在許多新的計算機都已經沒有了RS-232串行口,且操作系統都是WINDOWS。那么就需要加USB到RS-485的轉換器。由于USB的驅動程序幾乎都是WINDOWS版的,所以你只能夠在WINDOWS下與從單片機進行通信。波仕的USB1485型號的轉換器提供了USB與RS-485或者RS-422的轉換。



          本文地址:http://m.xznet110.com:8002/apply/d_1nrutga2l1t6u_1.html?WebShieldSessionVerify=K0jMcHFTvMk7GSqdgVYP

          拷貝地址

          免責聲明:本文僅代表作者個人觀點,與中國自動化網無關。其原創性以及文中陳述文字和內容未經本站證實,對本文以及其中全部或者部分內容、文字的真實性、完整性、及時性本站不作任何保證或承諾,請讀者僅作參考,并請自行核實相關內容!

          留言反饋
          • 評價:

          • 關于:

          • 聯系人:

          • 聯系電話:

          • 聯系郵箱:

          • 需求意向:

          • 驗證碼:

            看不清楚?

          主站蜘蛛池模板: 国产成人综合日韩精品婷婷九月| 成年网站在线播放| 免费中韩高清无专码区2021| 久久久亚洲精品无码| 激情图片在线视频| 国产乱码卡一卡2卡三卡四| 2021国内精品久久久久久影院 | 国产国产精品人在线观看| 99久久99久久精品国产片| 成年女人18级毛片毛片免费| 亚洲乱码在线播放| 特级毛片AAAAAA| 可播放的欧美男男videos| 黄瓜视频在线观看| 国产精品多p对白交换绿帽| h国产在线观看| 成年人网站免费视频| 九九热精品免费| 欧美综合中文字幕久久| 内射人妻无套中出无码| 超级乱淫视频播放日韩| 国产精品91在线播放| 98精品国产综合久久| 少妇无码av无码专区线| 久久人人爽爽爽人久久久| 欧美性猛交xxxxx按摩国内| 制服丝袜日韩欧美| 里番本子库全彩acg亚洲| 国产精品自产拍在线观看花钱看 | 国产高潮刺激叫喊视频| 中文在线日本免费永久18近| 极品人体西西44f大尺度| 全免费a级毛片免费看不卡| 黑人一区二区三区中文字幕| 忘忧草日本在线播放www| 久久精品国产一区二区三区肥胖 | 白洁和邻居几个老头| 国内精品久久人妻互换| 中文视频在线观看| 最近日本中文字幕免费完整| 亚洲白色白色永久观看|