在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 嵌入式處理器MPC8250與CF卡的接口設計

            嵌入式處理器MPC8250與CF卡的接口設計

            作者: 時間:2012-06-27 來源:網(wǎng)絡 收藏

            當寫入一個扇區(qū)的數(shù)據(jù)時,首先比較所寫入的扇區(qū)號(CurrSectorNum),是否與備份數(shù)據(jù)的扇區(qū)號(SaveSectorNum)一致,如果一致,則把數(shù)據(jù)寫入備份數(shù)據(jù)中,并且設置SectorDirty為“1”;否則,判斷備份數(shù)據(jù)是否更改,即SectorDirty是否為“1”;如果不是,則從CF卡中讀取扇區(qū)號為CurrSectorNum的數(shù)據(jù)到tempSect中;否則,先把tempSect的數(shù)據(jù)寫回CF卡,然后從CF卡中讀取扇區(qū)號為CurrSectorNum的數(shù)據(jù)到tempSect中。最后,設置備份數(shù)據(jù)扇區(qū)號SaveSectorNum為當前數(shù)據(jù)的扇區(qū)號CurrSectorNum,將指定數(shù)據(jù)寫到備份數(shù)據(jù)中,并且設置SectorDirty為“1”。

            2.3 讀寫數(shù)據(jù)的相關寄存器

            根據(jù)CF卡標準,不能直接訪問CF卡的數(shù)據(jù)區(qū)域,而需要通過訪問CF卡內的相關寄存器(這些寄存器的基地址在CF卡初始化時配置,見2.1節(jié))間接讀取或者寫入數(shù)據(jù)。在訪問CF卡時必須對它們進行正確配置:

            (1)扇區(qū)數(shù)目寄存器(Sector_CNT Register)

            讀寫操作時,保存需要傳送的扇區(qū)數(shù)目。如果為0,則選擇256個扇區(qū);如果操作成功,操作結束時此寄存器為0;如果操作不成功,此寄存器包含了有待完成的扇區(qū)數(shù)目。

            (2)磁頭寄存器(Select_HEAD Register)

            其中包含了LBA位(1比特),用于設置地址訪問方式?!埃薄保煟蹋拢粒撸停铮洌澹牉檫壿嫷刂吩L問方式,“0”為柱面/磁頭/扇區(qū)訪問方式。本系統(tǒng)選擇邏輯地址訪問方式,則該寄存器還包含了邏輯地址的24~27位。

            (3)扇區(qū)編號寄存器(Sector_NUM Register)

            在采用邏輯地址訪問方式時,該寄存器包含了邏輯地址的0~7位。

            (4)柱面低位寄存器(Cylinder_LO Register)

            在采用邏輯地址訪問方式時,該寄存器包含了邏輯地址的8~15位。

            (5)柱面高位寄存器(Cylinder_HI Register)

            在采用邏輯地址訪問方式時,該寄存器包含了邏輯地址的16~23位。

            (6)狀態(tài)寄存器(Status Register)

            反映了CF卡的狀態(tài),其中包含了CF卡忙(Busy)位、出錯位(Err)、是否準備就緒位(Rdy)等。

            (7)數(shù)據(jù)寄存器(Data Register)

            存放讀寫數(shù)據(jù),是一個16位寄存器。

            2.4 讀數(shù)據(jù)

            從CF卡讀取一個扇區(qū)的數(shù)據(jù),如圖3所示。因為系統(tǒng)采用的CF卡的扇區(qū)大小為:SectorSize = 512字節(jié),假設讀寫數(shù)據(jù)的地址為Addr,則該地址所在的扇區(qū)號為:

            Sector = Addr % SectorSize。

            首先配置寄存器,設置讀取的扇區(qū)數(shù)目、相應地址和訪問模式;然后發(fā)送讀命令(0x20),等待CF卡空閑且準備就緒,再從數(shù)據(jù)寄存器中連續(xù)讀取一個扇區(qū)的數(shù)據(jù);完成讀取后,等待CF卡空閑;程序返回。

            2.5 寫數(shù)據(jù)

            將數(shù)據(jù)寫入CF卡的操作與從CF卡讀取數(shù)據(jù)的操作類似,如圖4所示。首先配置寄存器,設置寫入的扇區(qū)數(shù)目、相應地址和訪問模式;然后發(fā)送寫命令(0x30),等待CF卡空閑并且處于準備狀態(tài),連續(xù)向數(shù)據(jù)寄存器寫入一個扇區(qū)的數(shù)據(jù);完成寫入后,等待CF卡空閑,程序返回。

            本設計采用的操作系統(tǒng)是μC/OS——一個源代碼完全公開的嵌入式操作系統(tǒng)。所有讀寫CF卡的函數(shù)都用C語言編制,并能在系統(tǒng)中有效工作。


            上一頁 1 2 3 下一頁

            評論


            相關推薦

            技術專區(qū)

            關閉