当前位置:文档之家› 基于ARM的SD卡模块开发

基于ARM的SD卡模块开发

基于ARM的SD卡模块开发
基于ARM的SD卡模块开发

目录

1 绪论 (1)

1.1嵌入式系统开发的背景及意义 (1)

1.1.1本课题的研究方法和理论依据 (1)

1.1.2嵌入式系统当前国内外发展情况 (2)

1.1.3嵌入式系统的发展前景及相关问题。 (3)

1.2选题意义 (4)

1.3本课题的设计思路 (4)

2系统组成原理 (5)

2.1LPC2103的引脚功能 (5)

2.2SPI总线 (5)

2.3SD模块的构成 (6)

2.4SPI中断应用 (8)

2.5看门狗的组成原理 (8)

2.5.1看门狗的工作原理 (8)

2.5.2看门特的特性 (8)

2.612864液晶 (10)

3 程序设计 (12)

3.1SPI总线及其中断 (12)

3.2基于SPI总线的SD卡程序设计方案 (14)

3.2.1SD初始化 (14)

3.2.2SD卡读一个扇区函数 (14)

3.2.3SD卡写一个扇区函数 (15)

3.2.2基于SPI总线的SD卡设计的流程图 (15)

3.2.2 SD卡程序流程图 (16)

3.2.4 基于SPI总线的SD卡程序设计的扩展 (19)

3.3.1 看门狗的程序流程图 (20)

3.3.2 看门狗的程序清单 (20)

3.4.212864液晶的程序流程图 (22)

3.4.312864液晶的程序设计清单 (22)

3.4.412864液晶的程序设计扩展 (24)

(1)12864的GUI建立 (24)

4 程序调试和功能分析 (25)

4.1使用仪器 (26)

4.2调试前准备工作 (26)

4.3系统调试 (26)

5 问题处理 (26)

致谢 .................................................. 错误!未定义书签。参考文献 .. (28)

1 绪论

1.1嵌入式系统开发的背景及意义

嵌入式计算机系统的出现,是现代计算机发展史上的里程碑。嵌入式系统诞生于微型计算机时代,于通用计算机的发展道路完全不同,形成了独立的单芯片的技术发展道路。由于嵌入式系统的诞生,现代计算机领域出现了通用计算机与嵌入式计算机两大分支。不可兼顾的技术发展道路,形成了两大分支的独立发展;通用计算机按照高速、海量的技术发展;嵌入式计算机系统则为满足对象系统按照嵌入式智能化控制要求发展。由于独立的分工发展,20实际末,现代计算机的两大分支都得到了迅猛的发展。

经过几十年的发展,嵌入式系统已经在很大程度上改变了人们的生活、工作和娱乐方式,而且这些改变还在加速。嵌入式系统具有无数的种类,每种都具有自己独特的个性。例如,MP3,数码相机与打印机就有很大的不同。汽车中更是具有多个嵌入式系统,是汽车更轻快、更干净、更容易驾驶。

即使不可见,嵌入式系统也无处不在。嵌入式系统在很多产业中得到了广泛的应用并逐步改变着这些产业,包括工业自动化、国防、运输和航天领域。例如神州飞船和长征火箭中有很多嵌入式系统,导弹的制导系统也是嵌入式系统,高档汽车中也有多达几十个嵌入式系统。在日常生活中,人们使用各种嵌入式系统,但未必知道他们,事实上,几乎所有的带有智能的家电都有嵌入式系统。嵌入式系统广泛的适应能力和多样性,使得视听,工作场所甚至健身设备中到处都有嵌入式系统。

1.1.1本课题的研究方法和理论依据

本课题采用C语言进行程序的开发和编写,C语言具有如下特点:

(1)语言简洁.紧凑.使用方便.灵活。

(2)运算符丰富。

(3)数据结构丰富,具有现代化语言的各种数据结构。

(4)具有现代化的控制语句(如if..else语句while语句.do...while语句switch 语句.for语句)。

(5)语法限制不太严格,程序设计自由度大。

(6)C语言能进行位(bit)操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。

(7)生成目标代码质量高,程序执行效率高。

(8)程序可移植性好

开发平台为IAR EWARM;

IAR Embedded Workbench for ARM是IAR Systerms公司为ARM微处理器开发的一个集成开发环境,比较其他的ARM开发环境,IAR EWARM具有入门容易、使用方便和代码紧凑等特点。

为了能够在真实的目标板上进行代码运行和调试,专门购买了IAR公司的JTAG 仿真器J-Link。J-Link是SEGGER公司为支持仿真ARM内核芯片推出的JTAG仿真器。配合IAR EWARM,ADS,KEIL,WINARM,RealView等集成开发环境支持所有ARM7/ARM9内核芯片的仿真,通过RDI接口和各集成开发环境无缝连接,操作方便、连接方便、简单易学,是学习开发ARM最好最实用的开发工具。

J-Link ARM的主要特点

IAR EWARM集成开发环境无缝连接的JTAG仿真器

支持所有ARM7/ARM9内核的芯片,以及cortex M3,包括Thumb模式

支持ADS,IAR,KEIL,WINARM,REALVIEW等几乎所有的开发环境

下载速度高达ARM7:600KB/s,ARM9:550kB/s,通过DCC最高可达800kB/s 最高JTAG速度12MHz

目标板电压范围1.2V-3.3V

自动速度识别功能

检测所有的JTAG信号和目标板电压

完全即插即用

使用USB电源

带USB连接线和20芯扁平电缆

支持多JTAG器件串行连接

标准20芯JTAG仿真插头

选配14芯JTAG仿真插头

选配用于5V目标板的适配器

带J-Link TCP/IP server,允许通过TCP/IP网路使用J-Link

1.1.2嵌入式系统当前国内外发展情况

ARM公司自1990年正式成立以来,在32位RISCCPU开发领域不断取得突破,其结构已经从V3发展到V6。由于ARM公司自成立以来,直以IP提供者的身份向各大半导体制造商出售知识产权,而自己从不介入芯片的生产销售,加上其设计的芯核具有功耗低、成本低等显著优点,因此获得众多的半导体厂家和整机厂商的大力支持,在32位嵌入式应用领域获得了巨大的成功,目前已经占有75%以上32位RISC 嵌入式产品市场。在低功耗、低成本的嵌入式应用领域确立了市场领导地位。现在设计、生产ARM芯片的国际大公司已经超过50多家,国中兴通讯和华为通讯等公司已经购买ARM公司芯核用于通讯专用芯片的设计。

目前非常流行的ARM芯核有ARM7TDMI,StrongARM,ARM720T,ARM9TDMI,ARM922T,ARM940T,RM946T,ARM966T,ARM10TDMI等。自V5以且,ARM 公司提供Piccolo DSP的芯核给芯片设计得,用于设计ARMDSP的SOC结构芯片。

此外,ARM芯片还获得了许多实时操作系统供应商的支持,比较知名的有:Windows CE、Linux、pSOS、VxWorks、Nucleus、EPOC、uCOS、BeOS等。目前可以提供ARM芯片的著名欧美半导体公司有:英特尔、德洲仪器、三星半导体、摩托罗拉、飞利浦半导体、意法半导体、亿恒半导体、科胜讯、ADI公司、安捷伦、高通公司,我国台湾地区可以提供ARM芯片的公司台积电、台联电、华帮电子等。其它已购买ARM芯核,正在设计自主版板权专用芯片的大陆公司会为通讯中兴通讯等。

嵌入式系统的发展非常的迅速,国内的研发水平却处于起步阶段,但是嵌入式系统的应用是无处不在的,所以今后还有相当长的路要走。

1.1.3嵌入式系统的发展前景及相关问题。

由于网络与通信技术的发展,嵌入式系统在经历了近20年的法杖历程后,有进入了一个新的历史发展阶段,即从普遍的低端应用进入到一个高端、低端并行发展,并且不断提升低端应用技术水平的时代,其标志是近年来32位MCU的发展。32位MCU的应用不会走8位机百花齐放、百余种型号系列齐上阵的道路,这是因为在8位机的低端应用中,嵌入对象与对象专业领域十分广泛而复杂;而当前32位MCU 的少数型号系列上。

在嵌入式系统高端应用的发展中,曾经有众多的厂家参与,很早就有许多8位嵌入式MCU厂家实施了8位,16位和32位机的发展计划。后来,8位和32位机的技术扩展侵占了16位机的发展空间。传统电子系统智能化对8位机的需求是这些厂家将主要精力放在8位机的发展上,形成了32位机发展迟迟不签的局面。当网络、通信和多媒体信息家电业兴起后,ARM公司适时地推出了32位ARM系列嵌入式微处理器,以至于使不少传统嵌入式系统厂家放弃了自己的32位发展计划,转而使用ARM内核来发展自己的32位MCU。甚至在嵌入式系统发展上做出卓越贡献的Intel 公司以及将单片机微型计算机发展到微控制器的PHILIPS公司,在发展32位嵌入式系统时都不另起炉灶,而是转而使用ARM共识的嵌入式系统内核来发展自己的32位MCU。

网路、通信、多媒体和信息家电时代的到来,无疑为32位嵌入式系统高端应用提供了空前巨大的发展空间;同时。也为力不从心的8位机向高端发展起到了竭力作用。一般来说,嵌入式系统的高低端应用模糊的定界位:高端用于具有海量数据处理的网络、通信和多媒体领域,低端则用于对象系统的控制领域。然而,控制系统的网络化、智能化的发展趋势要求在这些8位机的应用中提升海量数据处理能力。当8位机无法满足这些提升要求时,便会转而求助32位机的解决办法。因此,32位机的市场需求发展由两方面所致:一方面是高端新兴领域的拓展;另一方面是低端控制领域应用在数据处理能力的提升要求。

后PC时代的到来以及32位嵌入式系统的高端应用吸引了大量计算机人士,加之嵌入式系统的软/硬件技术的发展,导致了嵌入式系统应用模式的巨大变化,即使嵌

入式系统工业进入到一个基于软/硬件平台,集成开发环境的应用系统开发时代,并带动了SoC技术的发展。

1.2选题意义

嵌入式系统无疑是当前最热门最有发展前途的应用领域之一,嵌入式系统用在一些特定专用设备上,通常这些设备的硬件资源非常有限,并且对成本很敏感,有时对实时响应要求很高等。嵌入式产品主要分布在移动通讯,消费电子,无限网络,医疗,安全,工业控制和军事国防等社会生活的哥哥领域。由于社会对掌握嵌入式技术人才的大量需求,是嵌入式软硬件工程师成为未来几年最为热门的职业之一。

作为一名即将毕业走入社会的大学生,就业是我们首先要面临的问题。而近几年嵌入式软件行业迅猛发展,嵌入式产品渗入各个行业,像常见到的手机、PDA、机顶盒、高清电视(HDTV)、路由器、汽车电子、数码相机、医疗仪器、航天航空设备等等都是典型的嵌入式系统,嵌入式开发已经成为当前最热门最有发展前途的行业之一。业内人士认为,目前嵌入式行业至少存在30-50万的人才缺口,仅西安市场嵌入式软件开发人员的需求就已经超过了5万人,而且还在持续增加,这主要有两方面的原因:一是与目前我们高校的专业设置有关,我国高校的计算机教育普遍以应用软件为主,很少涉及嵌入式软件的课程,因此企业很难招聘到马上可以投入嵌入式软件开发的实战型人才;二是嵌入式领域门槛相对较高,知识要求比较全面,而且需要一定的实验环境(开发板和工具软件)和有经验的人进行指导.

毕业设计是对我们所学知识的综合应用,考察我们专业知识的广度和深度,而系统化的设计是我们平时所欠缺的,毕业设计既是对我们所学知识的补充强化,也是对我们专业知识的考察和学习、动手能力的体现。所以学好嵌入式系统开发不仅是学习上的需要更是今后工作的主要方向。

1.3本课题的设计思路

本课题主要侧重于SPI接口的SD卡,SPI中断,看门狗应用,LCD显示这四个模块。要对这四个,模块进行驱动程序的编写,首先要熟练掌握ARM7系列的体系结构和ARM指令集。掌握ARM的电路结构,以便进行端口的初始化,锁相环的设定,和相关寄存器的初始化设定。

其次是了解这些功能模块的接口电路,从而完成相关寄存器的设定,驱动设备正常的运行。然后是对已经模块化,系统化的C语言函数代码进行优化,提高运行的速度和效率。最后是进行一个综合上述模块的实例开发,以检验各个模块是否可以独立而又兼容无干扰的工作。

2系统组成原理

2.1LPC2103的引脚功能

16/32位ARM7TDMI-S处理器,极小型LQFP48封装。10位A/D转换,8个模拟输入,最低2.44微妙。2个32位的定时器/外部事件计数器,具有7路捕获、比较通道。低功耗实时时钟等。如图2.1所示。

图2.1LPC2103管脚图

2.2SPI总线

SPI总线:SPI总线系统是一种同步串行外设接口,允许MCU与各种外围设备以串行方式进行通信,数据交换。外围设备包括Flash、RAM、A/D换器、网络控制器、MCU等。SPI系统可直接与各个厂家生产的多种标准外围器件直接接口。一个SPI 总线可以连接多个主机和多个从机,但是在同一时刻之允许有一个主机操作总线。在数据传输过程中,总线上只能有一个从机通信。在一次数据传输中,主机总是向从机发送一个字节的数据,而从机也总是向主机发送一个字节的数据。SPI总线时钟是有主机产生的。如图2.2所示。

主机输入/从机输出数据线MISO

主机输出/从机输入数据线MOSI

时钟信号,有主器件产生SCLK

从器件使能信号,有主器件产生/SS

图2.2SPI总线配置

2.3SD模块的构成

图2.3-1SD卡的实物图和引脚分布

表2.3-1SD卡的引脚功能说明

SD卡的接口规范

(1)容量32MB-4GB

(2)两个可选的通信协议:SD模式和SPI模式

(3)可变时钟频率0-25MHz

(4)通信电压和工作电压范围:2.0-3.6V

(5)低电压消耗:自动断电及自动睡醒,智能电源管理(6)无需额外编程电压

(7)卡片带电插拔保护

(8)兼容MMC卡

(9)高速串行接口带随机存取

(10)数据寿命:10万次编程/擦除

(11)PIP封装技术

(12)尺寸:24mm x 32mm x 1.44mm

图2.3-2SD卡的硬件连接原理

表2.3-2SD卡的SPI模式

2.4SPI中断应用

LPC2000系列ARM SPI接口具有中断功能,当传输完成或者发生模式错误时,SPI 接口就会触发中断,SPI接口中断与向量中断控制器(VIC)的关系如图2.1.3所示。

SPI接口处于VIC的通道10,中断使能寄存器VICIntEnable用来控制VIC通道的中断使能。当VICInEnable[10]=1时,通道10中断使能,即:SPI中断使能。中断选择寄存器VICintSelect用来分配VIC通道的中断。当某一位为1时,对应的通道中断分配为FIQ;当某一位为0时,对应的通道中断分配为IRQ。VICintSelect[10]用来控制通道10

图2.4SPI中断示意图

2.5看门狗的组成原理

2.5.1看门狗的工作原理:

在系统运行以后也就启动了看门狗的计数器,看门狗就开始自动计数,如果到了一定的时间还不去清看门狗,那么看门狗计数器就会溢出从而引起看门狗中断,造车系统复位。所以在使用看门狗的时候要注意清看门狗。一个输入,叫喂狗,一个输出到MCU的RST端,MCU正常工作的时候们每隔一段时间输出一个信号到喂狗端,给WDT清零,如果超过规定的时间不喂狗,就可能是程序跑飞时,WDT定时超过,就会给出一个复位信号到MCU,是MCU复位。

防止MCU死机,看门狗的作用就是防止程序发生死循环,或者说程序跑飞。

2.5.2看门特的特性

如果没有周期性重装,则产生片内复位,支持调试模式,有软件使能,但要求禁止硬件复位或看门后复位/中断,错误 /不完整的喂狗时序会导致复位/中断(如果使能),具有标志位以知识看门后复位,带内部预分频器的32位可编程定时器可选择时间周期:(t*256*4)~(t*2^32*4),可选值为t(pclk)*4的倍数。

表2.5.2-1看门狗包含的4个寄存器

图2.5.2看门狗结构方框图

2.612864液晶

液晶屏幕型号为HDG12864-1,该款液晶屏幕采用带中文字库液晶驱动控制芯片,数据传输方式为串行通信。其引脚排列和各引脚功能见表2.1.5所示。

图2.6-1HDG12864-1型液晶屏幕图2.6-212864液晶接口电路设计

表2.6-1液晶引脚功能说明

图2.6-3液晶屏幕操作时序图

表2.6-2 液晶行地址设置

表2.6-3 液晶页地址设置

表2.6-4液晶屏幕的背光设置

3程序设计3.1SPI总线及其中断

3.1.1流程图

图3.1.2 SPI总线数据传送的流程图

3.1.3程序

main(void)

{

unsigned char n=3,j;

unsigned char *p;

p=display;

PINSEL0=0x00005500; //p0.4(9:8=01)-sck0 ,p0.5(11:10=01)-miso0

//p0.6(13:12=01)-mosi0, p0.7(15:14=01)-sel0

PINSEL1=0x000002a9; //p0.16(1:0=01)-eint0,p0.17(3:2=10)-sck1,

//p0.18(5:4=10)-miso1,p0.19(7:6=10)-mosi1

//p0.20(9:8=10)-ssel1,

IO1SET=(led1|led2|led3|led4|led5|led6|led7|led8);

IO1DIR=(led1|led2|led3|led4|led5|led6|led7|led8);

ssp_initial(); //ssp初始化

spi_initial(); //isp初始化

IRQEnable();

VICIntSelect=0x00000000;

VICVectCntl0=0x20|14 ; //使能spi0,

VICVectAddr0=(uint32)read_from_spi; //设置中断服务程序地址

VICIntEnable=(1<<0x0a); //允许spi0,eint0

for(j=0;j<16;j++)

{spi_send_data(p);

delay(n);

IO0SET=slave_cs; //片选信号拉高进入主机模式

S0PCR=(1<<5); //S0PCR的MSTR位置1,把SPI设置为主机

if(recv_flag==0)

ssp_send_data();

delay(n);}

return (0);

}

void spi_initial(void) //SPI初始化

{

S0PCR=(0x03<<4)| //spi的控制寄存器CPHA=1,CPOL=1

(1<<5)| //设置spi为主机

(0<<6)| //spi传送msb在先

(1<<7); //spi中断使能

SPCCR=0x08; //spi的spccr必须大于等于8,因而spi速率最大为fpclk的1/8

S0PINT=0x00; //中断清零

}

void __irq read_from_spi(void)

{

recv_temp=SSPDR; //接收数据

recv_lib[i]=recv_temp;

if(i<16)

{

i++;

}

else i=0;

recv_flag=1;

SSPICR=0x03; //清除中断

VICVectAddr=0x00;

}

3.2基于SPI总线的SD卡程序设计方案

3.2.1SD初始化

1、初始化读写SD卡的硬件条件

2、上电延时过程

3、复位CMD0

4、激活卡,内部初始化并获取存储卡的类型CMD1,CMD55,ACMD41

5、查询OCR,获取卡供电情况CMD58

6、是否使用CRC CMD59

7、设置读写块数据长度,512B,CMD16

8、读取CSD,获取存储卡的其他参数信息。CMD9

9、8clock后,禁止片选。

3.2.2SD卡读一个扇区函数

1、主机发送CMD17

2、接收卡响应R1

3、接收读数据起始令牌0XFE

4、接收数据

5、接收2BCRC

6、8clock后,禁止片选。3.2.3SD卡写一个扇区函数

1、主机发送CMD24

2、接收卡响应R1

3、接收读数据起始令牌0XFE

4、接收数据

5、接收2BCRC

6、8clock后,禁止片选。3.2.2基于SPI总线的SD卡设计的流程图

3.2.2 SD卡程序流程图

3.2.3基于SPI总线的SD卡程序清单

Sd.c

#include”spi.h”

#include”uart.h”

#define uchar unsigned char

#define uint unsigned int

#define MMC_CS_PIN1<<18

#define MMC_CSH IOSET |=1<<18

#define MMC_CSL IOCLR |=1<<18

uchar reading=0,a=0,pointer=0;

void sd_port_init()

{

Init_SPI();

}

uchar BUFFER[512];

uint i=0;

void delay_nus(uint n)

{

unsigned int b,a;

for (b=1;b

for(a=0;a<15;a++);

// 向SD卡发送命令

uchar SD_Write_Command(uchar cmd,unsigned long arg) {

uchar tmp;

uchar retry=0;

//发送八个时钟脉冲

Write_Byte_SPI(0CFE);

MMC_CSL; //SD卡使能

Write_Byte_SPI(cmd|0x40);//送头命令

Write_Byte_SPI(arg>>24);

Write_Byte_SPI(arg>>16); //向SD卡发送6个字节的数据Write_Byte_SPI(arg>>8);

Write_Byte_SPI(arg&0xff);

Write_Byte_SPI(0x95); //仅仅对RESET有效地CRC //读最后的八位数据

do

{

tmp = Read_Byte_SPI();

retry++;

}

while ((tmp==0xff)&&(retry<100));当没有收到有效命令的时候if(reading==0) MMC_CSH;//取消片选

else MMC_CSL; //打开片选

return(tmp);

}

//SD卡初始化(SPI—MODE)

uchar SD_Init(void)

{

uchar retry,temp;

uchar i;

MMC_CSL; //SD卡使能

delay_nus(250); //等待SD卡就绪

for (i=0;i<0x0f;i++)

{ write_Byte_SPI(oxff)}; //发送至少74时钟

}

//向SD卡发送CMD0命令

retry=0;

do

{//重复100次发送CMD0命令

temp=SD_write_Command(0,0);

retry++;

if(retry==100){

Return(oxff);

}

}

while(temp!=1);

//向SD卡发送CMD1命令

retry=0;

do

{//重复200次发送CMD1命令

delay_nus(3000);

temp=SD_Write_Command(1,0);

retry++;

delay_nus(3000);

if(retry==200){

Return(0xff);

}

}

while(temp!=0);

retry=0;

MMC_CSL; //片选

SD_Write_Command(16,512); //设置一次读写BLOCK长度为512字节MMC_CSH; //取消片选

return(0); //所有的命令被发送

//从SD卡读一个扇区如果没有错误就返回0

uchar SD_Read_Block(unsigned long address)

{ uchar temp =0;uint i=0;

Reading=1;

temp=SD_Write_Command(17,address); //读出RESPONSE

while (Read_Byte_SPI()!=0xfe)

(;)//直到读取到了数据的开始头0xfe才继续

for(i=0;i<512;i++)

{

BUFFER[i]=Read_Byte_SPI();

}

Read_Byte_SPI();//CRC-Byte

Read_Byte_SPI();//CRC-Byte

SD卡-中文学习笔记

SD卡操作 一、概述 1、简介 SD卡是基于flash的存储卡。 SD卡和MMC卡的区别在于初始化过程不同。 SD卡的通信协议包括SD和SPI两类。 SD卡使用卡内智能控制模块进行FLASH操作控制,包括协议、安全算法、数据存取、ECC算法、缺陷处理和分析、电源管理、时钟管理。

2、功能介绍 2.1 特点 1)主机无关的FLASH内存擦除和编程 读或写数据,主机只要发送一个带地址的命令,然后等待命令完成,主机无需关心具体操作的完成。当采用新型的FLASH时,主机代码无需更新。 2)缺陷管理 3)错误恢复 4)电源管理 Flash每个扇区有大约10万次的写寿命,读没有限制。 擦除操作可以加速写操作,因为在写之前会进行擦除。 3 SD总线模式 3.1 Negotiating Operation Conditions 当主机定义了SD卡不支持的电压范围时,SD卡将处于非活动状态,将忽略所有的总线传输。要退出非活动状态唯一的方法就是重新上电。 3.2 SD卡获取和识别 SD卡总线采用的是单主多从结构,总线上所有卡共用时钟和电源线。主机依次分别访问每个卡,每个卡的CID寄存器中已预编程了一个唯一的卡标识号,用来区分不同的卡。 主机通过READ_CID命令读取CID寄存器。CID寄存器在SD卡生产过程中的测试和格式化时被编程,主机只能读取该号。 DAT3线上内置的上拉电阻用来侦测卡。在数据传输时电阻断开(使用ACMD42)。

3.3 卡状态 卡状态分别存放在下面两个区域: 卡状态(Card Status),存放在一个32位状态寄存器,在卡响应主机命令时作为数据传送给主机。 SD状态(SD_Status),当主机使用SD_STATUS(ACMD13)命令时,512位以一个数据块的方式发送给主机。SD_STATUS还包括了和BUS_WIDTH、安全相关位和扩展位等的扩展状态位。 3.4 内存组织 数据读写的基本单元是一个字节,可以按要求组织成不同的块。

SD卡的使用经验总结

由于自己也在使用SD卡,使用的过程中也遇到了一些问题,通过各方的总结,现将其整理一下,调试关键点: 1. 上电时要延时足够长的时间给SD卡一个准备过程,在我的程序里是5秒,根据不同的卡设置不同的延时时间。SD卡初始化第一步在发送CMD命令之前,在片选有效的情况下首先要发送至少74个时钟,否则将有可能出现SD卡不能初始化的问题。 2. SD卡发送复位命令CMD0后,要发送版本查询命令CMD8,返回状态一般分两种,若返回0x01表示此SD卡接受CMD8,也就是说此SD卡支持版本2;若返回0x05则表示此SD卡支持版本1。因为不同版本的SD卡操作要求有不一样的地方,所以务必查询SD卡的版本号,否则也会出现SD卡无法正常工作的问题。 3. 理论上要求发送CMD58获得SD卡电压参数,但实际过程中由于事先都知道了SD 卡的工作电压,因此可省略这一步简化程序。协议书上也建议尽量不要用这个命令。 4. SD卡读写超时时间要按照协议说明书书上的给定值(读超时:100ms;写超时:250ms),这个值要在程序中准确计算出来,否则将会出现不能正常读写数据的问题。我自己定义了一个计算公式:超时时间=(8/clk)*arg。 5. 2GB以内的SD卡(标准卡)和2GB以上的SD卡(大容量卡)在地址访问形式上不同,这一点尤其要注意,否则将会出现无法读写数据的问题。如标准卡在读写操作时,对读或写命令令牌当中的地址域符初值0x10,表示对第16个字节以后的地址单元进行操作(前提是此SD卡支持偏移读写操作),而对大容量卡读或写命令令牌当中的地址域符初值0x10时,则表示对第16块进行读写操作,而且大容量卡只支持块读写操作,块大小固定为512字节,对其进行字节操作将会出错。 6. 对某一块要进行写操作时最好先执行擦出命令,这样写入的速度就能大大提高。进行擦除操作时不管是标准卡还是大容量卡都按块操作执行,也就是一次擦除至少512字节。 7. 对标准卡进行字节操作时,起始和终止必须在一个物理扇区内,否则将不能进行读写操作。实际操作过程中建议用块操作以提高效率。不管是标准卡还是大容量卡一个读写命令只能对一个块进行操作,不允许跨物理层地址操作。 8. 在写数据块前要先写入若干个dummy data字节,写完一个块数据时,主机要监测MISO数据线,如果从机处于忙状态这根数据线会保持低电平,这样主机就可以根据这根数据线的状态以决定是否发送下一个命令,在从机没有释放MISO数据线之前,主机绝对不能执行其他命令,否则将会导致写入的数据出错,而且从机也不会响应主机的命令。 9. 在SPI模式下,CRC校验是被忽略的,但依然要求主从机发送CRC码,只是数值可以是任意值,一般主机的CRC码通常设为0x00或0xFF。 读多块操作和写多块操作的传输停止形式不一样,读多块操作时用用命令CMD12终止传输,而写多块操作时用Stop Tran Token(停止传输令牌,值为0xFD)终止传输。

单片机读写SD卡API模式读写

单片机读写SD卡最简单最基本的程序 处理器:s3c44b0 (arm7) SD卡与处理器的引脚连接:MISO -->SIORxD MOSI -->SIOTxD CLK -->SCLK CS -->PE5 四个文件::用户API函数,移植时不需修改 :中间层函数,移植时不需修改 :硬件层函数,移植时需修改 :一些功能的宏定义,移植时需修改 第一次读写SD卡时,需调用SD_Init(void),然后就可以条用Read_Single_Block或者Write_Single_Block进行读写操作 注意:进行写操作时,最好不要写前700个扇区,应为这些扇区都是FAT文件系统的重要扇区,一旦误写则可能会导致SD无法被电脑识别,需格式化。 /******************************************************* 文件名: 作用:用户API函数,包括四个函数, 读取一块扇区(512字节)U8 Read_Single_Block(U32 blk_addr, U8 *rx_buf) 写一个扇区(512字节)U8 Write_Single_Block(U32 blk_addr, U8 *tx_buf) 获取SD卡基本信息,即读CSD寄存器信息(16字节):void SD_info() SD卡初始化:U8 SD_Init(void) ********************************************************/

/******************************************** 功能:读取一个block 输入:blk_addr为第几个block,rx_buf为数据缓存区首地址输出:返回NO_ERR则成功,其它则读取失败 ********************************************/ U8 Read_Single_Block(U32 blk_addr, U8 *rx_buf) { U16 rsp = 1; U8 i = 0; SD_sel(); //使能SD卡 while(rsp && (i < 100)) { write_cmd(CMD17, blk_addr << 9); //写命令CMD17 rsp = Get_rsp(R1); //获取答应 send_clk(); } if(i > 99) //如果命令超时,则执行超时处理 {

嵌入式开发工具使用

《嵌入式开发工具使用》 实验报告 学生姓名:______________________ 学号:— 专业班级:_______________ 指导教师:_________________ 完成时间: 实验2嵌入式开发工具使用实验 一?实验目的 了解嵌入式开发工具套件组成,掌握开发工具安装,熟练运用gcc各命令选项,熟练编写Makefile和使用make工具,掌握gdb各命令用于应用程序调试。 二?实验内容 实验 2.1 arm-linux-gcc安装 实验2.2编译工具gcc使用 实验2.3 编写Makefile和使用make编译 实验2.4使用gdb调试应用程序 实验2.5 使用code::blocks进行图形化编程 三?预备知识 Linux使用等 四?实验设备及工具(包括软件调试工具) 硬件:ARM嵌入式开发平台、PC机Pentium100以上、串口线。软件:WinXP或 UBUNTU开发环境。 五?实验步骤 5.1交叉编译工具配置及编译 第一步,解压缩交叉编译器工具,命令为: #cd /tmp _____________________________________________________________________ ? arm-l inu x-gcc可执行文件位于目录 /root/gcc-gdb-make_exp _________________________________________ 。 第二步,修改PATH环境变量,将arm-linux-gcc可执行文件目录添加到PATH环境变量中,命令为 5.2 arm-l inu x-gcc编译工具使用

STM32读写SD卡

3.20SD卡实验 很多单片机系统都需要大容量存储设备,以存储数据。目前常用的有U盘,FLASH芯片,SD卡等。他们各有优点,综合比较,最适合单片机系统的莫过于SD卡了,它不仅容量可以做到很大(32Gb以上),而且支持SPI接口,方便移动,有几种体积的尺寸可供选择(标准的SD 卡尺寸,以及TF卡尺寸),能满足不同应用的要求。只需要4个IO口,就可以外扩一个最大达32GB以上的外部存储器,容量选择尺度很大,更换也很方便,而且方便移动,编程也比较简单,是单片机大容量外部存储器的首选。 ALIENTKE MiniSTM3开发板就带有SD卡接口,利用STM32自带的SPI接口,最大通信速度可达18Mbps,每秒可传输数据2M字节以上,对于一般应用足够了。本节将向大家介绍,如何在ALIENTEK MiniSTM32开发板上读取SD卡。本节分为如下几个部分: 3.20.1 SD卡简介 3.20.2 硬件设计 3.20.3 软件设计 3.20.4 下载与测试

3.20.1 SD卡简介 SD卡(Secure Digital Memory Card)中文翻译为安全数码卡,是一种基于半导体快闪记忆器的新一代记忆设备,它被广泛地于便携式装置上使用,例如数码相机、个人数码助理(PDA)和多媒体播放器等。SD卡由日本松下、东芝及美国SanDisk公司于1999年8月共同开发研制。大小犹如一张邮票的SD记忆卡,重量只有2克,但却拥有高记忆容量、快速数据传输率、极大的移动灵活性以及很好的安全性。 SD卡一般支持2种操作模式: 1,SD卡模式; 2,SPI模式; 主机可以选择以上任意一种模式同SD卡通信,SD卡模式允许4线的高速数据传输。SPI模式允许简单的通过SPI接口来和SD卡通信,这种模式同SD卡模式相比就是丧失了速度。 SD卡的引脚排序如下图所示: 图3.20.1.1 SD卡引脚排序图 SD卡引脚功能描述如下表所示: 表3.20.1.1 SD卡引脚功能表 SD卡只能使用3.3V的IO电平,所以,MCU一定要能够支持3.3V的IO端口输出。 注意:在SPI模式下,CS/MOSI/MISO/CLK都需要加10~100K左右的上拉电阻。 SD卡要进入SPI模式很简单,就是在SD卡收到复位命令(CMD0)时,CS为有效电平(低电平)则SPI模式被启用。不过在发送CMD0之前,要发送>74个时钟,这是因为SD卡内部有个供电电压上升时间,大概为64个CLK,剩下的10个CLK用于SD卡同步,之后才能开始CMD0的操作,在卡初始化的时候,CLK时钟最大不能超过400Khz!。 ALENTEK MiniSTM32开发板使用的是SPI模式来读写SD卡,下面我们就重点介绍一下SD卡在SPI模式下的相关操作。 首先介绍SPI模式下几个重要的操作命令,如下表所示:

SD模块用户操作手册

目录 (1)标准订单用于有赊销的情况,常用于省公司销售和分公司有赊销的销售。(2)标准订单(参照合同)用于有赊销的情况,同样用于省公司销售和分公司有赊销的销售,但该订单适用于事前签订了合同的情况。 (3)现金订单(无应收)多用于市(县)公司无赊销的销售。 (4)库割流程在同一油库内将属于省公司的油料库割给分公司,只是油料所有权的转移,并不发生实际的油料移动,没有损耗,仅仅是帐面的处理。 (5)寄售补货订单用于将油品从我方油库转移给寄售方,但发出货物的物权仍在我方,不转移给客户,作为我方在客户方的寄售库存。 (6)寄售发货订单在寄售方将寄售货物的售出部分与我方进行结算时使用。 (7)直发流程在某客户与公司有一笔销售业务往来,客户到炼厂直接提货时使用。(8)销售代保管发货流程描述的是对客户寄存在我公司的代保管量进行发货的过程。 (9)合同是在销售业务进行之前,业务员与客户按照销售需求协商,呈销售经理审批核准后与客户签订的。 (10)错误发票处理流程 (11)退货流程是指销售业务发生后,客户因质量等原因要求退货时而发生的。(12)发票打印流程 (13)分公司提货单打印

一、标准订单流程 (一) 创建标准订单 1. SAP交易代码VA01 2.输入:销售组织分销渠道部门销售办事处(订单类型ZS03) 3.输入订单相关内容:售达方采购订单编号(填入销售人员)交货工厂付款 条件物料订单数量 4.点击“”,通过修改销售指导附加价输入价格,再点击“”返回 5.点击“”(显示凭证项目细节),点“会计”,输入收付方式,”指定”栏位内输入 销售办公室的代号 6.点击“装运”,输入:装运类型特殊处理标志 7.保存订单,记录订单号 (二)针对标准订单创建交货单并发货过帐 1. SAP交易代码VL01N 2.输入:装运地点订单号 3.输入交货单相关内容:评估类型库位,点击“外部细节”,选择运输方式 4.转到/表头/文本,输入:提单流水号 5. 点击“发货过帐”,记录交货单号 (三)开立发票 1.SAP交易代码VF01 2.输入交货单号,转到/表头/文本,输入:开票员姓名,点击“(执行)”,保存 发票

SD卡读写包括两种模式

SD卡读写包括两种模式:SD模式和SPI模式。其中SD模式又可以分为1bit 和4bit两种传输模式。SD卡缺省使用专有的SD模式。SD卡规范中主要讲了一些命令,响应和CRC效验等等,整个规范的内容还是很多的。 SD卡上电后,卡处于空闲状态,主机发送CMD0复位SD卡,然后通过CMD55和ACMD41判断当前电压是否在卡的工作范围内。在得到了正确的响应后,主机可以继续通过CMD10读取SD卡的CID寄存器,通过CMD16设置数据块长度,通过CMD9读取卡的CSD寄存器。从CSD寄存器中,主机可以获知卡容量,支持的命令集等重要参数。此时,卡以进入了传输状态,主机就可以通过CMD17/18和CMD24/25对卡进行读写。CRC校验是为了防止SD卡的命令,应答,数据传输出现错误。每个命令和应答信号都会产生CRC效验码,每个数据块的传输也会长生CRC效验码。 这段程序是友善之臂推出的mini2440开发板中带的ADS测试源码。整个阅读代码的过程是对这S3C2440的芯片手册和SD卡规范来看的,对于MMC卡没有给出注释,其实和SD卡是大同小异。由于是初次接触ARM,对SD规范的认识也不是很深入,再加上自己水平有限,还不能完全读懂源代码,其中的肯定存在一些错误,欢迎大家一起交流讨论。

#define INT 1 #define DMA 2 int CMD13(void);// Send card status int CMD9(void); unsigned int*Tx_buffer;//128[word]*16[blk]=8192[byte] unsigned int*Rx_buffer;//128[word]*16[blk]=8192[byte] volatile unsigned int rd_cnt;//读数据计数器 volatile unsigned int wt_cnt;//写数据计数器 volatile unsigned int block;//读写块总数 volatile unsigned int TR_end=0; int Wide=0;// 0:1bit, 1:4bit int MMC=0;// 0:SD , 1:MMC int Maker_ID; char Product_Name[7]; int Serial_Num; volatile int RCA; void Test_SDI(void) { U32 save_rGPEUP, save_rGPECON; RCA=0;

sapsd操作手册

sapsd操作手册 1

前言 《SD模块用户培训手册》是燕化ERP整合项目SD模块部分流程的操作方法规范, 按章节分步骤对本次整合过程中变动较大部分做了必要的介绍。此《手册》作为燕山石化ERP整合项目SD模块最终用户的培训材料和ERP系统中进行销售分销管理及操作的补充。 SD模块整合前在两个公司代码下共有销售业务流程35个, 整合后归并为14个销售业务流程; 原有单据类型72 个, 现有单据类型34个; 原有条件类型33个, 现有条件类型21个。 在《SD模块用户培训手册》的编写过程中, 把ERP管理理念与本企业实际业务有机相结合, 并总结了上线一年的实践经验, 适应新的销售体制改革需求, 结合企业各项管理制度, 理顺规范业务流程, 力求提升分公司的销售管理水平。 SD模块整合工作得到石化盈科顾问的技术指导、燕山石化ERP整合项目指导委员会的关心和相关专业部门的支持, 在此表示感谢! 由于编写时间仓促、理论实践水平有限, 如有疏漏和错误之处, 恳请广大读者给予指正, 发现系统中业务管理存在的不足请及时提出, 以便我们加以完善。 本书编写成员: 中石化燕山分公司: 孙秀军、李旭、徐晓光、尹庆伟、佟欣 ERP技术顾问: 熊霞

燕化ERP整合项目SD模块用户培训手册编写小组 12月06日

目录 概述................................................................................................ 错误!未定义书签。 一、销售范围简介........................................................................... 错误!未定义书签。 1、销售组织结构图........................................................................ 错误!未定义书签。2、销售范围相关定义.................................................................. 错误!未定义书签。二销售业务流程.............................................................................. 错误!未定义书签。 第一章 SD_001: 客户主数据维护流程......................................... 错误!未定义书签。 一、业务流程简介........................................................................... 错误!未定义书签。 1、新增客户的审批流程................................................................ 错误!未定义书签。2、业务流程各步骤说明.............................................................. 错误!未定义书签。二SAP系统操作 ............................................................................. 错误!未定义书签。 1、SAP交易代码........................................................................... 错误!未定义书签。2、操作细部描述.......................................................................... 错误!未定义书签。 第二章 SD_002: 价格主数据维护流程......................................... 错误!未定义书签。 一条件类型 ..................................................................................... 错误!未定义书签。二SAP系统操作过程 ..................................................................... 错误!未定义书签。 1、完成该步骤的SAP角色名称 .................................................. 错误!未定义书签。 2、SAP交易代码............................................................................ 错误!未定义书签。

sd卡电路图学习

,时下已经成为最为通用的数据存储卡。在诸如MP3、数码相机等设备上也都采用SD卡作为其存储设备。SD卡之所以得到如此广泛的使用,是因为它价格低廉、存储容量大、使用方便、通用性与安全性强等优点。既然它有着这么多优点,那么如果将它加入到单片机应用开发系统中来,将使系统变得更加出色。这就要求对SD卡的硬件与读写时序进行研究。对于SD卡的硬件结构,在官方的文档上有很详细的介绍,如SD卡内的存储器结构、存储单元组织方式等内容。要实现对它的读写,最核心的是它的时序,笔者在经过了实际的测试后,使用51单片机成功实现了对SD卡的扇区读写,并对其读写速度进行了评估。下面先来讲解SD卡的读写时序。 (1)SD卡的引脚定义: SD卡引脚功能详述:

SD卡SPI模式下与单片机的连接图: SD卡支持两种总线方式:SD方式与SPI方式。其中SD方式采用6线制,使用CLK、CMD、DAT0~DAT3进行数据通信。而SPI方式采用4线制,使用CS、CLK、DataIn、DataOut进行数据通信。SD方式时的数据传输速度与SPI方式要快,采用单片机对SD卡进行读写时一般都采用SPI模式。采用不同的初始化方式可以使SD卡工作于SD方式或SPI方式。这里只对其SPI方式进行介绍。 (2) SPI方式驱动SD卡的方法 SD卡的SPI通信接口使其可以通过SPI通道进行数据读写。从应用的角度来看,采用SPI接口的好处在于,很多单片机内部自带SPI 控制器,不光给开发上带来方便,同时也见降低了开发成本。然而,它也有不好的地方,如失去了SD卡的性能优势,要解决这一问题,就要用SD方式,因为它提供更大的总线数据带宽。SPI接口的选用是在上电初始时向其写入第一个命令时进行的。以下介绍SD卡的驱动方法,只实现简单的扇区读写。 1)命令与数据传输 1. 命令传输 SD卡自身有完备的命令系统,以实现各项操作。命令格式如下: 命令的传输过程采用发送应答机制,过程如下: 每一个命令都有自己命令应答格式。在SPI模式中定义了三种应答格式,如下表所示:

嵌入式Linux应用软件开发流程

从软件工程的角度来说,嵌入式应用软件也有一定的生命周期,如要进行需求分析、系统设计、代码编写、调试和维护等工作,软件工程的许多理论对它也是适用的。 但和其他通用软件相比,它的开发有许多独特之处: ·在需求分析时,必须考虑硬件性能的影响,具体功能必须考虑由何种硬件实现。 ·在系统设计阶段,重点考虑的是任务的划分及其接口,而不是模块的划分。模块划分则放在了任务的设计阶段。 ·在调试时采用交叉调试方式。 ·软件调试完毕固化到嵌入式系统中后,它的后期维护工作较少。 下面主要介绍分析和设计阶段的步骤与原则: 1、需求分析 对需求加以分析产生需求说明,需求说明过程给出系统功能需求,它包括:·系统所有实现的功能 ·系统的输入、输出 ·系统的外部接口需求(如用户界面) ·它的性能以及诸如文件/数据库安全等其他要求 在实时系统中,常用状态变迁图来描述系统。在设计状态图时,应对系统运行过程进行详细考虑,尽量在状态图中列出所有系统状态,包括许多用户无需知道的内部状态,对许多异常也应有相应处理。 此外,应清楚地说明人机接口,即操作员与系统间地相互作用。对于比较复杂地系统,形成一本操作手册是必要的,为用户提供使用该系统的操作步骤。为使系统说明更清楚,可以将状态变迁图与操作手册脚本结合起来。

在对需求进行分析,了解系统所要实现的功能的基础上,系统开发选用何种硬件、软件平台就可以确定了。 对于硬件平台,要考虑的是微处理器的处理速度、内存空间的大小、外部扩展设备是否满足功能要求等。如微处理器对外部事件的响应速度是否满足系统的实时性要求,它的稳定性如何,内存空间是否满足操作系统及应用软件的运行要求,对于要求网络功能的系统,是否扩展有以太网接口等。 对于软件平台而言,操作系统是否支持实时性及支持的程度、对多任务的管理能力是否支持前面选中的微处理器、网络功能是否满足系统要求以及开发环境是否完善等都是必须考虑的。 当然,不管选用何种软硬件平台,成本因素都是要考虑的,嵌入式Linux 正是在这方面具有突出的优势。 2、任务和模块划分 在进行需求分析和明确系统功能后,就可以对系统进行任务划分。任务是代码运行的一个映象,是无限循环的一段代码。从系统的角度来看,任务是嵌入式系统中竞争系统资源的最小运行单元,任务可以使用或等待CPU、I/O设备和内存空间等系统资源。 在设计一个较为复杂的多任务应用系统时,进行合理的任务划分对系统的运行效率、实时性和吞吐量影响都极大。任务分解过细会不断地在各任务之间切换,而任务之间的通信量也会很大,这样将会大大地增加系统的开销,影响系统的效率。而任务分解过粗、不够彻底又会造成原本可以并行的操作只能按顺序串行执行,从而影响系统的吞吐量。为了达到系统效率和吞吐量之间的平衡折中,在划分任务时应在数据流图的基础上,遵循下列步骤和原则:

sap_sd_操作手册

前言 《SD模块用户培训手册》是燕化ERP整合项目SD模块部分流程的操作方法规范,按章节分步骤对本次整合过程中变动较大部分做了必要的介绍。此《手册》作为燕山石化ERP整合项目SD模块最终用户的培训材料和ERP系统中进行销售分销管理及操作的补充。 SD模块整合前在两个公司代码下共有销售业务流程35个,整合后归并为14个销售业务流程;原有单据类型72 个,现有单据类型34个;原有条件类型33个,现有条件类型21个。 在《SD模块用户培训手册》的编写过程中,把ERP管理理念与本企业实际业务有机相结合,并总结了上线一年的实践经验,适应新的销售体制改革需求,结合企业各项管理制度,理顺规范业务流程,力求提升分公司的销售管理水平。 SD模块整合工作得到石化盈科顾问的技术指导、燕山石化ERP整合项目指导委员会的关心和相关专业部门的支持,在此表示感谢! 由于编写时间仓促、理论实践水平有限,如有疏漏和错误之处,恳请广大读者给予指正,发现系统中业务管理存在的不足请及时提出,以便我们加以完善。 本书编写成员: 中石化燕山分公司:孙秀军、李旭、徐晓光、尹庆伟、佟欣 ERP技术顾问:熊霞 燕化ERP整合项目SD模块用户培训手册编写小组 2005年12月06日 目录 概述5 一、销售范围简介5 1、销售组织结构图5 2、销售范围相关定义6 二销售业务流程7

第一章 SD_001:客户主数据维护流程7 一、业务流程简介7 1、新增客户的审批流程7 2、业务流程各步骤说明7 二SAP系统操作8 1、SAP交易代码8 2、操作细部描述8 第二章 SD_002:价格主数据维护流程15 一条件类型15 二SAP系统操作过程15 1、完成该步骤的SAP角色名称15 2、SAP交易代码15 3操作细部描述16 三、其他项目说明23 四、显示价格主数据24 五、冻结价格主数据25 第三章 SD_003:标准销售合同维护流程27 一业务流程简介27 1业务流程各步骤说明27 二SAP系统操作过程27 1SAP交易代码27 2操作细部描述27 3更改销售合同29 4显示合同29 第四章 SD_004 标准订单处理流程29 一销售业务与订单类型简介29 1、订单类型29 2、业务模式所适用订单类型29 二SAP系统操作30 1创建燕化量价销售订单30 2显示订单列表34 3显示订单凭证流36 4订单的后续操作冻结及拒绝40 第五章、SD_006:化工统销集成业务流程42 一、买断模式业务流程简介42 1、注意事项:42 2、业务流程图42

SD卡读写操作 SD卡电路

SD卡在现在的日常生活与工作中使用非常广泛,时下已经成为最为通用的数据存储卡。在诸如MP3、数码相机等设备上也都采用SD卡作为其存储设备。SD卡之所以得到如此广泛的使用,是因为它价格低廉、存储容量大、使用方便、通用性与安全性强等优点。既然它有着这么多优点,那么如果将它加入到单片机应用开发系统中来,将使系统变得更加出色。这就要求对SD卡的硬件与读写时序进行研究。对于SD卡的硬件结构,在官方的文档上有很详细的介绍,如SD卡内的存储器结构、存储单元组织方式等内容。要实现对它的读写,最核心的是它的时序,笔者在经过了实际的测试后,使用51单片机成功实现了对SD卡的扇区读写,并对其读写速度进行了评估。下面先来讲解SD卡的读写时序。 (1)SD卡的引脚定义: SD卡引脚功能详述:

SD卡SPI模式下与单片机的连接图: SD卡支持两种总线方式:SD方式与SPI方式。其中SD方式采用6线制,使用CLK、CMD、DAT0~DAT3进行数据通信。而SPI 方式采用4线制,使用CS、CLK、DataIn、DataOut进行数据通信。SD方式时的数据传输速度与SPI方式要快,采用单片机对SD卡进行读写时一般都采用SPI模式。采用不同的初始化方式可以使SD卡工作于SD方式或SPI方式。这里只对其SPI方式进行介绍。 (2) SPI方式驱动SD卡的方法 SD卡的SPI通信接口使其可以通过SPI通道进行数据读写。从应用的角度来看,采用SPI接口的好处在于,很多单片机内部自带SPI控制器,不光给开发上带来方便,同时也见降低了开发成本。然而,它也有不好的地方,如失去了SD卡的性能优势,要解决这一问题,就要用SD方式,因为它提供更大的总线数据带宽。SPI接口的选用是在上电初始时向其写入第一个命令时进行的。以下介绍SD卡的驱动方法,只实现简单的扇区读写。 1)命令与数据传输 1. 命令传输 SD卡自身有完备的命令系统,以实现各项操作。命令格式如下: 命令的传输过程采用发送应答机制,过程如下: 每一个命令都有自己命令应答格式。在SPI模式中定义了三种应答格式,如下表所示:

STM32的SD卡读取

连载】【ALIENTEK 战舰STM32开发板】STM32开发指南--第四十四章SD卡实验 2013-04-04 23:07 第四十四章 SD卡实验 很多单片机系统都需要大容量存储设备,以存储数据。目前常用的有U盘,FLASH芯片,SD卡等。他们各有优点,综合比较,最适合单片机系统的莫过于SD卡了,它不仅容量可以做到很大(32Gb以上),而且支持SPI接口,方便移动,并且有几种体积的尺寸可供选择(标准的SD卡尺寸,以及TF卡尺寸等),能满足不同应用的要求。 只需要4个IO口即可外扩一个最大达32GB以上的外部存储器,容量从几十M到几十G 选择尺度很大,更换也很方便,编程也简单,是单片机大容量外部存储器的首选。ALIENTKE 战舰STM32开发板自带了标准的SD卡接口,可使用STM32自带的SPI/S DIO接口驱动(通过跳线帽选择驱动方式),本章我们使用SPI驱动,最高通信速度可达18Mbps,每秒可传输数据2M字节以上,对于一般应用足够了。在本章中,我们将向大家介绍,如何在ALIENTEK战舰STM32开发板上实现SD卡的读取。本章分为如下几个部分: 44.1 SD卡简介 44.2 硬件设计 44.3 软件设计 44.4 下载验证 44.1 SD卡简介 SD卡(Secure Digital Memory Card)中文翻译为安全数码卡,它是在MMC的基础上发展而来,是一种基于半导体快闪记忆器的新一代记忆设备,它被广泛地于便携式装置上使用,例如数码相机、个人数码助理(PDA)和多媒体播放器等。SD卡由日本松下、东芝及美国SanDisk公司于1999年8月共同开发研制。大小犹如一张邮票的SD记忆卡,重量只有2克,但却拥有高记忆容量、快速数据传输率、极大的移动灵活性以及很好的安全性。按容量分类,可以将SD卡分为3类:SD卡、SDHC卡、SDXC卡。如表44.1.1所示:容量命名简称 0~2G Standard Capacity SD Memory Card SDSC或SD 2G~32G High Capacity SD Memory Card SDHC 32G~2T Extended Capacity SD Memory Card SDXC 表44.1.1 SD卡按容量分类 SD卡和SDHC卡协议基本兼容,但是SDXC卡,同这两者区别就比较大了,本章我们讨论的主要是SD/SDHC卡(简称SD卡)。

SAP系统用户操作手册-SD-V1.5(一)SD主数据

SD主数据 说明: 1、不改变各部分对应字体、字号; 2、系统操作界面截屏中,标注符号从以下标识选取即可: 3、版本控制: 版本号日期更改者版本备注 1.0 2012-05-31 胡瑞媛 景伟 周俊 杨靓 张晶 王丽娜 初始版本: 客户主数据 信贷主数据;托盘回收 价格主数据;销售开票(参考财务操作手册) 业务员主数据 数量合同;按单采购;免费发货;借/贷项;其它 标准销售订单(按单/库);来料加工;退货;换货 ERP项目 SAP系统用户操作手册 销售与分销(SD) 7 8 10 1 12 2 4 5 6 7 8 9 10 11 3 13 1 4 15

目录 1SD主数据 (6) 1.1客户主数据 (6) 1.1.1创建客户主数据 (6) 1.1.2更改客户主数据 (30) 1.1.3显示客户主数据 (33) 1.1.4系统操作要点说明 (36) 1.2信贷主数据 (37) 1.2.1创建/更改信贷主数据 (37) 1.2.2显示信贷主数据 (41) 1.2.3显示信贷更改 (43) 1.2.4信贷主数据清单 (45) 1.2.5系统操作要点说明 (47) 1.3销售价格主数据 (47) 1.3.1创建条件记录 (47) 1.3.2更改条件记录 (50) 1.3.3显示条件记录 (53) 1.3.4系统操作要点说明 (56) 1.4业务员主数据 (57) 1.4.1创建业务员主数据 (57) 1.4.2更改业务员主数据 (67) 1.4.3显示业务员主数据 (70)

1.4.4系统操作要点说明 (73) 1.5物料清单(销售BOM) (75) 1.5.1创建物料清单(销售BOM) (75) 1.5.2更改物料清单(销售BOM) (79) 1.5.3显示物料清单(销售BOM) (83) 1.5.4系统操作要点说明 (85) 2销售订单业务............................................................................................... 错误! 2.1数量合同 ........................................................................................ 错误! 2.1.1创建数量合同 ........................................................................... 错误! 2.1.2更改数量合同 ........................................................................... 错误! 2.1.3显示数量合同 ........................................................................... 错误! 2.1.4系统操作要点说明.................................................................... 错误! 2.2销售订单-标准 ............................................................................... 错误! 2.2.1创建销售订单 ........................................................................... 错误! 2.2.2销售订单审批 ........................................................................... 错误! 2.2.3更改销售订单 ........................................................................... 错误! 2.2.4显示销售订单 ........................................................................... 错误! 2.2.5系统操作要点说明.................................................................... 错误! 2.3销售订单-按单采购........................................................................ 错误! 2.4销售订单-免费发货........................................................................ 错误! 2.5销售订单-借/贷项 .......................................................................... 错误! 2.6销售订单-其它 ............................................................................... 错误!

SD卡引脚及spi模式基本操作过程

SD卡引脚及spi模式基本操作过程 (摘自网络) 对于SD卡的硬件结构,在官方的文档上有很详细的介绍,如SD卡内的存储器结构、存储单元组织方式等内容。要实现对它的读写,最核心的是它的时序,笔者在经过了实际的测试后,使用51单片机成功实现了对SD卡的扇区读写,并对其读写速度进行了评估。下面先来讲解SD卡的读写时序。 SD卡的引脚定义 SD卡引脚功能详述: 引脚编号 SD模式SPI模式 名称类型描述名称类型描述 1 CD/DAT3 IO或PP 卡检测/ 数据线3 #CS I 片选 2 CMD PP 命令/ 回应 DI I 数据输入 3 VSS1 S 电源地VSS S 电源地 4 VDD S 电源VDD S 电源 5 CLK I 时钟SCLK I 时钟 6 VSS2 S 电源地VSS2 S 电源地 7 DAT0 IO或PP 数据线0 DO O或PP 数据输出 8 DAT1 IO或PP 数据线1 RSV 9 DAT2 IO或PP 数据线2 RSV 注:S:电源供给I:输入O:采用推拉驱动的输出 PP:采用推拉驱动的输入输出 SD卡SPI模式下与单片机的连接图:

SD卡支持两种总线方式:SD方式与SPI方式。其中SD方式采用6线制,使用CLK、CMD、DAT0~DAT3进行数据通信。而SPI方式采用4线制,使用CS、CLK、DataIn、DataOut进行数据通信。SD方式时的数据传输速度与SPI方式要快,采用单片机对SD卡进行读写时一般都采用SPI模式。采用不同的初始化方式可以使SD卡工作于SD方式或SPI 方式。这里只对其SPI方式进行介绍。 SPI方式驱动SD卡的方法 SD卡的SPI通信接口使其可以通过SPI通道进行数据读写。从应用的角度来看,采用SPI接口的好处在于,很多单片机内部自带SPI控制器,不光给开发上带来方便,同时也见降低了开发成本。然而,它也有不好的地方,如失去了SD卡的性能优势,要解决这一问题,就要用SD方式,因为它提供更大的总线数据带宽。SPI接口的选用是在上电初始时向其写入第一个命令时进行的。以下介绍SD卡的驱动方法,只实现简单的扇区读写。 1)命令与数据传输 1. 命令传输 SD卡自身有完备的命令系统,以实现各项操作。命令格式如下: 命令的传输过程采用发送应答机制,过程如下:

基于嵌入式ARM的SD卡的读写.

摘要 SD卡(Secure Digital Memory Card)中文翻译为安全数码卡,是一种基于半导体快闪记忆器的新一代记忆设备,它被广泛地于便携式装置上使用,例如数码相机、个人数码助理(PDA)和多媒体播放器等。本实训的作品是利用基于ARM Cotex-M3内核的嵌入式处理器STM32自带的SDIO硬件接口来驱动SD卡,并结合文件系统 FATFS R0.07C来完成一个基于嵌入式ARM的SD卡读写的作品,现实向SD 卡写入一个txt文件,并读取SD卡的文件目标并通过串口打印到PC机显示。 关键词:嵌入式;ARM;STM32;SD卡;文件系统

Abstract SD Card (Secure Digital Memory Card) Chinese translation for Secure Digital Card, it is a kind of based on semiconductor flash Memory of a new generation of Memory device, it is widely used in portable devices, such as Digital cameras, personal Digital assistant (PDA) and multimedia player, etc. This training work is based on ARM Cotex - M3 kernel embedded processor STM32 own SDIO hardware interface to drive the SD card, and combined with the file system FATFS R0.07 C to complete a based on embedded ARM of the SD card, speaking, reading and writing work, reality to SD card to a TXT file, and read SD card file goals and through the serial port print to PC display. Key words:embedded;ARM;STM32; SD Card; File system

相关主题
文本预览
相关文档 最新文档