




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 單片機(jī)硬件系統(tǒng)設(shè)計(jì)原則 一個(gè)單片機(jī)應(yīng)用系統(tǒng)的硬件電路設(shè)計(jì)包含兩部分內(nèi)容:一是系統(tǒng)擴(kuò)展,即單片機(jī)內(nèi)部的功能單元,如ROM、RAM、I/O、定時(shí)器/計(jì)數(shù)器、中斷系統(tǒng)等不能滿足應(yīng)用系統(tǒng)的要求時(shí),必須在片外進(jìn)行擴(kuò)展,選擇適當(dāng)?shù)男酒?,設(shè)計(jì)相應(yīng)的電路。二是系統(tǒng)的配置,即按照系統(tǒng)功能要求配置外圍設(shè)備,如鍵盤(pán)、顯示器、打印機(jī)、A/D、D/A轉(zhuǎn)換器等,要設(shè)計(jì)合適的接口電路。 系統(tǒng)的擴(kuò)展和配置應(yīng)遵循以下原則: 1、盡可能選擇典型電路,并符合單片機(jī)常規(guī)用法。為硬件系統(tǒng)的標(biāo)準(zhǔn)化、模塊化打下良好的基礎(chǔ)。 2、系統(tǒng)擴(kuò)展與外圍設(shè)備的配置水平應(yīng)充分滿足應(yīng)用系統(tǒng)的功能要求,并留有適當(dāng)余地,以便進(jìn)行二次開(kāi)發(fā)。 3、硬件結(jié)構(gòu)應(yīng)結(jié)
2、合應(yīng)用軟件方案一并考慮。硬件結(jié)構(gòu)與軟件方案會(huì)產(chǎn)生相互影響,考慮的原則是:軟件能實(shí)現(xiàn)的功能盡可能由軟件實(shí)現(xiàn),以簡(jiǎn)化硬件結(jié)構(gòu)。但必須注意,由軟件實(shí)現(xiàn)的硬件功能,一般響應(yīng)時(shí)間比硬件實(shí)現(xiàn)長(zhǎng),且占用CPU時(shí)間。 4、系統(tǒng)中的相關(guān)器件要盡可能做到性能匹配。 如選用CMOS芯片單片機(jī)構(gòu)成低功耗系統(tǒng)時(shí),系統(tǒng)中所有芯片都應(yīng)盡可能選擇低功耗產(chǎn)品。 5、可靠性及抗干擾設(shè)計(jì)是硬件設(shè)計(jì)必不可少的一部分,它包括芯片、器件選擇、去耦濾波、印刷電路板布線、通道隔離等。 6、單片機(jī)外圍電路較多時(shí),必須考慮其驅(qū)動(dòng)能力。驅(qū)動(dòng)能力不足時(shí),系統(tǒng)工作不可靠,可通過(guò)增設(shè)線驅(qū)動(dòng)器增強(qiáng)驅(qū)動(dòng)能力或減少芯片功耗來(lái)降低總線負(fù)載。 7、盡量朝“單片”
3、方向設(shè)計(jì)硬件系統(tǒng)。系統(tǒng)器件越多,器件之間相互干擾也越強(qiáng),功耗也增大,也不可避免地降低了系統(tǒng)的穩(wěn)定性。隨著單片機(jī)片內(nèi)集成的功能越來(lái)越強(qiáng),真正的片上系統(tǒng)SoC已經(jīng)可以實(shí)現(xiàn),如ST公司新近推出的PSD32系列產(chǎn)品在一塊芯片上集成了80C32核、大容量FLASH存儲(chǔ)器、SRAM、A/D、I/O、兩個(gè)串口、看門(mén)狗、上電復(fù)位電路等等。 單片機(jī)系統(tǒng)硬件抗干擾常用方法實(shí)踐 影響單片機(jī)系統(tǒng)可靠安全運(yùn)行的主要因素主要來(lái)自系統(tǒng)內(nèi)部和外部的各種電氣干擾,并受系統(tǒng)結(jié)構(gòu)設(shè)計(jì)、元器件選擇、安裝、制造工藝影響。這些都構(gòu)成單片機(jī)系統(tǒng)的干擾因素,常會(huì)導(dǎo)致單片機(jī)系統(tǒng)運(yùn)行失常,輕則影響產(chǎn)品質(zhì)量和產(chǎn)量,重則會(huì)導(dǎo)致事故,造成重大經(jīng)濟(jì)損失
4、。 形成干擾的基本要素有三個(gè): (1)干擾源。指產(chǎn)生干擾的元件、設(shè)備或信號(hào), 用數(shù)學(xué)語(yǔ)言描述如下:du/dt, di/dt大的地方就是干擾源。如:雷電、繼電器、可控硅、電機(jī)、高頻時(shí)鐘等都可能成為干擾源。 (2)傳播路徑。指干擾從干擾源傳播到敏感器件的通路或媒介。典型的干擾傳播路徑是通過(guò)導(dǎo)線的傳導(dǎo)和空間的輻射。 (3)敏感器件。指容易被干擾的對(duì)象。如:A/D、 D/A變換器,單片機(jī),數(shù)字IC,弱信號(hào)放大器等。 1 干擾的分類 1.1 干擾的分類 干擾的分類有好多種,通常可以按照噪聲產(chǎn)生的原因、傳導(dǎo)方式、波形特性等等進(jìn)行不同的分類。按產(chǎn)生的原因分: 可分為放電噪聲音、高頻振蕩噪聲、浪涌噪聲。 按傳
5、導(dǎo)方式分:可分為共模噪聲和串模噪聲。 按波形分:可分為持續(xù)正弦波、脈沖電壓、脈沖序列等等。 1.2 干擾的耦合方式 干擾源產(chǎn)生的干擾信號(hào)是通過(guò)一定的耦合通道才對(duì)測(cè)控系統(tǒng)產(chǎn)生作用的。因此,我們有必要看看干擾源和被干擾對(duì)象之間的傳遞方式。干擾的耦合方式,無(wú)非是通過(guò)導(dǎo)線、空間、公共線等等,細(xì)分下來(lái),主要有以下幾種: (1)直接耦合: 這是最直接的方式,也是系統(tǒng)中存在最普遍的一種方式。比如干擾信號(hào)通過(guò)電源線侵入系統(tǒng)。對(duì)于這種形式,最有效的方法就是加入去耦電路。 (2)公共阻抗耦合: 這也是常見(jiàn)的耦合方式,這種形式常常發(fā)生在兩個(gè)電路電流有共同通路的情況。為了防止這種耦合,通常在電路設(shè)計(jì)上就要考慮。使干擾
6、源和被干擾對(duì)象間沒(méi)有公共阻抗。 (3)電容耦合: 又稱電場(chǎng)耦合或靜電耦合。是由于分布電容的存在而產(chǎn)生的耦合。 (4)電磁感應(yīng)耦合: 又稱磁場(chǎng)耦合。是由于分布電磁感應(yīng)而產(chǎn)生的耦合。 (5)漏電耦合: 這種耦合是純電阻性的,在絕緣不好時(shí)就會(huì)發(fā)生。 2 常用硬件抗干擾技術(shù) 針對(duì)形成干擾的三要素,采取的抗干擾主要有以下手段。 2.1 抑制干擾源 抑制干擾源就是盡可能的減小干擾源的du/dt, di/dt。這是抗干擾設(shè)計(jì)中最優(yōu)先考慮和最重要的原則,常常會(huì)起到事半功倍的效果。 減小干擾源的du/dt主要是通過(guò)在干擾源兩端并聯(lián)電容來(lái)實(shí)現(xiàn)。減小干擾源的di/dt則是在干擾源回路串聯(lián)電感或電阻以及增加續(xù)流二極管
7、來(lái)實(shí)現(xiàn)。 抑制干擾源的常用措施如下: (1)繼電器線圈增加續(xù)流二極管,消除斷開(kāi)線圈時(shí)產(chǎn)生的反電動(dòng)勢(shì)干擾。僅加續(xù)流二極管會(huì)使繼電器的斷開(kāi)時(shí)間滯后,增加穩(wěn)壓二極管后繼電器在單位時(shí)間內(nèi)可動(dòng)作更多的次數(shù)。 (2)在繼電器接點(diǎn)兩端并接火花抑制電路(一般是RC串聯(lián)電路,電阻一般選幾K到幾十K,電容選0.01uF),減小電火花影響。 (3)給電機(jī)加濾波電路,注意電容、電感引線要盡量短。 (4)電路板上每個(gè)IC要并接一個(gè)0.01F0.1 F高頻電容,以減小IC對(duì)電源的影響。注意高頻電容的布線,連線應(yīng)靠近電源端并盡量粗短,否則,等于增大了電容的等效串聯(lián)電阻,會(huì)影響濾波效果。 (5)布線時(shí)避免90度折線,減少高頻
8、噪聲發(fā)射。 (6)可控硅兩端并接RC抑制電路,減小可控硅產(chǎn)生的噪聲(這個(gè)噪聲嚴(yán)重時(shí)可能會(huì)把可控硅擊穿的)。 2.2 切斷干擾傳播路徑 按干擾的傳播路徑可分為傳導(dǎo)干擾和輻射干擾兩類。 所謂傳導(dǎo)干擾是指通過(guò)導(dǎo)線傳播到敏感器件的干擾。高頻干擾噪聲和有用信號(hào)的頻帶不同,可以通過(guò)在導(dǎo)線上增加濾波器的方法切斷高頻干擾噪聲的傳播,有時(shí)也可加隔離光耦來(lái)解決。電源噪聲的危害最大,要特別注意處理。 所謂輻射干擾是指通過(guò)空間輻射傳播到敏感器件的干擾。一般的解決方法是增加干擾源與敏感器件的距離,用地線把它們隔離和在敏感器件上加屏蔽罩。 切斷干擾傳播路徑的常用措施如下: (1)充分考慮電源對(duì)單片機(jī)的影響。電源做得好,整
9、個(gè)電路的抗干擾就解決了一大半。許多單片機(jī)對(duì)電源噪聲很敏感,要給單片機(jī)電源加濾波電路或穩(wěn)壓器,以減小電源噪聲對(duì)單片機(jī)的干擾。比如,可以利用磁珠和電容組成形濾波電路,當(dāng)然條件要求不高時(shí)也可用100電阻代替磁珠。 (2)如果單片機(jī)的I/O口用來(lái)控制電機(jī)等噪聲器件,在I/O口與噪聲源之間應(yīng)加隔離(增加形濾波電路)。 (3)注意晶振布線。晶振與單片機(jī)引腳盡量靠近,用地線把時(shí)鐘區(qū)隔離起來(lái),晶振外殼接地并固定。 (4)電路板合理分區(qū),如強(qiáng)、弱信號(hào),數(shù)字、模擬信號(hào)。盡可能把干擾源(如電機(jī)、繼電器)與敏感元件(如單片機(jī))遠(yuǎn)離。 (5)用地線把數(shù)字區(qū)與模擬區(qū)隔離。數(shù)字地與模擬地要分離,最后在一點(diǎn)接于電源地。A/D
10、、D/A芯片布線也以此為原則。 (6)單片機(jī)和大功率器件的地線要單獨(dú)接地,以減小相互干擾。大功率器件盡可能放在電路板邊緣。 (7)在單片機(jī)I/O口、電源線、電路板連接線等關(guān)鍵地方使用抗干擾元件如磁珠、磁環(huán)、電源濾波器、屏蔽罩,可顯著提高電路的抗干擾性能。 2.3 提高敏感器件的抗干擾性能 提高敏感器件的抗干擾性能是指從敏感器件這邊考慮盡量減少對(duì)干擾噪聲的拾取,以及從不正常狀態(tài)盡快恢復(fù)的方法。 提高敏感器件抗干擾性能的常用措施如下: (1)布線時(shí)盡量減少回路環(huán)的面積,以降低感應(yīng)噪聲。 (2)布線時(shí),電源線和地線要盡量粗。除減小壓降外,更重要的是降低耦合噪聲。 (3)對(duì)于單片機(jī)閑置的I/O口,不要
11、懸空,要接地或接電源。其它IC的閑置端在不改變系統(tǒng)邏輯的情況下接地或接電源。 (4)對(duì)單片機(jī)使用電源監(jiān)控及看門(mén)狗電路,如: IMP809,IMP706,IMP813, X5043,X5045等,可大幅度提高整個(gè)電路的抗干擾性能。 (5)在速度能滿足要求的前提下,盡量降低單片機(jī)的晶振和選用低速數(shù)字電路。 (6)IC器件盡量直接焊在電路板上,少用IC座。 2.4 其它常用抗干擾措施 (1)交流端用電感電容濾波:去掉高頻低頻干擾脈沖。 (2)變壓器雙隔離措施:變壓器初級(jí)輸入端串接電容,初、次級(jí)線圈間屏蔽層與初級(jí)間電容中心接點(diǎn)接大地,次級(jí)外屏蔽層接印制板地,這是硬件抗干擾的關(guān)鍵手段。次級(jí)加低通濾波器:
12、吸收變壓器產(chǎn)生的浪涌電壓。 (3)采用集成式直流穩(wěn)壓電源: 有過(guò)流、過(guò)壓、過(guò)熱等保護(hù)作用。 (4)I/O口采用光電、磁電、繼電器隔離,同時(shí)去掉公共地。 (5)通訊線用雙絞線:排除平行互感。 (6)防雷電用光纖隔離最為有效。 (7)A/D轉(zhuǎn)換用隔離放大器或采用現(xiàn)場(chǎng)轉(zhuǎn)換:減少誤差。 (8)外殼接大地:解決人身安全及防外界電磁場(chǎng)干擾。 (9)加復(fù)位電壓檢測(cè)電路。防止復(fù)位不充分, CPU就工作,尤其有EEPROM的器件,復(fù)位不充份會(huì)改變EEPROM的內(nèi)容。 (10)印制板工藝抗干擾: 電源線加粗,合理走線、接地,三總線分開(kāi)以減少互感振蕩。 CPU、RAM、ROM等主芯片,VCC和GND之間接電解電容及
13、瓷片電容,去掉高、低頻干擾信號(hào)。 獨(dú)立系統(tǒng)結(jié)構(gòu),減少接插件與連線,提高可靠性,減少故障率。 集成塊與插座接觸可靠,用雙簧插座,最好集成塊直接焊在印制板上,防止器件接觸不良故障。 有條件的采用四層以上印制板,中間兩層為電源及地。 單片機(jī)系統(tǒng)軟件抗干擾方法 在提高硬件系統(tǒng)抗干擾能力的同時(shí),軟件抗干擾以其設(shè)計(jì)靈活、節(jié)省硬件資源、可靠性好越來(lái)越受到重視。下面以MCS-51單片機(jī)系統(tǒng)為例,對(duì)微機(jī)系統(tǒng)軟件抗干擾方法進(jìn)行研究。 1 軟件抗干擾方法的研究 在工程實(shí)踐中,軟件抗干擾研究的內(nèi)容主要是: 一、消除模擬輸入信號(hào)的嗓聲(如數(shù)字濾波技術(shù));二、程序運(yùn)行混亂時(shí)使程序重入正軌的方法。本文針對(duì)后者提出了幾種有效
14、的軟件抗干擾方法。 1.1 指令冗余 CPU取指令過(guò)程是先取操作碼,再取操作數(shù)。當(dāng)PC受干擾出現(xiàn)錯(cuò)誤,程序便脫離正常軌道“亂飛”,當(dāng)亂飛到某雙字節(jié)指令,若取指令時(shí)刻落在操作數(shù)上,誤將操作數(shù)當(dāng)作操作碼,程序?qū)⒊鲥e(cuò)。若“飛” 到了三字節(jié)指令,出錯(cuò)機(jī)率更大。 在關(guān)鍵地方人為插入一些單字節(jié)指令,或?qū)⒂行巫止?jié)指令重寫(xiě)稱為指令冗余。通常是在雙字節(jié)指令和三字節(jié)指令后插入兩個(gè)字節(jié)以上的NOP。這樣即使亂飛程序飛到操作數(shù)上,由于空操作指令NOP的存在,避免了后面的指令被當(dāng)作操作數(shù)執(zhí)行,程序自動(dòng)納入正軌。 此外,對(duì)系統(tǒng)流向起重要作用的指令如RET、 RETI、LCALL、LJMP、JC等指令之前插入兩條NOP,
15、也可將亂飛程序納入正軌,確保這些重要指令的執(zhí)行。 1.2 攔截技術(shù) 所謂攔截,是指將亂飛的程序引向指定位置,再進(jìn)行出錯(cuò)處理。通常用軟件陷阱來(lái)攔截亂飛的程序。因此先要合理設(shè)計(jì)陷阱,其次要將陷阱安排在適當(dāng)?shù)奈恢谩?1.2.1 軟件陷阱的設(shè)計(jì) 當(dāng)亂飛程序進(jìn)入非程序區(qū),冗余指令便無(wú)法起作用。通過(guò)軟件陷阱,攔截亂飛程序,將其引向指定位置,再進(jìn)行出錯(cuò)處理。軟件陷阱是指用來(lái)將捕獲的亂飛程序引向復(fù)位入口地址0000H的指令。通常在EPROM中非程序區(qū)填入以下指令作為軟件陷阱: NOP NOP LJMP 0000H 其機(jī)器碼為0000020000。1.2.2 陷阱的安排 通常在程序中未使用的EPROM空間填00
16、00020000。最后一條應(yīng)填入020000,當(dāng)亂飛程序 落到此區(qū),即可自動(dòng)入軌。在用戶程序區(qū)各模塊之間的空余單元也可填入陷阱指令。當(dāng)使用的中斷因干擾而開(kāi)放時(shí),在對(duì)應(yīng)的中斷服務(wù)程序中設(shè)置軟件陷阱,能及時(shí)捕獲錯(cuò)誤的中斷。如某應(yīng)用系統(tǒng)雖未用到外部中斷1,外部中斷1的中斷服務(wù)程序可為如下形式: NOP NOP RETI 返回指令可用“RETI”,也可用“LJMP 0000H”。如果故障診斷程序與系統(tǒng)自恢復(fù)程序的設(shè)計(jì)可靠、 完善,用“LJMP 0000H”作返回指令可直接進(jìn)入故障診斷程序,盡早地處理故障并恢復(fù)程序的運(yùn)行。 考慮到程序存貯器的容量,軟件陷阱一般1K空間有2-3個(gè)就可以進(jìn)行有效攔截。 1.
17、3 軟件“看門(mén)狗”技術(shù) 若失控的程序進(jìn)入“死循環(huán)”,通常采用“看門(mén)狗”技術(shù)使程序脫離“死循環(huán)”。通過(guò)不斷檢測(cè)程序循環(huán)運(yùn)行時(shí)間,若發(fā)現(xiàn)程序循環(huán)時(shí)間超過(guò)最大循環(huán)運(yùn)行時(shí)間,則認(rèn)為系統(tǒng)陷入“死循環(huán)”,需進(jìn)行出錯(cuò)處理。 “看門(mén)狗”技術(shù)可由硬件實(shí)現(xiàn),也可由軟件實(shí)現(xiàn)。 在工業(yè)應(yīng)用中,嚴(yán)重的干擾有時(shí)會(huì)破壞中斷方式控制字,關(guān)閉中斷。則系統(tǒng)無(wú)法定時(shí)“喂狗”,硬件看門(mén)狗電路失效。而軟件看門(mén)狗可有效地解決這類問(wèn)題。 筆者在實(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)的軟件“看門(mén)狗”具有良好的抗干擾性能,大大提高了系統(tǒng)可靠性。對(duì)于需經(jīng)常使用
18、T1定時(shí)器進(jìn)行串口通訊的測(cè)控系統(tǒng),則定時(shí)器T1不能進(jìn)行中斷,可改由串口中斷進(jìn)行監(jiān)控(如果用的是MCS-52系列單片機(jī),也可用T2代替T1進(jìn)行監(jiān)視)。這種軟件“看門(mén)狗”監(jiān)視原理是:在主程序、T0中斷服務(wù)程序、T1中斷服務(wù)程序中各設(shè)一運(yùn)行觀測(cè)變量,假設(shè)為MWatch、T0Watch 、T1Watch,主程序每循環(huán)一次,MWatch加,同樣T0、T1中斷服務(wù)程序執(zhí)行一次,T0Watch、 T1Watch加。在T0中斷服務(wù)程序中通過(guò)檢測(cè)T1Watch的變化情況判定T1運(yùn)行是否正常,在T1中斷服務(wù)程序中檢測(cè)MWatch的變化情況判定主程序是否正常運(yùn)行,在主程序中通過(guò)檢測(cè)T0Watch的變化情況判別T0是
19、否正常工作。若檢測(cè)到某觀測(cè)變量變化不正常,比如應(yīng)當(dāng)加1而未加1,則轉(zhuǎn)到出錯(cuò)處理程序作排除故障處理。當(dāng)然,對(duì)主程序最大循環(huán)周期、定時(shí)器T0和T1定時(shí)周期應(yīng)予以全盤(pán)合理考慮。限于篇幅不贅述。2 系統(tǒng)故障處理、自恢復(fù)程序的設(shè)計(jì) 單片機(jī)系統(tǒng)因干擾復(fù)位或掉電后復(fù)位均屬非正常復(fù)位,應(yīng)進(jìn)行故障診斷并能自動(dòng)恢復(fù)非正常復(fù)位前的狀態(tài)。 2.1 非正常復(fù)位的識(shí)別 程序的執(zhí)行總是從0000H開(kāi)始,導(dǎo)致程序從 0000H開(kāi)始執(zhí)行有四種可能:一、系統(tǒng)開(kāi)機(jī)上電復(fù)位;二、軟件故障復(fù)位;三、看門(mén)狗超時(shí)未喂狗硬件復(fù)位; 四、任務(wù)正在執(zhí)行中掉電后來(lái)電復(fù)位。四種情況中除第一種情況外均屬非正常復(fù)位,需加以識(shí)別。 2.1.1 硬件復(fù)位與
20、軟件復(fù)位的識(shí)別 此處硬件復(fù)位指開(kāi)機(jī)復(fù)位與看門(mén)狗復(fù)位,硬件復(fù)位對(duì)寄存器有影響,如復(fù)位后PC=0000H, SP07H,PSW00H等。而軟件復(fù)位則對(duì)SP、SPW無(wú)影響。故對(duì)于微機(jī)測(cè)控系統(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í)只需檢測(cè)PSW.5標(biāo)志位或SP值便可判此是否硬件復(fù)位。圖1是采用PSW.5作上電標(biāo)志位判別硬、軟件復(fù)位的程序流程圖。此外,由于硬件復(fù)位時(shí)片內(nèi)RAM狀態(tài)是隨機(jī)的,而軟件復(fù)位片內(nèi)RAM則可保持復(fù)位前狀態(tài),因此可選取片內(nèi)某一個(gè)或兩個(gè)單元作為上電標(biāo)志。設(shè) 40H用來(lái)做上電標(biāo)志,上電標(biāo)志字為78H,若系統(tǒng)復(fù)位后
21、40H單元內(nèi)容不等于78H,則認(rèn)為是硬件復(fù)位,否則認(rèn)為是軟件復(fù)位,轉(zhuǎn)向出錯(cuò)處理。若用兩個(gè)單元作上電標(biāo)志,則這種判別方法的可靠性更高。 2.1.2 開(kāi)機(jī)復(fù)位與看門(mén)狗故障復(fù)位的識(shí)別 開(kāi)機(jī)復(fù)位與看門(mén)狗故障復(fù)位因同屬硬件復(fù)位, 所以要想予以正確識(shí)別,一般要借助非易失性RAM或者EEROM。當(dāng)系統(tǒng)正常運(yùn)行時(shí),設(shè)置一可掉電保護(hù)的觀測(cè)單元。當(dāng)系統(tǒng)正常運(yùn)行時(shí),在定時(shí)喂狗的中斷服務(wù)程序中使該觀測(cè)單元保持正常值(設(shè)為 AAH),而在主程中將該單元清零,因觀測(cè)單元掉電可保護(hù),則開(kāi)機(jī)時(shí)通過(guò)檢測(cè)該單元是否為正常值可判斷是否看門(mén)狗復(fù)位。 2.1.3 正常開(kāi)機(jī)復(fù)位與非正常開(kāi)機(jī)復(fù)位的識(shí)別 識(shí)別測(cè)控系統(tǒng)中因意外情況如系統(tǒng)掉電等
22、情況引起的開(kāi)機(jī)復(fù)位與正常開(kāi)機(jī)復(fù)位,對(duì)于過(guò)程控制系統(tǒng)尤為重要。如某以時(shí)間為控制標(biāo)準(zhǔn)的測(cè)控系統(tǒng),完成一次測(cè)控任務(wù)需1小時(shí)。在已執(zhí)行測(cè)控50分鐘的情況下,系統(tǒng)電壓異常引起復(fù)位,此時(shí)若系統(tǒng)復(fù)位后又從頭開(kāi)始進(jìn)行測(cè)控則會(huì)造成不必要的時(shí)間消耗。因此可通過(guò)一監(jiān)測(cè)單元對(duì)當(dāng)前系統(tǒng)的運(yùn)行狀態(tài)、系統(tǒng)時(shí)間予以監(jiān)控,將控制過(guò)程分解為若干步或若干時(shí)間段,每執(zhí)行完一步或每運(yùn)行一個(gè)時(shí)間段則對(duì)監(jiān)測(cè)單元置為關(guān)機(jī)允許值,不同的任務(wù)或任務(wù)的不同階段有不同的值,若系統(tǒng)正在進(jìn)行測(cè)控任務(wù)或正在執(zhí)某時(shí)間段,則將監(jiān)測(cè)單元置為非正常關(guān)機(jī)值。那么系統(tǒng)復(fù)位后可據(jù)此單元判系統(tǒng)原來(lái)的運(yùn)行狀態(tài),并跳到出錯(cuò)處理程序中恢復(fù)系統(tǒng)原運(yùn)行狀態(tài)。 2.2 非正常復(fù)位后
23、系統(tǒng)自恢復(fù)運(yùn)行的程序設(shè)計(jì) 對(duì)順序要求嚴(yán)格的一些過(guò)程控制系統(tǒng),系統(tǒng)非正常復(fù)位否,一般都要求從失控的那一個(gè)模塊或任務(wù)恢復(fù)運(yùn)行。所以測(cè)控系統(tǒng)要作好重要數(shù)據(jù)單元、參數(shù)的備份,如系統(tǒng)運(yùn)行狀態(tài)、系統(tǒng)的進(jìn)程值、當(dāng)前輸入、輸出的值,當(dāng)前時(shí)鐘值、觀測(cè)單元值等,這些數(shù)據(jù)既要定時(shí)備份,同時(shí)若有修改也應(yīng)立即予以備份。 當(dāng)在已判別出系統(tǒng)非正常復(fù)位的情況下,先要恢復(fù)一些必要的系統(tǒng)數(shù)據(jù),如顯示模塊的初始化、片外擴(kuò)展芯片的初始化等。其次再對(duì)測(cè)控系統(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)說(shuō)明的是,真實(shí)地恢復(fù)系統(tǒng)的運(yùn)行狀態(tài)需 要極為細(xì)致地對(duì)系
24、統(tǒng)的重要數(shù)據(jù)予以備份,并加以數(shù)據(jù)可靠性檢查,以保證恢復(fù)的數(shù)據(jù)的可靠性。 其次,對(duì)多任務(wù)、多進(jìn)程測(cè)控系統(tǒng),數(shù)據(jù)的恢復(fù)需考慮恢復(fù)的次序問(wèn)題,筆者實(shí)際應(yīng)用的數(shù)據(jù)恢復(fù)過(guò)程流程圖如圖2所示。圖中恢復(fù)系統(tǒng)基本數(shù)據(jù)是指取出備份的數(shù)據(jù)覆蓋當(dāng)前的系統(tǒng)數(shù)據(jù)。系統(tǒng)基本初始化是指對(duì)芯片、顯示、輸入輸出方式等進(jìn)行初始化,要注意輸入輸出的初始化不應(yīng)造成誤動(dòng)作。而復(fù)位前任務(wù)的初始化是指任務(wù)的執(zhí)行狀態(tài)、運(yùn)行時(shí)間等。 3 結(jié)束語(yǔ) 對(duì)于軟件抗干擾的一些其它常用方法如數(shù)字濾波、RAM數(shù)據(jù)保護(hù)與糾錯(cuò)等,限于篇幅,本文未作討論。在工程實(shí)踐中通常都是幾種抗干擾方法并用,互相補(bǔ)充完善,才能取得較好的抗干擾效果。從根本上來(lái)說(shuō),硬件抗干擾是主
25、動(dòng)的,而軟件是抗干擾是被動(dòng)的。細(xì)致周到地分析干擾源,硬件與軟件抗干擾相結(jié)合,完善系統(tǒng)監(jiān)控程序,設(shè)計(jì)一穩(wěn)定可靠的單片機(jī)系統(tǒng)是完全可行的。 I2C總線原理及應(yīng)用實(shí)例 I2C(InterIntegrated Circuit)總線是一種由PHILIPS公司開(kāi)發(fā)的兩線式串行總線,用于連接微控制器及其外圍設(shè)備。I2C總線產(chǎn)生于在80年代,最初為音頻和視頻設(shè)備開(kāi)發(fā),如今主要在服務(wù)器管理中使用,其中包括單個(gè)組件狀態(tài)的通信。例如管理員可對(duì)各個(gè)組件進(jìn)行查詢,以管理系統(tǒng)的配置或掌握組件的功能狀態(tài),如電源和系統(tǒng)風(fēng)扇。可隨時(shí)監(jiān)控內(nèi)存、硬盤(pán)、網(wǎng)絡(luò)、系統(tǒng)溫度等多個(gè)參數(shù),增加了系統(tǒng)的安全性,方便了管理。 1 I2C總線特點(diǎn)
26、I2C總線最主要的優(yōu)點(diǎn)是其簡(jiǎn)單性和有效性。由于接口直接在組件之上,因此I2C總線占用的空間非常小,減少了電路板的空間和芯片管腳的數(shù)量,降低了互聯(lián)成本。總線的長(zhǎng)度可高達(dá)25英尺,并且能夠以10Kbps的最大傳輸速率支持40個(gè)組件。I2C總線的另一個(gè)優(yōu)點(diǎn)是,它支持多主控(multimastering), 其中任何能夠進(jìn)行發(fā)送和接收的設(shè)備都可以成為主總線。一個(gè)主控能夠控制信號(hào)的傳輸和時(shí)鐘頻率。當(dāng)然,在任何時(shí)間點(diǎn)上只能有一個(gè)主控。 2 I2C總線工作原理 2.1 總線的構(gòu)成及信號(hào)類型 I2C總線是由數(shù)據(jù)線SDA和時(shí)鐘SCL構(gòu)成的串行總線,可發(fā)送和接收數(shù)據(jù)。在CPU與被控IC之間、IC與IC之間進(jìn)行雙向
27、傳送,最高傳送速率100kbps。各種被控制電路均并聯(lián)在這條總線上,但就像電話機(jī)一樣只有撥通各自的號(hào)碼才能工作,所以每個(gè)電路和模塊都有唯一的地址,在信息的傳輸過(guò)程中,I2C總線上并接的每一模塊電路既是主控器(或被控器),又是發(fā)送器(或接收器),這取決于它所要完成的功能。CPU發(fā)出的控制信號(hào)分為地址碼和控制量?jī)刹糠?,地址碼用來(lái)選址,即接通需要控制的電路,確定控制的種類;控制量決定該調(diào)整的類別(如對(duì)比度、亮度等)及需要調(diào)整的量。這樣,各控制電路雖然掛在同一條總線上,卻彼此獨(dú)立,互不相關(guān)。 I2C總線在傳送數(shù)據(jù)過(guò)程中共有三種類型信號(hào), 它們分別是:開(kāi)始信號(hào)、結(jié)束信號(hào)和應(yīng)答信號(hào)。 開(kāi)始信號(hào):SCL為高
28、電平時(shí),SDA由高電平向低電平跳變,開(kāi)始傳送數(shù)據(jù)。 結(jié)束信號(hào):SCL為低電平時(shí),SDA由低電平向高電平跳變,結(jié)束傳送數(shù)據(jù)。 應(yīng)答信號(hào):接收數(shù)據(jù)的IC在接收到8bit數(shù)據(jù)后,向發(fā)送數(shù)據(jù)的IC發(fā)出特定的低電平脈沖,表示已收到數(shù)據(jù)。CPU向受控單元發(fā)出一個(gè)信號(hào)后,等待受控單元發(fā)出一個(gè)應(yīng)答信號(hào),CPU接收到應(yīng)答信號(hào)后,根據(jù)實(shí)際情況作出是否繼續(xù)傳遞信號(hào)的判斷。若未收到應(yīng)答信號(hào),由判斷為受控單元出現(xiàn)故障。 目前有很多半導(dǎo)體集成電路上都集成了I2C接口。帶有I2C接口的單片機(jī)有:CYGNAL的 C8051F0XX系列,PHILIPSP87LPC7XX系列,MICROCHIP的PIC16C6XX系列等。很多外
29、圍器件如存儲(chǔ)器、監(jiān)控芯片等也提供I2C接口。 3 總線基本操作 I2C規(guī)程運(yùn)用主/從雙向通訊。器件發(fā)送數(shù)據(jù)到總線上,則定義為發(fā)送器,器件接收數(shù)據(jù)則定義為接收器。主器件和從器件都可以工作于接收和發(fā)送狀態(tài)。 總線必須由主器件(通常為微控制器)控制,主器件產(chǎn)生串行時(shí)鐘(SCL)控制總線的傳輸方向,并產(chǎn)生起始和停止條件。SDA線上的數(shù)據(jù)狀態(tài)僅在SCL為低電平的期間才能改變,SCL為高電平的期間,SDA狀態(tài)的改變被用來(lái)表示起始和停止條件。參見(jiàn)圖1。 圖1 串行總線上的數(shù)據(jù)傳送順序3.1 控制字節(jié) 在起始條件之后,必須是器件的控制字節(jié),其中高四位為器件類型識(shí)別符(不同的芯片類型有不同的定義,EEPROM一
30、般應(yīng)為1010),接著三位為片選,最后一位為讀寫(xiě)位,當(dāng)為1時(shí)為讀操作,為0時(shí)為寫(xiě)操作。如圖2所示。圖2 控制字節(jié)配置3.2 寫(xiě)操作 寫(xiě)操作分為字節(jié)寫(xiě)和頁(yè)面寫(xiě)兩種操作,對(duì)于頁(yè)面寫(xiě)根據(jù)芯片的一次裝載的字節(jié)不同有所不同。關(guān)于頁(yè)面寫(xiě)的地址、應(yīng)答和數(shù)據(jù)傳送的時(shí)序參見(jiàn)圖3。3.3 讀操作 讀操作有三種基本操作:當(dāng)前地址讀、隨機(jī)讀和順序讀。圖4給出的是順序讀的時(shí)序圖。應(yīng)當(dāng)注意的是:最后一個(gè)讀操作的第9個(gè)時(shí)鐘周期不是“不關(guān)心”。為了結(jié)束讀操作,主機(jī)必須在第9個(gè)周期間發(fā)出停止條件或者在第9個(gè)時(shí)鐘周期內(nèi)保持SDA為高電平、然后發(fā)出停止條件。4 實(shí)例:X24C04與MCS-51單片機(jī)軟硬件的實(shí)現(xiàn) X24C04是XI
31、COR公司的CMOS 4096位串行EEPROM,內(nèi)部組織成5128位。16字節(jié)頁(yè)面寫(xiě)。與MCS-51單片機(jī)接口如圖5所示。由于SDA是漏極開(kāi)路輸出,且可以與任何數(shù)目的漏極開(kāi)路或集電極 開(kāi)路輸出“線或”(wire-Ored)連接。上拉電阻的選擇可參考X24C04的數(shù)據(jù)手冊(cè)。下面是通過(guò)I2C接口對(duì)X24C04進(jìn)行單字節(jié)寫(xiě)操作的例程。流程圖及源程序如下圖5 X24C04與51單片機(jī)接口;名稱:BSENT ;描述:寫(xiě)字節(jié) ;功能:寫(xiě)一個(gè)字節(jié) ;調(diào)用程序:無(wú) ;輸入?yún)?shù):A ;輸出參數(shù):無(wú) BSEND: MOV R2,#08H ;1字節(jié)8位 SENDA: CLR P3.2 ; RLC A ;左移一位
32、MOV P3.3,C ;寫(xiě)一位SETB P3.2 DJNZ R2,SENDA ;寫(xiě)完8個(gè)字節(jié)? CLR P3.2 ;應(yīng)答信號(hào) SETB P3.3 SETB P3.2 RET 5 結(jié)束語(yǔ) 在I2C總線的應(yīng)用中應(yīng)注意的事項(xiàng)總結(jié)為以下幾點(diǎn) : 1) 嚴(yán)格按照時(shí)序圖的要求進(jìn)行操作, 2) 若與口線上帶內(nèi)部上拉電阻的單片機(jī)接口連接,可以不外加上拉電阻。 3) 程序中為配合相應(yīng)的傳輸速率,在對(duì)口線操作的指令后可用NOP指令加一定的延時(shí)。 4) 為了減少意外的干擾信號(hào)將EEPROM內(nèi)的數(shù)據(jù)改寫(xiě)可用外部寫(xiě)保護(hù)引腳(如果有),或者在EEPROM內(nèi)部沒(méi)有用的空間寫(xiě)入標(biāo)志字,每次上電時(shí)或復(fù)位時(shí)做一次檢測(cè),判斷EEP
33、ROM是否被意外改寫(xiě)。 Keil C51分頁(yè)模式Bankswitch在PSD813F2應(yīng)用的實(shí)現(xiàn) 在十分復(fù)雜的8051控制系統(tǒng)中,軟件的規(guī)模隨著功能的加強(qiáng)而不斷的擴(kuò)大,可執(zhí)行代碼的長(zhǎng)度也不斷的增加,當(dāng)代碼的長(zhǎng)度超過(guò)64K時(shí)問(wèn)題就使得軟硬件設(shè)計(jì)變得復(fù)雜了。本文將介紹一個(gè)利用Keil提供的分頁(yè)模式Bankswitch實(shí)現(xiàn)8051尋址的代碼空間突破64KB的實(shí)例。 1 Bankswitch原理 使用Keil的BL51可使用頁(yè)面尋址的方式來(lái)增加代碼空間。EPROM被分頁(yè),每頁(yè)的大小和在頁(yè)間進(jìn)行跳轉(zhuǎn)的方式取決于具體的應(yīng)用。 Keil C51支持的分頁(yè)方式有三種。1)利用單片機(jī)I/O口線。通常默認(rèn)是P1口
34、,采用1條P1口線時(shí), 分組數(shù)為2,采用5條P1口線時(shí),最多可分為32個(gè)代碼組,剩余的P1口線也可用于其他用途。2)利用片外數(shù)據(jù)存儲(chǔ)器(XDATA)空間實(shí)現(xiàn)分頁(yè)。指定一個(gè)XDATA端口字節(jié)實(shí)現(xiàn)分頁(yè)操作,該字節(jié)中的剩余位,不能再用于其他目的。3)用戶自定義方式實(shí)現(xiàn)分頁(yè)。本文介紹的是其中的第二種。采用的分頁(yè)方式、頁(yè)數(shù)和地址在L51_BANK.A51中進(jìn)行配置。 應(yīng)當(dāng)注意的是所有的頁(yè)面代碼要有一個(gè)共用空間。這個(gè)空間是處理器在任何時(shí)候都能夠?qū)ぶ返?。這個(gè)區(qū)域存儲(chǔ)包括中斷向量、中斷功能函數(shù)、可能調(diào)用其它EPROM頁(yè)面的函數(shù)、C51庫(kù)函數(shù)、在頁(yè)面間跳轉(zhuǎn)的代碼和被多個(gè)頁(yè)面代碼使用的常量。通常在每頁(yè)的底部都復(fù)制
35、公共代碼。 一般情況下,頁(yè)切換需要大約50個(gè)機(jī)器周期和2字節(jié)的堆??臻g。 2 8031與PSD813F2的硬件設(shè)計(jì) PSD813F2內(nèi)置128KB閃存,分為8個(gè)頁(yè)面,每頁(yè)空間16KB,內(nèi)置可選的32KB啟動(dòng)存儲(chǔ)器、2KB的SRAM、27個(gè)I/O端口、電源管理單元、40個(gè)可編程邏輯宏單元CPLD,通過(guò)JTAG串行接口允許在系統(tǒng)編程整個(gè)器件。適用于8031、MC68HC11、 Dallas、Z80等20余種單片機(jī)。 PSD813F2內(nèi)含地址鎖存器,因此PSD813F2的引腳可直接與8031相連,如圖1所示。 3 Keil C51環(huán)境下分頁(yè)實(shí)現(xiàn) 本文將PSD813F2片內(nèi)的128KB的FLASH存儲(chǔ)
36、器分為兩個(gè)區(qū)(bank),地址范圍從0000HffffH。 3.1 PSD Soft設(shè)置 1)在Page Register Definition步驟中選擇pgr0,只分兩頁(yè),如圖2所示。在Chip Select Equation n步驟中設(shè)置rs0為0頁(yè),地址0000H07ffH;csiop地址4000H40ffH;fs0、fs1、fs2、fs3設(shè)置為0頁(yè),地址分別為0000H3fffH(如圖3所示)、4000H7fffH、8000HbfffH、c000HffffH,fs4、fs5、fs6、fs7設(shè)置為1頁(yè)。3.2 Keil C51工程設(shè)置 1)建一個(gè)KeilC51的新工程,命名為如PSD,在
37、菜單Project選擇中選擇Option for Target “Target 1”選擇項(xiàng),按圖4所示進(jìn)行項(xiàng)目配置。由于PSD813F2片內(nèi)從FLASH為32KB。故在off-chip code memory-Eprom設(shè)為0x00000x7fff。如果這32KB用戶未使用,也可空著不填。 在PSD813F2的PSDSoft Express已配置2KB的SRAM,地址范圍為0x00000x07ff,故在off-chip Xdata memory-Ram設(shè)為0x0000,長(zhǎng)度為0x0800。 在PSD813F2的PSDSoft Express已配置256個(gè)字節(jié)的CSIOP空間,地址范圍為0x40
38、000x40ff, 故在off-chip Xdata memory-Ram設(shè)為0x4000,長(zhǎng)度為0x00ff。 在PSD813F2的主FLASH為128KB,共分為8個(gè)物理頁(yè),已在PSDSoft Express軟件中定義地址為0x80000xbfff,因此在KeilC51中如圖4所示分為2個(gè)Banks,地址范圍為0x00000xffff。 2)在KeilC51的安裝目錄KeilC51C51EXAMPLESBank_EX1中,把L51_Bank.A51文件的拷貝并加入到新工程。在L51_BANK.A51文件中需改以下代碼。 A?B_NBANKS EQU 2 /定義最大頁(yè)數(shù)(032),可為2、4
39、、8、16和32。 ?B_MODE EQU 1 /0:通過(guò)8051單片機(jī)的I/O口進(jìn)行分組切換,1:通過(guò)XDATA存儲(chǔ)器單元進(jìn)行分組切換,4:用戶自定義切換方式。 ?B_XDATAPORT EQU 40E0H /如果?B_MODE被定義為1,就通過(guò)XDATA口定義XDATA口引腳地址/位來(lái)映射開(kāi)關(guān)定義XDATA口地址40E0H。 3)新建主程序和各bank文件。 示例的工程主要是為演示Bankswitch,實(shí)現(xiàn)的功能較簡(jiǎn)單。在主文件psd1.c調(diào)用psd2.c中的兩個(gè)子程序。 4)設(shè)置文件的屬性。選擇主文件psd1.c,選擇Options for File,設(shè)置Code Bank為“bank#
40、0”,設(shè)置Stop on Exit為“Not Specified”如圖5所示。類似地,Psd2.c設(shè)置為Bank #1。L51_Bank.A51設(shè)置為“default”。 5)設(shè)置好后,進(jìn)行編譯。.3 編程 打開(kāi)PSDSoft Express軟件,在Merge MCU Firmware with PSD模塊中設(shè)置各個(gè)FLASH頁(yè)面的地址和文件名,如圖6所示主FLASH第0頁(yè)(FS0),地址:0x0000-0x3fff,文件名:psd.hoo 主FLASH第1頁(yè)(FS4),地址:0x0000-0x3fff,文件名:psd.ho1 通過(guò)FlashLink便可將文件下載到PSD813F2中,實(shí)現(xiàn)Ba
41、nkSwitch功能,使8031的可訪問(wèn)的地址空間超過(guò)64KB。 PSD3200系列產(chǎn)品的雙串口使用和在系統(tǒng)編程實(shí)現(xiàn) PSD系列器件的可編程特性及其潛在的優(yōu)點(diǎn)已逐步為廣大的產(chǎn)品設(shè)計(jì)和應(yīng)用工程師所理解和掌握,并將其應(yīng)用在各自的產(chǎn)品設(shè)計(jì)中,最近ST又推出了新一代在系統(tǒng)可編程內(nèi)含8032核微控制器的PSD器件uPSD3200系列芯片,該系列產(chǎn)品具有高度整合特性和完整的在系統(tǒng)可編程特性,從而可使嵌入式系統(tǒng)的設(shè)計(jì)更加簡(jiǎn)單、靈活。 uPSD3200系列產(chǎn)品采用模塊化設(shè)計(jì),它包含一個(gè)標(biāo)準(zhǔn)的8032微控制器模塊和一個(gè)PSD模塊。采用模塊化設(shè)計(jì)技術(shù),將構(gòu)成一個(gè)單片機(jī)應(yīng)用系統(tǒng)所需的多個(gè)功能塊,如8032core、
42、FLASH、SRAM、I/O、PLD、USB接口、I 2C接口、雙URAT口、DDC通道(用于液晶顯示)、PWM控制器、AD轉(zhuǎn)換器等,集成在單一硅片上,為簡(jiǎn)化嵌入式應(yīng)用系統(tǒng)的設(shè)計(jì)、縮短產(chǎn)品的開(kāi)發(fā)周期、提高系統(tǒng)的可靠性、降低系統(tǒng)的成本、縮小產(chǎn)品尺寸提供了一條便利的捷徑。該產(chǎn)品的主要特性可參考產(chǎn)品數(shù)據(jù)手冊(cè)。本文以 uPSD3234A-40T6為例,介紹其雙串口及ISP功能的使用。 1 雙串口的使用 uPSD3200系列芯片提供兩個(gè)標(biāo)準(zhǔn)的8032 UART 串行口。串口1連接到P3.0(RX)和P3.1(TX)。串口2連接到P1.2(RX)和P1.3(TX)。這兩個(gè)串口為全雙工接口,即接收和發(fā)送可以
43、同時(shí)進(jìn)行。串行口的接收和發(fā)送是通過(guò)SBUF寄存器(對(duì)串口2是SBUF2寄存器)的訪問(wèn)進(jìn)行的。串行I/O口有4種工作方式, 可以通過(guò)SCON寄存器(對(duì)串口2是SCON2寄存器)中的SM0和SM1位編程來(lái)選擇。如表1所示。表1 串行I/O口4種工作方式串行口的波特率在方式0和方式2中是固定的,只有在方式1和方式3中波特率由定時(shí)器的溢出率決定。在uPSD3200系列中,定時(shí)器1和定時(shí)器2都可以用作串口1和串口2的波特率發(fā)生器,僅僅需要在T2CON和PCON寄存器中設(shè)置TCLK、TCLK1、 RCLK和RCLK2位就可以了,波特率由定時(shí)器1、2的初值TH1、RCAP2H和RCAP2L決定。 例如將串口
44、1和串口2 定義為19200波特率,使用定時(shí)器2作為波特率發(fā)生器的串口設(shè)置源程序如下 : T2CON = 0x34; / 使用定時(shí)器2作為波特率發(fā)生器 / 使串口1使用定時(shí)器2作為波特率發(fā)生器 PCON |= 0x0C; / 使串口2使用定時(shí)器2作為波特率發(fā)生器 RCAP2L = 0xc6 ; /設(shè)置定時(shí)器2初值 RCAP2H = 0xff ; SCON = 0x50; / 初始化串口1 SCON2 = 0x50; / 初始化串口2 EA = 1; / 開(kāi)中斷 2 在系統(tǒng)編程(ISP)實(shí)現(xiàn) 在系統(tǒng)編程的物理連接 uPSD3200系列芯片為現(xiàn)場(chǎng)可編程器件,芯片的PSD配置、PLD陣列、Flash
45、存儲(chǔ)器均能在系統(tǒng)編程。通過(guò)ST公司提供的PSDspft Express軟件包,可生成各種編程器所需的目標(biāo)文件,通過(guò)低成本的FlashLink編程適配器,其一端與PC機(jī)的并口相連,另一端則是標(biāo)準(zhǔn)14引腳的JTAG帶狀連接器,可直接與目標(biāo)系統(tǒng)板上的JTAG接口相連,通過(guò)JTAG信號(hào)線對(duì)uPSD3200系列器件進(jìn)行在系統(tǒng)編程。其物理連接如圖1所示圖1 JTAG接口物理連接圖 uPSD3200系列器件內(nèi)部的存儲(chǔ)器的結(jié)構(gòu) 256K字節(jié)的主FIash存儲(chǔ)器,分成8個(gè)大小相同的塊,每個(gè)塊均可被設(shè)定為程序空間或數(shù)據(jù)空間,以分別用來(lái)存放程序或數(shù)據(jù); 32K字節(jié)的第二FIash存儲(chǔ)器,分成4個(gè)大小相同的塊,每個(gè)塊
46、均可被設(shè)定為程序空間或數(shù)據(jù)空間,以分別用來(lái)存放程序或數(shù)據(jù); 8K字節(jié)的SRAM存儲(chǔ)器,掉電時(shí)可自動(dòng)切換到備用電源供電,以保持?jǐn)?shù)據(jù); uPSD3200系列器件內(nèi)部的存儲(chǔ)器大于64K,因此使用了分頁(yè)技術(shù),引入了8位的PAGE寄存器,使8032微控制器的尋址空間擴(kuò)大256倍。具體設(shè)計(jì)中使用的頁(yè)數(shù),用戶可以通過(guò)ST公司提供的PSDspft Express軟件設(shè)置。如圖2所示。圖2 使用PSDspft Express軟件對(duì)存儲(chǔ)器分頁(yè)P(yáng)AGE寄存器共有8位,每一位可以定義兩頁(yè), 如圖1中我們定義了3位,也就是說(shuō),我們將器件中的存儲(chǔ)器分成了8頁(yè),我們可以將器件內(nèi)的每塊FLASH存儲(chǔ)器和SRAM分別定義到這8
47、頁(yè)中,片內(nèi)的8032微控制器在運(yùn)行時(shí)通過(guò)改寫(xiě)PAGE寄存器中的值,就可以方便的尋址每塊FLASH存儲(chǔ)器和SRAM了。 uPSD3200在系統(tǒng)編程實(shí)現(xiàn)步驟 ST的PSDsoft Express軟件包支持在系統(tǒng)編程,為了實(shí)現(xiàn)在系統(tǒng)編程,我們以ST的開(kāi)發(fā)套件DK3200 為例,講述在系統(tǒng)編程的過(guò)程。DK3200開(kāi)發(fā)套件以u(píng)PSD3234A為核心,還包含一些用于演示PWM控制、AD轉(zhuǎn)換等功能的源程序,因篇幅所限,我們僅討論如何使用該開(kāi)發(fā)套件實(shí)現(xiàn)在系統(tǒng)編程的功能。 為了實(shí)現(xiàn)在系統(tǒng)編程,我們按圖1將DK3200目標(biāo)板通過(guò)FlashLink編程適配器連接到PC機(jī)并口,然后啟動(dòng)PSDsoft Express軟
48、件?,F(xiàn)在我們點(diǎn)擊PSDsoft Express “STMicroelectronics JTAG/ISP”對(duì)話框,這時(shí)你將被問(wèn)到有多少JTAG設(shè)備在目標(biāo)板上,可能選擇“Only one”。然后進(jìn)入下一步。 這時(shí)你將看到如圖3顯示JTAGISP Operations界面,我們首先進(jìn)行第一步,在“Select Folder and programming file:”欄目中輸入目標(biāo)文件名(其文件擴(kuò)展名為obj),也可用鼠標(biāo)點(diǎn)擊Browse按鈕框, 以瀏覽并選取相關(guān)的文件,然后打開(kāi)該文件。如選中DK3200_1obj文件名,并打開(kāi)。在“Select device:”選擇要編程的芯片型號(hào),如PSD32
49、34A。然后我們開(kāi)始第二步,在“Select operation:”欄目中我們選擇ProgramVerify,在“Select PSD”欄目中選擇All,表明我們要編程PSD芯片中所有結(jié)構(gòu),當(dāng)然我們也可以通過(guò)該選項(xiàng)的下拉菜單僅對(duì)其中部分結(jié)構(gòu)進(jìn)行編程。在“Select of JTAG pins to use on”欄目中選擇JTAG口類型,我們?cè)谙吕藛沃羞x擇“6 pins”選項(xiàng)。在本步驟中,但我們點(diǎn)擊“Properties”時(shí),我們可以設(shè)置芯片在ISP過(guò)程中A,B,C,D口的輸入輸出狀態(tài)和電平,這些選擇由用戶的應(yīng)用決定。設(shè)置好這些選項(xiàng)以后,我們返回到JTAGISP Operations界面下,
50、點(diǎn)擊“Exexute”,在系統(tǒng)編程開(kāi)始,在該界面底下的記錄窗口將顯示進(jìn)程。最后一步是告訴我們,在ISP結(jié)束以后,我們可以保存JTAG配置信息,點(diǎn)擊“Save”,我們可以得到擴(kuò)展名為.JCF的文件。當(dāng)下次我們?cè)俅问褂脮r(shí),我們可以點(diǎn)擊“Browse”導(dǎo)入該文件就可以恢復(fù)原來(lái)JTAG配置了。圖3 JTAGISP Operations界面MSP430與A/D轉(zhuǎn)換器TLC549/1549的接口 MSP430系列的許多型號(hào)內(nèi)部都含有A/D轉(zhuǎn)換器 (ADCs),例如MSP430F13x系列和MSP430F14x系列,內(nèi)部均含有12位的A/D。但在許多應(yīng)用場(chǎng)合,不需要12位的A/D,只需要8位或10位的A/D
51、就足夠了。這時(shí)候用戶可能會(huì)選擇MSP430x11x系列,外部添加模數(shù)轉(zhuǎn)換器。在典型應(yīng)用中,低功耗、易操作的TLC549(8位A/D)或TLV1549(10位A/D)器件可經(jīng)很方便地與MSP430連接。本文介紹一個(gè)MSP430F1121與TLC549的接口實(shí)例。 1 硬件設(shè)計(jì) MSP430F1121使用三個(gè)I/O口與TLC549的接口串行相連,通過(guò)串行接口采樣。TLC549完成A/D轉(zhuǎn)換的時(shí)間小于17s。電路原理圖如下所示。TLC549MSP430F1121應(yīng)用電路2 工作原理 利用三個(gè)數(shù)字I/O接口,MSP430F1121驅(qū)動(dòng)TLC549 A/D轉(zhuǎn)換采用異步串行接口,在實(shí)際應(yīng)用中,MSP430F1120的I/O管腳P2.0和P2.1用P2的方向寄存器(P2DIR)配置為輸出,用P2的輸出寄存器(P2OUT)提供相應(yīng)位的輸出緩沖信息。P2.0管腳與TLC549的選片管腳CS相連,P2.1管腳與TLC549的輸入輸出時(shí)鐘I/O CLK相連。轉(zhuǎn)換數(shù)據(jù)從TLC549的數(shù)據(jù)輸出管腳DO讀出,進(jìn)入MSP430F1121的P2.3管腳。如上圖所示,MSP430F1121選擇了P2.
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 IEC 60068-2-83:2025 RLV EN Environmental testing - Part 2-83: Tests - Test Tf: Solderability testing of electronic components for surface mounting devices (SMD) by the wetti
- 【正版授權(quán)】 ISO/IEC 27017:2015 AR Information technology - Security techniques - Code of practice for information security controls based on ISO/IEC 27002 for cloud services
- 2025至2030中國(guó)電池包裝制品行業(yè)深度研究及發(fā)展前景投資評(píng)估分析
- 2025至2030中國(guó)特威茲勒行業(yè)發(fā)展趨勢(shì)分析與未來(lái)投資戰(zhàn)略咨詢研究報(bào)告
- 企業(yè)消防安全專題培訓(xùn)大綱
- 餐飲服務(wù)店長(zhǎng)培訓(xùn)
- 企業(yè)數(shù)字化辦公解決方案的實(shí)踐與思考
- 智慧城市公共服務(wù)中的公共安全體系構(gòu)建研究
- 商業(yè)策略與教育品牌危機(jī)的預(yù)防措施
- 智慧城市大數(shù)據(jù)驅(qū)動(dòng)的商業(yè)決策分析
- 計(jì)劃開(kāi)、竣工日期和施工進(jìn)度網(wǎng)絡(luò)圖112
- 2024初中數(shù)學(xué)競(jìng)賽七年級(jí)競(jìng)賽輔導(dǎo)講義七年級(jí)專題01 質(zhì)數(shù)那些事
- JJG 693-2011可燃?xì)怏w檢測(cè)報(bào)警器
- 德宏傣族景頗族自治州緬籍“三非”人員管理問(wèn)題研究的開(kāi)題報(bào)告
- 手繪pop海報(bào)制作
- 干濕交替環(huán)境下混凝土受硫酸鹽侵蝕劣化機(jī)理
- 統(tǒng)計(jì)職業(yè)道德規(guī)范內(nèi)容和要求
- GB/T 16886.12-2023醫(yī)療器械生物學(xué)評(píng)價(jià)第12部分:樣品制備與參照材料
- 糞便無(wú)害化處理廠建設(shè)方案
- 智慧的光芒普照每位學(xué)生 論文
- 銷售行業(yè)跑業(yè)務(wù)計(jì)劃書(shū)
評(píng)論
0/150
提交評(píng)論