天堂网www中文天堂在线/色操在线/成人精品视频一区二区三区/欧美特黄一片aa大片免费看

  • 超大容量存儲器K9F2G08U0M及其在管道通徑儀中的應用(2)———超大容量存儲器K9F2G08U0M及其在管道通徑儀中的應用(2)

    下面是按頁讀操作函數的C語言代碼。
    sbit RdyorBsy=P0^0;
    unsigned ch ar xdata * data pK9F;
    void PageRead(unsigned int ColAdd,unsigned long
    RowAdd,unsigned int len)
    {
    unsigned int i=0;
    unsigned ch ar ColTemp,RowTemp;
    ColTemp=(unsigned ch ar)(ColAdd>>8);
    RowTemp=(unsigned ch ar)(RowAdd>>16);
    ColTemp &=0x0F;
    RowTemp &=0x01;

    pK9F=0x8002;
     * pK9F=0x00;
    pK9F=0x8001;
     * pK9F=(unsigned ch ar)(ColAdd);
     * pK9F=ColTemp;
     * pK9F=(unsigned cha r)(RowAdd);
     * pK9F=(unsigned ch ar)(RowAdd>>8);
     * pK9F=RowTemp;
     pK9F=0x8002;
     * pK9F=0x30;

    while(RdyorBsy);
    while(!RdyorBsy);
    pK9F=0x8000;
    for(i=0;i
      OutputData[i]= * pK9F;
    }
    3.2 頁編程
    向器件寫入數據時先將數據寫入數據寄存器中,器件寫入操作是基于頁進行的,同時允許在一個頁編程周期內對一頁內的連續部分編程。若不進行擦除,則對同一頁的連續部分編程不能超過4次。
    器件支持在1頁范圍內的隨機數據輸入,由隨機輸入命令碼85H啟動,如圖6中虛線框內部分所示,在1頁范圍內可以啟動任意多次隨機輸入操作。數據輸入完畢后,寫入頁編程確認命令10H,將數據寄存器中的內容寫入存儲區。寫入完成后,需要讀狀態寄存器(通過寫入70H實現)判斷操作是否成功。若未能成功寫入,應將當前塊聲明為壞塊,并進行塊數據替換操作,以保證整個系統的可靠性。
    此外應注意,同一塊內頁編程時必須從地址最低的頁開始向高地址的頁依次編程,頁地址隨機的頁編程是被禁止的。
    下面是頁編程子函數的C語言代碼。

     

    unsigned ch ar PageWrite(unsigned int ColAdd,unsigned long
    RowAdd)
    {
    unsigned int data i=0;
    unsigned ch ar data Status=0;
    unsigned c har data ColTemp,RowTemp;

     

    ColTemp=(unsigned ch ar)(ColAdd>>8);
    RowTemp=(unsigned c har)(RowAdd>>16);
    ColTemp &=0x0F;
    RowTemp &=0x01;

    pK9F=0x8002;
     * pK9F=0x80;
    pK9F=0x8001;
     * pK9F=(unsigned cha r)(ColAdd);
     * pK9F=ColTemp;
     * pK9F=(unsigned ch ar)(RowAdd);
     * pK9F=(unsigned ch ar)(RowAdd>>8);
     * pK9F=RowTemp;
    pK9F=0x8000;
    for(i=0;i<2112;i++)
      * pK9F=InputData[i];
    pK9F=0x8002;
      * pK9F=0x10;

    while(RdyorBsy);
    while(!RdyorBsy);

    pK9F=0x8002;
     * pK9F=0x70;
    pK9F=0x8000;
    Status=* pK9F;
    Status &=0x01;
    return (Status);
    }
    3.3 塊擦除
    擦除操作以塊為單位進行,由于器件分為2 048塊,因此輸入的地址碼中只有A18~A2的11位有效,其余位將被忽略。通過輸入確認命令碼來啟動擦除以防止誤操作。塊擦除流程如圖7所示。同頁編程操作類似,擦除完畢后也應該讀狀態寄存器并處理返回結果。

     

     


    3.4 頁復制
        頁復制操作用來快速有效地實現頁間數據移動,這是由于省去了比較費時的與片外設備之間的讀寫操作。這一特性的優勢在塊替換操作用于頁間數據復制時體現尤為明顯。其實該操作是按頁讀與頁編程操作的復合,頁復制讀命令35H將頁中數據移至數據寄存器中,而頁復制寫命令85H將數據復制到目標頁中。頁復制流程圖如圖8所示。

     

     


    該操作也可以將原始頁中的數據修改后寫入目標頁,如流程圖8中虛線框內部分。
    需要注意的是,頁復制操作只能在奇數頁之間或偶數頁之間進行,奇偶頁之間的數據移動將被禁止。
    3.5 緩存區編程
    芯片中除1頁大小的數據寄存器外,還有一個1頁大小的緩沖寄存器。該緩沖寄存器可以在數據寄存器參與頁編程的同時接收外部數據,等待數據寄存器空閑時將數據轉移其中,然后繼續接收數據。因此,采用緩存區編程操作在連續寫入多頁數據時將會大大提高效率。
    緩存區編程流程如圖9所示。當第一組數據寫入緩沖寄存器時,寫入緩存命令15H,將數據傳遞給數據寄存器并啟動頁編程,然后使緩沖寄存器空閑,準備接收下一組數據。在這個過程中芯片將處于忙狀態,若內部編程操作未完成,忙狀態持續的時間將被延長。

     


        需要注意的是,該操作只能在同一塊內進行,因此在多塊數據寫入時需要注意每塊的最后一頁。若系統僅僅通過芯片的Ready/Busy引腳監測編程進度,則最后一頁的寫入操作應該由頁編程命令10H啟動。另外也可以通過讀狀態寄存器中的I/O 5位來判斷。
        K9F2G08U0M 是一種新型的超大容量Flash存儲器,以其非易失、功耗低、操作簡單而在單片嵌入式系統中得到廣泛應用。本文在管道通徑儀的開發過程中,根據對外部存儲器接口的深入理解,將存儲器芯片的兩個控制線ALE和CLE用作地址線,使得對存儲器的操作更簡捷高效。文中的程序已經過實際驗證,限于篇幅,只給出按頁讀和頁編程部分的代碼。

     
     
    網站首頁  |  關于我們  |  聯系我們  |  廣告服務  |  版權隱私  |  友情鏈接  |  站點導航