SPI总线从机接口实时模拟的实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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
期