女人被狂躁到高潮视频免费无遮挡,内射人妻骚骚骚,免费人成小说在线观看网站,九九影院午夜理论片少妇,免费av永久免费网址

當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式硬件
[導(dǎo)讀]1引言RS-485由電子工業(yè)協(xié)EIA(Electronics?Industry?Association)于1983年制定。它具有了多點(diǎn)、雙向通信能力,即允許多個(gè)發(fā)送器連接到同一條總線上,同時(shí)增加了發(fā)送器的驅(qū)動(dòng)

1引言

RS-485由電子工業(yè)協(xié)EIA(Electronics?Industry?Association)于1983年制定。它具有了多點(diǎn)、雙向通信能力,即允許多個(gè)發(fā)送器連接到同一條總線上,同時(shí)增加了發(fā)送器的驅(qū)動(dòng)能力和沖突保護(hù)特性,擴(kuò)展了總線共模范圍,后命名為T(mén)IA/EIA-485-A標(biāo)準(zhǔn)。

RS-485采用平衡發(fā)送和差分接收,具有抑制共模干擾的能力。其傳輸時(shí)的電氣協(xié)議規(guī)定:當(dāng)A線的電壓低于B線時(shí),傳送的是信號(hào)1,當(dāng)A線的電壓高于B線時(shí),傳送的是信號(hào)0。A線和B線能承受的共模信號(hào)為 -7V~+12V,這里講的共模信號(hào)是指A線或B線對(duì)地的電壓。一個(gè)標(biāo)準(zhǔn)發(fā)送器能夠直接驅(qū)動(dòng)幾個(gè)接收器,且發(fā)送器可以被關(guān)閉使其輸出端變成高阻,因此只需 2條連線既可實(shí)現(xiàn)一個(gè)半雙工的通信網(wǎng)絡(luò)。RS-485標(biāo)準(zhǔn)只對(duì)接口的電氣特性做出規(guī)定,而不涉及接插件、電纜或協(xié)議,在此基礎(chǔ)上用戶可以建立自己的高層通信協(xié)議。

2硬件電路和通信時(shí)序

由RS-485組成單主機(jī)-多從機(jī)的集散式控制系統(tǒng)的簡(jiǎn)圖如圖1所示。

 

圖1RS-485總線的結(jié)構(gòu)圖

對(duì)于單片機(jī)異步通信,除了直接連接TX和RX端外,不同于RS-232通信協(xié)議,RS-485一定要用單片機(jī)的一個(gè)I/O引腳負(fù)責(zé)數(shù)據(jù)接收或發(fā)送方向的控制。用RS-485協(xié)議組成的主從通信方式中,所有的通信由一個(gè)主機(jī)掌控,其它所有從機(jī)平時(shí)處于接收模式,一旦某一個(gè)從機(jī)被主機(jī)呼叫,就將其通信狀態(tài)改成為發(fā)送模式,待數(shù)據(jù)發(fā)送完畢后又轉(zhuǎn)為接收模式。系統(tǒng)硬件連接電路原理圖如圖2所示。

 

圖2系統(tǒng)硬件連接原理圖

2.1上位機(jī)主控端

由于上位機(jī)上只有傳統(tǒng)的9針D型串口,要和多個(gè)下位機(jī)節(jié)點(diǎn)組成數(shù)據(jù)通信網(wǎng)絡(luò),需要將RS-232通信協(xié)議轉(zhuǎn)換,RS-485協(xié)議方式,需要用到MAX232和MAX485芯片各一塊,其電路原理圖如圖3所示。

 

圖3RS-232到RS-485的電平轉(zhuǎn)換圖

RS-232-485轉(zhuǎn)換器主要包括了電源、RS-232電平轉(zhuǎn)換、RS-485電平轉(zhuǎn)換三部分。該電路的RS-232電平轉(zhuǎn)換電路使用了市場(chǎng)上常見(jiàn)的MAX232集成電路,RS-485電平轉(zhuǎn)換電路采用了MAX485集成電路。為了使用方便,電源部分設(shè)計(jì)成無(wú)源方式,整個(gè)電路的供電直接從PC機(jī)的RS232接口中的DTR(4腳)和RTS(7腳)取出。PC串口每根線可以提供大約9mA的電流,因此兩根線提供的電流就足夠供給本電路使用。經(jīng)實(shí)驗(yàn),本電路只使用其中一條線也能夠正常工作。使用本電路需注意PC程序必須使串口的DTR和RTS輸出高電平,經(jīng)過(guò)D3穩(wěn)壓后得到VCC,經(jīng)過(guò)實(shí)際測(cè)試,VCC電壓大約在4.7V左右。因此,電路中要說(shuō)D3起的作用是穩(wěn)壓和限壓功能。

MAX485是通過(guò)兩個(gè)引腳RE(2腳)和DE(3腳)來(lái)控制數(shù)據(jù)的輸入和輸出。當(dāng)RE為低電平時(shí),MAX485 數(shù)據(jù)輸入有效;當(dāng)DE為高電平時(shí),MAX485數(shù)據(jù)輸出有效。在半雙工使用中,通??梢詫⑦@兩個(gè)腳直接相連,然后由PC或者單片機(jī)輸出的高低電平就可以讓 MAX485在接收和發(fā)送狀態(tài)之間轉(zhuǎn)換了。由于本電路DTR和RTS都用于了電路供電,因此使用TX線和MAX232的另外一個(gè)通道及Ql來(lái)控制 MAX485的狀態(tài)切換。平時(shí)MAX232的9腳輸出高電平,經(jīng)Ql倒相后,使MAX485的RE和DE為低電平而處于數(shù)據(jù)接收狀態(tài)。當(dāng)PC機(jī)發(fā)送數(shù)據(jù)時(shí),MAX232的9腳輸出低電平,經(jīng)Ql倒相后,使MAX485的RE和DE為高電平而處于數(shù)據(jù)發(fā)送狀態(tài)。

2.2下位機(jī)從動(dòng)端

PIC16F877單片機(jī)具有一個(gè)通用同步異步接收發(fā)送器USART,又名串行通訊接口(SCI),可工作于全雙工異步工作模式和半雙工同步工作模式,它是一種利用PORTC口的RC6和RC7兩個(gè)引腳作為通訊的兩線制串行通訊接口。為了把PORTC口的RC6和RC7兩個(gè)引腳分別設(shè)置成串行通訊接口的發(fā)送(TX)腳和接收(RX)腳,必須要把USART的接收狀態(tài)和控制寄存器TCSTA的bit7(SPEN)位和TRISC寄存器的bit7置1,把TRISC寄存器的bit6置0。為了使USART分別工作于接收或發(fā)送狀態(tài),就必須設(shè)置相應(yīng)的狀態(tài)寄存器和控制寄存器。

USART發(fā)送器和接收器在功能上是完全獨(dú)立的,要使USART工作在異步通訊方式,它們所用的數(shù)據(jù)格式和波特率就必須是相同的。這里使用常用的格式:波特率9600,無(wú)校驗(yàn),8個(gè)數(shù)據(jù)位,1個(gè)停止位。

在編寫(xiě)程序時(shí)首先要設(shè)置好USART異步通訊模塊工作模式及相關(guān)寄存器,主要有以下模塊寄存器:TXSTA(數(shù)據(jù)發(fā)送控制及狀態(tài)寄存器),RCSTA(數(shù)據(jù)接收控制及狀態(tài)寄存器),SPBRG(波特率控制寄存器),INTCON、PIEI、PIRI(相關(guān)的中斷控制寄存器),TXREG(串行數(shù)據(jù)發(fā)送寄存器),TCTEG(串行數(shù)據(jù)接收寄存器)。

在PIC單片機(jī)中,決定USART通信波特率高低的,只有SPBRG寄存器和TXSTA寄存器中的BGRH位,不占用任何其它定時(shí)器資源。波特率發(fā)生器的工作時(shí)鐘取自于單片機(jī)主振蕩器的振蕩頻率輸出,通過(guò)設(shè)置SPBRG寄存器和BGRH控制位對(duì)振蕩頻率分頻,最后產(chǎn)生所需的波特率值。

當(dāng)BRGH=0時(shí),為低速波特率發(fā)生方式;BRGH=1則產(chǎn)生高速波特率。這里使用高速波特率,因?yàn)檫@樣可以減少與標(biāo)準(zhǔn)波特率值的誤差。異步通信告訴波特率的計(jì)算方法如下:若單片機(jī)的工作振蕩頻率為fosc,,SPBRG寄存器值為X,則高速波特率的計(jì)算公式為:

 

(1)

在設(shè)計(jì)過(guò)程中,我們一般是先選定需要得到的波特率,然后計(jì)算SPBRG的設(shè)定值X,變換式(1),即得:

 

(2)

異步通信波特率設(shè)定時(shí)得注意事項(xiàng):當(dāng)選用標(biāo)準(zhǔn)波特率時(shí),如果一味追求一步通信時(shí)波特率的準(zhǔn)確度,那就應(yīng)該選擇11.0592MHz作為單片機(jī)的工作振蕩頻率。但其實(shí)大可不必如此計(jì)較。異步通信允許波特率存在一定的偏差,只要偏差值在士3%之內(nèi)就可以保證正常通信,所以對(duì)于常用的1200bps~9600bps波特率的設(shè)定,可選的振蕩頻率可以有很多種,用戶完全可以根據(jù)自己所設(shè)計(jì)系統(tǒng)的其他功能要求而兼顧選擇振蕩頻率。使得單片機(jī)的振蕩頻率越低,功耗就越小,系統(tǒng)抗干擾能力也越強(qiáng)。另外,對(duì)于所選的波特率如果既可以用低速方式又可以用高速方式時(shí),在程序中應(yīng)盡量選擇高速方式,這樣得到的實(shí)際波特率誤差相對(duì)較小。[!--empirenews.page--]

2.3通信時(shí)序

由于RS-485通信是一種半雙工通信,發(fā)送和接受共用同一物理通道,在任意時(shí)刻只允許一臺(tái)單片機(jī)處于發(fā)送狀態(tài),因此要求應(yīng)答的單片機(jī)必須在偵聽(tīng)到總線上呼叫信號(hào)己經(jīng)發(fā)送完畢,并且在沒(méi)有其他單片機(jī)應(yīng)答信號(hào)的情況下才能應(yīng)答。如果在時(shí)序上配合不好,就會(huì)發(fā)生總線沖突,使整個(gè)系統(tǒng)的通信癱瘓,無(wú)法正常工作。上位機(jī)與下位機(jī)之間如何進(jìn)行數(shù)據(jù)傳輸,怎么提高通信的效率和可靠性,以及對(duì)通信過(guò)程中的故障處理,幀格式的約定,都需要一套詳盡的通信協(xié)議。

由于RS-485標(biāo)準(zhǔn)只制定了物理層電氣標(biāo)準(zhǔn),對(duì)上層通信協(xié)議沒(méi)有規(guī)定,這給設(shè)計(jì)者提供了很大的靈活性。一套完整的通信協(xié)議既要求結(jié)構(gòu)簡(jiǎn)單,功能完備,又要求具有可擴(kuò)充性與兼容性,并且盡量標(biāo)準(zhǔn)化。

3報(bào)文通信時(shí)的簡(jiǎn)單協(xié)議

SLIP(Serial?Line?Intemet?Protocol)協(xié)議是串行線路網(wǎng)際協(xié)議,它是最早的、也是僅有的兩個(gè)串行IP協(xié)議之一。它實(shí)現(xiàn)了在串行通信線路上運(yùn)行TCP/IP協(xié)議及其應(yīng)用服務(wù)的功能,為用戶上網(wǎng)提供了撥號(hào)IP模式。這里由它派生出改進(jìn)協(xié)議:

(1)發(fā)送數(shù)據(jù)時(shí)的報(bào)文組裝

●取一個(gè)關(guān)鍵字0x55,一個(gè)報(bào)文的傳輸以0x55為引導(dǎo),中間可以有任意多的字節(jié)數(shù),最后以0xAA結(jié)束一個(gè)報(bào)文。關(guān)鍵字0x55和0xAA不參與檢驗(yàn)和運(yùn)算。

●如果傳輸?shù)脑紨?shù)據(jù)中含有0x55,則將其替換成0xFF+0x05,求校驗(yàn)和時(shí)仍按一個(gè)0x55計(jì)算。

●如果傳輸?shù)脑紨?shù)據(jù)中含有0xAA,則將其替換成0xFF+0x0A,求校驗(yàn)和時(shí)仍按一個(gè)0xAA計(jì)算。

●如果傳輸?shù)脑紨?shù)據(jù)中含有0xFF,則將其替換成0xFF+0x00,求校驗(yàn)和時(shí)仍按一個(gè)0xFF計(jì)算。

●其余數(shù)據(jù)原樣發(fā)送。

例如:當(dāng)有0x55、,0x5A,0xAA,0xAS,0xFF這5個(gè)字節(jié)數(shù)據(jù)需要發(fā)送時(shí),加上它們的算術(shù)校驗(yàn)和0xFD,原始數(shù)據(jù)總共6個(gè)字節(jié)。按上述方法整合成的一個(gè)報(bào)文為:0x55,0xFF,0x05,0x5A,0xFF,0x0A,0xAS,0xFF,0x00,0xFD,0xFF,總共11 個(gè)字節(jié)。

(2)接收數(shù)據(jù)時(shí)的報(bào)文解讀

接受方將接收所有的數(shù)據(jù)并存入數(shù)組,主程序從數(shù)組中逐個(gè)取出數(shù)據(jù)并進(jìn)行解讀,其過(guò)程如下:

●等待出現(xiàn)第一個(gè)0x55,以判斷一個(gè)數(shù)據(jù)包的開(kāi)始。一旦讀到0x55,立即進(jìn)行一個(gè)報(bào)文接收的初始化工作,包括數(shù)組單元清0,字節(jié)計(jì)數(shù)器清0等工作。

●從隊(duì)列中讀取一個(gè)數(shù)據(jù),如果不是0x55、0xAA或0xFF,則直接將數(shù)據(jù)存入數(shù)組。

●如果讀到0xFF,則繼續(xù)讀其下一個(gè)數(shù)據(jù),若是0x05,則替換回原始數(shù)據(jù)0x55;若是0x0A,則替換回原始數(shù)據(jù)xAA,若是0x00,則替換回原始數(shù)據(jù)0xFF。若都不是,則數(shù)據(jù)傳輸出錯(cuò)。

●當(dāng)讀到xAA時(shí),一個(gè)報(bào)文結(jié)束,關(guān)串口接收中斷,串口中斷流程圖如圖4所示。

 

圖4接收數(shù)據(jù)幀時(shí)的串口中斷流程圖

4結(jié)論

本文作者創(chuàng)新點(diǎn):在多MCU之間中長(zhǎng)距離通信的諸多方案中,RS-485因硬件設(shè)計(jì)簡(jiǎn)單、控制方便、成本低廉等優(yōu)點(diǎn)。本文完成了基于RS-485的單主機(jī)一多從機(jī)的集散式控制系統(tǒng)的設(shè)計(jì),包括上位機(jī)主控端與下位機(jī)從動(dòng)端,并詳細(xì)分析了其通信時(shí)序。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

RS485是一種常見(jiàn)的通信接口標(biāo)準(zhǔn),廣泛應(yīng)用于工業(yè)自動(dòng)化、智能家居等領(lǐng)域。它采用差分信號(hào)傳輸方式,具有傳輸距離遠(yuǎn)、抗干擾能力強(qiáng)、數(shù)據(jù)傳輸速率高等特點(diǎn)。

關(guān)鍵字: rs485 RS232

摘 要 :工業(yè)生產(chǎn)中,經(jīng)常需要測(cè)量類(lèi)似單容水箱的液位高度。文中設(shè)計(jì)了一款簡(jiǎn)易液位測(cè)控系統(tǒng)。系統(tǒng)硬件設(shè)計(jì)包括單片機(jī)最小電路、數(shù)據(jù)采集模塊、光耦隔離與驅(qū)動(dòng)模塊、按鍵與顯示模塊 ;軟件設(shè)計(jì)包括按鍵掃描設(shè)計(jì)、PID 控制設(shè)計(jì)和...

關(guān)鍵字: 液位 測(cè)控系統(tǒng) PID 硬件設(shè)計(jì) 軟件設(shè)計(jì) MSP430F5529

RS-485通訊協(xié)議

關(guān)鍵字: rs485 通訊

隨著RS485通訊方式應(yīng)用的越來(lái)越廣泛,對(duì)RS485的理解和認(rèn)識(shí)也越來(lái)越重要,是每個(gè)做通訊、智能化系統(tǒng)、智能儀表相關(guān)工程人員的必須掌握的知識(shí)。

關(guān)鍵字: rs485 通訊

RS232轉(zhuǎn)RS485的接口原理圖

關(guān)鍵字: rs232 rs485

為幫助大家進(jìn)一步了解測(cè)控系統(tǒng),本文將對(duì)基于RS485總線的遠(yuǎn)程測(cè)控系統(tǒng)予以介紹。

關(guān)鍵字: 測(cè)控系統(tǒng) 指數(shù) 遠(yuǎn)程測(cè)控系統(tǒng)

本文中,小編將闡述如何在測(cè)控系統(tǒng)中采用IP核實(shí)現(xiàn)D/A轉(zhuǎn)換。

關(guān)鍵字: 測(cè)控系統(tǒng) 指數(shù) 測(cè)控

為增進(jìn)大家對(duì)測(cè)控系統(tǒng)的認(rèn)識(shí),本文將對(duì)艦載無(wú)人機(jī)測(cè)控系統(tǒng)涉及的一些關(guān)鍵技術(shù)予以探討。

關(guān)鍵字: 測(cè)控系統(tǒng) 指數(shù) 無(wú)人機(jī)

    隨著航管雷達(dá)體制的快速發(fā)展及其技術(shù)的不斷進(jìn)步,對(duì)航管雷達(dá)機(jī)內(nèi)測(cè)控系統(tǒng)的要求也越來(lái)越高[1]。作為航管雷達(dá)正常工作的動(dòng)力源泉,對(duì)航管雷達(dá)供電系統(tǒng)的測(cè)控更顯

關(guān)鍵字: 測(cè)控系統(tǒng) 雷達(dá)

  引言   RS-485總線基于平衡發(fā)送和差分接收,具有很強(qiáng)的抗共模干擾能力,在遠(yuǎn)程有線數(shù)字通信領(lǐng)域使用非常廣泛。但它也存在一些缺點(diǎn),如一個(gè)節(jié)點(diǎn)故障會(huì)引起整個(gè)總線癱瘓、不能星型布線等。

關(guān)鍵字: rs485 集線器
關(guān)閉