何煦嵐
HE Xu-lan
(南京林業(yè)大學(xué) 信息院 計(jì)算機(jī)系,南京 210037)
嵌入式系統(tǒng)是計(jì)算機(jī)的一種應(yīng)用形式,在物理上嵌入于宿主系統(tǒng)中作為整個(gè)系統(tǒng)的一部分,并不獨(dú)立存在;在功能上,嵌入式計(jì)算機(jī)總是針對(duì)某種特定應(yīng)用,一經(jīng)編程,用戶一般不再修改。它是先進(jìn)的計(jì)算機(jī)技術(shù)、半導(dǎo)體技術(shù)、電子技術(shù)和各行業(yè)的具體應(yīng)用相結(jié)合后的產(chǎn)物,這一點(diǎn)就決定了它必然是一個(gè)技術(shù)密集、資金密集、高度分散、不斷創(chuàng)新的知識(shí)集成系統(tǒng)。因此,嵌入式系統(tǒng)的概念可以歸納為:以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟硬件可裁剪,適應(yīng)于應(yīng)用系統(tǒng)及對(duì)功能、可靠性、成本、體積、功耗等有嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。
由于系統(tǒng)使用的單片機(jī)僅僅依靠自身功能不能滿足系統(tǒng)的要求,需要應(yīng)用外部接口芯片對(duì)其功能進(jìn)行擴(kuò)展,而總線是單片機(jī)和外部各種接口芯片進(jìn)行數(shù)據(jù)交換的通道,基于單片機(jī)驅(qū)動(dòng)的USB總線的可靠性直接關(guān)系到系統(tǒng)的可靠性,系統(tǒng)主要采取以下措施來提高總線的抗干擾能力,以滿足接口的抗干擾要求。
1)采用三態(tài)門式總線驅(qū)動(dòng)器提供總線的抗干擾能力。核心8031單片機(jī)中,P0口(數(shù)據(jù),地址總線)可驅(qū)動(dòng)8個(gè)TTL門電路;P2口(地址總線)可驅(qū)動(dòng)4個(gè)TTL門電路,P3口(控制總線)可驅(qū)動(dòng)4個(gè)TTL門電路。當(dāng)負(fù)載超過規(guī)定時(shí),要加驅(qū)動(dòng)器??偩€驅(qū)動(dòng)器使用TTL型三態(tài)緩沖門電路74LS245,它可用于雙向驅(qū)動(dòng)。三態(tài)門緩沖器能減少分布電容與電感對(duì)總線工作的影響,在總線上可連接400個(gè)芯片,其總線抗干擾能力比OC(集電極開路)門大10倍,可驅(qū)動(dòng)100m長的線,而OC門只能在接3-5m長的傳輸線時(shí),才有好的抗干擾性能。
2)總線接收端加施密特電路做緩沖器抗干擾。系統(tǒng)印刷電路板之間的連接電纜的接收端采用門電路,由于信號(hào)經(jīng)長距離傳輸后會(huì)禍合一些噪聲,加上印刷板的噪聲共同作用,危害很大,威脅到系統(tǒng)的穩(wěn)定運(yùn)行,在接收端印刷板插座附件加施密特電路做緩沖器,可以濾除外部噪聲,提高總線的抗干擾性能。
3)改善總線的負(fù)載平衡,提高系統(tǒng)可靠性。
4)在靜態(tài)RAM電路中,使電流均勻流過印刷線路板,使存儲(chǔ)器存取瞬間所產(chǎn)生的噪聲電壓峰值變小。
抗千擾布線描施主要有:
1)輸入輸出端用的導(dǎo)線避免相鄰平行,應(yīng)加線間地線,以免發(fā)生反饋藕合,同時(shí)盡量縮短印刷電路板布線中,電源線和地線之間的距離。
2)印刷板導(dǎo)線的最小寬度主要由導(dǎo)線與絕緣基板間的粘附強(qiáng)度和流過它們的電流值決定。電路中選用的導(dǎo)線寬度為0.3mm,在印刷版密集度不是很高的情況下,盡可能用寬線,尤其是電源線和地線。導(dǎo)線的最小間距主要由最壞情況下的線間絕緣電阻和擊穿電壓動(dòng)態(tài)決定。在USB總線電路中,導(dǎo)線間距為0.15~0.2mm。
3)印刷導(dǎo)線拐彎處固定成圓弧形,以免影響電路的電氣性能。由于使用大面積銅箔,在長時(shí)間受熱的情況下,易發(fā)生銅箔膨脹和脫落現(xiàn)象。因此,在電路板上使用柵格狀銅箔,有利于排除銅箔與基板間粘合劑受熱產(chǎn)生的揮發(fā)性氣體。
4)焊盤中心孔比器件引線直徑稍大即可,焊盤太大,易形成虛焊。如果引線孔徑為Dmm,則焊盤直徑為 (D+l)mm。
通常來自供電系統(tǒng)和信號(hào)傳輸通道的干擾是影響整個(gè)系統(tǒng)可靠性的主要因素,因此硬件抗干擾設(shè)計(jì)應(yīng)將重點(diǎn)放在這里。硬件抗干擾設(shè)計(jì)得好可將絕大部分干擾拒之門外,使系統(tǒng)的穩(wěn)定性大幅度提高。
電源在向系統(tǒng)供電時(shí),也將其噪聲耦合到系統(tǒng)電源上,電源耦合的干擾對(duì)電路的影響非常大,給系統(tǒng)提供優(yōu)質(zhì)穩(wěn)定的電源是保證系統(tǒng)可靠性能的關(guān)鍵之一。為防止從電源系統(tǒng)引入干擾,可用隔離變壓器接入電網(wǎng),防止電網(wǎng)干擾侵入微機(jī)系統(tǒng),同時(shí)可作各種濾波器濾波。
信號(hào)傳輸通道包括系統(tǒng)的前向通道和后向通道,對(duì)信號(hào)傳輸通道的可靠性設(shè)計(jì)可從以下幾個(gè)方面著手:
1)利用光電耦合器及濾波器對(duì)輸入、輸出信號(hào)采用光電隔離措施,可將微處理器與前向通道、后向通道及其他部分從電氣上隔離開來,有效地防止干擾的侵入。對(duì)電路板的輸入信號(hào)及源自高噪聲區(qū)的信號(hào)加濾波器濾波進(jìn)一步加強(qiáng)抗干擾性。
2)采用負(fù)載阻抗匹配的措施,減小信號(hào)傳輸中的畸變
采用負(fù)載阻抗匹配的措施,使傳輸線兩端的負(fù)載阻抗和源阻抗與傳輸線特性阻抗相等,或在源端和負(fù)載端加入RLC網(wǎng)絡(luò)來匹配傳輸線的阻抗,消除數(shù)字信號(hào)在傳輸過程中由于反射、振鈴和交叉干擾作用而產(chǎn)生的畸變。
3)采用雙絞線傳輸減少傳輸線特性阻抗影響
傳輸線的特性阻抗分布參數(shù)必然會(huì)影響信號(hào)傳輸。傳輸線較長時(shí)其阻抗不可忽視,他的分布參數(shù)包括寄生電容和分布電感。為減少傳輸線特性阻抗的影響,可利用阻抗匹配雙絞線,若同時(shí)與光電耦合器或者平衡輸入接受器和輸出驅(qū)動(dòng)器聯(lián)合使用,效果會(huì)更好。
在微處理器運(yùn)行期間,芯片的懸空引腳尤其是懸空輸入引腳常給系統(tǒng)帶來不可預(yù)測的控制紊亂,因此為提高系統(tǒng)的穩(wěn)定性需處理好未用懸空的引腳。通??蓪⑽⑻幚砥魑从靡_接高電平或接地,或定義成輸出端;未用的外部中斷接高電平;未用的運(yùn)放同相輸入端接地,反相輸入端接輸出端等。
高頻電源、交流電源、強(qiáng)電設(shè)備、電弧產(chǎn)生的電火花,甚至雷電,都能產(chǎn)生電磁波,成為電磁干擾的噪聲源。對(duì)此可采取屏蔽措施,用金屬外殼將器件包圍起來,再將金屬外殼接地,這對(duì)屏蔽各種電磁感應(yīng)引起的干擾非常有效。
在嵌入式控制系統(tǒng)中,如能正確地采用軟件抗干擾措施,與硬件抗干擾措施構(gòu)成雙道抗干擾防線,無疑將大大提高工業(yè)控制系統(tǒng)的可靠性。
軟件工程的實(shí)踐表明,要提高軟件的可靠性,必須在軟件設(shè)計(jì)的全部階段(即問題定義、需求分析、總體設(shè)計(jì)、編碼、軟件測試和維護(hù)等階段)采取一系列規(guī)范化的方法來減少錯(cuò)誤,提高軟件的可維護(hù)性。軟件工程學(xué)中提出的很多方法雖然是針對(duì)大型軟件設(shè)計(jì)的,但其中的思想和一些技術(shù)仍可為小型軟件設(shè)計(jì)者采用,特別是軟件的結(jié)構(gòu)化設(shè)計(jì)方法、文檔要求以及程序編寫方法等。
3.1.1 以自下而上的可靠性設(shè)計(jì)方法,取代采MTBF
進(jìn)行自上而下分配方法
當(dāng)產(chǎn)品系統(tǒng)構(gòu)思和設(shè)計(jì)完成之后,單元的設(shè)計(jì)師們應(yīng)在設(shè)計(jì)前充分了解單元、模塊的環(huán)境條件,可能發(fā)生故障的關(guān)鍵部位及故障模式、機(jī)理,在設(shè)計(jì)時(shí)重點(diǎn)加以解決,且自下而上可能存在的可靠性問題都得到徹底解決,不僅可以將系統(tǒng)可靠性建立在踏實(shí)的基礎(chǔ)上,而且可以確保系統(tǒng)的可靠性指標(biāo)留有充分的余地。
3.1.2 結(jié)構(gòu)化程序設(shè)計(jì)
把程序要求分成若干獨(dú)立的、更小的程序要求或模塊化的功能要求,分別提出各自的要求/規(guī)格說明,并注明如何與程序的其他部分接口,還必須指出所有的輸入與輸出,以及測試要求。
3.1.3 容錯(cuò)設(shè)計(jì)
對(duì)于軟件錯(cuò)誤所引起的后果特別嚴(yán)重的情況,需采用容錯(cuò)軟件,其途徑有:1)加強(qiáng)軟件的健壯性:使程序設(shè)計(jì)能夠緩解錯(cuò)誤的影響,不致造成諸如死鎖或崩潰這樣的嚴(yán)重后果,并能指出錯(cuò)誤源。2)采用N(N>2)版本編程法:盡可能用不同的算法與編程語言,經(jīng)不同的班組編制,以提高各版本軟件的獨(dú)立性。這N個(gè)軟件版本同時(shí)在N臺(tái)計(jì)算機(jī)上運(yùn)行,各計(jì)算機(jī)問能進(jìn)行高效通信,并做出快速比較。當(dāng)結(jié)果不一致時(shí),按表決或預(yù)定的策略選擇輸出。3)恢復(fù)塊法:給需要做容錯(cuò)處理的塊提供備分塊,并附加錯(cuò)誤檢測和恢復(fù)措施。4)選擇性控制:為一個(gè)控制系統(tǒng)研制兩套不同的算法,一種是正常情況控制算法,另一種是應(yīng)付異常事故處理方法。若趨于危險(xiǎn)或故障區(qū)域,用后一種算法,驅(qū)使系統(tǒng)脫離危險(xiǎn)狀態(tài),待系統(tǒng)恢復(fù)正常后,又按正??刂扑惴ㄟM(jìn)行。
3.1.4 軟件重用
最大限度地重用現(xiàn)有的成熟軟件,不僅能縮短開發(fā)周期,提高開發(fā)效率,也能提高軟件的可維護(hù)性和可靠性。在項(xiàng)目規(guī)劃開始階段就要把軟件重用列入工作中不可缺少的一部分,作為提高可靠性的一種必要手段。
3.1.5 加強(qiáng)測試
為最大限度地除去軟件中的差錯(cuò),改進(jìn)軟件的可靠性,就要對(duì)軟件進(jìn)行完備測試。
3.2.1 檢查CPU的運(yùn)算功能
在特定的存儲(chǔ)區(qū)存儲(chǔ)一組確定的數(shù)據(jù),其中一個(gè)數(shù)據(jù)是其余數(shù)據(jù)經(jīng)過某些運(yùn)算的結(jié)果。在診斷時(shí),把參加運(yùn)算的數(shù)據(jù)按預(yù)定的運(yùn)算規(guī)律(如按位相加或異或等)進(jìn)行計(jì)算,將運(yùn)算結(jié)果與原來的存儲(chǔ)結(jié)果(檢查和)進(jìn)行比較,如有差錯(cuò)就輸出報(bào)警信號(hào)。
3.2.2 RAM的檢查
平時(shí)用奇偶效驗(yàn)。定時(shí)檢查時(shí)寫入隨機(jī)數(shù),再讀出來,檢查讀寫的一致性;然后再將各位求反,寫后讀,并檢查讀寫的一致性。
3.2.3 控制軟件及寄存器檢查
編制寄存器檢查程序,對(duì)于計(jì)算機(jī)內(nèi)部應(yīng)用程序逐條指令和逐個(gè)寄存器進(jìn)行檢查,發(fā)現(xiàn)錯(cuò)誤,立即停機(jī)并顯示故障點(diǎn)。
3.2.4 數(shù)據(jù)采集誤差的軟件對(duì)策
根據(jù)數(shù)據(jù)受干擾性質(zhì)及干擾后果的不同,采取的軟件對(duì)策各不相同,沒有固定的模式。對(duì)于實(shí)時(shí)數(shù)據(jù)采集系統(tǒng),為了消除傳感器通道中的干擾信號(hào),在硬件措施上常采取有源或無源RLC網(wǎng)絡(luò),構(gòu)成模擬濾波器對(duì)信號(hào)實(shí)現(xiàn)頻率濾波。同樣,運(yùn)用CPU的運(yùn)算、控制功能也可以實(shí)現(xiàn)頻率濾波,完成模擬濾波器類似的功能,這就是數(shù)字濾波。隨著計(jì)算機(jī)運(yùn)算速度的提高,數(shù)字濾波在實(shí)時(shí)數(shù)據(jù)采集系統(tǒng)中的應(yīng)用將愈來愈廣。在一般數(shù)據(jù)采集系統(tǒng)中,可以采用一些簡單的數(shù)值、邏輯運(yùn)算處理來達(dá)到濾波的效果。使用的方法有算術(shù)平均值法、比較取舍法、中值法、一階遞推數(shù)字濾波法等。
3.2.5 指令冗余技術(shù)
程序“跑飛”后往往將一些操作數(shù)當(dāng)作指令代碼來執(zhí)行,從而引起整個(gè)程序的混亂。采用“指令冗余技術(shù)”是使程序從“跑飛”狀態(tài)恢復(fù)正常的一種有效措施。所謂軟件冗余,就是在程序的關(guān)鍵地方人為地加入一些單字節(jié)指令NOP,或?qū)⒂行巫庸?jié)指令重寫,當(dāng)程序“跑飛”到某條單字節(jié)指令上,就不會(huì)發(fā)生將操作數(shù)當(dāng)作指令來執(zhí)行的錯(cuò)誤。這些指令在程序中是冗余的,但能提高軟件系統(tǒng)的可靠性。
采用軟件的抗干擾設(shè)計(jì)方法措施,大大地提高了系統(tǒng)的可靠性和容錯(cuò)性,有效地克服了各種干擾因素造成記錄數(shù)據(jù)出錯(cuò)的可能性,保證存儲(chǔ)數(shù)據(jù)的準(zhǔn)確性,提高了產(chǎn)品在工業(yè)現(xiàn)場適應(yīng)性。
[1]張兵強(qiáng).基于S3C240的嵌入式系統(tǒng)抗干擾性設(shè)計(jì)[J].電子工程師,2005,06.
[2]李伯成.嵌入式系統(tǒng)可靠性設(shè)計(jì)[M].電子工業(yè)出版社,2006.
[3]LXI Consortium.LXI Standard v1.0.www.lxistandard.org.September 2005.
[4]Michael Barr.Programming Embedded System in C and C++.O'Reilly Publisher.1999,1.