基于C8051F020的SD卡主控制器设计

单片机开发与应用
文章编号 :1008- 0570(2007)09- 2- 0120- 03

中 文 核 心 期 刊 《 计 算 机 信 息 》 嵌 入 式 与 SOC)2007 年 第 23 卷 第 9-2 期 微 (

基于 C8051F020 的 S D 卡主控制器设计
De s ig n o f S D Ca rd Ho s t Co n tro lle r Ba s e d o n C8051F020
(1. 北京航空航天大学; 2. 焦作大学; 3. 山东科技大学 )李 长 有
1, 2

武学东



孙步胜

1, 3

马齐爽



LI CHANGYOU WU XUEDONG S UN BUS HENG MA QIS HUANG
摘要 : 给 出 一 种 应 用 于 飞 机 飞 行 数 据 采 集 仪 的 SD 卡 设 计 方 案 , 该 方 案 选 用 与 8051 完 全 兼 容 的 高 性 能 单 片 机 C8051F020 作 为 主 控 制 器 , 采 用 SPI 总 线 与 SD 卡 通 信 。文 章 详 细 介 绍 了 SD 卡 以 及 C8051F020 芯 片 中 SPI 接 口 的 结 构 和 工 作 原 理 , 讨 论 了 相关的设置、 件连接和软件设计。 硬 关键词 : 飞行数据采集仪; C8051F020 ; SD 卡; 主控制器 文献标识码 :A 中图分类号 :TP368.1

技 术 创 新

Abstr act:A scheme that SD card is applied to the flying data recorder of plane is designed. In this design, the SOC C8051F020 is used as host controller and host controller communicates with SD card on SPI Bus. The structure and principle of the SD Card and SPI Interface of the C8051F020 are introduced in detail. And the hardware and software design are discussed Key wor ds:flying data r ecor der , C8051F020 , SD Car d , host contr oller

1 引言
飞机飞行 状 况 监 测 及 数 据 采 集 仪 , 用 于 采 集 飞 机 试 飞 时 的 各种飞行数据, 要求大量的存储容量。在飞机回到地面后, 需要 方便地将采集数据 传 输 到 通 用 计 算 机 上 , 以 便 作 进 一 步 的 数 据 处理和分析。为了把采集的数据从采集系统传输到通用计算机 内 , 在过去, 是将数据 存 储 部 分 设 计 为 可 分 离 的 一 个 存 储 板 , 数 将数据存储板从数据采集系统 据存储板上设计有 CPU 和串口。 上取下来, 通过串口与通用计算机通信, 将数据传输到通用计算 机内。可以看出, 这种方法有几个缺点 :第一, 操作麻烦, 每次都 要将存储板从采集系统取 下 来 , 然 后 再 装 上 ; 第 二 , 经 常 插 拔 存 储板降低整个采集系统的可靠性; 第三, 读取数据的通用计算 机需要安装专用程 序 , 此 程 序 是 专 门 开 发 用 于 通 用 计 算 机 与 数 据存储板之间的串口通信程序, 增加了使用复杂性。 性 体 SD/MMC 卡 是 一 种 容 量 大 (最 大 可 达 4GB)、 价 比 高 、 积 小、 访问接口简单的存储卡, 而且通过 USB 读卡器 , 可以很方便 地将卡中文件拷贝到通用计算机中。目前, SD 卡已大量用于数 码相机、 手机与大容量存储设备中。在本次飞行状况监测 MP3 、 及数据采集仪的设计中, 采集数据的存储采用了 SD 卡。

问 SD 卡 , 可 通 常 的 单 片 机 没 有 硬 件 SD 总 线 , 尽 管 可 以 借 助 通 用口线用软件仿真, 但访问速度 较低, 还要大量占用 CPU 时间, 而单片机多具有 SPI 总线, 本文就利用 SPI 总线实现对 SD 卡的 访问。下面主要介绍 SPI 总线方式。 在 SPI 总 线 模 式 下 , CS 为 主 控 制 器 向 卡 发 送 的 片 选 信 号 , SCLK 为主控制器向卡发送的时钟信号, DI ( DataIn ) 为 主 控 制 器 向 卡 发 送 的 单 向 数 据 信 号 , DO( DataOut) 为 卡 向 主 控 制 器 发 送 的单向数据信号。 卡的内部结构如图 2 所示, SD 卡内部除了 SD 具有大量存储单元外, 还具有卡接口控制器、 存 器 以 及 SD 和 寄 SPI 两种模式的对外接口等。外 部主控 制 器 访 问 卡 的 外 部 信 号 线并不与存储器单元直接相连, 而是通过卡的接口控制器与存 储器单元接口相连。 这样主控制器并不直接访问存储器, 而是通 过卡的接口控 制 器 来 访 问 存 储 器 。 卡 内 存 储 单 元 的 读 / 擦 / 写 由 卡接口控制器根据主控制器的命令自动处理完成, 而主控制器 无须知道卡内是如何操作、 管理存储单元的, 这将大大减轻主控 制器对存储器操作的负担。 SD 卡内部有 6 个信息寄存器, 用来 设置和保存操作卡的关键信息, 有两个状态寄存器, 用来记录操 作卡的当前状态。

2 硬件功能原理与设计
SD 卡的外形和接口如图 1 所示。根据 SD 卡与主控制器的
通 信 协 议 不 同 , SD 卡 对 外 提 供 两 种 访 问 模 式 :SD 模 式 和 SPI 模 式。 所用通信模式不同, SD 卡引脚的功能也不同, 具体引脚功能 如表 1 所示。在具 体 通 信 过 程 中 , 主 机 只 能 选 择 其 中 一 种 通 信 模式。通信模式的选 择 对 于 主 控 制 器 来 说 是 透 明 的 , 卡 会 自 动 检测复位命令的通信协议模式, 而且通信模式一旦选定, 系统 在通电情况下不能改变。 SD 模 式 下 , 主 控 制 器 使 用 SD 总 线 访 李长有 : 副教授 博士生 基金 项 目 : 中 国 民 航总 局 航 空 安 全 技 术 分 析 和 鉴 定 实 验 室 开 放 研究基金资助课题 (200603)
-120 -

图 2 SD 卡的内部结构
《现场总线技术应用 200 例》

360 元 / 年 邮局订阅号: 82-946

您的论文得到两院院士关注 表 1 SD 卡的引脚定义 发送和接受 SPI 数据。

单片机开发与应用
主 控 制 器 C8051F020 与 SD 卡 座 的 电 路 连 接 图 如 图 3 所 示。除了 SPI 接口的连接外, 还有三根控制线, P0.4_SD_INSERT 就 是 I/O 端 口 P0.4 , 用 于 检 测 SD 卡 在 卡 座 上 是 否 插 好 , 完 全 插 入时该引脚为低电平, 否则为高电平 。 P0.5_SD_WP 就是 I/O 端 口 P0.5 , 用于检测 SD 卡当前是否设置写保护, 写保护 时 该 引 脚 为高电平, 否则为低电平。 P0.6_SD_POWER 就是 I/O 端口 P0.6 , 用 于 SD 卡 的 供 电 控 制 , 该 引 脚 输 出 低 电 平 时 , 给 卡 供 电 , 否 则 断电。这是为了在 SD 卡进入不确定状态时, 可以通过对卡重新 上电复位而无需拔出卡。

注 :S――电源; I――输入; O――推挽输出; PP――推挽 I/O。 采 集 仪 的 主 控 制 器 采 用 了 C8051F020 单 片 机 。 C8051F 系 列 单 片 机 与 8051 在 指 令 上 完 全 兼 容 , 性 能 远 远 高 于 标 准 的

8051 单片机, 片内除了具有 8052 的全部外设外, 又扩展了丰富 的 外 设 , 是 一 种 名 副 其 实 的 SOC ( System On Chip ) 单 片 机 。 C8051F020 能 够 满 足 数 据 采 集 功 能 外 , 还 能 很 容 易 地 实 现 SD 卡的访问。与 SD 卡系统相关的特性如下 : * 单片机内部采用流水线结构, 指令运行速度高, 指令运行 速 度 比 一 般 的 80C51 系 列 单 片 机 提 高 了 大 约 10 倍 , 可 达 25MIPS 指令运行速度, 满足高速操作 SD 卡的功能要求。 * 具有 SPI 硬件接口, 可与 SD 卡的 SPI 总线很好接口。 * 具有 8 个 8 位 I/O 端口。除满足数据采集需要外, 有足够 的口线用于单片机与 SD 卡的连接。而且, 这些口线可通过软件 进 行 配 置 , 获 得 不 同 的 功 能 , 其 中 SPI 接 口 , 就 是 通 过 配 置 相 关
寄存器而获得的。

3 软件设计
软件设计思想是, 为了程序的可移植性和易用性, 将程序分为 三个层次。第一个层次是硬件抽象层, 第二层是实现访问 SD 卡的 命令层, 第三层是应用层, 提供给用户或文件系统的接口函数。 硬件抽象层包括访问 SD 卡的硬件环境配置、 接口实现 SPI 通讯的基本函数以及 SPI 中断的处理 。硬件环境配置包括硬件 初始化、 以及内存变量初始化等。 如将 C8051F020 的 I/O 端口配 置为 SPI 接口的相 关 设 置 、 C8051F020 的 SPI 接 口 性 能 的 设 置 、 SD 卡 的 上 电 与 断 开 、 卡 插 入 是 否 到 位 检 测 、 卡 内 部 寄 存 SD SD 器特定参数设置等等。 又如 C8051F020 的 SPI 接口性能的设置, 包括主 /从工作方式设置、 通讯频率设置等等, 这些内容都与 SPI 硬件有关。 SPI 接口 实 现 通 讯 的 基 本 函 数 , 包 括 主 控 制 器 向 SD 卡发送一字节和从 SD 卡读取一字节的基本函数, 这是所有 SPI 通讯的基础。 SPI 中断处理是 SPI 接口产生中断时, 中断服务程 序 被 自 动 调 用 , 在 中 断 服 务 程 序 中 , 读 取 SPI 控 制 寄 存 器 , 这 里 存放着产生中断的各种状态标志, 根据不同的状态标志, 调用不 同的函数处理。 命令层, 就是调用硬件抽象层的基本发送接收字节函数, 实 现 SD 卡所有 SPI 协议规定的命令, 完成对 SD 卡的 访 问 。 根 据 SD 卡协议, 访问 SD 卡的不同功能, 由不同的命令实现。这些命 令分成 0~ 个不同的类 别 , 每 种 类 别 包 括 几 个 具 体 的 命 令 , 对 9 于 SPI 协 议 , 每 个 命 令 都 由 主 机 主 动 发 送 , 高 位 在 前 低 位 在 后 ,

技 术 创 新

* 具有可扩展的中断系统 , 支 持 22 个 中 断 源 , 2 个 优 先 级 ,
其中就包括 SPI 接口产生的中断。 和 * 片内存储器包括 64KB 的 Flash 、 4KB 的 XRAM。 不 需 要 扩 展 存 储 器 , 就 可 以 满 足 文 件 系 统 的 建 立 和 访 问 SD 卡 的需要。

* 3.3V 的工作电压, 与 SD 卡工作电压兼容。 * 时钟系统更加完善, 可以使用内部时钟, 也可以使用外部
时钟, 通过编程可以切换。

* 可 实 现 通 过 JTAG 接 口 的 在 系 统 调 试 , 方 便 系 统 的
开发。

C8051F 系 列 单 片 机 的 SPI 串 行 接 口 的 主 要 特 点 如 下 :全 双
工, 三线同步传输, 即在 发 送 的 同 时 也 能 接 受 ; 可 以 工 作 在 主 机 方式或从机方式; 主机最大数据传输速率( 位 /秒) 是系统时钟频 率的 1/2 , 因而最高可达 10Mb/s; SPI 位传输速率可通过编程选 择; 发送结束设置中断标志, 发送期间不占 用 CPU 时间; 串行时 钟极性与相位可编程改变; 具有写冲突保护和总线竞争保护。 对于 C8051F020 的 SPI 系统, 首先通过设置 I/O 端口功 能 选 择 开 关 控 制 寄 存 器 XBR0 、 XBR1 、 XBR2 , 将 I/O 端 口 P0.0 、

P0.1 、 、 P0.2 P0.3 配 置 成 SPI 功 能 引 脚 SCK、 MISO、 MOSI 和 NSS, 此时 I/O 端口 P0.0 、 、 、 P0.1 P0.2 P0.3 就组合成 SPI 接口了。而 设 置 和 控 制 SPI 接 口 性 能 的 特 殊 功 能 寄 存 器 有 SPI0CFG、 SPI0CKR、 SPI0CN、 SPI0DAT。 SPI0CFG 是 SPI 的配置寄存器, 用 于 配 置 SPI 的 工 作 方 式 , 并 反 映 通 信 过 程 中 的 数 据 发 送 状 态 。 SPI0CN 是 SPI 控 制 寄 存 器 , 用 于 控 制 SPI 的 工 作 , 并 反 映 通 信 过程中的一些错误标志。 SPI0CKR 是 SPI 的时钟速率寄存器, 用 于选择 SCK 输出的频率。 SPI0DAT 是 SPI 的 数 据 寄 存 器 , 用 于
《 P LC 技术应用 200 例》

SD 卡收到命令后, 根据不同的命令做出不同的响应。主机发送 的命令长度总是 6 个字节, 命令的格式如表 2 所示。 Command 表示命令号, 占用 6 位, Parameter 表示命令参数, 长 度 为 4 字 节, 不同的命令对应不同的命令参数值。 SD 卡的响应有 4 种格 式, 分别为 R1 、 、 和 R3 格式。主机发 送命令并读取响 应 R1B R2
邮局订阅号: 82-946 360 元 / 年 -

121 -

单片机开发与应用
形成一个完整的命令实现过程。 表 2 SPI 模式命令格式

中 文 核 心 期 刊 《 计 算 机 信 息 》 嵌 入 式 与 SOC)2007 年 第 23 卷 第 9-2 期 微 (

J iaozuo 454003)Li ChangYou Wu XueDong 通 讯 地 址 :(100083 北 京 北 京 航 空 航 天 大 学 11# 宿 舍 楼 242)
李长有
(收稿日期 :2007.7.23)(修稿日期 :2007.8.25)

应 用 层 函 数 提 供 客 户 程 序 访 问 SD 卡 的 高 级 接 口 函 数 , 使 客户不需要知道 SD 卡的内部结构 和命令内容、 不需要知道 SPI 的接口协议等基本内 容 , 客 户 程 序 只 需 要 简 单 地 调 用 接 口 函 数 了解 SD 卡的当前状态、读取自己需要的内容或写 入 自 己 的 内 容。应用层程序是在 命 令 层 基 础 上 的 更 高 抽 象 , 调 用 命 令 层 函 数实现。这些函数包括读数据、 写数据、 擦除数据、 返回卡状态、 返回卡内存储空间使用状况等函数。

(上接第 230 页 ) 该设计采用 FPGA 实现图像实时处理, 与利用软件处理图像的
方法比较起来, 有明显的速度优势。 基于 FPGA 设计方法灵活实 现图像的实时处理, 是今后图像处理发展的一个方向, 尤其是在 大数据量处理和高速实时处理要求较高的场合。 本文作者创新点 :提出了一种基于 FPGA 的 SOPC, 该 SOPC 快速完成图像增强处 理 , 满 足 实 时 图 像 处 理 的 要 求 ; 同 时 , 系 统 构成灵活, 可根据图像增强处理算法需求, 对设计中模块的可重 复开发。

4 结论
本文作者的创新点是, 将 SD 卡存储方式 运 用 到 飞 机 飞 行 数据采集系统, 简化了采 集 系 统 的 设 计 , 减 小 了 系 统 尺 寸 , 提 高 了系统的可靠性, 使 采 集 数 据 的 读 出 变 得 简 单 易 行 。 由 于 原 有 数据采集系统 , 采 用 8051 单 片 机 作 主 控 制 器 , 本 次 设 计 选 用 与 8051 完全兼容的高性能单片 机 C8051F020 , 既 继 承 了 原 有 采 集 系统的设计, 又满足了访问 SD 卡的功能要求, 加快了 整 个 系 统 的设计进程。 本项目的经济效益 200 万元。

技 术 创 新

参考文献 [1]SD- memry Card Specifications / Part 1. Physical Layer Specifi- cation; Version 1.01. 2001.4.15 鲍可进, 申屠浩. 基于 Soc 单片机 C8051F 的码头供 [2]赵念强, 给监控系统[J]微计算机信息. 2005, 3- 2: 70- 71 雷文, 姚静波. C8051F 系列 SOC 单片机原理及应用 [3]张迎新, [M]. 北京:国防工业出版社, 2005.8 [4]周立功等. ARM 嵌入式系统软件开发实例[M]. 北京:北京航 空航天大学出版社. 2006.6
作者简介 : 李长有, 男, 焦作大学副教授, 北京航空航天大学博士 生 , 研 究 方 向 :检 测 技 术 与 自 动 化 装 置 ;武 学 东 , 男 , 焦 作 大 学 副 教授, 研究方向 :软件工程、 络 应 用 ;孙 步 胜 , 男 , 北 京 航 空 航 天 网 大 学 博 士 生 , 研 究 方 向 :检 测 技 术 与 自 动 化 装 置 ;马 齐 爽 , 男 , 北 京航空航天大学教授, 博士生 导师, 博士, 研究方向 :检测技术与 自动化装置。

图 5(a) 原图像

图 5(b)增强后图像

参考文献 [1]阮秋琦 编著.数字图像处理学[M].北京:电子工业出版社, 2001. [2]Altera. Simultaneous Multi - Mastering with the Avalon Bus[DB/ OL ] . http :/ / www. altera. com ,2002. [3]彭澄廉. 挑战 SOC —基于 NIOS 的 SOPC 设计与实践[M].北 京:清华大学出版社,2004. [4]黄睿,方康玲,廖得元.基于 SOPC 的工业大型吊车吊钩位置测 量的设计[J]微计算机信息, 2006, 2:65- 67 6-
作者 简 介 : 韩 娟 娟 (1979- ), 女 , 汉 族 , 河 南 安 阳 人 , 北 京 机 械 工 业 学院电子信息工程系硕士研究生, 主要从事 图像处理及其

FPGA 实 现 方 面 的 研 究 ; 邓 文 怡 , 女 , 教 授 , 硕 士 研 究 生 导 师 ; 娄
小平, 女, 副教授, 硕士研究生导师。

Biogr aphy:Li Changyou, Male, Associate professor, Doctor Stu- dent, Research Interests: Detection Technology and Automatic Equipment.;Wu Xuedong, Male, Associate professor, Research Interests: Software Engineering and Network Application;Sun Busheng male, Doctor Student, Research Interests: Detection Technology and Automatic Equipment;Ma Qishuang, Professor and Supervisor, doctor, Research Interests: Detection Technology and Automatic Equipment. (100083 北 京 北 京 航 空 航 天 大 学 自 动 化 科 学 与 电 气 工 程 学 院 )李长有 孙步胜 马齐爽 (454003 焦作 焦作大学机电系 )李长有 武学东 (525011 山东 山东科技大学机械电子工程学院 )孙步胜 (School of Automation Science and Electr ical Engineer ing, BeiHang Univer sity, Beijing 100083)Li ChangYou Sun BuSheng Ma QiShuang (Depar tment of mechatr onic engineer ing, J iaozuo Univer sity,
-122 -

Biogr aphy:Han Juan - juan (1979 - ) , Female , master , major in image processing based on FPGA; DENG Wen - yi, professor ; LOU Xiao- ping, Female, associate professor. (100085 北京 北京机械工业学院 )韩娟娟 邓文怡 娄小平 (Beijing Institute of Machiner y , Beijing 100085, China) Han J uanJ uan Deng WenYi Lou XiaoPing
通讯地址 :(100085 北京市 海淀区清河小营 东 路 12 号 北 京 机 械工业学院 电子信息工程系 )韩娟娟
(收稿日期 :2007.7.23)(修稿日期 :2007.8.25)

Female,

PLC 将出版 , 《 技术应用 200 例 》 每册定价 55 元 (含邮费 ), 汇至
地 址 : 北 京 海 淀 区 皂 君 庙 14 号 院 鑫 雅 苑 6 号 楼 601 室 微 计 算 机 信 息 杂 志 收 邮 编 :100081 电 话 : 010-62132436 010-62192616( T/F )
《现场总线技术应用 200 例》

360 元 / 年 邮局订阅号: 82-946


相关文档

C8051F020在SD卡主控制器设计中的应用
基于AT91RM9200的SD卡主控制器的设计
基于ARM的SD主控制器的设计
基于C8051F020单片机的智能燃烧控制器设计
基于C8051F020微控制器的车床数控系统设计
基于ARM7的SD卡控制器的设计
基于C8051F020单片机的配料控制器设计
基于FPGA的SD卡控制器设计
基于单片机c8051f020的电子提花机控制器的设计
基于ARM的SD主控制器的设计与实现
电脑版