热线电话:

厦门莫格电气自动化有限公司

主营:PLC可编程控制器模块,DCS卡件,ES...

商铺首页 > 新闻动态 > SPASI23
厦门莫格电气自动化有限公司
8
企业等级: 普通会员
经营模式:
所在地区: 福建 厦门
联系卖家:    QQ在线咨询1982497648
手机号码:
公司官网:
公司地址:

SPASI23

发布时间:2019-08-14 09:05:25        

ABB 贝利SPASI23

 
 引 言
  SD存储卡(Secure Digital Memory Card)由SD联盟(松下、东芝及美国SanDisk公司)于1999年8月共同开发研制,是一种基于半导体快闪存储器的新一代存储设备,被广泛地使用在便携式装置上,例如数码相机、PDA和多媒体播放器等。大小犹如一张邮票的SD存储卡,重量只有2g,却拥有高存储容量、快速数据传输率、极大的移动灵活性以及很好的安全性。
  SD卡支持SD和SPI两种传输模式,主机系统可以选择其中任意一种模式。SD模式允许4线的高速数据传输。SPI模式使用通用的SPI接口。这种模式相对于SD模式的不足之处是丧失了速度,但是却有着接口简单易于实现的优点。SD卡的SPI模式使得SD卡可以和市场上大部分微控制器进行通信。
  Microchip公司的dsPIC33F系列通用DSC(数字信号控制器),是在16位MCU架构基础之上添加了DSP引擎,从而具有数字信号处理功能的微控制器产品。该系列DSC集成了DCI(数据转换器)接口,尤其适用于语音和音频的应用。
  本文首先简要介绍SD卡的相关规范,之后利用dsPIC33FJ64GP706通用DSC设计了SD卡接口电路,最后通过SPI模式实现了对SD卡的基本操作。本设计可以使SD存储卡成为类似嵌入式系统产品的数据存储器。
  1 SD卡相关规范简介
  SD联盟在2000年联合发布了SD卡规范1.O版本,包括3个部分:物理层规范,文件系统规范以及安全规范。SD卡规范V1.0采用FAT的文件系统,因此最大存储容量可以达到2 GB。2006年,SD卡规范V2.0发布。新规范根据容量定义了两种卡,即标准容量SD卡和大容量SD卡。前者和1.O版本保持兼容,后者由于采用了FAT32文件系统,存储容量突破了2 GB的限制。新规范定义的最大容量为32 GB。但是由于成本的原因,标准容量SD卡仍然是市场的主流产品。在以微控制器为核心的嵌入式系统中,主要使用SD卡的SPI。模式进行通信,这使得标准容量的SD卡更为合适。本设计适用于2GB以下任意容量的SD卡。
  1.1 概 述
  SD存储卡在2.7~3.6 V电压下正常工作,工作频率为0~25MHz。图1是普通SD卡的外形和引脚排列。在SPI模式时,第8和第9脚不使用。表1列出了各引脚在SPI模式时的定义和功能描述。
普通SD卡的外形和引脚排列
  图中的WP是一个机械滑片,通过滑动到不同的位置来对SD卡进行写保护。
  SD卡内部有6个和接口相关的寄存器:OCR、CID、CSD、RCA、DSR和SCR。它们只能通过各自对应的指令来访问。OCR、CID、CSD和SCR携带SD卡的规范信息,RCA和DSR作为配置寄存器装载了SD卡的配置参数。
  1.2 SPI协议
  系统上电之后,如果主机在将CS线声明为低电平的同时发送复位指令(CMDO),则SPI模式启用。SD卡在SPI模式下按字节进行通信,每一个指令和数据块都由数个字节组成并与CS信号对齐(也就是长度为8个时钟周期的整数倍)。
  主机和SD卡之间是通过指令与响应来实现交互的。
  图2给出了SPI模式下基本的指令与响应的时序。
各引脚在SPI模式时的定义和功能描述
点击看原图
SPI模式下基本的指令与响应的时序
点击看原图
  图中一个方格代表一个字节,H为逻辑全“1”,L为逻辑全“O”,X代表未知,Z为高阻态。NCS、NEC和NCR都是包含N个8时钟周期,具体N的取值范围在SD卡规范中给出了详细的说明。
  SD卡所有的指令,长度都是6字节。表2列出了指令格式。
指令格式
点击看原图
  在有效接收到主机发来的指令之后,SD卡将会把对应的响应数据段放在总线上,主机根据响应的内容判断SD卡的状态。所有的响应都是MSB优先传输。SD卡有4种类型的响应格式,分别为R1、R1b、R2、R3。
  除了SEND_STATUS和READ_OCR指令外,其他指令的响应都是格式R1。格式R1的长度为1字节,并且最高位总是0。其余每位均是错误指示,在指令接收过程中发生了什么样的错误,对应的错误位就会是“1”。R1b和R1具有相同的格式,它将伴随一个附加的busy信号。busy信号的长度可以是任意个字节。全零表示卡处在“忙”的状态。格式R2的长度为2字节,它是指令SEND_STATUS的响应。它的高字节和R1相同,低字节同样作为状态指示。当接收到了READ_OCR指令时,SD卡将会产生格式R3的响应,该响应的长度为5字节。最高字节和R1相同,其余的4字节将包含SD卡的OCR寄存器信息。
  在SD卡规范中详细描述了每条指令的格式内容及作用,并给出了各条指令所对应的响应。对于每种响应的信息也有详细的说明,具体信息参阅参考文献。
  2 SD卡接口电路设计
  16位的dsPIC33F系列DSC具有高达40 MIPS的指令周期,继承了Microchip公司之前8位和16位MCU产品的优点,并保持着对以往低成本开发系统的兼容性。dsPIC33FJ64GP706是其中一款64引脚的通用产品,拥有高达64 KB的Flash程序存储器和16 KB的数据存储器。该芯片集成了2个通用SPI接口,本设计使用SPI2模块来建立和SD存储卡的通信。
  图3所示为dsPIC33FJ64GP706与SD卡座的接口电路。为了防止在无卡接入或卡驱动器呈高阻态时总线悬空,在每根信号线上要接一个上拉电阻,根据SD卡规范(见参考文献,第6章),电阻的阻值可以取10~90kΩ。卡座的CD引脚是SD卡检测信号引脚,当有卡插入时,该引脚对地短路。WP是写保护信号引脚,在卡插入且没有写保护时,该引脚对地短路;如果SD卡写保护或没有卡插入,该引脚通过上拉电阻接到电源正极。
dsPIC33FJ64GP706与SD卡座的接口电路
点击看原图
  3 SD卡接口的实现
  3.1 选择SD卡的SPI模式并初始化SD卡
  在上电之后,主机开始发送时钟信号,此时的时钟频率不能超过400 kHz。主机要连续发送至少74个时钟周期的“1”才能使SD卡准备好通信,然后选择SPI模式。SD卡进入SPI模式之后,就可以接收来自主机的操作指令了。这时候主机发送SEND_OP_COND指令,激活卡的初始化过程。在得到正确的响应之后,主机再发送SEND_CSD指令读取CSD寄存器的内容。正确响应之后,将SPI总线时钟频率提高到10 MHz,初始化过程结束。
  3.2 指令和响应交互过程的软件实现
指令和响应交互过程的软件实现
点击看原图
  typSD_CMD是自定义的结构类型,包含指令索引、CRC和响应格式。最后一个字节数据用来说明该指令有无后续数据块,例如READ_SINGLE_BLOCK(单数据块读指令),它需要SD卡发送一个数据块的数据,因此其后的数据为“1”。对于指令索引,是把开始位和传输位与6位索引值包含在一起的数据。例如G0_IDLE_STATE的索引值是二进制“000000”,加上开始位“O”和传输位“1”,成为“01000000”,即“Ox40”,READ_SINGLE_BLOCK的索引值是“010001”,加上开始位和传输位,成为“01010001”即"051”。
  定义发送指令函数为SendSDCmd(),返回值为从总线上读取的响应数据。(具体函数略——编者注)函数的第一个参数是指令列表数组中相应指令元素的序号,函数会根据它的值在指令表中查到对应的信息,第二个参数是指令的附加内容。函数中CMD_PACKET是按指令格式(见表2)定义的联合类型,程序通过查表的方式将指令的内容装载到该类型定义的变量中,并通过函数Write_sd()发送出去。write_sd()的作用是把一个字节的数据放到SPI2模块的burfer里,完成一个字节的发送。函数ReadSd()用来读取SPI2接收的一个字节数据。如果接收的数据是0ff,则不是响应数据;如果接收到的响应不为全零,则说明有错误发生。
  以上程序按照图2所示时序执行,来实现一次指令和响应数据的交互。当某条指令有后续数据时,按照规范中的时序发送或者读取数据。
  3.3 读写操作的实现
  READ_SINGLE_BLOCK是单数据块读指令,在接收到有效的读指令后SD卡将会送出一个响应。紧接着是一个带16位CRC校验后缀的数据块,数据块的长度要在之前由SET_BLOCKEN(CMDl6)指令定义,一般为512字节,正好一个扇区的大小。数据块的开始是1字节的开始令牌,值为“0FE”,结束是2字节的CRC。该操作的通信过程如图4所示。
通信过程
点击看原图
  WRITE_SINGLE_BLOCK是单数据写操作指令,在接收到主机传来的数据后,SD卡会发送一个值为0x5的数据响应,之后进入busy状态。该操作的单数据写操作如图5所示。
单数据写操作
  按照以上通信过程编写程序,单数据块读和写的程序流程如图6所示。
单数据块读和写的程序流程
点击看原图
  4 结果验证
  将容量为1 GB的SD卡插入SD读卡器,再将读卡器插入PC机的USB接口中,此时系统出现“可移动磁盘(H:)”根目录。打开winhex软件,点击“工具”下拉菜单中的“打开磁盘”,选择“物理磁盘”中的“RMl:Ceneric STORAGE DEVICE(O.9G,USB)”,单击“确定”按钮,得到该SD卡第一个物理扇区的数据。该SD卡在偏移量从446开始的16个字节有数据“00 03 3D 00 06 OD ED DB F9 00 00 OO 07 5F 1E 00”,该扇区结束的两个字节为“55AA”,其余部分数据均为“00”。
  将SD卡取出,插入本设计电路的SD卡座中,用示波器连接D0、CLK和DI线,接通电源,测量SPI总线上的波形。
  本设计利用dsPIC33FJ64GP706的SPI接口实现了对SD存储卡的操作,可以把SD卡和dsPIC33F系列DSC两方面的优点集中到一个嵌入式系统中,有较高的利用价值
 
ME6906MYYBY9M0178
 
F384-CPU 
 
BK4000 
 
ETRI 75GF026AC11
 
SMT SWISS CNC 571-044-007 
 
Heckler&Koch   050.100.024.05 
 
Festo DRQD-16-180-PPVJ-A-AR-ZW   175801 S141
 
SICK WL18-3P130 
 
SICK VT180-P410
 
UFD11A-00 
 
Siemens  PS S7-200 6ES7 214-1AC01-0XB0 
 
Festo LFR-D-MIDI  185763 S308
 
mayr ROBATIC?-E 3/500.200.0S
 
SICK WS160-G430/WE160-F430
 
Siemens 3VF5211-1BH41-7KB1
 
Pneumatik Atlas PDD 006
 
SIEMENS   6ES5 700-8MA11
 
SPG S8I25
 
5IK60GU-SWM 
 
SIEMENS   6SL3255-0AA00-4JA0 
 
Norgren C72S-D0295 
 
GV2 M20 021091 
 
VAP-HH1 
 
Rexroth VT 11024-16 
 
SKF 22218 
 
Festo DNC-63-450-PPV-A-KP 163398 
 
Parker SPZBE1010E32N 
 
Parker D1SE83BNJW
 
DPM/PT100/B5   635-054  
 
DESTACO 82L25-103B8H0 
 
Parker SPZB1010E32S 
 
Dunkermotor GR63X25 
 
KEB 13AF506-3585 
 
MT-H1AAD10A111100 
 
KWB ID:2531095 P:400V S:110V/16A
 
Siemens  Sinumerik 6FX1126-1AA03 
 
KM6 6-ON PK110 
 
4LF45N-3 
 
BBS-41-1.5 
 
CE032C01N12N10 
 
QY81P  
 
QX 81 
 
QJ71C24N-R4 RS-422/485 
 
Q61P 
 
Q68B 
 
Siemens 3VL9300-3HR20
 
NZM3-XAD630 
 
Pfannenberg PA 110 
 
Stück Finder Koppelrelais  49.52.9.024.0050 
 
d20DN15
 
KG5043 
 
WIELAND WIPOS 81.000.6141.0 
 
AC015S   
 
MarelliMotori MOT.3 MAA 63 MC2-B3 
 
Moeller PS4-101-DD1 
 
PF2W720-F04-67  
 
QX 40-S1
 
Q64AD 
 
Q61P-A2 
 
MCS 20 - 230/24
 
PKZM4-58 
 
PLC-RSP-24DC/21AU   
 
ABB  XLP 00 
 
RSNT 5/2 E 
 
Trafo   160-0057
 
PMW-10 
 
Stück Finder Relais  55.34.9.024.5040
 
LEUZE   96K-1080-T2-24 + SLSE 96K/P-1070-T2-21 
 
MS56C/2
 
KEB POWERBOX 90.98.200-CE09 
 
Siemens 3TF44 22-0AP0 
 
SWITCHmaster SM-M2
 
SMC IZE112-L
 
Hahn+Kolb 7221-42  
 
CKD LCS-25-20
 
SMC, CXSL15-30R 
 
GINO 3G3IV-PLKEB41P5-D
 
S8PS-15024CD
 
BALLUFF BES 516-3009-SA2-MO-C-05 BES0341
 
Rexroth Star 1666-894-10
 
Festo CPV-14-VI 18210 
 
F376-OPC 
 
Siemens Simatic S7 6ES7131-1BL01-0XB0 
 
Siemens Simatic S7 6ES7131-1BH01-0XB0 
 
Siemens  3RU1146-4MB1 
 
Festo ADVU-63-25-A-P-A
 
EUCHNER EGT1-2000 001732 
 
SMC CXSL10-30 
 
SIEMENS 6SU59 31-0CB21 
 
Weld Fase F360-IOB 
 
Weld Fase F356-IOE 
 
Weld Fase F383-COM 
 
DM-485CB-10 
 
Georg Fischer +GF+ 161.546.065 
 
Siemens 6ES7132-1BL00-0XB0   
 
Siemens 3RK1903-1BE00 
 
XVBC8B4  
 
Festo CPE14-M1BH-5/3G-QS-8 
 
Festo ADN-80-60-I-P-A 
 
ENDRESS + HAUSER FTL 120 Z 917602-0001 
 
SB0210-2E1 112U-210 AB 5 
 
Festo VPEV-1/8-M12 
 
Bosch-Rexroth  5724550220 
 
PTBF0010KCSA 
 
3F480-016.225230c
 
3F480-032.225230c 
 
MITSUBISHI MR-JCCBL20M-H 
 
MITSUBISHI MR-JHSCBL20M-H 
 
Wenglor ZW600PCT3  
 
Siemens Simatic 6ES7 314-1AE04-0AB0 
 
ifm PN7024 
 
Siemens   6ES7 212-1AA01-0XB0
 
WAGO 750-333 
 
ifm efector 200 OU5018  
 
6ES7400-1TA01-0AA0
 
FANUC A03B-0801-C009 
 
SMC ZSE1-00-14L-Q ZSE1-00-14L-Q 
 
Bernstein 601.2431.877 
 
Cr36/11
 
Siemens  6ES7 407-0KA01-0AA0 
 
F381-ETH 
 
RPS 60 
 
FLUTEC 913800-157 
 
MK45-1 DN15-25 
 
IFM  AC1218
 
Pilz  240307
 
WAGO 750-303
 
SW-110-8-126-100-1PH3-KAL-10-GGVD-K350-F
 
CM2-BP04ERO 
 
Horn 312.1027.7994 TN32 
 
22218KMBW33
 
STATRON 5400.2 
 
YM24PAH2ANZ 
 
3UF7010-1AU00-0
 
HYDAC VR 2 C.1 
 
Siemens 3NC1093
 
ifm efector100 KB5004
 
ifm efector150 KG5066 
 
6FX1120-5BB01 
 
RX1A48D51VC 
 
DNC-32-40-PPV-A-S2 
 
5GU12.5KB 
 
ABL8 REM24050 
 
Phoenix Contact IBS ST ZF 24 
 
Weld Fase F353-ADC 
 
Weld Fase F359-MCP 
 
FB-IOT8-1 
 
SIEMENS 6ED1 052-1CC00-0BA6
 
 KUKA Art Nr. 05 71 040 098 
 
ZDPM 25/700 // ISO 6432-Zylinder 
 
VIPA 123-4EJ00 
 
Siemens 3RT 1646-1AP01 
 
SIEMENS Simatic S5 PS3A E24G5/3WRGD DIN 41752  
 
Siemens 3TF48 22-0AP0 
 
Siemens 3TF5022-0AN2 
 
MITSUBISHI Q173DV
 
JZSP-CSP01-05
 
CM2-BP04EAA 
 
CM2-BP04EAO
 
DNC-50-25-PPV-A-KP
 
CST 575/25/6 380/24V  
 
FEN-12/16-60-KF
 
Telemecanique GV3 M40 021307 
 
3UF7110-1AA00-0
 
6AV2100-0AA03-0AA5 
 
4EM5008-0DK00 
 
Siemens Simatic S7  6ES7 193-0CB10-0XA0  
 
SMC 9220-5YO-03F-Q  
 
FANUC   A02B-0076-K002 
 
QY80 
 
PULS ML 60.241 
 
SIV433-IP 
 
ifm   KI5083   
 
SIEMENS 6ED1 052-1MD00-0BA6 
 
Siemens 6FX1116-8AA00  
 
GOEMA 107 321-1BL00 S7
 
Rittal Ablagepult PS 4638.800 
 
Festo MDH-2-2,2-AW-QS-6 
 
Festo  CPA10-M1H-5/3BS 
 
RM35TF30 
 
Novotechnik RFC 4801-636-211-206 
 
SIEMENS 6ED1 055-1CB10-0BA0 
 
EK110000793NEU 
 
Riegler MV 2217G
 
MURR MDN 25-400/24  85901 
 
AUTONICS T4YI-N4NP0C
 
SCHMALZ SMP 15 NOASVD 10.02.02.00567 
 
Bosch CL100 050192-205 
 
BALLUFF BIS009A   C-6002-019-xxx-03-ST11
 
BOSCH 0 821 640 018
 
Siemens  3RV1721-1GD10 
 
Siemens  3RV1821-1GD10  
 
Wieland SNO4003K 
 
Siemens  6EP1 961-2BA00 
 
GV3L32 32A +GVAN11 
 
BCS0062  M12T4D2-PMS80G-S04G 
 
Omron E2KQ-X10ME1 
 
OMRON CJ1W-IC101 I/O 
 
OMRON CJ1W-II101 I/O
 
免责声明
• 本文仅代表作者个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,作者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们 304108043@qq.com
  • QQ在线咨询1982497648
  • 手机:
  • 联系我时务必告知是在产品网上看到的!

厦门莫格电气自动化有限公司

商铺|诚信档案

地址:

电话:传真:

免责声明:以上信息由会员自行提供,内容的真实性、准确性和合法性由发布会员负责,产品网对此不承担任何责任。产品网不涉及用户间因交易而产生的法律关系及法律纠纷, 纠纷由您自行协商解决。

风险提醒:本网站仅作为用户寻找交易对象,就货物和服务的交易进行协商,以及获取各类与贸易相关的服务信息的平台。为避免产生购买风险,建议您在购买相关产品前务必 确认供应商资质及产品质量。过低的价格、夸张的描述、私人银行账户等都有可能是虚假信息,请采购商谨慎对待,谨防欺诈,对于任何付款行为请您慎重抉择!如您遇到欺诈 等不诚信行为,请您立即与产品网联系,如查证属实,产品网会对该企业商铺做注销处理,但产品网不对您因此造成的损失承担责任!

联系:304108043@qq.com是处理侵权投诉的专用邮箱,在您的合法权益受到侵害时,欢迎您向该邮箱发送邮件,我们会在3个工作日内给您答复,感谢您对我们的关注与支持!

商铺首页 | 公司概况 | 供应信息 | 新闻动态 | 诚信档案 | 联系我们 |

厦门莫格电气自动化有限公司 电话: 传真: 联系人:

地址: 主营产品:PLC可编程控制器模块,DCS卡件,ESD系统卡件,振动监测系统卡件,汽轮机控制系统模块,燃气发电机备件

Copyright © 2025 版权所有: 产品网

免责声明:以上所展示的信息由企业自行提供,内容的真实性、准确性和合法性由发布企业负责。产品网对此不承担任何保证责任。

商盟客服

您好,欢迎莅临,欢迎咨询...