https://blog.csdn.net/ouyangxin95/article/details/78174145
RS-485總線技術只是規定了接口的電氣標准,並沒有規定RS-485接口的電纜,插件以及通信協議,只是OSI規范中物理層的一個標准,由於RS-485總線采用差分平衡傳輸方式,一般使用的電纜建議采用屏蔽雙絞線,使得485+與485-兩兩雙絞,外面采用屏蔽層屏蔽外部電磁干擾,但是在現場實施施工中,有人采用平行線也是可以適用於RS-485總線的電纜,只是抗干擾能力較差,傳輸距離不遠且通信質量不穩定,一般都是建議采用屏蔽雙絞線。而接口定義形式,由於RS-485總線一般都是用到485+,485-以及GND三根線,沒有硬性規定接口定義形式,一般市面上多見的接口形式有RJ45接口,工業接線端子接口,DB9串口接線端子以及RJ11電話線接口等。一般而言,采用工業接線端子更為合適,因為如果需要接入終端電阻的話,采用工業接線端子是很好接入的,而且接入屏蔽雙絞線也是工業接線端子更加方便。
由於RS-485總線並沒有規定通信協議,有很多廠家自己推出基於RS-485總線的通信協議,其中最為著名的是由modicon公司推出的Modbus協議,該協議具有兩個版本,一個是Modbus RTU和Modbus ASCII兩種幀報文格式,該內容我們會在其他文章內詳細描述,我們現在討論基於RS-485總線通信的協議的一些基本原則以及相關情況。
由於RS-485總線支持點對多點通信模式,而其沒有數據沖突檢測解決機制,所以數據沖突的問題都是依靠主機來解決,通過主機對整個系統進行全方位的控制,避免數據沖突的產生,一般而言,由於必須通過主機進行控制以避免數據沖突,基於RS-485總線通信只能支持一主多從的通信方式,在現實生活中,老師在課堂講課的模式其實就是一種一主多從的通信方式,下面我們按照老師課堂授課的比喻來說明RS-485總線通信協議的一些基本原則。
由於RS-485總線支持一主多從的通信模式,主機需要能夠識別下位多個從機設備,所以從機設備必須具備一個在485網絡中的唯一的地址碼,就像班級中給學生分配學號一樣,學生的姓名可能會有重復,但是學號必須是該班級內唯一的。而老師只需要叫喚學生的學號要求學生回答問題或者做相應的動作等。 同樣的道理,485通信主機通過呼叫485通信從機的地址碼來控制485通信從機的相關動作。
485通信網絡開始通信的時候,就會對整個網絡的設備進行輪詢,也就是對485通信從機進行逐個的詢問,確認網絡中是否存在該設備以及該設備是否能夠正常運轉。就像老師在正式授課之前會對班級進行點名,確認是否有人缺課,一旦有人缺課做上標識以保證在課堂提問的時候不會點到缺課的學號以免浪費時間。
485通信主機下發指令是以廣播形式發送,485通信從機接收到相關指令,將指令中的地址碼與自己的地址碼對應,發現是下發給自己的指令則立即執行相關指令,執行完相關指令之后發送相應的狀態代碼給485通信主機,示意其可以繼續下一條指令。否則丟棄該指令,靜默等待485通信主機的下一條指令。同樣的道理,當老師向某個學生提問的時候,其他學生在此期間是不能出聲,只有被提問的學生回答問題,當學生回答完問題之后,就說回答完畢,然后大家靜待老師的下一個提問或者授課。
一般而言,老師授課都是一個人在課堂,但是有些特殊情況是需要兩個或者兩個以上的老師同時在一個課堂授課,這樣就需要一個協調的機制來協調多個老師的授課。而在485通信網絡中,也有可能存在多個RS-485通信主機共存於同一個RS-485通信網絡中,在這種情況下,深圳市國科偉業通信技術有限公司開發出相應的485共享器用於滿足這些需求,485共享器分為兩種,搶占式模式以及優先級模式,搶占式模式就是先到先得,就像老師在授課的時候,誰在授課的時候其他老師是不能打斷他的授課的,只有在他將該段內容講完之后,停頓一定時間之后,其他老師才可以開始自己的授課,同樣的也是先到先得,誰先開口,誰就授課,直到該段內容講完之后再重新爭取控制權。優先級模式則是定義相應的優先級,比如系主任的優先級高於普通老師的優先級,即使在老師正常授課的時候,系主任說:這里我插一句,則老師的授課自動停止,等待系主任講完之后再重新搶奪控制權(注:485共享器並不帶有存儲功能,只能是多個主機重新搶奪控制權,而不是原有中斷485通信主機的重新接續原有的指令,原有的通信直接失敗)。
還有就是485通信線路問題,當傳輸距離較遠的時候或者外部干擾過大導致噪音太大,485通信信號會有一定的衰減,就像教室較大以及教室外面比較吵鬧的情況,后面的學生並不能清楚的聽到相關的內容,在中間增加一個485中繼器,將衰減的485信號重新整形還原放大,使得距離較遠的485通信從機能夠識別485信號。還有就是當教室較大,可能會在教室里面產生混音,通過在教室合理放置多個喇叭,就像485總線連接為星型拓撲結構,產生了信號反射導致通信質量不穩定,使用485集線器將各條485總線相互隔離,獨立驅動可以有效的解決類似問題。