新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 嵌入式系統的SD控制器設計實現

        嵌入式系統的SD控制器設計實現

        作者: 時間:2011-09-06 來源:網絡 收藏
        3 卡檢測與防抖動

        本文引用地址:http://www.104case.com/article/150261.htm

          初始化時,_nCD檢測引腳被設置為上升沿和下降沿觸發,因此引腳電平發生變化時,都會有中斷產生。當硬件產生中斷時,進入核心ISR,對_nCD進行檢測,返回相應的中斷標識碼,對于是插入還是拔出,則由驅動程序的IST來處理。

          由于SD卡插槽采用的是機械式開關,在插拔卡的時候,機械開關斷開、閉合時會有抖動,導致SD卡檢測引腳的電平不穩定,從而有可能引起對卡的狀態的誤判。這樣會導致加載上層驅動,初始化失敗造成宕機。為了使每次插拔只響應一次,必須要采用相應的方法來防止抖動,避開按鍵按下的抖動時間。

          在驅動程序IST里采用延時采樣的方法來避免抖動,同時也嘗試了多次采樣的檢測方法來避開用戶按鍵的抖動時間。

          延時采樣是IST在收到SD卡檢測事件以后,并不是立刻進行引腳信號判斷,而是延時一段時間采樣,延遲時間要根據系統電路特性而定,然后檢測引腳信號,判斷插槽的狀態是卡插入還是拔出。多次采樣方法是IST在收到SD卡檢測事件以后,要對引腳進行多次等間隔采樣,根據采樣出的多數電平信號的值來決定插槽卡的狀態。多次采樣的方法可以有更短的響應時間,當采樣出的電平信號多數值不能決定卡的狀態時,需要進行重新采樣判斷。

          對于延時采樣的防抖動方法,必須考慮到的效率。

          ISR運行于系統核心態,它的延時會影響整個系統,導致用戶的輸入響應時間過長,造成整體性能的下降。而WindowsCE的驅動程序是用戶態的DLL,作為用戶進程來調度,因此在SDHost的驅動程序里防抖動,可保證系統整體性能不下降。

          對于上述兩種防抖動方法,我們進行了連續插拔的測試,結果如圖3所示。測試結果表明,這兩種方法都取得了較好的效果,基本上解決了SD卡檢測的抖動問題。

          

        SD卡插拔宕機次數測試

          圖3 SD卡插拔宕機次數測試

          4 結語

          本文介紹的SDHost已經應用在工程實踐中,結果表明是靈活有效的,防抖動對于類似的也具有一定的借鑒意義。

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 两当县| 河南省| 长岛县| 镇安县| 咸宁市| 乡宁县| 松滋市| 托克托县| 平江县| 定边县| 汽车| 乌拉特后旗| 保靖县| 凤凰县| 义乌市| 沈阳市| 台中市| 申扎县| 中方县| 萝北县| 泽州县| 比如县| 无为县| 白河县| 全椒县| 遵义县| 呼玛县| 鄯善县| 乐业县| 隆尧县| 连州市| 通渭县| 林西县| 商丘市| 石渠县| 泸西县| 治多县| 兴城市| 苍山县| 彭泽县| 临泉县|