關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > 基于USB2.0的高性能移動存儲設備的設計

        基于USB2.0的高性能移動存儲設備的設計

        作者: 時間:2010-03-02 來源:網絡 收藏

          K9K8U0A編程器件以頁為單位編程,它允許在單頁編程周期中對部分頁或一個甚至連續的多達2112個連續字節編程。一個頁編程周期由2個階段組成[3]:(1)串行數據加載階段:數據被加載到數據寄存器中,以輸入命令80h為標志,緊接著是5個字節的地址輸入和串行數據加載;(2)非易失性的編程階段:命令10h標志著該編程階段的開始,將已加載的數據寫入實際的存儲單元,編程典型時間為μs。之后R/ 跳低,進入閃存內部編程,最后進入讀狀態確認操作,命令70h表示讀狀態命令,I/O0表示讀到的狀態。頁編程實現代碼如下:

          void PageWrite(void ) //頁編程

          {

          CheckBlock(startpage); //檢測壞塊列表

          if(FirstP)

          // FirstP為1,開始對一頁進行寫操作,否則為0

          {//片選信號有效

          F_CE=0; F_RE=1; F_ALE=0;F_CLE=1;F_WE=0;

          OutputCommand(0x80); //輸入命令0x80

          F_WE=1;

          F_ALE=1;//發送地址開始

          AddrOut (addr1); //得到頁地址,五個周期

          AddrOut (addr2); AddrOut (addr3); AddrOut (addr4); AddrOut (addr5);

          F_ALE=0;

          FirstP =0; }

          WriteData(BuffBlock); //將數據寫入緩沖區

          FlagWrite =0;

          Do{

          F_WE=0;

          WriteFlash(); //將數據寫入flash

          FlagWrite++;

          F_WE=1;

          }while(FlagWrite64); //寫滿一頁數據

          OutputCommand (0x10); //輸入命令0x10

          while(!F_RB); //等待讀信號有效

          OutputCommand (0x70); //輸入命令0x70

          Wait();

          F_CE=1; //片選結束

          startpage++; //繼續寫下一頁

          FirstP =1;

          }

          4.結束語

          本文在充分研究協議、Bulk-Only傳輸協議和SCSI指令規范的基礎上,設計出2.0高。本文作者創新點:將FLASH作為數據采集系統中的存儲單元,應用在與計算機交互數據的采集過程之中;并采用中斷驅動設計固件程序,提高了讀寫效率。實驗證明,其穩定可靠,讀寫數據速度達到了令人滿意的效果。移動數據的交換和存儲是目前IT行業的熱點,可以在此基礎上,不斷完善現有設計方案,繼續研究開發嵌入式主機系統,使得在PC機不參與的情況下同樣可以進行數據的存儲與交換。


        上一頁 1 2 3 4 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 广宁县| 交口县| 广饶县| 嘉峪关市| 关岭| 肥东县| 喀什市| 和顺县| 如东县| 肥城市| 广州市| 紫金县| 南川市| 枣阳市| 孝感市| 瑞金市| 泰安市| 德州市| 吴江市| 嘉兴市| 新河县| 中超| 富平县| 广宁县| 甘南县| 平凉市| 苍山县| 论坛| 增城市| 苗栗县| 临湘市| 玛纳斯县| 兴安县| 塔城市| 将乐县| 湘乡市| 永福县| 灵山县| 韶关市| 攀枝花市| 九龙县|