当前位置:首页 >> 信息与通信 >>

SPI接口的FLASHROM与C8051F340的接口设计


     经验交流
Technical Communications

《 自 动 化 技 术 与 应 用 》2 0 1 0 年 第 2 9 卷 第 4 期

SPI 接口的 FLASH ROM 与 C8051F340 的接口设计
黄  秋, 丁卫撑, 方  方, 张  彪
(成都理工大学核技术与自动化工程学院

,四川 成都 610059)
摘  要:文章介绍了美国 CYGNAL 公司的 C8051F340 单片机工作在 SPI 高效的串行数据接口模式下的基本操作,设计了其与 ATMEL 公司的 SPI 接口的 FLASH ROM 芯片 AT45DB161D 的硬件接口,并详细介绍了该系列存储器的 SPI 模式读写操作,对于使用 M C U 控制 F L A S H   R O M 芯片的操作具有一定代表性和实用性。 关键字:SPI;C8051F340;FLASH ROM 芯片;AT45DB161D 中图分类号:TP334.7    文献标识码:B    文章编号:1003-7241(2010)04-0099-04

The Interface Circuit Design Between FLASH ROM with SPI Interfaces and C8051F340
HUANG Qiu, DING Wei-cheng, FANG Fang, ZHANG Biao
( College of Applied Nuclear Technology and Automation Engineering, Chengdu Univ. of Technology, Chengdu 610059 China )
Abstract: This paper introduces the basic operation of C8051F340 MCU of U.S. CYGNAL company working in the SPI efficient serial data interface mode. The hardware interface of the MCU and ATMEL’s FLASH ROM chip called AT45DB161D with SPI interface is designed. Read and write operations about this serial of memory under SPI mode in detail are introduced. This paper has a certain representativeness and practicality for the operation of FLASH ROM chip with MCU. Key Words: SPI; C8051F340; FLASH ROM chip; AT45DB161D

1  引言
SPI 是 Motorola 公司推出的一种高效的串行数据接 口方式, 是目前使用较多的一种串行总路线接口标准, 现在很多芯片的串行接口都兼容了 SPI 模式。SPI 模式 采用主从方式配置, 包括一个主设备和一个或多个从设 备。S P I 的接口相对简单, 只需四条连接线就可以完成 数据的发送和接收。这 4 条数据线分别是: 主出从入线 (MOSI)、主入从出线(MISO)、串行时钟线(SCK)和从选 择线(NSS)。

线或 4 线方式, 并可在同一总线上支持多个主器件和从 器件。从选择信号(NSS)可被配置为输入以选择工作在 从方式的 SPI0,或在多主环境中禁止主方式操作,以避 免两个以上主器件试图同时进行数据传输时发生 S P I 总线冲突。NSS 可以配置为片选输出(在主方式),或在 3 线操作时被禁止。在主方式,可以用其他通用端口 I/ O 引脚选择多个从器件。图 1 ̄3 给出了不同方式下的典 型连接图[2]。

2  增强型串行外设接口[1]
本文所使用的 C 8 0 5 1 F 3 4 0 提供了增强型串行外设 接口(SPI0)。SPI0 提供访问一个全双工同步串行总线的 能力。SPI0 可以作为主器件或从器件工作,可以使用 3

图 1     多主方式连接图

收稿日期: 2 0 0 9 - 1 1 - 2 6
Techniques of Automation & Applications | 99

《自 动 化 技 术 与 应 用 》2 0 1 0 年 第 2 9 卷 第 4 期

     经验交流
Technical Communications

高速场合。RapidS 串行接口是与 SPI 相兼容的,速度可 达到 66MHz。它包含有 17,301,504 个位,被组织为 4096 个页,每个页 512 或 528 个字节。除了主存储器,AT45DB161D 还包括两个 SRAM 数据缓冲区,每个缓冲区 512/528 个 字节。在主存储器正在编程时,缓冲区是允许接收数据 的, 并且支持数据流式写入。与并行 F L A S H 存储器不 同,它采用 RapidS 串行接口,从而大大减少了可用引脚 数量,同时也提高了系统可靠性,降低了开关噪声,缩小 了封装体积。可以应用于商业、工业等需要高密度、低 引脚数、低电压与低功耗的应用场合。A T 4 5 D B 1 6 1 D 允许简单的在系统重新编程, 而无需输入高编程电压。 芯片可以采用 2.5V ̄3.6V 或 2.7V ̄3.6V 单电源供电, 进行编程与读取操作。它可以通过 C S 引脚来进行使 能,并通过三线接口(SI、SO、SCK)进行数据通信。其 引脚及功能为: / C S 片选信号: 用以选中芯片。当 # C S 被设置为无 本文中 C 8 0 5 1 F 3 4 0 使用的是 3 线单主方式, 而将 F L A S H   R O M 芯片作为从器件, 如图 2 所示。为了使用 C8051F340 中的 SPI0,应利用交叉开关分配引脚,将引脚 P0.0 配置为 SCK(SPI0)数字推挽,引脚 P0.1 配置为 MISO (SPI0)数字开漏,引脚P0.2配置为MOSI(SPI0)数字推挽。 为了将 C8051F340 中的 SPI0 设置为 3 线单主方式,应对 C8051F340 中的 SPI 特殊功能寄存器进行配置,具体的 配置函数如下: void SPI_Init() { SPI0CFG= 0x47; / / 主模式, S C K 在第一个边沿采样, 空闲时为低, 复位值 0x07 SPI0CN=0x01;//3 线单主方式,NSS 不分配引脚,使 能 SPI SPI0CKR=0x01;//SCK 选系统时钟 1 分频,可改变 该值从而改变传输速度 } 效状态时,芯片则不被选中,并且处于闲置状态(不是深 度睡眠状态),输出引脚 SO 处于高阻态。当芯片未被选 中时, 从输入引脚 SI 输入的数据将不被接受。 S C K 串行时钟: 此引脚用来向芯片提供时钟信号, 有来控制数据流的出入。SI 引脚上的命令、地址与输入 数据在时钟 S C K 的上升沿被写入, 而 S O 引脚上的输出 数据则在时钟的下降沿变化。 SI 串行输入:SI 引脚用来向芯片以移位方式写入数 据。SI 引脚上的所有数据输入包括命令与地址。SI 上 的数据在时钟的上升沿写入芯片。 S O 串行输出: S O 引脚用来从芯片以移位方式输出 数据。S I 上的数据在时钟的下降沿变化。 / W P 写保护: 当 / W P 被设置为有效时芯片的扇区 将被保护起来, 以防止编程与擦除对数据的破坏。但是 扇区保护使能与扇区死锁命令仍然可以被芯片识别。/ W P 引脚在内部被拉高, 可以悬空。但是仍然建议在外 部接到高电平。 / R E S E T 复位: / R E S E T 引脚上的低电平会终止正 在处理的操作并复位内部状态机到闲置状态。/ R E S E T 引脚上的低电平会使芯片一直处于复位状态。当 / R E - S E T 上转为高电平后, 才能进行正常的操作。 /BUSY 忙碌状态指示: 此引脚是漏极开路的输出引 脚。当芯片处于忙状态时(内部操作过程中)此引脚为低 电平,此引脚在正常状态下为高电平(外部接上拉电阻)。 当正在进行编程 / 擦除操作, 比较操作与页 - 缓冲区传

图 2     3 线单主方式和 3 线单从方式连接图

图 3     4 线单主方式和 4 线从方式连接图

3  FLASH ROM 芯片[3]
本文所用的 F L A S H   R O M 芯片是美国 A t m e l 公司 推出的大容量 SPI 接口 Flash 存储器产品 AT45DB161D。 A T 4 5 D B 1 6 1 D 是串行接口的闪存芯片, 可工作在 2 . 5V ̄2.7V,可广泛应用于数据语音、图像、程序代码数 据存储中。AT45DB161D 支持 RapidS 串行接口,适用于
100 | Techniques of Automation & Applications

     经验交流
Technical Communications

《 自 动 化 技 术 与 应 用 》2 0 1 0 年 第 2 9 卷 第 4 期

送时, 被拉低。 A T 4 5 D B 1 6 1 D 的功能框图如下:

写到 FLASH 中去(操作码 0x83)。 读操作也分为两种方式, 直接从 F L A S H 中给定的 起始页连续读到 C8051F340 中(操作码 0x68 或 0xe8),也 可以通过页地址单页间接读取(操作码 0x53 和 0xd4)。 本次接口设计所用的写操作和读操作均采用后一 种间接方式。程序设计流程图分别如图 6 、图 7 所示。

图 4  AT45DB161D 功能框图

4  接口电路与读写软件设计
AT45DB161D 与 C8051F340 的接口电路如图所示。 由于未用到忙碌状态指示, / B U S Y 引脚悬空; 不要求复 位与写保护, 所以 / R E S E T 与 / W P 都接高电平; AT45DB161D 作为从器件,它的 SCK、SI、SO 引脚与主 器件 C8051F340 已经被分配 SCK、MOSI、MISO 资源的 引脚 P0.0、P0.2、P0.1 分别连接。用 P0.4 控制片选信 号 / C S , 从而可以控制数据的传输。

图 6     写操作程序设计流程图

图 5  AT45DB161D 与 C8051F340 的接口电路
AT45DB161D 与 C8051F340 之间的数据传输包括读 和写两种操作,对 AT45DB161D 的写有两种方式。一种 是直接写指令,通过 C8051F340 的 SPI0DAT 寄存器直接 往 A T 4 5 D B 1 6 1 D 的指定页的指定地址写数据( 操作码 0x82 或 0x85),这个指令必须提供指定页的指定地址。 所以在这种方式下, 要想存储一段连续的数据, 必须用 一个循环来实现, 执行时间较长。另一种方式是通过缓 存间接写 FLASH。先把 C8051F340 中的数据依次通过 SPI0DAT 存到缓存 1(操作码 0x84),在写完缓存后一次

图 7     读操作程序设计流程图

5  结束语
本文中的接口设计能够完成 C 8 0 5 1 F 3 4 0 对 AT45DB161D 间接读与写的操作,说明该接口电路与软 件设计是成功的, 对其它类型的单片机读写 F L A S H R O M 芯片具有一定的代表性和实用性。

参考文献:
[ 1 ]   李刚, 林凌. 与 8 0 5 1 兼容的高性能、高速单片机
Techniques of Automation & Applications | 101

《自 动 化 技 术 与 应 用 》2 0 1 0 年 第 2 9 卷 第 4 期

     经验交流
Technical Communications

C8051FXXX[M].北京:北京航空航天大学出版社,2002. [2] C8051F34X Data Sheet.pdf.2006. [3] AT45DB161D Data Sheet.pdf.2002.
作者简介: 黄秋( 1 9 8 4 - ) , 男, 硕士研究生, 研究方向: 核技术 及应用专业。

(上接第 95 页) 1 #include<stdlib.h> 2 #include<windows.h> 3 #define  BUFSIZE 256 4#include"D:\\Program Files\\ MATLAB71\\spex_include\\fonctionsMat.h" 5#include"D:\\Program Files\\ MATLAB71\\spex_include\\fonctionsEngine. h"%Matlab 和库所在路径 % 6 HINSTANCE hengineDLL; 7 HINSTANCE hmatDLL; 8 Engine*ep =NULL; 9 initFonctionMatlab()%定义初始化所有Matlab能 用到得函数 % 10 { 11 hengineDLL=LoadLibrary("libeng.dll"); 12 engEvalString=(fmat_engEvalString) (GetProcAddress(hengineDLL,"engEvalString")); % ………………………………此处省略了与 1 2 行性质 相同的许多 Matlab 函数,实际要全部写入 % 13  } 任何一个想要和 Matlab 连接的软件必须直接拷贝 使用该文件,修改其第 4、5 行的路径成实际路径。并编 写 C 语言代码,调用 initFonctionMatlab 命令—— CB 通 过该命令调用 Matlab。 把 C B 和 M a t l a b 混合编程实现工程仿真模拟的工 作环境搭建好,继续完成混合编程工作:在 CB 中定义变 量输入变量(input),输出变量(output),局部变量(Local)。 CB 中编写头文件(header),修改 header 中第四五行程序 的地址,用 Matlab 在计算机中安装地址来替代原头文件 程序中第 4 、5 行的地址。 在 Matlab 的 Set Path 中设置文件路径,把需要用到 的驱动程序、M 文件和 E / S 接口文件的路径都放到一 个文件夹下,并将该文件夹的路径设置到 Matlab 的 Set Path 里面,这样就可以实现 CB 和 Matlab 的混合编程。

要做到仿真模拟的科学化、规范化,必须与 Matlab 的高 级功能相结合,或使用系统辨识或神经网络等 Simulink 专用工具箱, 建立实际工业过程模型, 这样的工作更有 实际意义[9]。Matlab 的神经网络等高级功能与 CB 的连 接, 实现也很方便, 只要根据工程实际情况选好神经网 络模型, 神经网络所需要的数据等可从 CB 中在线获取, 而经过处理的结果等传给 CB [ 1 0 ] 。 简单混合编程工作能完成一些简单的工程建模仿 真,但并不能充分体现出 CB 和 Matlab 的优势。而直接 混合编程虽然前期工作较繁琐复杂, 但通过建立接口和 程序的直接调用直接应用于工程建模仿真上, 更为灵 活, 并能充分利用 M a t l a b 的各种高级功能与专用工具 箱。这样直接混合编程不仅很容易通过 Matlab 强大功 能实现工程仿真模拟工作, 更加可以做到运用 C B 达到 自动生成准确详尽的项目说明书,并可以直接导出 P L C 代码, 应用到生产控制上面, 实现了建模仿真和生产应 用的直接握手。

参考文献:
[1] 洪荣.国际自动化领域的最新趋势[J].世界仪表与自动 化,2007,(4):31-32. [2] 常魏,谢光军,黄朝峰.MATLABR2007 基础与提高[M]. 北京:电子工业出版社,2007. [3] 张志涌等.精通 MATLAB[M].北京:北京航空航天大学 出版社,2003. [4] 吴玲燕,刘宽信,刘新.ControlBuild在电镀铬生产线设 计中的应用[J].制造业自动化,2006,(28):26-27. [5] 徐昕,李涛,伯晓晨等.Matlab控制工程篇[M].北京:电 子工业出版社,2000. [6]  施阳,李俊等.MATLAB 语言工具箱[M].西安:西北工 业大学出版社,1999. [ 7 ]   姜伟等.基于 M A T L A B 与 V C 混合编程的飞机刹车系 统仿真[J].计算机测量与控制,2006,(14):1413-04. [8] VC++ 与 Matlab/Simlink 混合编程的实现与研究[J]. 科学技术与工程,2007,(21):5685-03. [9] 飞思科技研发中心编著.神经网络理论与 MATLAB7 实 现[M].北京:电子工业出版社,2006. [10]  樊京,刘叔军,盖晓华,崔世林.MATLAB 控制系统应 用于实例[M].北京:清华大学出版社,2008.

4  结束语
冶金、化工等实际工业过程, 都相对要复杂得多,
102 | Techniques of Automation & Applications 作者简介: 徐传恒( 1 9 8 4 - ) , 男, 在读硕士, 主要从事热工自 动化控制仿真研究。


相关文章:
基于FPGA的SPI接口设计-徐慧军
基于ISE 的 SPI 接口的仿真设计一、SPI 介绍 SPI 总线系统是一种同步串行外设接口,它可以使 MCU 与各种外围设备以 串行方式进行通信以交换信息。外围设置 FLASHRAM...
spi 及其接口设计
本文通过spi 及其接口设计,及前仿后仿,,,。。。本文通过spi 及其接口设计,及前仿后仿,,,。。。隐藏>> SPI 接口的设计第二章介绍了模数转换器的可编程控制架...
基于FPGA的SPI接口设计
基于FPGA的SPI接口设计_信息与通信_工程科技_专业资料。基于 FPGA 的 SPI 接口设计 SPI 是一种在 FPGA 其他芯片之间传输数据的简单有效的接口方式。 SPI 项目 ...
基于C8051F340的Flash读写设计
Key Words: C8051F340; SPI; UART; FLASH 一、 设计目的和意义 FLASH 存储...SPI接口的FLASH+ROM与C8... 4页 免费 C8051F340读写flash 3页 1下载券 基于...
SPI接口的Verilog语言实现
SPI接口的Verilog语言实现_信息与通信_工程科技_专业资料。串行接口IP核的设计与验证(SPI) SPI FPGA作为主机单片机作为从机 SPI接口的VHDL语言实现 SPI接口的Verilog...
SPI闪存与PIC单片机接口设计
SPI闪存与PIC单片机接口设计_信息与通信_工程科技_专业资料。SPI串行闪存具有占用...SPI 接口主要应用于 EEPROM、FLASH、实时时钟、AD 转换器 以及数字信号处理器和...
SPI的接口及其应用
SPI 的接口及其应用 2010-09-01 00:10:29| 分类: ARM 及程序设计 | 标签...这种理念同样可用于 SPI 接口的 FLASH 存储器件。 其数据流和控制框图如图 4(...
SPI及其接口介绍
外围设备 FLASHRAM、网络控制器、LCD 显示驱动器 ...spi 的接口定义与典型 spi 接口有所不同 接口有所...四、 SPI 中寄存器的设计 SPI 端口是一种由外部...
LCM接口介绍
LCD 设计主要是 LCD 的控制/驱动外界的接口设计...并外扩适当的显示 RAM、自制字符 RAM 或 ROM 字库...(控/驱)、128 点显示、4 线 SPI 接口; 字符型...
更多相关标签:
c8051f340 spi | c8051f340 flash | c8051f340 | c8051f340 usb驱动 | c8051f340 原理图 | c8051f340中文资料 | c8051f340 uart1 | c8051f340例程 |