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