首页 > 代码库 > Secure Digital

Secure Digital

https://en.wikipedia.org/wiki/Secure_Digital#Technical_details

Secure Digital (SD) is a non-volatile memory card format developed by the SD Card Association (SDA) for use in portable devices.

The standard was introduced in August 1999 by joint efforts between SanDisk, Panasonic (Matsushita Electric) and Toshiba as an improvement over MultiMediaCards (MMC),[1] and has become the industry standard. The three companies formed SD-3C, LLC, a company that licenses and enforces intellectual property rights associated with SD memory cards and SD host and ancillary products.[2]

Technical details[edit]

Physical size[edit]

The SD card specification defines three physical sizes. The SD and SDHC families are available in all three sizes, but the SDXC family is not available in the mini size, and the SDIO family is not available in the micro size. Smaller cards are usable in larger slots through use of a passive adapter.

Standard size[edit]

技术分享
 
Size comparison of families: SD (blue), miniSD (green), microSD (red)
  • SD (SDSC), SDHC, SDXC, SDIO
  • 32.0×24.0×2.1 mm (1.260×0.945×0.083 in)
  • 32.0×24.0×1.4 mm (1.260×0.945×0.055 in) (as thin as MMC) for Thin SD (rare)

Mini size[edit]

  • miniSD, miniSDHC, miniSDIO
  • 21.5×20.0×1.4 mm (0.846×0.787×0.055 in)

Micro size[edit]

The micro form factor is the smallest SD card format.[94]

  • microSD, microSDHC, microSDXC
  • 15.0×11.0×1.0 mm (0.591×0.433×0.039 in)

Transfer modes[edit]

Cards may support various combinations of the following bus types and transfer modes. The SPI bus mode and one-bit SD bus mode are mandatory for all SD families, as explained in the next section. Once the host device and the SD card negotiate a bus interface mode, the usage of the numbered pins is the same for all card sizes.

  • SPI bus mode: Serial Peripheral Interface Bus is primarily used by embedded microcontrollers. This bus type supports only a 3.3-volt interface. This is the only bus type that does not require a host license.
  • One-bit SD bus mode: Separate command and data channels and a proprietary transfer format.
  • Four-bit SD bus mode: Uses extra pins plus some reassigned pins. (This is the same protocol as the one-bit SD bus mode which uses one command and four data lines for faster data transfer. All SD cards supports this mode.) UHS-I and UHS-II requires this bus type.
  • Two differential lines SD UHS-II mode: Uses two low-voltage differential interfaces to transfer commands and data. UHS-II cards include that interface in addition to the SD bus modes.

The physical interface comprises 9 pins, except that the miniSD card adds two unconnected pins in the center and the microSD card omits one of the two VSS (Ground) pins.[95]

 

 

File system[edit]

Like other types of flash memory card, an SD card of any SD family is a block-addressable storage device, in which the host device can read or write fixed-size blocks by specifying their block number.[citation needed]

MBR and FAT[edit]

Most SD cards ship preformatted with one or more MBR partitions, where the first or only partition contains a file system. This lets them operate like the hard disk of a personal computer. Per the SD card specification, an SD card is formatted with MBR and the following file system:

  • For SDSC cards:
    • Capacity of less than 32,680 logical sectors (smaller than 16 MB): FAT12 with partition type 01h and BPB 3.0 or EBPB 4.1[97]
    • Capacity of 32,680 to 65,535 logical sectors (between 16 MB and 32 MB): FAT16 with partition type 04h and BPB 3.0 or EBPB 4.1[97]
    • Capacity of at least 65,536 logical sectors (larger than 32 MB): FAT16B with partition type 06h and EBPB 4.1[97]
  • For SDHC cards:
    • Capacity of less than 16,450,560 logical sectors (smaller than 7.8 GB): FAT32 with partition type 0Bh and EBPB 7.1
    • Capacity of at least 16,450,560 logical sectors (larger than 7.8 GB): FAT32 with partition type 0Ch and EBPB 7.1
  • For SDXC cards: exFAT with partition type 07h

Most consumer products that take an SD card expect that it is partitioned and formatted in this way. Universal support for FAT12, FAT16, FAT16B, and FAT32 allows the use of SDSC and SDHC cards on most host computers with a compatible SD reader, to present the user with the familiar method of named files in a hierarchical directory tree.

On such SD cards, standard utility programs such as Mac OS X‘s "Disk Utility" or Windows‘ SCANDISK can be used to repair a corrupted filing system and sometimes recover deleted files. Defragmentation tools for FAT file systems may be used on such cards. The resulting consolidation of files may provide a marginal improvement in the time required to read or write the file,[98] but not an improvement comparable to defragmentation of hard drives, where storing a file in multiple fragments requires additional physical, and relatively slow, movement of a drive head. Moreover, defragmentation performs writes to the SD card that count against the card‘s rated lifespan. The write endurance of the physical memory is discussed in the article on flash memory; newer technology to increase the storage capacity of a card provides worse write endurance.

When reformatting an SD card with a capacity of at least 32 MB (65536 logical sectors or more), but not more than 2 GB, FAT16B with partition type 06h and EBPB 4.1[97] is recommended if the card is for a consumer device. (FAT16B is also an option for 4 GB cards, but it requires the use of 64 kiB clusters, which are not widely supported.) FAT16B does not support cards above 4 GB at all.

The SDXC specification mandates the use of Microsoft‘s proprietary exFAT file system,[99] which is supported only by some proprietary operating systems.

Other file systems[edit]

Because the host views the SD card as a block storage device, the card does not require MBR partitions or any specific file system. The card can be reformatted to use any file system the operating system supports. For example:

  • Under Windows, SD cards can be formatted using NTFS and, on later versions, exFAT.
  • Under Mac OS X, SD cards can be partitioned as GUID devices and formatted with the HFS Plus file system or still use exFAT.
  • Under Unix-like operating systems such as Linux or FreeBSD, SD cards can be formatted using the UFS, Ext2, Ext3, Ext4, btrfs, HFS Plus, ReiserFS or F2FS file system. Additionally under Linux, HFS Plus file systems may be accessed for read/write if the "hfsplus" package is installed, and partitioned and formatted if "hfsprogs" is installed. (These package names are correct under Debian, Ubuntu etc., but may differ on other Linux distributions.)

Any recent version of the above can format SD cards using the UDF file system.

Additionally, as with live USB flash drives, an SD card can have an operating system installed on it. Computers that can boot from an SD card (either using a USB adapter or inserted into the computer‘s flash media reader) instead of the hard disk drive may thereby be able to recover from a corrupted hard disk drive.[citation needed] Such an SD card can be write-locked to preserve the system‘s integrity.

The SD Standard allows usage of only the above-mentioned Microsoft FAT file systems and any card produced in the market shall be preloaded with the related standard file system upon its delivery to the market. If any application or user re-formats the card with a non-standard file system the proper operation of the card, including interoperability, cannot be assured.

Risks of reformatting[edit]

Reformatting an SD card with a different file system, or even with the same one, may make the card slower, or shorten its lifespan. Some cards use wear leveling, in which frequently modified blocks are mapped to different portions of memory at different times, and some wear-leveling algorithms are designed for the access patterns typical of FAT12, FAT16 or FAT32.[100] In addition, the preformatted file system may use a cluster size that matches the erase region of the physical memory on the card; reformatting may change the cluster size and make writes less efficient.

SD/SDHC/SDXC memory cards have a "Protected Area" on the card for the SD standard‘s security function; a standard formatter may erase it, causing problems if security is used. The SD Association provides freely-downloadable SD Formatter software to overcome these problems for Windows and Mac OS X.[101] The SD Formatter does not format the "Protected Area", and the Association recommends the use of appropriate application software or SD-compatible device that provides SD security function to format the "Protected Area" in the memory card.

Power consumption[edit]

The power consumption of SD cards varies by its speed mode, manufacturer and model.

During transfer it may be in the range of 66–330 mW (20–100 mA at a supply voltage of 3.3 V). Specifications from TwinMos technologies list a maximum of 149 mW (45 mA) during transfer. Toshiba lists 264–330 mW (80–100 mA).[102] Standby current is much lower, less than 0.2 mA for one 2006 microSD card.[103] If there is data transfer for significant periods, battery life may be reduced noticeably (smartphones typically have batteries of capacity around 6 Wh (Samsung Galaxy S2, 1650 mAh @ 3.7 V)).

Modern UHS-II cards can consume up to 2.88 W, if the host device supports bus speed mode SDR104 or UHS-II. Minimum power consumption in the case of a UHS-II host is 0.72 W.

Secure Digital