SPI总线从机接口实时模拟的实现

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

SPI总线从机接口实时模拟的实现

收稿日期:2005-09-15

作者简介:郭静华(1976-),女,黑龙江人,硕士研究生,研究方向为电子技术在农业中的应用。zhongguoguojinghua@126.com

*通讯作者E-mail:ouyangbl@126.com

郭静华,欧阳斌林*

(东北农业大学工程学院,哈尔滨

150030)

摘要:MCS51系列单片机由于不带SPI串行总线接口而限制了其在SPI总线接口器件的使用。文章介绍了

SPI串行总线的特征和时序,并以双CPU通信为例,给出了在51系列单片机上利用中断实现SPI串行总线通信的

方法和软件设计程序,从机在实现SPI接口同时还可以完成其他操作任务。

关键词:SPI总线;中断系统;89C52单片机中图分类号:TP23

文献标识码:A

SPI

(Serialperipheralinterface)总线是Motorola公司提出的一个同步串行外设接口,用于CPU与各种外围器件进行全双工、同步串行通讯。SPI可以同时发出和接收串行数据,它只需4条线就可以完成MCU与各种外围器件的通讯。这些外围器件可以是简单的TTL移位寄存器,复杂的LCD显示驱动器,A/D、D/A转换子系统或其他的

MCU[1]

利用SPI总线可在软件的控制下构成各种系统。如1个主MCU和几个从MCU、几个从MCU相互连接构成多主机系统(分布式系统)、1个主

MCU和1个或几个从I/O设备所构成的各种系统

等。在大多数应用场合,可使用1个MCU作为主控机来控制数据,并向1个或几个从外围器件传送该数据。从器件只有在主机发命令时才能接收或发送数据,其数据的传输格式是高位(MSB)在前,低位(LSB)在后。

一般而言,SPI总线接口主要用于主从分布式的通信网络,只需4根I/O接口线,即可完成主从总线之间的数据通信。这4根接口线分别为:时钟线

(SCLK)、数据输入线(MOSI)(主机输出从机输入)、数据输出线(MOSO)(主机输入从机输出)、片选线

(SS)。根据时钟和触发不同SPI总线可以分为4种,图1是其中一种SPI工作时序。

1系统介绍

MCS51等系列单片机由于不带SPI串行总线接

口而限制了其在SPI总线接口器件的使用,但可以使用软件来模拟SPI的操作,包括串行时钟、数据输入和数据输出[2]。本文所介绍的SPI总线实时系统既是在89C52单片机之间实现SPI总线串行通信的功能。系统结构见图2。重点介绍从机SPI的实现。

主CPU的P3.4(选通线)接到从机的INT0口,P3.5

(时钟线)接到从机的INT1口。选通和时钟都采用中断方式,以提高系统的实时性能。

图1SPI时序

Fig.1TheSPIworksequence

图2系统结构

Fig.2Systemstructure

第38卷第5期东北农业大学学报38(5):669 ̄671

2007年10月JournalofNortheastAgriculturalUniversity

Oct.2007

文章编号

1005-9369

(2007)05-0669-

03

图4从机的SPI程序流程

Fig.4SPIProgramblockoftheslavecomputer

1.1主从机通信协议

主从机均工作在方式2,主机定时向从机发中

断进行初始化或接收所需数据,从机采用中断方式,SS由从机的外中断0实现响应,CLK由从机的外中断1实现响应。主机和从机之间每次作业为

5个字节。所完成的任务都被定义为不同的命令

字,一个命令字代表CPU将要完成的一种任务。

主机要发出(即下传)一帧数据对从机的某些功能进行设置,数据帧的第1个字节是命令字,随后3个字节是数据,第5个字节是总和校验。从机上传时数据帧的前4个字节为数据位,第5个字节是命令字。

1.2系统软件设计

程序流程见图3。本文主要介绍SPI中外中断

及实时性的应用,所以,对主机的软件不做详细介绍,从机的两个外中断流程见图4。

图3

主机的SPI程序流程

Fig.3

TheflowofSPIhostcomputerprogram

从机的初始化过程(即主机输出,从机输入):从机首先响应外中断0,完成位变量、字节变量初使化;接着响应外中断1,每响应一个外中断1就是一个CLK,在CLK的下降沿完成1bit数据的接收,1bit接收结束后,对是否完成8bit进行判断,若已经完成8bit的数据的接收,字节指针++,对是否完成5个字节的接收进行判断,若完成则数据帧结束标志Flag_com置1;若8bit的接收尚未完成,继续接收下一

个bit。

从机上传数据和接收数据的中断响应过程是一样的,因此不再介绍。

2系统实时性体现

本系统的另一个重要特征就是系统的实时性,

即从机响应外中断0和外中断1时,不影响从机的其他操作。具体体现在对温度的采集、及送LED显示。从机的主程序流程见图5。

·670·东北农业大学学报第38

TheimplementationofSPIbusslavecomputerinterface

realtimesimulation

GUOJinghua,OUYANGBinlin

(EngineeringCollege,NortheastAgriculturalUniversity,Harbin150030,China)

Abstract:DuetonoSPIserialbusinterfaceinMCS51scm,MCS51scmcouldn'tuseSPIbusinterfaceapparatuses.ThepaperfirstlyintroducedthecharacteristicandSequenceofSPIserialbus.TakedoubleCPUcommunicationasexample,thepaperimplementedSPIserialbusinterfacecommunicationmakinguseofinterruptonMCS51scm.Thenthepapershowedthemethodandsoftwaredesignprogram.TheslavecomputercouldimplementSPIinterfaceandotheroperationtasks.

Keywords:SPIbus;interruptionsystem;89C52scm

由上可知,从机响应外中断的同时可以利用

18B20采温度、送LED显示或控制I/O口。而且SPI接口数据的处理、系统4路温度的采集及显

示,循环往复,互不影响,从而实现了从机的实时性。

3结论

本文利用89C52单片机完成了从机的SPI接口的设计。片选和时钟都采用外中断方式提高了系统对数据的实时采集性能,而且附加的通信协议增强了通信的可靠性。另外由于采用模块化设计,可以根据从机的情况灵活地配置系统,提高设计的可靠性,且89C52芯片价格便宜,因此具有较高的性价比。经调试后,系统可完成SPI接口、数据采集

及显示且相互之间不会冲突,达到了预期目的。

[1]马忠梅,籍顺心,张凯,等.单片机的C语言应用程序设计[M].

北京:北京航空航天大学出版社,1998.

[2]宗光华,李大寨.多单片机系统应用技术[M].北京:国防工业出版

社,2003.

图5

从机的程序流程

Fig.5Theflowoftheslavecomputerprogram

郭静华等:SPI总线从机接口实时模拟的实现·671·

第5

相关文档
最新文档