基于RS485總線的多機通信系統設計_第1頁
基于RS485總線的多機通信系統設計_第2頁
基于RS485總線的多機通信系統設計_第3頁
基于RS485總線的多機通信系統設計_第4頁
基于RS485總線的多機通信系統設計_第5頁
已閱讀5頁,還剩32頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、摘 要在多機通信領域由于單片機具有靈活高效的多機通信功能和價格優勢,應用越來越廣泛,但由于單片機的收發信號都是tti 電平,驅動能力和抗干擾性有限,實用中常配合其它總線實現互聯,rs-485總線就是其中之一。rs-485總線是平衡差分傳輸,抗干擾性好,最遠可傳輸4000 m,可互聯多達128個單片機,非常適臺組成多機通信系統。在多機通信中,最重要的是保證通信有條不紊地進行,因此需要嚴格的通信協議和完善的通信軟件,本文將重點介紹應用于某大型工程的單片機多機通信協議和通信軟件的設計方法。本文介紹一種利用單片機本身所提供的串行通訊口,采用自定義串行通信協議,加上總線驅動器如max481、max483

2、、max485、max487等組合成簡單的rs485通訊網絡,完成單片機間的多機通訊。 關鍵詞: 單片機;串行通信;rs485總線: 多機通信協議 abstractin computer communication field. because of the single chip microcomputer has flexible and efficient computer communication function and price advantage, used more and more widely, but because of the single chip microc

3、omputer to send and receive signals are tti level, drive and anti-interference ability is limited, practical cooperation with other bus realize in internet, rs-485 bus is one of them. rs-485 bus is a balanced differential transmission, anti-jamming of the good and as far as 4000 m could be transmitt

4、ed, interconnected as many as 128 single chip microcomputer, very comfortable a composition computer communication system. in computer communication, the most important is to ensure that communications in an orderly way, and therefore need to strict communication protocol and perfect communication s

5、oftware, this paper will focus on introduces applied in a large project single-chip computer communication association put the communication software design method. this paper introduces a microcontroller itself provide the serial communication mouth, use custom serial communication protocol, plus t

6、he bus drives as max481, max483, max485, max487 combined into simple rs-485 communication network, finish between the single chip computer communication. keywords: scm; serial communication; rs-485 bus: computer communication agreement目 錄第1章 緒論11.1 課題研究背景與意義11.2 單片機多機通信發展1第2章 總體介紹32.1 系統組成32.2 rs-48

7、532.3 多機通信原理4第3章 硬件設計及原理63.1 80c51單片機硬件結構63.2 最小應用系統設計73.2.1 時鐘電路73.2.2 復位電路83.3 總線驅動芯片9第4章 系統問題及其解決124.1 通信規則124.2 總線匹配134.3 硬件抗干擾措施134.3.1 ro及di端配置上拉電阻134.3.2 地線與接地144.3.3 電磁干擾(emi)問題144.3.4 瞬態保護154.3.5 總線隔離164.4 軟件抗干擾措施164.4.1 指令冗余164.4.2 攔截技術164.4.3 軟件“看門狗”技術17第5章 軟件設計195.1 系統結構195.2 通信協議195.2.1

8、 信息格式195.2.2 定時與重發205.2.3 通信過程205.3 通信軟件設計215.3.1 從機通信軟件設計215.3.2 主機通信軟件設計23第6章 程序設計246.1 主機程序如下:246.2 從機1程序如下:266.3 從機2程序如下:27第7章 系統仿真29結束語31致 謝32參考文獻33第1章 緒論1.1 課題研究背景與意義單片機是一種集成在電路芯片,是采用超大規模集成電路技術把具有數據處理能力的中央處理器cpu隨機存儲器ram、只讀存儲器rom、多種i/o口和中斷系統、定時器/計時器等功能(可能還包括顯示驅動電路、脈寬調制電路、模擬多路轉換器、a/d轉換器等電路)集成到一塊

9、硅片上構成的一個小而完善的計算機系統目前單片機滲透到我們生活的各個領域,幾乎很難找到哪個領域沒有單片機的蹤跡。導彈的導航裝置,飛機上各種儀表的控制,計算機的網絡通訊與數據傳輸,工業自動化過程的實時控制和數據處理,廣泛使用的各種智能ic卡,民用豪華轎車的安全保障系統,錄象機、攝象機、全自動洗衣機的控制,以及程控玩具、電子寵物等等,這些都離不開單片機。更不用說自動控制領域的機器人、智能儀表、醫療器械了。 單片機廣泛應用于儀器儀表、家用電器、醫用設備、航空航天、專用設備的智能化管理及過程控制等領域隨著計算機技術的發展及工業自動化水平的提高, 在許多場合采用單機控制已不能滿足現場要求,因而必須采用多機

10、控制的形式,而多機控制主要通過多個單片機之間的串行通信實現。串行通信作為單片機之間常用的通信方法之一, 由于其通信編程靈活、硬件簡潔并遵循統一的標準, 因此其在工業控制領域得到了廣泛的應用。構成較大規模的檢測、控制系統,經常要采用多個單片機,組成可以通信的多機系統。mcs一51系列單片機為實現多機通信聯網設計了方便的串行通信接口功能。將多個mcs一51單片機組成串行總線形式的相互通道,通過寫單片機的串行控制方式寄存器,將串行口置成方式2或方式3,就可以實現主機與分機之間的串行通信。這種多機系統結構簡單,應用廣泛,但它只能實現由主機呼叫分機,然后實現主機與分機之間的全雙工串行通信。我們在監控系統

11、中要求既有主機與分機主動通信,又有分機與主機主動通信,這種結構的多機系統就無法滿足要求。多機協同工作已是單片機發展的一個重要趨勢,目前單片機多機通信的主要方式仍然是主從式多機通信系統。單片機多機通信的目的是實現分布式處理系統,單片機多機通信的方式有很多種,應用前景廣闊,非常具有研究意義!1.2 單片機多機通信發展隨著科技的發展,單片機已不是一個陌生的名詞,它的出現是近代計算機技術發展史上的一個重要里程碑,因為單片機的誕生標志著計算機正式形成了通用計算機系統和嵌入式計算機系統兩大分支。單片機單芯片的微小體積和低的成本,可廣泛地嵌入到如玩具、家用電器、機器人、儀器儀表、汽車電子系統、工業控制單元、

12、辦公自動化設備、金融電子系統、艦船、個人信息終端及通訊產品中,成為現代電子系統中最重要的智能化工具。 所涉及的市場占有率最高的是mcs51系列,因為世界上很多知名的ic生產廠家都生產51兼容的芯片。生產mcs51系列單片機的廠家如美國amd公司、atmel公司、intel公司、winbond公司、philips公司、issi公司、temic公司及南韓的lg公司、日本nec、西門子公司等。到目前為止,mcs51單片機已有數百個品種,還在不斷推出功能更強的新產品。現代的單片機普遍具備通信接口,可以很方便地與計算機進行數據通信,為在計算機網絡和通信設備間的應用提供了極好的物質條件,現在的通信設備基本

13、上都實現了單片機智能控制,從手機,電話機、小型程控交換機、樓宇自動通信呼叫系統、列車無線通信、再到日常工作中隨處可見的移動電話,集群移動通信,無線電對講機等。單片機的通信領域應用首先從兩片單片機之間的通信發展起來,后來有了主從式多機通信并得到了廣泛的應用,又出現了以單片機作為下位機與以pc機作為上位機的通信應用,上位機用vb或vc+等面向對象的程序設計語言編寫通信收發程序,也得到了廣泛的應用。雖然,單片機多機通信已經有較長的研究歷史了,但其形式大多是主從式的,很少是平權式的。第2章 總體介紹2.1 系統組成本設計采用mcs-51系列中的80c51單片機。80c51是一款八位單片機,它的易用性和

14、多功能性受到了廣大使用者的好評。它是第三代單片機的代表。新一代的單片機的最主要的技術特點是向外部接口電路擴展,以實現microcomputer完善的控制功能為己任,將一些外部接口功能單元如a/dpwmpca(可編程計數器陣列)wdt(監視定時器)高速i/o口計數器的捕獲/比較邏輯等。這一代單片機中,在總線方面最重要的進展是為單片機配置了芯片間的串行總線,為單片機應用系統設計提供了更加靈活的方式。philips公司還為這一代單片機80c51系列8c592單片機引入了具有較強功能的設備間網絡系統總線-can(controller area network bus).新一代單片機為外部提供了相當完善

15、的總線結構,為系統的擴展與配置打下了良好的基礎。菲利浦公司研發的lpc900系列單片機是一個基于80c51內核的高速、低功耗flash單片機,主要集成了字節方式的i2c總線、spi接口、uart通信接口、實時時鐘、e2prom、a/d轉換器、isp/iap在線編程和遠程編程方式等一系列有特色的功能部件。本文中系統構成使用了p89lpc932單片機。p89lpc932是一款單片封裝的微控制器,適用于許多要求高集成度、低成本的場合。它采用了高性能的處理器結構,指令執行時間只需要2-4個時鐘周期,6倍于標準80c51器件。2.2 rs-485rs485標準接口是單片機系統種常用的一種串行總線之一。r

16、s-485通信方式rs-485標準是由eia(電子工業協會)和tia(通訊工業協會)共同制訂和開發的。rs-485作為一種多點差分數據傳輸的電氣規范,已成為業界最廣泛應用的標準通信接口之一。理論上,rs-485標準最多接入32個設備(受芯片驅動能力的影響),可以工作在半雙工或全雙工模式下,最大傳輸距離約為1219米,最大傳輸速率約為10mbps1。然而通常rs-485網絡采用平衡雙絞線作為傳輸媒體,平衡雙絞線的長度與傳輸速率成反比,只有在20kbps的傳輸速率下,才可能達到最大傳輸距離。一般15米長的雙絞線最大傳輸速率僅為1mbps。不過對于速率要求不是很高的控制系統來說已經足夠了。rs-48

17、5采用平衡發送和差分接收方式來實現通信:在發送端txd將串行口的ttl電平信號轉換成差分信號a、b兩路輸出,經傳輸后在接收端將差分信號還原成ttl電平信號。兩條傳輸線通常使用雙絞線,又是差分傳輸,因此有極強的抗共模干擾的能力,接收靈敏度也相當高。同時,最大傳輸速率和最大傳輸距離也大大提高。如果以10kbps速率傳輸數據時傳輸距離可達12m,而用100kbps時傳輸距離可達1.2km。如果降低波特率,傳輸距離還可進一步提高。另外rs-485實現了多點互連,最多可達256臺驅動器和256臺接收器,非常便于多器件的連接。不僅可以實現半雙工通信,而且可以實現全雙工通信。 2.3 多機通信原理在多機通信

18、中,每臺從機均分配有一個從機地址,主機與從機之間進行串行通信時,通常是主機先呼叫某從機地址,喚醒被叫從機后,主、從兩機之間進行數據交換。而未被呼叫的從機則繼續進行各自的工作。可是,如果在主機與某被呼叫從機進行數據交換過程中,其他從機如果不采取相應的數據識別技術,則這些從機就會因為串行通信線上有數據傳輸而時時被打斷,影響正常的工作。利用單片機的串口工作方式2、方式3可以很好解決上述問題。在多機通信過程中,從機首先要解決的是如何識別主機發送的是地址信息還是數據信息。當發送的是地址信息時,各從機都響應串口中斷,接收主機下發的一幀地址數據。而當主機發送數據幀時,無關從機可不響應串口中斷。解決的方法是:

19、當主機發送一幀地址信息時,應保持這幀數據的第9位為1。從機按照工作方式2或工作方式3運行時,將串口寄存器scon中的控制位sm2置為1,當所接收的一幀數據的第9位為1,所以從機產生串口中斷,接收這一幀地址數據并與各自的從機地址進行比較,以判斷主機是否要與本機通信。接收到的地址數據與從機地址相等達到為被呼叫從機,該從機將串口控制寄存器scon中的控制位sm2清為0,去接收主機發送來的數據幀(數據幀的第9位為0),此時不管接收到的第9位數據是否為1或0,都要產生串口中斷,這就保證了主機與被呼叫從機間的正常數據通信。數據通信結束后,該從機又重新將串行口控制寄存器scon中的控制位sm2置為1,為下一

20、次與主機進行通信做好準備。其他從機則一直在sm2=1下繼續自己的工作,不會因為主、從機之間的數據通信而被打斷。多機通信的實現,主要靠主、從機正確地設置與判斷多機通信控制位sm2和發送或接收的第9位數據(tb8或rb8)。當主機給從機發送信息時,要根據發送信息的性質來設置tb8,發送地址信號時,設置tb8=1;發送數據或命令時,設置tb8=0。當從機的sm2為1時,該從機只接收地址幀(rb8位為1),對數據幀(rb8位為0)將不予理睬。而當sm2為0時,該從機接收所有發送來的信息。多機通信過程如下:(1) 使所有從機的sm2置1,處于只接收地址幀的狀態(即從機復位);(2) 主機發送一地址幀信息

21、,其中包含8位地址,第9位為地址、數據標志位,第9位置1表示發送的是地址;(3) 從機接收到地址幀后,各自中斷cpu,把接收到的地址與本地址作比較;(4) 地址相符的從機,使sm2清零以接收主機隨后發來的所有信息,對于地址不相符的從機,仍保持sm2=1狀態,對主機隨后發送的數據不予理睬,直到主機發送來新的地址幀;(5) 主機發送數據或控制信息給被尋址的從機;(6) 被尋址的從機,因sm2=0,可以接收主機發送過來的所有數據,當從機接收數據結束時,置位sm2,返回接收地址幀狀態(復位狀態);(7) 當主機改為與另外從機聯系時,可再發地址幀尋址其從機,而先前被尋址過的從機恢復sm2=1。第3章 硬

22、件設計及原理一個單片機應用系統的硬件電路設計包含有兩部分內容:一是系統擴展,即單片機內部的功能單元,如romrami/o口定時/記數器中斷系統等能量不能滿足應用系統的要求時,必須在片外進行擴展,選擇適當的芯片,設計相應的電路。二是系統配置,既按照系統功能要求配置外圍設備,如鍵盤顯示器打印機a/dd/a轉換器等,要設計合適的接口電路。3.1 80c51單片機硬件結構80c51單片機是把那些作為控制應用所必需的基本內容都集成在一個尺寸有限的集成電路芯片上2。如果按功能劃分,它由如下功能部件組成,即微處理器、數據存儲器、程序存儲器、并行i/o口、串行口、定時器/計數器、中斷系統及特殊功能寄存器。它們

23、都是通過片內單一總線連接而成,其基本結構依舊是cpu加上外圍芯片的傳統結構模式。但對各種功能部件的控制是采用特殊功能寄存器的集中控制方式。微處理器:該單片機中有一個8位的微處理器,與通用的微處理器基本相同,同樣包括了運算器和控制器兩大部分,只是增加了面向控制的處理功能,不僅可處理數據,還可以進行位變量的處理。數據存儲器:片內為128個字節,片外最多可外擴至64k字節,用來存儲程序在運行期間的工作變量、運算的中間結果、數據暫存和緩沖、標志位等,所以稱為數據存儲器。程序存儲器:由于受集成度限制,片內只讀存儲器一般容量較小,如果片內的只讀存儲器的容量不夠,則需用擴展片外的只讀存儲器,片外最多可外擴至

24、64k字節。 中斷系統:具有5個中斷源,2級中斷優先權。定時器/計數器:片內有2個16位的定時器/計數器, 具有四種工作方式。串行口:1個全雙工的串行口,具有四種工作方式。可用來進行串行通訊,擴展并行i/o口,甚至與多個單片機相連構成多機系統,從而使單片機的功能更強且應用更廣。 p1口、p2口、p3口、p4口:為4個并行8位i/o口。特殊功能寄存器:共有21個,用于對片內的個功能的部件進行管理、控制、監視。實際上是一些控制寄存器和狀態寄存器,是一個具有特殊功能的ram區。由上可見,80c51單片機的硬件結構具有功能部件種類全,功能強等特點。特別值得一提的是該單片機cpu中的位處理器,它實際上是

25、一個完整的1位微計算機,這個一位微計算機有自己的cpu、位寄存器、i/o口和指令集。1位機在開關決策、邏輯電路仿真、過程控制方面非常有效;而8位機在數據采集,運算處理方面有明顯的長處。mcs-51單片機中8位機和1位機的硬件資源復合在一起,二者相輔相承,它是單片機技術上的一個突破,這也是mcs-51單片機在設計的精美之處。3.2 最小應用系統設計80c51是片內有rom/eprom的單片機,因此,這種芯片構成的最小系統簡單可靠。用80c51單片機構成最小應用系統時,只要將單片機接上時鐘電路和復位電路即可,如圖3-1 80c51單片機最小系統所示。由于集成度的限制,最小應用系統只能用作一些小型的

26、控制單元。其應用特點:(1) 有可供用戶使用的大量i/o口線。(2) 內部存儲器容量有限。(3) 應用系統開發具有特殊性。圖3-1 80c51單片機最小系統3.2.1 時鐘電路80c51雖然有內部振蕩電路,但要形成時鐘,必須外部附加電路。80c51單片機的時鐘產生方法有兩種。內部時鐘方式和外部時鐘方式。本設計采用內部時鐘方式,利用芯片內部的振蕩電路,在xtal1、xtal2引腳上外接定時元件,內部的振蕩電路便產生自激振蕩。本設計采用最常用的內部時鐘方式,即用外接晶體和電容組成的并聯諧振回路。振蕩晶體可在1.2mhz到12mhz之間選擇。電容值無嚴格要求,但電容取值對振蕩頻率輸出的穩定性、大小、

27、振蕩電路起振速度有少許影響,cx1、cx2可在20pf到100pf之間取值,但在60pf到70pf時振蕩器有較高的頻率穩定性。所以本設計中,振蕩晶體選擇6mhz,電容選擇65pf。時鐘電路如圖3-2。 圖3-2 80c51時鐘電路在設計印刷電路板時,晶體和電容應盡可能靠近單片機芯片安裝,以減少寄生電容,更好的保證振蕩器穩定和可靠地工作。為了提高溫度穩定性,應采用npo電容。3.2.2 復位電路80c51的復位是由外部的復位電路來實現的。復位引腳rst通過一個斯密特觸發器用來抑制噪聲,在每個機器周期的s5p2,斯密特觸發器的輸出電平由復位電路采樣一次,然后才能得到內部復位操作所需要的信號。復位電

28、路通常采用上電自動復位和按鈕復位兩種方式。最簡單的上電自動復位電路中上電自動復位是通過外部復位電路的電容充電來實現的。只要vcc的上升時間不超過1ms,就可以實現自動上電復位。時鐘頻率用6mhz時c取22uf,r取1k。除了上電復位外,有時還需要按鍵手動復位。本設計就是用的按鍵手動復位。按鍵手動復位有電平方式和脈沖方式兩種。其中電平復位是通過rst端經電阻與電源vcc接通而實現的。按鍵手動復位電路見圖3-3。時鐘頻率選用6mhz時,c取22uf,r2取200,r1取1k。圖3-3 80c51復位電路 在這種簡單的復位電路中,干擾容易串入復位端,在大多數情況下不會造成單片機錯誤復位,但會引起內部

29、某些寄存器錯誤復位。這時可在復位引腳上接一個去耦電容。如果干擾嚴重,或整個系統干擾嚴重,引起單片機復位,可采用屏蔽的辦法解決,如加屏蔽網或移動位置等。 在實際應用中,為了保證復位電路可靠地工作,常將rc電路接施密特電路后接入單片機復位端,特別適合于應用系統現場干擾大,電壓波動大的工作環境,如圖3-4所示的抗干擾復位電路。 圖3-4 抗干擾復位電路3.3 總線驅動芯片 max481、max483、max485、max487-max491以及max1487是用于rs-485與rs-422通信的低功耗收發器,每個器件中都具有一個驅動器和一個接收器。max483、max487、max488以及max4

30、89具有限擺率驅動器,可以減小emi,并降低由不恰當的終端匹配電纜引起的反射,實現最高250kbps 的無差錯數據傳輸。max481、max485、max490、max491、max1487的驅動器擺率不受限制,可以實現最高2.5mbps的傳輸速率。這些收發器在驅動器禁用的空載或滿載狀態下,吸取的電源電流在120(a 至500(a 之間。另外,max481、max483與max487具有低電流關斷模式, 僅消耗0.1a。所有器件都工作在5v單電源下。驅動器具有短路電流限制,并可以通過熱關斷電路將驅動器輸出置為高阻狀態,防止過度的功率損耗。接收器輸入具有失效保護特性,當輸入開路時,可以確保邏輯高

31、電平輸出。max487與max1487具有四分之一單位負載的接收器輸入阻抗, 使得總線上最多可以有1 2 8 個max487/max1487收發器。使用max488-max491可以實現全雙工通信,而max481、max483、max485、max487與max1487則為半雙工應用設計。max481/max483/max485/max487-max491以及max1487是用于rs-485與rs-422通信的低功耗收發器。max481、max485、max490、max491以及max1487能夠以最高2.5mbps 的數據速率發送并接收數據;而max483、max487、max488以及m

32、ax489則用于最高250kbps的數據速率。max488-max491是全雙工收發器,max481、max483、max485、max487以及max1487是半雙工收發器。另外,max481、max483、max485、max487、max489、max491以及max1487中包含驅動器使能(de)與接收器使能(re)控制引腳,被禁用時,驅動器或接收器輸出為高阻態。 與標準rs-485 驅動器( 最多32 個收發器) 的單位負載( 12k輸入阻抗) 相比,max487與max1487具有48k輸入電阻,1/4單位負載的接收器輸入阻抗,在一條總線上允許最多掛接128個收發器。max487/

33、max1487與其他rs-485收發器的任意組合可以允許32個收發器或更少的收發器連接在同一條總線上。max481/max483/max485與max488-max491具有標準的12k接收器輸入阻抗。常用的rs485總線驅動芯片有max485、max3080、max3088、sn75176,max485、max3080、max3088芯片都有一個發送器和一個接收器,非常適合作為rs485總線驅動芯片,其中max3080、max3088可以在一條通訊線上連接256只,max3088達到10mbps的通訊速率,下面以max485為例介紹其邏輯表。 max485及其邏輯如圖3-5所示。圖3-5 m

34、ax485芯片rs485方式構成的多機通信原理在由單片機構成的多機串行通信系統中,一般采用主從式結構:從機不主動發送命令或數據,一切都由主機控制。并且在一個多機通信系統中,只有一臺單機作為主機,各臺從機之間不能相互通訊,即使有信息交換也必須通過主機轉發。采用rs485構成的多機通信原理框圖,如圖3-6所示。圖3-6 max485典型半雙工rs-485網絡第4章 系統問題及其解決4.1 通信規則 由于max485通訊是一種半雙工通訊,發送和接收共用同一物理信道。在任意時刻只允許一臺單機處于發送狀態。因此要求應答的單機必須在偵聽到總線上呼叫信號已經發送完畢,并且沒有其它單機發出應答信號的情況下,才

35、能應答。半雙工通訊對主機和從機的發送和接收時序有嚴格的要求。如果在時序上配合不好,就會發生總線沖突,使整個系統的通訊癱瘓,無法正常工作。要做到總線上的設備在時序上的嚴格配合,必須要遵從以下幾項原則: (1) 復位時,主從機都應該處于接收狀態。 max485芯片的發送和接收功能轉換是由芯片的 re* ,de端控制的。re*=1,de=1時,max485發送狀態;re*=0,de=0時,max485處于接收狀態。一般使用單片機的一根口線連接re*,de端。在上電復位時,由于硬件電路穩定需要一定的時間,并且單片機各端口復位后處于高電平狀態,這樣就會使總線上各個分機處于發送狀態,加上上電時各電路的不穩

36、定,可能向總線發送信息。因此,如果用一根口線作發送和接收控制信號,應該將口線反向后接入max485的控制端,使上電時max485處于接收狀態。 另外,在主從機軟件上也應附加若干處理措施,如:上電時或正式通訊之前,對串行口做幾次空操作,清除端口的非法數據和命令。 (2) 控制端re*,de的信號的有效脈寬應該大于發送或接收一幀信號的寬度。 在全雙工通訊過程中,發送和接收信號分別在不同的物理鏈路上傳輸,發送端始終為發送端,接收端始終為接收端,不存在發送、接收控制信號切換問題。在rs485半雙工通訊中,由于max485的發送和接收都由同一器件完成,并且發送和接收使用同一物理鏈路,必須對控制信號進行切

37、換。控制信號何時為高電平,何時為低電平,一般以單片機的txc(發送完成標記),rxc(接收完成標記)信號作參考。 發送時,檢測txc是否建立起來,當txc為高電平后關閉發送功能轉為接收功能; 接收時,檢測rxc是否建立起來,當rxc為高電平后,接收完畢,又可以轉為發送。 在理論上雖然行得通,但在實際聯調中卻出現傳輸數據時對時錯的現象。根據查證有關資料,并借助示波器反復測試,才發現一個值得注意的問題,我們可以查看單片機的時序: 單片機在串行口發送數據時,只要將8位數據位傳送完畢,txc標志即建立,但此時應發送的第九位數據位(若發送地址幀時)和停止位尚未發出。如果在這是關閉發送控制,勢必造成發送幀

38、數據不完整。如果單片機多機通訊采用較高的波特率,幾條操作指令的延時就可能超過2位(或1位)數據的發送時間,問題或許不會出現。但是如果采用較低波特率,如9600,發送一位數據需104s左右,單靠幾條操作指令的延時遠遠不夠,問題就明顯地暴露出來。接收數據時也同樣如此,單片機在接收完8個數據位后就建立起rxc信號,但此時還未接收到第九位數據位(若接收地址幀時)和停止位。所以,接收端必須延時大于2位數據位的時間(1位數據位時間=1/波特率),再作應答,否則會發生總線沖突。 (3) 總線上所連接的各單機的發送控制信號在時序上完全隔開。 為了保證發送和接收信號的完整和正確,避免總線上信號的碰撞,對總線的使

39、用權必須進行分配才能避免競爭,連接到總線上的單機,其發送控制信號在時間上要完全隔離。 總之,發送和接收控制信號應該足夠寬,以保證完整地接收一幀數據,任意兩個單機的發送控制信號在時間上完全分開,避免總線爭端。 4.2 總線匹配 總線匹配有兩種方法,一種是加匹配電阻,位于總線兩端的差分端口va與vb之間應跨接120匹配電阻,以減少由于不匹配而引起的反射、吸收噪聲,有效地抑制了噪聲干擾。但匹配電阻要消耗較大電流,不適用于功耗限制嚴格的系統。 另外一種比較省電的匹配方案是rc 匹配利用一只電容c 隔斷直流成分,可以節省大部分功率,但電容c的取值是個難點,需要在功耗和匹配質量間進行折衷。除上述兩種外還有

40、一種采用二極管的匹配方案,這種方案雖未實現真正的匹配,但它利用二極管的鉗位作用,迅速削弱反射信號達到改善信號質量的目的,節能效果顯著。 4.3 硬件抗干擾措施4.3.1 ro及di端配置上拉電阻 異步通信數據以字節的方式傳送,在每一個字節傳送之前,先要通過一個低電平起始位實現握手。為防止干擾信號誤觸發ro(接收器輸出)產生負跳變,使接收端mcu進入接收狀態,建議ro外接10k上拉電阻。 保證系統上電時的rs-485芯片處于接收輸入狀態 。對于收發控制端de建議采用mcu引腳通過反相器進行控制,不宜采用mcu引腳直接進行控制,以防止mcu上電時對總線的干擾。 4.3.2 地線與接地 電子系統的接

41、地是一個非常關鍵而又常常被忽視的問題,接地處理不當經常會導致不能穩定工作甚至危及系統安全。對于rs-485網絡來講也是一樣,沒有一個合理的接地系統可能會使系統的可靠性大打折扣,尤其是在工作環境比較惡劣的情況下,對于接地的要求更為嚴格。有關rs-485網絡的接地問題很少有資料提及,在設計者中也存在著很多誤區,致使通信可靠性降低、接口損壞率較高。一個典型的錯誤觀點就是認為rs-485通信鏈路不需要信號地,而只是簡單地用一對雙絞線將各個接口的a、b端連接起來。這種處理方法在某些情況下也可以工作,但給系統埋下了隱患,主要有以下兩方面的問題: 共模干擾問題:的確,rs-485接口采用差分方式傳輸信號,并

42、不需要相對于某個參照點來檢測信號,系統只需檢測兩線之間的電位差就可以了。但應該注意的是,收發器只有在共模電壓不超出一定范圍(-7v至+12v)的條件下才能正常工作。當共模電壓超出此范圍就會影響通信的可靠,直至損壞接口。當發送器a向接收器b發送數據時,發送器a的輸出共模電壓為vos,由于兩個系統具有各自獨立的接地系統,存在著地電位差vgpd。那么,接收器輸入端的共模電壓就會達到vcm=vos+vgpd。rs-485標準規定vos3v,但vgpd可能會有很大幅度(十幾伏甚至數十伏),并可能伴有強干擾信號,致使接收器共模輸入vcm超出正常范圍,并在信號線上產生干擾電流,輕則影響正常通信,重則損壞接口

43、。 4.3.3 電磁干擾(emi)問題 驅動器輸出信號中的共模部分需要一個返回通路,如果沒有一個低阻的返回通道(信號地),就會以輻射的形式返回源端,整個總線就會像一個巨大的天線向外輻射電磁波。因此,盡管是差分傳輸,對于rs-485網絡來講,一條低阻的信號地還是必不可少的。一條低阻的信號地將兩個接口的工作地連接起來,使共模干擾電壓vgpd被短路。這條信號地可以是額外的一對線(非屏蔽雙絞線)、或者是屏蔽雙絞線的屏蔽層。值得注意的是,這種做法僅對高阻型共模干擾有效,由于干擾源內阻大,短接后不會形成很大的接地環路電流,對于通信不會有很大影響。當共模干擾源內阻較低時,會在接地線上形成較大的環路電流,影響

44、正常通信。筆者認為,可以采取以下三種措施: a、若干擾源內阻不是非常小,可以考慮在接地線上加限流電阻限制干擾電流。接地電阻的增加可能會使共模電壓升高,但只要控制在適當的范圍內就不會影響正常通信; b、采用浮地技術,隔斷接地環路。當共模干擾內阻很小時上述方法已不能奏效,此時可以考慮將引入干擾的節點(例如處于惡劣的工作環境的現場儀表)浮置起來(也就是系統的電路地與機殼或大地隔離),這樣就隔斷了接地環路,不會形成很大的環路電流; c、采用隔離接口。有些情況下,出于安全或其他方面的考慮,電路地必須與機殼或大地相連,不能懸浮,這時可以采用隔離接口來隔斷接地回路,但是仍然應該有一條地線將隔離側的公共端與其

45、它接口的工作地相連。 4.3.4 瞬態保護 前面提到的接地措施只對低頻率的共模干擾有保護作用,對于頻率很高的瞬態干擾就無能為力了。因為引線電感的作用,對于高頻瞬態干擾來講,接地線實際等同于開路。這樣的瞬態干擾可能會有成百上千伏的電壓,但持續時間很短。在切換大功率感性負載(電機、變壓器、繼電器等)、閃電等過程中都會產生幅度很高的瞬態干擾,如果不加以適當防護就會損壞接口。對于這種瞬態干擾可以采用隔離或旁路的方法加以防護。 隔離保護方案:這種方案實際上將瞬態高壓轉移到隔離接口中的電隔離層上,由于隔離層的高絕緣電阻,不會產生損害性的浪涌電流,起到保護接口的作用。通常采用高頻變壓器、光耦等元件實現接口的

46、電氣隔離,已有器件廠商將所有這些元件集成在一片ic中,使用起來非常簡便,如maxim公司的max1480/max1490,隔離電壓可以到2500v。這種方案的優點是可以承受高電壓、持續時間較長的瞬態干擾,實現起來也比較容易,缺點是成本較高。 旁路保護方案:這種方案利用瞬態抑制元件(如tvs、mov、氣體放電管等)將危害性的瞬態能量旁路到大地,優點是成本較低,缺點是保護能力有限,只能保護一定能量以內的瞬態干擾,持續時間不能很長,而且需要有一條良好的連接大地的通道,實現起來比較困難。 實際應用中可以將二者結合起來靈活運用。隔離接口對大幅度瞬態干擾進行隔離,而旁路元件保護隔離接口不被過高的瞬態電壓擊

47、穿。 4.3.5 總線隔離 rs-485總線為并接式二線制接口,一旦有一只芯片故障就可能將總線“拉死”,因此對其二線口va、vb與總線之間應加以隔離。通常在va、vb與總線之間各串接一只410的ptc電阻,同時與地之間各跨接5v的tvs二極管,以消除線路浪涌干擾。此外應該合理選用芯片。例如,對外置設備為防止強電磁(雷電)沖擊,建議選用防雷擊芯片。 4.4 軟件抗干擾措施4.4.1 指令冗余 cpu取指令過程是先取操作碼,再取操作數。當pc受干擾出現錯誤,程序便脫離正常軌道“亂飛”,當亂飛到某雙字節指令,若取指令時刻落在操作數上,誤將操作數當作操作碼,程序將出錯。若“飛” 到了三字節指令,出錯機

48、率更大。 在關鍵地方人為插入一些單字節指令,或將有效單字節指令重寫稱為指令冗余。通常是在雙字節指令和三字節指令后插入兩個字節以上的nop。這樣即使亂飛程序飛到操作數上,由于空操作指令nop的存在,避免了后面的指令被當作操作數執行,程序自動納入正軌。此外,對系統流向起重要作用的指令如ret、 reti、lcall、ljmp、jc等指令之前插入兩條nop,也可將亂飛程序納入正軌,確保這些重要指令的執行。4.4.2 攔截技術 所謂攔截,是指將亂飛的程序引向指定位置,再進行出錯處理。通常用軟件陷阱來攔截亂飛的程序。因此先要合理設計陷阱,其次要將陷阱安排在適當的位置。 (1)軟件陷阱的設計 當亂飛程序進

49、入非程序區,冗余指令便無法起作用。通過軟件陷阱,攔截亂飛程序,將其引向指定位置,再進行出錯處理。軟件陷阱是指用來將捕獲的亂飛程序引向復位入口地址0000h的指令。通常在eprom中非程序區填入以下指令作為軟件陷阱:nopnopljmp 0000h其機器碼為0000020000。(2) 陷阱的安排 通常在程序中未使用的eprom空間填0000020000。最后一條應填入020000,當亂飛程序落到此區,即可自動入軌。在用戶程序區各模塊之間的空余單元也可填入陷阱指令。當使用的中斷因干擾而開放時,在對應的中斷服務程序中設置軟件陷阱,能及時捕獲錯誤的中斷。如某應用系統雖未用到外部中斷1,外部中斷1的中

50、斷服務程序可為如下形式: nopnopreti返回指令可用“reti”,也可用“ljmp 0000h”。如果故障診斷程序與系統自恢復程序的設計可靠、 完善,用“ljmp 0000h”作返回指令可直接進入故障診斷程序,盡早地處理故障并恢復程序的運行。 考慮到程序存貯器的容量,軟件陷阱一般1k空間有2-3個就可以進行有效攔截。 4.4.3 軟件“看門狗”技術 若失控的程序進入“死循環”,通常采用“看門狗”技術使程序脫離“死循環”。通過不斷檢測程序循環運行時間,若發現程序循環時間超過最大循環運行時間,則認為系統陷入“死循環”,需進行出錯處理。“看門狗”技術可由硬件實現,也可由軟件實現。在工業應用中,

51、嚴重的干擾有時會破壞中斷方式控制字,關閉中斷。則系統無法定時“喂狗”,硬件看門狗電路失效。而軟件看門狗可有效地解決這類問題。 在實際應用中,采用環形中斷監視系統。用定時器t0監視定時器t1,用定時器t1監視主程序,主程序監視定時器t0。采用這種環形結構的軟件“看門狗”具有良好的抗干擾性能,大大提高了系統可靠性。對于需經常使用t1定時器進行串口通訊的測控系統,則定時器t1不能進行中斷,可改由串口中斷進行監控。這種軟件“看門狗”監視原理是:在主程序、t0中斷服務程序、t1中斷服務程序中各設一運行觀測變量,假設為mwatch、t0watch 、t1watch,主程序每循環一次,mwatch加1,同樣

52、t0、t1中斷服務程序執行一次,t0watch、 t1watch加1。在t0中斷服務程序中通過檢測t1watch的變化情況判定t1運行是否正常,在t1中斷服務程序中檢測mwatch的變化情況判定主程序是否正常運行,在主程序中通過檢測t0watch的變化情況判別t0是否正常工作。若檢測到某觀測變量變化不正常,比如應當加1而未加1,則轉到出錯處理程序作排除故障處理。當然,對主程序最大循環周期、定時器t0和t1定時周期應予以全盤合理考慮。4.5 失效保護 rs-485標準規定接收器門限為200mv。這樣規定能夠提供比較高的噪聲抑制能力,但同時也帶來了一個問題:當總線電壓在200mv中間時接收器輸出狀

53、態不確定。由于uart以一個前導0觸發一次接收動作,所以接收器的不定態可能會使uart錯誤地接收一些數據,導致系統誤動作。當總線空閑、開路或短路時都有可能出現兩線電壓差低于200mv的情況,必須采取一定措施避免接收器處于不定態。傳統的做法是給總線加偏置,當總線空閑或開路時,利用偏置電阻將總線偏置在一個確定的狀態(差分電壓200mv)。但這種方法仍然不能解決總線短路時的問題,為此,有些器件制造商將接收門限移到-200mv/-50mv,巧妙地解決了這個問題。例如maxim公司為max3080系列rs-485接口,不但省去了外部偏置電阻,而且解決了總線短路情況下的失效保護問題。 第5章 軟件設計5.

54、1 系統結構 該多機通信系統的系統結構圖如圖5-1所示,系統采用半雙工主從通信方式,主機可以讀取從機的數據或寫數據到從機,并將數據送終端進行顯示;從機主要負責對分布的電子設備進行監測或控制,用中斷的方式接收主機發來的命令并做出回應。圖5-1 系統結構圖5.2 通信協議5.2.1 信息格式該協議的信息格式如下: (1)編碼格式;二進制代碼。 (2)波特率:9600 b/s。 (3)通信方式:半雙工。 (4)每個字符由u 位組成; 1位:起始位(0); 8位:數據位; 1位:地址數據識別位(1為地址,o為數據); l位:停止位(1)。 (5)字符發送順序;低位在先 (6)幀結束標志:通信線路空閑3

55、.5 ms以上 (7)幀校驗方式:數據和(2字節)(8)主機詢問的一般格式見表5-2:表5-2 主機詢問的一般格式 從機地址碼:兩字節二進制數,后一字節是前一字節的反碼。命令碼:一字節二進制數,o1h代表主機讀,02h代表主機寫。數據個數:表示主機要讀寫的字節個數,一字節二進制數。校驗和:兩字節二進制數,是將從機地址碼、命令和數據按字節從頭依次相加,生成兩字節的校驗和。 (9)從機應答的一般格式(如表5-3)表5-3 從機應答的一般格式圖中信息段的定義同圖2。5.2.2 定時與重發 本通信協議定時規定如下: (1)幀發送時限;70 ms超過此時限結束發送。 (2)主機等待從機應答時限:7 ms,超過此時限,酌情重發。 (3)主機重發次數:不超過4次,超過后,判通信失敗。5.2.3 通信過程 一次完整的通信過程分為3個階段:主機詢問、從機應答和鏈路釋放。主機詢

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論