如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
第8章C8051F330单片机的通信接口8.1串行外设接口(SPI0)(1)主输出、从输入信号MOSI主出从入(MOSI)信号用于从主器件到从器件的串行数据传输。(2)主输入、从输出信号MISO主入从出(MISO)信号用于从从器件到主器件的串行数据传输。当SPI0作为主器件时,该信号是输入;当SPI0作为从器件时,该信号是输出。数据传输时高位在先。当SPI禁止或工作在4线从方式而未选中时,MISO引脚处于高阻态。(3)串行时钟信号SCK串行时钟(SCK)信号是主器件的输出和从器件的输入,用于同步主器件和从器件之间在MOSI和MISO线上的串行数据传输。(4)从器件选择信号NSSNSS信号的功能取决于SPI0CN寄存器中NSSMD1和NSSMD0位的设置。有3种可能的方式:1)禁止NSS方式:当作为从器件工作在3线方式时,总是选择SPI0。2)4线从方式或多主方式:SPI0工作在4线方式,NSS作为输入。当作为从器件时,NSS选择从SPI0器件。当作为主器件时,NSS信号的负跳变禁止SPI0的主器件功能,3)4线主方式:SPI0工作在4线方式,NSS作为输出。NSSMD0的值决定NSS引脚的输出电平。这种配置只能在SPI0作为主器件时使用。NSSMD(NSSMD1和NSSMD0)位的设置影响器件的引脚分配。当工作在3线主或从方式时,NSS不连接引脚。在所有其他方式,必须使NSS连接引脚。1.SPI0主方式通过主允许标志(MSTEN,SPI0CFG.6)置‘1’可将SPI0置于主方式。只有SPI主器件能启动数据传输。在主方式,向SPI0数据寄存器(SPI0DAT)写入一个字节,数据将写入发送缓冲器;如果SPI移位寄存器为空,发送缓冲器中的字节数据传送到移位寄存器,数据传输开始;SPI0主器件通过MOSI线上的引脚串行移出数据,同时在SCK引脚上输出串行时钟;在传输结束后SPIF(SPI0CN.7)标志置为逻辑1;如果允许中断,将产生一个中断请求。在全双工操作中,当SPI主器件在MOSI线上的引脚向从器件发送数据时,SPI从器件同时通过MISO线上的引脚向主器件发送其移位寄存器中的内容。因此SPIF标志既是发送完成标志,又是接收数据准备好标志。CPU读SPI0DAT获取数据字节。当配置为主器件时,SPI0的工作方式为:多主方式、3线单主方式或4线单主方式。2.SPI0从方式当SPI0使能,但未配置成主器件时,SPI0作为SPI从器件工作。作为从器件,由主器件控制串行时钟(SCK),从MOSI移入数据,从MISO引脚移出数据。从器件不能启动数据传送,需要写SPI0DAT来预先准备要发送给主器件的数据。。当配置为从器件时,SPI0可以工作4线或3线方式。在4线方式,NSS配置为数字输入。当NSS为逻辑0时,SPI0使能;当NSS为逻辑1时,禁止SPI0。位计数器在NSS的下降沿复位。对应每次字节传输,在第一个有效SCK边沿到来之前,NSS信号必须驱动到低电平至少两个系统时钟周期。在3线从方式,如果不使用NSS。这时SPI0必须是唯一的从器件。由于在3线从方式下没有外部手段对位计数器复位以判断是否收到一个完整的字节。只能通过用SPIEN位禁止并重新使能SPI0来复位位计数器。3.SPI0的中断源如果允许SPI0中断,下面所述的标志位置‘1’并产生中断,这些标志位都需要用软件清‘0’。(1)在每次字节传输结束,SPI中断标志位SPIF(SPI0CN.7)置‘1’。该标志适用于所有SPI方式。(2)如果发送缓冲器的数据未发送完毕时写SPI0DAT,写冲突标志WCOL(SPI0CN.6)置‘1’,这时忽略写SPI0DAT的操作,不会对发送缓冲器写入。该标志适用于所有SPI方式。(3)当SPI0配置为多主方式的主器件,而NSS为低电平时,方式错误标志MODF(SPI0CN.5)置‘1’。当发生这种错误时,SPI0CN中的MSTEN和SPIEN位清‘0’,以禁止SPI0并允许另一个主器件访问总线。(4)当SPI0配置为从器件并且一次传输结束,而接收缓冲器中还保持着上一次传输的数据未读取时,接收溢出标志RXOVRN(SPI0CN.4)置1。新接收的字节将不传送到接收缓冲器,允许CPU读取前面接收的字节,新接收的数据字节丢失。4.串行时钟时序使用SPI0配置寄存器(SPI0CFG)中的时钟控制选择位可以在串行时钟相位和极性的4种组合中选择其一。CKPHA位(SPI0CFG.5)选择两种时钟相位(锁存数据所用的边沿)中的一种。CKPOL位(SPI0CFG.4)在高电平有效和低电平有效的时钟之间选择。主器件和从器件必须使用相同的时钟相位和极性。注意:当两个C8051F330单片机之间通信时,不论工