1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,SPI,总线,SPI,总线,SPI总线,是,串行,外围设备接口,是一种高速的,,全双工,,,同步,的通信总线,并且在芯片的管脚上只占用四根线,.,SPI的通信原理很简单,它以,主从方式,工作,通常有一个主设备和一个或多个从设备,需要,至少4根线。,SDO,主设备数据输出,从设备数据输入,SDI,主设备数据输入,从设备数据输出,SCLK,用来为数据通信提供同步时钟信号,由主设备产生,CS,从设备使能信号,由主设备控制,SPI接口是
2、全双工,、,同步,、,串口,、,单主机。,SPI,从机,从主机获得时钟和片选信号,因此,cs,和,sclk,都是输入信号。,SPI,接口在内部硬件实际上是个简单的移位寄存器,传输的数据为,8,位,在主器件产生的从器件使能信号和移位脉冲下,按位传输,高位在前,低位在后,。,SPI,从机,的内部结构,SPI,总线,如果一个SPI从机没有被选中,他的数据输出端SDO将处于高阻状态,从而与当前处于激活状态的隔离开。,寻址:,MOSI,:,When master,out line;when slave,in line,MISO,:,When master,in line;when slave,out
3、line,SPI,从机的内部结构,SPI接口实际上是两个简单的移位寄存器,传输的数据为8位,在主器件产生的从器件使能信号和移位脉冲下,按位传输,高位在前,低位在后。,上升沿发送,下降沿接收。(有的器件是上升沿接收,下降沿发送),D7,.,.,.,.,D0,D0,.,.,.,.,D7,SPI,总线,SPI,总线,在一次数据传输过程中,接口上只能有一个主机和一个从机能够通信。并且,,主机总是向从机发送一个字节数据,,而从机也总是向主机发送一个字节数据。,在,SPI,传输中,数据是,同步进行,发送和接收的。,数据传输的时钟基于来自,主处理器,的时钟脉冲,,当,SPI,接口上有多个,SPI,接口的单片
4、机时,应区别其主从地位,在某一时刻只能由一个单片机为主器件。,从器件只能在主机发命令时,才能接收或向主机传送数据。,其数据的传输格式是,高位(,MSB,)在前,低位,(LSB,)在,SPI,接口的一个,缺点,:没有应答机制确认是否接收到数据。,如果只是进行写操作,主机只需忽略收到的字节;反过来,如果主机要读取外设的一个字节,就必须发送一个空字节来引发从机的传输。,SPI,总线,SPI,总线,添加从器件:每个从器件需要一个单独的从选择信号。总信号数最终为,n+3,个,其中,n,是总线上从器件的数量。在,SPI,总线上添加新的从器件也不方便。对于额外添加的每个从器件,都需要一条新的从器件选择线,上
5、面的上表示上升沿、下表示下降沿,,sdi,、,sdo,相对于主机而言的。,一个完整的传送周期是,16,位,即两个字节,因为,首先主机要发送命令过去,然后从机根据主机的命令准备数据,主机在下一个,8,位时钟周期才把数据读回来,。,SPI,总线的硬件接口电路,SPI接口,的串行时钟芯片,DS1302,实时时钟,可对秒、分、时、日、周、月以及,带闰年补偿,的年进行计数;,用于高速数据暂存的318 RAM;,简单的SPI三线串口;,/RST引脚,:复位兼片选,读/写操作时,必须为高电平,。,单片机与DS1302的接口,DS1302的内部结构,DS1302的工作原理,单片机开始数据传送时,必须将DS13
6、02的/RST置高,且把包含有地址和命令信息的8位数据发送给DS1302.,数据在SCLK的,上升沿入,下降沿串行出,;,单片机对DS1302的读/写是命令字来初始化的。命令字格式:,命令字节的D7必须为1,若D7=0,写保护;,D6=0,表示存取日历时钟数据;D6=1,表示存取RAM数据.,D5D1指示操作单元的地址;,D0=0,表示写;D0=1,表示读;,DS1302的寄存器,数据在SCLK的,上升沿入,,,下降沿,串行,出,;,单字节操作,:每次对DS1302的写入或读出都由,命令字节引导,,每次只传送1字节数据。,单字节写操作:,单片机通过8个sclk下降沿传送写命令字节后,在接下来的
7、8个sclk时钟的下降沿传送一字节数据。如果有,更多的sclk周期,,DS1302将会忽略。,单字节读操作:,单字节读操作每次需16个时钟,地址字节在前8个时钟周期的上,升沿输入,,而数据字节在后8个时钟周期的,下降沿输出,。.,DS1302输出的第一,位数据是在命令字节最后一位的第一个下降沿处,如果有,更多的sclk周期,,DS1302将重新发送数据字节。,多字节操作,多字节操作,:每次对DS1302的写入或读出都由命令字节引导,然后对时钟寄存器的,7,个寄存器或31个RAM依次按顺序写入/读出。,多字节写操作:,单片机通过8个sclk下降沿传送命令字节后,在接下来的8个sclk时钟的下降沿
8、传送一字节数据,以次类推。,多字节读操作:,:,单片机通过8个sclk下降沿传送命令字节后,在紧接着的的8个sclk时钟的下降沿DS1302传送一字节数据,以次类推。,特殊寄存器,在DS1302的,时钟日历,或,RAM,进行,数据传送,时,DS1302必须,首先发送命令字节,。若进行单字节传送,8位命令字节传送结束之后,在下8个SCLK周期的下降沿输出数据字节。,DS1302与RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0HFDH,其中奇数为读操作,偶数为写操作;,再一类为突发方式下的RAM寄存器,在此方式下可一次性读、写所有的RA
9、M的31个字节。命令字为BEH和BFH,写保护寄存器:,程序举例:,初始化日历寄存器,单片机写一字节到DS1302:,上升沿入,下降沿出,WBYTE:(单片机将A中数据发送给DS1302),MOV R1,#08H,SETB SCLK,NOP,LOOP1:CLR SCLK,RRC A;低位在前,MOV I/O,C;先把数据准备好,再上升沿,SETB SCLK;,上升沿入到DS1302,DJNE R1,LOOP1,RET,DS1302的寄存器,多字节写模式,MOV 68H,#52H;把数据事先存到68H61H,MOV 67H,#34H,MOV 66H,#19H,MOV 65H,#01H,MOV 6
10、4H,#03H,MOV 63H,#10H,MOV 62H,#11H,MOV 61H,#00H,WRCR:,CLR SCLK,SETB /RST,MOV A,#8EH,;写,保护寄存器,的命令字,LCALL WBYTE,MOV A,#00H,;写,保护寄存器,的内容,LCALL WBYTE,CLR /RST;中止传送,多字节写模式,CLR SCLK,SETB /RST,MOV A,#BEH;多字节写命令,LCALL WBYTE,MOV R0,#68H,MOV R2,#08H,LOOP:MOV A,R0,LCALL WBYTE,DEC R0,DJNE R2,LOOP,CLR SCLK,CLR /R
11、ST;停止传送,RET,单片机单字节读:,上升沿入,下降沿出,RBYTE:MOV R1,#08H,MOV A,#00H,MOV R0,A,SETB SCLK,NOP,LOOP2:CLR SCLK;,下降沿输出,MOV A,R0,MOV C,I/O,RRC A,MOV R0,A,SETB SCLK,DJNE R1,LOOP2,RET,多字节,读模式,将时钟日历寄存器的秒、分、时、日、星期、月、年以及写保护寄存器的内容分别存入单片机的,6FH68H单元,RDCR:,CLR SCLK,SETB /RST,MOV A,#0BFH;多字节读命令,LCALL WBYTE,MOV R0,#6FH,MOV R2,#08H,LOOPR:,LCALL RBYTE,MOV R0,A,DEC R0,DJNE R2,LOOPR,CLR SCLK,CLR /RST;停止传送,RET,习题,SPI总线的特点有哪些?,SPI总线通常有_、_、_、_信号线组成。,SPI在通信过程中,主机通过_选择从机。,SPI总线是_(单主机或多主机)总线,是_(同步或异步),复习,一、选择题(10题,共20分),二、填空(每空1分,共35分),三、综合题(45分),1简答题8分,2简答8分,3简答5分,4程序填空7分,5编程10分,6简答6分,总结,
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4009-655-100 投诉/维权电话:18658249818