APP下载

Freescale单片机的SD卡数据读写设计

2014-03-16中国一汽无锡油泵油嘴研究所杨鹏翔陆召振

电子世界 2014年9期
关键词:车载指令单片机

中国一汽无锡油泵油嘴研究所 杨 琛 张 雷 寇 伟 杨鹏翔 陆召振

1.引言

通过车载传感器对发动机参数采集和存储,Electronic Control Unit(ECU)可以判断发动机的工作状态和工作趋势。许多车载传感器[1](例如燃油质量传感器)需要对发动机参数进行长期监控,单片机作为控制器件,其数据存储资源十分有限。Secure Digital(SD)卡具有大容量、小体积、低功耗、非易失性以及兼容MMC卡等特点,是理想选择。

部分文章已介绍了单片机(如PIC、C51等)读写SD卡的应用实例[2,3],但这些单片机在汽车领域使用较少。本文以Freescale公司的MC9S12XEP100[4]单片机为控制器,通过PC将图片文件存入SD卡,并将数据送入彩色液晶上实现循环播放实验,探讨了Freescale单片机对SD卡文件读写的设计方法,该方法可广泛应用于车载传感器的数据存储单元。

2.硬件系统

2.1 SD卡的硬件特性

SD卡[5]主要由存储芯片和控制芯片组成,SD卡控制芯片负责对数据的读写控制。其工作电压为2.7-3.6V。每次对SD卡进行数据读写时的最小单位是1个扇区,即512Byte。SD卡支持两种操作模式,SD模式和SPI模式,因单片机的IO口资源限制,大多数应用都选择SPI模式。

SD总线模式包含4根数据线和1根命令线,传输速度可达到100Mbit/s。SPI模式是4线制总线,SPI模式下的接口定义参见表1。

表1 SPI模式接口定义

2.2 Freescale单片机特点

Freescale推出的16位MC9S12XE系列单片机具有增强的系统集成性和更好的功能性[6]。其内部PLL超频能力能显著降低对外部频率源的主频的需求,从而提高单片机的抗干扰能力。XGATE核能协处理I/O中断需求,从而降低主核的任务量。另外,其具有EEPROM、FLASH以及丰富的I/O资源(例如SPI、ECT、CAN2.0等),可满足汽车领域严苛的应用环境需求。

2.3 硬件系统

实验系统组成如图1,单片机通过SPI总线与SD通信,并通过并口与彩色液晶模块进行通信。SD需由LDO电源转换芯片供电。

图1 实验系统原理框图

3.程序设计

SD卡的实验系统工作过程如下:a.由上位机软件对待处理数据进行格式转换,生成二进制文件。b.将文件拷入SD卡,拷贝前需要对SD卡进行以FAT格式化,以确定存储位置的首地址。C.实验系统上电后,进入SD卡读写程序读取相应文件,并进行显示。

单片机完成初始化后,在RAM中缓冲512 bytes,并送LCD显示;当i=300时,表明1幅图像显示完成。程序共设置了5幅图像循环显示,软件流程图如图2所示。

图2 软件流程图

3.1 SD卡初始化

系统上电后SD卡默认进入SD模式,需设置SPI模式以及单块读写的数据长度。当CS处于低电平时,发送CMD0,发送完毕后,接受R1回应,判断SD卡是否正确接受指令。CMD0使得SD进入IDLE状态,CMD1激活SD卡的初始化过程,等待R1判断SD卡是否处于激活状态。CMD16指令设置读写块的大小为512Byte。需等待至少74个时钟周期。初始化流程参如图3所示。

图3 SPI初始化流程

3.2 读写程序

读程序过程如图4所示,单片机通过CMD17指令读取SD卡扇区数据,若成功SD卡返回R1响应,单片机对512byte数据进行缓存。写程序过程见图5,CMD24指令作为SD卡的写入指令,若SD卡成功响应则返回R1,单片机从缓存区写入512bytes数据。

图4 读程序

图5 写程序

图6 SD卡文件显示效果

3.3 图片格式

本文所使用彩色液晶分辨率[7]为QVGA,16位真彩色格式。实现实验图片正常显示,需要解决2个问题:图像的格式和图像数据量。一方面,Freescale单片机应用通常不具备操作系统,因此需要将.jpg、.gif、.bmp文件转换成二进制文件.bin格式。另一方面,根据彩色液晶模块的分辨率特点,可根据公式(1),得出显示图片的数据是:

显然,当需要显示多幅图片时对单片机的存储开销十分巨大,需要借助SD卡的存储能力。由SD卡的读写单位是512bytes,可得出1幅图像占用的扇区数为:

4.实验

本文选取MC9S12XEP100单片机搭建的实验系统对SD卡读写接口程序进行了验证。由图6可见,所设计的程序能正常读写SD卡文件。

5.结束语

SD卡的存储方式可以有效的缓解单片机存储资源有限的问题,满足日渐复杂的各种车载设备及传感器的数据存储要求。本文研究了Freescale单片机对SD卡读写的设计方法,并通过存储图片数据实验进行了验证,该方法可广泛应用于车载传感器的长期数据存储需求。

[1]吕艳,孙克.汽车电子传感器简述[J].仪表技术与传感器,2009(Z1).

[2]张凯临,姚玉玲,刘金涛.SD卡在PIC系列微控制器系统中的应用[J].微计算机信息,2008(24).

[3]张恒.基于AT89S52和FAT16的SD卡读写系统设计[J].单片机与嵌入式系统应用,2009(08).

[4]MC9S12XEP100 Reference Manual Covers MC9S12XE Family[M].Version 1.25,Freescale,February,2013.

[5]SanDisk Secure Digital Card Product Manual[M].Version 2.2,San-Disk Corporation,September,2004.

[6]孙同景.Freescale 9S12十六位单片机原理及嵌入式开发技术[M].北京:机械工业出版社,2008.

[7]应根裕,胡文波,邱勇.平板显示技术[M].北京:人民邮电出版社,2002.

猜你喜欢

车载指令单片机
一种车载可折叠宿营住房
高速磁浮车载运行控制系统综述
基于单片机的SPWM控制逆变器的设计与实现
基于单片机的层次渐变暖灯的研究
基于单片机的多功能智能插排
奔驰S级48V车载电气系统(下)
基于单片机的便捷式LCF测量仪
ARINC661显控指令快速验证方法
智能互联势不可挡 车载存储需求爆发
杀毒软件中指令虚拟机的脆弱性分析