提高單片機(jī)系統(tǒng)可靠性方法探討
(作者未知) 2011/6/23
(接上頁)2.3 印刷電路板的地線分布原則
TTL、CMOS器件的接地線要呈輻射網(wǎng)狀,避免環(huán)形;板上地線的寬度要根據(jù)通過的電流大小而定,最好不小于3 mm。在可能的情況下,地線盡量加寬;旁路電容的地線不要太長(zhǎng);功率地通過電流信號(hào)較大,地線應(yīng)較寬,必須與小信號(hào)地分開。
2.4 信號(hào)電纜屏蔽層的接地
信號(hào)電纜可以采用雙絞線和多芯線,又有屏蔽和無屏蔽兩種情況。雙絞線具有抑制電磁干擾的作用,屏蔽線具有抑制靜電磁感應(yīng)干擾的作用。
對(duì)于屏蔽線,屏蔽層最佳的接地點(diǎn)是在信號(hào)源測(cè)(一點(diǎn)接地)。
3 其他提高系統(tǒng)可靠性的方法
3.1 硬件抗干擾設(shè)計(jì)
(1)選擇抗干擾性能強(qiáng)的CPU。單片機(jī)和單片機(jī)抗干擾能力是不一樣的。如果你的產(chǎn)品是工作在干擾比較大的環(huán)境,可以選用抗干擾能力強(qiáng)的單片機(jī)。
(2)數(shù)字量的光電隔離。開關(guān)量信號(hào)實(shí)際上有不同的信號(hào)傳輸方式:①TTL電平;②RS232電平(非平衡信號(hào));③RS485電平(平衡信號(hào)或者差分信號(hào));④電流環(huán)路(有電流或者無電流)。
單片機(jī)的輸入輸出口線是最容易引進(jìn)干擾的地方;對(duì)于不使用的I/O口線,需要使用電阻上拉到高電平,不可懸置。直接將開關(guān)量信號(hào)接到單片機(jī)的口線上,是最不可取的設(shè)計(jì);至少要加一個(gè)緩沖驅(qū)動(dòng)的芯片隔離,而且這個(gè)芯片要跟CPU盡量近;在嚴(yán)重干擾的情況下,需要將所有的口線采用光耦光電隔離。光耦隔離就是采用電流環(huán)路傳輸,避免在長(zhǎng)線傳輸?shù)臅r(shí)候,在傳輸線上積累高壓和感應(yīng)信號(hào),使得數(shù)據(jù)紊亂甚至損壞TTL接口芯片,或者干擾單片機(jī)的正常運(yùn)行。注意,采用光電隔離是為了信號(hào)使用電流環(huán)路傳輸,而不是使用TTL電平傳輸,這意味著,從CPU模塊的角度看,開關(guān)量輸出、驅(qū)動(dòng)器件,如74LS244/245/07…等等,在CPU模塊這里,光耦在另外一塊電路板處;開關(guān)量輸入,光耦在CPU模塊處,而驅(qū)動(dòng)器件在另外一塊電路板處;這樣才能形成電流環(huán)路。數(shù)字信號(hào)的電流環(huán)路的電流一般在5 mA~10 mA,根據(jù)光耦的指標(biāo)而定。在工業(yè)環(huán)境下與CPU模塊相對(duì)獨(dú)立的鍵盤,需要使用光耦光電隔離接入到系統(tǒng)中,否則極易損壞接口芯片。
(3)模擬量的光電隔離。模擬量隔離有2種方法,一種是,使用線性光耦,隔離模擬量;由于線性光耦的價(jià)格昂貴,并且線性區(qū)也很窄,不推薦使用。比較常用的辦法是,選用SPI接口,或者3線接口的AD或者DA,把數(shù)據(jù)、時(shí)鐘和使能信號(hào),使用光耦隔離。這實(shí)際上是把模擬量的信號(hào)轉(zhuǎn)換成串行的開關(guān)量的數(shù)據(jù)流傳輸。另一種是使用4 mA~20 mA的電流環(huán)路,但是4 mA~20 mA的芯片價(jià)格比較昂貴,而且電路也復(fù)雜。
(4)模擬量的通訊傳輸。使用一個(gè)CPU,把模擬量讀入到CPU,再通過RS485接口把數(shù)據(jù)按照通訊協(xié)議,傳輸?shù)街鰿PU模塊;當(dāng)然,也可以傳輸開關(guān)量信號(hào)等。實(shí)際上,這是一個(gè)分布式的測(cè)控網(wǎng)絡(luò)的方法;多板的單片機(jī)測(cè)控系統(tǒng)經(jīng)常使用這種方法。
(5)獨(dú)立的“看門狗”。選用獨(dú)立的“看門狗”作為系統(tǒng)復(fù)位信號(hào)產(chǎn)生;當(dāng)系統(tǒng)跑飛時(shí),由于沒有“喂狗”,“看門狗”產(chǎn)生復(fù)位信號(hào),使得系統(tǒng)可以最大限度地找回跑飛前的數(shù)據(jù),盡可能重新開始平穩(wěn)的運(yùn)行。
(6)采用RS232電平傳輸。比如,機(jī)箱的面板顯示,經(jīng)常采用max7219,這時(shí)如果使用TTL電平,經(jīng)常被干擾使得顯示不正常;可以在發(fā)送端使用一片MAX232,將TTL電平轉(zhuǎn)換成RS232電平,在面板顯示電路板,選用一片MC1489,將RS232電平,轉(zhuǎn)換TTL電平,加強(qiáng)驅(qū)動(dòng)能力,就可以保證信號(hào)正確傳輸。
(7)采用RS422電平傳輸。同樣,也可以在發(fā)送端,采用一片MAX485,將TTL電平轉(zhuǎn)換成RS485電平,在接收端,選用一片MAX485,將RS485電平,轉(zhuǎn)換TTL電平,就可以保證信號(hào)正確傳輸。
3.2 單片機(jī)軟件抗干擾
在單片機(jī)軟件程序的設(shè)計(jì)中,采用一些措施來提高單片機(jī)系統(tǒng)工作的可靠性。軟件抗干擾研究的內(nèi)容主要是:①消除模擬輸入信號(hào)的噪聲(如數(shù)字濾波技術(shù));②程序運(yùn)行混亂時(shí)使程序進(jìn)入正軌的方法。這里針對(duì)后者提出幾種有效的軟件抗干擾方法。
3.2.1 指令冗余技術(shù)
單片機(jī)CPU取指令過程是先取操作碼,再取操作數(shù)。當(dāng)PC受干擾出現(xiàn)錯(cuò)誤,程序便脫離正常軌道“亂飛”,當(dāng)“亂飛”到某雙字節(jié)指令,若取指令時(shí)刻落在操作數(shù)上,誤將操作數(shù)當(dāng)作操作碼,程序?qū)⒊鲥e(cuò)。若“飛”到了三字節(jié)指令,出錯(cuò)概率更大。在關(guān)鍵地方人為插入一些單字節(jié)指令,或?qū)⒂行巫止?jié)指令重寫稱為指令冗余。通常是在雙字節(jié)指令和三字節(jié)指令后插入兩個(gè)字節(jié)以上的NOP。這樣即使“亂飛”程序飛到操作數(shù)上,由于空操作指令NOP的存在,避免了后面的(未完,下一頁)
|