基于RS 485單片機(jī)多機(jī)串行通信的電子開(kāi)關(guān)設(shè)計(jì)
摘要:針對(duì)大中型傳送帶傳送過(guò)程中位置跑偏的檢測(cè),設(shè)計(jì)了基于RS 485單片機(jī)多機(jī)串行通信的電子開(kāi)關(guān)。介紹了該電子開(kāi)關(guān)的總體方案及硬件電路設(shè)計(jì),該電子開(kāi)關(guān)采用RS 485通信,不僅抗干擾能力好,并能夠?qū)崿F(xiàn)長(zhǎng)距離通信且可以避免多個(gè)從機(jī)同時(shí)與主機(jī)通信時(shí)產(chǎn)生數(shù)據(jù)沖突的問(wèn)題。實(shí)驗(yàn)表明,該電子開(kāi)關(guān)結(jié)構(gòu)簡(jiǎn)單、性能穩(wěn)定,可應(yīng)用于工業(yè)控制、檢測(cè)等領(lǐng)域中。
關(guān)鍵詞:RS 485;單片機(jī);串行通信;電子開(kāi)關(guān)
0 引言
目前多機(jī)串行通信是通信控制領(lǐng)域的主流通信方式,數(shù)據(jù)通信、計(jì)算機(jī)網(wǎng)絡(luò)、分布式工業(yè)控制系統(tǒng)及其測(cè)控領(lǐng)域中,經(jīng)常采用串行通信來(lái)達(dá)到信息交換的目的。多機(jī)串行通信控制網(wǎng)絡(luò)是物理層采用RS 485通信接口所組成的多機(jī)串行通信工控設(shè)備網(wǎng)絡(luò),RS 485既是物理層的協(xié)議標(biāo)準(zhǔn),也是串行通信接口的電氣標(biāo)準(zhǔn)。這種通信接口可以十分方便地將許多設(shè)備組成一個(gè)控制網(wǎng)絡(luò)。RS 485通信方式有很多優(yōu)點(diǎn),首先它的通信距離比較遠(yuǎn),通??梢宰龅綌?shù)百米甚至千米以上,而且還可以實(shí)現(xiàn)多點(diǎn)通信方式,從而可以建立一個(gè)小范圍內(nèi)的局域網(wǎng),因而更有實(shí)用價(jià)值。RS 485采用差模信號(hào)傳輸方式,與地電平關(guān)系不大,因而它抗干擾的能力比較好,即便在信號(hào)電壓比較小的情況下也能獲得穩(wěn)定的傳輸。
1 總體方案及硬件設(shè)計(jì)
該電子開(kāi)關(guān)系統(tǒng)的設(shè)計(jì)要求主機(jī)能夠與從機(jī)之間進(jìn)行地址確認(rèn)并相互通信,從機(jī)能夠準(zhǔn)確檢測(cè)到被測(cè)信號(hào),主機(jī)能夠接收從機(jī)傳來(lái)的數(shù)據(jù)信號(hào),并通過(guò)液晶顯示器和發(fā)光二極管顯示,同時(shí)采用RS 485總線主從機(jī)可以實(shí)現(xiàn)長(zhǎng)距離通信。主從機(jī)采用的主要核心芯片均為單片機(jī),考慮單片機(jī)性能及實(shí)際運(yùn)行環(huán)境的需要,選用AT89S51單片機(jī),串行通信網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
(1)主機(jī)使用主要器件:AT89S51 MAX4851602LCD LED RESISTORS CAP CRYSTAL;
(2)從機(jī)使用主要器件:AT89S51 MAX485 RESISTORS CAP CRYSTAL
主機(jī)主要功能:
(1)與從機(jī)之間進(jìn)行地址確認(rèn)。
(2)查詢從機(jī)是否有信號(hào)(從機(jī)檢測(cè)被測(cè)量時(shí)產(chǎn)生的相應(yīng)的數(shù)據(jù)信號(hào))發(fā)送到主機(jī)。
(3)通過(guò)液晶顯示發(fā)送信號(hào)的從機(jī)地址,同時(shí)可以通過(guò)發(fā)光二極管顯示信號(hào)的級(jí)別(這里兩個(gè)發(fā)光二極管分別代表兩個(gè)行程開(kāi)關(guān)的亮滅)。
從機(jī)主要功能:
(1)與主機(jī)之間進(jìn)行地址確認(rèn)。
(2)檢測(cè)被測(cè)量,并將被測(cè)信號(hào)數(shù)據(jù)發(fā)送給主機(jī)。
主機(jī)主要有兩大功能模塊:液晶顯示模塊用來(lái)顯示從機(jī)地址編號(hào),所使用的器件為1602LCD,RS 485串行通信模塊用來(lái)實(shí)現(xiàn)與從機(jī)之間的遠(yuǎn)距離串行通信,使用MAX485芯片來(lái)實(shí)現(xiàn)。
從機(jī)的主要功能模塊為RS 485串行通信模塊用來(lái)完成與主機(jī)之間數(shù)據(jù)的發(fā)送和接收。
2 設(shè)計(jì)實(shí)現(xiàn)原理
主從機(jī)均采用的是AT89S51單片機(jī),它是一個(gè)低功耗,高性能CMOS 8位單片機(jī),片內(nèi)含4 KB的可反復(fù)擦寫1 000次的FLASH只讀程序存儲(chǔ)器。單片機(jī)的XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。XTAL2:來(lái)自反向振蕩器的輸出。本電子開(kāi)關(guān)設(shè)計(jì)外接12MHz晶振。
主從機(jī)均使用單片機(jī)2個(gè)全雙工串行通信口外接MAX485芯片來(lái)完成與從機(jī)之間的串行通信,由串行口控制寄存器SCON設(shè)置串行口的工作方式、監(jiān)視串行口工作狀態(tài)、發(fā)送與接收的狀態(tài)控制等。P3.0/RXD為串行通信接收端,P3.1/TXD為串行通信發(fā)送端。
主機(jī)端口P0.0~P0.7作為液晶顯示器的數(shù)據(jù)線,P0口上拉10 kΩ電阻與1602液晶的D0~D7數(shù)據(jù)端相連,P3.7與使能端E相連,P3.6與讀/寫信號(hào)線RW相連,P3.5與寄存器選擇端RS相連。P1.0和P1.1引腳接兩個(gè)發(fā)光二極管,用來(lái)顯示從機(jī)發(fā)送信號(hào)的級(jí)別。
從機(jī)P1.0和P1.1引腳分別接到一級(jí)行程開(kāi)關(guān)和二級(jí)行程開(kāi)關(guān),用來(lái)檢測(cè)兩個(gè)開(kāi)關(guān)的狀態(tài),最終由從機(jī)P1.0和P1.1這兩個(gè)引腳將行程開(kāi)關(guān)的狀態(tài)發(fā)送到主機(jī),主機(jī)讀取狀態(tài)值并且顯示。
主機(jī)通過(guò)輪詢的方式,當(dāng)主機(jī)查詢n號(hào)從機(jī)時(shí),與n號(hào)從機(jī)進(jìn)行地址確認(rèn),并判斷n號(hào)從機(jī)是否有信號(hào)產(chǎn)生,如果沒(méi)有,主機(jī)將查詢n-1號(hào)從機(jī),如果有信號(hào)產(chǎn)生,主機(jī)接收到信號(hào)并存儲(chǔ)該從機(jī)的主機(jī)編號(hào),分別通過(guò)發(fā)光二極管和液晶顯示出來(lái),如果n-1號(hào)從機(jī)繼續(xù)有信號(hào)產(chǎn)生,主機(jī)繼續(xù)接收,直到接收完畢,主機(jī)將查詢n-2號(hào)從機(jī),如此往復(fù)。從機(jī)的個(gè)數(shù)可以在主機(jī)程序中對(duì)從機(jī)個(gè)數(shù)n值進(jìn)行設(shè)定。
2.1 多機(jī)串行通信及通信協(xié)議
電子開(kāi)關(guān)的設(shè)計(jì)核心主要通過(guò)單片機(jī)的多機(jī)串行通信來(lái)實(shí)現(xiàn)。
2.1.1 發(fā)送器和接收器
AT89S51串行口主要由發(fā)送器、接收器和串行控制寄存器組成。發(fā)送器主要由發(fā)送緩沖寄存器SBUF和發(fā)送控制器組成。接收器主要由接收緩沖寄存器SBUF,接收移位寄存器和接收控制器組成。
2.1.2 串行口控制寄存器
串行口控制寄存器SCON用于設(shè)置串行口的工作方式、監(jiān)視串行口工作狀態(tài)、發(fā)送與接收的狀態(tài)控制等。它是一個(gè)既可字節(jié)尋址又可位尋址的特殊功能寄存器??刂萍拇嫫鱏CON的格式如下:
電子開(kāi)關(guān)中單片機(jī)串行口控制寄存器SCON各位設(shè)置如下:
主機(jī)SCON設(shè)置:1 0 0 1 1 0 0 0 =#98H
從機(jī)SCON設(shè)置:1 0 1 1 0 0 0 0 =#0B0H
2.1.3 工作方式的選擇
本電子開(kāi)關(guān)單片機(jī)串行通信工作方式選擇為工作方式2,在方式2下,串行口工作在11位異步通信方式。一幀信息包含一個(gè)起始位“0”,八個(gè)數(shù)據(jù)位,一個(gè)可編程第九數(shù)據(jù)位和一個(gè)停止位“1”。其中可編程位是SCON中的TB8位,在八個(gè)數(shù)據(jù)位之后,可作奇偶校驗(yàn)位或地址/數(shù)據(jù)幀的標(biāo)志位使用,由使用者確定。
波特率的選擇:方式2的波特率是固定的。
若PCON中SMOD=0,速率=fosc/32
若PCON中SMOD=1,速率=fosc/64
該設(shè)計(jì)中:波特率為9 600 b/s。
2.1.4 實(shí)現(xiàn)原理及流程
多機(jī)通信主要靠主、從機(jī)之間正確地設(shè)置與判斷多機(jī)通信控制位SM2和發(fā)送或接收的第9數(shù)據(jù)位(D8)。
電子開(kāi)關(guān)多機(jī)串行通信的實(shí)現(xiàn)流程:
(1)主從機(jī)均初始化工作方式2,主機(jī)置SM2=0,允許中斷,從機(jī)置SM2=1,REN=1。
(2)主機(jī)置REN=1,TB8=1,將地址信息發(fā)送給從機(jī),并等待是否發(fā)送完畢,從機(jī)等待主機(jī)發(fā)送地址。
(3)從機(jī)接收到地址與本機(jī)地址核對(duì),核對(duì)正確,置SM2=0,向主機(jī)發(fā)送應(yīng)答地址并等待發(fā)送完畢,主機(jī)接收之后進(jìn)行地址確認(rèn),并置TB8=0。
(4)從機(jī)地址發(fā)送完畢后,接著發(fā)送信號(hào)數(shù)據(jù)并等待發(fā)送完畢。
(5)主機(jī)接收到數(shù)據(jù)將從機(jī)編號(hào)發(fā)送到液晶顯示,將信號(hào)數(shù)據(jù)發(fā)到發(fā)光二極管顯示信號(hào)級(jí)別。
評(píng)論