|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
摘要:采用SD卡的SPI通信模式,用单片机编程模拟SPI总线时序,实现AT89S52对SD卡的读写。利用晶体
! p' g+ V. T+ A7 K$ p4 @! a管加下拉电阻的方法实现SD卡与AT89S52的电平匹配。介绍了SD卡接口规范,SD卡SPI接口时的指
- E% F3 ? \, Q. X4 `3 N3 e令与响应时序。详细介绍了FAT16文件系统的文件组织与存储原理,以及SD卡指令结构。研究了软
6 e# M6 V" @9 m# h3 T0 }件模拟SPI接口时序的编程实现,给出了软件模拟SPI接口的汇编代码,以及单片机读写SD卡和读写" f1 P" S' n( H* t2 H; E9 T- X: T
FAT16文件系统的软件流程。; P) k8 L; l- l8 \' c Y
关键词:FAT16 SD卡 SPI AT89S52 51 单片机" f- s# ~% s" g. p9 k6 g* ]8 Q
引言$ b8 L( j) v* Y4 @5 E3 b( D9 \
长期以来,闪存卡(SD卡、MMC卡等)因其体积小、- E- N4 u& D% R" N. A6 i
功耗低、容量大和非易失性等特点,在嵌入式存储领域的4 M" d# [+ k7 y3 p* j2 t
应用越来越广泛。特别是近年来,随着闪存技术的发展,. W( i" c5 g: h$ j* z
闪存卡价格不断下降且存储容量不断提高。当数据采集
) G& c, c) L/ p) Z- \( B. `, x系统需要长时间地采集和记录海量数据时,应用SD卡作& u I, l* s1 n' p* {
为存储介质是很好的选择,例如电能检测、温度湿度检测、
- z7 O. S! r' m) d$ w! ?: D病人心肺数据记录等。FAT16 文件系统是Microsoft公
, S8 M/ s* i9 p司在其MS-DOS操作系统中采用的文件系统,具有出色, P0 C6 [9 \ q! N9 l3 h z
的文件管理性能,能被当前大多数操作系统识别。因此,
9 h" L& f6 q5 U2 t' {& k Z将SD卡与FAT16文件系统相结合是嵌人式数据存储、
- t' v6 [$ e; g+ c记录系统的理想方案,可以将采集记录的数据直接在PC) k$ A; i& U5 f) u
上读取和处理。本文研究和设计了基于AT89S52单片机
- [% N! m' W5 V3 \3 L和FAT16文件系统的SD卡读写系统。+ Z; E/ |; a, F& y5 w
1系统方案介绍- T, e4 y2 [1 E5 w+ B# P
本系统采用MCS- 51架构的AT89S52单片机。- q; Q& K+ o" f, }$ C
AT89S52是- -种低成本;低功耗、高性能的CMOS8位微
( C) X I5 f$ \控制器,具有8 KB在系统可编程Flash存储器。应用
/ c' y9 o/ c9 yAT89S52读写SD卡,首先要确定它们之间的通信方案。
; a5 B* D$ h" @% ]SD卡有2种可选的通信协议:SD模式和SPI模式。SD$ O1 t u8 m' a Y
模式是SD卡的标准读写方式,选用此模式需要选择带% |6 A3 W" G* o& }: [( |
SD卡控制接口的mcu或者额外的SD卡控制单元;SPI
: q8 {6 h4 y6 U% b# |% J6 l$ k5 I模式通过SPI总线完成SD卡与主控制器的通信。) V q% g; V1 E2 I7 C
AT89S52没有集成SD卡控制器,为了不增加额外的SD
( Z. K' L4 ?$ ?. o) N. H9 w, b$ O! ~卡控制单元硬件成本,本设计方案采用SD卡的SPI通信
0 ]6 o, c: N- M, e5 r8 g
; r0 H2 G7 X+ D, z5 g6 t# Q模式。虽然AT89S52也没有集成SPI接口模块,但可以/ D' k4 g9 }! ^) y: o9 N4 \
用软件的方式模拟SPI接口时序。7 ]4 f: E2 [& p4 ?, ^
另外-一个要解决的问题是SD卡与AT89S52的电平2 n# Z" d- u6 t, }0 c+ J) |
匹配。SD卡的逻辑电平相当于3.3 V的TTL电平标准,6 K3 g7 [" v) g
AT89S52的逻辑电平为5 V CMOS电平。
4 v3 c# H0 T/ o解决电平匹配问题的原则有2条:一为输出电平器件3 B2 Z- n- B' Y( x: Y3 H+ |3 W( f
输出的高电平的最小值,应该大于接收电平器件识别为高0 L) K1 d) ^/ G# r) I" n+ m) |% [
电平的最低电压值;另一条为输出电平器件输出低电平的
( I# C1 _# ?$ k& q' h/ {# v! P% ~2 k最大电压值,应该小于接收电平器件识别为低电平的最高& ^3 m( m+ r) i. M- Z
电压值。, C3 m2 k m! S: f4 k# a
考虑到SD卡在SPI工作模式下,数据的传输都是单向8 u F! e4 f; i0 r6 U+ a
的,这样可以在单片机向SD卡传输数据时采用晶体管加
+ U+ t. V3 J0 h. z) I& B- X, K9 Q下拉电阻的方法,基本电路如图1所示。而在SD卡向单片: u9 A6 l$ j2 t! d! j
机传输数据时可以采用直接连接,因为它们之间的电平刚2 y1 B; n% h8 e% ?6 L/ v
好满足上述的电平兼容原则,既经济又实用。这个方案儒
/ \2 R" G. c8 E* `( ~1 A要双电源供电,1个5 V电源,1个3.3 V电源。
; _0 ^0 H* f# Q) w2AT89S52与SD卡接口电路设计
$ j1 ?0 f1 P, M$ A2 q9 w1 f2 f2.1$ [" @, J( ]) ^8 p( a# d8 @
SD卡接口规范1]: N3 p0 u, d- {. L6 D+ D
SD卡工作在2.7~3.6V电压下,图2是普通SD卡 n* T5 J$ a; N3 j) z
! }/ \$ j" L9 Y# }& D
" F$ _( e( G& p9 c* F# D- p5 h( {3 Q
附件下载:" L7 V' _- G- }8 S6 H
5 x I; T$ F% t
|
|