<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 嵌入式控制系統(tǒng)電路抗干擾性的設(shè)計(jì)研究

          嵌入式控制系統(tǒng)電路抗干擾性的設(shè)計(jì)研究

          作者: 時(shí)間:2009-02-05 來(lái)源:網(wǎng)絡(luò) 收藏

          入式是為了實(shí)現(xiàn)某型軍用船艇模擬訓(xùn)練系統(tǒng)的操縱控制功能而開(kāi)發(fā)的。該系統(tǒng)基于軍民兩用的自動(dòng)技術(shù),采用模塊化設(shè)計(jì),可以方便地完成系統(tǒng)的升級(jí)改造,以適應(yīng)船艇改進(jìn)改型的需要,運(yùn)用前景十分廣闊。是船艇模擬訓(xùn)練系統(tǒng)的控制中樞,其設(shè)計(jì)是船艇模擬訓(xùn)練系統(tǒng)開(kāi)發(fā)的重要環(huán)節(jié),直接影響到系統(tǒng)的穩(wěn)定運(yùn)行。

          時(shí)鐘電路設(shè)計(jì)

          時(shí)鐘電路產(chǎn)生CPU的工作時(shí)序脈沖,是正常工作的關(guān)鍵。時(shí)鐘信號(hào)被干擾后將導(dǎo)致CPU的工作時(shí)序發(fā)生紊亂,使得系統(tǒng)不能正常工作。

          時(shí)鐘信號(hào)不僅是對(duì)噪聲干擾最敏感的部位,同時(shí)也是單片機(jī)系統(tǒng)的主要噪聲源。單片機(jī)的時(shí)鐘信號(hào)為頻率很高的方波,由與其頻率相同的正弦基波和其倍頻正弦波疊加而成。頻率越高,越容易發(fā)射出去成為噪聲源。此外,時(shí)鐘頻率越高,信息傳輸線上信息變換頻率也越高,致使線間串?dāng)_、反射干擾以及公共阻加劇。因而,在滿足系統(tǒng)功能的前提下,應(yīng)盡量降低時(shí)鐘頻率,這對(duì)降低系統(tǒng)的電磁發(fā)射,提高系統(tǒng)的抗干擾性能極為有利。

          系統(tǒng)的時(shí)鐘電路的抗干擾設(shè)計(jì)主要有以下幾步。

          ● 時(shí)鐘脈沖電路盡量靠近CPU,引線盡量短而粗。
          ● 用地線包圍振蕩電路,晶體外殼接地。
          ● 晶振電路電容性能穩(wěn)定,容量準(zhǔn)確且遠(yuǎn)離發(fā)熱元件。
          ● 印刷電路板上大電流信號(hào)線、電源變壓器遠(yuǎn)離晶振信號(hào)的連線。
          ● 對(duì)于外部時(shí)鐘源電路,對(duì)其芯片電源采取濾波措施。
          ● 時(shí)鐘電路為其他芯片提供時(shí)鐘信號(hào)時(shí),采用隔離和驅(qū)動(dòng)措施。

          復(fù)位電路的設(shè)計(jì)

          控制系統(tǒng)設(shè)計(jì)中,復(fù)位電路的設(shè)計(jì)非常重要,因?yàn)閱纹瑱C(jī)應(yīng)用系統(tǒng)工作時(shí),會(huì)經(jīng)常要求進(jìn)入復(fù)位工作狀態(tài),因而要求復(fù)位電路必須準(zhǔn)確、可靠地工作,其復(fù)位狀態(tài)與應(yīng)用系統(tǒng)的復(fù)位狀態(tài)是密切相關(guān)的。

          單片機(jī)的復(fù)位是靠外部電路實(shí)現(xiàn)的,在時(shí)鐘電路工作后,只要在單片機(jī)的RST引腳上出現(xiàn)24個(gè)振蕩脈沖(2個(gè)機(jī)器周期)以上的高電平,單片機(jī)就實(shí)現(xiàn)初始化狀態(tài)復(fù)位。為了保證系統(tǒng)可靠的復(fù)位,在設(shè)計(jì)復(fù)位電路時(shí),要使RST引腳保持10ms以上的高電平。只要RST保持高電平,MCS-51單片機(jī)就循環(huán)復(fù)位;當(dāng)RST從高電平變?yōu)榈碗娖揭院螅瑔纹瑱C(jī)就從0000H地址開(kāi)始執(zhí)行程序。在復(fù)位有效期間,ALE、PSEN、P0、P1、P2、P3口引腳輸出高電平,即使準(zhǔn)雙向口皆處于輸入狀態(tài),并將07H寫(xiě)入棧指針SP(即設(shè)定堆棧底為07H)。同時(shí),將程序計(jì)數(shù)器PC和其余的特殊功能寄存器清零(不定的位除外)。復(fù)位不能影響單片機(jī)內(nèi)部的RAM狀態(tài),但上電復(fù)位時(shí),由于是重新供電,RAM在斷電時(shí)數(shù)據(jù)丟失,上電復(fù)位后為隨機(jī)數(shù)。復(fù)位后單片機(jī)的初始復(fù)位狀態(tài)如表1所示。

          系統(tǒng)中采用程序運(yùn)行監(jiān)視電路設(shè)計(jì)來(lái)滿足系統(tǒng)的復(fù)位工作要求。程序運(yùn)行監(jiān)視通常都由各種類(lèi)型的程序監(jiān)視定時(shí)器WDT(Watch Dog Timer),俗稱“看門(mén)狗”。WDT可保證程序非正常運(yùn)行,如程序“死機(jī)”時(shí),能及時(shí)進(jìn)入復(fù)位狀態(tài)。WDT通常有三種類(lèi)型:?jiǎn)纹瑱C(jī)內(nèi)部的WDT功能單元;μP監(jiān)視控制器件的WDT電路;單片機(jī)外部設(shè)置的WDT電路。本系統(tǒng)中,我們使用單片機(jī)外部設(shè)置WDT電路。

          圖1是外部WDT電路示意圖。WDT是一個(gè)帶有清除端CLR及溢出信號(hào)OF輸出的定時(shí)器。定時(shí)器由脈沖源PWDT、循環(huán)計(jì)數(shù)器、單穩(wěn)態(tài)電路組成。PWDT提供循環(huán)計(jì)數(shù)器的計(jì)數(shù)脈沖,單穩(wěn)態(tài)將循環(huán)計(jì)數(shù)器溢出信號(hào)轉(zhuǎn)換成單片機(jī)的復(fù)位脈沖WRST。

          圖1 單片機(jī)外部WDT電路示意圖

          系統(tǒng)使用的MAX813L與8031的接口電路如圖2所示。該電路可實(shí)現(xiàn)看門(mén)狗、電源故障監(jiān)控的功能。MAX813L是一款帶有WDT和電壓監(jiān)控功能的芯片,其WDT功能可在輸入于1.6s內(nèi)沒(méi)有變化時(shí),產(chǎn)生復(fù)位輸出。同時(shí),電壓監(jiān)控功能可以保證當(dāng)電源電壓低于1.25V時(shí),產(chǎn)生低掉電輸出。此外,MAX813L還能在上電時(shí)自動(dòng)產(chǎn)生200ms寬的復(fù)位脈沖,并具備人工復(fù)位功能,可以給CPU提供良好的保護(hù)。

          圖2 MAX813L與單片機(jī)8031的連接圖

          通過(guò)把WO與WR直接相連接,一旦程序跑飛,WO將變?yōu)榈碗娖?,并保?40ms以上。該信號(hào)將使MAX813L復(fù)位,同時(shí)清零看門(mén)狗定時(shí)器,使RST引腳輸出高電平,將單片機(jī)復(fù)位。200ms結(jié)束后,單片機(jī)脫離復(fù)位狀態(tài),重新恢復(fù)正常的程序運(yùn)行。

          上述的硬件“看門(mén)狗”用于解決主程序的死循環(huán)故障,對(duì)于程序中出現(xiàn)的中斷故障,系統(tǒng)使用軟件“看門(mén)狗”來(lái)實(shí)現(xiàn)對(duì)中斷的發(fā)現(xiàn)和處理。軟件“看門(mén)狗”會(huì)在主程序中設(shè)置變量t0和t1。當(dāng)T0發(fā)生一次中斷,將t0加1,T1發(fā)生一次中斷,將t1加1。在主程序的功能模塊開(kāi)始處記錄下t0、t1的當(dāng)前值,設(shè)置計(jì)數(shù)器的計(jì)數(shù)周期,使之小于功能模塊的執(zhí)行時(shí)間。這樣,在功能模塊的執(zhí)行周期內(nèi),計(jì)數(shù)器肯定會(huì)發(fā)生中斷,通過(guò)在功能模塊的出口處檢測(cè)這種變化來(lái)確定是否發(fā)生了中斷關(guān)閉情況,并進(jìn)行故障的處理。

          控制器總線的抗干擾設(shè)計(jì)

          由于系統(tǒng)使用的單片機(jī)僅僅依靠自身功能不能滿足系統(tǒng)的要求,需要應(yīng)用外部接口芯片對(duì)其功能進(jìn)行擴(kuò)展。而總線是單片機(jī)和外部各種接口芯片進(jìn)行數(shù)據(jù)交換的通道,總線的可靠性直接關(guān)系到系統(tǒng)的可靠性,系統(tǒng)主要采取以下措施來(lái)提高總線的抗干擾能力。

          采用三態(tài)門(mén)式總線驅(qū)動(dòng)器提供總線的抗干擾能力。總線驅(qū)動(dòng)器使用TTL型三態(tài)緩沖門(mén)電路74LS245,74LS245可用于雙向驅(qū)動(dòng)。三態(tài)門(mén)緩沖器能減少分布電容與電感對(duì)總線工作的影響,在總線上可連接400個(gè)芯片,其總線抗干擾能力比OC(集電極開(kāi)路)門(mén)大約大10倍,可驅(qū)動(dòng)100m的線。

          總線接收端加施密特電路做緩沖器抗干擾。在接收端印刷板插座附件加施密特電路來(lái)做緩沖器,可以濾除外部噪聲,提高總線的抗干擾性能。

          8031的總線由三態(tài)輸出器件構(gòu)成的,在三態(tài)驅(qū)動(dòng)器(D)都是高阻抗時(shí)是不穩(wěn)定的。可使用上拉電阻,將總線通過(guò)5kΩ電阻R接到電源,使其在瞬間處于穩(wěn)定的高電位,從而增強(qiáng)抗干擾能力。

          改善總線的負(fù)載平衡,提高系統(tǒng)可靠性。

          給動(dòng)態(tài)RAM加旁路電容,每片動(dòng)態(tài)RAM的供電端上對(duì)地并接一個(gè)0.1μF的電容以抑制干擾,同時(shí)盡量縮短電源線和地線的印刷電路板布線。

          在靜態(tài)RAM電路中,使電流流動(dòng)印刷線跳板的各處都比較均勻,不讓電流變動(dòng)大的區(qū)域在印刷電路板各處頻繁移動(dòng)。使存儲(chǔ)器存取瞬間所產(chǎn)生的噪聲電壓峰值變小。

          接口電路的抗干擾設(shè)計(jì)

          1 前向通道的抗干擾設(shè)計(jì)

          前向通道是單片機(jī)應(yīng)用系統(tǒng)的信號(hào)采集通道,從信號(hào)的傳感、變換、到單片機(jī)的輸入。在前向通道設(shè)計(jì)中主要考慮集成運(yùn)算放大器的抗干擾設(shè)計(jì)、運(yùn)放電路抗干擾裝配、多路開(kāi)關(guān)的抗干擾設(shè)計(jì)以及A/D轉(zhuǎn)換電路的抗干擾設(shè)計(jì)。

          集成運(yùn)放的抗干擾設(shè)計(jì)包括集成運(yùn)放電路內(nèi)部、外部噪聲的控制和集成運(yùn)放電路共模噪聲控制。

          運(yùn)放電路抗干擾裝配措施包括:

          ● 將高輸入阻抗部分用銅箔線圍起來(lái),并與電路的等電位低阻抗部分相接,由于隔離線和高輸入阻抗部分的電位相近,泄露電流很小。
          ● 采用絕緣性能很好的聚四氟乙烯制成的接線底座,安裝在印刷電路板上,高輸入阻抗部分也都在此接線柱上相連,以保證線路的高絕緣性和抗震性。
          ● 將電位器和固定電阻并聯(lián),盡量采用線繞型大尺寸電位器。

          多路開(kāi)關(guān)的抗干擾也是以抑制噪聲為主,主要包括:
          ● 在多路轉(zhuǎn)換器輸入端接入共模扼流圈,以抑制外部傳感器引入的高頻共模噪聲。
          ● 多路轉(zhuǎn)換器的隔離變壓器采用雙重屏蔽接法,切斷變壓器分布電容傳送高頻噪聲和脈沖噪聲的通道。
          ● 在單片機(jī)和數(shù)模轉(zhuǎn)換器之間采用光電耦合隔離的方法,使各自產(chǎn)生的高頻噪聲不能侵入對(duì)方。
          ● 用電容器將前置放大器的頻帶變窄,降低其對(duì)高頻噪聲的響應(yīng)能力,抑制高頻噪聲。

          A/D轉(zhuǎn)換器對(duì)模擬量的微小噪聲影響十分敏感,為抑制其干擾主要采取以下措施。
          ● 使用金屬殼聚丙烯電容器做積分電容器,把積分電容器用銅箔包起來(lái),單獨(dú)接地。
          ● 給每片集成電路接入一個(gè)旁路電容器以降低電源的高頻阻抗,克服芯片內(nèi)部的噪聲和電源噪聲。
          ● 調(diào)整各級(jí)電路的增益分配,在各級(jí)運(yùn)算放大器前相應(yīng)地接入簡(jiǎn)易低通濾波器,使噪聲在傳送過(guò)程中不斷削弱,同時(shí)在運(yùn)放電路與ADC輸入電路之間加一個(gè)抗混疊濾波器以減少運(yùn)算放大器的噪聲。
          ● 設(shè)計(jì)ADC輸入保護(hù)電流,因?yàn)殡娐肥褂谩?5V運(yùn)算放大器驅(qū)動(dòng)一個(gè)電源電壓為±5V的CMOS ADC,容易造成ADC輸入端電壓過(guò)高,我們?cè)?15V和+5V電源之間以及-15V和-5V電源之間分別加一個(gè)78L05三端穩(wěn)壓塊。同時(shí),在ADC輸入端接兩只肖特基二極管防止電流過(guò)大。
          ● 對(duì)電源單獨(dú)去耦,將采樣時(shí)鐘電路與系統(tǒng)數(shù)字電路和數(shù)字電路中的噪聲源都隔離,以盡量避 免數(shù)字輸出與采樣時(shí)鐘信號(hào)耦合。

          2 后向通道的抗干擾設(shè)計(jì)

          后向通道的抗干擾主要是D/A轉(zhuǎn)換器即DAC的抗干擾設(shè)計(jì)。在系統(tǒng)中主要采用以下步驟。

          ● 采用多層PCB(印刷電路板),應(yīng)用大面積的地線和電源線,在電路板的裝配過(guò)程中不用插座,直接安裝在電路板上。將模擬電源與數(shù)字電源分開(kāi)供電,分離接地,分別加以去耦。模擬地與數(shù)字地分離并且近接于平面地。
          ● 在電源和相應(yīng)的地之間并聯(lián)跨接一個(gè)10μF的鉭電容和0.01μF的片狀電容,去耦電容近接D/A轉(zhuǎn)換器件的引腳,以對(duì)電源去耦。
          ● 使用分段式電源結(jié)構(gòu)器件,將幾個(gè)最高權(quán)位的電流源改為等值電流源,由1位驅(qū)動(dòng)一個(gè)最高權(quán)電流源(最大電流)改為驅(qū)動(dòng)多個(gè)等值電流源,以抑制開(kāi)關(guān)時(shí)間不統(tǒng)一造成的短時(shí)脈沖波形干擾。
          ● 在DAC輸入線和驅(qū)動(dòng)器輸出線之間串接一個(gè)50Ω的電阻,減少數(shù)字輸入上的超調(diào)和瞬態(tài)干擾。
          ● 在輸出與地之間跨接一個(gè)5pF的電容,抑制數(shù)字量輸入的瞬時(shí)變化和開(kāi)關(guān)不同步引起的尖鋒脈沖干擾。

          3 人機(jī)通道的抗干擾設(shè)計(jì)

          人機(jī)通道的抗干擾設(shè)計(jì)主要包括按鍵電路的抗干擾設(shè)計(jì)和LED顯示接口的抗干擾設(shè)計(jì)。

          系統(tǒng)的按鍵抗干擾就是在按鍵確認(rèn)周期中使用連續(xù)多次的采樣來(lái)判定按鍵動(dòng)作。按鍵確認(rèn)周期應(yīng)該大于按鍵變換周期并遠(yuǎn)小于一次按鍵的穩(wěn)定周期。

          系統(tǒng)的LED顯示部分采用5位七段LED譯碼/驅(qū)動(dòng)芯片MC14489。由于LED的接口在應(yīng)用時(shí),很容易受到其他電子設(shè)備的干擾,使顯示內(nèi)容易發(fā)生改變,我們還需對(duì)其進(jìn)行抗干擾設(shè)計(jì)。

          源部分加入雙電容濾波,然后結(jié)合軟件設(shè)計(jì),在控制腳的兩個(gè)步驟程序之間加入一段延時(shí),使正常信號(hào)的頻譜向低頻部分集中,以較好地通過(guò)濾波電容控制腳所要求的最小電平寬度。

          linux操作系統(tǒng)文章專(zhuān)題:linux操作系統(tǒng)詳解(linux不再難懂)


          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();