<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > Reset與嵌入式系統應用的穩定性

Reset與嵌入式系統應用的穩定性

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

本文引用地址:http://dyxdggzs.com/article/256984.htm


在RTOS實(shí)時(shí)多任務(wù)操作系統軟件中,添加一任務(wù),設置網(wǎng)絡(luò )狀態(tài)標志位來(lái)監視網(wǎng)絡(luò )狀態(tài),當手機沒(méi)有信號時(shí)設置某標志;通過(guò)適當的判據,確認是否Reset,如果達到Reset條件就迅速地軟件復位,軟件重新初始化,如圖6所示。復位過(guò)程只能是“偷偷地”快速進(jìn)行,不能讓用戶(hù)察覺(jué),否則用戶(hù)體驗極為不好;要保持用戶(hù)界面,底層快速重啟,不知不覺(jué)地完成重啟。重啟后,網(wǎng)絡(luò )正常,用戶(hù)使用正常,巧妙地緩解,當然最終還是從本質(zhì)上去解決問(wèn)題。

5外設的復位及穩定性設計

5.1外設復位的特殊性與可控性

通常有LCD顯示、攝像頭和無(wú)線(xiàn)通信模塊等外設。外設正常工作也需要正確的復位。有些設計直接將外設的復位引腳與處理器的復位引腳連在一起,共用一個(gè)外部源,如圖7(a)所示。這種連接方式存在一些問(wèn)題。首先,這要求復位電路有足夠的復位時(shí)間,才能保證處理器和外設都正確復位;其次,一旦外設出問(wèn)題,那么處理器也需要復位,整個(gè)系統都需重新初始化;最后,容易產(chǎn)生非同步復位,在處理器復位后,對外設寫(xiě)入命令時(shí),可能被外設所復位掉,導致初始化出錯。



這些問(wèn)題可以從硬件和軟件兩個(gè)方面來(lái)處理。硬件方面,對處理器和外設的復位分別進(jìn)行復位電路設計,適當展寬復位脈沖。軟件方面,采用延時(shí)法,CPU上電后延時(shí)一段時(shí)間,等待外設復位充分,再進(jìn)行外設初始化。最可靠并最具操作性的是保證外設復位的可控性,使外設的復位信號與處理器復位信號分開(kāi),由處理器的某一GPIO來(lái)控制。當處理器穩定上電完成自身的初始化后,由處理器軟件控制外設復位,適當延時(shí)后,再對外設進(jìn)行初始化,如圖7(b)所示。



外設復位的可控性,對要求特殊復位時(shí)序的外設尤其有用。不同的外設,其復位時(shí)序要求不同,具有個(gè)性與特殊性,系統應根據具體的復位時(shí)序要求進(jìn)行個(gè)性化復位,否則可能導致外設工作不正常。

對于應用系統中有多個(gè)外設時(shí),不應該如圖8(a)那樣把多個(gè)外設的復位引腳連在一起,由處理器的一個(gè)GPIO控制,進(jìn)行一次外部。通常采用如圖8(b)的連接方式,處理器完成后,分別通過(guò)不同的GPIO控制、采用不同的延時(shí)對各外設分別進(jìn)行上電及復位。系統運行過(guò)程中,某個(gè)外設因受干擾工作不正常時(shí),可以單獨對該外設進(jìn)行復位操作,而不影響其他外設;有利于提高系統設計的靈活性和可靠性,能保證多個(gè)外設的可靠運行。

5.2實(shí)例分析:WiFi模塊的特殊復位信號

筆者做過(guò)一個(gè)用WiFi進(jìn)行數據傳輸的項目,整個(gè)系統如圖9所示,SoC處理器模塊采集到的數據通過(guò)UART傳送給WiFi模塊,WiFi模塊再通過(guò)2.4 GHz無(wú)線(xiàn)信號傳送給無(wú)線(xiàn)WiFi AP,最后經(jīng)以太網(wǎng)口傳送給PC,由PC把無(wú)線(xiàn)AP獲取的數據保存到硬盤(pán)。



調試時(shí),發(fā)現前端部分工作不穩定,WiFi模塊啟動(dòng)不穩定,各次啟動(dòng)現象不一致,有時(shí)能正常啟動(dòng),有時(shí)不能正常啟動(dòng)。最后,找到問(wèn)題的所在點(diǎn):WiFi模塊上電啟動(dòng)時(shí),沒(méi)有得到正確的復位。系統上電的RC復位電路產(chǎn)生的Reset信號并不能完全使系統穩定,需要再加一個(gè)脈沖信號,如圖10(a)所示。WiFi模塊的Reset時(shí)序包括兩個(gè)階段:大于20 ms的上電Reset和大于1 ms的硬件脈沖信號。微處理器SoC并初始化后,由I/O控制WiFi模塊上電及復位,按需求進(jìn)行了特殊復位處理,采用特殊的Reset信號和時(shí)序,如圖10(b)所示,模塊可以穩定啟動(dòng),工作正常,問(wèn)題解決。

激光二極管相關(guān)文章:激光二極管原理


評論


相關(guān)推薦

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

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>