浓毛老太交欧美老妇热爱乱,蜜臀性色av免费,妺妺窝人体色www看美女,久久久久久久久久久大尺度免费视频,麻豆人妻无码性色av专区

位置:51電子網 » 技術資料 » 單 片 機

單片機與MMC卡的接口

發(fā)布時間:2008/8/16 0:00:00 訪問次數:727

  多媒體卡mmc(multimedia card)是由美國sandisk公司和德國simens公司于1997年共同開發(fā)推出的一種多功能存儲卡。內置控制電路,可以使用在手機、數碼相機、mp3、pda等多種數字設備上,可反復記錄30萬次,F在市場上的主流容量有128 mb~2 gb。
  
  文中首先介紹單片機對spi協(xié)議下的mmc卡的底層讀寫操作,然后分析mmc卡文件系統(tǒng)的結構,最后詳細說明mmc卡文件的創(chuàng)建、讀寫、刪除等操作。該方法可應用到與windows有交互的嵌入式系統(tǒng)中,便于文件的統(tǒng)一管理。

  1 單片機與mmc卡的接口

  1.1 單片機與mmc卡的接口電路
  
  接口電路采用的是philips公司的增強型lpc93x系列單片機。它除了比普通的8051有更快的指令執(zhí)行周期外,還提供多種在片的硬件接口功能,如uart、spi、i2c等,因此用lpc93x的spi接口實現單片機與mmc卡的互連。

mmc卡有7個引腳,支持兩種串行數據傳輸協(xié)議,即mmc(multimedia card)模式和spi(serial peripheralinterface)模式。在spi模式中,通過4條信號線完成數據的傳輸。這4條信號線分別是時鐘spiclk、數據輸入miso、數據輸出mosi和片選ss#。

  1.2 mmc卡底層讀寫原理
  
  mmc卡讀寫操作都是基于命令的,通過向mmc卡發(fā)送樞直的命令并讀取樞直的響應來實現對mmc卡的控制。在對mmc卡讀寫之前,首先要進行初始化操作。這是確保mmc卡能在spi模式下進行正常數據讀寫的前提。需要注意的是,在發(fā)送使mmc卡空閑命令cmd0之前至少等待74個時鐘,確保mmc卡進入spi模式。

  初始化完成之后,如果使用默認的塊讀寫長度(512字節(jié)),就可進行mmc卡的讀寫。當然,也可用cmd16來設置。mmc卡的塊讀取長度,可以是1~512字節(jié)之間的任意值。但是對mmc的寫過程則要求塊長度必須為512字節(jié)。無論是mmc卡的讀還是寫,都要求在讀寫命令發(fā)送后有數據起始令牌feh,數據傳輸結束之后有2個字節(jié)的循環(huán)冗余編碼crc(cyclic redundancy codes)。

  2 mmc卡文件系統(tǒng)的結構分析

  要使寫入mmc卡的數據在windows下訪問,需要在mmc卡上創(chuàng)建windows支持的fatl6文件系統(tǒng)。mmc卡上的fatl6文件系統(tǒng)的結構包含分區(qū)引導記錄、文件分配表、文件目錄表以及數據區(qū)4個部分。
  
  分區(qū)引導記錄通常包含4塊內容;
①bios參數記錄塊bpb(bips parameter block);
②磁盤標志記錄表;
③分區(qū)引導記錄代碼區(qū);
④結束標志55aa。

  bpb表從扇區(qū)字節(jié)位移0bh開始,共占25字節(jié)。表1是從mmc卡的首扇區(qū)中讀出的bpb表的內容。

  在分區(qū)引導記錄之后是fat(file allocation table,文件分配表)區(qū)。fatl6的文件系統(tǒng)中有兩份完全相同的文件分配表fat1和fat2,每份fat表占用空間的大小可從bpb表中查得。

  文件在磁盤上以簇為單位存儲,但是同一個文件的數據并不一定完整地存放在磁盤的一個連續(xù)的區(qū)域內,往往會分成若干簇,fat表就是記錄文件存儲中簇與簇之問連接信息的,這就是文件的鏈式存儲。fatl6以2個字節(jié)(即16位)表示1個簇,起始2個字為f8ffh、ffffh,后面的ffffh表示終止,0000h表示未使用。

  緊接在fat表之后的是文件目錄表fdt,固定占32個扇區(qū),每個扇區(qū)可以容納16個登記項,每個登記項的長度是32字節(jié)。
 
  文件目錄表之后就是數據區(qū)data,用來存放文件數據,占用大部分的磁盤空間。

  3 mmc卡文件系統(tǒng)的實現

  單片機對mmc底層的讀寫,按照fat16的格式對mmc卡上數據進行操作,就可在mmc卡上創(chuàng)建文件、讀寫文件和刪除文件等,從而實現文件的管理。3.1 文件(或目錄)的創(chuàng)建
  
  在mmc卡上創(chuàng)建文件(或目錄)的過程就是在文件目錄表fdt中申請登記項的過程。登記項中包括文件名、文件長度和起始簇號等內容。為此定義了如下結構:

  代碼
  typedef struct{
  u8 filename[8]; //文件名,不足8字節(jié)用空格補充
  u8 extname[3]; //擴展名
  u8 attribute; //屬性,典型值:存檔(0x20)、卷標(0x08)
  u8 reserved[10]; //保留
  u16 time; //time=hr*2048+min*32+sec+2
  u16 date; //date=(yr-1980)*512+mon*32+day
  u16 startcluster; //起始簇號
  u32 filelength; //文件長度
  }dir_tag;

  文件名一般占用8字節(jié),長的文件名需要用resetx,ed[]數組。文件名的首字節(jié)又表明該文件的狀態(tài),00h表示該目錄項未使用,e5h表示該文件(或目錄)已被刪除。創(chuàng)建目錄時,屬性值設置為10h(表示子目錄),文件長度為0。

  3.2 文件的讀寫
  
  mmc卡上文件都是以簇為單位存取的。當讀取mmc卡上的文件時,首先要根據文件名查找到該文件的目錄登記項。根據目錄登記項中的起始簇號既可找到文件在數據區(qū)data中第1簇的內容,又可在fat表中找到第2個簇號。根據第2個簇號又能找到第2簇的內容和fat表中的第3個簇號。這樣,就可以根據fat表

  多媒體卡mmc(multimedia card)是由美國sandisk公司和德國simens公司于1997年共同開發(fā)推出的一種多功能存儲卡。內置控制電路,可以使用在手機、數碼相機、mp3、pda等多種數字設備上,可反復記錄30萬次,F在市場上的主流容量有128 mb~2 gb。
  
  文中首先介紹單片機對spi協(xié)議下的mmc卡的底層讀寫操作,然后分析mmc卡文件系統(tǒng)的結構,最后詳細說明mmc卡文件的創(chuàng)建、讀寫、刪除等操作。該方法可應用到與windows有交互的嵌入式系統(tǒng)中,便于文件的統(tǒng)一管理。

  1 單片機與mmc卡的接口

  1.1 單片機與mmc卡的接口電路
  
  接口電路采用的是philips公司的增強型lpc93x系列單片機。它除了比普通的8051有更快的指令執(zhí)行周期外,還提供多種在片的硬件接口功能,如uart、spi、i2c等,因此用lpc93x的spi接口實現單片機與mmc卡的互連。

mmc卡有7個引腳,支持兩種串行數據傳輸協(xié)議,即mmc(multimedia card)模式和spi(serial peripheralinterface)模式。在spi模式中,通過4條信號線完成數據的傳輸。這4條信號線分別是時鐘spiclk、數據輸入miso、數據輸出mosi和片選ss#。

  1.2 mmc卡底層讀寫原理
  
  mmc卡讀寫操作都是基于命令的,通過向mmc卡發(fā)送樞直的命令并讀取樞直的響應來實現對mmc卡的控制。在對mmc卡讀寫之前,首先要進行初始化操作。這是確保mmc卡能在spi模式下進行正常數據讀寫的前提。需要注意的是,在發(fā)送使mmc卡空閑命令cmd0之前至少等待74個時鐘,確保mmc卡進入spi模式。

  初始化完成之后,如果使用默認的塊讀寫長度(512字節(jié)),就可進行mmc卡的讀寫。當然,也可用cmd16來設置。mmc卡的塊讀取長度,可以是1~512字節(jié)之間的任意值。但是對mmc的寫過程則要求塊長度必須為512字節(jié)。無論是mmc卡的讀還是寫,都要求在讀寫命令發(fā)送后有數據起始令牌feh,數據傳輸結束之后有2個字節(jié)的循環(huán)冗余編碼crc(cyclic redundancy codes)。

  2 mmc卡文件系統(tǒng)的結構分析

  要使寫入mmc卡的數據在windows下訪問,需要在mmc卡上創(chuàng)建windows支持的fatl6文件系統(tǒng)。mmc卡上的fatl6文件系統(tǒng)的結構包含分區(qū)引導記錄、文件分配表、文件目錄表以及數據區(qū)4個部分。
  
  分區(qū)引導記錄通常包含4塊內容;
①bios參數記錄塊bpb(bips parameter block);
②磁盤標志記錄表;
③分區(qū)引導記錄代碼區(qū);
④結束標志55aa。

  bpb表從扇區(qū)字節(jié)位移0bh開始,共占25字節(jié)。表1是從mmc卡的首扇區(qū)中讀出的bpb表的內容。

  在分區(qū)引導記錄之后是fat(file allocation table,文件分配表)區(qū)。fatl6的文件系統(tǒng)中有兩份完全相同的文件分配表fat1和fat2,每份fat表占用空間的大小可從bpb表中查得。

  文件在磁盤上以簇為單位存儲,但是同一個文件的數據并不一定完整地存放在磁盤的一個連續(xù)的區(qū)域內,往往會分成若干簇,fat表就是記錄文件存儲中簇與簇之問連接信息的,這就是文件的鏈式存儲。fatl6以2個字節(jié)(即16位)表示1個簇,起始2個字為f8ffh、ffffh,后面的ffffh表示終止,0000h表示未使用。

  緊接在fat表之后的是文件目錄表fdt,固定占32個扇區(qū),每個扇區(qū)可以容納16個登記項,每個登記項的長度是32字節(jié)。
 
  文件目錄表之后就是數據區(qū)data,用來存放文件數據,占用大部分的磁盤空間。

  3 mmc卡文件系統(tǒng)的實現

  單片機對mmc底層的讀寫,按照fat16的格式對mmc卡上數據進行操作,就可在mmc卡上創(chuàng)建文件、讀寫文件和刪除文件等,從而實現文件的管理。3.1 文件(或目錄)的創(chuàng)建
  
  在mmc卡上創(chuàng)建文件(或目錄)的過程就是在文件目錄表fdt中申請登記項的過程。登記項中包括文件名、文件長度和起始簇號等內容。為此定義了如下結構:

  代碼
  typedef struct{
  u8 filename[8]; //文件名,不足8字節(jié)用空格補充
  u8 extname[3]; //擴展名
  u8 attribute; //屬性,典型值:存檔(0x20)、卷標(0x08)
  u8 reserved[10]; //保留
  u16 time; //time=hr*2048+min*32+sec+2
  u16 date; //date=(yr-1980)*512+mon*32+day
  u16 startcluster; //起始簇號
  u32 filelength; //文件長度
  }dir_tag;

  文件名一般占用8字節(jié),長的文件名需要用resetx,ed[]數組。文件名的首字節(jié)又表明該文件的狀態(tài),00h表示該目錄項未使用,e5h表示該文件(或目錄)已被刪除。創(chuàng)建目錄時,屬性值設置為10h(表示子目錄),文件長度為0。

  3.2 文件的讀寫
  
  mmc卡上文件都是以簇為單位存取的。當讀取mmc卡上的文件時,首先要根據文件名查找到該文件的目錄登記項。根據目錄登記項中的起始簇號既可找到文件在數據區(qū)data中第1簇的內容,又可在fat表中找到第2個簇號。根據第2個簇號又能找到第2簇的內容和fat表中的第3個簇號。這樣,就可以根據fat表

相關IC型號

熱門點擊

 

推薦技術資料

硬盤式MP3播放器終級改
    一次偶然的機會我結識了NE0 2511,那是一個遠方的... [詳細]
版權所有:51dzw.COM
深圳服務熱線:13751165337  13692101218
粵ICP備09112631號-6(miitbeian.gov.cn)
公網安備44030402000607
深圳市碧威特網絡技術有限公司
付款方式


 復制成功!