51單片機的RS-485/422多機通信方案
武漢波仕電子公司 向媛
8051單片機的串行通信里可以支持多處理器通信,本文討論的就是這方面的技巧。不過若連接的對象是PC機時,(9600bps,n,8,1)反而是較常用的通信格式,所以本文介紹的是要實現(xiàn)多個8051單片機與PC機的連接實例,因為PC機身我們身邊較常用且較方便**外部設備,當然你也可以用兩塊8051單片機做串口通信實驗。
8051單片機串行傳輸模式2和模式3可以做多處理器通信,其中的重點正在SCON寄存器的SM2位和TB8及RB8位上,這幾位就決定了多處理器通信的**。至于波特率的問題,只要發(fā)送與接收的雙方一致即可。圖1 是一個典型的多處理器通信的連接示意圖。
多處理器通信與RS-232的一對一通信的較大的差異就是多了一個地址傳輸碼。一對一通信時,我送數(shù)據(jù)就輪到你接收,而你送數(shù)據(jù)時就換成為我接收,完全沒有商量的余地。但是多處理器通信時,主CPU發(fā)出的信息如何正確地傳到某個從CPU呢?針對這個問題,在多處理器系統(tǒng)中每一個從CPU都有其特定的編號(也有人稱為ID),在數(shù)據(jù)傳輸**個從CPU都處于待命的狀態(tài),當主CPU*到某個特定的從CPU時,改從CPU才開始接收或發(fā)送數(shù)據(jù),而這項*特定從CPU的操作,實際上就是送出地址ID值,每個從CPU上的程序收到地址后,會先判斷一下是否叫到要啟動,若屬實則開始執(zhí)行啟動的所有程序。接下來我們用一步一步說明的方式,詳細介紹多處理器通信額程序。
在多處理器通信中我們一直提到“地址傳送”,在串行通信時,我們?nèi)绾稳ケ鎰e地址值(Adress)和數(shù)據(jù)(Data)呢?這正是8051串行模式2和模式3的魅力所在。當8051工作在以上兩個模式時,除了數(shù)據(jù)占8位外,傳輸時多了一個TB8位,接收時則多了一個RB8位。在多處理器通信時,當TB8=1代表正傳輸一個地址值,該地址值有8位寬,所以理論上可以連接256個CPU在同一個系統(tǒng)中。TB=0代表正在傳輸一個數(shù)據(jù)值,在此串行傳輸線上,每筆串行數(shù)據(jù)共有11個位,但其中以*10個位的狀態(tài)來區(qū)分地址或數(shù)據(jù),接收端可以依此格式立刻判斷出其中的差異來。
在從CPU上通常以串行中斷的方式來對待進來的數(shù)據(jù),若把SCON寄存器的SM2位設置成為1時,即允許8051的串行接口做多處理器的地址判斷,在這個模式下:
CPU只在接收地址值(其RB8=1)時才產(chǎn)生中斷要求。
在串行中斷的服務程序上,只要由SBUF內(nèi)讀回地址值,再做一個判斷是否被調(diào)用。若YES時則跳去執(zhí)行程序設置的操作,若NO時則不做任何操作,隨即結束此中斷服務程序回主程序,被*到的從CPU先設置成為SM2,然后開始發(fā)送或者接收數(shù)據(jù),而其他的從CPU并未啟動傳輸,所以此瞬間仍然是一對一的通信,當主CPU在較初的發(fā)送地址階段卻是一對多的通信。圖1的連接方式是否可以用RS-232呢?答案是否定的。
當主CPU傳送數(shù)據(jù)給各從CPU時,如果只有發(fā)送其他都是接收的情況下是可以使用RS-232的構架,可是當主CPU欲收數(shù)據(jù)而其中只有一個從CPU發(fā)送時,會造成數(shù)據(jù)電平?jīng)_突,使得主CPU無法由RXD腳上得到正確值。因此,在實際應用上改采用另外一種傳輸規(guī)格RS-422,這種傳輸方式只有傳輸?shù)挠布喜煌?,軟件上的串行通信程序?做任何修改。波仕電子的H485C型號的轉換器可以實現(xiàn)單片機TTL電平的串口與RS-422之間的相互轉換。RS-422的傳輸線有4條(T+、T—、R+、R—),其連接方式如圖2。注意波仕電子的H485C轉換器還具有將PC機的RS-232轉換為RS-422/485的功能,所以如果上位機的接口上計算機的RS-232口,也一樣可以用H485C。
另外一種常用的多處理器傳輸?shù)慕涌谏?span>RS-485接口,只要2根線就可以將多個CPU連接在一起,這種做法使得數(shù)據(jù)共享的可能性大為提高,請看圖3的RS-485連線圖。波仕電子的H485C型號的轉換器還可以實現(xiàn)單片機TTL電平的串口與RS-422之間的相互轉換,。當多處理器以RS-422接口連接時,一定有一個主CPU和多個從CPU,若想作從CPU之間的數(shù)據(jù)傳輸時,所傳輸?shù)穆窂绞菑?/span>CPU到主CPU ,然后由主CPU再送給另外一個從CPU。若采用圖3的RS-485構架時,只要傳輸線空閑,任意兩個CPU,無論主從,都可以相互傳輸數(shù)據(jù),完全沒有主從之分。若以此構架再做發(fā)展時,就形成了現(xiàn)在我們常用的ARCNET或ETHERNET的LAN網(wǎng)絡了。
為什么要將8051的串行口抓換為RS-485呢?首先可以方便地實現(xiàn)多機通信。另外通信距離也有TTL的幾米延長到了1200米!雖然波仕的H485C也可以將PC機的RS-232口轉換為RS-485或者RS-422,但是現(xiàn)在許多新的計算機都已經(jīng)沒有了RS-232串行口,且操作系統(tǒng)都是WINDOWS。那么就需要加USB到RS-485的轉換器。由于USB的驅(qū)動程序幾乎都是WINDOWS版的,所以你只能夠在WINDOWS下與從單片機進行通信。波仕的USB1485型號的轉換器提供了USB與RS-485或者RS-422的轉換。
詳細參數(shù)請到www.查看。咨詢訂購電話:027-59708940/51518046 15102729700向小姐 QQ咨詢訂購:2360190989 MSN:bosicomcn@live.cn
詞條
詞條說明
串口地址轉換的實現(xiàn) ????????????????????武漢波仕電子有限公司?__向媛 串口多機通信,就是RS-232/RS-485多機通信,要求通信的下位機必須帶地址。通信時由上位機
???????????????????????????????? 51單片機的
?????????????????????? ?藍牙串口多機通信的簡單實現(xiàn) ???????&nbs
武漢波仕卡科技有限公司多年來一直致力于RS-232/RS-485產(chǎn)品的開發(fā)。創(chuàng)造了許多種世界上**的RS-232/RS-485產(chǎn)品,擁有10多項串口**及自有“波士”及“波仕卡”自主品牌。波士電子是RS232/RS485/RS422轉換器的**和開創(chuàng)者! ????2012年,波仕研發(fā)了良好于本行業(yè)的數(shù)款新產(chǎn)品: 一:云串口通信產(chǎn)品 ? 
公司名: 武漢波仕卡科技有限公司
聯(lián)系人: 向小姐
電 話: 18995634129
手 機: 15102729700
微 信: 15102729700
地 址: 湖北武漢洪山區(qū)洪山區(qū)關東科技園
郵 編: 430074
網(wǎng) 址: bosicomcn.cn.b2b168.com
公司名: 武漢波仕卡科技有限公司
聯(lián)系人: 向小姐
手 機: 15102729700
電 話: 18995634129
地 址: 湖北武漢洪山區(qū)洪山區(qū)關東科技園
郵 編: 430074
網(wǎng) 址: bosicomcn.cn.b2b168.com
¥1350.00
¥1400.00
¥500.00
¥1.00
OHIO SEMITRONICS轉換器D-481565X7868A
¥50000.00
¥360.00
¥2006.00