<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è) > 嵌入式系統 > 設計應用 > 嵌入式系統的SD控制器設計實(shí)現

嵌入式系統的SD控制器設計實(shí)現

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

引言

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

  在目前的掌上電腦等中,(securedigital)卡以其體積小和引腳數少的優(yōu)勢,提供了比CF更好的外部設備擴展解決方案。因此,如何在中集成Host控制模塊,以及在操作里面其驅動(dòng)程序,都是目前系統者要考慮的問(wèn)題。

本文所采用的開(kāi)發(fā)平臺是基于SAMSUNG公司的S3C2410AARM微處理器,利用處理內部的控制模塊,采用GPIO擴展的方法SDHost。

使用S3C2410A的SD控制模塊,通過(guò)對GPIO功能的擴展來(lái)完成SD的檢測和寫(xiě)保護的功能,實(shí)現SDHost相對比較靈活。在進(jìn)行驅動(dòng)程序開(kāi)發(fā)過(guò)程中,對SD卡檢測進(jìn)行防抖動(dòng)處理是必要的,必須根據系統電路特性來(lái)確定合適的檢測時(shí)機,在驅動(dòng)程序里面實(shí)現防抖動(dòng)處理,保證整個(gè)系統的效率。

  1 SDHost硬件

  SCDA1A0100是ALPS公司生產(chǎn)的SD卡連接插槽,采用高可用的滑動(dòng)觸點(diǎn)開(kāi)關(guān),能夠準確地檢測到卡插入的時(shí)機。

  通過(guò)小型化和薄型化,已經(jīng)廣泛應用于PDA,數碼相機和個(gè)人電腦。當插槽有SD卡插入時(shí),SD卡會(huì )觸動(dòng)槽內的觸點(diǎn)開(kāi)關(guān),引起卡的檢測引腳和寫(xiě)保護引腳的相應電平變化。

  Samsung的S3C2410A內部支持SDHost的控制模塊,有SDHost控制寄存器和可以用于SDHost的IO引腳,可用編程的方法對其功能進(jìn)行選擇;但對于SD卡的檢測,寫(xiě)保護和插槽的電源使能等功能沒(méi)有專(zhuān)門(mén)的引腳。在本文實(shí)現中,對于卡檢測、電源引腳,通過(guò)GPIO擴展來(lái)實(shí)現。部分引腳定義如表1所示。

  表1 S3C2410A部分GPIO引腳功能定義

  

S3C2410A部分GPIO引腳功能定義

  S3C2410A的GPIO引腳分為GPA,GPB等8組,每組的IO引腳有控制寄存器(GPxCON),數據寄存器(GPxDAT),Pull-Up寄存器(GPxUP)進(jìn)行控制。每根引腳所在的GPxCON里有對應位控制其功能,通過(guò)對GPxCON編程來(lái)控制其功能,某一時(shí)刻,該引腳只能使用一種功能。

  對于SD卡檢測引腳,需要配置成外部中斷源(EINTx),對應的EXTINT0,EXTINT1和EXTINT2寄存器控制該中斷源的觸發(fā)模式:低電平觸發(fā),高電平觸發(fā),前沿觸發(fā),后沿觸發(fā)或是前后沿觸發(fā)。

  S3C2410A時(shí)鐘控制邏輯有兩個(gè)鎖相環(huán)路PLL(phaselockedloop):UPLL專(zhuān)用于USB時(shí)鐘;MPLL能夠產(chǎn)生系統要求的3種時(shí)鐘信號:FCLK供CPU內核使用,HCLK供系統總線(xiàn)使用,PCLK供外部總線(xiàn)使用。通過(guò)對MPLL控制寄存器MPLLCON配置,可以產(chǎn)生需要的時(shí)鐘頻率。

  在時(shí)鐘控制邏輯里,寄存器CLKCON用來(lái)控制如USB,LCD,UART,SD等接口模塊的時(shí)鐘使能。其中bit[9]用于控制SD/MMC接口的時(shí)鐘。SDHost控制器不能直接使用PCLK信號。正常工作模式下,FCLK為266MHz,PCLK為66.5MHz,而SD卡的最高時(shí)鐘為25MHz,MMC卡最高為20MHz。通過(guò)對SDIPRE寄存器的bit[0-7]設置可以對PCLK進(jìn)行分頻,選擇合適SD/MMC卡的工作頻率。分頻公式為:

  Clockrate=PCLK/2/(SDIPRE[0-7]+1)

  2 驅動(dòng)程序的實(shí)現

  2.1 驅動(dòng)程序體系結構

  我們?yōu)殚_(kāi)發(fā)平臺上運行的WindowsCE系統開(kāi)發(fā)了SDHost控制器的驅動(dòng)程序。WindowsCE下,驅動(dòng)程序是用戶(hù)態(tài)的DLL,這些DLL向內核提供一些接口函數,這樣設備管理模塊就可以通過(guò)這些函數與具體的硬件設備進(jìn)行通信。

  WindowsCE的驅動(dòng)程序模型主要有兩種類(lèi)型:流式接口驅動(dòng)和本地設備驅動(dòng)。流式設備驅動(dòng)向上層提供統一的流式設備接口,而本地設備驅動(dòng)可根據具體設備要求提供相應接口。

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

上一頁(yè) 1 2 3 下一頁(yè)

評論


相關(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>