关 闭

新闻中心

EEPW首页 > 工控自动化 > 设计应用 > C8051F020在SD卡主控制器设计中的应用

C8051F020在SD卡主控制器设计中的应用

作者: 时间:2011-06-24 来源:网络 收藏

  3.3V的工作电压,与卡工作电压兼容。

  时钟系统更加完善,可以使用内部时钟,也可以使用外部时钟。

  可实现通过JTAG接口的在系统调试。

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

  对于的SPI系统。首先通过设置I/O端口功能选择开关控制寄存器XBR0、XBR1、XBR2.将I/O端口P0.0、P0.1、P0.2、P0.3配置成SPI功能引脚SCK、MISO、MOSI和NSS。此时I/0端口P0.0、P0.1、P0.2、P0.3就组合成SPI接口了。SPI0CFG是SPI的配置寄存器,用于配置SPI的工作方式。并反映通信过程中的数据发送状态。并反映通信过程中的一些错误标志,SPI0CKR是SPI的时钟速率寄存器,用于选择SCK输出的频率。

  主卡座的电路连接图如图3所示。除了SPI接口的连接外,还有三根控制线,P0.4__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卡进入不确定状态时,可以通过对卡重新上电复位而无需拔出卡。

  3 软件

  硬件抽象层包括访问SD卡的硬件环境配置、SPI接口实现通讯的基本函数以及SPI中断的处理。硬件环境配置包括硬件初始化、以及内存变量初始化等。SPI接口实现通讯的基本函数,包括主向SD卡发送一字节和从SD卡读取一字节的基本函数,这是所有SPI通讯的基础。SPI中断处理是SPI接口产生中断时。中断服务程序被自动调用,在中断服务程序中,读取SPI控制寄存器。这里存放着产生中断的各种状态标志,根据不同的状态标志,调用不同的函数处理。

  命令层,就是调用硬件抽象层的基本发送接收字节函数,实现SD卡所有SPI协议规定的命令。根据SD卡协议,访问SD卡的不同功能,由不同的命令实现。这些命令分成0—9个不同的类别。每种类别包括几个具体的命令,对于SPI协议,每个命令都由主机主动发送。高位在前低位在后,SD卡收到命令后。根据不同的命令做出不同的响应。主机发送的命令长度总是6个字节。命令的格式如表2所示,Command表示命令号,占用6位,Parameter表示命令参数,长度为4字节,不同的命令对应不同的命令参数值。SD卡的响应有4种格式,分别为R1、R1B、R2和R3格式。

  表2 SPI模式命令格式

  字节6 字节2~5 字节1

  0 1 Command Parameter(高位在前) CRC 1

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

  4 结论

  本文将SD卡存储方式运用到飞机飞行数据采集系统,简化了采集系统的,减小了系统尺寸,提高了系统的可靠性,使采集数据的读出变得简单易行。由于原有数据采集系统,采用8051单片机作主,本次选用与8051完全兼容的高性能单片机。既继承了原有采集系统的设计,又满足了访问SD卡的功能要求,加快了整个系统的设计进程。


风力发电机相关文章:风力发电机原理

上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭