实现TMS320C5509对MMC存储卡的访问

来源 :电子与电脑 | 被引量 : 0次 | 上传用户:decet
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  TMS320C5509是TI公司推出的定点DSP芯片,具有功耗低,在片外围器件多等特点,适用于便携式超低功率场合,且自带有MMC控制器。MMC卡的全称为MultiMediaCard,是目前使用最为广泛的数码存储卡之一,广泛应用于数码相机、MP3、手机、掌上电脑等等各种便携式设备中。由于MMC卡独特的特性,其容量由128M到4G不等。实现TMS320C5509对MMC存储卡的读写有相当大的实用价值。
  
  TMS320C5509和MMC控制器简介
  
  TMS320C5509 DSP是目前集成度最高的通用DSP ,可实现因特网媒体娱乐终端、个人医疗、个人识别、保密技术、数码相机、个人摄像机等应用。 C5509 DSP 支持最广泛的DSP板上外围器件,包括用于直接连接PC机或其它USB主机设备的USB 1.1端口,支持移动设备普遍使用的多媒体卡(MultiMedia Card,简称MMC)和数字存储卡(Secure Digital Memory Card,简称SD卡)等便携式存储卡。其无与伦比的功能集成可使设计者在设计电池供电产品和连接PC机产品时,将主板空间和功率降低3倍,且支持大多数流行的可移动存储标准和多媒体格式。
  多媒体卡控制器可以读写多媒体卡(MultiMedia Card,简称MMC)和数字存储卡(Secure Digital Memory Card,简称SD卡)上的存储器,该控制器有如下特点:支持MMC/SD协议和SPI协议;软件支持未来的扩展升级;MMC控制器的运行频率可以通过程序设置;MMC控制器与存储卡之间控制传输速率的时钟可以通过编程设置。
  
  MMC控制器与MMC卡的硬件结构
  
  MMC控制器可以在存储卡和CPU或DMA控制器之间传输数据,也可以在存储卡之间传输数据。CPU和DMA控制器可以读写MMC控制器的控制寄存器和状态寄存器。在必要时CPU和DMA控制器可以将数据存储在DSP存储器中或外设的寄存器中,也可从DSP存储器中或外设的寄存器中获得数据。CPU可以通过读写状态寄存器来监视数据的传输情况,并响应中断。DMA控制器可以通过两个DMA事件来改变接受和发送的状态。MMC控制器主要有MMCCTL,MMCFCLK,MMCCLK寄存器来控制。其功能如表1~表3所述。
  


  


  MMC控制器和存储卡之间传输数据可采用MMC传输模式和SD传输模式。当连接多个卡时MMC控制器使用MMC/SD控制器来发送命令来选择一个卡,每次只与一个卡进行通信。
  MMC控制器的接口:MMC控制器共有7个引脚。
  CLK引脚提供给其它引脚的传输的时钟。
  CMD引脚用于存储卡和接口之间的双向通信。
  DAT0用于传输数据.
  DATA1-DATA3仅用于SD卡的传输。
  MMC控制器与MMC的硬件连接相当简单,其连接方法如下图1所示。
  


  
  软件接口
  
  DSP对MMC卡的读写过程包括初始化,读写。
  
  初始化的过程分为控制器初始化和MMC卡的初始化过程。
  
  控制器的初始化
  
  


  控制器的初始化的流程如图2所示,其初始化过程分为:
  (1) 使MMC控制器寄存器MMCCTL中的CMDRST和DATRST位复位,通过DMAEN位来使能或禁止DMA事件,设置SPIEN位禁止SPI模式,清零DATAEG位来禁止DAT3脚的边缘检测。
  (2) 通过MMCFCLK的FDIV域,MMCCLK寄存器的CDIV域设置分频系数。
  (3) 设置MMC控制器的使能/禁止idle的能力,由MMCFLCK寄存器的IDLEEN位来控制。在MMCTOR和MMCTOD寄存器中设置写超时和读超时。
  (4) 清除MMCCTL的CMDRST位和DATRST位,使控制器脱离复位状态。使能CLK引脚,向MMC卡送出时钟信号。
  b) MMC卡的初始化操作过程如下:
  (1) 让所有的MMC卡进入静止状态。
  (2) 检查所有卡的电压状态,将电压不在认定范围内的卡设为不可用状态。
  (3) 向所有的卡发送卡识别号。
  (4) 通过得到的卡的惟一标识号分配相对地址。
  
  MMC卡的读写
  MMC的读写只能以块的形式进行读写。TI已提供了专门针对MMC的操作的CSL库函数,其头文件为csl_mmc.h。其读写函数原型为:
  CSLAPI intMMC_read(MMC_Handle mmc, Uint32 cardAddr, void *buffer, Uint32 length);
  CSLAPI intMMC_write(MMC_Handle mmc, Uint32 cardAddr, void *buffer, Uint32 bufLen)
  参数说明:MMC_Handle mmc 操作MMC卡的句柄。
  Uint32 cardAddr 读写的起始地址
  void *buffer 缓冲区的起始地址
  Uint32 length 读缓冲区的长度
  Uint32 bufLen 写缓冲区的长度
  
  示例代码
  
  以下程序实现对MMC卡进行写操作的完整的过程,读的过程与此类似。
  #include /* 包含CSL 库 */
  MMC_Handle mmc1;
  MMC_CardIdObj *cardid;
  MMC_CardObj *card;
  int temp,i;
  MMC_NativeInitObj Init = {
  0, /* 禁止DMA访问 */
  0, /* Determines if MMC goes IDLE during IDLE instr */
  3, /* CPU时钟到MMC控制器的时钟分频系数*/
  2, /* MMC控制器到存储单元的时钟分频系数*/
  0, /* No. memory clks to wait before response timeout */
  0, /* No. memory clks to wait before data timeout */
  512, /* 块的大小*/
  };
  Uint16 data[512];
  Uint16 datareceive[512];
  Uint16 *dataptr = data;
  Uint16 *datarcv = datareceive;
  main()
  {
  CSL_init();
  for (i=0;i<512;i++) {data[i] = i;}
  mmc1 = MMC_open(1);//打开MMC端口1
  temp = MMC_initNative(mmc1,&Init); //初始化MMC控制器
  MMC_sendGoIdle(mmc1); //向所有卡发送SEND_GO_IDLE命令
  for(temp=0;temp<101b;temp++) { asm(“NOP “); } //延迟等待完成卡的初始化
  temp=MMC_sendOpCond(mmc1,0x00100000); //向所有卡发出操作条件
  temp = MMC_sendAllCID(mmc1,cardid); //获得所有卡的ID号
  temp = MMC_setRca(mmc1,card,2); //分配相对地址
  temp = MMC_selectCard(mmc1,card); //选择要操作的卡
  temp = MMC_write(mmc1,0,dataptr,512); //向卡写一块数据
  MMC_close(mmc1); //关闭MMC控制器
  }
  
  小 结
  本文以TMS320C5509的DSP芯片操作MMC卡为例,阐明了通过MMC控制器操作MMC储存卡的过程和方法。
其他文献
随着技术进步,数字电视以其高质量的音视频效果、低廉的价格以及频率资源节省和提供增值服务等优点越来越受到各个国家的青睐,各国将数字电视内容列入明确的议事日程,数字电视产业以及数字电视芯片产业更是“千树万树梨花开”。  在美国加快发展数字电视的同时,欧洲DVB和日本ISDB标准的推行也十分顺利。3个地区的核心芯片公司极力向其他国家推广数字电视标准,以占领数字电视核心集成电路芯片市场。目前,欧美数字电视
期刊
USB和IEEE 1394已经先后在PC以及消费电子中取得了成功,PCI Express也正循着推广者的意愿高速前进。此等景象无不透视着一个趋势——“这是一个串行技术的时代”。Serial ATA早已开始行动并在PC存储领域颇有斩获;而Serial Attached SCSI定位于企业服务器领域也姗姗启动,站到了聚光灯下……    SAS就是Serial Attached SCSI的缩写,即串行连
期刊
《3-6岁儿童学习与发展指南》中说:“游戏是促进幼儿学习与发展的重要途径。”“游戏是幼儿的天性,它伴随着幼儿的成长,可以说,没有游戏就没有发展。”而幼儿园里的建构区是幼儿自我表现、展示自己天性和潜力的活动区。所谓建构区,就是幼儿用各种结构元件如积木、纸砖、拼插塑等材料进行结构造型的游戏场所。  经常玩建构游戏的幼儿,能获得大量有关数量、图形以及空间的知识,主要表现在搭建和拼插各种作品的过程中,利用
期刊
在量测领域相对年轻、以创新技术为主的美国吉时利(Keithley)仪器公司,业已堂堂迈入一甲子。从“直流测量”为核心业务开始发展,吉时利已远远超出其传统的灵敏直流电信号的测量能力范围,现已拓展到包括RF射频仪器产品线和脉冲测量技术等新兴领域,成为适用于新生的无线电和射频产业领域的测试测量仪器的重要供应商。       图一    继2005财年,创下约1.4亿美元的销售佳绩后(这些收入主
期刊
Gartner称亚太区推动全球外置磁盘存储市场发展    权威研究及分析机构Gartner指出,2005年第二季度亚太区(日本除外)外置磁盘存储市场收益达到了3.73亿美元,与上一季度相比增长了9%,是全球增长最快的区域。此外,该区域在全球市场上所占的份额也取得了同比增长。  在2005年第二季度中,中国、澳洲和韩国的收益分别占到整个地区的32%、18.4%及14.6%,从而成为区域内排名前3位的
期刊
如果问什么是这几年最令人惊艳的前沿技术,无线技术肯定是当仁不让的选项之一;放眼环视生活周遭,手机、笔记本电脑、微波炉等遍地可见Wireless的踪迹;因为贪恋数据传输及处理的便利性和实时性,许多无线应用正加速转向数字RF发展,以彻头彻尾地全面利用计算机技术;这样的趋势虽然对科技进化贡献良多,却也造成RF频谱格外拥挤。加上高速嵌入式数字信号运行微波频率,都使得监控和智能采集技术的使用量大幅提高。  
期刊
经过多年的发展,网络电话(VoIP)最终实现了它一直未竟的诺言,其市场终于开始腾飞。特别是在企业专用交换机(PBX)市场中,绝大部分新安装的系统都是基于VoIP技术的。在电信服务商市场,VoIP的使用最近也取得了显著增长;而且,随着宽带因特网逐渐普及,许多消费者都采用了某些VoIP解决方案取代他们既有的公共交换电话网络(PSTN)服务,或两者同时使用。  VoIP的上市是作为一种透过互联网拨打语音
期刊
目前在全球100多个国家,以自有品牌或合作伙伴的品牌进行销售、由归国学人白手创办的高新技术企业──深圳市朗科科技(Netac),日前再度在北京大张旗鼓召开“自主创新,开创未来”新闻发布会,宣布该公司已经于美国时间2006年2月10日向美国德克萨斯州东区联邦法院递交诉状,控告美国PNY公司侵犯了其美国专利(美国专利号US6829672)。朗科表示,此专利是闪存盘、闪存MP3及其它闪存移动数码产品的基
期刊
随着人们对汽车要求“智能化”的期待日深,汽车电子的发展也越发风起云涌;包括车身及底盘控制、动力系统、卫星导航、信息娱乐、安全防盗及自我诊断修复等先进功能,莫不伺机而动。然而,想让动辄以数千万计的电子元器件顺畅的沟通、运作,首先要解决的就是“接口”问题,必须先“协议”出一些重要的规范,从而落实为“应用规格”才能令众多子系统和睦且有效地对话,共谋大事。为此,本期“高速接口”特辑特别把汽车电子的界面规范
期刊
IDT公司一直专注于通信业务,2005年兼并ICS公司之后成功跨足消费以及计算产品领域。IDT公司推出新一代的单芯片网络统计引擎之际,本刊特采访了IDT 公司副总裁兼流量控制管理器件部门总经理Thomas Brenner先生。看看IDT公司在这个笼罩世界各个角落的“网”里面发现了什么。    网络诞生的初衷是为了让从事科学研究的人们能够排除距离的障碍,快捷、迅速的交流信息。如今互联网已经完全不同于
期刊