單片機(jī)應(yīng)用系統(tǒng)開(kāi)發(fā)課件_第1頁(yè)
單片機(jī)應(yīng)用系統(tǒng)開(kāi)發(fā)課件_第2頁(yè)
單片機(jī)應(yīng)用系統(tǒng)開(kāi)發(fā)課件_第3頁(yè)
單片機(jī)應(yīng)用系統(tǒng)開(kāi)發(fā)課件_第4頁(yè)
單片機(jī)應(yīng)用系統(tǒng)開(kāi)發(fā)課件_第5頁(yè)
已閱讀5頁(yè),還剩107頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第8章單片機(jī)應(yīng)用系統(tǒng)開(kāi)發(fā)8.1單片機(jī)應(yīng)用系統(tǒng)開(kāi)發(fā)過(guò)程8.2單片機(jī)開(kāi)發(fā)工具及選擇8.3系統(tǒng)可靠性設(shè)計(jì)第8章單片機(jī)應(yīng)用系統(tǒng)開(kāi)發(fā)8.1單片機(jī)應(yīng)用系統(tǒng)開(kāi)發(fā)18.1單片機(jī)應(yīng)用系統(tǒng)開(kāi)發(fā)過(guò)程8.1.1總體設(shè)計(jì)1.理解系統(tǒng)功能和技術(shù)指標(biāo)2.選擇單片機(jī)類型貨源充足、穩(wěn)定。

(2)性價(jià)比要高。

(3)研制周期。 3.關(guān)鍵器件的選擇

4.軟硬件功能劃分8.1單片機(jī)應(yīng)用系統(tǒng)開(kāi)發(fā)過(guò)程8.1.1總體設(shè)計(jì)2圖8-1單片機(jī)應(yīng)用系統(tǒng)開(kāi)發(fā)過(guò)程圖8-1單片機(jī)應(yīng)用系統(tǒng)開(kāi)發(fā)過(guò)程38.1.2硬件設(shè)計(jì)元器件選擇原則(1)性能參數(shù)和經(jīng)濟(jì)性。在選擇元器件時(shí)必須按照器件手冊(cè)所提供的各種參數(shù)(如工作條件、電源要求、邏輯特性等)指標(biāo)綜合考慮,但不能單純追求超出系統(tǒng)性能要求的高速、高精度、高性能。例如,一般10位精度的A/D轉(zhuǎn)換器價(jià)格遠(yuǎn)高于同類8位精度的A/D轉(zhuǎn)換器;陶瓷封裝(一般適用于-25℃~+85℃或-55℃~+125℃)的芯片價(jià)格略高于塑料封裝(0℃~+70℃)的同類型芯片。8.1.2硬件設(shè)計(jì)元器件選擇原則(14(2)通用性。在應(yīng)用系統(tǒng)中,盡量采用通用的大規(guī)模集成電路芯片,這樣可大大簡(jiǎn)化系統(tǒng)的設(shè)計(jì)、安裝和調(diào)試,也有助于提高系統(tǒng)的可靠性。(3)型號(hào)和公差。在確定元器件參數(shù)之后,還要確定元器件的型號(hào),這主要取決于電路所允許元器件的公差范圍。如電解電容器可滿足一般的應(yīng)用,但對(duì)于電容公差要求高的電路,電解電容則不宜采用。(2)通用性。在應(yīng)用系統(tǒng)中,盡量采用通用的5(4)與系統(tǒng)速度匹配。單片機(jī)時(shí)鐘頻率一般可在一定范圍內(nèi)選擇(如增強(qiáng)型MCS-51單片機(jī)芯片可在0~33MHz之間任意選擇),在不影響系統(tǒng)性能的前提下,時(shí)鐘頻率選低些好,這樣可降低系統(tǒng)內(nèi)其他元器件的速度要求,從而降低成本和提高系統(tǒng)的可靠性。在選擇比較高的時(shí)鐘頻率時(shí),需挑選和單片機(jī)速度相匹配的元器件。另一方面,較低的時(shí)鐘頻率會(huì)降低晶振電路產(chǎn)生的電磁干擾。(5)電路類型。對(duì)于低功耗應(yīng)用系統(tǒng),必須采用CHMOS或CMOS芯片,如74HC系列、CD4000系列;而一般系統(tǒng)可使用TTL數(shù)字集成電路芯片。(4)與系統(tǒng)速度匹配。單片機(jī)時(shí)鐘頻率一般可62.系統(tǒng)構(gòu)成方式選擇專用系統(tǒng)。(2)模塊化系統(tǒng)。(3)單片單板機(jī)系統(tǒng)。2.系統(tǒng)構(gòu)成方式選擇專用系統(tǒng)。73.系統(tǒng)硬件電路設(shè)計(jì)原則一般在系統(tǒng)硬件電路設(shè)計(jì)時(shí)應(yīng)遵循以下原則:(1)盡可能選擇標(biāo)準(zhǔn)化、模塊化的典型電路,且符合單片機(jī)應(yīng)用系統(tǒng)的常規(guī)用法。(2)系統(tǒng)配置及擴(kuò)展標(biāo)準(zhǔn)必須充分滿足系統(tǒng)的功能要求,并留有余地,以利于系統(tǒng)的二次開(kāi)發(fā)。(3)硬件結(jié)構(gòu)應(yīng)結(jié)合應(yīng)用程序設(shè)計(jì)一并考慮。軟件能實(shí)現(xiàn)的功能盡可能由軟件來(lái)完成,以簡(jiǎn)化硬件結(jié)構(gòu)。3.系統(tǒng)硬件電路設(shè)計(jì)原則8(4)系統(tǒng)中相關(guān)的器件要盡可能做到性能匹配。(5)單片機(jī)外接電路較多時(shí),必須考慮其驅(qū)動(dòng)能力。(6)可靠性及抗干擾設(shè)計(jì)是硬件系統(tǒng)設(shè)計(jì)不可缺少的一部分。(7)?TTL電路未用引腳的處理。(8)工藝設(shè)計(jì),包括機(jī)架機(jī)箱、面板、配線、接插件等,必須考慮安裝、調(diào)試、維護(hù)的方便。(4)系統(tǒng)中相關(guān)的器件要盡可能做到性能匹配。94.印制電路板設(shè)計(jì)單片機(jī)應(yīng)用系統(tǒng)產(chǎn)品在結(jié)構(gòu)上離不開(kāi)用于固定單片機(jī)芯片及其他元器件的印制板。通常這類印制板布線密度高、焊點(diǎn)分布密度大,需要雙面、甚至多層板才能滿足電路要求。在編輯印制板時(shí),需要遵循下列原則:(1)晶振必須盡可能靠近CPU晶振引腳,且晶振電路下方不能走線,最好在晶振電路下方放置一個(gè)與地線相連的屏蔽層。4.印制電路板設(shè)計(jì)10(2)電源、地線要求。在雙面印制板上,電源線和地線應(yīng)安排在不同的面上,且平行走線,這樣寄生電容將起濾波作用。對(duì)于功耗較大的數(shù)字電路芯片,如CPU、驅(qū)動(dòng)器等應(yīng)采用單點(diǎn)接地方式,即這類芯片電源、地線應(yīng)單獨(dú)走線,并直接接到印制板電源、地線入口處。電源線和地線寬度盡可能大一些,或采用微帶走線方式。(3)模擬信號(hào)和數(shù)字信號(hào)不能共地,即采用單點(diǎn)接地方式。(4)在中低頻應(yīng)用系統(tǒng)(晶振頻率小于20MHz)中,走線轉(zhuǎn)角可取45°;在高頻系統(tǒng)中,必要時(shí)可選擇圓角模式。盡量避免使用90°轉(zhuǎn)角。(2)電源、地線要求。在雙面印制板上,電源線11(5)對(duì)于輸入信號(hào)線,走線盡可能短,必要時(shí)在信號(hào)線兩側(cè)放置地線屏蔽,防止可能出現(xiàn)的干擾;不同信號(hào)線避免平行走線,上下兩面的信號(hào)線最好交叉走線,相互干擾可減到最小。(6)為減低系統(tǒng)功耗,對(duì)于未用TTL電路單元必須按如下方式處理:在印制板設(shè)計(jì)時(shí),最容易忽略未用單元電路輸入端的處理(因?yàn)樵韴D中沒(méi)有給出)。盡管它不影響電路的功能,但卻增加系統(tǒng)的功耗,尤其是當(dāng)系統(tǒng)靠電池供電時(shí),就更應(yīng)該注意未用單元引腳的連接。在小規(guī)模TTL電路芯片中,同一芯片內(nèi)常含有多套電路。例如,在74LS00芯片中,就含有四套“2輸入與非門(mén)”。(5)對(duì)于輸入信號(hào)線,走線盡可能短,必要時(shí)128.1.3資源分配1.?I/O引腳資源分配單片機(jī)芯片各I/O引腳功能不完全相同,如部分引腳具有第二輸入/輸出功能;各I/O引腳輸出級(jí)電路結(jié)構(gòu)不盡相同,如8XC5X的P0口采用漏極開(kāi)路輸出方式,P1~P3口采用準(zhǔn)雙向結(jié)構(gòu)。此外,在87LPC76X系列中,P1.5引腳只能作為輸入引腳使用。因此,在分配I/O引腳時(shí),需要認(rèn)真對(duì)待。

例如,在8XC5X系統(tǒng)中,當(dāng)外中斷不夠用時(shí),可使用定時(shí)器T2溢出率作為串行口發(fā)送、接收波特率,此時(shí)P1.1引腳就可以作為下降沿觸發(fā)的外中斷源使用。又如,在P87LPC762/4中,當(dāng)需要4根引腳作為直接編碼輸入鍵盤(pán)時(shí),可考慮使用P0.3、P0.4、P0.5、P0.6引腳作為鍵盤(pán)輸入引腳,這樣基本保留了模擬比較器2的資源。8.1.3資源分配1.?I/O引腳資源分配132.程序存儲(chǔ)器資源分配片內(nèi)ROM存儲(chǔ)器用于存放程序和數(shù)據(jù)表格。按照MCS-51單片機(jī)的復(fù)位及中斷入口的規(guī)定,002FH以前的地址單元都作為中斷、復(fù)位入口地址區(qū)。在這些單元中一般都設(shè)置了轉(zhuǎn)移指令,轉(zhuǎn)移到相應(yīng)的中斷服務(wù)程序或復(fù)位啟動(dòng)程序。當(dāng)程序存儲(chǔ)器中存放的功能程序及子程序數(shù)量較多時(shí),應(yīng)盡可能為它們?cè)O(shè)置入口地址表。一般的常數(shù)、表格集中設(shè)置表格區(qū)。二次開(kāi)發(fā)擴(kuò)展區(qū)應(yīng)盡可能放在高位地址區(qū)。2.程序存儲(chǔ)器資源分配143.?RAM資源分配RAM分為片內(nèi)RAM和片外RAM。片外RAM的容量比較大,通常用來(lái)存放批量大的數(shù)據(jù),如采樣結(jié)果數(shù)據(jù);片內(nèi)RAM容量較少,盡可能重疊使用,如數(shù)據(jù)暫存區(qū)與顯示、打印緩沖區(qū)重疊。對(duì)于MCS-51單片機(jī)來(lái)說(shuō),片內(nèi)RAM是指00H~7FH單元,這128個(gè)單元的功能并不完全相同,分配時(shí)應(yīng)注意發(fā)揮各自的特點(diǎn),做到物盡其用。3.?RAM資源分配1500~1FH這32個(gè)字節(jié)可以作為工作寄存器組,在工作寄存器的8個(gè)單元中,R0和R1具有指針功能,是編程的重要角色,應(yīng)充分發(fā)揮其作用。系統(tǒng)上電復(fù)位時(shí),置PSW=00H,SP=07H,則RS1(PSW.4)、RS0(PSW.3)位均為0,CPU自動(dòng)選擇工作寄存器組0作為當(dāng)前工作寄存器,而工作寄存器組1為堆棧,并向工作寄存器組2、3延伸。例如,此時(shí)當(dāng)CPU執(zhí)行諸如MOVR1,#2FH指令時(shí),R1即是指01H單元。在中斷服務(wù)程序中,如果也要使用R1寄存器且不將原來(lái)的數(shù)據(jù)沖掉,則可在主程序中先將堆??臻g設(shè)置在其他位置,然后在進(jìn)入中斷服務(wù)程序后選擇工作寄存器組1、2或3,這時(shí)若再執(zhí)行諸如MOVR1,#00H指令時(shí),就不會(huì)沖掉R1(01H單元)中原來(lái)的內(nèi)容了,因?yàn)檫@時(shí)R1的地址已改變?yōu)?9H、11H或19H。在中斷服務(wù)程序結(jié)束時(shí),可重新選擇工作寄存器組0。因此,通常可在應(yīng)用程序中安排主程序及其調(diào)用的子程序使用工作寄存器組0,而安排定時(shí)器溢出中斷、外部中斷、串行口中斷使用工作寄存器組1、2或3。00~1FH這32個(gè)字節(jié)可以作為工作寄存器組1620H~2FH這16個(gè)字節(jié)具有位尋址功能,可用來(lái)存放各種軟件標(biāo)志、邏輯變量、位輸入信息、位輸出信息副本、狀態(tài)變量、邏輯運(yùn)算的中間結(jié)果等。當(dāng)這些項(xiàng)目全部安排好后,保留一兩個(gè)字節(jié)備用,剩下的單元可改作其他用途。30H~7FH為一般通用寄存器,只能存入整字節(jié)信息。通常用來(lái)存放各種參數(shù)、指針、中間結(jié)果,或用作數(shù)據(jù)緩沖區(qū)。此外,也常將堆棧安放在片內(nèi)RAM的高端,如60H~7FH;設(shè)置堆棧區(qū)時(shí)應(yīng)事先估算出子程序和中斷嵌套的級(jí)數(shù)以及程序中棧操作指令使用情況,其大小應(yīng)留有余量。當(dāng)系統(tǒng)中擴(kuò)展了RAM,應(yīng)把使用頻率最高的數(shù)據(jù)緩沖區(qū)安排在片內(nèi)RAM中,以提高處理速度。20H~2FH這16個(gè)字節(jié)具有位尋址功能,可178.2單片機(jī)開(kāi)發(fā)工具及選擇8.2.1仿真器1.仿真器種類基于Bondout仿真技術(shù)的仿真器使用專門(mén)設(shè)計(jì)的仿真芯片,能真實(shí)地仿真某一特定廠家、系列的單片機(jī)芯片——不占用硬件資源、仿真頻率高。但這類仿真器的缺點(diǎn)是通用性差(某一專用的仿真芯片只能仿真某一系列的單片機(jī)CPU),價(jià)格高,開(kāi)發(fā)設(shè)備更新?lián)Q代速度慢——新單片機(jī)CPU出現(xiàn)后,開(kāi)發(fā)商才會(huì)根據(jù)市場(chǎng)需要來(lái)設(shè)計(jì)配套的仿真芯片。以前國(guó)內(nèi)開(kāi)發(fā)的普及型MCS-51仿真器大多采用價(jià)格低廉、僅支持標(biāo)準(zhǔn)MCS-51系列的仿真芯片;而支持增強(qiáng)型MCS-51或更高檔次CPU的專用仿真芯片價(jià)格昂貴,一般用戶很難接受。8.2單片機(jī)開(kāi)發(fā)工具及選擇8.2.1仿真器18HOOKS仿真技術(shù)由Philips公司開(kāi)發(fā),該技術(shù)的核心是通過(guò)分時(shí)復(fù)用I/O引腳方式來(lái)重構(gòu)MCS-51系列P0、P2口,使支持HOOKS技術(shù)的MCS-51芯片進(jìn)入HOOKS仿真狀態(tài)后,通過(guò)硬件將復(fù)用的P0、P2口擴(kuò)展為獨(dú)立的仿真總線及用戶P0、P2口。該方法的優(yōu)點(diǎn)是無(wú)須專用的仿真芯片,如用普通的51系列即可進(jìn)行相同芯片(或硬件資源兼容芯片)仿真,因此成本低,只要實(shí)時(shí)加入新型CPU數(shù)據(jù)資料,換上相應(yīng)CPU即可仿真新的CPU,仿真開(kāi)發(fā)設(shè)備更新速度快,投入少。但HOOKS仿真器通過(guò)硬件、軟件模擬實(shí)際MCS-51系列芯片的P0、P2口,因此與實(shí)際CPU的P0、P2口尚有區(qū)別,另外仿真頻率也不能太高。HOOKS仿真技術(shù)由Philips公司開(kāi)19目前國(guó)內(nèi)仿真器開(kāi)發(fā)商通過(guò)授權(quán)、轉(zhuǎn)讓的方式從Philips公司引進(jìn)了HOOKS仿真技術(shù),開(kāi)發(fā)了基于HOOKS仿真技術(shù)的仿真器,如廣州周立功單片機(jī)發(fā)展有限公司的TKS-HOOKS系列等。這些仿真器適應(yīng)性廣,通過(guò)更改仿真頭內(nèi)的CPU芯片即可仿真不同系列的CPU。例如TKS-HOOKS系列內(nèi)的TKS-668仿真器,更換仿真頭內(nèi)的CPU后,可仿真Philips公司的P8XC5X、P8XC5XX2、P89C6XX2、P89C51RX、P89C66X等系列芯片。目前國(guó)內(nèi)仿真器開(kāi)發(fā)商通過(guò)授權(quán)、轉(zhuǎn)讓的方式從P20此外,根據(jù)仿真器的適應(yīng)性,可把仿真器分為專用仿真器和通用仿真器。專用仿真器只能仿真某一系列的CPU,如南京偉福公司的K51系列和E51系列仿真器只能仿真MCS-51及兼容芯片,專用仿真器最大特點(diǎn)是價(jià)格低廉。通用仿真器適應(yīng)性強(qiáng),更換不同的仿真頭,即可仿真不同種類的CPU,如南京偉福公司的E6000系列、E2000系列,更換不同仿真頭后即可仿真IntelMCS-51及兼容CPU、Philips公司增強(qiáng)型80C51內(nèi)核CPU(包括8XC5X系列、89C51RX系列、552系列、592系列、76X系列等)以及Microchip公司的PIC系列CPU。通用仿真器價(jià)格高,一次性投入較大,但與仿真器配套的各系列仿真頭價(jià)格較低,更重要的是可在同一仿真開(kāi)發(fā)環(huán)境下使用,也是物有所值。此外,根據(jù)仿真器的適應(yīng)性,可把仿真器分為專用212.仿真器的選擇(1)不占用硬件資源。一些低檔的MCS-51仿真器(仿真頭)只能將P0、P2口作為總線使用,不能作為I/O口使用。(2)隨機(jī)瀏覽、修改內(nèi)部RAM、特殊功能寄存器內(nèi)容。(3)瀏覽、編輯程序存儲(chǔ)器各存儲(chǔ)單元內(nèi)容。(4)隨機(jī)修改程序計(jì)數(shù)器PC的值。(5)瀏覽、修改外部RAM單元內(nèi)容。(6)具備連續(xù)、單步、跟蹤執(zhí)行功能,以方便程序的調(diào)試。(7)靈活、方便的斷點(diǎn)設(shè)置和取消功能。斷點(diǎn)數(shù)目最好沒(méi)有限制,以方便程序調(diào)試。2.仿真器的選擇(1)不占用硬件資源。一22(8)開(kāi)發(fā)系統(tǒng)提供的匯編器(仿真開(kāi)發(fā)軟件)必須具備如下功能:·源程序編輯操作方式與用戶熟悉的通用字處理軟件(如Word)相同或相近。·方便、靈活的查找和定位功能,以便迅速找到源程序中特定字符串(如標(biāo)號(hào)、變量、操作碼或操作數(shù)助記符)。(9)匯編器(仿真開(kāi)發(fā)軟件)應(yīng)具備一定的容錯(cuò)能力。由于MCS-51匯編指令助記符與IntelX86通用CPU相似,因此編輯源程序時(shí),可能將MCS-51指令系統(tǒng)的“ANL”(與運(yùn)算操作助記符)寫(xiě)成“AND”,“ORL”(或運(yùn)算操作助記符)寫(xiě)成“OR”,“XRL”(異或運(yùn)算操作助記符)寫(xiě)成“XOR”;又如將“PUSHAcc”指令寫(xiě)成“PUSHA”,“POPAcc”指令寫(xiě)成“POPA”等。匯編程序應(yīng)該能夠理解這樣的錯(cuò)誤。(8)開(kāi)發(fā)系統(tǒng)提供的匯編器(仿真開(kāi)發(fā)軟件)必23(10)匯編器最好支持“過(guò)程匯編”偽指令,這對(duì)于程序設(shè)計(jì)、編寫(xiě)將非常方便。采用過(guò)程偽指令后,過(guò)程內(nèi)的標(biāo)號(hào)就可以分為兩類:公共標(biāo)號(hào)和局部標(biāo)號(hào)。公共標(biāo)號(hào)在整個(gè)程序內(nèi)有效,而局部標(biāo)號(hào)只在本過(guò)程內(nèi)有效,這樣不同子過(guò)程(實(shí)際上就是子程序)內(nèi)就能重復(fù)使用公共標(biāo)號(hào)外的標(biāo)號(hào)名,避免了因標(biāo)號(hào)重定義造成的錯(cuò)誤,也使不同過(guò)程內(nèi)的局部標(biāo)號(hào)名含義明確。過(guò)程定義偽指令格式如下:PROC Sub1,Sub2,… ;其中PROC為過(guò)程定義偽指令,Sub1、 Sub2等是公共標(biāo)號(hào) Sub1: … ;過(guò)程內(nèi)指令(10)匯編器最好支持“過(guò)程匯編”偽指令,這24RET ;如果過(guò)程是子程序,則最后一條指令是返回指令RET;如果 ;過(guò)程是中斷服務(wù)程序,則最后一條指令是中斷返回指令RETIEND ;過(guò)程結(jié)束偽指令例如:;使P1.0引腳上生產(chǎn)100ms低電平和75ms高電平信號(hào)PROCPwavePwave: CRLP1.0;延遲100msMOVTIME,#10RET ;如果過(guò)程是子程序,則最后一條指令是返回指令RE25LOOP1:MOVX_TIME,#109MOVY_TIME,#45LCALLDELAY ;調(diào)用延遲子程序,延遲10msDJNZTIME,LOOP1SETBP1.0 ;延遲100ms后,將P1.0引腳置1MOVTIME,#75LOOP1:26LOOP2:MOVX_TIME,#96MOVY_TIME,#5LCALLDELAY ;每次延遲1ms,共要進(jìn)行75次DJNZTIME,LOOP2RETEND;通用延遲子程序PROCDelayDelay:PUSHPSWCLRRS0SETBRS1 ;使用2區(qū)MOVR7,Y_TIME ;取延遲時(shí)間參數(shù)yLOOP2:27LOOP1:MOVR6,X_TIME ;取延遲時(shí)間參數(shù)xLOOP2:DJNZR6,LOOP2DJNZR7,LOOP1POPPSWRETEND(11)除了支持A51匯編語(yǔ)言外,最好支持C語(yǔ)言。LOOP1:(11)除了支持A51匯編語(yǔ)言外,最好支持C語(yǔ)288.2.2其他工具1.邏輯筆邏輯筆主要用于判別電路某點(diǎn)的電平狀態(tài)(高電平、低電平,還是脈沖),是數(shù)字電路系統(tǒng)常用的檢測(cè)工具。2.萬(wàn)用表(數(shù)字或指針式)萬(wàn)用表是最基本的電子測(cè)量工具,主要用于測(cè)量電路系統(tǒng)中各節(jié)點(diǎn)間電壓或各節(jié)點(diǎn)對(duì)地電壓,電路中兩點(diǎn)通斷,判別元器件的好壞。8.2.2其他工具293.通用編程器由于目前內(nèi)置OTPROM、FlashROM存儲(chǔ)器芯片的單片機(jī)CPU已成為主流芯片,程序調(diào)試結(jié)束后,需要在編程器上將調(diào)試好的程序代碼寫(xiě)入CPU內(nèi)的程序存儲(chǔ)器中。4.?IC插座在單片機(jī)開(kāi)發(fā)過(guò)程中,可能需要各種規(guī)格的IC插座。例如當(dāng)遇到目標(biāo)板上CPU插座周圍的元器件,如電解電容、晶振等太高,妨礙仿真頭插入時(shí),可使用一兩塊IC插座抬高CPU插座,以方便仿真頭的插入。3.通用編程器308.3系統(tǒng)可靠性設(shè)計(jì)8.3.1硬件可靠性設(shè)計(jì)提高元器件的可靠性2.冗余與容錯(cuò)設(shè)計(jì)3.采用抗干擾措施8.3系統(tǒng)可靠性設(shè)計(jì)8.3.1硬件可靠性設(shè)計(jì)提高元31圖8-2系統(tǒng)監(jiān)視電路圖8-2系統(tǒng)監(jiān)視電路32圖8-2中使用了一片MAX813L(705/706)系統(tǒng)監(jiān)視電路產(chǎn)品,該電路具有上電使單片機(jī)自動(dòng)復(fù)位,也允許人工隨時(shí)手動(dòng)復(fù)位,自動(dòng)監(jiān)視系統(tǒng)(掉電)等電源故障,程序跑飛使單片機(jī)自動(dòng)復(fù)位的系統(tǒng)監(jiān)視功能。該電路監(jiān)視功能的具體實(shí)現(xiàn)說(shuō)明如下:(1)電源故障監(jiān)視。當(dāng)電源正常時(shí),未穩(wěn)壓的直流電源電壓經(jīng)電阻R1和R2分壓,使電源故障輸入端PFI的電位大于1.25V?(內(nèi)部參考電壓),一旦電源發(fā)生故障,PFI的電位低于1.25V,則電源故障輸出PFO將從高電平變?yōu)榈碗娖剑瑥亩饐纹瑱C(jī)中斷,CPU響應(yīng)中斷后可迅速執(zhí)行諸如保護(hù)重要數(shù)據(jù)、發(fā)出電源故障報(bào)警等工作。圖8-2中使用了一片MAX813L(70533(2)看門(mén)狗定時(shí)器??撮T(mén)狗電路監(jiān)視單片機(jī)的P1.0線,正常情況下,P1.0線不超過(guò)1.6s觸發(fā)一次。若在1.6s內(nèi)單片機(jī)不產(chǎn)生觸發(fā)信號(hào),看門(mén)狗輸出端將變?yōu)榈碗娖?。由于與手動(dòng)復(fù)位端(與TTL/CMOS兼容,可用外部邏輯線驅(qū)動(dòng))相連,當(dāng) 低電平維持時(shí)間超過(guò)140ms,MAX813L(705/706)將復(fù)位,同時(shí)使看門(mén)狗清零和使變?yōu)楦唠娖?,這樣在MAX705/706/813L的復(fù)位信號(hào)維持200ms結(jié)束后,單片機(jī)脫離復(fù)位狀態(tài),開(kāi)始恢復(fù)程序并正常運(yùn)行。(2)看門(mén)狗定時(shí)器。看門(mén)狗電路監(jiān)視單片機(jī)的P348.3.2系統(tǒng)自診斷技術(shù)1.?CPU診斷指令系統(tǒng)診斷:?jiǎn)纹瑱C(jī)執(zhí)行完一個(gè)包含有傳送指令、算術(shù)運(yùn)算指令、邏輯運(yùn)算指令、位傳送指令、位邏輯操作指令的程序后,累加器A中的數(shù)據(jù)應(yīng)為預(yù)定值,否則就有問(wèn)題。(1)片內(nèi)RAM診斷:可采用如下過(guò)程對(duì)片內(nèi)RAM每一個(gè)單元進(jìn)行測(cè)試:讀出-備份-寫(xiě)入-再讀出-與備份比較,若相同則重新寫(xiě)入原單元,否則設(shè)置不正確標(biāo)志,說(shuō)明片內(nèi)RAM有問(wèn)題。8.3.2系統(tǒng)自診斷技術(shù)1.?CP35(2)定時(shí)器及中斷診斷:用軟件延時(shí)來(lái)檢測(cè)定時(shí)的準(zhǔn)確性,即定時(shí)器以定時(shí)方式運(yùn)行,如能按時(shí)溢出,則置位溢出標(biāo)志,否則延時(shí)時(shí)間到停止定時(shí)器計(jì)數(shù),無(wú)溢出,表明定時(shí)器有問(wèn)題;利用定時(shí)中斷來(lái)檢測(cè)中斷系統(tǒng)是否有問(wèn)題,即若允許定時(shí)中斷,并在中斷服務(wù)程序中作一件事通知自檢程序,則可以根據(jù)這件事是否發(fā)生來(lái)判斷中斷是否發(fā)生。注意:對(duì)于8031單片機(jī),診斷程序放在片外ROM中,因此CPU診斷過(guò)程必須以三總線(包括地址鎖存器)沒(méi)有問(wèn)題和EPROM中的診斷程序也正確為前提。(2)定時(shí)器及中斷診斷:用軟件延時(shí)來(lái)檢測(cè)定時(shí)362.?ROM診斷ROM診斷常用靜態(tài)測(cè)試法,在將系統(tǒng)程序及自檢程序固化到ROM中去的時(shí)候,先仔細(xì)計(jì)算其機(jī)器代碼的累加和,并取其結(jié)果的最低16位。在固化程序的同時(shí),將上述累加結(jié)果一起固化到ROM特定單元中(一般是放在ROM的最后兩個(gè)地址單元中)。在對(duì)ROM進(jìn)行檢查時(shí),只需對(duì)固化在ROM的程序代碼計(jì)算累加和,并將結(jié)果與事先固化的內(nèi)容進(jìn)行比較,從而判斷出ROM的完好性。2.?ROM診斷373.外部RAM診斷可采用與片內(nèi)RAM診斷相同的方法。此外,由于RAM的故障多數(shù)是以大片區(qū)域被破壞的形式出現(xiàn)的,因此也可采用RAM分段放置標(biāo)志數(shù)的方法來(lái)判斷RAM區(qū)是否被破壞。3.外部RAM診斷384.?A/D、D/A轉(zhuǎn)換通道的診斷和校正在使用模擬電路的系統(tǒng)中,A/D轉(zhuǎn)換器芯片只有一片時(shí),通常是用多路模擬開(kāi)關(guān)(一些A/D轉(zhuǎn)換器自帶多路模擬開(kāi)關(guān))來(lái)切換各路輸入信號(hào),實(shí)現(xiàn)分時(shí)采樣轉(zhuǎn)換。對(duì)A/D通道的診斷方法是在某一路模擬輸入端加上一個(gè)已知的模擬電壓,啟動(dòng)A/D轉(zhuǎn)換后讀取轉(zhuǎn)換結(jié)果。如果等于預(yù)定值,則A/D通道正常,若有少許偏差,則說(shuō)明A/D通道發(fā)生少許漂移,應(yīng)求出校正系數(shù),供信號(hào)通道進(jìn)行校正運(yùn)算,如果偏差過(guò)大,則為故障現(xiàn)象。4.?A/D、D/A轉(zhuǎn)換通道的診斷和校正39解決零點(diǎn)漂移和增益校正的方法是將多路模擬開(kāi)關(guān)的一個(gè)輸入端接信號(hào)公共點(diǎn)(模擬電壓為零伏),另一個(gè)輸入端接參考電源,然后分別啟動(dòng)這兩路,讀取兩路A/D轉(zhuǎn)換結(jié)果并保存起來(lái)。零漂和增益校正的測(cè)定可以每隔一定時(shí)間進(jìn)行一次,進(jìn)行這種校正時(shí)測(cè)得的數(shù)據(jù)經(jīng)過(guò)如下計(jì)算就可以求得最終數(shù)據(jù)。解決零點(diǎn)漂移和增益校正的方法是將多路模擬開(kāi)關(guān)的40其中:DS——校正后的數(shù)據(jù);DSN——測(cè)定信號(hào)得A/D轉(zhuǎn)換值;DOS——零點(diǎn)電壓的A/D轉(zhuǎn)換值;DFS——A/D轉(zhuǎn)換器滿量程值;DRE——參考電壓輸入的A/D轉(zhuǎn)換值。D/A通道診斷需借助A/D的一個(gè)輸入通道,在已經(jīng)進(jìn)行過(guò)A/D診斷并獲知其正常后,將預(yù)定值送D/A轉(zhuǎn)換,D/A轉(zhuǎn)換后的模擬電壓通過(guò)分壓電阻接到A/D轉(zhuǎn)換的某個(gè)輸入端,啟動(dòng)A/D轉(zhuǎn)換得到變換后的數(shù)字量。將D/A送出的數(shù)字量和讀入的A/D數(shù)字量進(jìn)行比較,看兩者相差多少,從而可判斷D/A轉(zhuǎn)換器工作是否正常。其中:415.數(shù)字I/O通道診斷數(shù)字顯示功能的診斷:數(shù)碼管顯示裝置顯示的內(nèi)容有數(shù)字、小數(shù)點(diǎn)、符號(hào)、提示符等,自檢程序可將數(shù)碼管的所有筆劃段點(diǎn)亮(包括小數(shù)點(diǎn)),由操作者檢查數(shù)碼管是否缺段;也可以設(shè)置循環(huán)輸出全0到全9的數(shù)字,小數(shù)點(diǎn)在各位上循環(huán)顯示,以及顯示特定的提示信息,借以檢查數(shù)字I/O通道是否正常。鍵盤(pán)的診斷:當(dāng)操作者按下某個(gè)鍵后,自檢程序可通過(guò)一個(gè)I/O口驅(qū)動(dòng)蜂鳴器發(fā)聲或由數(shù)碼管顯示器顯示出某個(gè)數(shù)字及符號(hào)。當(dāng)某鍵聽(tīng)不到發(fā)聲或顯示錯(cuò)誤,就可以判斷鍵盤(pán)系統(tǒng)出現(xiàn)故障。如果是某個(gè)鍵有問(wèn)題,往往是接觸不良;如果是某排鍵有問(wèn)題,一定是對(duì)應(yīng)的鍵掃描電路有故障;若全部鍵無(wú)相應(yīng),則鍵盤(pán)掃描系統(tǒng)已癱瘓或監(jiān)控程序已癱瘓。5.數(shù)字I/O通道診斷428.3.3系統(tǒng)抗干擾性能1.單片機(jī)應(yīng)用系統(tǒng)中的主要干擾源工業(yè)生產(chǎn)中的干擾一般都是以脈沖的形式進(jìn)入單片機(jī)應(yīng)用系統(tǒng)的,串入系統(tǒng)的干擾主要有三種來(lái)源,即場(chǎng)干擾,通過(guò)電磁波輻射串入系統(tǒng);輸入/輸出通道干擾,通過(guò)與主機(jī)相連的輸入/輸出通道及與其他主機(jī)相連的通道進(jìn)入;供電系統(tǒng)干擾,從電源供電電路引入干擾。一般情況下場(chǎng)干擾在強(qiáng)度上遠(yuǎn)小于其他兩個(gè)干擾源,而且場(chǎng)干擾可用良好的屏蔽與正確的接地、高頻濾波加以解決,因此單片機(jī)應(yīng)用系統(tǒng)中重點(diǎn)防止輸入/輸出通道與供電系統(tǒng)的干擾。8.3.3系統(tǒng)抗干擾性能1.單片機(jī)應(yīng)用系統(tǒng)432.硬件抗干擾措施1)輸入/輸出通道干擾的抑制措施輸入/輸出通道干擾的抑制通常采用隔離和濾波技術(shù)。常用的隔離器件有隔離變壓器、光電耦合器、繼電器和隔離放大器等,其中光電耦合器應(yīng)用最為廣泛。在輸入和輸出通道中采用光電耦合器將單片機(jī)系統(tǒng)與各種傳感器、開(kāi)關(guān)、執(zhí)行機(jī)構(gòu)從電氣上隔離開(kāi)來(lái),很大一部分干擾將被阻擋。在模擬通道中使用光電耦合器隔離時(shí),應(yīng)保證被傳送信號(hào)的變化范圍始終在光電耦合器的線性區(qū)內(nèi),否則會(huì)產(chǎn)生較大的誤差。應(yīng)盡可能將隔離器件設(shè)置在執(zhí)行部件或傳感器附近,通常是將光電隔離器放在A/D、D/A附近。2.硬件抗干擾措施44光電隔離前后兩部分電路應(yīng)分別采用兩組獨(dú)立的電源供電。當(dāng)數(shù)字通道輸出的開(kāi)關(guān)量是用于控制大負(fù)荷設(shè)備時(shí),就不宜用光電耦合器,而采用繼電器隔離輸出,此時(shí)要在單片機(jī)輸出端的鎖存器74LS273與繼電器間設(shè)置一個(gè)OC門(mén)驅(qū)動(dòng)器,用以提供較高的驅(qū)動(dòng)電流(一般OC門(mén)驅(qū)動(dòng)器的低電平輸出電流約有300mA左右,足以驅(qū)動(dòng)小型繼電器)。硬件濾波電路常采用RC低通濾波器,將它接在一些低頻信號(hào)傳送電路中,可大大削弱各類高頻干擾信號(hào)。光電隔離前后兩部分電路應(yīng)分別采用兩組獨(dú)立的電452)供電系統(tǒng)干擾的抑制措施單片機(jī)系統(tǒng)的供電線路和產(chǎn)生干擾的用電設(shè)備分開(kāi)供電。通常干擾源為各類大功率設(shè)備,如電機(jī)。對(duì)于小的單片機(jī)系統(tǒng),可采用CMOS芯片,設(shè)計(jì)成低功耗系統(tǒng)用電池供電,干擾可大大減少。通過(guò)低通濾波器和隔離變壓器接入電網(wǎng)。低通濾波器可以吸收大部分電網(wǎng)中的“毛刺”,隔離變壓器是在初級(jí)繞組和次級(jí)繞組之間多加一層屏蔽層,并將它和鐵芯一起接地,防止干擾通過(guò)初次級(jí)之間的電容效應(yīng)進(jìn)入單片機(jī)供電系統(tǒng)。該屏蔽層也可用加繞的一層線圈來(lái)充當(dāng)(一頭接地,另一頭空置)。2)供電系統(tǒng)干擾的抑制措施46整流元件上并接濾波電容,可以在很大程度上削弱高頻干擾,濾波電容選用1000pF~0.01μF的無(wú)感的瓷片電容為好。選用高質(zhì)量的穩(wěn)壓電路,使輸出直流電壓上的紋波很小,干擾難在輸出端形成。數(shù)字信號(hào)采用負(fù)邏輯傳輸。如果定義低電平為有效電平,高電平為無(wú)效電平,就可以減少干擾引起的誤動(dòng)作,提高數(shù)字信號(hào)傳輸?shù)目煽啃?。整流元件上并接濾波電容,可以在很大程度上削弱473)電磁場(chǎng)干擾的抑制措施電磁場(chǎng)的干擾可采用屏蔽和接地措施。用金屬外殼或金屬屏蔽罩將整機(jī)或部分元器件包圍起來(lái),再將金屬外殼接地,就能起到屏蔽作用。單片機(jī)系統(tǒng)中有數(shù)字地、模擬地、交流地、信號(hào)地、屏蔽地(機(jī)殼地),應(yīng)分開(kāi)連接不同性質(zhì)的地。印制板中的地線應(yīng)接成網(wǎng)狀,而且其他布線不要形成回路,特別是環(huán)繞外周的環(huán)路;接地線最好根據(jù)電路通路逐漸加寬,并且不要小于3mm;在高頻情況下,電路板多采用大面積地線直接與機(jī)殼直接相連,形成多點(diǎn)接地方式。強(qiáng)信號(hào)地線和弱信號(hào)地線要分開(kāi)。3)電磁場(chǎng)干擾的抑制措施484)減小CPU芯片工作時(shí)形成的電磁輻射如果CPU工作產(chǎn)生的電磁輻射干擾了系統(tǒng)內(nèi)無(wú)線接收電路時(shí),除了對(duì)CPU芯片采取屏蔽措施外,還必須:在滿足速度要求前提下,盡可能降低系統(tǒng)時(shí)鐘頻率。因?yàn)闀r(shí)鐘頻率越低,晶振電路產(chǎn)生的電磁輻射量越小。盡量避免擴(kuò)展外部存儲(chǔ)器,即盡可能使用內(nèi)含F(xiàn)lashROM、OTPROM存儲(chǔ)器的芯片,且禁止ALE輸出。4)減小CPU芯片工作時(shí)形成的電磁輻射49圖8-3輸出信號(hào)上下沿過(guò)沖圖8-3輸出信號(hào)上下沿過(guò)沖50圖8-4在CPU輸出引腳加緩沖電阻或RC緩沖網(wǎng)絡(luò)圖8-4在CPU輸出引腳加緩沖電阻或RC緩沖網(wǎng)絡(luò)513.軟件抗干擾技術(shù)1)指令冗余當(dāng)CPU受到干擾后,往往將一些操作數(shù)當(dāng)作指令來(lái)執(zhí)行,引起程序混亂。當(dāng)程序彈飛到某一單字節(jié)指令時(shí),便自動(dòng)納入正軌。當(dāng)彈飛到某一雙字節(jié)或三字節(jié)指令時(shí),有可能落到其操作數(shù)上,從而繼續(xù)出錯(cuò)。因此,應(yīng)多采用單字節(jié)指令,并在關(guān)鍵的地方人為地插入一些單字節(jié)指令(NOP)或?qū)⒂行巫止?jié)指令重復(fù)書(shū)寫(xiě),這就是指令冗余。指令冗余無(wú)疑會(huì)降低系統(tǒng)效率,但在絕大多數(shù)情況下,CPU還不致于忙到不能多執(zhí)行幾條指令的程度,故這種技術(shù)還是被廣泛采用的。3.軟件抗干擾技術(shù)1)指令冗余522)軟件“看門(mén)狗”有時(shí)為了簡(jiǎn)化硬件電路,也可以設(shè)置一個(gè)純軟件的“看門(mén)狗”。用一個(gè)定時(shí)器來(lái)做“看門(mén)狗”,將它的溢出中斷設(shè)定為高級(jí)中斷,系統(tǒng)中的其他中斷可設(shè)為低級(jí)中斷。當(dāng)“看門(mén)狗”啟動(dòng)后,在主程序中必須在一定時(shí)間內(nèi)(小于定時(shí)器初值)重新給定時(shí)器賦初值,這樣在程序正常運(yùn)行時(shí)不會(huì)產(chǎn)生溢出中斷。當(dāng)程序掉入死循環(huán)后,由于定時(shí)溢出中斷的是高級(jí)中斷,可奪走對(duì)CPU的控制權(quán),則經(jīng)過(guò)定時(shí)時(shí)間后產(chǎn)生一次定時(shí)器溢出中斷,從而退出死循環(huán)。定時(shí)器溢出中斷可直接轉(zhuǎn)向出錯(cuò)處理程序,在中斷向量區(qū)安排一條LJMPERR即可。由出錯(cuò)程序來(lái)完成各種善后工作,并用軟件方法使系統(tǒng)復(fù)位。2)軟件“看門(mén)狗”533)軟件陷阱指令冗余使彈飛的程序安定下來(lái)是有條件的,首先彈飛的程序必須落到程序區(qū),其次必須執(zhí)行到冗余指令。所謂軟件陷阱,就是一條引導(dǎo)指令強(qiáng)行將捕獲的程序引向一個(gè)指定的地址,在那里有一段專門(mén)對(duì)程序出錯(cuò)進(jìn)行處理的指令。如果我們把這段程序的入口地址記為ERR的話,軟件陷阱即為一條無(wú)條件轉(zhuǎn)移指令,為了加強(qiáng)其捕獲效果,一般還在它前面加幾條NOP指令,因此真正的軟件陷阱由以下4條指令構(gòu)成: NOP NOP NOP LJMPERR3)軟件陷阱54軟件陷阱可安排在未使用的中斷向量區(qū)、未使用的大片ROM空間或表格后面等正常程序執(zhí)行不到的地方,故不影響程序執(zhí)行效率。采用硬件看門(mén)狗后,在程序存儲(chǔ)器空間容量足夠的情況下,就可以在每條跳轉(zhuǎn)指令后增加軟件陷阱,如:軟件陷阱可安排在未使用的中斷向量區(qū)、未使用的55SJMPNEONE ;在短跳轉(zhuǎn)指令后,加軟件陷阱NOPNOPNOPNOPCLREA ;關(guān)閉中斷,進(jìn)入死循環(huán)SJMP$…LJMPSTART ;在長(zhǎng)跳轉(zhuǎn)指令后,加軟件陷阱NOPNOPNOPNOPCLREA ;關(guān)閉中斷后,進(jìn)入死循環(huán)SJMP$SJMPNEONE ;在短跳轉(zhuǎn)指令后,加軟件56第8章單片機(jī)應(yīng)用系統(tǒng)開(kāi)發(fā)8.1單片機(jī)應(yīng)用系統(tǒng)開(kāi)發(fā)過(guò)程8.2單片機(jī)開(kāi)發(fā)工具及選擇8.3系統(tǒng)可靠性設(shè)計(jì)第8章單片機(jī)應(yīng)用系統(tǒng)開(kāi)發(fā)8.1單片機(jī)應(yīng)用系統(tǒng)開(kāi)發(fā)578.1單片機(jī)應(yīng)用系統(tǒng)開(kāi)發(fā)過(guò)程8.1.1總體設(shè)計(jì)1.理解系統(tǒng)功能和技術(shù)指標(biāo)2.選擇單片機(jī)類型貨源充足、穩(wěn)定。

(2)性價(jià)比要高。

(3)研制周期。 3.關(guān)鍵器件的選擇

4.軟硬件功能劃分8.1單片機(jī)應(yīng)用系統(tǒng)開(kāi)發(fā)過(guò)程8.1.1總體設(shè)計(jì)58圖8-1單片機(jī)應(yīng)用系統(tǒng)開(kāi)發(fā)過(guò)程圖8-1單片機(jī)應(yīng)用系統(tǒng)開(kāi)發(fā)過(guò)程598.1.2硬件設(shè)計(jì)元器件選擇原則(1)性能參數(shù)和經(jīng)濟(jì)性。在選擇元器件時(shí)必須按照器件手冊(cè)所提供的各種參數(shù)(如工作條件、電源要求、邏輯特性等)指標(biāo)綜合考慮,但不能單純追求超出系統(tǒng)性能要求的高速、高精度、高性能。例如,一般10位精度的A/D轉(zhuǎn)換器價(jià)格遠(yuǎn)高于同類8位精度的A/D轉(zhuǎn)換器;陶瓷封裝(一般適用于-25℃~+85℃或-55℃~+125℃)的芯片價(jià)格略高于塑料封裝(0℃~+70℃)的同類型芯片。8.1.2硬件設(shè)計(jì)元器件選擇原則(160(2)通用性。在應(yīng)用系統(tǒng)中,盡量采用通用的大規(guī)模集成電路芯片,這樣可大大簡(jiǎn)化系統(tǒng)的設(shè)計(jì)、安裝和調(diào)試,也有助于提高系統(tǒng)的可靠性。(3)型號(hào)和公差。在確定元器件參數(shù)之后,還要確定元器件的型號(hào),這主要取決于電路所允許元器件的公差范圍。如電解電容器可滿足一般的應(yīng)用,但對(duì)于電容公差要求高的電路,電解電容則不宜采用。(2)通用性。在應(yīng)用系統(tǒng)中,盡量采用通用的61(4)與系統(tǒng)速度匹配。單片機(jī)時(shí)鐘頻率一般可在一定范圍內(nèi)選擇(如增強(qiáng)型MCS-51單片機(jī)芯片可在0~33MHz之間任意選擇),在不影響系統(tǒng)性能的前提下,時(shí)鐘頻率選低些好,這樣可降低系統(tǒng)內(nèi)其他元器件的速度要求,從而降低成本和提高系統(tǒng)的可靠性。在選擇比較高的時(shí)鐘頻率時(shí),需挑選和單片機(jī)速度相匹配的元器件。另一方面,較低的時(shí)鐘頻率會(huì)降低晶振電路產(chǎn)生的電磁干擾。(5)電路類型。對(duì)于低功耗應(yīng)用系統(tǒng),必須采用CHMOS或CMOS芯片,如74HC系列、CD4000系列;而一般系統(tǒng)可使用TTL數(shù)字集成電路芯片。(4)與系統(tǒng)速度匹配。單片機(jī)時(shí)鐘頻率一般可622.系統(tǒng)構(gòu)成方式選擇專用系統(tǒng)。(2)模塊化系統(tǒng)。(3)單片單板機(jī)系統(tǒng)。2.系統(tǒng)構(gòu)成方式選擇專用系統(tǒng)。633.系統(tǒng)硬件電路設(shè)計(jì)原則一般在系統(tǒng)硬件電路設(shè)計(jì)時(shí)應(yīng)遵循以下原則:(1)盡可能選擇標(biāo)準(zhǔn)化、模塊化的典型電路,且符合單片機(jī)應(yīng)用系統(tǒng)的常規(guī)用法。(2)系統(tǒng)配置及擴(kuò)展標(biāo)準(zhǔn)必須充分滿足系統(tǒng)的功能要求,并留有余地,以利于系統(tǒng)的二次開(kāi)發(fā)。(3)硬件結(jié)構(gòu)應(yīng)結(jié)合應(yīng)用程序設(shè)計(jì)一并考慮。軟件能實(shí)現(xiàn)的功能盡可能由軟件來(lái)完成,以簡(jiǎn)化硬件結(jié)構(gòu)。3.系統(tǒng)硬件電路設(shè)計(jì)原則64(4)系統(tǒng)中相關(guān)的器件要盡可能做到性能匹配。(5)單片機(jī)外接電路較多時(shí),必須考慮其驅(qū)動(dòng)能力。(6)可靠性及抗干擾設(shè)計(jì)是硬件系統(tǒng)設(shè)計(jì)不可缺少的一部分。(7)?TTL電路未用引腳的處理。(8)工藝設(shè)計(jì),包括機(jī)架機(jī)箱、面板、配線、接插件等,必須考慮安裝、調(diào)試、維護(hù)的方便。(4)系統(tǒng)中相關(guān)的器件要盡可能做到性能匹配。654.印制電路板設(shè)計(jì)單片機(jī)應(yīng)用系統(tǒng)產(chǎn)品在結(jié)構(gòu)上離不開(kāi)用于固定單片機(jī)芯片及其他元器件的印制板。通常這類印制板布線密度高、焊點(diǎn)分布密度大,需要雙面、甚至多層板才能滿足電路要求。在編輯印制板時(shí),需要遵循下列原則:(1)晶振必須盡可能靠近CPU晶振引腳,且晶振電路下方不能走線,最好在晶振電路下方放置一個(gè)與地線相連的屏蔽層。4.印制電路板設(shè)計(jì)66(2)電源、地線要求。在雙面印制板上,電源線和地線應(yīng)安排在不同的面上,且平行走線,這樣寄生電容將起濾波作用。對(duì)于功耗較大的數(shù)字電路芯片,如CPU、驅(qū)動(dòng)器等應(yīng)采用單點(diǎn)接地方式,即這類芯片電源、地線應(yīng)單獨(dú)走線,并直接接到印制板電源、地線入口處。電源線和地線寬度盡可能大一些,或采用微帶走線方式。(3)模擬信號(hào)和數(shù)字信號(hào)不能共地,即采用單點(diǎn)接地方式。(4)在中低頻應(yīng)用系統(tǒng)(晶振頻率小于20MHz)中,走線轉(zhuǎn)角可取45°;在高頻系統(tǒng)中,必要時(shí)可選擇圓角模式。盡量避免使用90°轉(zhuǎn)角。(2)電源、地線要求。在雙面印制板上,電源線67(5)對(duì)于輸入信號(hào)線,走線盡可能短,必要時(shí)在信號(hào)線兩側(cè)放置地線屏蔽,防止可能出現(xiàn)的干擾;不同信號(hào)線避免平行走線,上下兩面的信號(hào)線最好交叉走線,相互干擾可減到最小。(6)為減低系統(tǒng)功耗,對(duì)于未用TTL電路單元必須按如下方式處理:在印制板設(shè)計(jì)時(shí),最容易忽略未用單元電路輸入端的處理(因?yàn)樵韴D中沒(méi)有給出)。盡管它不影響電路的功能,但卻增加系統(tǒng)的功耗,尤其是當(dāng)系統(tǒng)靠電池供電時(shí),就更應(yīng)該注意未用單元引腳的連接。在小規(guī)模TTL電路芯片中,同一芯片內(nèi)常含有多套電路。例如,在74LS00芯片中,就含有四套“2輸入與非門(mén)”。(5)對(duì)于輸入信號(hào)線,走線盡可能短,必要時(shí)688.1.3資源分配1.?I/O引腳資源分配單片機(jī)芯片各I/O引腳功能不完全相同,如部分引腳具有第二輸入/輸出功能;各I/O引腳輸出級(jí)電路結(jié)構(gòu)不盡相同,如8XC5X的P0口采用漏極開(kāi)路輸出方式,P1~P3口采用準(zhǔn)雙向結(jié)構(gòu)。此外,在87LPC76X系列中,P1.5引腳只能作為輸入引腳使用。因此,在分配I/O引腳時(shí),需要認(rèn)真對(duì)待。

例如,在8XC5X系統(tǒng)中,當(dāng)外中斷不夠用時(shí),可使用定時(shí)器T2溢出率作為串行口發(fā)送、接收波特率,此時(shí)P1.1引腳就可以作為下降沿觸發(fā)的外中斷源使用。又如,在P87LPC762/4中,當(dāng)需要4根引腳作為直接編碼輸入鍵盤(pán)時(shí),可考慮使用P0.3、P0.4、P0.5、P0.6引腳作為鍵盤(pán)輸入引腳,這樣基本保留了模擬比較器2的資源。8.1.3資源分配1.?I/O引腳資源分配692.程序存儲(chǔ)器資源分配片內(nèi)ROM存儲(chǔ)器用于存放程序和數(shù)據(jù)表格。按照MCS-51單片機(jī)的復(fù)位及中斷入口的規(guī)定,002FH以前的地址單元都作為中斷、復(fù)位入口地址區(qū)。在這些單元中一般都設(shè)置了轉(zhuǎn)移指令,轉(zhuǎn)移到相應(yīng)的中斷服務(wù)程序或復(fù)位啟動(dòng)程序。當(dāng)程序存儲(chǔ)器中存放的功能程序及子程序數(shù)量較多時(shí),應(yīng)盡可能為它們?cè)O(shè)置入口地址表。一般的常數(shù)、表格集中設(shè)置表格區(qū)。二次開(kāi)發(fā)擴(kuò)展區(qū)應(yīng)盡可能放在高位地址區(qū)。2.程序存儲(chǔ)器資源分配703.?RAM資源分配RAM分為片內(nèi)RAM和片外RAM。片外RAM的容量比較大,通常用來(lái)存放批量大的數(shù)據(jù),如采樣結(jié)果數(shù)據(jù);片內(nèi)RAM容量較少,盡可能重疊使用,如數(shù)據(jù)暫存區(qū)與顯示、打印緩沖區(qū)重疊。對(duì)于MCS-51單片機(jī)來(lái)說(shuō),片內(nèi)RAM是指00H~7FH單元,這128個(gè)單元的功能并不完全相同,分配時(shí)應(yīng)注意發(fā)揮各自的特點(diǎn),做到物盡其用。3.?RAM資源分配7100~1FH這32個(gè)字節(jié)可以作為工作寄存器組,在工作寄存器的8個(gè)單元中,R0和R1具有指針功能,是編程的重要角色,應(yīng)充分發(fā)揮其作用。系統(tǒng)上電復(fù)位時(shí),置PSW=00H,SP=07H,則RS1(PSW.4)、RS0(PSW.3)位均為0,CPU自動(dòng)選擇工作寄存器組0作為當(dāng)前工作寄存器,而工作寄存器組1為堆棧,并向工作寄存器組2、3延伸。例如,此時(shí)當(dāng)CPU執(zhí)行諸如MOVR1,#2FH指令時(shí),R1即是指01H單元。在中斷服務(wù)程序中,如果也要使用R1寄存器且不將原來(lái)的數(shù)據(jù)沖掉,則可在主程序中先將堆??臻g設(shè)置在其他位置,然后在進(jìn)入中斷服務(wù)程序后選擇工作寄存器組1、2或3,這時(shí)若再執(zhí)行諸如MOVR1,#00H指令時(shí),就不會(huì)沖掉R1(01H單元)中原來(lái)的內(nèi)容了,因?yàn)檫@時(shí)R1的地址已改變?yōu)?9H、11H或19H。在中斷服務(wù)程序結(jié)束時(shí),可重新選擇工作寄存器組0。因此,通??稍趹?yīng)用程序中安排主程序及其調(diào)用的子程序使用工作寄存器組0,而安排定時(shí)器溢出中斷、外部中斷、串行口中斷使用工作寄存器組1、2或3。00~1FH這32個(gè)字節(jié)可以作為工作寄存器組7220H~2FH這16個(gè)字節(jié)具有位尋址功能,可用來(lái)存放各種軟件標(biāo)志、邏輯變量、位輸入信息、位輸出信息副本、狀態(tài)變量、邏輯運(yùn)算的中間結(jié)果等。當(dāng)這些項(xiàng)目全部安排好后,保留一兩個(gè)字節(jié)備用,剩下的單元可改作其他用途。30H~7FH為一般通用寄存器,只能存入整字節(jié)信息。通常用來(lái)存放各種參數(shù)、指針、中間結(jié)果,或用作數(shù)據(jù)緩沖區(qū)。此外,也常將堆棧安放在片內(nèi)RAM的高端,如60H~7FH;設(shè)置堆棧區(qū)時(shí)應(yīng)事先估算出子程序和中斷嵌套的級(jí)數(shù)以及程序中棧操作指令使用情況,其大小應(yīng)留有余量。當(dāng)系統(tǒng)中擴(kuò)展了RAM,應(yīng)把使用頻率最高的數(shù)據(jù)緩沖區(qū)安排在片內(nèi)RAM中,以提高處理速度。20H~2FH這16個(gè)字節(jié)具有位尋址功能,可738.2單片機(jī)開(kāi)發(fā)工具及選擇8.2.1仿真器1.仿真器種類基于Bondout仿真技術(shù)的仿真器使用專門(mén)設(shè)計(jì)的仿真芯片,能真實(shí)地仿真某一特定廠家、系列的單片機(jī)芯片——不占用硬件資源、仿真頻率高。但這類仿真器的缺點(diǎn)是通用性差(某一專用的仿真芯片只能仿真某一系列的單片機(jī)CPU),價(jià)格高,開(kāi)發(fā)設(shè)備更新?lián)Q代速度慢——新單片機(jī)CPU出現(xiàn)后,開(kāi)發(fā)商才會(huì)根據(jù)市場(chǎng)需要來(lái)設(shè)計(jì)配套的仿真芯片。以前國(guó)內(nèi)開(kāi)發(fā)的普及型MCS-51仿真器大多采用價(jià)格低廉、僅支持標(biāo)準(zhǔn)MCS-51系列的仿真芯片;而支持增強(qiáng)型MCS-51或更高檔次CPU的專用仿真芯片價(jià)格昂貴,一般用戶很難接受。8.2單片機(jī)開(kāi)發(fā)工具及選擇8.2.1仿真器74HOOKS仿真技術(shù)由Philips公司開(kāi)發(fā),該技術(shù)的核心是通過(guò)分時(shí)復(fù)用I/O引腳方式來(lái)重構(gòu)MCS-51系列P0、P2口,使支持HOOKS技術(shù)的MCS-51芯片進(jìn)入HOOKS仿真狀態(tài)后,通過(guò)硬件將復(fù)用的P0、P2口擴(kuò)展為獨(dú)立的仿真總線及用戶P0、P2口。該方法的優(yōu)點(diǎn)是無(wú)須專用的仿真芯片,如用普通的51系列即可進(jìn)行相同芯片(或硬件資源兼容芯片)仿真,因此成本低,只要實(shí)時(shí)加入新型CPU數(shù)據(jù)資料,換上相應(yīng)CPU即可仿真新的CPU,仿真開(kāi)發(fā)設(shè)備更新速度快,投入少。但HOOKS仿真器通過(guò)硬件、軟件模擬實(shí)際MCS-51系列芯片的P0、P2口,因此與實(shí)際CPU的P0、P2口尚有區(qū)別,另外仿真頻率也不能太高。HOOKS仿真技術(shù)由Philips公司開(kāi)75目前國(guó)內(nèi)仿真器開(kāi)發(fā)商通過(guò)授權(quán)、轉(zhuǎn)讓的方式從Philips公司引進(jìn)了HOOKS仿真技術(shù),開(kāi)發(fā)了基于HOOKS仿真技術(shù)的仿真器,如廣州周立功單片機(jī)發(fā)展有限公司的TKS-HOOKS系列等。這些仿真器適應(yīng)性廣,通過(guò)更改仿真頭內(nèi)的CPU芯片即可仿真不同系列的CPU。例如TKS-HOOKS系列內(nèi)的TKS-668仿真器,更換仿真頭內(nèi)的CPU后,可仿真Philips公司的P8XC5X、P8XC5XX2、P89C6XX2、P89C51RX、P89C66X等系列芯片。目前國(guó)內(nèi)仿真器開(kāi)發(fā)商通過(guò)授權(quán)、轉(zhuǎn)讓的方式從P76此外,根據(jù)仿真器的適應(yīng)性,可把仿真器分為專用仿真器和通用仿真器。專用仿真器只能仿真某一系列的CPU,如南京偉福公司的K51系列和E51系列仿真器只能仿真MCS-51及兼容芯片,專用仿真器最大特點(diǎn)是價(jià)格低廉。通用仿真器適應(yīng)性強(qiáng),更換不同的仿真頭,即可仿真不同種類的CPU,如南京偉福公司的E6000系列、E2000系列,更換不同仿真頭后即可仿真IntelMCS-51及兼容CPU、Philips公司增強(qiáng)型80C51內(nèi)核CPU(包括8XC5X系列、89C51RX系列、552系列、592系列、76X系列等)以及Microchip公司的PIC系列CPU。通用仿真器價(jià)格高,一次性投入較大,但與仿真器配套的各系列仿真頭價(jià)格較低,更重要的是可在同一仿真開(kāi)發(fā)環(huán)境下使用,也是物有所值。此外,根據(jù)仿真器的適應(yīng)性,可把仿真器分為專用772.仿真器的選擇(1)不占用硬件資源。一些低檔的MCS-51仿真器(仿真頭)只能將P0、P2口作為總線使用,不能作為I/O口使用。(2)隨機(jī)瀏覽、修改內(nèi)部RAM、特殊功能寄存器內(nèi)容。(3)瀏覽、編輯程序存儲(chǔ)器各存儲(chǔ)單元內(nèi)容。(4)隨機(jī)修改程序計(jì)數(shù)器PC的值。(5)瀏覽、修改外部RAM單元內(nèi)容。(6)具備連續(xù)、單步、跟蹤執(zhí)行功能,以方便程序的調(diào)試。(7)靈活、方便的斷點(diǎn)設(shè)置和取消功能。斷點(diǎn)數(shù)目最好沒(méi)有限制,以方便程序調(diào)試。2.仿真器的選擇(1)不占用硬件資源。一78(8)開(kāi)發(fā)系統(tǒng)提供的匯編器(仿真開(kāi)發(fā)軟件)必須具備如下功能:·源程序編輯操作方式與用戶熟悉的通用字處理軟件(如Word)相同或相近?!し奖恪㈧`活的查找和定位功能,以便迅速找到源程序中特定字符串(如標(biāo)號(hào)、變量、操作碼或操作數(shù)助記符)。(9)匯編器(仿真開(kāi)發(fā)軟件)應(yīng)具備一定的容錯(cuò)能力。由于MCS-51匯編指令助記符與IntelX86通用CPU相似,因此編輯源程序時(shí),可能將MCS-51指令系統(tǒng)的“ANL”(與運(yùn)算操作助記符)寫(xiě)成“AND”,“ORL”(或運(yùn)算操作助記符)寫(xiě)成“OR”,“XRL”(異或運(yùn)算操作助記符)寫(xiě)成“XOR”;又如將“PUSHAcc”指令寫(xiě)成“PUSHA”,“POPAcc”指令寫(xiě)成“POPA”等。匯編程序應(yīng)該能夠理解這樣的錯(cuò)誤。(8)開(kāi)發(fā)系統(tǒng)提供的匯編器(仿真開(kāi)發(fā)軟件)必79(10)匯編器最好支持“過(guò)程匯編”偽指令,這對(duì)于程序設(shè)計(jì)、編寫(xiě)將非常方便。采用過(guò)程偽指令后,過(guò)程內(nèi)的標(biāo)號(hào)就可以分為兩類:公共標(biāo)號(hào)和局部標(biāo)號(hào)。公共標(biāo)號(hào)在整個(gè)程序內(nèi)有效,而局部標(biāo)號(hào)只在本過(guò)程內(nèi)有效,這樣不同子過(guò)程(實(shí)際上就是子程序)內(nèi)就能重復(fù)使用公共標(biāo)號(hào)外的標(biāo)號(hào)名,避免了因標(biāo)號(hào)重定義造成的錯(cuò)誤,也使不同過(guò)程內(nèi)的局部標(biāo)號(hào)名含義明確。過(guò)程定義偽指令格式如下:PROC Sub1,Sub2,… ;其中PROC為過(guò)程定義偽指令,Sub1、 Sub2等是公共標(biāo)號(hào) Sub1: … ;過(guò)程內(nèi)指令(10)匯編器最好支持“過(guò)程匯編”偽指令,這80RET ;如果過(guò)程是子程序,則最后一條指令是返回指令RET;如果 ;過(guò)程是中斷服務(wù)程序,則最后一條指令是中斷返回指令RETIEND ;過(guò)程結(jié)束偽指令例如:;使P1.0引腳上生產(chǎn)100ms低電平和75ms高電平信號(hào)PROCPwavePwave: CRLP1.0;延遲100msMOVTIME,#10RET ;如果過(guò)程是子程序,則最后一條指令是返回指令RE81LOOP1:MOVX_TIME,#109MOVY_TIME,#45LCALLDELAY ;調(diào)用延遲子程序,延遲10msDJNZTIME,LOOP1SETBP1.0 ;延遲100ms后,將P1.0引腳置1MOVTIME,#75LOOP1:82LOOP2:MOVX_TIME,#96MOVY_TIME,#5LCALLDELAY ;每次延遲1ms,共要進(jìn)行75次DJNZTIME,LOOP2RETEND;通用延遲子程序PROCDelayDelay:PUSHPSWCLRRS0SETBRS1 ;使用2區(qū)MOVR7,Y_TIME ;取延遲時(shí)間參數(shù)yLOOP2:83LOOP1:MOVR6,X_TIME ;取延遲時(shí)間參數(shù)xLOOP2:DJNZR6,LOOP2DJNZR7,LOOP1POPPSWRETEND(11)除了支持A51匯編語(yǔ)言外,最好支持C語(yǔ)言。LOOP1:(11)除了支持A51匯編語(yǔ)言外,最好支持C語(yǔ)848.2.2其他工具1.邏輯筆邏輯筆主要用于判別電路某點(diǎn)的電平狀態(tài)(高電平、低電平,還是脈沖),是數(shù)字電路系統(tǒng)常用的檢測(cè)工具。2.萬(wàn)用表(數(shù)字或指針式)萬(wàn)用表是最基本的電子測(cè)量工具,主要用于測(cè)量電路系統(tǒng)中各節(jié)點(diǎn)間電壓或各節(jié)點(diǎn)對(duì)地電壓,電路中兩點(diǎn)通斷,判別元器件的好壞。8.2.2其他工具853.通用編程器由于目前內(nèi)置OTPROM、FlashROM存儲(chǔ)器芯片的單片機(jī)CPU已成為主流芯片,程序調(diào)試結(jié)束后,需要在編程器上將調(diào)試好的程序代碼寫(xiě)入CPU內(nèi)的程序存儲(chǔ)器中。4.?IC插座在單片機(jī)開(kāi)發(fā)過(guò)程中,可能需要各種規(guī)格的IC插座。例如當(dāng)遇到目標(biāo)板上CPU插座周圍的元器件,如電解電容、晶振等太高,妨礙仿真頭插入時(shí),可使用一兩塊IC插座抬高CPU插座,以方便仿真頭的插入。3.通用編程器868.3系統(tǒng)可靠性設(shè)計(jì)8.3.1硬件可靠性設(shè)計(jì)提高元器件的可靠性2.冗余與容錯(cuò)設(shè)計(jì)3.采用抗干擾措施8.3系統(tǒng)可靠性設(shè)計(jì)8.3.1硬件可靠性設(shè)計(jì)提高元87圖8-2系統(tǒng)監(jiān)視電路圖8-2系統(tǒng)監(jiān)視電路88圖8-2中使用了一片MAX813L(705/706)系統(tǒng)監(jiān)視電路產(chǎn)品,該電路具有上電使單片機(jī)自動(dòng)復(fù)位,也允許人工隨時(shí)手動(dòng)復(fù)位,自動(dòng)監(jiān)視系統(tǒng)(掉電)等電源故障,程序跑飛使單片機(jī)自動(dòng)復(fù)位的系統(tǒng)監(jiān)視功能。該電路監(jiān)視功能的具體實(shí)現(xiàn)說(shuō)明如下:(1)電源故障監(jiān)視。當(dāng)電源正常時(shí),未穩(wěn)壓的直流電源電壓經(jīng)電阻R1和R2分壓,使電源故障輸入端PFI的電位大于1.25V?(內(nèi)部參考電壓),一旦電源發(fā)生故障,PFI的電位低于1.25V,則電源故障輸出PFO將從高電平變?yōu)榈碗娖剑瑥亩饐纹瑱C(jī)中斷,CPU響應(yīng)中斷后可迅速執(zhí)行諸如保護(hù)重要數(shù)據(jù)、發(fā)出電源故障報(bào)警等工作。圖8-2中使用了一片MAX813L(70589(2)看門(mén)狗定時(shí)器??撮T(mén)狗電路監(jiān)視單片機(jī)的P1.0線,正常情況下,P1.0線不超過(guò)1.6s觸發(fā)一次。若在1.6s內(nèi)單片機(jī)不產(chǎn)生觸發(fā)信號(hào),看門(mén)狗輸出端將變?yōu)榈碗娖?。由于與手動(dòng)復(fù)位端(與TTL/CMOS兼容,可用外部邏輯線驅(qū)動(dòng))相連,當(dāng) 低電平維持時(shí)間超過(guò)140ms,MAX813L(705/706)將復(fù)位,同時(shí)使看門(mén)狗清零和使變?yōu)楦唠娖剑@樣在MAX705/706/813L的復(fù)位信號(hào)維持200ms結(jié)束后,單片機(jī)脫離復(fù)位狀態(tài),開(kāi)始恢復(fù)程序并正常運(yùn)行。(2)看門(mén)狗定時(shí)器??撮T(mén)狗電路監(jiān)視單片機(jī)的P908.3.2系統(tǒng)自診斷技術(shù)1.?CPU診斷指令系統(tǒng)診斷:?jiǎn)纹瑱C(jī)執(zhí)行完一個(gè)包含有傳送指令、算術(shù)運(yùn)算指令、邏輯運(yùn)算指令、位傳送指令、位邏輯操作指令的程序后,累加器A中的數(shù)據(jù)應(yīng)為預(yù)定值,否則就有問(wèn)題。(1)片內(nèi)RAM診斷:可采用如下過(guò)程對(duì)片內(nèi)RAM每一個(gè)單元進(jìn)行測(cè)試:讀出-備份-寫(xiě)入-再讀出-與備份比較,若相同則重新寫(xiě)入原單元,否則設(shè)置不正確標(biāo)志,說(shuō)明片內(nèi)RAM有問(wèn)題。8.3.2系統(tǒng)自診斷技術(shù)1.?CP91(2)定時(shí)器及中斷診斷:用軟件延時(shí)來(lái)檢測(cè)定時(shí)的準(zhǔn)確性,即定時(shí)器以定時(shí)方式運(yùn)行,如能按時(shí)溢出,則置位溢出標(biāo)志,否則延時(shí)時(shí)間到停止定時(shí)器計(jì)數(shù),無(wú)溢出,表明定時(shí)器有問(wèn)題;利用定時(shí)中斷來(lái)檢測(cè)中斷系統(tǒng)是否有問(wèn)題,即若允許定時(shí)中斷,并在中斷服務(wù)程序中作一件事通知自檢程序,則可以根據(jù)這件事是否發(fā)生來(lái)判斷中斷是否發(fā)生。注意:對(duì)于8031單片機(jī),診斷程序放在片外ROM中,因此CPU診斷過(guò)程必須以三總線(包括地址鎖存器)沒(méi)有問(wèn)題和EPROM中的診斷程序也正確為前提。(2)定時(shí)器及中斷診斷:用軟件延時(shí)來(lái)檢測(cè)定時(shí)922.?ROM診斷ROM診斷常用靜態(tài)測(cè)試法,在將系統(tǒng)程序及自檢程序固化到ROM中去的時(shí)候,先仔細(xì)計(jì)算其機(jī)器代碼的累加和,并取其結(jié)果的最低16位。在固化程序的同時(shí),將上述累加結(jié)果一起固化到ROM特定單元中(一般是放在ROM的最后兩個(gè)地址單元中)。在對(duì)ROM進(jìn)行檢查時(shí),只需對(duì)固化在ROM的程序代碼計(jì)算累加和,并將結(jié)果與事先固化的內(nèi)容進(jìn)行比較,從而判斷出ROM的完好性。2.?ROM診斷933.外部RAM診斷可采用與片內(nèi)RAM診斷相同的方法。此外,由于RAM的故障多數(shù)是以大片區(qū)域被破壞的形式出現(xiàn)的,因此也可采用RAM分段放置標(biāo)志數(shù)的方法來(lái)判斷RAM區(qū)是否被破壞。3.外部RAM診斷944.?A/D、D/A轉(zhuǎn)換通道的診斷和校正在使用模擬電路的系統(tǒng)中,A/D轉(zhuǎn)換器芯片只有一片時(shí),通常是用多路模擬開(kāi)關(guān)(一些A/D轉(zhuǎn)換器自帶多路模擬開(kāi)關(guān))來(lái)切換各路輸入信號(hào),實(shí)現(xiàn)分時(shí)采樣轉(zhuǎn)換。對(duì)A/D通道的診斷方法是在某一路模擬輸入端加上一個(gè)已知的模擬電壓,啟動(dòng)A/D轉(zhuǎn)換后讀取轉(zhuǎn)換結(jié)果。如果等于預(yù)定值,則A/D通道正常,若有少許偏差,則說(shuō)明A/D通道發(fā)生少許漂移,應(yīng)求出校正系數(shù),供信號(hào)通道進(jìn)行校正運(yùn)算,如果偏差過(guò)大,則為故障現(xiàn)象。4.?A/D、D/A轉(zhuǎn)換通道的診斷和校正95解決零點(diǎn)漂移和增益校正的方法是將多路模擬開(kāi)關(guān)的一個(gè)輸入端接信號(hào)公共點(diǎn)(模擬電壓為零伏),另一個(gè)輸入端接參考電源,然后分別啟動(dòng)這兩路,讀取兩路A/D轉(zhuǎn)換結(jié)果并保存起來(lái)。零漂和增益校正的測(cè)定可以每隔一定時(shí)間進(jìn)行一次,進(jìn)行這種校正時(shí)測(cè)得的數(shù)據(jù)經(jīng)過(guò)如下計(jì)算就可以求得最終數(shù)據(jù)。解決零點(diǎn)漂移和增益校正的方法是將多路模擬開(kāi)關(guān)的96其中:DS——校正后的數(shù)據(jù);DSN——測(cè)定信號(hào)得A/D轉(zhuǎn)換值;DOS——零點(diǎn)電壓的A/D轉(zhuǎn)換值;DFS——A/D轉(zhuǎn)換器滿量程值;DRE——參考電壓輸入的A/D轉(zhuǎn)換值。D/A通道診斷需借助A/D的一個(gè)輸入通道,在已經(jīng)進(jìn)行過(guò)A/D診斷并獲知其正常后,將預(yù)定值送D/A轉(zhuǎn)換,D/A轉(zhuǎn)換后的模擬電壓通過(guò)分壓電阻接到A/D轉(zhuǎn)換的某個(gè)輸入端,啟動(dòng)A/D轉(zhuǎn)換得到變換后的數(shù)字量。將D/A送出的數(shù)字量和讀入的A/D數(shù)字量進(jìn)行比較,看兩者相差多少,從而可判斷D/A轉(zhuǎn)換器工作是否正常。其中:975.數(shù)字I/O通道診斷數(shù)字顯示功能的診斷:數(shù)碼管顯示裝置顯示的內(nèi)容有數(shù)字、小數(shù)點(diǎn)、符號(hào)、提示符等,自檢程序可將數(shù)碼管的所有筆劃段點(diǎn)亮(包括小數(shù)點(diǎn)),由操作者檢查數(shù)碼管是否缺段;也可以設(shè)置循環(huán)輸出全0到全9的數(shù)字,小數(shù)點(diǎn)在各位上循環(huán)顯示,以及顯示特定的提示信息,借以檢查數(shù)字I/O通道是否正常。鍵盤(pán)的診斷:當(dāng)操作者按下某個(gè)鍵后,自檢程序可通過(guò)一個(gè)I/O口驅(qū)動(dòng)蜂鳴器發(fā)聲或由數(shù)碼管顯示器顯示出某個(gè)數(shù)字及符號(hào)。當(dāng)某鍵聽(tīng)不到發(fā)聲或顯示錯(cuò)誤,就可以判斷鍵盤(pán)系統(tǒng)出現(xiàn)故障。如果是某個(gè)鍵有問(wèn)題,往往是接觸不良;如果是某排鍵有問(wèn)題,一定是對(duì)應(yīng)的鍵掃描電路有故障;若全部鍵無(wú)相應(yīng),則鍵盤(pán)掃描系統(tǒng)已癱瘓或監(jiān)控程序已癱瘓。5.數(shù)字I/O通道診斷988.3.3系統(tǒng)抗干擾性能1.單片機(jī)應(yīng)用系統(tǒng)中的主要干擾源工業(yè)生產(chǎn)中的干擾一般都是以脈沖的形式進(jìn)入單片機(jī)應(yīng)用系統(tǒng)的,串入系統(tǒng)的干擾主要有三種來(lái)源,即場(chǎng)干擾,通過(guò)電磁波輻射串入系統(tǒng);輸入/輸出通道干擾,通過(guò)與主機(jī)相連的輸入/輸出通道及與其他主機(jī)相連的通道進(jìn)入;供電系統(tǒng)干擾,從電源供電電路引入干擾。一般情況下場(chǎng)干擾在強(qiáng)度上遠(yuǎn)小于其他兩個(gè)干擾源,而且場(chǎng)干擾可用良好的屏蔽與正確的接地、高頻濾波加以解決,因此單片機(jī)應(yīng)用系統(tǒng)中重點(diǎn)防止輸入/輸出通道與供電系統(tǒng)的干擾。8.3.3系統(tǒng)抗干擾性能1.單片機(jī)應(yīng)用系統(tǒng)992.硬件抗干擾措施1)輸入/輸出通道干擾的抑制措施輸入/輸出通道干擾的抑制通常采用隔離和濾波技術(shù)。常用的隔離器件有隔離變壓器、光電耦合器、繼電器和隔離放大器等,其中光電耦合器應(yīng)用最為廣泛。在輸入和輸出通道中采用光電耦合器將單片機(jī)系統(tǒng)與各種傳感器、開(kāi)關(guān)、執(zhí)行機(jī)構(gòu)從電氣上隔離開(kāi)來(lái),很大一部分干擾將被阻擋。在模擬通道中使用光電耦合器隔離時(shí),應(yīng)保證被傳送信號(hào)的變化范圍始終在光電耦合

溫馨提示

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

評(píng)論

0/150

提交評(píng)論