版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第11章80C51應(yīng)用系統(tǒng)設(shè)計(jì)方法11.1單片機(jī)應(yīng)用設(shè)計(jì)過程過程包括確定任務(wù)、總體設(shè)計(jì)、硬件設(shè)計(jì)、軟件設(shè)計(jì)、系統(tǒng)調(diào)試、產(chǎn)品化等幾個(gè)階段。但它們不是絕對分開的,有時(shí)是交叉進(jìn)行的或在幾個(gè)階段反復(fù)進(jìn)行。單片機(jī)應(yīng)用系統(tǒng)的技術(shù)要求各不相同,針對具體的任務(wù),設(shè)計(jì)方法和步驟也不完全相同。開發(fā)流程11.1.1確定系統(tǒng)的功能與性能由需求調(diào)查可以確定出單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)的目標(biāo),這一目標(biāo)包括系統(tǒng)功能和系統(tǒng)性能。系統(tǒng)功能主要有數(shù)據(jù)采集、數(shù)據(jù)處理、輸出控制等。系統(tǒng)性能主要由精度、功耗、可靠性、速度、體積、重量、價(jià)格等技術(shù)指標(biāo)來衡量。系統(tǒng)研制前,要根據(jù)需求調(diào)查結(jié)果給出的上述各指標(biāo)來衡量系統(tǒng)性能。11.1.2確定系統(tǒng)基本結(jié)構(gòu)1.單片機(jī)選型①單片機(jī)性價(jià)比。②開發(fā)周期。2.存儲空間分配3.I/O通道劃分4.I/O方式的確定5.軟、硬件功能劃分11.1.3單片機(jī)應(yīng)用系統(tǒng)硬件的設(shè)計(jì)原則1.硬件系統(tǒng)設(shè)計(jì)原則盡可能選擇典型通用的電路,并符合單片機(jī)的常規(guī)用法。擴(kuò)展與設(shè)備配置應(yīng)充分滿足當(dāng)前的功能要求,并留有適當(dāng)余地,便于以后擴(kuò)充。軟件能實(shí)現(xiàn)的功能盡可能由軟件實(shí)現(xiàn),但應(yīng)考慮系統(tǒng)響應(yīng)速度、實(shí)時(shí)要求等相關(guān)的技術(shù)指標(biāo)。整個(gè)系統(tǒng)中相關(guān)的器件要盡可能做到性能匹配??煽啃约翱垢蓴_設(shè)計(jì)包括芯片、器件選擇、去耦濾波,印刷電路板布線、通道隔離等。單片機(jī)外接電路較多時(shí),必須考慮其驅(qū)動(dòng)能力。2.應(yīng)用軟件設(shè)計(jì)的原則軟件結(jié)構(gòu)清晰、簡潔,流程合理。各功能程序?qū)崿F(xiàn)模塊化、系統(tǒng)化。程序存儲區(qū)、數(shù)據(jù)存儲區(qū)規(guī)劃合理。運(yùn)行狀態(tài)實(shí)現(xiàn)標(biāo)志化管理。經(jīng)過調(diào)試修改后的程序應(yīng)進(jìn)行規(guī)范化,除去修改“痕跡”。實(shí)現(xiàn)全面軟件抗干擾設(shè)計(jì)。設(shè)置自診斷程序。11.1.4硬件設(shè)計(jì)圍繞著單片機(jī)功能擴(kuò)展和外圍設(shè)備配置及其接口而展開的。程序存儲器數(shù)據(jù)存儲器I/O接口譯碼電路總線驅(qū)動(dòng)器抗干擾電路11.1.5軟件設(shè)計(jì)一個(gè)應(yīng)用系統(tǒng)中的軟件一般是由系統(tǒng)的監(jiān)控程序和應(yīng)用程序兩部分構(gòu)成的。應(yīng)用程序是用來完成諸如測量、計(jì)算、顯示、打印、輸出控制等各種實(shí)質(zhì)性功能的軟件。系統(tǒng)監(jiān)控程序是控制單片機(jī)系統(tǒng)按預(yù)定操作方式運(yùn)行的程序,它負(fù)責(zé)組織調(diào)度各應(yīng)用程序模塊,完成系統(tǒng)自檢、初始化、處理鍵盤命令、處理接口命令、處理?xiàng)l件觸發(fā)和顯示等功能。此外,監(jiān)控程序還用來監(jiān)視系統(tǒng)的運(yùn)行狀態(tài)。系統(tǒng)軟件設(shè)計(jì)時(shí),應(yīng)根據(jù)系統(tǒng)軟件功能要求,將系統(tǒng)軟件分成若干個(gè)相對獨(dú)立的部分,并根據(jù)它們之間的聯(lián)系和時(shí)間上的關(guān)系,設(shè)計(jì)出合理的軟件總體結(jié)構(gòu)。11.1.6資源分配一個(gè)單片機(jī)應(yīng)用系統(tǒng)所擁有的硬件資源分片內(nèi)和片外兩部分。片內(nèi)資源是指本身包括的中央處理器、程序存儲器、數(shù)據(jù)存儲器、定時(shí)器/計(jì)數(shù)器、中斷系統(tǒng)、I/O接口以及通信接口等。若片內(nèi)的這些硬件資源不夠使用,就需要在片外加以擴(kuò)展,通過系統(tǒng)擴(kuò)展,單片機(jī)應(yīng)用系統(tǒng)具有了更多的硬件資源,因而有了更強(qiáng)的功能。1.ROM/EPROM資源的分配2.RAM資源的分配11.1.7單片機(jī)應(yīng)用系統(tǒng)的開發(fā)1.單片機(jī)應(yīng)用系統(tǒng)的仿真在線仿真器應(yīng)具備的功能有:①能輸入和修改應(yīng)用程序;②能對用戶系統(tǒng)硬件電路進(jìn)行檢查與診斷;③將程序代碼編譯為目標(biāo)碼并固化或下載到系統(tǒng)中;④能以單步、斷點(diǎn)和連續(xù)方式運(yùn)行程序,正確反映用戶程序執(zhí)行的中間結(jié)果;⑤最好不占用用戶單片機(jī)資源;⑥提供足夠的仿真RAM空間作為用戶的程序存儲器,并提供足夠的RAM空間作為用戶數(shù)據(jù)存儲器;⑦齊全的軟件開發(fā)工具,如交叉匯編、連接、固化和下載,甚至反編譯等。系統(tǒng)仿真調(diào)試的目的是檢測并排除故障,檢測并修正模塊化軟件。對于一些小系統(tǒng),也可以不使用專門的仿真器,而是直接采用寫入裝置,將目標(biāo)代碼寫入到系統(tǒng)的程序存儲器中。如果采用具有Flash存儲器和支持ISP的單片機(jī)芯片,甚至只需要一個(gè)編程/下載電纜,利用專門的下載軟件,就可以通過ISP插座將目標(biāo)代碼下載到具有Flash存儲器的單片機(jī)芯片中,然后通過直接運(yùn)行判斷硬件/軟件的正確性。2.單片機(jī)應(yīng)用系統(tǒng)的制版3.單片機(jī)應(yīng)用系統(tǒng)的調(diào)試(1)靜態(tài)硬件調(diào)試①電路板質(zhì)量檢查,并確保沒有任何制造方面的錯(cuò)誤,如短路和斷路,尤其要避免電源短路;②元器件在安裝前要逐一檢查;③焊接后,應(yīng)先空載上電(芯片座上不插芯片),并檢查各引腳的電位是否正確。若一切正常,方可在斷電的情況下將芯片插入,再次檢查各引腳的電位及邏輯關(guān)系。(2)系統(tǒng)的調(diào)試可采用監(jiān)控命令法和程序調(diào)試法兩種,調(diào)試的內(nèi)容包括以下幾方面:①外部數(shù)據(jù)存儲器RAM的調(diào)試;②程序存儲器的調(diào)試;③輸出功能模塊的調(diào)試;④I/O接口芯片的調(diào)試;⑤外部中斷與定時(shí)器的調(diào)試;⑥鍵盤的調(diào)試;⑦顯示器的調(diào)試;⑧A/D和D/A的調(diào)試;⑨串行通信口的調(diào)試。4.單片機(jī)應(yīng)用系統(tǒng)的編程、下載與運(yùn)行①應(yīng)用程序編程??刹捎枚喾N形式編寫應(yīng)用程序的源程序,如采用文本編寫器、KeilC等②源程序的匯編??刹捎镁幾g程序和交叉編譯程序進(jìn)行匯編。③目標(biāo)文件的下載與運(yùn)行。④經(jīng)現(xiàn)場反復(fù)綜合驗(yàn)證沒問題后,將原理圖、PCB圖、程序等生成最終的生產(chǎn)或發(fā)行版本,去除各類調(diào)試痕跡。11.2提高系統(tǒng)可靠性的一般方法11.2.1電源干擾及其抑制1.交流電源干擾及其抑制
持續(xù)時(shí)間:幾毫秒幅度約在50V~4000V使系統(tǒng)的程序“跑飛”
抑制措施:(1)系統(tǒng)盡量遠(yuǎn)離干擾源。(2)采用電源濾波器,濾波器是按頻譜均衡原理設(shè)計(jì)的一種無源四端網(wǎng)絡(luò)。(3)采用交流穩(wěn)壓器,防止電源的過電壓和欠電壓。(4)采用1∶1隔離變壓器,防止干擾通過初次級間的電容效應(yīng)進(jìn)入單片機(jī)供電系統(tǒng)2.直流電源抗干擾措施
采用高質(zhì)量集成穩(wěn)壓電路單獨(dú)供電采用直流開關(guān)電源采用DC-DC變換器11.2.2地線干擾及其抑制一點(diǎn)接地和多點(diǎn)接地的應(yīng)用
頻率小于1MHz時(shí),采用一點(diǎn)接地;頻率高于10MHz時(shí),采用多點(diǎn)接地;頻率處于1~10MHz之間時(shí),若采用一點(diǎn)接地,其地線長度不應(yīng)超過波長的1/20。否則,應(yīng)采用多點(diǎn)接地。
數(shù)字地與模擬地的連接原則
數(shù)字地和模擬地應(yīng)分別接地。即使是一個(gè)芯片上有兩種地,也要分別接地,然后在一點(diǎn)處把兩種地連接起來。
印刷電路板的地線分布原則
TTL、CMOS器件的接地線要呈輻射網(wǎng)狀,避免環(huán)形;板上地線的寬度要根據(jù)通過的電流大小而定,最好不小于3mm。在可能的情況下,地線盡量加寬;旁路電容的地線不要太長;功率地通過電流信號較大,地線應(yīng)較寬,必須與小信號地分開。信號電纜屏蔽層的接地
雙絞線具有抑制電磁干擾的作用,屏蔽線具有抑制靜電磁感應(yīng)干擾的作用。對于屏蔽線,屏蔽層最佳的接地點(diǎn)是在信號源測(一點(diǎn)接地)。11.2.3其他提高系統(tǒng)可靠性的方法硬件抗干擾設(shè)計(jì)選擇抗干擾性能強(qiáng)的CPU數(shù)字量的光電隔離模擬量的光電隔離模擬量的通訊傳輸獨(dú)立的硬件“看門狗”采用RS232電平傳輸采用RS422/RS485電平傳輸單片機(jī)軟件抗干擾主要任務(wù):①消除模擬輸入信號的噪聲;②程序運(yùn)行混亂時(shí)使程序進(jìn)入正軌。主要方法:
(1)指令冗余技術(shù):通常是在雙字節(jié)指令和三字節(jié)指令后插入兩個(gè)字節(jié)以上的NOP。
當(dāng)“亂飛”程序進(jìn)入非程序區(qū),冗余指令便無法起作用。通常還可以采用軟件鎖設(shè)計(jì)、程序陷阱設(shè)計(jì)。這一類方法主要是針對程序跑飛的情況而采用的。當(dāng)系統(tǒng)在干擾信號的作用下發(fā)生程序跑飛時(shí),程序指針有可能指向兩個(gè)區(qū)域:一種可能正好轉(zhuǎn)到程序區(qū)的其他地址進(jìn)行執(zhí)行;另一種可能轉(zhuǎn)移到程序空間的盲區(qū)進(jìn)行執(zhí)行。所謂盲區(qū),就是說那里并沒有存放有效的程序指令。對于第一種情況,可以采取軟件鎖加以抑制。例如,為保證對外操作的安全,在軟件鎖設(shè)計(jì)中,對于每一個(gè)相對獨(dú)立的程序塊在其執(zhí)行以前或執(zhí)行中對一個(gè)預(yù)先設(shè)定好的密碼進(jìn)行校驗(yàn),只有當(dāng)這一密碼相符時(shí)執(zhí)行才真正有效,也只有程序是通過正常的轉(zhuǎn)移途徑轉(zhuǎn)移過來時(shí),才會由上一級的程序設(shè)定正確的密碼;否則,會根據(jù)校驗(yàn)錯(cuò)而使程序強(qiáng)制發(fā)生轉(zhuǎn)移,錯(cuò)誤狀態(tài)得到處理,并恢復(fù)程序的正常運(yùn)行狀態(tài)。SPRO1: PUSHACCMOVA,#N-CODE1CJNEA,SAFE-CODE,ERROR1POPACC… ;塊處理程序部分(此處省略)MOVSAFE-CODE,#N-CODE2SJMPSPRO2ERROR1:POPACC
… ;錯(cuò)誤處理程序部分(此處省略)SPRO2: PUSHACCMOVA,#N-CODE2 CJNEA,SAFE-CODE,ERROR2 POP ACC
… ;塊處理程序部分(此處省略)MOV SAFE-CODE,#S-CODE3SJMPSPRO3ERROR2:POPACC… ;錯(cuò)誤處理程序部分(此處省略)SPRO3: PUSHACCMOV A,#N-CODE3CJNEA,SAFE-CODE,ERROR3POP ACC
… ;塊處理程序部分(此處省略)MOV SAFE-CODE,#N-CODE4SJMPSPRO4ERROR3:POPACC
… ;錯(cuò)誤處理程序部分(此處省略)軟件陷阱是指用來將捕獲的“亂飛”程序引向復(fù)位入口地址(一般為0000H)的指令。通過設(shè)置軟件陷阱,攔截“亂飛”程序,將其引向指定位置,再進(jìn)行出錯(cuò)處理。這主要是為了防止程序跑飛到程序盲區(qū)進(jìn)行執(zhí)行。一般情況下,對于程序代碼空間以外的ROM空間的處理是采用空置的方法。固化程序時(shí),這些空置空間被全寫為1或全寫為0,這樣程序跳入這一區(qū)域?qū)⒉豢煽?。為了捕獲跳入此區(qū)的程序,可以采用程序陷阱來予以實(shí)現(xiàn)。例:假設(shè)某系統(tǒng)程序空間為32KB,程序編譯后共生成18KB的代碼,那么,還有14KB的程序空間未被使用,可以在該區(qū)域放置下面的陷阱程序:NULL-PRO: NOPNOP…LJMP0000H…NOP指令放置的越多捕獲的成功率就越高,但花費(fèi)的時(shí)間就越長,程序失控的時(shí)間也越長。
在用戶程序區(qū)各模塊之間的空余單元也可填入陷阱指令。當(dāng)使用的中斷因干擾而開放時(shí),在對應(yīng)的中斷服務(wù)程序中設(shè)置軟件陷阱,能及時(shí)捕獲錯(cuò)誤的中斷。如某應(yīng)用系統(tǒng)雖未用到外部中斷1,外部中斷1的中斷服務(wù)程序可為如下形式:NOPNOPRETI返回指令可用RETI,也可用LJMP0000H。如果故障診斷程序與系統(tǒng)自恢復(fù)程序的設(shè)計(jì)可靠、完善,用LJMP0000H作返回指令可直接進(jìn)入故障診斷程序,盡早地處理故障并恢復(fù)程序的運(yùn)行。考慮到程序存儲器的容量,軟件陷阱一般1KB空間有2~3個(gè)就可以進(jìn)行有效攔截。(3)軟件“看門狗”技術(shù)也叫作程序運(yùn)行監(jiān)視系統(tǒng),當(dāng)程序運(yùn)行受到干擾,程序飛到一個(gè)臨時(shí)構(gòu)成的死循環(huán)中時(shí),系統(tǒng)將完全癱瘓,軟件陷阱也無能為力了,這時(shí)就需要人工復(fù)位或硬件復(fù)位;如果沒有人工操作和硬件復(fù)位系統(tǒng),采用軟件看門狗技術(shù)同樣也能使系統(tǒng)復(fù)位,恢復(fù)正常。軟件看門狗的特性如下:
①本身獨(dú)立工作,基本上不依賴CPU;②CPU在一個(gè)固定的時(shí)間間隔內(nèi)和系統(tǒng)打一次交道,以表明系統(tǒng)目前工作正常;③當(dāng)CPU陷入死循環(huán)后,能及時(shí)發(fā)覺并使系統(tǒng)復(fù)位。若失控的程序進(jìn)入“死循環(huán)”,通常采用“看門狗”技術(shù)使程序脫離“死循環(huán)”。通過不斷檢測程序循環(huán)運(yùn)行時(shí)間,若發(fā)現(xiàn)程序循環(huán)時(shí)間超過最大循環(huán)運(yùn)行時(shí)間,則認(rèn)為系統(tǒng)陷入“死循環(huán)”,需進(jìn)行出錯(cuò)處理?!翱撮T狗”技術(shù)可由硬件實(shí)現(xiàn),也可由軟件實(shí)現(xiàn)。在工業(yè)應(yīng)用中,嚴(yán)重的干擾有時(shí)會破壞中斷方式控制,關(guān)閉中斷。則系統(tǒng)無法定時(shí)“喂狗”,硬件“看門狗”電路失效,而軟件“看門狗”可有效地解決這類問題。實(shí)際應(yīng)用中,可采用環(huán)形中斷監(jiān)視系統(tǒng):用定時(shí)器T0監(jiān)視定時(shí)器T1,用定時(shí)器T1監(jiān)視主程序,主程序監(jiān)視定時(shí)器T0。采用這種環(huán)形結(jié)構(gòu)的軟件“看門狗”具有良好的抗干擾性能,大大提高了系統(tǒng)可靠性。對于需經(jīng)常使用T1定時(shí)器進(jìn)行串口通信的測控系統(tǒng),則定時(shí)器T1不能進(jìn)行中斷,可改由串口中斷進(jìn)行監(jiān)控(如果用的是MCS-52單片機(jī),也可用T2代替T1進(jìn)行監(jiān)視)。
監(jiān)視原理:
在主程序、T0中斷服務(wù)程序、T1中斷服務(wù)程序中各設(shè)一運(yùn)行觀測變量,假設(shè)為MWatch、T0Watch、T1Watch,主程序每循環(huán)一次,MWatch加1,同樣T0、T1中斷服務(wù)程序執(zhí)行一次,T0Watch、T1Watch加1。在T0中斷服務(wù)程序中通過檢測T1Watch的變化情況判定T1運(yùn)行是否正常,在T1中斷服務(wù)程序中檢測MWatch的變化情況判定主程序是否正常運(yùn)行,在主程序中通過檢測T0Watch的變化情況判別T0是否正常工作。若檢測到某觀測變量變化不正常,比如應(yīng)當(dāng)加1而未加1,則轉(zhuǎn)到出錯(cuò)處理程序作排除故障處理。當(dāng)然,對主程序最大循環(huán)周期、定時(shí)器T0和T1定時(shí)周期應(yīng)予以全盤合理考慮。當(dāng)程序陷入死循環(huán)后,定時(shí)器溢出,產(chǎn)生高優(yōu)先級中斷,從而跳出死循環(huán)。還可以在定時(shí)器中斷服務(wù)程序中放置一條LJMP
ERR指令,即可使程序轉(zhuǎn)向出錯(cuò)處理程序;由出錯(cuò)程序來完成以后的工作,并用軟件的方法使系統(tǒng)復(fù)位。用定時(shí)/計(jì)數(shù)器T0作軟件看門狗的完整程序:ORG0000H
AJMPMAIN
ORG 000BH
LJMPERR
MAIN: MOV SP,#60H
MOV PSW,#00H
MOV SCON,#00H
MOV TMOD,#01H ;設(shè)置T0為16位定時(shí)器
SETBET0
;允許T0中斷
SETBPT0
;設(shè)置T0中斷為高級中斷
MOV TL0,#00H ;設(shè)定T0的定時(shí)初值,定時(shí)時(shí)間約為16ms(6MHz晶振)
MOV TH0,#0B0H
SETBEA
;開中斷
SETBTR0
;啟動(dòng)T0LOOP: …
;主程序開始
LCALLWATCHDOG
;調(diào)用喂狗子程序
…
LJMPLOOP
WATCHDOG:MOV TL0,#00H ;喂狗子程序
MOV TH0,#0B0H
SETBTR0
RET
ERR: POP ACC
;定時(shí)器中斷
POP ACC
;看門狗軟件復(fù)位程序
CLR A
PUSHACC
PUSHACC
RETI
在程序中,由于執(zhí)行了中斷服務(wù)程序,PC的指針已經(jīng)指向0000H,從而實(shí)現(xiàn)了軟件復(fù)位的目的。(4)系統(tǒng)故障處理、自恢復(fù)程序的設(shè)計(jì)單片機(jī)系統(tǒng)因干擾復(fù)位或掉電后復(fù)位均屬非正常復(fù)位,應(yīng)進(jìn)行故障診斷并能自動(dòng)恢復(fù)非正常復(fù)位前的狀態(tài)。程序的執(zhí)行總是從0000H開始,導(dǎo)致程序從0000H開始執(zhí)行有4種可能:系統(tǒng)開機(jī)上電復(fù)位;軟件故障復(fù)位;看門狗超時(shí)未喂狗硬件復(fù)位;任務(wù)正在執(zhí)行中掉電后來電復(fù)位。4種情況中除第一種情況外均屬非正常復(fù)位,需加以識別。①硬件復(fù)位與軟件復(fù)位的識別硬件復(fù)位指開機(jī)復(fù)位與看門狗復(fù)位,硬件復(fù)位對寄存器有影響,如復(fù)位后PC=0000H,SP=07H,PSW=00H等;而軟件復(fù)位則對SP、PSW無影響。故對于微機(jī)測控系統(tǒng),當(dāng)程序正常運(yùn)行時(shí),將SP設(shè)置地址大于07H,或者將PSW的第5位用戶標(biāo)志位在系統(tǒng)正常運(yùn)行時(shí)設(shè)為1。那么系統(tǒng)復(fù)位時(shí)只需檢測PSW.5標(biāo)志位或SP值便可判此是否硬件復(fù)位。
此外,由于硬件復(fù)位時(shí)片內(nèi)RAM狀態(tài)是隨機(jī)的,而軟件復(fù)位片內(nèi)RAM則可保持復(fù)位前狀態(tài),因此可選取片內(nèi)某一個(gè)或兩個(gè)單元作為上電標(biāo)志。設(shè)40H用來作上電標(biāo)志,上電標(biāo)志字為78H,若系統(tǒng)復(fù)位后40H單元內(nèi)容不等于78H,則認(rèn)為是硬件復(fù)位,否則認(rèn)為是軟件復(fù)位,轉(zhuǎn)向出錯(cuò)處理。若用兩個(gè)單元作上電標(biāo)志,則這種判別方法的可靠性更高。硬、軟件復(fù)位識別流程②開機(jī)復(fù)位與看門狗故障復(fù)位的識別開機(jī)復(fù)位與看門狗故障復(fù)位因同屬硬件復(fù)位,所以要想予以正確識別,一般要借助非易失性RAM或者E2PROM。當(dāng)系統(tǒng)正常運(yùn)行時(shí),設(shè)置一可掉電保護(hù)的觀測單元。當(dāng)系統(tǒng)正常運(yùn)行時(shí),在定時(shí)喂狗的中斷服務(wù)程序中使該觀測單元保持正常值(設(shè)為AAH),而在主程中將該單元清零,因觀測單元掉電可保護(hù),則開機(jī)時(shí)通過檢測該單元是否為正常值可判斷是否看門狗復(fù)位。③正常開機(jī)復(fù)位與非正常開機(jī)復(fù)位的識別
將控制過程分解為若干步或若干時(shí)間段,每執(zhí)行完一步或每運(yùn)行一個(gè)時(shí)間段則對監(jiān)測單元置為關(guān)機(jī)允許值,不同的任務(wù)或任務(wù)的不同階段有不同的值,若系統(tǒng)正在進(jìn)行測控任務(wù)或正在執(zhí)行某時(shí)間段,則將監(jiān)測單元置為非正常關(guān)機(jī)值。那么系統(tǒng)復(fù)位后可據(jù)此單元判別系統(tǒng)原來的運(yùn)行狀態(tài),并跳到出錯(cuò)處理程序中恢復(fù)系統(tǒng)原運(yùn)行狀態(tài)。④非正常復(fù)位后系統(tǒng)自恢復(fù)運(yùn)行的程序設(shè)計(jì)對順序要求嚴(yán)格的一些過程控制系統(tǒng),系統(tǒng)非正常復(fù)位與否,一般都要求從失控的那一個(gè)模塊或任務(wù)恢復(fù)運(yùn)行。所以測控系統(tǒng)要做好重要數(shù)據(jù)單元、參數(shù)的備份,這些數(shù)據(jù)既要定時(shí)備份,同時(shí)若有修改也應(yīng)立即予以備份。當(dāng)在已判別出系統(tǒng)非正常復(fù)位的情況下,先要恢復(fù)一些必要的系統(tǒng)數(shù)據(jù),如顯示模塊的初始化、片外擴(kuò)展芯片的初始化等。其次再對測控系統(tǒng)的系統(tǒng)狀態(tài)、運(yùn)行參數(shù)等予以恢復(fù),包括顯示界面等的恢復(fù)。之后再把復(fù)位前的任務(wù)、參數(shù)、運(yùn)行時(shí)間等恢復(fù),再進(jìn)入系統(tǒng)運(yùn)行狀態(tài)。應(yīng)當(dāng)說明:真實(shí)地恢復(fù)系統(tǒng)的運(yùn)行狀態(tài)需要極為細(xì)致地對系統(tǒng)的重要數(shù)據(jù)予以備份,并加以數(shù)據(jù)可靠性檢查,以保證恢復(fù)的數(shù)據(jù)的可靠性。其次,對多任務(wù)、多進(jìn)程測控系統(tǒng),數(shù)據(jù)的恢復(fù)需考慮恢復(fù)的次序問題。
恢復(fù)系統(tǒng)基本數(shù)據(jù)是指取出備份的數(shù)據(jù)覆蓋當(dāng)前的系統(tǒng)數(shù)據(jù)。系統(tǒng)基本初始化是指對芯片、顯示、輸入/輸出方式等進(jìn)行初始化,要注意輸入/輸出的初始化不應(yīng)造成誤動(dòng)作。而復(fù)位前任務(wù)的初始化是指任務(wù)的執(zhí)行狀態(tài)、運(yùn)行時(shí)間等。系統(tǒng)自恢復(fù)程序流程
3.采用備份系統(tǒng)提高可靠性
備份系統(tǒng)可根據(jù)具體的情況分為在線備份系統(tǒng)和后備備份系統(tǒng)。對于在線備份系統(tǒng),系統(tǒng)中的兩個(gè)CPU均處于工作狀態(tài),有可能兩個(gè)CPU處在對等的位置,也可能一個(gè)處在主CPU的位置,而另一個(gè)處在從CPU的位置。在對等的情況下,兩個(gè)CPU共同決定系統(tǒng)對外的操作,任何一個(gè)CPU出錯(cuò)都將引起對外操作的禁止。對于一主一從的情況,往往是主CPU負(fù)責(zé)系統(tǒng)控制邏輯的實(shí)現(xiàn),而從CPU負(fù)責(zé)對主CPU的工作狀態(tài)進(jìn)行監(jiān)控。當(dāng)監(jiān)控到主CPU工作異常時(shí),從CPU通過強(qiáng)行復(fù)位主CPU等操作使主CPU恢復(fù)正常,同時(shí),為確保從CPU工作正常,從CPU的工作狀態(tài)也被主CPU監(jiān)控;當(dāng)從CPU的工作狀態(tài)不正常時(shí),主CPU也可采取措施使從CPU恢復(fù)正常工作,即實(shí)現(xiàn)互相監(jiān)控的目的。在具體的設(shè)計(jì)中,主從CPU進(jìn)行信息交換的途徑非常靈活、多樣。例如,采用公用的存儲器來實(shí)現(xiàn)監(jiān)控信息的交換(如把公用信息存入雙口RAM),采用握手信號的方法實(shí)現(xiàn)監(jiān)控信息的交換等。11.3設(shè)計(jì)與制作實(shí)例
11.3.1單片機(jī)興趣實(shí)驗(yàn)板設(shè)計(jì)與制作1.設(shè)計(jì)任務(wù)
針對單片機(jī)初、中級學(xué)習(xí)者,提供一個(gè)幫助用戶快速開始單片機(jī)學(xué)習(xí)之旅的硬件平臺。本單片機(jī)學(xué)習(xí)板能進(jìn)行單片機(jī)基本資源實(shí)驗(yàn),如定時(shí)/計(jì)數(shù)器、中斷、I/O口輸入輸出、按鍵、流程燈、數(shù)碼管顯示、蜂鳴器等等。2.總體設(shè)計(jì)方案系統(tǒng)主要由單片機(jī)、按鍵、數(shù)碼顯示、蜂鳴器、LED顯示、USB-RS232轉(zhuǎn)換電路組成。特點(diǎn):單片機(jī)支持ISP下載,采用DIP40的IC鎖緊座,可隨時(shí)更換DIP40封裝的MCS-51單片機(jī);
4個(gè)獨(dú)立按鍵;
14個(gè)由I/O口控制的LED燈;
1個(gè)8段數(shù)碼管;蜂鳴器;含USBRS-232轉(zhuǎn)換電路,可直接由USB線進(jìn)行ISP程序下載;
I/O全部引出,便于擴(kuò)展;直接用USB線供電。單片機(jī):STC90C51系列,89C51的升級版,無法解密、低功耗、高速、高可靠、強(qiáng)抗靜電、強(qiáng)抗干擾等,內(nèi)部有256~4352字節(jié)的SRAM、4~61KB的內(nèi)部Flash、除P0~P3口外還多P4口(PLCC封裝),片內(nèi)自帶8路8位A/D(AD系列)、E2PROM、看門狗、雙倍速、雙數(shù)據(jù)、內(nèi)置復(fù)位等。支持ISP、IAP,可以通過單片機(jī)串口直接下載程序。USB-RS232接口:CH341USB總線的轉(zhuǎn)接芯片,通過USB總線提供串口、打印口或者并口。該實(shí)驗(yàn)板只需一根USB線結(jié)合STC公司的ISP軟件,即可實(shí)現(xiàn)PC與單片機(jī)串口通信及下載單片機(jī)程序功能。3.硬件設(shè)計(jì)
系統(tǒng)的硬件電路包括主機(jī)、USB轉(zhuǎn)串口電路、按鍵、蜂鳴器、顯示及I/O擴(kuò)展6個(gè)部分。
系統(tǒng)資源:1個(gè)共陽極數(shù)碼管1個(gè)無源蜂鳴器4個(gè)按鍵14個(gè)發(fā)光二極管串口轉(zhuǎn)USB接口I/O口全部引出直接由USB供電支持Atmel、SST、NXP等100多種目前最流行的51單片機(jī)支持串口燒寫的單片機(jī)(如STC公司的MCU),可通過USB線燒寫程序(ISP功能)除單片機(jī)串行口外,單片機(jī)的所有I/O均通過短線帽連接,這樣方便擴(kuò)展外接硬件4.軟件設(shè)計(jì)
IO口輸入、輸出實(shí)驗(yàn)定時(shí)計(jì)數(shù)器實(shí)驗(yàn)串行口通訊實(shí)驗(yàn)中斷實(shí)驗(yàn)八段數(shù)碼管顯示實(shí)驗(yàn)按鍵控制實(shí)驗(yàn)LED實(shí)驗(yàn)蜂鳴器實(shí)驗(yàn)蜂鳴器音樂實(shí)驗(yàn)實(shí)驗(yàn)流水燈/花樣燈/跑馬燈實(shí)驗(yàn)可進(jìn)行的實(shí)驗(yàn)項(xiàng)目學(xué)習(xí)板測試程序流程圖11.3.2新型單片機(jī)接口技術(shù)實(shí)驗(yàn)系統(tǒng)設(shè)計(jì)與制作1.設(shè)計(jì)任務(wù)
設(shè)計(jì)一款有豐富的實(shí)驗(yàn)硬件資源和接口的單片機(jī)綜合接口技術(shù)實(shí)驗(yàn)系統(tǒng),各個(gè)功能模塊各自獨(dú)立,并對外全部開放I/O口,默認(rèn)電路可簡單地使用短路帽連接即可,也可用戶自由用杜邦線搭建自己的電路.接口技術(shù)實(shí)驗(yàn)板結(jié)構(gòu)框圖2.硬件設(shè)計(jì)
(1)單片機(jī)電路單片機(jī)座采用IC鎖緊座單片機(jī)接口全部引出(2)電源電路電源輸入方式有多種,通過JP10及PWR1進(jìn)行切換,可直接由DC+5V或DC+9V~+12V的電源適配器輸入(J2),也可直接由USB線提供,同時(shí)還可以向外提供DC+5V輸出。(3)USB-串口轉(zhuǎn)換電路CH341T是USB總線的轉(zhuǎn)接芯片,通過USB總線提供串口、打印口或者并口。只需一根USB線結(jié)合STC公司的ISP軟件,即可實(shí)現(xiàn)PC與單片機(jī)串口通信及下載單片機(jī)程序功能??赏ㄟ^USB直接給實(shí)驗(yàn)板供電。(4)數(shù)碼管和LED顯示電路由8個(gè)八段數(shù)碼管和16個(gè)LED組成,可以完成數(shù)碼管掃描、流水燈等。(5)鍵盤電路8個(gè)獨(dú)立鍵盤,兼顧普通I/O口及中斷識別按鍵的方式;4×4矩陣鍵盤(6)A/D及D/A轉(zhuǎn)換電路PCF8591:I2C總線接口,單電源、低功耗8位COMS型A/D、D/A轉(zhuǎn)換芯片,具有4路模擬量輸入通道、一路模擬量輸出通道。本設(shè)計(jì)中,PCF8591的4個(gè)A/D輸入通道,其中AIN0與電位器VR1相連用于測量電位器的輸出電壓,AIN1、AIN2和AIN3可測量通過JP2輸入不大于5V的外接電壓;輸出通道AOUT通過短路帽接有一個(gè)LED,可以由AOUT輸出模擬電壓控制該LED的亮度,也可由JP4輸出到外接擴(kuò)展設(shè)備中。(7)串并轉(zhuǎn)換電路采用74HC164芯片實(shí)現(xiàn)串口轉(zhuǎn)并口功能,將J13用短路帽接上,則由單片機(jī)串口發(fā)送數(shù)據(jù),點(diǎn)亮或熄滅74HC164的輸出端所連接的8個(gè)發(fā)光二極管D18~D25;同樣,也可將J14用短路帽接上,則可由串口讀回74HC165輸入端所連接的8位撥碼開關(guān)S27的狀態(tài)。串-并轉(zhuǎn)換電路74HC164串轉(zhuǎn)并,74HC165并轉(zhuǎn)串(8)紅外傳感器電路系統(tǒng)集成有一路一體化紅外接收頭T1838,接收遙控發(fā)射器所發(fā)射的信號,并負(fù)責(zé)紅外遙控信號的解調(diào),并將解調(diào)信號送單片機(jī)的P3.2,既可使用中斷方式也可使用查詢方式來編程。(9)溫度傳感器電路
DS18B20,單總線(1-Wire)數(shù)字化溫度傳感器。測溫范圍為-55~125℃;轉(zhuǎn)換精度為9~12位(包括符號位);測溫分辨率:9位精度為0.5℃,12位精度為0.0625℃;轉(zhuǎn)換時(shí)間:9位精度為93.75ms,12位精度為750ms;除此以外,DS18B20還具有非易失性,上、下報(bào)警設(shè)定功能。溫度傳感器電路(10)步進(jìn)電機(jī)驅(qū)動(dòng)電路采用ULN2003芯片作為步進(jìn)電機(jī)的驅(qū)動(dòng)。
(11)其他電路還有24C04存儲器擴(kuò)展、蜂鳴器、液晶顯示接口等電路。24C04、蜂鳴器接口電路圖3.軟件設(shè)計(jì)
上電測試流程
LED閃爍、流水燈、跑馬燈蜂鳴器控制實(shí)驗(yàn)數(shù)碼管顯示0-7位獨(dú)立按鍵/矩陣按鍵識別外部中斷實(shí)驗(yàn)1602/12864LCD顯示RS232串口通訊A/D、D/A轉(zhuǎn)換實(shí)驗(yàn)
DS18B20溫度檢測與控制實(shí)驗(yàn)……可進(jìn)行的實(shí)驗(yàn)項(xiàng)目11.3.3用DS18B20溫度傳感器進(jìn)行溫度測量1.設(shè)計(jì)任務(wù)測溫范圍為-55°C-+125°C,在
-10-+85°C范圍內(nèi),測溫精度為±0.5°C,2位溫度顯示??傮w設(shè)計(jì)方案單片機(jī):STC89C51溫度傳感器:DS18B20
“1-Wire”接口3V~5.5V的電壓范圍
測溫范圍-55℃~+125℃
可設(shè)定9~12位的分辨率
及報(bào)警溫度輕觸按鍵來實(shí)現(xiàn)數(shù)據(jù)的設(shè)置功能2位八段數(shù)碼管顯示溫度硬件設(shè)計(jì)電路軟件設(shè)計(jì)溫度測量系統(tǒng)軟件流程(1)DS18B20的初始化子程序主機(jī)總線t0時(shí)刻發(fā)送一復(fù)位脈沖(最短為480ms的低電平信號),接著在t1時(shí)刻釋放總線并進(jìn)入接收狀態(tài),DS18B20在檢測到總線的上升沿之后,等待15~60ms,接著DS18B20在t2時(shí)刻發(fā)出脈沖(低電平,持續(xù)60~240ms)。
INIT_1820:SETB P3.3NOPCLRP3.3;主機(jī)發(fā)出延時(shí)540ms的復(fù)位低脈沖MOV R0,#36LCALL DELAYSETB P3.3 ;然后拉高數(shù)據(jù)線NOPNOPMOV R0,#36TSR2:JNBP3.3,TSR3;等待DS18B20回應(yīng)DJNZ R0,TSR2LJMP TSR4 ;延時(shí)初始化程序:(2)DS18B20讀溫度子程序主機(jī)總線t0時(shí)刻從高拉至低電平時(shí),總線只需保持低電平15ms。之后在t1時(shí)刻將總線拉高,產(chǎn)生讀時(shí)間隙,讀時(shí)間隙在t1時(shí)刻后t2時(shí)刻前有效。T2距t0為15ms也就是說,t2時(shí)刻前主機(jī)必須完成讀位,并在t0后的60~120ms內(nèi)釋放總線。
GET_TEMPER: SETB P3.3LCALLINIT_1820 ;先復(fù)位DS18B20JB FLAG1,TSS2CLR P1.2RET;判斷DS1820是否存在?若不存在則返回TSS2: CLR P3.3;DS18B20已經(jīng)被檢測到!MOV A,#0CCH ;跳過ROM匹配LCALLWRITE_1820MOV A,#44H ;發(fā)出溫度轉(zhuǎn)換命令LCALLWRITE_1820;這里通過調(diào)用顯示子程序?qū)崿F(xiàn)延時(shí)一段時(shí)間,等待A/D轉(zhuǎn)換結(jié)束,12位的話750ms讀位子程序:LCALL INIT_1820 ;準(zhǔn)備讀溫度前先復(fù)位MOV A,#0CCH ;跳過ROM匹配LCALL WRITE_1820MOV A,#0BEH ;發(fā)出讀溫度命令LCALL WRITE_1820LCALL READ_18200 ;將讀出的溫度數(shù)據(jù)保存到35H/36HCLR P3.3RETTSR3: SETB FLAG1;置標(biāo)志位,表示DS1820存在LJMP TSR5TSR4: CLR FLAG1;清標(biāo)志位,表示DS1820不存在LJMP TSR7TSR5: MOV R0,#06BHTSR6:DJNZR0,TSR6;復(fù)位成功!時(shí)序要求延時(shí)一段時(shí)間TSR7: SETB P3.3RET(3)DS18B20寫控制子程序當(dāng)主機(jī)總線t0時(shí)刻從高拉至低電平時(shí)就產(chǎn)生寫時(shí)間隙,從t0時(shí)刻開始15ms之內(nèi)應(yīng)將所需寫的位送到總線上,DS1820在t0后15~60ms間對總線采樣。若低電平寫入的位是0,若高電平寫入的位是1,連續(xù)寫兩位間的間隙應(yīng)大于1ms。WRITEDS18: MOV R2,#8 ;寫一個(gè)字節(jié)CLR CW1: CLR P3.3MOV R3,#5DJNZ R3,$RRC AMOV P3.3,CMOV R3,#21DJNZ R3,$SETB P3.3NOPDJNZ R2,W1SETB P3.3 ;每位數(shù)據(jù)中恢復(fù)高電平RET11.3.4FLASH存儲器擴(kuò)展設(shè)計(jì)與制作1.設(shè)計(jì)任務(wù)設(shè)計(jì)一個(gè)基于MCS-518位單片機(jī)與NANDFLASH存儲器(K9F4G08)的接口控制實(shí)例2.系統(tǒng)設(shè)計(jì)設(shè)計(jì)方案K9F4G08工作電壓:+3.3V512M×8Bit8bit輸入輸出總線TSOP48封裝單片機(jī)STC89LE516工作電壓:+3.3V64KB的FLASH程序存儲器1280byte的SRAM支持串口ISP下載硬件電路4.軟件設(shè)計(jì)K9F4G08芯片尋址ColumnAddress:列地址(地址的低8位)RowAddress:
行地址PageAddress:
頁地址BlockAddress:
塊地址對于K9F4G08來講,地址和命令只能在I/O[7:0]上傳遞,數(shù)據(jù)寬度是8位,因此,整個(gè)512MB容量地址的傳遞過程需要5步才能完成。
I/O0I/O1I/O2I/O3I/O4I/O5I/O6I/O7地址類別第一同期A0A1A2A3A4A5A6A7行地址第二同期A8A9A10A11LowLowLowLow行地址第三同期A12A13A14A15A16A17A18A19列地址第四同期A20A21A22A23A24A25A26A27列地址第五同期A28A29LowLowLowLowLowLow列地址
K9F4G08的芯片尋址
K9F4G08芯片模式選擇K9F4G08
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 綠色采購管理體系
- 增強(qiáng)現(xiàn)實(shí)工程師面試題及AR開發(fā)技術(shù)含答案
- 公路改擴(kuò)建工程運(yùn)營管理方案
- 機(jī)電設(shè)備安裝材料采購與管理方案
- 法務(wù)專業(yè)知識水平考試大綱及題庫建設(shè)方案
- 客戶服務(wù)崗位面試問題與答案解析大全
- 再生水利用用戶培訓(xùn)與推廣計(jì)劃
- 零碳園區(qū)智能化監(jiān)控系統(tǒng)
- 機(jī)械廢料分類與回收系統(tǒng)設(shè)計(jì)方案
- 城中村建筑廢棄物處理標(biāo)準(zhǔn)化作業(yè)流程
- 2025大理州強(qiáng)制隔離戒毒所招聘輔警(5人)筆試考試備考題庫及答案解析
- 2025年安全培訓(xùn)計(jì)劃表
- 2026年榆林職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫參考答案詳解
- 2025年沈陽華晨專用車有限公司公開招聘筆試歷年參考題庫附帶答案詳解
- 2026(蘇教版)數(shù)學(xué)五上期末復(fù)習(xí)大全(知識梳理+易錯(cuò)題+壓軸題+模擬卷)
- 2024廣東廣州市海珠區(qū)琶洲街道招聘雇員(協(xié)管員)5人 備考題庫帶答案解析
- 垃圾中轉(zhuǎn)站機(jī)械設(shè)備日常維護(hù)操作指南
- 蓄電池安全管理課件
- 建筑業(yè)項(xiàng)目經(jīng)理目標(biāo)達(dá)成度考核表
- 2025廣東肇慶四會市建筑安裝工程有限公司招聘工作人員考試參考題庫帶答案解析
- 第五單元國樂飄香(一)《二泉映月》課件人音版(簡譜)初中音樂八年級上冊
評論
0/150
提交評論