欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    1458.串行外设接口(SPI)及其应用毕业论文.doc

    • 资源ID:2882847       资源大小:1,010.50KB        全文页数:36页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    1458.串行外设接口(SPI)及其应用毕业论文.doc

    学士学位论文(二八届)论文题目:串行外设接口(SPI)及其应用 论文作者: 学 号: 专业方向: 通信工程 指导老师: 二八年五月本科毕业论文(设计)开题报告学生姓名学 号专 业通信工程年 级论 文题 目串行外设接口(SPI)及其应用本课题的研究现状串行外设接口实质上是一个将串行传输数据位发送到其它SPI 的移位寄存器,但在现实中应用的很广泛,由于许多芯片在数据交换时都应用了SPI技术,所以本文就显得有必要让大家更加了解SPI。研究目的、意义在数字技术高速发展的今天,有许多芯片被用作数据交换的核心器件,以起到承上启下数据交换的枢纽作用,或者是在集成电路之间进行数据的存储和显示等,如果需要,它既可以将数字信号进行 D/ A 转换,以便进行功率放大和信息发送,也可以将外部模拟信号进行A/ D 转换,以便于同数字逻辑电路进行数据交换,减轻数字逻辑电路处理数据的压力。这些芯片同数字逻辑电路的接口很多采用 SPI(Serial Peripheral Interface) 接口技术,所以SPI主要用于外设和数据交换。研究内容、研究方法本文研究的内容主要以作者所经历的项目有关,所采集的四路开关量在遇到断开时需通过CAN总线等存储到FLASH中,那就是通过SPI总线传输的。本文并不是完全通过文字描述的方式介绍SPI,所列举的代码完全经过作者的验证与应用。使论文更加有说服力。当然由于项目并没有完全结束所以,我所写的内容还是比较简单。论文撰写提纲一、系统分析(一)、系统开发环境及使用工具(二)、AT91SAM7X256简介二、工作原理(一)、SPI总线简介三、实际应用(一)、AT91SAM7X256的串行外设接口(SPI)流程图(二)、AT45DB321C简介(三)、AT45DB321C读写代码实现(四)、外设数据控制器 (PDC) (五)、通过SPI接口读写数据的代码实现主要参考文献1、基于Atmel ARM7系列嵌入式网络系统设计M 焦海波,刘健康 北京航空航天大学出版社 2008年4月第1版2、EasyARM2100开发套件用户指南M 周立功 等编著 2005年1月28日 3、C Primer Plus M 著 译 者:Stephen.Prata、云颠工作室 人民邮电出版社 2005年2月第1版4、数据结构(C语言版本)M 严蔚敏 吴伟民 编著 清华大学出版社 1997年4月第1版5、AT91SAM7X256 数据手册6、AT45DB321C 数据手册 论文进度安排2008年2月初,选定课题,进行了大量的资料收集以及查询工作。2008年3月初,制作了课题的大纲,并且得到指导老师的通过。2008年3月至4月中旬,进行了内容的编辑和校对,在此期间,多次与指导老师和课题小组同学沟通和商议,最终确定了初稿。2008年4月下旬,在老师以及同学的帮助下修改初稿,最终定稿。2008年5月初,通过了指导教师的审核,最终完成论文。指导教师意见指导老师签字:年 月 日系审核意见负责人签字:年 月 日 教务处制表本科毕业论文(设计)任务书 姓 名学 号年 级系 别信息工程分院专 业通信工程指导教师职 称讲师单 位通信教研室论文题目串行外设接口(SPI)及其应用论 文主 要内 容本文所涉及的内容主要与作者所经历的项目有关。主要内容对SPI原理的介绍和SPI实际项目的应用,论文中有相当的代码都经作者作了论证。主 要参 考文 献1、基于Atmel ARM7系列嵌入式网络系统设计M 焦海波,刘健康 北京航空航天大学出版社 2008年4月第1版2、EasyARM2100开发套件用户指南M 周立功 等编著 2005年1月28日 3、C Primer Plus M 著 译 者:Stephen.Prata、云颠工作室 人民邮电出版社 2005年2月第1版4、数据结构(C语言版本)M 严蔚敏 吴伟民 编著 清华大学出版社 1997年4月第1版5、AT91SAM7X256 数据手册6、AT45DB321C 数据手册 写 作进 度安 排论文进度安排2008年2月初,选定课题,进行了大量的资料收集以及查询工作。2008年3月初,制作了课题的大纲,并且得到指导老师的通过。2008年3月至4月中旬,进行了内容的编辑和校对,在此期间,多次与指导老师和课题小组同学沟通和商议,最终确定了初稿。2008年4月下旬,在老师以及同学的帮助下修改初稿,最终定稿。2008年5月初,通过了指导教师的审核,最终完成论文。教研室审定意见: 教研室主任签字: 年 月 日 教务处制表目 录一、引言9二、系统分析10(一)、系统开发环境及使用工具101. ARM集成开发工具介绍102 H-JTAG介绍103. 开发板及周边硬件介绍11(二)、AT91SAM7X256简介12三、工作原理13(一)、SPI总线简介131.SPI方框图(图3.1)132.时钟产生(Clock Generation)143.传输延迟(Transfer Delays)144.工作模式145、数据传输方式17四、SPI接口实际应用18(一)、AT91SAM7X256的串行外设接口(SPI)流程图18(二)、1.AT45DB321C简介191.引脚说明(表2)202.读写FLASH方框图213. FLASH存储模块的设计与实现(AT45DB321C)214.写操作225.读操作23(三)、读写AT45DB321C的完整代码(详见附录1)25(四)、外设数据控制器(PDC)( Peripheral DMA Controller)251. PDC应用方框图(图4.13)262.PDC配置263.外设数据控制器 (PDC) 寄存器映射(图4.14)274.PDC传输控制寄存器(图4.15)275.PDC传输状态寄存器(图4.16)286.PDC代码设置28(五)、通过SPI接口读写数据的代码实现(详见附录2)29五、总结29六、参考文献29七、注释29八、附录301.读写FLASH的完整代码302.通过SPI读写数据的代码363.系统设计的硬件环境38九、致谢38串行外设接口(SPI)及其应用 【摘要】:SPI ( Serial Peripheral Interface 串行外设接口) 总线系统是一种同步串行外设接口,允许MCU 与各种外围设备以串行方式进行通信、数据交换。外围设备包括FLASH、A/ D 转换器、MCU 等。SPI 系统接口,一般使用4 条线:串行时钟线(SCK) 、主机输入/ 从机输出数据线MISO、主机输出/ 从机输入数据线MOSI和低电平有效的从机选择线SS。 【Abstract】:SPI (Serial Peripheral Interface - SPI) bus system is a kind of synchronous serial peripheral interface, allowing MCU with a variety of peripheral devices to serial form of communication, data exchange. The peripheral equipment including FLASH, A / D converter, MCU and so on. SPI system interface, the general use of four lines: serial clock line (SCK), Master Input/Slave Output data from the machine-MISO, Master Output/Slave Input data from the machine-MOSI effective and low-choice line from the SS.【关键词】:SPI、FLASH、AT45DB321C、串行外设接口一、引言嵌入式系统无疑是当前最热门最有发展前途的IT应用领域之一。嵌入式系统用在一些特定专用设备上,通常这些设备的硬件资源(如处理器、存储器等)非常有限,并且对成本很敏感,有时对实时响应要求很高等。特别是随着消费家电的智能化,嵌入式更显重要。像我们平常常见到的手机、PDA、电子字典、可视电话、VCD/DVD/MP3 Player、数字相机(DC)、数字摄像机(DV)、机顶盒(Set Top Box)、高清电视(HDTV)、游戏机、智能玩具、交换机、路由器等等都是典型的嵌入式系统。驱动程序的人目前是非常紧缺的(驱动程序也可归于嵌入式范畴),包括桌面Windows中的DDK开发环境和WDM驱动程序。公司每时每刻都要推出新产品,每一个新产品出来了,要能被操作系统所使用,是必须写驱动程序的。在数字技术高速发展的今天,有许多芯片被用作数据交换的核心器件,以起到承上启下数据交换的枢纽作用,或者是在集成电路之间进行数据的存储和显示等,如果需要,它既可以将数字信号进行D/A 转换,以便进行功率放大和信息发送,也可以将外部模拟信号进行A/D转换,以便于同数字逻辑电路进行数据交换,减轻数字逻辑电路处理数据的压力。这些芯片同数字逻辑电路的接口很多采用 SPI(Serial Peripheral Interface) 接口技术。SPI,是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口。是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要应用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议,比如AT91RM9200。    二、系统分析(一)、系统开发环境及使用工具 本系统在windows2000 sp1环境下开发,使用了ARM集成开发工具开发,使用H-JTAG作为仿真调试软件。 硬件方面,使用了ARM7系列的AT91SAM7X256芯片,AD转换模块使用了深圳芯海公司的CS11 80芯片,flash存储芯片采用了ATMEL公司的AT45DB321C,各组件的详细内容将在接下来的章节里详细介绍。 1. ARM集成开发工具介绍ARM集成开发工具(ARM Developer Suite),简称ADS,是一套集IDE,仿真调试功能于一身的集成工具,本系统的开发过程中使用的是其1.2版本,该版本可以在windowsNT,windows2000,windowsXP等多个操作系统下使用。2 H-JTAG介绍 当我们编写的程序运行出错,执行结果不是预想的那样时,仿真器可以给我们的程序调试带来很大的帮助。通过仿真器,可以在调试主机上控制目标板实现单步运行、全速运行、停止、断点等功能,可以观察芯片内部的每个寄存器的值和存储器的内容。使用仿真器,使查找错误变得十分方便,有利于编写出可靠的程序,可以极大地提高工作效率。 JTAG (Joint Test Action Group,联合测试行动小组)是一种国际标准测试协议(IEEE 1149.1兼容),主要用于芯片内部测试和系统仿真调试,通过JTAG接口,可以访问芯片内部所有部件,而不占用其它任何片上资源,属于完全非插入式调试。这种调试方法,目标程序仍然在目标板上执行,仿真时的硬件结构和实际运行时一致,因此,这种仿真方法最接近于系统实际运行时的状况,不会由于仿真器的插入带来线路板物理参数的改变,程序在仿真调试下执行的结果就是实际运行时的结果。ARM的JTAG接口是由5条信号线:TRST、TMS、TCK、TDI、TDO,分别为测试复位输入信号、模式选择、时钟、数据输入和数据输出线。JTAG 仿真器是通过 ARM 芯片的 JTAG 接口进行调试的一种设备。它的一个端口和被仿真ARM芯片的JTAG端口连接,另一端则和调试主机相连,运行于调试主机上的调试软件向仿真器发送命令和数据,仿真器在这里起到一个协议转换的作用,利用JTAG协议与被仿真ARM通讯,完成调试主机和被仿真ARM间的数据传送。基于JTAG仿真的种种优点,现在普遍均采用JTAG 仿真器进行开发。 而目前市面上的商业仿真器,性能优良,但是价格比较昂贵,因此我们选择了wiggler仿真器,使用 WIGGLER JTAG 仿真器,需要在计算机上运行一个 JTAG 调试代理软件。调试主机上运行的集成开发环境(例如 ADS)发出的调试命令经过一个调试代理进行协议转换,将符合JTAG协议的数据通过PC机并口输出,通过并口的信号线调试代理软件模拟JTAG的时序,达到与被调试ARM芯片通讯的目的。配合优秀的JTAG调试代理软件,功能完全可以媲美各种商业仿真器。H-JTAG 就是这样一款仿真驱动软件,由TWENTYONE大虾编写,支持大多数主流调试环境,我们的ADS1.2就是其中之一,同时它能支持所有的ARM7/ARM9处理器。3. 开发板及周边硬件介绍本系统使用的开发板采用了基于ARM7TDMI的AT91SAM7X256芯片,ARM7系列为低功耗32位核,最适用于对价位和功耗敏感的消费类应用。ARM7系列的主要特点如下: . 嵌入式ICE-RT逻辑,该部分被集成进了所有的ARM处理器中,用于跟踪、调试程序;. 极低功耗; . 能提供0.9MIPS/MHz(实际上就是1微秒处理0.9条指令)的三级流水线(取指、译码、执行)和冯·诺依曼结构; ARM7TDMI是世界上广泛使用的32位嵌入式RISC处理器。它是目前用于低端的ARM处理器核,应用范围非常广。 ARM7TDMI的含义如下: . T 16位压缩指令集Thumb; . D 支持片上调试,处理器可以响应调试指令以暂停程序的运行; . M 增强型乘法器(multiplier),与以前的处理器相比性能更高,其能够产生全64位结果; . I 嵌入式ICE逻辑,支持片上断点和调试点。开发板同时使用了ATMEL的AT45DB321C FLASH芯片作为存储介质,使用了深圳芯海公司的CS1180芯片作为A/D转换模块,同时有LED,数码管,4*4键盘灯周边设备。开发板通过并口线与仿真器相连接同时通过PC的并口线进行与PC之间的通讯工作,其原理图如下(图2.1)。图2.1(二)、AT91SAM7X256简介AT91SAM7X256是ATMEL 32位ARM RISC 处理器小引脚数Flash微处理器家族的一员。它拥有256K 字节的高速Flash 和64K 字节的SRAM,丰富的外设资源,包含802.3 以太网MAC控制器和CAN总线控制器。Flash存储器可以通过JTAG-ICE 进行编程,或者是在贴装之前利用编程器的并行接口进行编程。锁定位可以防止固件不小心被改写,而安全锁定位则可以保护固件的安全。 AT91SAM7X256 的复位控制器可以管理芯片的上电顺序以及整个系统BOD 和看门狗则可以监控器件是否正确工作。 ARM核ARM7TDMI, FLASH和SRAM和大量的外设包括USART, SPI, CAN控制器,MAC以太网,时间计数器,RTT,模数转换器都整合在这个芯片中。AT91SAM7X256是一个强大的设备能够提供灵活的,有效的解决方案例如:以太网,CAN总线,以及无线网络。三、工作原理(一)、SPI总线简介SPI总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息。外围设置FLASHRAM、网络控制器、LCD显示驱动器、A/D转换器和MCU等。SPI总线系统可直接与各个厂家生产的多种标准外围器件直接接口,该接口一般使用4条线:串行时钟线(SCK)、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOST和低电平有效的从机选择线SS(有的SPI接口芯片带有中断信号线INT或INT、有的SPI接口芯片没有主机输出/从机输入数据线MOSI)。 SPI的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线(两条数据线及两条控制线),事实上3根也可以(单向传输时)。也是所有基于SPI的设备共有的,它们是MOSI,MISO,SPCK,NSS。 主机输出从机输入(MOSI):该数据线将主机输出数据作为从机输入移入。 主机输入从机输出(MISO):该数据线将从机输出作为主机输入。传输时,只有单从机传输数据。 串行时钟(SPCK):该控制线由主机驱动,用来调节数据流。主机传输数据波特率可变;每传输一位,产生一个SPCK 周期。 从机选择(NSS):该控制线是从设备使能信号,由主设备控制。1.SPI方框图(图3.1)图3.12.时钟产生(Clock Generation)SPI波特率时钟由主机时钟(MCK)分频产生,这使允许的最大波特率达到主机时钟,而最小的时钟为MCK/255。以下是波特率的代码实现:/ *SPI模式为0(CPOL:0,NCPHA:1) 波特率为1Mhz,片选有效之后延时12/MCK时间之后输出SPCK,两个连续传输之间等待(32*1)/MCK时间 *(INT32U*)0xFFFE0030=(INT32U)0x1<<1|(INT32U)0x30<<8|(INT32U)0x0C<<16|(INT32U)0x20<<24; 此代码涉及到模式和延迟的问题,下面的章节详细讨论。3.传输延迟(Transfer Delays)片选传输改变及在在相同芯片上连续传输。有三种延迟可编程以修改传输波形: 片选间延迟,对于所有片选只可通过写模式寄存器的DLYBCS 域改变一次。允许在释放芯片及开始新传输前插入一个延时。 SPCK前延迟,通过写DLYBS域实现,对每个片选独立可编程。允许在片选出现后SPCK启动延迟。 连续传输延迟,通过写DLYBCT 域实现,对每个片选独立可编程。在同一芯片两传输间插入一个延迟。这些延迟允许SPI 调整与外设连接及它们的速度及总线释放时间。 有关延迟具体操作位详见片选寄存器(SPI_CSR SPI Chip Select Register)(图3.2):片选寄存器(SPI_CSR) 图3.24.工作模式SPI 工作在主机模式(Master Mode)或从机模式(Slave Mode)下。通过将模式寄存器(Mode Register)MSTR位(图3.3)写1 将SPI工作在主机模式下。引脚NPCS0 到NPCS3 配置为输出,SPCK引脚被驱动,MISO 线与接收器输入连接且发送器驱动MOSI 作为输出。若MSTR 位写入0,SPI 工作在从机模式下。MISO 线由发送器输出驱动,MOSI 线与接收器输入连接,发送器驱动SPCK 引脚以实现与接收器同步。NPCS0 引脚变为输入,并作为从机选择信号(NSS) 使用。引脚NPCS1 到NPCS3 未驱动,可用于其它功能。模式寄存器(SPI_MR SPI Mode Register)图3.3注:两种工作模式下数据传输同样可编程。但只有在主机模式下激活波特率发生器。主机模式(SPI Master Mode)当配置为主机模式, SPI 工作时钟由内部可编程波特率发生器产生。它完全控制与SPI 总线连接的从机数据传输。SPI 驱动片选线为从机及串行时钟信号(SPCK)。使能SPI 后,当处理器写入SPI_TDR( 发送数据寄存器) (图3.5)时,数据开始传输。被写数据立即发往移位寄存器并开始在SPI 总线上传输。当移位寄存器中数据移到MOSI 线上时,对MISO 线采样并移入移位寄存器。若PCS域未选择从机,当写入SPI_TDR时不会启动传输。PCS域通过在可变模式下写SPI_TDR来置位,或在固定模式下写SPI_MR 来置位,由PCS 域值决定。若在传输时有新数据写入SPI_TDR,它将保持当前值直到传输完成。然后接收到的数据由移位寄存器送到SPI_RDR (图3.4)中, SPI_TDR 中数据载入移位寄存器并启动新的传输。将写在SPI_TDR中的数据送往移位寄存器由状态寄存器(SPI_SR)的TDRE位(发送数据寄存器空)表示。当新数据写入SPI_TDR 时,该位清零。TDRE 位用来触发发送 PDC通道。传输结束由SPI_SR寄存器中的TXEMPTY 标志表示。若最后传输的传输延迟(DLYBCT) 大于0, TXEMPTY在上述延迟完成后置位。此时主机时钟(MCK) 可关闭。接收SPI_RDR中来自移位寄存器的数据由SPI_SR寄存器的RDRF位(接收数据寄存器满)来表示。当读取接收数据时, RDRF 位清零。接受数据寄存器(SPI_RDR SPI Receive Data Register)图3.4发送数据寄存器(SPI_TDR SPI Transmit Data Register)图3.5从级模式(SPI Slave Mode)从机模式下,SPI 处理器数据位时钟由SPI 时钟引脚(SPCK) 提供。SPI在由外部主机接收串行时钟前等待NSS激活。当NSS下降,时钟在串行器上生效,处理片选寄存器0 (SPI_CSR0)BITS 域定义的位数 。这些位处理的相位与极性由SPI_CSR0 的NCPHA与CPOL位定义。注意,当SPI编程为从机模式时,其它片选寄存器的BITS、CPOL及NCPHA位无效。位移出到MISO线并在MOSI线上采样。当所有位处理时,接收到的数据发送到接收数据寄存器,RDRF 位升高。若数据传输时RDRF已经为高,溢出位拉高并终止向SPI_RDR 的数据传输。当传输启动,数据由移位寄存器移出。若发送数据寄存器(SPI_TDR) 中没有数据写入,则发送最后收到的数据。若在上次复位后未收到数据,发送的所有位为低,因为移位寄存器复位为0。当首数据写入SPI_TDR,立即向移位寄存器传输并将TDRE 位拉高。若新数据已写入,将保存在SPI_TDR 中直到传输出现,即NSS 下降且SPCK 引脚上出现有效时钟。当传输出现,最后写入SPI_TDR 的数据传入移位寄存器并将TDRE 位拉高。这使能单传输临界变化频繁更新。然后,新数据由发送数据寄存器载入移位寄存器中。若没有发送字符,即自从上次由SPI_TDR载入移位寄存器后,没有字符写入SPI_TDR,移位寄存器不变并重新发送最后收到的字符。5、数据传输方式数据传输有四种极性与相位。时钟极性由片选寄存器(SPI_CSR Chip Select Register) CPOL 位(图3.6)编程得到。时钟相位由NCPHA位编程得到。这两个参数确定数据在哪个时钟边沿驱动与采样。每个参数有两种状态,组合后有四种可能。因此,一对主机/ 从机必须使用相同的参数对值来进行通信。若使用多从机,且固定为不同的配置,主机与不同从机通信时必须重新配置。片选寄存器(SPI_CSR)图3.6SPI总线协议模式(表1)SPI模式CPOLCPHA001100211310表1需要着重注意的是CSAAT位数据手册上说 CSAAT: Chip Select Active After Transfer0 = The Peripheral Chip Select Line rises as soon as the last transfer is achieved.1 = The Peripheral Chip Select does not rise after the last transfer is achieved. It remains active until a new transfer is:数据手册AT91SAM7X256 ATMEL官方 276页requested on a different chip select.” 翻译成汉语的意思就是:0=最后传输实现后外设片选上升。1 = 最后传输实现后外设片选未上升。它保持激活直到不同的片选新传输请求图3.7是SPI传输时序图3.7综上一节是SPI工作的原理,下面介绍SPI接口的实际应用。四、SPI接口实际应用SPI总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息。外围设置FLASHRAM、网络控制器、LCD显示驱动器、A/D转换器和MCU等。 现在我们的目标是通过SPI口读写FLASH(AD45DB321C)。接下来着重就读写FLASH展开讨论。首先先看一下SPI的流程图(图4.1)。(一)、AT91SAM7X256的串行外设接口(SPI)流程图图4.1我们选用的FLASH型号是AT45DB321C,现在介绍一下这个FLASH的作用,以及程序说明。(二)、1.AT45DB321C简介该AT45DB321C是的SPI兼容的串行的快闪存储器,适合各种各样的数字语音,图像,程序代码和数据存储应用。其34603008位元存储作为8192页的每页528字节。此外,以33兆主存储, AT45DB321C也包含两个528字节的SRAM缓冲器。 at45db321c并不需要高电压编程。该器件操作从单一的电力在(2.7 V到3.6 V)供应, 编程和读操作。该at45db321c是可以通过片选引脚(CS )的访问和通过一个三线接口构成的串行输入( SI )的,串行输出(SO),和串行时钟(SCK)。 1.引脚说明(表2)表2引脚名称功能CS片选SCK串行时钟SI 串行输入SO串行输出WP硬件页写入保护引脚RESET复位芯片复位READY/BUSY READY就绪,忙/闲从引脚说明上来看,在此定义的FLASH引脚跟SPI的引脚并不能完全吻合,所以在AT91SAM7X256这个芯片上进行了复用,从下图(图4.2)上可以明显地看出他们的联系。图4.2它们是怎么联系的呢?数据手册AT91SAM7X256第10节 peripherals清楚地告诉我们“Multiplexing on PIO Controller A” ,中文的意思就是PIO A口的引脚复用。详见下图(图4.3)图4.3下面就是引脚复用的代码实现:/引脚复用INT32U = unsigned int *(INT32U*)0xFFFFF470=0x0007F000 ;2.读写FLASH方框图FLASH(AT45DB321C)读写程序框图(图4.4) 图4.43. FLASH存储模块的设计与实现(AT45DB321C) FLASH存储模块的存储过程,主要分为缓冲区读写,存储页面读写,读状态寄存器几个过程,按照面向对象,结构化的设计思想,我们将其封装为独立的模块,各模块之间的实际实现方式相差并不是很大,下面我们就缓冲区的读写操作来阐述一下主要的实现方法并给出部分代码。4.写操作如图(4.5)是FLASH写操作的方框图图4.5Main Memory Page Program through Buffers(图4.6)图4.6Buffer Write(图4.7)图4.7下面是BufferWrite的代码实现/*/*函数名称:BufferWrite/*函数功能:Buffer 写/*入口参数:INT8U buffer,INT32U BFA,INT8U *Input/*出口参数:无/*void BufferWrite(INT8U buffer,INT32U BFA,INT8U *pHeader) INT32U i; while(!(StatusRegisterRead()&0x80); AT91F_PIO_ClearOutput(AT91C_BASE_PIOA,AT91C_PIO_PA15); switch(buffer) case 1:SPI_HostWriteByte(0x84);break; case 2:SPI_HostWriteByte(0x87);break; SPI_HostWriteByte(0x00); SPI_HostWriteByte(INT8U)(BFA>>8); SPI_HostWriteByte(INT8U)(BFA); for(i = 0;i<LEN;i+) SPI_HostWriteByte(pHeaderi); AT91F_PIO_SetOutput(AT91C_BASE_PIOA,AT91C_PIO_PA15);Buffer to Main Memory Page Program (Data from Buffer Programmed into Flash Page)(图4.8)图4.85.读操作如图(4.9)是FLASH 读操作的方框图图4.9Main Memory Page Read(图4.10)图4.10Main Memory Page to Buffer Transfer (Data from Flash Page Read into Buffer)(图4.11)图4.11Buffer Read(图4.12)图4.12下面是BufferRead的代码实现:/*/*函数名称:BufferRead()/*函数功能:Buffer Read/*入口参数:无/*出口参数:INT8U /*void BufferRead(INT32U BFA,INT8U *pHeader) INT8U i; while(!(StatusRegisterRead()&0x80); AT91F_PIO_ClearOutput(AT91C_BASE_PIOA,AT91C_PIO_PA15);SPI_HostWriteByte(0xD4);SPI_HostWriteByte(0x00);SPI_HostWriteByte(INT8U)(BFA>>8);SPI_HostWriteByte(INT8U)BFA); SPI_HostWriteByte(0x00); for(i=0;i<4;i+) SPI_HostWriteByte(0x00);for(i=0;i<32;i+) pHeaderi=SPI_HostReadByte();AT91F_PIO_SetOutput(AT91C_BASE_PIOA,AT91C_PIO_PA15); (三)、读写AT45DB321C的完整代码(详见附录1)(四)、外设数据控制器(PDC)( Peripheral DMA Controller)外设数据控制器(PDC) 在诸如UART、USART、SSC、SPI、MCI 等片上外设与片内或片外存储器间传输数据。使用外设数据控制器避免处理器干涉并减去了处理器中断处理开销。这显著减少了数据传输所需时钟周期数并提高了微控制器性能,使其更加高效。PDC 通道是成对的,每对对应一个指定的外设。其中一条通道负责接收数据,另一条通道负责发送数据。PDC 通道的用户接口集成在每个外设的存储器空间中,它包括: 32位存储器指针寄存器 16位传输计数寄存器 32位下一存储器指针寄存器 16位下一传输计数寄存器外设通过发送与接收信号触发PDC 传输。当传输编程数据时,相应的外设产生传输中断结束传输。1. PDC应用方框图(图4.13)图4.132.PDC配置PDC通道用户接口使能用户对每条通道数据传输的配置与控制。PDC通道用户接口集成在与其相关的外设用户接口中( 偏移0x100)。每个外

    注意事项

    本文(1458.串行外设接口(SPI)及其应用毕业论文.doc)为本站会员(laozhun)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开