




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、学士学位论文(二八届)论文题目:串行外设接口(spi)及其应用 论文作者: 学 号: 专业方向: 通信工程 指导老师: 二八年五月本科毕业论文(设计)开题报告学生姓名学 号专 业通信工程年 级论 文题 目串行外设接口(spi)及其应用本课题的研究现状串行外设接口实质上是一个将串行传输数据位发送到其它spi 的移位寄存器,但在现实中应用的很广泛,由于许多芯片在数据交换时都应用了spi技术,所以本文就显得有必要让大家更加了解spi。研究目的、意义在数字技术高速发展的今天,有许多芯片被用作数据交换的核心器件,以起到承上启下数据交换的枢纽作用,或者是在集成电路之间进行数据的存储和显示等,如果需要,它既
2、可以将数字信号进行 d/ a 转换,以便进行功率放大和信息发送,也可以将外部模拟信号进行a/ d 转换,以便于同数字逻辑电路进行数据交换,减轻数字逻辑电路处理数据的压力。这些芯片同数字逻辑电路的接口很多采用 spi(serial peripheral interface) 接口技术,所以spi主要用于外设和数据交换。研究内容、研究方法本文研究的内容主要以作者所经历的项目有关,所采集的四路开关量在遇到断开时需通过can总线等存储到flash中,那就是通过spi总线传输的。本文并不是完全通过文字描述的方式介绍spi,所列举的代码完全经过作者的验证与应用。使论文更加有说服力。当然由于项目并没有完全结
3、束所以,我所写的内容还是比较简单。论文撰写提纲一、系统分析(一)、系统开发环境及使用工具(二)、at91sam7x256简介二、工作原理(一)、spi总线简介三、实际应用(一)、at91sam7x256的串行外设接口(spi)流程图(二)、at45db321c简介(三)、at45db321c读写代码实现(四)、外设数据控制器 (pdc) (五)、通过spi接口读写数据的代码实现主要参考文献1、基于atmel arm7系列嵌入式网络系统设计m 焦海波,刘健康 北京航空航天大学出版社 2008年4月第1版2、easyarm2100开发套件用户指南m 周立功 等编著 2005年1月28日 3、c p
4、rimer 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
5、月初,通过了指导教师的审核,最终完成论文。指导教师意见指导老师签字:年 月 日系审核意见负责人签字:年 月 日 教务处制表本科毕业论文(设计)任务书 姓 名学 号年 级系 别信息工程分院专 业通信工程指导教师职 称讲师单 位通信教研室论文题目串行外设接口(spi)及其应用论 文主 要内 容本文所涉及的内容主要与作者所经历的项目有关。主要内容对spi原理的介绍和spi实际项目的应用,论文中有相当的代码都经作者作了论证。主 要参 考文 献1、基于atmel arm7系列嵌入式网络系统设计m 焦海波,刘健康 北京航空航天大学出版社 2008年4月第1版2、easyarm2100开发套件用户指南m 周
6、立功 等编著 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年
7、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(一)
8、、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
9、.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、主机
10、输出/ 从机输入数据线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 convert
11、er, 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、串行外设接口一、引言嵌入式系统无疑是当前最热门最有发展
12、前途的it应用领域之一。嵌入式系统用在一些特定专用设备上,通常这些设备的硬件资源(如处理器、存储器等)非常有限,并且对成本很敏感,有时对实时响应要求很高等。特别是随着消费家电的智能化,嵌入式更显重要。像我们平常常见到的手机、pda、电子字典、可视电话、vcd/dvd/mp3 player、数字相机(dc)、数字摄像机(dv)、机顶盒(set top box)、高清电视(hdtv)、游戏机、智能玩具、交换机、路由器等等都是典型的嵌入式系统。驱动程序的人目前是非常紧缺的(驱动程序也可归于嵌入式范畴),包括桌面windows中的ddk开发环境和wdm驱动程序。公司每时每刻都要推出新产品,每一个新产品
13、出来了,要能被操作系统所使用,是必须写驱动程序的。在数字技术高速发展的今天,有许多芯片被用作数据交换的核心器件,以起到承上启下数据交换的枢纽作用,或者是在集成电路之间进行数据的存储和显示等,如果需要,它既可以将数字信号进行d/a 转换,以便进行功率放大和信息发送,也可以将外部模拟信号进行a/d转换,以便于同数字逻辑电路进行数据交换,减轻数字逻辑电路处理数据的压力。这些芯片同数字逻辑电路的接口很多采用 spi(serial peripheral interface) 接口技术。spi,是英语serialperipheralinterface的缩写,顾名思义就是串行外围设备接口。是motorola
14、首先在其mc68hcxx系列处理器上定义的。spi接口主要应用在eeprom,flash,实时时钟,ad转换器,还有数字信号处理器和数字信号解码器之间。spi,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为pcb的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议,比如at91rm9200。二、系统分析(一)、系统开发环境及使用工具 本系统在windows2000 sp1环境下开发,使用了arm集成开发工具开发,使用h-jtag作为仿真调试软件。 硬件方面,使用了arm7系列的at91sam7x256芯片,
15、ad转换模块使用了深圳芯海公司的cs11 80芯片,flash存储芯片采用了atmel公司的at45db321c,各组件的详细内容将在接下来的章节里详细介绍。 1. arm集成开发工具介绍arm集成开发工具(arm developer suite),简称ads,是一套集ide,仿真调试功能于一身的集成工具,本系统的开发过程中使用的是其1.2版本,该版本可以在windowsnt,windows2000,windowsxp等多个操作系统下使用。2 h-jtag介绍 当我们编写的程序运行出错,执行结果不是预想的那样时,仿真器可以给我们的程序调试带来很大的帮助。通过仿真器,可以在调试主机上控制目标板实
16、现单步运行、全速运行、停止、断点等功能,可以观察芯片内部的每个寄存器的值和存储器的内容。使用仿真器,使查找错误变得十分方便,有利于编写出可靠的程序,可以极大地提高工作效率。 jtag (joint test action group,联合测试行动小组)是一种国际标准测试协议(ieee 1149.1兼容),主要用于芯片内部测试和系统仿真调试,通过jtag接口,可以访问芯片内部所有部件,而不占用其它任何片上资源,属于完全非插入式调试。这种调试方法,目标程序仍然在目标板上执行,仿真时的硬件结构和实际运行时一致,因此,这种仿真方法最接近于系统实际运行时的状况,不会由于仿真器的插入带来线路板物理参数的改
17、变,程序在仿真调试下执行的结果就是实际运行时的结果。arm的jtag接口是由5条信号线:trst、tms、tck、tdi、tdo,分别为测试复位输入信号、模式选择、时钟、数据输入和数据输出线。jtag 仿真器是通过 arm 芯片的 jtag 接口进行调试的一种设备。它的一个端口和被仿真arm芯片的jtag端口连接,另一端则和调试主机相连,运行于调试主机上的调试软件向仿真器发送命令和数据,仿真器在这里起到一个协议转换的作用,利用jtag协议与被仿真arm通讯,完成调试主机和被仿真arm间的数据传送。基于jtag仿真的种种优点,现在普遍均采用jtag 仿真器进行开发。 而目前市面上的商业仿真器,性
18、能优良,但是价格比较昂贵,因此我们选择了wiggler仿真器,使用 wiggler jtag 仿真器,需要在计算机上运行一个 jtag 调试代理软件。调试主机上运行的集成开发环境(例如 ads)发出的调试命令经过一个调试代理进行协议转换,将符合jtag协议的数据通过pc机并口输出,通过并口的信号线调试代理软件模拟jtag的时序,达到与被调试arm芯片通讯的目的。配合优秀的jtag调试代理软件,功能完全可以媲美各种商业仿真器。h-jtag 就是这样一款仿真驱动软件,由twentyone大虾编写,支持大多数主流调试环境,我们的ads1.2就是其中之一,同时它能支持所有的arm7/arm9处理器。3
19、. 开发板及周边硬件介绍本系统使用的开发板采用了基于arm7tdmi的at91sam7x256芯片,arm7系列为低功耗32位核,最适用于对价位和功耗敏感的消费类应用。arm7系列的主要特点如下: . 嵌入式ice-rt逻辑,该部分被集成进了所有的arm处理器中,用于跟踪、调试程序;. 极低功耗; . 能提供0.9mips/mhz(实际上就是1微秒处理0.9条指令)的三级流水线(取指、译码、执行)和冯诺依曼结构; arm7tdmi是世界上广泛使用的32位嵌入式risc处理器。它是目前用于低端的arm处理器核,应用范围非常广。 arm7tdmi的含义如下: . t 16位压缩指令集thumb;
20、. 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 处
21、理器小引脚数flash微处理器家族的一员。它拥有256k 字节的高速flash 和64k 字节的sram,丰富的外设资源,包含802.3 以太网mac控制器和can总线控制器。flash存储器可以通过jtag-ice 进行编程,或者是在贴装之前利用编程器的并行接口进行编程。锁定位可以防止固件不小心被改写,而安全锁定位则可以保护固件的安全。 at91sam7x256 的复位控制器可以管理芯片的上电顺序以及整个系统bod 和看门狗则可以监控器件是否正确工作。 arm核arm7tdmi, flash和sram和大量的外设包括usart, spi, can控制器,mac以太网,时间计数器,rtt,模数
22、转换器都整合在这个芯片中。at91sam7x256是一个强大的设备能够提供灵活的,有效的解决方案例如:以太网,can总线,以及无线网络。三、工作原理(一)、spi总线简介spi总线系统是一种同步串行外设接口,它可以使mcu与各种外围设备以串行方式进行通信以交换信息。外围设置flashram、网络控制器、lcd显示驱动器、a/d转换器和mcu等。spi总线系统可直接与各个厂家生产的多种标准外围器件直接接口,该接口一般使用4条线:串行时钟线(sck)、主机输入/从机输出数据线miso、主机输出/从机输入数据线most和低电平有效的从机选择线ss(有的spi接口芯片带有中断信号线int或int、有的
23、spi接口芯片没有主机输出/从机输入数据线mosi)。 spi的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线(两条数据线及两条控制线),事实上3根也可以(单向传输时)。也是所有基于spi的设备共有的,它们是mosi,miso,spck,nss。 主机输出从机输入(mosi):该数据线将主机输出数据作为从机输入移入。 主机输入从机输出(miso):该数据线将从机输出作为主机输入。传输时,只有单从机传输数据。 串行时钟(spck):该控制线由主机驱动,用来调节数据流。主机传输数据波特率可变;每传输一位,产生一个spck 周期。 从机选择(nss):该
24、控制线是从设备使能信号,由主设备控制。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)0x11|(int32u)0x308|(int32u)0x0c16|(int32u)0x208); spi_hostw
25、ritebyte(int8u)(bfa); for(i = 0;i8);spi_hostwritebyte(int8u)bfa); spi_hostwritebyte(0x00); for(i=0;i4;i+) spi_hostwritebyte(0x00);for(i=0;iu8spiport.pspi-spi_ptcr = at91c_pdc_rxtdis | at91c_pdc_txtdis;/* 初始化spi pdc收发器spipstopt-u8spiport.pspi-spi_rpr = (int32u)pstopt-pbcmd;spipstopt-u8spiport.pspi-sp
26、i_rcr = pstopt-u8cmdlen;spipstopt-u8spiport.pspi-spi_tpr = (int32u)pstopt-pbcmd;spipstopt-u8spiport.pspi-spi_tcr = pstopt-u8cmdlen;spipstopt-u8spiport.pspi-spi_rnpr = (int32u)pstopt-pbdata;spipstopt-u8spiport.pspi-spi_rncr = pstopt-u32datalen;spipstopt-u8spiport.pspi-spi_tnpr = (int32u)pstopt-pbdata
27、;spipstopt-u8spiport.pspi-spi_tncr = pstopt-u32datalen;/* pdc传输、发送使能spipstopt-u8spiport.pspi-spi_ptcr = at91c_pdc_rxten | at91c_pdc_txten;(五)、通过spi接口读写数据的代码实现(详见附录2)五、总结虽然我现在做的东西并不是系统的全部但是通过本系统的开发和研究,让我进一步的了解到了我们所学的知识的局限性.在作项目研究开发之前,一片茫然,不知所措.万事开头难,我们就只好埋头一切从零开始,先是稳固c语言基础,从基本的功能分析上,一步一步用c实现.然后,通过我们项
28、目开发环境,下载移植代码到arm板中,经过h-jtag仿真器进行调试,初步稳定代码的正确性,总的流程就是如此.当然现在的进度还只局限在这个地步,以后的路更加艰辛。我们主要的工作时间大部分浪费编码和调试中,系统的稳定性和数据的准确性是我们最受关注的.总之,一个系统程序在开发之前的需求分析工作影响整个的开发过程。从需求分析入手,做好各项准备工作,然后通过开发环境和相关开发工具,一步一步,循序渐进,步步为营,最终把一个我们理想中的数据采集系统满足用户的需要。六、参考文献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语言版本
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年驱鼠器项目建议书
- 中学化学教学设计知到课后答案智慧树章节测试答案2025年春鲁东大学
- 2017-2018学年人教A版高中数学选修2-3检测第一章计数原理单元质量评估(一)
- 高考物理课标版一轮复习考点规范练7牛顿第一定律牛顿第三定律
- 2024-2025学习笔记历史(部编版)选必一第四单元 第12课 近代西方民族国家与国际法的发展
- 末制导DBS成像环境建模及图像匹配研究
- 浅析打叶复烤企业的设备点检工作
- 心理契约对建造师的项目公民行为的影响关系研究
- 西格列汀联合二甲双胍在2型糖尿病患者中的有效性和安全性以及对炎症和氧化应激的影响的研究
- 中国婚姻制度的嬗变历程探索
- 2025年湖南汽车工程职业学院单招职业技能测试题库参考答案
- 拆除工程方案
- 2025年合肥职业技术学院单招职业适应性测试题库及参考答案
- (2025春新教材)人教版七年级英语下册全册教案
- 天津2025年天津市机关后勤事务服务中心招聘6人笔试历年参考题库附带答案详解
- 人教版小学三年级数学下册笔算练习题
- 山东黄河河务局公开招考2025高校毕业生易考易错模拟试题(共500题)试卷后附参考答案
- XX电站接地装置的热稳定校验报告(220kV)
- 丽声北极星分级绘本第三级上-Zob-Is-Bored
- 铁路信号基础(第四版) 课件全套 林瑜筠 第1-6章 信号继电器 -铁路信号系统概述
- 2025年度住宅小区水电改造与维修一体化服务合同4篇
评论
0/150
提交评论