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