當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]在由以單片機(jī)為核心構(gòu)成的儀器儀表、智能設(shè)備等諸多數(shù)據(jù)采集系統(tǒng)中,往往需要實(shí)現(xiàn)計(jì)算機(jī)與單片機(jī)之間的數(shù)據(jù)交換,這也就是單片機(jī)與計(jì)算機(jī)之間的通信,以此來(lái)充分發(fā)揮單片機(jī)與計(jì)算機(jī)各自的長(zhǎng)處,提升整個(gè)應(yīng)用系統(tǒng)性能及性?xún)r(jià)比。傳統(tǒng)的基于RS-232協(xié)議的通信由于傳輸距離短、速度慢、信號(hào)易受干擾等不足,使得其應(yīng)用局限性日益突出。有鑒于此,作者在文中討論了如何基于RS-485通信協(xié)議,構(gòu)建RS-485通信網(wǎng)絡(luò),實(shí)現(xiàn)若干單片機(jī)與計(jì)算機(jī)之間遠(yuǎn)程通信。

一、引言

在由以單片機(jī)為核心構(gòu)成的儀器儀表、智能設(shè)備等諸多數(shù)據(jù)采集系統(tǒng)中,往往需要實(shí)現(xiàn)計(jì)算機(jī)與單片機(jī)之間的數(shù)據(jù)交換,這也就是單片機(jī)與計(jì)算機(jī)之間的通信,以此來(lái)充分發(fā)揮單片機(jī)與計(jì)算機(jī)各自的長(zhǎng)處,提升整個(gè)應(yīng)用系統(tǒng)性能及性?xún)r(jià)比。傳統(tǒng)的基于RS-232協(xié)議的通信由于傳輸距離短、速度慢、信號(hào)易受干擾等不足,使得其應(yīng)用局限性日益突出。有鑒于此,作者在文中討論了如何基于RS-485通信協(xié)議,構(gòu)建RS-485通信網(wǎng)絡(luò),實(shí)現(xiàn)若干單片機(jī)與計(jì)算機(jī)之間遠(yuǎn)程通信。

二、硬件設(shè)計(jì)

 

1.RS-485通信簡(jiǎn)介

RS-485是EIA(美國(guó)電子工業(yè)協(xié)會(huì))制定的平衡發(fā)送、平衡接收的標(biāo)準(zhǔn)異步串行總線(xiàn),它具有傳輸距離遠(yuǎn)、靈敏度高、多點(diǎn)通信能力強(qiáng)等優(yōu)點(diǎn)。RS-485接口標(biāo)準(zhǔn)參見(jiàn)表一。

2.MAX485芯片介紹

RS-485轉(zhuǎn)換接口芯片我們采用MAXIM公司的MAX485(見(jiàn)圖一),該芯片采用單電源+5V工作,額定電流300uA,半雙工通信方式,它完成將TTL電平轉(zhuǎn)換成

RS -485電平。該芯片具有8條引腳,內(nèi)部含2個(gè)驅(qū)動(dòng)器和接收器,RO,DI分別為接收器的輸出端和驅(qū)動(dòng)器的輸入端,二者分別接單片機(jī)TXD和RXD。 /RE和DE分別為接收和發(fā)送使能端,當(dāng)/RE=0時(shí),MAX485處于接收狀態(tài);當(dāng)DE=1時(shí),MAX485處于發(fā)送狀態(tài)。因?yàn)镸AX485工作在半雙工狀態(tài),所以它與單片機(jī)連接時(shí)接線(xiàn)非常簡(jiǎn)單,只需用單片機(jī)一個(gè)管腳控制這兩個(gè)引腳即可。A端和B端分別為接收和發(fā)送的差分信號(hào)端,當(dāng)VA大于VB時(shí),表示發(fā)送數(shù)據(jù)為“1”,當(dāng)VA小于VB時(shí),表示發(fā)送數(shù)據(jù)為“0”,工作時(shí),A、B之間應(yīng)加匹配電阻,一般可選100~120歐。

 

.電平轉(zhuǎn)換接口

在PHILIPS P89C51RD2單片機(jī)與計(jì)算機(jī)進(jìn)行通信時(shí),必須對(duì)電平作一轉(zhuǎn)換。因?yàn)閱纹瑱C(jī)與計(jì)算機(jī)之間是RS-485網(wǎng)絡(luò),單片機(jī)側(cè)信號(hào)經(jīng)MAX485后,從TTL 電平轉(zhuǎn)換為RS-485電平信號(hào),因此,在計(jì)算機(jī)側(cè)必須再把RS-485信號(hào)轉(zhuǎn)換成RS-232電平信號(hào),這樣,二者才能正確通信。在本系統(tǒng)采用DAC- 8520轉(zhuǎn)換器,把RS485信號(hào)轉(zhuǎn)換為RS-232信號(hào),該轉(zhuǎn)換器數(shù)據(jù)轉(zhuǎn)換傳輸速度快,且不需要用戶(hù)對(duì)其進(jìn)行初始化和參數(shù)修改。

表一 RS-485接口標(biāo)準(zhǔn)

 

4.計(jì)算機(jī)端接口

計(jì)算機(jī)采用可編程串行異步通信控制器8251A來(lái)實(shí)現(xiàn),通過(guò)對(duì)8251A初始化可以控制串行數(shù)據(jù)傳送格式和速度及其工作方式,使得它與單片機(jī)的通信方式一致,從而實(shí)現(xiàn)計(jì)算機(jī)與單片機(jī)之間的通信。

三、多點(diǎn)通信

3.1多點(diǎn)通信原理

RS485 總線(xiàn)標(biāo)準(zhǔn)是在RS-422基礎(chǔ)上發(fā)展起來(lái)的,它增加了多點(diǎn)雙向通信能力,使分布式網(wǎng)絡(luò)的多點(diǎn)通信得以實(shí)現(xiàn)。我們?cè)诹私饬似骷尿?qū)動(dòng)能力后,就可以根據(jù)需要和驅(qū)動(dòng)能力加入需要的節(jié)點(diǎn)。本系統(tǒng)就是利用一臺(tái)計(jì)算機(jī)控制多達(dá)32塊單片機(jī),計(jì)算機(jī)通過(guò)發(fā)送控制字和工作方式字來(lái)確定和所需要的單片機(jī)建立通信連接。單片機(jī)根據(jù)計(jì)算機(jī)發(fā)送的指令進(jìn)行數(shù)據(jù)采集,并根據(jù)需要與計(jì)算機(jī)交換數(shù)據(jù)或?qū)ιa(chǎn)過(guò)程參數(shù)及所連設(shè)備狀態(tài)進(jìn)行調(diào)整。計(jì)算機(jī)對(duì)單片機(jī)傳回的數(shù)據(jù)進(jìn)行分析與計(jì)算后,再將相關(guān)控制信息傳給單片機(jī)。

51 系列單片機(jī)用于多點(diǎn)通信時(shí)必須工作在方式2或方式3。以方式3為例,每發(fā)送一幀數(shù)據(jù)為11位:1位起始位(0),8位數(shù)據(jù)位和1位停止位(1),附加的第 9位數(shù)據(jù)在非多點(diǎn)通信系統(tǒng)中為奇偶校驗(yàn)位,在發(fā)送端有SCON的TB8產(chǎn)生,在接收端傳送到RB8。它還可設(shè)定為“0”或“1”作為在多點(diǎn)通信中區(qū)分?jǐn)?shù)據(jù)幀(0標(biāo)志)還是地址幀(1標(biāo)志)的標(biāo)志。在51系列單片機(jī)多點(diǎn)通信系統(tǒng)中有以下通信協(xié)議:所有的各從機(jī)均處于聽(tīng)命狀態(tài),即SM2=1,以便接收主機(jī)發(fā)送來(lái)的地址,當(dāng)接收到一幀信息的RB8為“1”時(shí),表示主機(jī)發(fā)送來(lái)的是地址信息,所有的從機(jī)均發(fā)生接收中斷,否則中斷屏蔽。當(dāng)一從機(jī)進(jìn)入相應(yīng)的中斷服務(wù)程序,把接收到的地址和本機(jī)的地址比較,如果符合就令其SM2=0,并向主機(jī)發(fā)回本機(jī)地址以作應(yīng)答,該從機(jī)就與主機(jī)連通,準(zhǔn)備接收主機(jī)發(fā)來(lái)的命令或數(shù)據(jù)信息,而其他的未被尋址的從機(jī)保持SM2=1并退出各自的中斷服務(wù)程序。這樣,只有SM2=0的從機(jī)才能接收到主機(jī)發(fā)來(lái)的數(shù)據(jù)信息,順利實(shí)現(xiàn)地址幀和數(shù)據(jù)幀的分離。被尋址的從機(jī)在通信完成后重新使SM2=1,并退出中斷服務(wù)程序,等待下次通信。

3.2多點(diǎn)通信協(xié)議

實(shí)現(xiàn)計(jì)算機(jī)和單片機(jī)的正常通信,必須正確設(shè)置它們兩者之間的工作方式,保證雙方都用相同的波特率、起始位、停止位、奇偶校驗(yàn)位,并且要建立雙方通信的應(yīng)答信號(hào)。

單片機(jī)既可以工作在同步移位寄存器方式,也可工作在UART(通用異步收發(fā)器)下。串行口的通信方式是由特殊功能寄存器SCON來(lái)控制的。其各位定義如下:

 

SM0, SM1:工作模式設(shè)定位;SM2:允許使用方式2、3多機(jī)通信控制位;RB8:接收數(shù)據(jù)第9位;TB8:發(fā)送數(shù)據(jù)第9位;TI發(fā)送中斷標(biāo)志;RI:接收中斷標(biāo)志。本文中工作方式為方式3,即9位UART定時(shí)器T1作為波特率發(fā)生器,工作在方式2,若選定波特率為9600bps,則記數(shù)初值為0FAH (SMOD=0,時(shí)鐘頻率Fosc為11.0592MHz)

計(jì)算機(jī)的異步通信接口為INTEL8251A,它可設(shè)定1位、1.5位或2位停止位,數(shù)據(jù)可在5到8位之間選擇,通信頻率為0到9600bps,有奇偶校驗(yàn)、幀校驗(yàn)、溢出校驗(yàn)三種方式??赏ㄟ^(guò)對(duì)它寫(xiě)入一定的方式控制字、命令控制字從而進(jìn)行初始化。它的工作狀態(tài)寄存于狀態(tài)寄存器中,可由P89C51RD2的 CPU讀取。通信協(xié)議如下:(1)串行通信波特率為9600bps;(2)幀格式為8位數(shù)據(jù)位,一位起始位,一位可編程的第9位(即發(fā)送和接收的地址/數(shù)據(jù)位的標(biāo)志位),一位停止位;(3)主機(jī)和從機(jī)遵循主從原則,主機(jī)用呼叫方式選擇從機(jī),數(shù)據(jù)在主機(jī)和從機(jī)之間雙向傳遞,各從機(jī)之間的相互通信需通過(guò)主機(jī)作為中介;(4)主從機(jī)之間還應(yīng)傳送一些供它們識(shí)別的命令和狀態(tài)字,如以00H表示主機(jī)發(fā)送從機(jī)接收命令,以01H表示從機(jī)發(fā)送主機(jī)接收命令等。

四、軟件設(shè)計(jì)

該部分主要包括主機(jī)程序、從機(jī)和其中斷服務(wù)程序組成。主機(jī)程序主要完成對(duì)串口初始化以及主機(jī)與從機(jī)之間的通信。而從機(jī)主程序主要完成對(duì)串口的初始化、波特率的設(shè)置(應(yīng)與主機(jī)端的波特率一致),它的中斷程序主要完成P89C51RD2與計(jì)算機(jī)的數(shù)據(jù)通信。

1. 單片機(jī)部分

單片機(jī)端程序在KEIL 公司提供的優(yōu)秀可視化集成開(kāi)發(fā)環(huán)境uVISION2中用C語(yǔ)言編寫(xiě)。通信波特率9600bps,晶振11.0592Mhz。需要注意的是PHILIPS P89C51RD2的1個(gè)機(jī)器周期為6個(gè)時(shí)鐘周期,與標(biāo)準(zhǔn)8051單片機(jī)1個(gè)機(jī)器周期為12個(gè)時(shí)鐘周期不同,因此,在相關(guān)參數(shù)設(shè)置時(shí)要注意這一差別,否則,無(wú)法正確建立通信連接。為配合多機(jī)通信方式,我們采用工作方式3.

單片機(jī)通信流程圖如圖二所示。

單片機(jī)串口初始化程序如下:

main( )

{ TMOD = 0x20;

/*定時(shí)器1方式2*/

TH1=0xfa;

/*9600波特率晶振11.0592MHz*/

TCON=0x40;

/*啟動(dòng)定時(shí)器1*/

SCON=0x50;

/*允許接收*/

IE=0x90;

/*允許串行口中斷*/

………..

 

2.計(jì)算機(jī)部分

計(jì)算機(jī)端程序我們采用優(yōu)秀的可視化軟件Visual Basic編寫(xiě),其中關(guān)鍵部分是引用Visual Basic的串行通信控件MSComm,發(fā)送和接收完全由該控件管理實(shí)現(xiàn),而不需要以往繁瑣的驅(qū)動(dòng)程序編寫(xiě)。這無(wú)疑大大提高了工作效率,降低了開(kāi)發(fā)成本。

計(jì)算機(jī)通信流程如圖三所示。

 

下面給出用VB6編制的通信程序:

Dim inbyte( ) AS Byte ’定義動(dòng)態(tài)字節(jié)型數(shù)組

Private Sub txd_click( ) ’通信建立及數(shù)據(jù)發(fā)送控制按鈕

If MSComm1.PortOpen = True Then GoTo jj

如通信端口開(kāi)則跳至jj

MSComm1.CommPort = 1

’通信端口為COM1

MSComm1.Settings = "9600,n,8,1"

’串口初始化為9600波特,8位數(shù)據(jù)位,1位停止位,無(wú)校驗(yàn)

MSComm1.PortOpen = True

’打開(kāi)通信端口

jj: Mscomm1.output=Text1.text

’發(fā)送地址碼

………..

Mscomm1.output=text2.text ’發(fā)送工作方式控制字,采集通道以及校驗(yàn)碼

End Sub

Private Sub rxd_click() ’數(shù)據(jù)接收按鈕

Inbyte( )=Mscomm1.input ’接收的數(shù)據(jù)存于動(dòng)態(tài)字節(jié)數(shù)組

……. ’省略數(shù)據(jù)處理部分

End Sub

五、結(jié)束語(yǔ)

利用RS -485串行通信,可以保證快速、穩(wěn)定、遠(yuǎn)距離傳送數(shù)據(jù)。本文設(shè)計(jì)的系統(tǒng)已在智能數(shù)據(jù)采集網(wǎng)絡(luò)儀表中得到成功應(yīng)用,其通信設(shè)計(jì)方法還可以稍加修改即可移植到其他的工業(yè)測(cè)控系統(tǒng)中。由于本文設(shè)計(jì)方法開(kāi)發(fā)成本低,設(shè)計(jì)簡(jiǎn)單,在目前及以后的工業(yè)控制和其他方面必將得到越來(lái)越多的應(yīng)用。

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

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶(hù)希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱(chēng),數(shù)字世界的話(huà)語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱(chēng)"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉