[討論] RS485
小弟最近剛到這個板上,希望能跟各位前輩討教討教
剛接觸單晶片及相關程式快一年,大部分知識都是自學書上及網路資料所得
所以很多基礎知識不足,若有錯誤觀念還請大家不吝指教,謝謝
因為之前玩過馬達還有RS232串列傳輸,後來玩不出新花樣了...想玩看看RS485
485和232最大的差異就是可以多對多的通訊,距離也加長了很多
目前大多為工業控制使用,而485也可以說是是乙太網路的前身
目前我已經把485硬體的部份完成,不過還沒有測試...因為卡在韌體還沒有寫好
(不知道用韌體稱呼單晶片程式是否不妥?)目前所理解的東西如下
串列傳輸控制有關的暫存器是SCON
裡面分別是SM0 SM1 SM2 REN TB8 RB8 TI RI
SM0和SM1用來設定傳輸模式,SM2則是485通訊的關鍵之一
REN是決定是有接收外部的串列資料,TB8&RB8也是多處理機通訊關鍵
TI是發送中斷旗幟、RI是接收中斷旗幟,鮑率設定這邊就先跳過吧:p
接著是通訊協定的部份
因為485是半雙工多對多的通訊,所以每個設備都要有個唯一的位址,有點像mac address
訊號傳送端
再呼叫別台設備時,會先送出對方的位址值
且多了一個TB8=1的位元代表傳輸的是位址值而不是數據
接著才會傳輸數據(TB8=0)
(我不知道萬一對方沒收到位址或是有錯誤怎麼辦,自己寫交握?)
訊號接收端
將SCON的SM2位元設定為1,並將收到的串列資料當作是位址,比對是否呼叫自己
如果是自己的話,則把SM2設為0,將後來收到的資料視為數據,接收完後再將SM2設為1
我有點不太知道RB8要什麼時後設定,資料裡面沒提到,感覺功能跟上面SM2的功能好像@@
講的有點語無倫次,請見諒
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.104.117.214
推
02/10 04:25, , 1F
02/10 04:25, 1F
討論串 (同標題文章)
ASM 近期熱門文章
PTT數位生活區 即時熱門文章