新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 利用RS-485通訊協(xié)議實(shí)現(xiàn)PC機(jī)與單片機(jī)的多點(diǎn)通訊

利用RS-485通訊協(xié)議實(shí)現(xiàn)PC機(jī)與單片機(jī)的多點(diǎn)通訊

作者: 時(shí)間:2012-02-09 來源:網(wǎng)絡(luò) 收藏

隨著數(shù)據(jù)采集系統(tǒng)的廣泛應(yīng)用,通常由構(gòu)成的應(yīng)用系統(tǒng),如儀器儀表、智能設(shè)備等,都需要與機(jī)之間交換數(shù)據(jù),機(jī)之間的功能,以充分發(fā)揮之間的功能互補(bǔ),資源共享的優(yōu)勢(shì)。以往常用的RS-232在很大程度上已不能滿足設(shè)計(jì)的要求,如傳輸速率慢,傳輸距離短,傳輸信號(hào)易受外界的干擾等缺點(diǎn)。本文介紹一種性能優(yōu)越的RS-485接口芯片,以及如何此芯片與PC機(jī)之間的遠(yuǎn)程,并討論將其功能進(jìn)行擴(kuò)充, PC機(jī)管理單片機(jī)陣列的功能。

本文引用地址:http://m.butianyuan.cn/article/172144.htm

1 RS-485簡(jiǎn)介及MAX485芯片介紹

由于RS-232的種種缺點(diǎn),新的串行接口標(biāo)準(zhǔn)RS-449被制定出來,與之相對(duì)應(yīng)的是RS-485的電氣標(biāo)準(zhǔn)。RS-485是美國(guó)電氣工業(yè)聯(lián)合會(huì) (EIA)制定的平衡雙絞線作傳輸線的多點(diǎn)通訊標(biāo)準(zhǔn)。它采用差分信號(hào)進(jìn)行傳輸;最大傳輸距離可以達(dá)到1.2 km;最大可連接32個(gè)驅(qū)動(dòng)器和收發(fā)器;接收器最小靈敏度可達(dá)±200 mV;最大傳輸速率可達(dá)2.5 Mb/s。由此可見,RS-485正是針對(duì)遠(yuǎn)距離、高靈敏度、多點(diǎn)通訊制定的標(biāo)準(zhǔn)。

35.jpg
MAX485接口芯片是Maxim公司的一種RS-485芯片。

采用單一電源+5 V工作,額定電流為300 μA,采用半雙工通訊方式。它完成將TTL電平轉(zhuǎn)換為RS-485電平的功能。其引腳結(jié)構(gòu)圖如圖1所示。從圖中可以看出,MAX485芯片的結(jié)構(gòu)和引腳都非常簡(jiǎn)單,內(nèi)部含有一個(gè)驅(qū)動(dòng)器和接收器。RO和DI端分別為接收器的輸出和驅(qū)動(dòng)器的輸入端,與單片機(jī)連接時(shí)只需分別與單片機(jī)的RXD和TXD相連即可;/RE和DE端分別為接收和發(fā)送的使能端,當(dāng)/RE為邏輯0時(shí),器件處于接收狀態(tài);當(dāng)DE為邏輯1時(shí),器件處于發(fā)送狀態(tài),因?yàn)镸AX485工作在半雙工狀態(tài),所以只需用單片機(jī)的一個(gè)管腳控制這兩個(gè)引腳即可;A端和B端分別為接收和發(fā)送的差分信號(hào)端,當(dāng)A引腳的電平高于B時(shí),代表發(fā)送的數(shù)據(jù)為1;當(dāng)A的電平低于B端時(shí),代表發(fā)送的數(shù)據(jù)為0。在與單片機(jī)連接時(shí)接線非常簡(jiǎn)單。只需要一個(gè)信號(hào)控制MAX485的接收和發(fā)送即可。同時(shí)將A和B端之間加匹配電阻,一般可選100Ω的電阻。

2用PC機(jī)實(shí)現(xiàn)與8031單片機(jī)的多點(diǎn)通訊

用8031單片機(jī)實(shí)現(xiàn)與PC機(jī)之間的通訊時(shí),必須使用電平轉(zhuǎn)換接口芯片,因?yàn)閱纹瑱C(jī)輸出的是TTL電平,必須經(jīng)過電平轉(zhuǎn)換才能和PC機(jī)的一致。本文中采用的是RS-485協(xié)議,所以單片機(jī)需要采用RS-485接口;而在PC機(jī)側(cè)使用的是RS-232與RS-485的電平轉(zhuǎn)換接口。在本文中采用的是武漢新特電子公司的電平轉(zhuǎn)換接口,該接口使用簡(jiǎn)便、無需外加電源、數(shù)據(jù)傳輸速率最高可達(dá)10 Mb/s,而且不用任何軟件初始化和修改。另外實(shí)現(xiàn)多點(diǎn)通訊還需要了解器件的驅(qū)動(dòng)能力,當(dāng)器件的驅(qū)動(dòng)能力足夠大時(shí),我們就可以根據(jù)需要加入所需要的節(jié)點(diǎn)。

本文中所舉的例子就是一臺(tái)PC控制64塊單片機(jī)的工作,采用多點(diǎn)通訊形式。通過發(fā)送控制字和工作方式字給相應(yīng)的單片機(jī),使其進(jìn)行相應(yīng)的操作。單片機(jī)在接收到數(shù)據(jù)后,進(jìn)行數(shù)據(jù)的采集工作,等到PC機(jī)再發(fā)指令,將采集到的數(shù)據(jù)反饋給PC機(jī),PC機(jī)對(duì)數(shù)據(jù)進(jìn)行分析和計(jì)算。
 

36.jpg

PC機(jī)的程序可以采用Windows下任何一種面向?qū)ο蟮母呒?jí)語言來編寫,它比在DOS下的利用串口中斷的方式進(jìn)行更加簡(jiǎn)便,應(yīng)用程序?qū)⒖刂茩?quán)交向串口的驅(qū)動(dòng)程序,接收和發(fā)送的中斷完全由串口驅(qū)動(dòng)程序來控制,減輕了編寫過程中的很多麻煩。本程序中選用的是Delphi的串口通訊控件Spcomm來實(shí)現(xiàn)。參數(shù)的設(shè)置可以自動(dòng)完成。單片機(jī)采用中斷工作方式,用匯編語言編寫,通訊波特率為12 kb/s,由于要和PC機(jī)進(jìn)行通訊,選用110592 MHz的晶振,保證和PC機(jī)的波特率完全一致,避免由于波特率不同引起的收發(fā)錯(cuò)誤。為了配合多機(jī)工作方式,選用工作方式3。單片機(jī)的通訊流程圖如圖3所示。

下面給出用Delphi編制的通訊程序和單片機(jī)的接收和發(fā)送程序。

37.jpg

38.jpg

39.jpg

單片機(jī)初始化子程序:

40.jpg

單片機(jī)接收子程序:
REPT:CLRRI
MOVA,SBUF
MOV@R0,A
RET

在程序編寫過程中,為了保證接收和發(fā)送數(shù)據(jù)的正確性,我們加入了CRC校驗(yàn)程序,另外PC機(jī)發(fā)送給單片機(jī)的是ASCII碼形式的數(shù)據(jù),同樣需要經(jīng)過簡(jiǎn)單的變換,在此均作了省略。ダ用RS-485協(xié)議進(jìn)行串行通訊,可以保證快速、穩(wěn)定遠(yuǎn)距離地傳輸數(shù)據(jù)。在目前以及以后的工業(yè)控制和其他方面必將得到越來越多的應(yīng)用。

參考文獻(xiàn)
1武自芳, 虞鶴松.微機(jī)控制系統(tǒng)及其應(yīng)用蔽靼玻 西安交通大學(xué)出版社,1998
2Maxim的產(chǎn)品資料
3李朝青編著. PC機(jī)及單片機(jī)數(shù)據(jù)通信技術(shù).北京:北京航空航天大學(xué)出版社, 1999

單片機(jī)相關(guān)文章:單片機(jī)教程


單片機(jī)相關(guān)文章:單片機(jī)視頻教程


單片機(jī)相關(guān)文章:單片機(jī)工作原理


數(shù)字通信相關(guān)文章:數(shù)字通信原理


通信相關(guān)文章:通信原理


雙絞線傳輸器相關(guān)文章:雙絞線傳輸器原理


評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉