利用RS-485通訊協(xié)議實現(xiàn)PC機與單片機的多點通訊
隨著數據采集系統(tǒng)的廣泛應用,通常由單片機構成的應用系統(tǒng),如儀器儀表、智能設備等,都需要與PC機之間交換數據,實現(xiàn)與PC機之間的通訊功能,以充分發(fā)揮PC和單片機之間的功能互補,資源共享的優(yōu)勢。以往常用的RS-232協(xié)議在很大程度上已不能滿足設計的要求,如傳輸速率慢,傳輸距離短,傳輸信號易受外界的干擾等缺點。本文介紹一種性能優(yōu)越的RS-485接口芯片,以及如何利用此芯片實現(xiàn)單片機與PC機之間的遠程通訊,并討論將其功能進行擴充,實現(xiàn) PC機管理單片機陣列的功能。?
1 RS-485協(xié)議簡介及MAX485芯片介紹?
由于RS-232的種種缺點,新的串行通訊接口標準RS-449被制定出來,與之相對應的是RS-485的電氣標準。RS-485是美國電氣工業(yè)聯(lián)合會 (EIA)制定的利用平衡雙絞線作傳輸線的多點通訊標準。它采用差分信號進行傳輸;最大傳輸距離可以達到1.2 km;最大可連接32個驅動器和收發(fā)器;接收器最小靈敏度可達±200 mV;最大傳輸速率可達2.5 Mb/s。由此可見,RS-485協(xié)議正是針對遠距離、高靈敏度、多點通訊制定的標準。?
MAX485接口芯片是Maxim公司的一種RS-485芯片。?
采用單一電源+5 V工作,額定電流為300 μA,采用半雙工通訊方式。它完成將TTL電平轉換為RS-485電平的功能。其引腳結構圖如圖1所示。從圖中可以看出,MAX485芯片的結構和引腳都非常簡單,內部含有一個驅動器和接收器。RO和DI端分別為接收器的輸出和驅動器的輸入端,與單片機連接時只需分別與單片機的RXD和TXD相連即可;/RE和DE端分別為接收和發(fā)送的使能端,當/RE為邏輯0時,器件處于接收狀態(tài);當DE為邏輯1時,器件處于發(fā)送狀態(tài),因為MAX485工作在半雙工狀態(tài),所以只需用單片機的一個管腳控制這兩個引腳即可;A端和B端分別為接收和發(fā)送的差分信號端,當A引腳的電平高于B時,代表發(fā)送的數據為1;當A的電平低于B端時,代表發(fā)送的數據為0。在與單片機連接時接線非常簡單。只需要一個信號控制MAX485的接收和發(fā)送即可。同時將A和B端之間加匹配電阻,一般可選100Ω的電阻。?
2用PC機實現(xiàn)與8031單片機的多點通訊
用8031單片機實現(xiàn)與PC機之間的通訊時,必須使用電平轉換接口芯片,因為單片機輸出的是TTL電平,必須經過電平轉換才能和PC機的一致。本文中采用的是RS-485協(xié)議,所以單片機需要采用RS-485接口;而在PC機側使用的是RS-232與RS-485的電平轉換接口。在本文中采用的是武漢新特電子公司的電平轉換接口,該接口使用簡便、無需外加電源、數據傳輸速率最高可達10 Mb/s,而且不用任何軟件初始化和修改。另外實現(xiàn)多點通訊還需要了解器件的驅動能力,當器件的驅動能力足夠大時,我們就可以根據需要加入所需要的節(jié)點。
本文中所舉的例子就是利用一臺PC控制64塊單片機的工作,采用多點通訊形式。通過發(fā)送控制字和工作方式字給相應的單片機,使其進行相應的操作。單片機在接收到數據后,進行數據的采集工作,等到PC機再發(fā)指令,將采集到的數據反饋給PC機,PC機對數據進行分析和計算。?
PC機的程序可以采用Windows下任何一種面向對象的高級語言來編寫,它比在DOS下的利用串口中斷的方式進行更加簡便,應用程序將控制權交向串口的驅動程序,接收和發(fā)送的中斷完全由串口驅動程序來控制,減輕了編寫過程中的很多麻煩。本程序中選用的是Delphi的串口通訊控件Spcomm來實現(xiàn)。參數的設置可以自動完成。單片機采用中斷工作方式,用匯編語言編寫,通訊波特率為1?2 kb/s,由于要和PC機進行通訊,選用11?0592 MHz的晶振,保證和PC機的波特率完全一致,避免由于波特率不同引起的收發(fā)錯誤。為了配合多機工作方式,選用工作方式3。單片機的通訊流程圖如圖3所示。?
下面給出用Delphi編制的通訊程序和單片機的接收和發(fā)送程序。
單片機初始化子程序:
?
單片機接收子程序:?
REPT:CLRRI?
MOVA,SBUF?
MOV@R0,A?
RET?
在程序編寫過程中,為了保證接收和發(fā)送數據的正確性,我們加入了CRC校驗程序,另外PC機發(fā)送給單片機的是ASCII碼形式的數據,同樣需要經過簡單的變換,在此均作了省略。?利用RS-485協(xié)議進行串行通訊,可以保證快速、穩(wěn)定遠距離地傳輸數據。在目前以及以后的工業(yè)控制和其他方面必將得到越來越多的應用。?
參考文獻?
1武自芳, 虞鶴松.微機控制系統(tǒng)及其應用?西安: 西安交通大學出版社,1998?
2Maxim的產品資料?
3李朝青編著. PC機及單片機數據通信技術.北京:北京航空航天大學出版社, 1999