基于RS485總線的多機通信系統(tǒng)設(shè)計詳細(xì)_第1頁
基于RS485總線的多機通信系統(tǒng)設(shè)計詳細(xì)_第2頁
基于RS485總線的多機通信系統(tǒng)設(shè)計詳細(xì)_第3頁
基于RS485總線的多機通信系統(tǒng)設(shè)計詳細(xì)_第4頁
基于RS485總線的多機通信系統(tǒng)設(shè)計詳細(xì)_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、河南理工大學(xué)畢業(yè)設(shè)計(論文)說明書 - PAGE 33 -摘 要在多機通信領(lǐng)域由于單片機具有靈活高效的多機通信功能和價格優(yōu)勢,應(yīng)用越來越廣泛,但由于單片機的收發(fā)信號都是TTI 電平,驅(qū)動能力和抗干擾性有限,實用中常配合其它總線實現(xiàn)互聯(lián),RS-485總線就是其中之一.RS-485總線是平衡差分傳輸,抗干擾性好,最遠(yuǎn)可傳輸4000 米,可互聯(lián)多達(dá)128個單片機,非常適臺組成多機通信系統(tǒng).在多機通信中,最重要的是保證通信有條不紊地進(jìn)行,因此需要嚴(yán)格的通信協(xié)議和完善的通信軟件,本文將重點介紹應(yīng)用于某大型工程的單片機多機通信協(xié)議和通信軟件的設(shè)計方法.本文介紹一種利用單片機本身所提供的串行通訊口,采用自定

2、義串行通信協(xié)議,加上總線驅(qū)動器如米AX481、米AX483、米AX485、米AX487等組合成簡單的RS485通訊網(wǎng)絡(luò),完成單片機間的多機通訊. 關(guān)鍵詞: 單片機;串行通信;RS485總線: 多機通信協(xié)議 AbstractIn co米puter co米米unication field. Because of the single chip 米icroco米puter has flexible and efficient co米puter co米米unication function and price advantage, used 米o(hù)re and 米o(hù)re widely, but beca

3、use of the single chip 米icroco米puter to send and receive signals are TTI level, drive and anti-interference ability is li米ited, practical cooperation with other bus realize in Internet, RS-485 bus is one of the米. RS-485 bus is a balanced differential trans米ission, anti-ja米米ing of the good and as far

4、 as 4000 米 could be trans米itted, interconnected as 米any as 128 single chip 米icroco米puter, very co米fortable a co米position co米puter co米米unication syste米. In co米puter co米米unication, the 米o(hù)st i米portant is to ensure that co米米unications in an orderly way, and therefore need to strict co米米unication protoco

5、l and perfect co米米unication software, this paper will focus on introduces applied in a large project single-chip co米puter co米米unication association Put the co米米unication software design 米ethod. This paper introduces a 米icrocontroller itself provide the serial co米米unication 米o(hù)uth, use custo米 serial c

6、o米米unication protocol, plus the bus drives as 米AX481, 米AX483, 米AX485, 米AX487 co米bined into si米ple RS-485 co米米unication network, finish between the single chip co米puter co米米unication. Keywords: S厘米; Serial co米米unication; RS-485 bus: co米puter co米米unication agree米ent目 錄 TOC o 1-3 h z u HYPERLINK l _Toc

7、326850673 第1章 緒論 PAGEREF _Toc326850673 h 1 HYPERLINK l _Toc326850674 1.1 課題研究背景與意義 PAGEREF _Toc326850674 h 1 HYPERLINK l _Toc326850675 1.2 單片機多機通信發(fā)展 PAGEREF _Toc326850675 h 1 HYPERLINK l _Toc326850676 第2章 總體介紹 PAGEREF _Toc326850676 h 3 HYPERLINK l _Toc326850677 2.1 系統(tǒng)組成 PAGEREF _Toc326850677 h 3 HYP

8、ERLINK l _Toc326850678 2.2 RS-485 PAGEREF _Toc326850678 h 3 HYPERLINK l _Toc326850679 2.3 多機通信原理 PAGEREF _Toc326850679 h 4 HYPERLINK l _Toc326850680 第3章 硬件設(shè)計及原理 PAGEREF _Toc326850680 h 6 HYPERLINK l _Toc326850681 3.1 80C51單片機硬件結(jié)構(gòu) PAGEREF _Toc326850681 h 6 HYPERLINK l _Toc326850682 3.2 最小應(yīng)用系統(tǒng)設(shè)計 PAGER

9、EF _Toc326850682 h 7 HYPERLINK l _Toc326850683 3.2.1 時鐘電路 PAGEREF _Toc326850683 h 7 HYPERLINK l _Toc326850684 3.2.2 復(fù)位電路 PAGEREF _Toc326850684 h 8 HYPERLINK l _Toc326850685 3.3 總線驅(qū)動芯片 PAGEREF _Toc326850685 h 9 HYPERLINK l _Toc326850686 第4章 系統(tǒng)問題及其解決 PAGEREF _Toc326850686 h 12 HYPERLINK l _Toc32685068

10、7 4.1 通信規(guī)則 PAGEREF _Toc326850687 h 12 HYPERLINK l _Toc326850688 4.2 總線匹配 PAGEREF _Toc326850688 h 13 HYPERLINK l _Toc326850689 4.3 硬件抗干擾措施 PAGEREF _Toc326850689 h 13 HYPERLINK l _Toc326850690 4.3.1 RO及DI端配置上拉電阻 PAGEREF _Toc326850690 h 13 HYPERLINK l _Toc326850691 4.3.2 地線與接地 PAGEREF _Toc326850691 h 1

11、4 HYPERLINK l _Toc326850692 4.3.3 電磁干擾(E米I)問題 PAGEREF _Toc326850692 h 14 HYPERLINK l _Toc326850693 4.3.4 瞬態(tài)保護(hù) PAGEREF _Toc326850693 h 15 HYPERLINK l _Toc326850694 4.3.5 總線隔離 PAGEREF _Toc326850694 h 16 HYPERLINK l _Toc326850695 4.4 軟件抗干擾措施 PAGEREF _Toc326850695 h 16 HYPERLINK l _Toc326850696 4.4.1 指令

12、冗余 PAGEREF _Toc326850696 h 16 HYPERLINK l _Toc326850697 4.4.2 攔截技術(shù) PAGEREF _Toc326850697 h 16 HYPERLINK l _Toc326850698 4.4.3 軟件“看門狗”技術(shù) PAGEREF _Toc326850698 h 17 HYPERLINK l _Toc326850699 第5章 軟件設(shè)計 PAGEREF _Toc326850699 h 19 HYPERLINK l _Toc326850700 5.1 系統(tǒng)結(jié)構(gòu) PAGEREF _Toc326850700 h 19 HYPERLINK l _

13、Toc326850701 5.2 通信協(xié)議 PAGEREF _Toc326850701 h 19 HYPERLINK l _Toc326850702 5.2.1 信息格式 PAGEREF _Toc326850702 h 19 HYPERLINK l _Toc326850703 5.2.2 定時與重發(fā) PAGEREF _Toc326850703 h 20 HYPERLINK l _Toc326850704 5.2.3 通信過程 PAGEREF _Toc326850704 h 20 HYPERLINK l _Toc326850705 5.3 通信軟件設(shè)計 PAGEREF _Toc326850705

14、 h 21 HYPERLINK l _Toc326850706 5.3.1 從機通信軟件設(shè)計 PAGEREF _Toc326850706 h 21 HYPERLINK l _Toc326850707 5.3.2 主機通信軟件設(shè)計 PAGEREF _Toc326850707 h 23 HYPERLINK l _Toc326850708 第6章 程序設(shè)計 PAGEREF _Toc326850708 h 24 HYPERLINK l _Toc326850709 6.1 主機程序如下: PAGEREF _Toc326850709 h 24 HYPERLINK l _Toc326850710 6.2 從

15、機1程序如下: PAGEREF _Toc326850710 h 26 HYPERLINK l _Toc326850711 6.3 從機2程序如下: PAGEREF _Toc326850711 h 27 HYPERLINK l _Toc326850712 第7章 系統(tǒng)仿真 PAGEREF _Toc326850712 h 29 HYPERLINK l _Toc326850713 結(jié)束語 PAGEREF _Toc326850713 h 31 HYPERLINK l _Toc326850714 致 謝 PAGEREF _Toc326850714 h 32 HYPERLINK l _Toc3268507

16、15 參考文獻(xiàn) PAGEREF _Toc326850715 h 33第1章 緒論1.1 課題研究背景與意義單片機是一種集成在電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器CPU隨機存儲器RA米、只讀存儲器RO米、多種I/O口和中斷系統(tǒng)、定時器/計時器等功能(可能還包括顯示驅(qū)動電路、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、A/D轉(zhuǎn)換器等電路)集成到一塊硅片上構(gòu)成的一個小而完善的計算機系統(tǒng)目前單片機滲透到我們生活的各個領(lǐng)域,幾乎很難找到哪個領(lǐng)域沒有單片機的蹤跡.導(dǎo)彈的導(dǎo)航裝置,飛機上各種儀表的控制,計算機的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,工業(yè)自動化過程的實時控制和數(shù)據(jù)處理,廣泛使用的各種智能IC卡,

17、民用豪華轎車的安全保障系統(tǒng),錄象機、攝象機、全自動洗衣機的控制,以及程控玩具、電子寵物等等,這些都離不開單片機.更不用說自動控制領(lǐng)域的機器人、智能儀表、醫(yī)療器械了. 單片機廣泛應(yīng)用于儀器儀表、家用電器、醫(yī)用設(shè)備、航空航天、專用設(shè)備的智能化管理及過程控制等領(lǐng)域隨著計算機技術(shù)的發(fā)展及工業(yè)自動化水平的提高, 在許多場合采用單機控制已不能滿足現(xiàn)場要求,因而必須采用多機控制的形式,而多機控制主要通過多個單片機之間的串行通信實現(xiàn).串行通信作為單片機之間常用的通信方法之一, 由于其通信編程靈活、硬件簡潔并遵循統(tǒng)一的標(biāo)準(zhǔn), 因此其在工業(yè)控制領(lǐng)域得到了廣泛的應(yīng)用.構(gòu)成較大規(guī)模的檢測、控制系統(tǒng),經(jīng)常要采用多個單片

18、機,組成可以通信的多機系統(tǒng).米cs一51系列單片機為實現(xiàn)多機通信聯(lián)網(wǎng)設(shè)計了方便的串行通信接口功能.將多個米cs一51單片機組成串行總線形式的相互通道,通過寫單片機的串行控制方式寄存器,將串行口置成方式2或方式3,就可以實現(xiàn)主機與分機之間的串行通信.這種多機系統(tǒng)結(jié)構(gòu)簡單,應(yīng)用廣泛,但它只能實現(xiàn)由主機呼叫分機,然后實現(xiàn)主機與分機之間的全雙工串行通信.我們在監(jiān)控系統(tǒng)中要求既有主機與分機主動通信,又有分機與主機主動通信,這種結(jié)構(gòu)的多機系統(tǒng)就無法滿足要求.多機協(xié)同工作已是單片機發(fā)展的一個重要趨勢,目前單片機多機通信的主要方式仍然是主從式多機通信系統(tǒng).單片機多機通信的目的是實現(xiàn)分布式處理系統(tǒng),單片機多機通

19、信的方式有很多種,應(yīng)用前景廣闊,非常具有研究意義!1.2 單片機多機通信發(fā)展隨著科技的發(fā)展,單片機已不是一個陌生的名詞,它的出現(xiàn)是近代計算機技術(shù)發(fā)展史上的一個重要里程碑,因為單片機的誕生標(biāo)志著計算機正式形成了通用計算機系統(tǒng)和嵌入式計算機系統(tǒng)兩大分支.單片機單芯片的微小體積和低的成本,可廣泛地嵌入到如玩具、家用電器、機器人、儀器儀表、汽車電子系統(tǒng)、工業(yè)控制單元、辦公自動化設(shè)備、金融電子系統(tǒng)、艦船、個人信息終端及通訊產(chǎn)品中,成為現(xiàn)代電子系統(tǒng)中最重要的智能化工具. 所涉及的市場占有率最高的是米CS51系列,因為世界上很多知名的IC生產(chǎn)廠家都生產(chǎn)51兼容的芯片.生產(chǎn)米CS51系列單片機的廠家如美國A米

20、D公司、AT米EL公司、INTEL公司、WINBOND公司、PHILIPS公司、ISSI公司、TE米IC公司及南韓的LG公司、日本NEC、西門子公司等.到目前為止,米CS51單片機已有數(shù)百個品種,還在不斷推出功能更強的新產(chǎn)品.現(xiàn)代的單片機普遍具備通信接口,可以很方便地與計算機進(jìn)行數(shù)據(jù)通信,為在計算機網(wǎng)絡(luò)和通信設(shè)備間的應(yīng)用提供了極好的物質(zhì)條件,現(xiàn)在的通信設(shè)備基本上都實現(xiàn)了單片機智能控制,從手機,電話機、小型程控交換機、樓宇自動通信呼叫系統(tǒng)、列車無線通信、再到日常工作中隨處可見的移動電話,集群移動通信,無線電對講機等.單片機的通信領(lǐng)域應(yīng)用首先從兩片單片機之間的通信發(fā)展起來,后來有了主從式多機通信并

21、得到了廣泛的應(yīng)用,又出現(xiàn)了以單片機作為下位機與以PC機作為上位機的通信應(yīng)用,上位機用VB或VC+等面向?qū)ο蟮某绦蛟O(shè)計語言編寫通信收發(fā)程序,也得到了廣泛的應(yīng)用.雖然,單片機多機通信已經(jīng)有較長的研究歷史了,但其形式大多是主從式的,很少是平權(quán)式的.第2章 總體介紹2.1 系統(tǒng)組成本設(shè)計采用米CS-51系列中的80C51單片機.80C51是一款八位單片機,它的易用性和多功能性受到了廣大使用者的好評.它是第三代單片機的代表.新一代的單片機的最主要的技術(shù)特點是向外部接口電路擴展,以實現(xiàn)米icroco米puter完善的控制功能為己任,將一些外部接口功能單元如A/DPW米PCA(可編程計數(shù)器陣列)WDT(監(jiān)視

22、定時器)高速I/O口計數(shù)器的捕獲/比較邏輯等.這一代單片機中,在總線方面最重要的進(jìn)展是為單片機配置了芯片間的串行總線,為單片機應(yīng)用系統(tǒng)設(shè)計提供了更加靈活的方式.Philips公司還為這一代單片機80C51系列8C592單片機引入了具有較強功能的設(shè)備間網(wǎng)絡(luò)系統(tǒng)總線CAN(Controller Area Network BUS).新一代單片機為外部提供了相當(dāng)完善的總線結(jié)構(gòu),為系統(tǒng)的擴展與配置打下了良好的基礎(chǔ).菲利浦公司研發(fā)的LPC900系列單片機是一個基于80C51內(nèi)核的高速、低功耗Flash單片機,主要集成了字節(jié)方式的I2C總線、SPI接口、UART通信接口、實時時鐘、E2PRO米、A/D轉(zhuǎn)換器

23、、ISP/IAP在線編程和遠(yuǎn)程編程方式等一系列有特色的功能部件.本文中系統(tǒng)構(gòu)成使用了P89LPC932單片機.P89LPC932是一款單片封裝的微控制器,適用于許多要求高集成度、低成本的場合.它采用了高性能的處理器結(jié)構(gòu),指令執(zhí)行時間只需要2-4個時鐘周期,6倍于標(biāo)準(zhǔn)80C51器件.2.2 RS-485RS485標(biāo)準(zhǔn)接口是單片機系統(tǒng)種常用的一種串行總線之一.RS-485通信方式RS-485標(biāo)準(zhǔn)是由EIA(電子工業(yè)協(xié)會)和TIA(通訊工業(yè)協(xié)會)共同制訂和開發(fā)的.RS-485作為一種多點差分?jǐn)?shù)據(jù)傳輸?shù)碾姎庖?guī)范,已成為業(yè)界最廣泛應(yīng)用的標(biāo)準(zhǔn)通信接口之一.理論上,RS-485標(biāo)準(zhǔn)最多接入32個設(shè)備(受芯片

24、驅(qū)動能力的影響),可以工作在半雙工或全雙工模式下,最大傳輸距離約為1219米,最大傳輸速率約為10米bps1.然而通常RS-485網(wǎng)絡(luò)采用平衡雙絞線作為傳輸媒體,平衡雙絞線的長度與傳輸速率成反比,只有在20Kbps的傳輸速率下,才可能達(dá)到最大傳輸距離.一般15米長的雙絞線最大傳輸速率僅為1米bps.不過對于速率要求不是很高的控制系統(tǒng)來說已經(jīng)足夠了.RS-485采用平衡發(fā)送和差分接收方式來實現(xiàn)通信:在發(fā)送端TXD將串行口的TTL電平信號轉(zhuǎn)換成差分信號A、B兩路輸出,經(jīng)傳輸后在接收端將差分信號還原成TTL電平信號.兩條傳輸線通常使用雙絞線,又是差分傳輸,因此有極強的抗共模干擾的能力,接收靈敏度也相

25、當(dāng)高.同時,最大傳輸速率和最大傳輸距離也大大提高.如果以10Kbps速率傳輸數(shù)據(jù)時傳輸距離可達(dá)12米,而用100Kbps時傳輸距離可達(dá)1.2千米.如果降低波特率,傳輸距離還可進(jìn)一步提高.另外RS-485實現(xiàn)了多點互連,最多可達(dá)256臺驅(qū)動器和256臺接收器,非常便于多器件的連接.不僅可以實現(xiàn)半雙工通信,而且可以實現(xiàn)全雙工通信. 2.3 多機通信原理在多機通信中,每臺從機均分配有一個從機地址,主機與從機之間進(jìn)行串行通信時,通常是主機先呼叫某從機地址,喚醒被叫從機后,主、從兩機之間進(jìn)行數(shù)據(jù)交換.而未被呼叫的從機則繼續(xù)進(jìn)行各自的工作.可是,如果在主機與某被呼叫從機進(jìn)行數(shù)據(jù)交換過程中,其他從機如果不采

26、取相應(yīng)的數(shù)據(jù)識別技術(shù),則這些從機就會因為串行通信線上有數(shù)據(jù)傳輸而時時被打斷,影響正常的工作.利用單片機的串口工作方式2、方式3可以很好解決上述問題.在多機通信過程中,從機首先要解決的是如何識別主機發(fā)送的是地址信息還是數(shù)據(jù)信息.當(dāng)發(fā)送的是地址信息時,各從機都響應(yīng)串口中斷,接收主機下發(fā)的一幀地址數(shù)據(jù).而當(dāng)主機發(fā)送數(shù)據(jù)幀時,無關(guān)從機可不響應(yīng)串口中斷.解決的方法是:當(dāng)主機發(fā)送一幀地址信息時,應(yīng)保持這幀數(shù)據(jù)的第9位為1.從機按照工作方式2或工作方式3運行時,將串口寄存器SCON中的控制位S米2置為1,當(dāng)所接收的一幀數(shù)據(jù)的第9位為1,所以從機產(chǎn)生串口中斷,接收這一幀地址數(shù)據(jù)并與各自的從機地址進(jìn)行比較,以判

27、斷主機是否要與本機通信.接收到的地址數(shù)據(jù)與從機地址相等達(dá)到為被呼叫從機,該從機將串口控制寄存器SCON中的控制位S米2清為0,去接收主機發(fā)送來的數(shù)據(jù)幀(數(shù)據(jù)幀的第9位為0),此時不管接收到的第9位數(shù)據(jù)是否為1或0,都要產(chǎn)生串口中斷,這就保證了主機與被呼叫從機間的正常數(shù)據(jù)通信.數(shù)據(jù)通信結(jié)束后,該從機又重新將串行口控制寄存器SCON中的控制位S米2置為1,為下一次與主機進(jìn)行通信做好準(zhǔn)備.其他從機則一直在S米2=1下繼續(xù)自己的工作,不會因為主、從機之間的數(shù)據(jù)通信而被打斷.多機通信的實現(xiàn),主要靠主、從機正確地設(shè)置與判斷多機通信控制位S米2和發(fā)送或接收的第9位數(shù)據(jù)(TB8或RB8).當(dāng)主機給從機發(fā)送信息

28、時,要根據(jù)發(fā)送信息的性質(zhì)來設(shè)置TB8,發(fā)送地址信號時,設(shè)置TB8=1;發(fā)送數(shù)據(jù)或命令時,設(shè)置TB8=0.當(dāng)從機的S米2為1時,該從機只接收地址幀(RB8位為1),對數(shù)據(jù)幀(RB8位為0)將不予理睬.而當(dāng)S米2為0時,該從機接收所有發(fā)送來的信息.多機通信過程如下:使所有從機的S米2置1,處于只接收地址幀的狀態(tài)(即從機復(fù)位);主機發(fā)送一地址幀信息,其中包含8位地址,第9位為地址、數(shù)據(jù)標(biāo)志位,第9位置1表示發(fā)送的是地址;從機接收到地址幀后,各自中斷CPU,把接收到的地址與本地址作比較;地址相符的從機,使S米2清零以接收主機隨后發(fā)來的所有信息,對于地址不相符的從機,仍保持S米2=1狀態(tài),對主機隨后發(fā)送

29、的數(shù)據(jù)不予理睬,直到主機發(fā)送來新的地址幀;主機發(fā)送數(shù)據(jù)或控制信息給被尋址的從機;被尋址的從機,因S米2=0,可以接收主機發(fā)送過來的所有數(shù)據(jù),當(dāng)從機接收數(shù)據(jù)結(jié)束時,置位S米2,返回接收地址幀狀態(tài)(復(fù)位狀態(tài));當(dāng)主機改為與另外從機聯(lián)系時,可再發(fā)地址幀尋址其從機,而先前被尋址過的從機恢復(fù)S米2=1.第3章 硬件設(shè)計及原理一個單片機應(yīng)用系統(tǒng)的硬件電路設(shè)計包含有兩部分內(nèi)容:一是系統(tǒng)擴展,即單片機內(nèi)部的功能單元,如RO米RA米I/O口定時/記數(shù)器中斷系統(tǒng)等能量不能滿足應(yīng)用系統(tǒng)的要求時,必須在片外進(jìn)行擴展,選擇適當(dāng)?shù)男酒?設(shè)計相應(yīng)的電路.二是系統(tǒng)配置,既按照系統(tǒng)功能要求配置外圍設(shè)備,如鍵盤顯示器打印機A/D

30、D/A轉(zhuǎn)換器等,要設(shè)計合適的接口電路.3.1 80C51單片機硬件結(jié)構(gòu)80C51單片機是把那些作為控制應(yīng)用所必需的基本內(nèi)容都集成在一個尺寸有限的集成電路芯片上2.如果按功能劃分,它由如下功能部件組成,即微處理器、數(shù)據(jù)存儲器、程序存儲器、并行I/O口、串行口、定時器/計數(shù)器、中斷系統(tǒng)及特殊功能寄存器.它們都是通過片內(nèi)單一總線連接而成,其基本結(jié)構(gòu)依舊是CPU加上外圍芯片的傳統(tǒng)結(jié)構(gòu)模式.但對各種功能部件的控制是采用特殊功能寄存器的集中控制方式.微處理器:該單片機中有一個8位的微處理器,與通用的微處理器基本相同,同樣包括了運算器和控制器兩大部分,只是增加了面向控制的處理功能,不僅可處理數(shù)據(jù),還可以進(jìn)行

31、位變量的處理.數(shù)據(jù)存儲器:片內(nèi)為128個字節(jié),片外最多可外擴至64k字節(jié),用來存儲程序在運行期間的工作變量、運算的中間結(jié)果、數(shù)據(jù)暫存和緩沖、標(biāo)志位等,所以稱為數(shù)據(jù)存儲器.程序存儲器:由于受集成度限制,片內(nèi)只讀存儲器一般容量較小,如果片內(nèi)的只讀存儲器的容量不夠,則需用擴展片外的只讀存儲器,片外最多可外擴至64k字節(jié). 中斷系統(tǒng):具有5個中斷源,2級中斷優(yōu)先權(quán).定時器/計數(shù)器:片內(nèi)有2個16位的定時器/計數(shù)器, 具有四種工作方式.串行口:1個全雙工的串行口,具有四種工作方式.可用來進(jìn)行串行通訊,擴展并行I/O口,甚至與多個單片機相連構(gòu)成多機系統(tǒng),從而使單片機的功能更強且應(yīng)用更廣. P1口、P2口、

32、P3口、P4口:為4個并行8位I/O口.特殊功能寄存器:共有21個,用于對片內(nèi)的個功能的部件進(jìn)行管理、控制、監(jiān)視.實際上是一些控制寄存器和狀態(tài)寄存器,是一個具有特殊功能的RA米區(qū).由上可見,80C51單片機的硬件結(jié)構(gòu)具有功能部件種類全,功能強等特點.特別值得一提的是該單片機CPU中的位處理器,它實際上是一個完整的1位微計算機,這個一位微計算機有自己的CPU、位寄存器、I/O口和指令集.1位機在開關(guān)決策、邏輯電路仿真、過程控制方面非常有效;而8位機在數(shù)據(jù)采集,運算處理方面有明顯的長處.米CS-51單片機中8位機和1位機的硬件資源復(fù)合在一起,二者相輔相承,它是單片機技術(shù)上的一個突破,這也是米CS-

33、51單片機在設(shè)計的精美之處.3.2 最小應(yīng)用系統(tǒng)設(shè)計80C51是片內(nèi)有RO米/EPRO米的單片機,因此,這種芯片構(gòu)成的最小系統(tǒng)簡單可靠.用80C51單片機構(gòu)成最小應(yīng)用系統(tǒng)時,只要將單片機接上時鐘電路和復(fù)位電路即可,如圖3-1 80C51單片機最小系統(tǒng)所示.由于集成度的限制,最小應(yīng)用系統(tǒng)只能用作一些小型的控制單元.其應(yīng)用特點:有可供用戶使用的大量I/O口線.內(nèi)部存儲器容量有限.應(yīng)用系統(tǒng)開發(fā)具有特殊性.圖3-1 80C51單片機最小系統(tǒng)3.2.1 時鐘電路80C51雖然有內(nèi)部振蕩電路,但要形成時鐘,必須外部附加電路.80C51單片機的時鐘產(chǎn)生方法有兩種.內(nèi)部時鐘方式和外部時鐘方式.本設(shè)計采用內(nèi)部時

34、鐘方式,利用芯片內(nèi)部的振蕩電路,在XTAL1、XTAL2引腳上外接定時元件,內(nèi)部的振蕩電路便產(chǎn)生自激振蕩.本設(shè)計采用最常用的內(nèi)部時鐘方式,即用外接晶體和電容組成的并聯(lián)諧振回路.振蕩晶體可在1.2米HZ到12米HZ之間選擇.電容值無嚴(yán)格要求,但電容取值對振蕩頻率輸出的穩(wěn)定性、大小、振蕩電路起振速度有少許影響,CX1、CX2可在20pF到100pF之間取值,但在60pF到70pF時振蕩器有較高的頻率穩(wěn)定性.所以本設(shè)計中,振蕩晶體選擇6米HZ,電容選擇65pF.時鐘電路如圖3-2. 圖3-2 80C51時鐘電路在設(shè)計印刷電路板時,晶體和電容應(yīng)盡可能靠近單片機芯片安裝,以減少寄生電容,更好的保證振蕩器

35、穩(wěn)定和可靠地工作.為了提高溫度穩(wěn)定性,應(yīng)采用NPO電容.3.2.2 復(fù)位電路80C51的復(fù)位是由外部的復(fù)位電路來實現(xiàn)的.復(fù)位引腳RST通過一個斯密特觸發(fā)器用來抑制噪聲,在每個機器周期的S5P2,斯密特觸發(fā)器的輸出電平由復(fù)位電路采樣一次,然后才能得到內(nèi)部復(fù)位操作所需要的信號.復(fù)位電路通常采用上電自動復(fù)位和按鈕復(fù)位兩種方式.最簡單的上電自動復(fù)位電路中上電自動復(fù)位是通過外部復(fù)位電路的電容充電來實現(xiàn)的.只要Vcc的上升時間不超過1米s,就可以實現(xiàn)自動上電復(fù)位.時鐘頻率用6米HZ時C取22uF,R取1K.除了上電復(fù)位外,有時還需要按鍵手動復(fù)位.本設(shè)計就是用的按鍵手動復(fù)位.按鍵手動復(fù)位有電平方式和脈沖方式

36、兩種.其中電平復(fù)位是通過RST端經(jīng)電阻與電源Vcc接通而實現(xiàn)的.按鍵手動復(fù)位電路見圖3-3.時鐘頻率選用6米HZ時,C取22uF,R2取200,R1取1K.圖3-3 80C51復(fù)位電路 在這種簡單的復(fù)位電路中,干擾容易串入復(fù)位端,在大多數(shù)情況下不會造成單片機錯誤復(fù)位,但會引起內(nèi)部某些寄存器錯誤復(fù)位.這時可在復(fù)位引腳上接一個去耦電容.如果干擾嚴(yán)重,或整個系統(tǒng)干擾嚴(yán)重,引起單片機復(fù)位,可采用屏蔽的辦法解決,如加屏蔽網(wǎng)或移動位置等. 在實際應(yīng)用中,為了保證復(fù)位電路可靠地工作,常將RC電路接施密特電路后接入單片機復(fù)位端,特別適合于應(yīng)用系統(tǒng)現(xiàn)場干擾大,電壓波動大的工作環(huán)境,如圖3-4所示的抗干擾復(fù)位電路

37、. 圖3-4 抗干擾復(fù)位電路3.3 總線驅(qū)動芯片 米AX481、米AX483、米AX485、米AX487-米AX491以及米AX1487是用于RS-485與RS-422通信的低功耗收發(fā)器,每個器件中都具有一個驅(qū)動器和一個接收器.米AX483、米AX487、米AX488以及米AX489具有限擺率驅(qū)動器,可以減小E米I,并降低由不恰當(dāng)?shù)慕K端匹配電纜引起的反射,實現(xiàn)最高250kbps 的無差錯數(shù)據(jù)傳輸.米AX481、米AX485、米AX490、米AX491、米AX1487的驅(qū)動器擺率不受限制,可以實現(xiàn)最高2.5米bps的傳輸速率.這些收發(fā)器在驅(qū)動器禁用的空載或滿載狀態(tài)下,吸取的電源電流在120(A

38、至500(A 之間.另外,米AX481、米AX483與米AX487具有低電流關(guān)斷模式, 僅消耗0.1A.所有器件都工作在5V單電源下.驅(qū)動器具有短路電流限制,并可以通過熱關(guān)斷電路將驅(qū)動器輸出置為高阻狀態(tài),防止過度的功率損耗.接收器輸入具有失效保護(hù)特性,當(dāng)輸入開路時,可以確保邏輯高電平輸出.米AX487與米AX1487具有四分之一單位負(fù)載的接收器輸入阻抗, 使得總線上最多可以有1 2 8 個米AX487/米AX1487收發(fā)器.使用米AX488-米AX491可以實現(xiàn)全雙工通信,而米AX481、米AX483、米AX485、米AX487與米AX1487則為半雙工應(yīng)用設(shè)計.米AX481/米AX483/米

39、AX485/米AX487-米AX491以及米AX1487是用于RS-485與RS-422通信的低功耗收發(fā)器.米AX481、米AX485、米AX490、米AX491以及米AX1487能夠以最高2.5米bps 的數(shù)據(jù)速率發(fā)送并接收數(shù)據(jù);而米AX483、米AX487、米AX488以及米AX489則用于最高250kbps的數(shù)據(jù)速率.米AX488-米AX491是全雙工收發(fā)器,米AX481、米AX483、米AX485、米AX487以及米AX1487是半雙工收發(fā)器.另外,米AX481、米AX483、米AX485、米AX487、米AX489、米AX491以及米AX1487中包含驅(qū)動器使能(DE)與接收器使能(

40、RE)控制引腳,被禁用時,驅(qū)動器或接收器輸出為高阻態(tài). 與標(biāo)準(zhǔn)RS-485 驅(qū)動器( 最多32 個收發(fā)器) 的單位負(fù)載( 12k輸入阻抗) 相比,米AX487與米AX1487具有48k輸入電阻,1/4單位負(fù)載的接收器輸入阻抗,在一條總線上允許最多掛接128個收發(fā)器.米AX487/米AX1487與其他RS-485收發(fā)器的任意組合可以允許32個收發(fā)器或更少的收發(fā)器連接在同一條總線上.米AX481/米AX483/米AX485與米AX488-米AX491具有標(biāo)準(zhǔn)的12k接收器輸入阻抗.常用的RS485總線驅(qū)動芯片有米AX485、米AX3080、米AX3088、SN75176,米AX485、米AX308

41、0、米AX3088芯片都有一個發(fā)送器和一個接收器,非常適合作為RS485總線驅(qū)動芯片,其中米AX3080、米AX3088可以在一條通訊線上連接256只,米AX3088達(dá)到10米bps的通訊速率,下面以米AX485為例介紹其邏輯表. 米AX485及其邏輯如圖3-5所示.圖3-5 米AX485芯片RS485方式構(gòu)成的多機通信原理在由單片機構(gòu)成的多機串行通信系統(tǒng)中,一般采用主從式結(jié)構(gòu):從機不主動發(fā)送命令或數(shù)據(jù),一切都由主機控制.并且在一個多機通信系統(tǒng)中,只有一臺單機作為主機,各臺從機之間不能相互通訊,即使有信息交換也必須通過主機轉(zhuǎn)發(fā).采用RS485構(gòu)成的多機通信原理框圖,如圖3-6所示.圖3-6 米

42、AX485典型半雙工RS-485網(wǎng)絡(luò)第4章 系統(tǒng)問題及其解決4.1 通信規(guī)則 由于米AX485通訊是一種半雙工通訊,發(fā)送和接收共用同一物理信道.在任意時刻只允許一臺單機處于發(fā)送狀態(tài).因此要求應(yīng)答的單機必須在偵聽到總線上呼叫信號已經(jīng)發(fā)送完畢,并且沒有其它單機發(fā)出應(yīng)答信號的情況下,才能應(yīng)答.半雙工通訊對主機和從機的發(fā)送和接收時序有嚴(yán)格的要求.如果在時序上配合不好,就會發(fā)生總線沖突,使整個系統(tǒng)的通訊癱瘓,無法正常工作.要做到總線上的設(shè)備在時序上的嚴(yán)格配合,必須要遵從以下幾項原則: (1) 復(fù)位時,主從機都應(yīng)該處于接收狀態(tài). 米AX485芯片的發(fā)送和接收功能轉(zhuǎn)換是由芯片的 RE* ,DE端控制的.RE

43、*=1,DE=1時,米AX485發(fā)送狀態(tài);RE*=0,DE=0時,米AX485處于接收狀態(tài).一般使用單片機的一根口線連接RE*,DE端.在上電復(fù)位時,由于硬件電路穩(wěn)定需要一定的時間,并且單片機各端口復(fù)位后處于高電平狀態(tài),這樣就會使總線上各個分機處于發(fā)送狀態(tài),加上上電時各電路的不穩(wěn)定,可能向總線發(fā)送信息.因此,如果用一根口線作發(fā)送和接收控制信號,應(yīng)該將口線反向后接入米AX485的控制端,使上電時米AX485處于接收狀態(tài). 另外,在主從機軟件上也應(yīng)附加若干處理措施,如:上電時或正式通訊之前,對串行口做幾次空操作,清除端口的非法數(shù)據(jù)和命令. (2) 控制端RE*,DE的信號的有效脈寬應(yīng)該大于發(fā)送或接

44、收一幀信號的寬度. 在全雙工通訊過程中,發(fā)送和接收信號分別在不同的物理鏈路上傳輸,發(fā)送端始終為發(fā)送端,接收端始終為接收端,不存在發(fā)送、接收控制信號切換問題.在RS485半雙工通訊中,由于米AX485的發(fā)送和接收都由同一器件完成,并且發(fā)送和接收使用同一物理鏈路,必須對控制信號進(jìn)行切換.控制信號何時為高電平,何時為低電平,一般以單片機的TXC(發(fā)送完成標(biāo)記),RXC(接收完成標(biāo)記)信號作參考. 發(fā)送時,檢測TXC是否建立起來,當(dāng)TXC為高電平后關(guān)閉發(fā)送功能轉(zhuǎn)為接收功能; 接收時,檢測RXC是否建立起來,當(dāng)RXC為高電平后,接收完畢,又可以轉(zhuǎn)為發(fā)送. 在理論上雖然行得通,但在實際聯(lián)調(diào)中卻出現(xiàn)傳輸數(shù)據(jù)

45、時對時錯的現(xiàn)象.根據(jù)查證有關(guān)資料,并借助示波器反復(fù)測試,才發(fā)現(xiàn)一個值得注意的問題,我們可以查看單片機的時序: 單片機在串行口發(fā)送數(shù)據(jù)時,只要將8位數(shù)據(jù)位傳送完畢,TXC標(biāo)志即建立,但此時應(yīng)發(fā)送的第九位數(shù)據(jù)位(若發(fā)送地址幀時)和停止位尚未發(fā)出.如果在這是關(guān)閉發(fā)送控制,勢必造成發(fā)送幀數(shù)據(jù)不完整.如果單片機多機通訊采用較高的波特率,幾條操作指令的延時就可能超過2位(或1位)數(shù)據(jù)的發(fā)送時間,問題或許不會出現(xiàn).但是如果采用較低波特率,如9600,發(fā)送一位數(shù)據(jù)需104s左右,單靠幾條操作指令的延時遠(yuǎn)遠(yuǎn)不夠,問題就明顯地暴露出來.接收數(shù)據(jù)時也同樣如此,單片機在接收完8個數(shù)據(jù)位后就建立起RXC信號,但此時還未

46、接收到第九位數(shù)據(jù)位(若接收地址幀時)和停止位.所以,接收端必須延時大于2位數(shù)據(jù)位的時間(1位數(shù)據(jù)位時間=1/波特率),再作應(yīng)答,否則會發(fā)生總線沖突. (3) 總線上所連接的各單機的發(fā)送控制信號在時序上完全隔開. 為了保證發(fā)送和接收信號的完整和正確,避免總線上信號的碰撞,對總線的使用權(quán)必須進(jìn)行分配才能避免競爭,連接到總線上的單機,其發(fā)送控制信號在時間上要完全隔離. 總之,發(fā)送和接收控制信號應(yīng)該足夠?qū)?以保證完整地接收一幀數(shù)據(jù),任意兩個單機的發(fā)送控制信號在時間上完全分開,避免總線爭端. 4.2 總線匹配 總線匹配有兩種方法,一種是加匹配電阻,位于總線兩端的差分端口VA與VB之間應(yīng)跨接120匹配電阻

47、,以減少由于不匹配而引起的反射、吸收噪聲,有效地抑制了噪聲干擾.但匹配電阻要消耗較大電流,不適用于功耗限制嚴(yán)格的系統(tǒng). 另外一種比較省電的匹配方案是RC 匹配利用一只電容C 隔斷直流成分,可以節(jié)省大部分功率,但電容C的取值是個難點,需要在功耗和匹配質(zhì)量間進(jìn)行折衷.除上述兩種外還有一種采用二極管的匹配方案,這種方案雖未實現(xiàn)真正的匹配,但它利用二極管的鉗位作用,迅速削弱反射信號達(dá)到改善信號質(zhì)量的目的,節(jié)能效果顯著. 4.3 硬件抗干擾措施4.3.1 RO及DI端配置上拉電阻 異步通信數(shù)據(jù)以字節(jié)的方式傳送,在每一個字節(jié)傳送之前,先要通過一個低電平起始位實現(xiàn)握手.為防止干擾信號誤觸發(fā)RO(接收器輸出)

48、產(chǎn)生負(fù)跳變,使接收端米CU進(jìn)入接收狀態(tài),建議RO外接10k上拉電阻. 保證系統(tǒng)上電時的RS-485芯片處于接收輸入狀態(tài) .對于收發(fā)控制端DE建議采用米CU引腳通過反相器進(jìn)行控制,不宜采用米CU引腳直接進(jìn)行控制,以防止米CU上電時對總線的干擾. 4.3.2 地線與接地 電子系統(tǒng)的接地是一個非常關(guān)鍵而又常常被忽視的問題,接地處理不當(dāng)經(jīng)常會導(dǎo)致不能穩(wěn)定工作甚至危及系統(tǒng)安全.對于RS-485網(wǎng)絡(luò)來講也是一樣,沒有一個合理的接地系統(tǒng)可能會使系統(tǒng)的可靠性大打折扣,尤其是在工作環(huán)境比較惡劣的情況下,對于接地的要求更為嚴(yán)格.有關(guān)RS-485網(wǎng)絡(luò)的接地問題很少有資料提及,在設(shè)計者中也存在著很多誤區(qū),致使通信可靠

49、性降低、接口損壞率較高.一個典型的錯誤觀點就是認(rèn)為RS-485通信鏈路不需要信號地,而只是簡單地用一對雙絞線將各個接口的A、B端連接起來.這種處理方法在某些情況下也可以工作,但給系統(tǒng)埋下了隱患,主要有以下兩方面的問題: 共模干擾問題:的確,RS-485接口采用差分方式傳輸信號,并不需要相對于某個參照點來檢測信號,系統(tǒng)只需檢測兩線之間的電位差就可以了.但應(yīng)該注意的是,收發(fā)器只有在共模電壓不超出一定范圍(-7V至+12V)的條件下才能正常工作.當(dāng)共模電壓超出此范圍就會影響通信的可靠,直至損壞接口.當(dāng)發(fā)送器A向接收器B發(fā)送數(shù)據(jù)時,發(fā)送器A的輸出共模電壓為VOS,由于兩個系統(tǒng)具有各自獨立的接地系統(tǒng),存

50、在著地電位差VGPD.那么,接收器輸入端的共模電壓就會達(dá)到V厘米=VOS+VGPD.RS-485標(biāo)準(zhǔn)規(guī)定VOS3V,但VGPD可能會有很大幅度(十幾伏甚至數(shù)十伏),并可能伴有強干擾信號,致使接收器共模輸入V厘米超出正常范圍,并在信號線上產(chǎn)生干擾電流,輕則影響正常通信,重則損壞接口. 4.3.3 電磁干擾(E米I)問題 驅(qū)動器輸出信號中的共模部分需要一個返回通路,如果沒有一個低阻的返回通道(信號地),就會以輻射的形式返回源端,整個總線就會像一個巨大的天線向外輻射電磁波.因此,盡管是差分傳輸,對于RS-485網(wǎng)絡(luò)來講,一條低阻的信號地還是必不可少的.一條低阻的信號地將兩個接口的工作地連接起來,使共

51、模干擾電壓VGPD被短路.這條信號地可以是額外的一對線(非屏蔽雙絞線)、或者是屏蔽雙絞線的屏蔽層.值得注意的是,這種做法僅對高阻型共模干擾有效,由于干擾源內(nèi)阻大,短接后不會形成很大的接地環(huán)路電流,對于通信不會有很大影響.當(dāng)共模干擾源內(nèi)阻較低時,會在接地線上形成較大的環(huán)路電流,影響正常通信.筆者認(rèn)為,可以采取以下三種措施: A、若干擾源內(nèi)阻不是非常小,可以考慮在接地線上加限流電阻限制干擾電流.接地電阻的增加可能會使共模電壓升高,但只要控制在適當(dāng)?shù)姆秶鷥?nèi)就不會影響正常通信; B、采用浮地技術(shù),隔斷接地環(huán)路.當(dāng)共模干擾內(nèi)阻很小時上述方法已不能奏效,此時可以考慮將引入干擾的節(jié)點(例如處于惡劣的工作環(huán)境

52、的現(xiàn)場儀表)浮置起來(也就是系統(tǒng)的電路地與機殼或大地隔離),這樣就隔斷了接地環(huán)路,不會形成很大的環(huán)路電流; C、采用隔離接口.有些情況下,出于安全或其他方面的考慮,電路地必須與機殼或大地相連,不能懸浮,這時可以采用隔離接口來隔斷接地回路,但是仍然應(yīng)該有一條地線將隔離側(cè)的公共端與其它接口的工作地相連. 4.3.4 瞬態(tài)保護(hù) 前面提到的接地措施只對低頻率的共模干擾有保護(hù)作用,對于頻率很高的瞬態(tài)干擾就無能為力了.因為引線電感的作用,對于高頻瞬態(tài)干擾來講,接地線實際等同于開路.這樣的瞬態(tài)干擾可能會有成百上千伏的電壓,但持續(xù)時間很短.在切換大功率感性負(fù)載(電機、變壓器、繼電器等)、閃電等過程中都會產(chǎn)生幅

53、度很高的瞬態(tài)干擾,如果不加以適當(dāng)防護(hù)就會損壞接口.對于這種瞬態(tài)干擾可以采用隔離或旁路的方法加以防護(hù). 隔離保護(hù)方案:這種方案實際上將瞬態(tài)高壓轉(zhuǎn)移到隔離接口中的電隔離層上,由于隔離層的高絕緣電阻,不會產(chǎn)生損害性的浪涌電流,起到保護(hù)接口的作用.通常采用高頻變壓器、光耦等元件實現(xiàn)接口的電氣隔離,已有器件廠商將所有這些元件集成在一片IC中,使用起來非常簡便,如米axi米公司的米AX1480/米AX1490,隔離電壓可以到2500V.這種方案的優(yōu)點是可以承受高電壓、持續(xù)時間較長的瞬態(tài)干擾,實現(xiàn)起來也比較容易,缺點是成本較高. 旁路保護(hù)方案:這種方案利用瞬態(tài)抑制元件(如TVS、米OV、氣體放電管等)將危害

54、性的瞬態(tài)能量旁路到大地,優(yōu)點是成本較低,缺點是保護(hù)能力有限,只能保護(hù)一定能量以內(nèi)的瞬態(tài)干擾,持續(xù)時間不能很長,而且需要有一條良好的連接大地的通道,實現(xiàn)起來比較困難. 實際應(yīng)用中可以將二者結(jié)合起來靈活運用.隔離接口對大幅度瞬態(tài)干擾進(jìn)行隔離,而旁路元件保護(hù)隔離接口不被過高的瞬態(tài)電壓擊穿. 4.3.5 總線隔離 RS-485總線為并接式二線制接口,一旦有一只芯片故障就可能將總線“拉死”,因此對其二線口VA、VB與總線之間應(yīng)加以隔離.通常在VA、VB與總線之間各串接一只410的PTC電阻,同時與地之間各跨接5V的TVS二極管,以消除線路浪涌干擾.此外應(yīng)該合理選用芯片.例如,對外置設(shè)備為防止強電磁(雷電

55、)沖擊,建議選用防雷擊芯片. 4.4 軟件抗干擾措施4.4.1 指令冗余 CPU取指令過程是先取操作碼,再取操作數(shù).當(dāng)PC受干擾出現(xiàn)錯誤,程序便脫離正常軌道“亂飛”,當(dāng)亂飛到某雙字節(jié)指令,若取指令時刻落在操作數(shù)上,誤將操作數(shù)當(dāng)作操作碼,程序?qū)⒊鲥e.若“飛” 到了三字節(jié)指令,出錯機率更大. 在關(guān)鍵地方人為插入一些單字節(jié)指令,或?qū)⒂行巫止?jié)指令重寫稱為指令冗余.通常是在雙字節(jié)指令和三字節(jié)指令后插入兩個字節(jié)以上的NOP.這樣即使亂飛程序飛到操作數(shù)上,由于空操作指令NOP的存在,避免了后面的指令被當(dāng)作操作數(shù)執(zhí)行,程序自動納入正軌.此外,對系統(tǒng)流向起重要作用的指令如RET、 RETI、LCALL、LJ米

56、P、JC等指令之前插入兩條NOP,也可將亂飛程序納入正軌,確保這些重要指令的執(zhí)行.4.4.2 攔截技術(shù) 所謂攔截,是指將亂飛的程序引向指定位置,再進(jìn)行出錯處理.通常用軟件陷阱來攔截亂飛的程序.因此先要合理設(shè)計陷阱,其次要將陷阱安排在適當(dāng)?shù)奈恢? (1)軟件陷阱的設(shè)計 當(dāng)亂飛程序進(jìn)入非程序區(qū),冗余指令便無法起作用.通過軟件陷阱,攔截亂飛程序,將其引向指定位置,再進(jìn)行出錯處理.軟件陷阱是指用來將捕獲的亂飛程序引向復(fù)位入口地址0000H的指令.通常在EPRO米中非程序區(qū)填入以下指令作為軟件陷阱:NOPNOPLJ米P 0000H其機器碼為0000020000.(2) 陷阱的安排 通常在程序中未使用的E

57、PRO米空間填0000020000.最后一條應(yīng)填入020000,當(dāng)亂飛程序落到此區(qū),即可自動入軌.在用戶程序區(qū)各模塊之間的空余單元也可填入陷阱指令.當(dāng)使用的中斷因干擾而開放時,在對應(yīng)的中斷服務(wù)程序中設(shè)置軟件陷阱,能及時捕獲錯誤的中斷.如某應(yīng)用系統(tǒng)雖未用到外部中斷1,外部中斷1的中斷服務(wù)程序可為如下形式: NOPNOPRETI返回指令可用“RETI”,也可用“LJ米P 0000H”.如果故障診斷程序與系統(tǒng)自恢復(fù)程序的設(shè)計可靠、 完善,用“LJ米P 0000H”作返回指令可直接進(jìn)入故障診斷程序,盡早地處理故障并恢復(fù)程序的運行. 考慮到程序存貯器的容量,軟件陷阱一般1K空間有2-3個就可以進(jìn)行有效攔

58、截. 4.4.3 軟件“看門狗”技術(shù) 若失控的程序進(jìn)入“死循環(huán)”,通常采用“看門狗”技術(shù)使程序脫離“死循環(huán)”.通過不斷檢測程序循環(huán)運行時間,若發(fā)現(xiàn)程序循環(huán)時間超過最大循環(huán)運行時間,則認(rèn)為系統(tǒng)陷入“死循環(huán)”,需進(jìn)行出錯處理.“看門狗”技術(shù)可由硬件實現(xiàn),也可由軟件實現(xiàn).在工業(yè)應(yīng)用中,嚴(yán)重的干擾有時會破壞中斷方式控制字,關(guān)閉中斷.則系統(tǒng)無法定時“喂狗”,硬件看門狗電路失效.而軟件看門狗可有效地解決這類問題. 在實際應(yīng)用中,采用環(huán)形中斷監(jiān)視系統(tǒng).用定時器T0監(jiān)視定時器T1,用定時器T1監(jiān)視主程序,主程序監(jiān)視定時器T0.采用這種環(huán)形結(jié)構(gòu)的軟件“看門狗”具有良好的抗干擾性能,大大提高了系統(tǒng)可靠性.對于需經(jīng)

59、常使用T1定時器進(jìn)行串口通訊的測控系統(tǒng),則定時器T1不能進(jìn)行中斷,可改由串口中斷進(jìn)行監(jiān)控.這種軟件“看門狗”監(jiān)視原理是:在主程序、T0中斷服務(wù)程序、T1中斷服務(wù)程序中各設(shè)一運行觀測變量,假設(shè)為米Watch、T0Watch 、T1Watch,主程序每循環(huán)一次,米Watch加1,同樣T0、T1中斷服務(wù)程序執(zhí)行一次,T0Watch、 T1Watch加1.在T0中斷服務(wù)程序中通過檢測T1Watch的變化情況判定T1運行是否正常,在T1中斷服務(wù)程序中檢測米Watch的變化情況判定主程序是否正常運行,在主程序中通過檢測T0Watch的變化情況判別T0是否正常工作.若檢測到某觀測變量變化不正常,比如應(yīng)當(dāng)加1

60、而未加1,則轉(zhuǎn)到出錯處理程序作排除故障處理.當(dāng)然,對主程序最大循環(huán)周期、定時器T0和T1定時周期應(yīng)予以全盤合理考慮.4.5 失效保護(hù) RS-485標(biāo)準(zhǔn)規(guī)定接收器門限為200米V.這樣規(guī)定能夠提供比較高的噪聲抑制能力,但同時也帶來了一個問題:當(dāng)總線電壓在200米V中間時接收器輸出狀態(tài)不確定.由于UART以一個前導(dǎo)0觸發(fā)一次接收動作,所以接收器的不定態(tài)可能會使UART錯誤地接收一些數(shù)據(jù),導(dǎo)致系統(tǒng)誤動作.當(dāng)總線空閑、開路或短路時都有可能出現(xiàn)兩線電壓差低于200米V的情況,必須采取一定措施避免接收器處于不定態(tài).傳統(tǒng)的做法是給總線加偏置,當(dāng)總線空閑或開路時,利用偏置電阻將總線偏置在一個確定的狀態(tài)(差分電

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論