




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
第8章單片機應用系統(tǒng)開發(fā)8.1單片機應用系統(tǒng)開發(fā)過程8.2單片機開發(fā)工具及選擇8.3系統(tǒng)可靠性設計第8章單片機應用系統(tǒng)開發(fā)8.1單片機應用系統(tǒng)開發(fā)18.1單片機應用系統(tǒng)開發(fā)過程8.1.1總體設計1.理解系統(tǒng)功能和技術指標2.選擇單片機類型貨源充足、穩(wěn)定。
(2)性價比要高。
(3)研制周期。 3.關鍵器件的選擇
4.軟硬件功能劃分8.1單片機應用系統(tǒng)開發(fā)過程8.1.1總體設計2圖8-1單片機應用系統(tǒng)開發(fā)過程圖8-1單片機應用系統(tǒng)開發(fā)過程38.1.2硬件設計元器件選擇原則(1)性能參數(shù)和經(jīng)濟性。在選擇元器件時必須按照器件手冊所提供的各種參數(shù)(如工作條件、電源要求、邏輯特性等)指標綜合考慮,但不能單純追求超出系統(tǒng)性能要求的高速、高精度、高性能。例如,一般10位精度的A/D轉換器價格遠高于同類8位精度的A/D轉換器;陶瓷封裝(一般適用于-25℃~+85℃或-55℃~+125℃)的芯片價格略高于塑料封裝(0℃~+70℃)的同類型芯片。8.1.2硬件設計元器件選擇原則(14(2)通用性。在應用系統(tǒng)中,盡量采用通用的大規(guī)模集成電路芯片,這樣可大大簡化系統(tǒng)的設計、安裝和調(diào)試,也有助于提高系統(tǒng)的可靠性。(3)型號和公差。在確定元器件參數(shù)之后,還要確定元器件的型號,這主要取決于電路所允許元器件的公差范圍。如電解電容器可滿足一般的應用,但對于電容公差要求高的電路,電解電容則不宜采用。(2)通用性。在應用系統(tǒng)中,盡量采用通用的5(4)與系統(tǒng)速度匹配。單片機時鐘頻率一般可在一定范圍內(nèi)選擇(如增強型MCS-51單片機芯片可在0~33MHz之間任意選擇),在不影響系統(tǒng)性能的前提下,時鐘頻率選低些好,這樣可降低系統(tǒng)內(nèi)其他元器件的速度要求,從而降低成本和提高系統(tǒng)的可靠性。在選擇比較高的時鐘頻率時,需挑選和單片機速度相匹配的元器件。另一方面,較低的時鐘頻率會降低晶振電路產(chǎn)生的電磁干擾。(5)電路類型。對于低功耗應用系統(tǒng),必須采用CHMOS或CMOS芯片,如74HC系列、CD4000系列;而一般系統(tǒng)可使用TTL數(shù)字集成電路芯片。(4)與系統(tǒng)速度匹配。單片機時鐘頻率一般可62.系統(tǒng)構成方式選擇專用系統(tǒng)。(2)模塊化系統(tǒng)。(3)單片單板機系統(tǒng)。2.系統(tǒng)構成方式選擇專用系統(tǒng)。73.系統(tǒng)硬件電路設計原則一般在系統(tǒng)硬件電路設計時應遵循以下原則:(1)盡可能選擇標準化、模塊化的典型電路,且符合單片機應用系統(tǒng)的常規(guī)用法。(2)系統(tǒng)配置及擴展標準必須充分滿足系統(tǒng)的功能要求,并留有余地,以利于系統(tǒng)的二次開發(fā)。(3)硬件結構應結合應用程序設計一并考慮。軟件能實現(xiàn)的功能盡可能由軟件來完成,以簡化硬件結構。3.系統(tǒng)硬件電路設計原則8(4)系統(tǒng)中相關的器件要盡可能做到性能匹配。(5)單片機外接電路較多時,必須考慮其驅動能力。(6)可靠性及抗干擾設計是硬件系統(tǒng)設計不可缺少的一部分。(7)?TTL電路未用引腳的處理。(8)工藝設計,包括機架機箱、面板、配線、接插件等,必須考慮安裝、調(diào)試、維護的方便。(4)系統(tǒng)中相關的器件要盡可能做到性能匹配。94.印制電路板設計單片機應用系統(tǒng)產(chǎn)品在結構上離不開用于固定單片機芯片及其他元器件的印制板。通常這類印制板布線密度高、焊點分布密度大,需要雙面、甚至多層板才能滿足電路要求。在編輯印制板時,需要遵循下列原則:(1)晶振必須盡可能靠近CPU晶振引腳,且晶振電路下方不能走線,最好在晶振電路下方放置一個與地線相連的屏蔽層。4.印制電路板設計10(2)電源、地線要求。在雙面印制板上,電源線和地線應安排在不同的面上,且平行走線,這樣寄生電容將起濾波作用。對于功耗較大的數(shù)字電路芯片,如CPU、驅動器等應采用單點接地方式,即這類芯片電源、地線應單獨走線,并直接接到印制板電源、地線入口處。電源線和地線寬度盡可能大一些,或采用微帶走線方式。(3)模擬信號和數(shù)字信號不能共地,即采用單點接地方式。(4)在中低頻應用系統(tǒng)(晶振頻率小于20MHz)中,走線轉角可取45°;在高頻系統(tǒng)中,必要時可選擇圓角模式。盡量避免使用90°轉角。(2)電源、地線要求。在雙面印制板上,電源線11(5)對于輸入信號線,走線盡可能短,必要時在信號線兩側放置地線屏蔽,防止可能出現(xiàn)的干擾;不同信號線避免平行走線,上下兩面的信號線最好交叉走線,相互干擾可減到最小。(6)為減低系統(tǒng)功耗,對于未用TTL電路單元必須按如下方式處理:在印制板設計時,最容易忽略未用單元電路輸入端的處理(因為原理圖中沒有給出)。盡管它不影響電路的功能,但卻增加系統(tǒng)的功耗,尤其是當系統(tǒng)靠電池供電時,就更應該注意未用單元引腳的連接。在小規(guī)模TTL電路芯片中,同一芯片內(nèi)常含有多套電路。例如,在74LS00芯片中,就含有四套“2輸入與非門”。(5)對于輸入信號線,走線盡可能短,必要時128.1.3資源分配1.?I/O引腳資源分配單片機芯片各I/O引腳功能不完全相同,如部分引腳具有第二輸入/輸出功能;各I/O引腳輸出級電路結構不盡相同,如8XC5X的P0口采用漏極開路輸出方式,P1~P3口采用準雙向結構。此外,在87LPC76X系列中,P1.5引腳只能作為輸入引腳使用。因此,在分配I/O引腳時,需要認真對待。
例如,在8XC5X系統(tǒng)中,當外中斷不夠用時,可使用定時器T2溢出率作為串行口發(fā)送、接收波特率,此時P1.1引腳就可以作為下降沿觸發(fā)的外中斷源使用。又如,在P87LPC762/4中,當需要4根引腳作為直接編碼輸入鍵盤時,可考慮使用P0.3、P0.4、P0.5、P0.6引腳作為鍵盤輸入引腳,這樣基本保留了模擬比較器2的資源。8.1.3資源分配1.?I/O引腳資源分配132.程序存儲器資源分配片內(nèi)ROM存儲器用于存放程序和數(shù)據(jù)表格。按照MCS-51單片機的復位及中斷入口的規(guī)定,002FH以前的地址單元都作為中斷、復位入口地址區(qū)。在這些單元中一般都設置了轉移指令,轉移到相應的中斷服務程序或復位啟動程序。當程序存儲器中存放的功能程序及子程序數(shù)量較多時,應盡可能為它們設置入口地址表。一般的常數(shù)、表格集中設置表格區(qū)。二次開發(fā)擴展區(qū)應盡可能放在高位地址區(qū)。2.程序存儲器資源分配143.?RAM資源分配RAM分為片內(nèi)RAM和片外RAM。片外RAM的容量比較大,通常用來存放批量大的數(shù)據(jù),如采樣結果數(shù)據(jù);片內(nèi)RAM容量較少,盡可能重疊使用,如數(shù)據(jù)暫存區(qū)與顯示、打印緩沖區(qū)重疊。對于MCS-51單片機來說,片內(nèi)RAM是指00H~7FH單元,這128個單元的功能并不完全相同,分配時應注意發(fā)揮各自的特點,做到物盡其用。3.?RAM資源分配1500~1FH這32個字節(jié)可以作為工作寄存器組,在工作寄存器的8個單元中,R0和R1具有指針功能,是編程的重要角色,應充分發(fā)揮其作用。系統(tǒng)上電復位時,置PSW=00H,SP=07H,則RS1(PSW.4)、RS0(PSW.3)位均為0,CPU自動選擇工作寄存器組0作為當前工作寄存器,而工作寄存器組1為堆棧,并向工作寄存器組2、3延伸。例如,此時當CPU執(zhí)行諸如MOVR1,#2FH指令時,R1即是指01H單元。在中斷服務程序中,如果也要使用R1寄存器且不將原來的數(shù)據(jù)沖掉,則可在主程序中先將堆??臻g設置在其他位置,然后在進入中斷服務程序后選擇工作寄存器組1、2或3,這時若再執(zhí)行諸如MOVR1,#00H指令時,就不會沖掉R1(01H單元)中原來的內(nèi)容了,因為這時R1的地址已改變?yōu)?9H、11H或19H。在中斷服務程序結束時,可重新選擇工作寄存器組0。因此,通常可在應用程序中安排主程序及其調(diào)用的子程序使用工作寄存器組0,而安排定時器溢出中斷、外部中斷、串行口中斷使用工作寄存器組1、2或3。00~1FH這32個字節(jié)可以作為工作寄存器組1620H~2FH這16個字節(jié)具有位尋址功能,可用來存放各種軟件標志、邏輯變量、位輸入信息、位輸出信息副本、狀態(tài)變量、邏輯運算的中間結果等。當這些項目全部安排好后,保留一兩個字節(jié)備用,剩下的單元可改作其他用途。30H~7FH為一般通用寄存器,只能存入整字節(jié)信息。通常用來存放各種參數(shù)、指針、中間結果,或用作數(shù)據(jù)緩沖區(qū)。此外,也常將堆棧安放在片內(nèi)RAM的高端,如60H~7FH;設置堆棧區(qū)時應事先估算出子程序和中斷嵌套的級數(shù)以及程序中棧操作指令使用情況,其大小應留有余量。當系統(tǒng)中擴展了RAM,應把使用頻率最高的數(shù)據(jù)緩沖區(qū)安排在片內(nèi)RAM中,以提高處理速度。20H~2FH這16個字節(jié)具有位尋址功能,可178.2單片機開發(fā)工具及選擇8.2.1仿真器1.仿真器種類基于Bondout仿真技術的仿真器使用專門設計的仿真芯片,能真實地仿真某一特定廠家、系列的單片機芯片——不占用硬件資源、仿真頻率高。但這類仿真器的缺點是通用性差(某一專用的仿真芯片只能仿真某一系列的單片機CPU),價格高,開發(fā)設備更新?lián)Q代速度慢——新單片機CPU出現(xiàn)后,開發(fā)商才會根據(jù)市場需要來設計配套的仿真芯片。以前國內(nèi)開發(fā)的普及型MCS-51仿真器大多采用價格低廉、僅支持標準MCS-51系列的仿真芯片;而支持增強型MCS-51或更高檔次CPU的專用仿真芯片價格昂貴,一般用戶很難接受。8.2單片機開發(fā)工具及選擇8.2.1仿真器18HOOKS仿真技術由Philips公司開發(fā),該技術的核心是通過分時復用I/O引腳方式來重構MCS-51系列P0、P2口,使支持HOOKS技術的MCS-51芯片進入HOOKS仿真狀態(tài)后,通過硬件將復用的P0、P2口擴展為獨立的仿真總線及用戶P0、P2口。該方法的優(yōu)點是無須專用的仿真芯片,如用普通的51系列即可進行相同芯片(或硬件資源兼容芯片)仿真,因此成本低,只要實時加入新型CPU數(shù)據(jù)資料,換上相應CPU即可仿真新的CPU,仿真開發(fā)設備更新速度快,投入少。但HOOKS仿真器通過硬件、軟件模擬實際MCS-51系列芯片的P0、P2口,因此與實際CPU的P0、P2口尚有區(qū)別,另外仿真頻率也不能太高。HOOKS仿真技術由Philips公司開19目前國內(nèi)仿真器開發(fā)商通過授權、轉讓的方式從Philips公司引進了HOOKS仿真技術,開發(fā)了基于HOOKS仿真技術的仿真器,如廣州周立功單片機發(fā)展有限公司的TKS-HOOKS系列等。這些仿真器適應性廣,通過更改仿真頭內(nèi)的CPU芯片即可仿真不同系列的CPU。例如TKS-HOOKS系列內(nèi)的TKS-668仿真器,更換仿真頭內(nèi)的CPU后,可仿真Philips公司的P8XC5X、P8XC5XX2、P89C6XX2、P89C51RX、P89C66X等系列芯片。目前國內(nèi)仿真器開發(fā)商通過授權、轉讓的方式從P20此外,根據(jù)仿真器的適應性,可把仿真器分為專用仿真器和通用仿真器。專用仿真器只能仿真某一系列的CPU,如南京偉福公司的K51系列和E51系列仿真器只能仿真MCS-51及兼容芯片,專用仿真器最大特點是價格低廉。通用仿真器適應性強,更換不同的仿真頭,即可仿真不同種類的CPU,如南京偉福公司的E6000系列、E2000系列,更換不同仿真頭后即可仿真IntelMCS-51及兼容CPU、Philips公司增強型80C51內(nèi)核CPU(包括8XC5X系列、89C51RX系列、552系列、592系列、76X系列等)以及Microchip公司的PIC系列CPU。通用仿真器價格高,一次性投入較大,但與仿真器配套的各系列仿真頭價格較低,更重要的是可在同一仿真開發(fā)環(huán)境下使用,也是物有所值。此外,根據(jù)仿真器的適應性,可把仿真器分為專用212.仿真器的選擇(1)不占用硬件資源。一些低檔的MCS-51仿真器(仿真頭)只能將P0、P2口作為總線使用,不能作為I/O口使用。(2)隨機瀏覽、修改內(nèi)部RAM、特殊功能寄存器內(nèi)容。(3)瀏覽、編輯程序存儲器各存儲單元內(nèi)容。(4)隨機修改程序計數(shù)器PC的值。(5)瀏覽、修改外部RAM單元內(nèi)容。(6)具備連續(xù)、單步、跟蹤執(zhí)行功能,以方便程序的調(diào)試。(7)靈活、方便的斷點設置和取消功能。斷點數(shù)目最好沒有限制,以方便程序調(diào)試。2.仿真器的選擇(1)不占用硬件資源。一22(8)開發(fā)系統(tǒng)提供的匯編器(仿真開發(fā)軟件)必須具備如下功能:·源程序編輯操作方式與用戶熟悉的通用字處理軟件(如Word)相同或相近?!し奖?、靈活的查找和定位功能,以便迅速找到源程序中特定字符串(如標號、變量、操作碼或操作數(shù)助記符)。(9)匯編器(仿真開發(fā)軟件)應具備一定的容錯能力。由于MCS-51匯編指令助記符與IntelX86通用CPU相似,因此編輯源程序時,可能將MCS-51指令系統(tǒng)的“ANL”(與運算操作助記符)寫成“AND”,“ORL”(或運算操作助記符)寫成“OR”,“XRL”(異或運算操作助記符)寫成“XOR”;又如將“PUSHAcc”指令寫成“PUSHA”,“POPAcc”指令寫成“POPA”等。匯編程序應該能夠理解這樣的錯誤。(8)開發(fā)系統(tǒng)提供的匯編器(仿真開發(fā)軟件)必23(10)匯編器最好支持“過程匯編”偽指令,這對于程序設計、編寫將非常方便。采用過程偽指令后,過程內(nèi)的標號就可以分為兩類:公共標號和局部標號。公共標號在整個程序內(nèi)有效,而局部標號只在本過程內(nèi)有效,這樣不同子過程(實際上就是子程序)內(nèi)就能重復使用公共標號外的標號名,避免了因標號重定義造成的錯誤,也使不同過程內(nèi)的局部標號名含義明確。過程定義偽指令格式如下:PROC Sub1,Sub2,… ;其中PROC為過程定義偽指令,Sub1、 Sub2等是公共標號 Sub1: … ;過程內(nèi)指令(10)匯編器最好支持“過程匯編”偽指令,這24RET ;如果過程是子程序,則最后一條指令是返回指令RET;如果 ;過程是中斷服務程序,則最后一條指令是中斷返回指令RETIEND ;過程結束偽指令例如:;使P1.0引腳上生產(chǎn)100ms低電平和75ms高電平信號PROCPwavePwave: CRLP1.0;延遲100msMOVTIME,#10RET ;如果過程是子程序,則最后一條指令是返回指令RE25LOOP1:MOVX_TIME,#109MOVY_TIME,#45LCALLDELAY ;調(diào)用延遲子程序,延遲10msDJNZTIME,LOOP1SETBP1.0 ;延遲100ms后,將P1.0引腳置1MOVTIME,#75LOOP1:26LOOP2:MOVX_TIME,#96MOVY_TIME,#5LCALLDELAY ;每次延遲1ms,共要進行75次DJNZTIME,LOOP2RETEND;通用延遲子程序PROCDelayDelay:PUSHPSWCLRRS0SETBRS1 ;使用2區(qū)MOVR7,Y_TIME ;取延遲時間參數(shù)yLOOP2:27LOOP1:MOVR6,X_TIME ;取延遲時間參數(shù)xLOOP2:DJNZR6,LOOP2DJNZR7,LOOP1POPPSWRETEND(11)除了支持A51匯編語言外,最好支持C語言。LOOP1:(11)除了支持A51匯編語言外,最好支持C語288.2.2其他工具1.邏輯筆邏輯筆主要用于判別電路某點的電平狀態(tài)(高電平、低電平,還是脈沖),是數(shù)字電路系統(tǒng)常用的檢測工具。2.萬用表(數(shù)字或指針式)萬用表是最基本的電子測量工具,主要用于測量電路系統(tǒng)中各節(jié)點間電壓或各節(jié)點對地電壓,電路中兩點通斷,判別元器件的好壞。8.2.2其他工具293.通用編程器由于目前內(nèi)置OTPROM、FlashROM存儲器芯片的單片機CPU已成為主流芯片,程序調(diào)試結束后,需要在編程器上將調(diào)試好的程序代碼寫入CPU內(nèi)的程序存儲器中。4.?IC插座在單片機開發(fā)過程中,可能需要各種規(guī)格的IC插座。例如當遇到目標板上CPU插座周圍的元器件,如電解電容、晶振等太高,妨礙仿真頭插入時,可使用一兩塊IC插座抬高CPU插座,以方便仿真頭的插入。3.通用編程器308.3系統(tǒng)可靠性設計8.3.1硬件可靠性設計提高元器件的可靠性2.冗余與容錯設計3.采用抗干擾措施8.3系統(tǒng)可靠性設計8.3.1硬件可靠性設計提高元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)品,該電路具有上電使單片機自動復位,也允許人工隨時手動復位,自動監(jiān)視系統(tǒng)(掉電)等電源故障,程序跑飛使單片機自動復位的系統(tǒng)監(jiān)視功能。該電路監(jiān)視功能的具體實現(xiàn)說明如下:(1)電源故障監(jiān)視。當電源正常時,未穩(wěn)壓的直流電源電壓經(jīng)電阻R1和R2分壓,使電源故障輸入端PFI的電位大于1.25V?(內(nèi)部參考電壓),一旦電源發(fā)生故障,PFI的電位低于1.25V,則電源故障輸出PFO將從高電平變?yōu)榈碗娖?,從而引起單片機中斷,CPU響應中斷后可迅速執(zhí)行諸如保護重要數(shù)據(jù)、發(fā)出電源故障報警等工作。圖8-2中使用了一片MAX813L(70533(2)看門狗定時器??撮T狗電路監(jiān)視單片機的P1.0線,正常情況下,P1.0線不超過1.6s觸發(fā)一次。若在1.6s內(nèi)單片機不產(chǎn)生觸發(fā)信號,看門狗輸出端將變?yōu)榈碗娖?。由于與手動復位端(與TTL/CMOS兼容,可用外部邏輯線驅動)相連,當 低電平維持時間超過140ms,MAX813L(705/706)將復位,同時使看門狗清零和使變?yōu)楦唠娖?,這樣在MAX705/706/813L的復位信號維持200ms結束后,單片機脫離復位狀態(tài),開始恢復程序并正常運行。(2)看門狗定時器??撮T狗電路監(jiān)視單片機的P348.3.2系統(tǒng)自診斷技術1.?CPU診斷指令系統(tǒng)診斷:單片機執(zhí)行完一個包含有傳送指令、算術運算指令、邏輯運算指令、位傳送指令、位邏輯操作指令的程序后,累加器A中的數(shù)據(jù)應為預定值,否則就有問題。(1)片內(nèi)RAM診斷:可采用如下過程對片內(nèi)RAM每一個單元進行測試:讀出-備份-寫入-再讀出-與備份比較,若相同則重新寫入原單元,否則設置不正確標志,說明片內(nèi)RAM有問題。8.3.2系統(tǒng)自診斷技術1.?CP35(2)定時器及中斷診斷:用軟件延時來檢測定時的準確性,即定時器以定時方式運行,如能按時溢出,則置位溢出標志,否則延時時間到停止定時器計數(shù),無溢出,表明定時器有問題;利用定時中斷來檢測中斷系統(tǒng)是否有問題,即若允許定時中斷,并在中斷服務程序中作一件事通知自檢程序,則可以根據(jù)這件事是否發(fā)生來判斷中斷是否發(fā)生。注意:對于8031單片機,診斷程序放在片外ROM中,因此CPU診斷過程必須以三總線(包括地址鎖存器)沒有問題和EPROM中的診斷程序也正確為前提。(2)定時器及中斷診斷:用軟件延時來檢測定時362.?ROM診斷ROM診斷常用靜態(tài)測試法,在將系統(tǒng)程序及自檢程序固化到ROM中去的時候,先仔細計算其機器代碼的累加和,并取其結果的最低16位。在固化程序的同時,將上述累加結果一起固化到ROM特定單元中(一般是放在ROM的最后兩個地址單元中)。在對ROM進行檢查時,只需對固化在ROM的程序代碼計算累加和,并將結果與事先固化的內(nèi)容進行比較,從而判斷出ROM的完好性。2.?ROM診斷373.外部RAM診斷可采用與片內(nèi)RAM診斷相同的方法。此外,由于RAM的故障多數(shù)是以大片區(qū)域被破壞的形式出現(xiàn)的,因此也可采用RAM分段放置標志數(shù)的方法來判斷RAM區(qū)是否被破壞。3.外部RAM診斷384.?A/D、D/A轉換通道的診斷和校正在使用模擬電路的系統(tǒng)中,A/D轉換器芯片只有一片時,通常是用多路模擬開關(一些A/D轉換器自帶多路模擬開關)來切換各路輸入信號,實現(xiàn)分時采樣轉換。對A/D通道的診斷方法是在某一路模擬輸入端加上一個已知的模擬電壓,啟動A/D轉換后讀取轉換結果。如果等于預定值,則A/D通道正常,若有少許偏差,則說明A/D通道發(fā)生少許漂移,應求出校正系數(shù),供信號通道進行校正運算,如果偏差過大,則為故障現(xiàn)象。4.?A/D、D/A轉換通道的診斷和校正39解決零點漂移和增益校正的方法是將多路模擬開關的一個輸入端接信號公共點(模擬電壓為零伏),另一個輸入端接參考電源,然后分別啟動這兩路,讀取兩路A/D轉換結果并保存起來。零漂和增益校正的測定可以每隔一定時間進行一次,進行這種校正時測得的數(shù)據(jù)經(jīng)過如下計算就可以求得最終數(shù)據(jù)。解決零點漂移和增益校正的方法是將多路模擬開關的40其中:DS——校正后的數(shù)據(jù);DSN——測定信號得A/D轉換值;DOS——零點電壓的A/D轉換值;DFS——A/D轉換器滿量程值;DRE——參考電壓輸入的A/D轉換值。D/A通道診斷需借助A/D的一個輸入通道,在已經(jīng)進行過A/D診斷并獲知其正常后,將預定值送D/A轉換,D/A轉換后的模擬電壓通過分壓電阻接到A/D轉換的某個輸入端,啟動A/D轉換得到變換后的數(shù)字量。將D/A送出的數(shù)字量和讀入的A/D數(shù)字量進行比較,看兩者相差多少,從而可判斷D/A轉換器工作是否正常。其中:415.數(shù)字I/O通道診斷數(shù)字顯示功能的診斷:數(shù)碼管顯示裝置顯示的內(nèi)容有數(shù)字、小數(shù)點、符號、提示符等,自檢程序可將數(shù)碼管的所有筆劃段點亮(包括小數(shù)點),由操作者檢查數(shù)碼管是否缺段;也可以設置循環(huán)輸出全0到全9的數(shù)字,小數(shù)點在各位上循環(huán)顯示,以及顯示特定的提示信息,借以檢查數(shù)字I/O通道是否正常。鍵盤的診斷:當操作者按下某個鍵后,自檢程序可通過一個I/O口驅動蜂鳴器發(fā)聲或由數(shù)碼管顯示器顯示出某個數(shù)字及符號。當某鍵聽不到發(fā)聲或顯示錯誤,就可以判斷鍵盤系統(tǒng)出現(xiàn)故障。如果是某個鍵有問題,往往是接觸不良;如果是某排鍵有問題,一定是對應的鍵掃描電路有故障;若全部鍵無相應,則鍵盤掃描系統(tǒng)已癱瘓或監(jiān)控程序已癱瘓。5.數(shù)字I/O通道診斷428.3.3系統(tǒng)抗干擾性能1.單片機應用系統(tǒng)中的主要干擾源工業(yè)生產(chǎn)中的干擾一般都是以脈沖的形式進入單片機應用系統(tǒng)的,串入系統(tǒng)的干擾主要有三種來源,即場干擾,通過電磁波輻射串入系統(tǒng);輸入/輸出通道干擾,通過與主機相連的輸入/輸出通道及與其他主機相連的通道進入;供電系統(tǒng)干擾,從電源供電電路引入干擾。一般情況下場干擾在強度上遠小于其他兩個干擾源,而且場干擾可用良好的屏蔽與正確的接地、高頻濾波加以解決,因此單片機應用系統(tǒng)中重點防止輸入/輸出通道與供電系統(tǒng)的干擾。8.3.3系統(tǒng)抗干擾性能1.單片機應用系統(tǒng)432.硬件抗干擾措施1)輸入/輸出通道干擾的抑制措施輸入/輸出通道干擾的抑制通常采用隔離和濾波技術。常用的隔離器件有隔離變壓器、光電耦合器、繼電器和隔離放大器等,其中光電耦合器應用最為廣泛。在輸入和輸出通道中采用光電耦合器將單片機系統(tǒng)與各種傳感器、開關、執(zhí)行機構從電氣上隔離開來,很大一部分干擾將被阻擋。在模擬通道中使用光電耦合器隔離時,應保證被傳送信號的變化范圍始終在光電耦合器的線性區(qū)內(nèi),否則會產(chǎn)生較大的誤差。應盡可能將隔離器件設置在執(zhí)行部件或傳感器附近,通常是將光電隔離器放在A/D、D/A附近。2.硬件抗干擾措施44光電隔離前后兩部分電路應分別采用兩組獨立的電源供電。當數(shù)字通道輸出的開關量是用于控制大負荷設備時,就不宜用光電耦合器,而采用繼電器隔離輸出,此時要在單片機輸出端的鎖存器74LS273與繼電器間設置一個OC門驅動器,用以提供較高的驅動電流(一般OC門驅動器的低電平輸出電流約有300mA左右,足以驅動小型繼電器)。硬件濾波電路常采用RC低通濾波器,將它接在一些低頻信號傳送電路中,可大大削弱各類高頻干擾信號。光電隔離前后兩部分電路應分別采用兩組獨立的電452)供電系統(tǒng)干擾的抑制措施單片機系統(tǒng)的供電線路和產(chǎn)生干擾的用電設備分開供電。通常干擾源為各類大功率設備,如電機。對于小的單片機系統(tǒng),可采用CMOS芯片,設計成低功耗系統(tǒng)用電池供電,干擾可大大減少。通過低通濾波器和隔離變壓器接入電網(wǎng)。低通濾波器可以吸收大部分電網(wǎng)中的“毛刺”,隔離變壓器是在初級繞組和次級繞組之間多加一層屏蔽層,并將它和鐵芯一起接地,防止干擾通過初次級之間的電容效應進入單片機供電系統(tǒng)。該屏蔽層也可用加繞的一層線圈來充當(一頭接地,另一頭空置)。2)供電系統(tǒng)干擾的抑制措施46整流元件上并接濾波電容,可以在很大程度上削弱高頻干擾,濾波電容選用1000pF~0.01μF的無感的瓷片電容為好。選用高質(zhì)量的穩(wěn)壓電路,使輸出直流電壓上的紋波很小,干擾難在輸出端形成。數(shù)字信號采用負邏輯傳輸。如果定義低電平為有效電平,高電平為無效電平,就可以減少干擾引起的誤動作,提高數(shù)字信號傳輸?shù)目煽啃?。整流元件上并接濾波電容,可以在很大程度上削弱473)電磁場干擾的抑制措施電磁場的干擾可采用屏蔽和接地措施。用金屬外殼或金屬屏蔽罩將整機或部分元器件包圍起來,再將金屬外殼接地,就能起到屏蔽作用。單片機系統(tǒng)中有數(shù)字地、模擬地、交流地、信號地、屏蔽地(機殼地),應分開連接不同性質(zhì)的地。印制板中的地線應接成網(wǎng)狀,而且其他布線不要形成回路,特別是環(huán)繞外周的環(huán)路;接地線最好根據(jù)電路通路逐漸加寬,并且不要小于3mm;在高頻情況下,電路板多采用大面積地線直接與機殼直接相連,形成多點接地方式。強信號地線和弱信號地線要分開。3)電磁場干擾的抑制措施484)減小CPU芯片工作時形成的電磁輻射如果CPU工作產(chǎn)生的電磁輻射干擾了系統(tǒng)內(nèi)無線接收電路時,除了對CPU芯片采取屏蔽措施外,還必須:在滿足速度要求前提下,盡可能降低系統(tǒng)時鐘頻率。因為時鐘頻率越低,晶振電路產(chǎn)生的電磁輻射量越小。盡量避免擴展外部存儲器,即盡可能使用內(nèi)含F(xiàn)lashROM、OTPROM存儲器的芯片,且禁止ALE輸出。4)減小CPU芯片工作時形成的電磁輻射49圖8-3輸出信號上下沿過沖圖8-3輸出信號上下沿過沖50圖8-4在CPU輸出引腳加緩沖電阻或RC緩沖網(wǎng)絡圖8-4在CPU輸出引腳加緩沖電阻或RC緩沖網(wǎng)絡513.軟件抗干擾技術1)指令冗余當CPU受到干擾后,往往將一些操作數(shù)當作指令來執(zhí)行,引起程序混亂。當程序彈飛到某一單字節(jié)指令時,便自動納入正軌。當彈飛到某一雙字節(jié)或三字節(jié)指令時,有可能落到其操作數(shù)上,從而繼續(xù)出錯。因此,應多采用單字節(jié)指令,并在關鍵的地方人為地插入一些單字節(jié)指令(NOP)或將有效單字節(jié)指令重復書寫,這就是指令冗余。指令冗余無疑會降低系統(tǒng)效率,但在絕大多數(shù)情況下,CPU還不致于忙到不能多執(zhí)行幾條指令的程度,故這種技術還是被廣泛采用的。3.軟件抗干擾技術1)指令冗余522)軟件“看門狗”有時為了簡化硬件電路,也可以設置一個純軟件的“看門狗”。用一個定時器來做“看門狗”,將它的溢出中斷設定為高級中斷,系統(tǒng)中的其他中斷可設為低級中斷。當“看門狗”啟動后,在主程序中必須在一定時間內(nèi)(小于定時器初值)重新給定時器賦初值,這樣在程序正常運行時不會產(chǎn)生溢出中斷。當程序掉入死循環(huán)后,由于定時溢出中斷的是高級中斷,可奪走對CPU的控制權,則經(jīng)過定時時間后產(chǎn)生一次定時器溢出中斷,從而退出死循環(huán)。定時器溢出中斷可直接轉向出錯處理程序,在中斷向量區(qū)安排一條LJMPERR即可。由出錯程序來完成各種善后工作,并用軟件方法使系統(tǒng)復位。2)軟件“看門狗”533)軟件陷阱指令冗余使彈飛的程序安定下來是有條件的,首先彈飛的程序必須落到程序區(qū),其次必須執(zhí)行到冗余指令。所謂軟件陷阱,就是一條引導指令強行將捕獲的程序引向一個指定的地址,在那里有一段專門對程序出錯進行處理的指令。如果我們把這段程序的入口地址記為ERR的話,軟件陷阱即為一條無條件轉移指令,為了加強其捕獲效果,一般還在它前面加幾條NOP指令,因此真正的軟件陷阱由以下4條指令構成: NOP NOP NOP LJMPERR3)軟件陷阱54軟件陷阱可安排在未使用的中斷向量區(qū)、未使用的大片ROM空間或表格后面等正常程序執(zhí)行不到的地方,故不影響程序執(zhí)行效率。采用硬件看門狗后,在程序存儲器空間容量足夠的情況下,就可以在每條跳轉指令后增加軟件陷阱,如:軟件陷阱可安排在未使用的中斷向量區(qū)、未使用的55SJMPNEONE ;在短跳轉指令后,加軟件陷阱NOPNOPNOPNOPCLREA ;關閉中斷,進入死循環(huán)SJMP$…LJMPSTART ;在長跳轉指令后,加軟件陷阱NOPNOPNOPNOPCLREA ;關閉中斷后,進入死循環(huán)SJMP$SJMPNEONE ;在短跳轉指令后,加軟件56第8章單片機應用系統(tǒng)開發(fā)8.1單片機應用系統(tǒng)開發(fā)過程8.2單片機開發(fā)工具及選擇8.3系統(tǒng)可靠性設計第8章單片機應用系統(tǒng)開發(fā)8.1單片機應用系統(tǒng)開發(fā)578.1單片機應用系統(tǒng)開發(fā)過程8.1.1總體設計1.理解系統(tǒng)功能和技術指標2.選擇單片機類型貨源充足、穩(wěn)定。
(2)性價比要高。
(3)研制周期。 3.關鍵器件的選擇
4.軟硬件功能劃分8.1單片機應用系統(tǒng)開發(fā)過程8.1.1總體設計58圖8-1單片機應用系統(tǒng)開發(fā)過程圖8-1單片機應用系統(tǒng)開發(fā)過程598.1.2硬件設計元器件選擇原則(1)性能參數(shù)和經(jīng)濟性。在選擇元器件時必須按照器件手冊所提供的各種參數(shù)(如工作條件、電源要求、邏輯特性等)指標綜合考慮,但不能單純追求超出系統(tǒng)性能要求的高速、高精度、高性能。例如,一般10位精度的A/D轉換器價格遠高于同類8位精度的A/D轉換器;陶瓷封裝(一般適用于-25℃~+85℃或-55℃~+125℃)的芯片價格略高于塑料封裝(0℃~+70℃)的同類型芯片。8.1.2硬件設計元器件選擇原則(160(2)通用性。在應用系統(tǒng)中,盡量采用通用的大規(guī)模集成電路芯片,這樣可大大簡化系統(tǒng)的設計、安裝和調(diào)試,也有助于提高系統(tǒng)的可靠性。(3)型號和公差。在確定元器件參數(shù)之后,還要確定元器件的型號,這主要取決于電路所允許元器件的公差范圍。如電解電容器可滿足一般的應用,但對于電容公差要求高的電路,電解電容則不宜采用。(2)通用性。在應用系統(tǒng)中,盡量采用通用的61(4)與系統(tǒng)速度匹配。單片機時鐘頻率一般可在一定范圍內(nèi)選擇(如增強型MCS-51單片機芯片可在0~33MHz之間任意選擇),在不影響系統(tǒng)性能的前提下,時鐘頻率選低些好,這樣可降低系統(tǒng)內(nèi)其他元器件的速度要求,從而降低成本和提高系統(tǒng)的可靠性。在選擇比較高的時鐘頻率時,需挑選和單片機速度相匹配的元器件。另一方面,較低的時鐘頻率會降低晶振電路產(chǎn)生的電磁干擾。(5)電路類型。對于低功耗應用系統(tǒng),必須采用CHMOS或CMOS芯片,如74HC系列、CD4000系列;而一般系統(tǒng)可使用TTL數(shù)字集成電路芯片。(4)與系統(tǒng)速度匹配。單片機時鐘頻率一般可622.系統(tǒng)構成方式選擇專用系統(tǒng)。(2)模塊化系統(tǒng)。(3)單片單板機系統(tǒng)。2.系統(tǒng)構成方式選擇專用系統(tǒng)。633.系統(tǒng)硬件電路設計原則一般在系統(tǒng)硬件電路設計時應遵循以下原則:(1)盡可能選擇標準化、模塊化的典型電路,且符合單片機應用系統(tǒng)的常規(guī)用法。(2)系統(tǒng)配置及擴展標準必須充分滿足系統(tǒng)的功能要求,并留有余地,以利于系統(tǒng)的二次開發(fā)。(3)硬件結構應結合應用程序設計一并考慮。軟件能實現(xiàn)的功能盡可能由軟件來完成,以簡化硬件結構。3.系統(tǒng)硬件電路設計原則64(4)系統(tǒng)中相關的器件要盡可能做到性能匹配。(5)單片機外接電路較多時,必須考慮其驅動能力。(6)可靠性及抗干擾設計是硬件系統(tǒng)設計不可缺少的一部分。(7)?TTL電路未用引腳的處理。(8)工藝設計,包括機架機箱、面板、配線、接插件等,必須考慮安裝、調(diào)試、維護的方便。(4)系統(tǒng)中相關的器件要盡可能做到性能匹配。654.印制電路板設計單片機應用系統(tǒng)產(chǎn)品在結構上離不開用于固定單片機芯片及其他元器件的印制板。通常這類印制板布線密度高、焊點分布密度大,需要雙面、甚至多層板才能滿足電路要求。在編輯印制板時,需要遵循下列原則:(1)晶振必須盡可能靠近CPU晶振引腳,且晶振電路下方不能走線,最好在晶振電路下方放置一個與地線相連的屏蔽層。4.印制電路板設計66(2)電源、地線要求。在雙面印制板上,電源線和地線應安排在不同的面上,且平行走線,這樣寄生電容將起濾波作用。對于功耗較大的數(shù)字電路芯片,如CPU、驅動器等應采用單點接地方式,即這類芯片電源、地線應單獨走線,并直接接到印制板電源、地線入口處。電源線和地線寬度盡可能大一些,或采用微帶走線方式。(3)模擬信號和數(shù)字信號不能共地,即采用單點接地方式。(4)在中低頻應用系統(tǒng)(晶振頻率小于20MHz)中,走線轉角可取45°;在高頻系統(tǒng)中,必要時可選擇圓角模式。盡量避免使用90°轉角。(2)電源、地線要求。在雙面印制板上,電源線67(5)對于輸入信號線,走線盡可能短,必要時在信號線兩側放置地線屏蔽,防止可能出現(xiàn)的干擾;不同信號線避免平行走線,上下兩面的信號線最好交叉走線,相互干擾可減到最小。(6)為減低系統(tǒng)功耗,對于未用TTL電路單元必須按如下方式處理:在印制板設計時,最容易忽略未用單元電路輸入端的處理(因為原理圖中沒有給出)。盡管它不影響電路的功能,但卻增加系統(tǒng)的功耗,尤其是當系統(tǒng)靠電池供電時,就更應該注意未用單元引腳的連接。在小規(guī)模TTL電路芯片中,同一芯片內(nèi)常含有多套電路。例如,在74LS00芯片中,就含有四套“2輸入與非門”。(5)對于輸入信號線,走線盡可能短,必要時688.1.3資源分配1.?I/O引腳資源分配單片機芯片各I/O引腳功能不完全相同,如部分引腳具有第二輸入/輸出功能;各I/O引腳輸出級電路結構不盡相同,如8XC5X的P0口采用漏極開路輸出方式,P1~P3口采用準雙向結構。此外,在87LPC76X系列中,P1.5引腳只能作為輸入引腳使用。因此,在分配I/O引腳時,需要認真對待。
例如,在8XC5X系統(tǒng)中,當外中斷不夠用時,可使用定時器T2溢出率作為串行口發(fā)送、接收波特率,此時P1.1引腳就可以作為下降沿觸發(fā)的外中斷源使用。又如,在P87LPC762/4中,當需要4根引腳作為直接編碼輸入鍵盤時,可考慮使用P0.3、P0.4、P0.5、P0.6引腳作為鍵盤輸入引腳,這樣基本保留了模擬比較器2的資源。8.1.3資源分配1.?I/O引腳資源分配692.程序存儲器資源分配片內(nèi)ROM存儲器用于存放程序和數(shù)據(jù)表格。按照MCS-51單片機的復位及中斷入口的規(guī)定,002FH以前的地址單元都作為中斷、復位入口地址區(qū)。在這些單元中一般都設置了轉移指令,轉移到相應的中斷服務程序或復位啟動程序。當程序存儲器中存放的功能程序及子程序數(shù)量較多時,應盡可能為它們設置入口地址表。一般的常數(shù)、表格集中設置表格區(qū)。二次開發(fā)擴展區(qū)應盡可能放在高位地址區(qū)。2.程序存儲器資源分配703.?RAM資源分配RAM分為片內(nèi)RAM和片外RAM。片外RAM的容量比較大,通常用來存放批量大的數(shù)據(jù),如采樣結果數(shù)據(jù);片內(nèi)RAM容量較少,盡可能重疊使用,如數(shù)據(jù)暫存區(qū)與顯示、打印緩沖區(qū)重疊。對于MCS-51單片機來說,片內(nèi)RAM是指00H~7FH單元,這128個單元的功能并不完全相同,分配時應注意發(fā)揮各自的特點,做到物盡其用。3.?RAM資源分配7100~1FH這32個字節(jié)可以作為工作寄存器組,在工作寄存器的8個單元中,R0和R1具有指針功能,是編程的重要角色,應充分發(fā)揮其作用。系統(tǒng)上電復位時,置PSW=00H,SP=07H,則RS1(PSW.4)、RS0(PSW.3)位均為0,CPU自動選擇工作寄存器組0作為當前工作寄存器,而工作寄存器組1為堆棧,并向工作寄存器組2、3延伸。例如,此時當CPU執(zhí)行諸如MOVR1,#2FH指令時,R1即是指01H單元。在中斷服務程序中,如果也要使用R1寄存器且不將原來的數(shù)據(jù)沖掉,則可在主程序中先將堆??臻g設置在其他位置,然后在進入中斷服務程序后選擇工作寄存器組1、2或3,這時若再執(zhí)行諸如MOVR1,#00H指令時,就不會沖掉R1(01H單元)中原來的內(nèi)容了,因為這時R1的地址已改變?yōu)?9H、11H或19H。在中斷服務程序結束時,可重新選擇工作寄存器組0。因此,通??稍趹贸绦蛑邪才胖鞒绦蚣捌湔{(diào)用的子程序使用工作寄存器組0,而安排定時器溢出中斷、外部中斷、串行口中斷使用工作寄存器組1、2或3。00~1FH這32個字節(jié)可以作為工作寄存器組7220H~2FH這16個字節(jié)具有位尋址功能,可用來存放各種軟件標志、邏輯變量、位輸入信息、位輸出信息副本、狀態(tài)變量、邏輯運算的中間結果等。當這些項目全部安排好后,保留一兩個字節(jié)備用,剩下的單元可改作其他用途。30H~7FH為一般通用寄存器,只能存入整字節(jié)信息。通常用來存放各種參數(shù)、指針、中間結果,或用作數(shù)據(jù)緩沖區(qū)。此外,也常將堆棧安放在片內(nèi)RAM的高端,如60H~7FH;設置堆棧區(qū)時應事先估算出子程序和中斷嵌套的級數(shù)以及程序中棧操作指令使用情況,其大小應留有余量。當系統(tǒng)中擴展了RAM,應把使用頻率最高的數(shù)據(jù)緩沖區(qū)安排在片內(nèi)RAM中,以提高處理速度。20H~2FH這16個字節(jié)具有位尋址功能,可738.2單片機開發(fā)工具及選擇8.2.1仿真器1.仿真器種類基于Bondout仿真技術的仿真器使用專門設計的仿真芯片,能真實地仿真某一特定廠家、系列的單片機芯片——不占用硬件資源、仿真頻率高。但這類仿真器的缺點是通用性差(某一專用的仿真芯片只能仿真某一系列的單片機CPU),價格高,開發(fā)設備更新?lián)Q代速度慢——新單片機CPU出現(xiàn)后,開發(fā)商才會根據(jù)市場需要來設計配套的仿真芯片。以前國內(nèi)開發(fā)的普及型MCS-51仿真器大多采用價格低廉、僅支持標準MCS-51系列的仿真芯片;而支持增強型MCS-51或更高檔次CPU的專用仿真芯片價格昂貴,一般用戶很難接受。8.2單片機開發(fā)工具及選擇8.2.1仿真器74HOOKS仿真技術由Philips公司開發(fā),該技術的核心是通過分時復用I/O引腳方式來重構MCS-51系列P0、P2口,使支持HOOKS技術的MCS-51芯片進入HOOKS仿真狀態(tài)后,通過硬件將復用的P0、P2口擴展為獨立的仿真總線及用戶P0、P2口。該方法的優(yōu)點是無須專用的仿真芯片,如用普通的51系列即可進行相同芯片(或硬件資源兼容芯片)仿真,因此成本低,只要實時加入新型CPU數(shù)據(jù)資料,換上相應CPU即可仿真新的CPU,仿真開發(fā)設備更新速度快,投入少。但HOOKS仿真器通過硬件、軟件模擬實際MCS-51系列芯片的P0、P2口,因此與實際CPU的P0、P2口尚有區(qū)別,另外仿真頻率也不能太高。HOOKS仿真技術由Philips公司開75目前國內(nèi)仿真器開發(fā)商通過授權、轉讓的方式從Philips公司引進了HOOKS仿真技術,開發(fā)了基于HOOKS仿真技術的仿真器,如廣州周立功單片機發(fā)展有限公司的TKS-HOOKS系列等。這些仿真器適應性廣,通過更改仿真頭內(nèi)的CPU芯片即可仿真不同系列的CPU。例如TKS-HOOKS系列內(nèi)的TKS-668仿真器,更換仿真頭內(nèi)的CPU后,可仿真Philips公司的P8XC5X、P8XC5XX2、P89C6XX2、P89C51RX、P89C66X等系列芯片。目前國內(nèi)仿真器開發(fā)商通過授權、轉讓的方式從P76此外,根據(jù)仿真器的適應性,可把仿真器分為專用仿真器和通用仿真器。專用仿真器只能仿真某一系列的CPU,如南京偉福公司的K51系列和E51系列仿真器只能仿真MCS-51及兼容芯片,專用仿真器最大特點是價格低廉。通用仿真器適應性強,更換不同的仿真頭,即可仿真不同種類的CPU,如南京偉福公司的E6000系列、E2000系列,更換不同仿真頭后即可仿真IntelMCS-51及兼容CPU、Philips公司增強型80C51內(nèi)核CPU(包括8XC5X系列、89C51RX系列、552系列、592系列、76X系列等)以及Microchip公司的PIC系列CPU。通用仿真器價格高,一次性投入較大,但與仿真器配套的各系列仿真頭價格較低,更重要的是可在同一仿真開發(fā)環(huán)境下使用,也是物有所值。此外,根據(jù)仿真器的適應性,可把仿真器分為專用772.仿真器的選擇(1)不占用硬件資源。一些低檔的MCS-51仿真器(仿真頭)只能將P0、P2口作為總線使用,不能作為I/O口使用。(2)隨機瀏覽、修改內(nèi)部RAM、特殊功能寄存器內(nèi)容。(3)瀏覽、編輯程序存儲器各存儲單元內(nèi)容。(4)隨機修改程序計數(shù)器PC的值。(5)瀏覽、修改外部RAM單元內(nèi)容。(6)具備連續(xù)、單步、跟蹤執(zhí)行功能,以方便程序的調(diào)試。(7)靈活、方便的斷點設置和取消功能。斷點數(shù)目最好沒有限制,以方便程序調(diào)試。2.仿真器的選擇(1)不占用硬件資源。一78(8)開發(fā)系統(tǒng)提供的匯編器(仿真開發(fā)軟件)必須具備如下功能:·源程序編輯操作方式與用戶熟悉的通用字處理軟件(如Word)相同或相近?!し奖?、靈活的查找和定位功能,以便迅速找到源程序中特定字符串(如標號、變量、操作碼或操作數(shù)助記符)。(9)匯編器(仿真開發(fā)軟件)應具備一定的容錯能力。由于MCS-51匯編指令助記符與IntelX86通用CPU相似,因此編輯源程序時,可能將MCS-51指令系統(tǒng)的“ANL”(與運算操作助記符)寫成“AND”,“ORL”(或運算操作助記符)寫成“OR”,“XRL”(異或運算操作助記符)寫成“XOR”;又如將“PUSHAcc”指令寫成“PUSHA”,“POPAcc”指令寫成“POPA”等。匯編程序應該能夠理解這樣的錯誤。(8)開發(fā)系統(tǒng)提供的匯編器(仿真開發(fā)軟件)必79(10)匯編器最好支持“過程匯編”偽指令,這對于程序設計、編寫將非常方便。采用過程偽指令后,過程內(nèi)的標號就可以分為兩類:公共標號和局部標號。公共標號在整個程序內(nèi)有效,而局部標號只在本過程內(nèi)有效,這樣不同子過程(實際上就是子程序)內(nèi)就能重復使用公共標號外的標號名,避免了因標號重定義造成的錯誤,也使不同過程內(nèi)的局部標號名含義明確。過程定義偽指令格式如下:PROC Sub1,Sub2,… ;其中PROC為過程定義偽指令,Sub1、 Sub2等是公共標號 Sub1: … ;過程內(nèi)指令(10)匯編器最好支持“過程匯編”偽指令,這80RET ;如果過程是子程序,則最后一條指令是返回指令RET;如果 ;過程是中斷服務程序,則最后一條指令是中斷返回指令RETIEND ;過程結束偽指令例如:;使P1.0引腳上生產(chǎn)100ms低電平和75ms高電平信號PROCPwavePwave: CRLP1.0;延遲100msMOVTIME,#10RET ;如果過程是子程序,則最后一條指令是返回指令RE81LOOP1:MOVX_TIME,#109MOVY_TIME,#45LCALLDELAY ;調(diào)用延遲子程序,延遲10msDJNZTIME,LOOP1SETBP1.0 ;延遲100ms后,將P1.0引腳置1MOVTIME,#75LOOP1:82LOOP2:MOVX_TIME,#96MOVY_TIME,#5LCALLDELAY ;每次延遲1ms,共要進行75次DJNZTIME,LOOP2RETEND;通用延遲子程序PROCDelayDelay:PUSHPSWCLRRS0SETBRS1 ;使用2區(qū)MOVR7,Y_TIME ;取延遲時間參數(shù)yLOOP2:83LOOP1:MOVR6,X_TIME ;取延遲時間參數(shù)xLOOP2:DJNZR6,LOOP2DJNZR7,LOOP1POPPSWRETEND(11)除了支持A51匯編語言外,最好支持C語言。LOOP1:(11)除了支持A51匯編語言外,最好支持C語848.2.2其他工具1.邏輯筆邏輯筆主要用于判別電路某點的電平狀態(tài)(高電平、低電平,還是脈沖),是數(shù)字電路系統(tǒng)常用的檢測工具。2.萬用表(數(shù)字或指針式)萬用表是最基本的電子測量工具,主要用于測量電路系統(tǒng)中各節(jié)點間電壓或各節(jié)點對地電壓,電路中兩點通斷,判別元器件的好壞。8.2.2其他工具853.通用編程器由于目前內(nèi)置OTPROM、FlashROM存儲器芯片的單片機CPU已成為主流芯片,程序調(diào)試結束后,需要在編程器上將調(diào)試好的程序代碼寫入CPU內(nèi)的程序存儲器中。4.?IC插座在單片機開發(fā)過程中,可能需要各種規(guī)格的IC插座。例如當遇到目標板上CPU插座周圍的元器件,如電解電容、晶振等太高,妨礙仿真頭插入時,可使用一兩塊IC插座抬高CPU插座,以方便仿真頭的插入。3.通用編程器868.3系統(tǒng)可靠性設計8.3.1硬件可靠性設計提高元器件的可靠性2.冗余與容錯設計3.采用抗干擾措施8.3系統(tǒng)可靠性設計8.3.1硬件可靠性設計提高元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)品,該電路具有上電使單片機自動復位,也允許人工隨時手動復位,自動監(jiān)視系統(tǒng)(掉電)等電源故障,程序跑飛使單片機自動復位的系統(tǒng)監(jiān)視功能。該電路監(jiān)視功能的具體實現(xiàn)說明如下:(1)電源故障監(jiān)視。當電源正常時,未穩(wěn)壓的直流電源電壓經(jīng)電阻R1和R2分壓,使電源故障輸入端PFI的電位大于1.25V?(內(nèi)部參考電壓),一旦電源發(fā)生故障,PFI的電位低于1.25V,則電源故障輸出PFO將從高電平變?yōu)榈碗娖?,從而引起單片機中斷,CPU響應中斷后可迅速執(zhí)行諸如保護重要數(shù)據(jù)、發(fā)出電源故障報警等工作。圖8-2中使用了一片MAX813L(70589(2)看門狗定時器??撮T狗電路監(jiān)視單片機的P1.0線,正常情況下,P1.0線不超過1.6s觸發(fā)一次。若在1.6s內(nèi)單片機不產(chǎn)生觸發(fā)信號,看門狗輸出端將變?yōu)榈碗娖?。由于與手動復位端(與TTL/CMOS兼容,可用外部邏輯線驅動)相連,當 低電平維持時間超過140ms,MAX813L(705/706)將復位,同時使看門狗清零和使變?yōu)楦唠娖?,這樣在MAX705/706/813L的復位信號維持200ms結束后,單片機脫離復位狀態(tài),開始恢復程序并正常運行。(2)看門狗定時器??撮T狗電路監(jiān)視單片機的P908.3.2系統(tǒng)自診斷技術1.?CPU診斷指令系統(tǒng)診斷:單片機執(zhí)行完一個包含有傳送指令、算術運算指令、邏輯運算指令、位傳送指令、位邏輯操作指令的程序后,累加器A中的數(shù)據(jù)應為預定值,否則就有問題。(1)片內(nèi)RAM診斷:可采用如下過程對片內(nèi)RAM每一個單元進行測試:讀出-備份-寫入-再讀出-與備份比較,若相同則重新寫入原單元,否則設置不正確標志,說明片內(nèi)RAM有問題。8.3.2系統(tǒng)自診斷技術1.?CP91(2)定時器及中斷診斷:用軟件延時來檢測定時的準確性,即定時器以定時方式運行,如能按時溢出,則置位溢出標志,否則延時時間到停止定時器計數(shù),無溢出,表明定時器有問題;利用定時中斷來檢測中斷系統(tǒng)是否有問題,即若允許定時中斷,并在中斷服務程序中作一件事通知自檢程序,則可以根據(jù)這件事是否發(fā)生來判斷中斷是否發(fā)生。注意:對于8031單片機,診斷程序放在片外ROM中,因此CPU診斷過程必須以三總線(包括地址鎖存器)沒有問題和EPROM中的診斷程序也正確為前提。(2)定時器及中斷診斷:用軟件延時來檢測定時922.?ROM診斷ROM診斷常用靜態(tài)測試法,在將系統(tǒng)程序及自檢程序固化到ROM中去的時候,先仔細計算其機器代碼的累加和,并取其結果的最低16位。在固化程序的同時,將上述累加結果一起固化到ROM特定單元中(一般是放在ROM的最后兩個地址單元中)。在對ROM進行檢查時,只需對固化在ROM的程序代碼計算累加和,并將結果與事先固化的內(nèi)容進行比較,從而判斷出ROM的完好性。2.?ROM診斷933.外部RAM診斷可采用與片內(nèi)RAM診斷相同的方法。此外,由于RAM的故障多數(shù)是以大片區(qū)域被破壞的形式出現(xiàn)的,因此也可采用RAM分段放置標志數(shù)的方法來判斷RAM區(qū)是否被破壞。3.外部RAM診斷944.?A/D、D/A轉換通道的診斷和校正在使用模擬電路的系統(tǒng)中,A/D轉換器芯片只有一片時,通常是用多路模擬開關(一些A/D轉換器自帶多路模擬開關)來切換各路輸入信號,實現(xiàn)分時采樣轉換。對A/D通道的診斷方法是在某一路模擬輸入端加上一個已知的模擬電壓,啟動A/D轉換后讀取轉換結果。如果等于預定值,則A/D通道正常,若有少許偏差,則說明A/D通道發(fā)生少許漂移,應求出校正系數(shù),供信號通道進行校正運算,如果偏差過大,則為故障現(xiàn)象。4.?A/D、D/A轉換通道的診斷和校正95解決零點漂移和增益校正的方法是將多路模擬開關的一個輸入端接信號公共點(模擬電壓為零伏),另一個輸入端接參考電源,然后分別啟動這兩路,讀取兩路A/D轉換結果并保存起來。零漂和增益校正的測定可以每隔一定時間進行一次,進行這種校正時測得的數(shù)據(jù)經(jīng)過如下計算就可以求得最終數(shù)據(jù)。解決零點漂移和增益校正的方法是將多路模擬開關的96其中:DS——校正后的數(shù)據(jù);DSN——測定信號得A/D轉換值;DOS——零點電壓的A/D轉換值;DFS——A/D轉換器滿量程值;DRE——參考電壓輸入的A/D轉換值。D/A通道診斷需借助A/D的一個輸入通道,在已經(jīng)進行過A/D診斷并獲知其正常后,將預定值送D/A轉換,D/A轉換后的模擬電壓通過分壓電阻接到A/D轉換的某個輸入端,啟動A/D轉換得到變換后的數(shù)字量。將D/A送出的數(shù)字量和讀入的A/D數(shù)字量進行比較,看兩者相差多少,從而可判斷D/A轉換器工作是否正常。其中:975.數(shù)字I/O通道診斷數(shù)字顯示功能的診斷:數(shù)碼管顯示裝置顯示的內(nèi)容有數(shù)字、小數(shù)點、符號、提示符等,自檢程序可將數(shù)碼管的所有筆劃段點亮(包括小數(shù)點),由操作者檢查數(shù)碼管是否缺段;也可以設置循環(huán)輸出全0到全9的數(shù)字,小數(shù)點在各位上循環(huán)顯示,以及顯示特定的提示信息,借以檢查數(shù)字I/O通道是否正常。鍵盤的診斷:當操作者按下某個鍵后,自檢程序可通過一個I/O口驅動蜂鳴器發(fā)聲或由數(shù)碼管顯示器顯示出某個數(shù)字及符號。當某鍵聽不到發(fā)聲或顯示錯誤,就可以判斷鍵盤系統(tǒng)出現(xiàn)故障。如果是某個鍵有問題,往往是接觸不良;如果是某排鍵有問題,一定是對應的鍵掃描電路有故障;若全部鍵無相應,則鍵盤掃描系統(tǒng)已癱瘓或監(jiān)控程序已癱瘓。5.數(shù)字I/O通道診斷988.3.3系統(tǒng)抗干擾性能1.單片機應用系統(tǒng)中的主要干擾源工業(yè)生產(chǎn)中的干擾一般都是以脈沖的形式進入單片機應用系統(tǒng)的,串入系統(tǒng)的干擾主要有三種來源,即場干擾,通過電磁波輻射串入系統(tǒng);輸入/輸出通道干擾,通過與主機相連的輸入/輸出通道及與其他主機相連的通道進入;供電系統(tǒng)干擾,從電源供電電路引入干擾。一般情況下場干擾在強度上遠小于其他兩個干擾源,而且場干擾可用良好的屏蔽與正確的接地、高頻濾波加以解決,因此單片機應用系統(tǒng)中重點防止輸入/輸出通道與供電系統(tǒng)的干擾。8.3.3系統(tǒng)抗干擾性能1.單片機應用系統(tǒng)992.硬件抗干擾措施1)輸入/輸出通道干擾的抑制措施輸入/輸出通道干擾的抑制通常采用隔離和濾波技術。常用的隔離器件有隔離變壓器、光電耦合器、繼電器和隔離放大器等,其中光電耦合器應用最為廣泛。在輸入和輸出通道中采用光電耦合器將單片機系統(tǒng)與各種傳感器、開關、執(zhí)行機構從電氣上隔離開來,很大一部分干擾將被阻擋。在模擬通道中使用光電耦合器隔離時,應保證被傳送信號的變化范圍始終在光電耦合
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年銅件設備項目投資價值分析報告
- 2025至2030年玩具禮品車項目投資價值分析報告
- 2025年高檔浸塑防滑衣架項目可行性研究報告
- 2024-2030年中國排版用活字行業(yè)市場深度研究及投資戰(zhàn)略規(guī)劃建議報告
- 四氟乙烷-五氟乙烷可行性研究報告
- 2025年度綠色住宅開發(fā)項目房地產(chǎn)代理合作協(xié)議
- 2025年度車展媒體合作與報道協(xié)議范本
- 2025年印刷品、記錄媒介復制品合作協(xié)議書
- 2025年中國翡翠工藝品行業(yè)發(fā)展?jié)摿Ψ治黾巴顿Y方向研究報告
- 《歸去來兮辭 并序》教學設計 2023-2024學年統(tǒng)編版高中語文選擇性必修下冊
- 2025年度光伏電站光伏組件回收處理合同示范文本
- 2025年春季少先隊工作計劃及安排表(附:少先隊每月工作安排表)
- 中央2025年公安部部分直屬事業(yè)單位招聘84人筆試歷年參考題庫附帶答案詳解
- 《教育強國建設規(guī)劃綱要(2024-2035年)》全文
- 體育老師籃球說課
- 浙江省金華市義烏市2024年中考語文二模試卷含答案
- 《真希望你也喜歡自己》房琪-讀書分享
- 2024-2025學年全國中學生天文知識競賽考試題庫(含答案)
- 小學科學湘科版六年級下冊全冊同步練習含答案
- 思維第一:全面提升學習力
- 《鐵路橋梁檢定評估工作規(guī)則》鐵運2004第42號
評論
0/150
提交評論