單片機系統設計的誤區與對策
單片機系統在軍事、工業(yè)、民用產(chǎn)品中的應用越來(lái)越廣。它將許多以往用硬件實(shí)現的功能由軟件來(lái)完成,體積小巧、功能豐富、智能化程序度,但在可靠性方面也面臨許多新問(wèn)題。用現場(chǎng)電磁兼容性(EMC)理論剖析單片機系統設計中的某些傳統觀(guān)念,會(huì )發(fā)現許多誤區,并且有些誤區至今還在工程界廣為存在。
1 誤區之一:有了看門(mén)狗就不會(huì )死機
死機是指CPU的程序指針進(jìn)入一個(gè)死循環(huán),無(wú)法執行正常的程序流程。其外在表現常常是:正常功能喪失,按鍵無(wú)響應,顯示凝固。單片機死機后,只有復全才能走出死循環(huán),執行正常的程序流程。眾所屬知,克服死機的最有效手段是加看門(mén)狗(WatchDog)。
目前用得最廣泛的看門(mén)狗實(shí)際上是一個(gè)特殊的定時(shí)器DogTimer。DogTimer按固定速率計時(shí),計滿(mǎn)預定時(shí)間就發(fā)出溢出脈沖使單片機復位。如果每次在 DogTimer溢出前強行讓DogTimer清零,就不會(huì )發(fā)出溢出脈沖。清零脈沖由CPU發(fā)出,在單片機程序中每隔一段語(yǔ)句放一個(gè)清DogTimer的語(yǔ)句——FeedDog語(yǔ)句,以保證程序正常運行時(shí)DogTimer不會(huì )溢出。一旦程序進(jìn)入一個(gè)不含FeedDog語(yǔ)句的死循環(huán),DogTimer將溢出,導致單片機復位,跳出這個(gè)死循環(huán)。本文稱(chēng)這種看門(mén)狗為典型看門(mén)狗,典型看門(mén)狗已被集成比,如MAX706、MAX791等[1];還有許多單片機本身集成了這種看門(mén)狗,如PIC16C57、MC68HC705等,具體電路可參閱這些芯片的技術(shù)資料[2]。
評論