单片机—SPI接口简述(上)

 

1  SPI接口

 

SPI(Serial PeripheralInterface)即串行外设接口,是一种高速同步的串行接口,可以串行接收或发送数据,支持主从机之间的全双工同步传输,传输速率可编程设定。在SPMC65系列单片机中,SPI模块有4个引脚(与端口C的低4位复用),支持主模式和从模式。许多参数都可编程设定,如工作模式、传输速率、时钟相位和极性等。

 

SPI模块特性如下。

 

·4个接口引脚。

 

SDO为数据输出引脚(PC3复用)

 

SDI为数据输入引脚(PC2复用)

 

SCK为时钟输人/输出引脚(Pcl复用)

 

SSB为从机选择引脚(PCO复用)

 

·支持全双工同步传输。

 

·2种工作模式:主模式、从模式。

 

·波特率:8种可编程传输速率.CPU时钟频率在8 MHz时,波特率最高可达2 Mbps

 

·每次发送或接收的数据长度为8位。

 

·时钟相位和极性的可编程设定。

 

·数据采样时刻选择:可在数据输出中或数据输出末尾进行采样。

 

·SPI接收/发送缓冲器大小为1B

 

SPMC65系列单片机的SPI串行接口功能框图如图6.1所示。
 


SPI接口经常用于和E2PROM通信。

 

62即为SPMC65系列单片机与93C46通信的应用电路。




2  控制寄存器

 

    1SPI控制寄存器0 P_SPI_Ctri0($38RW)

 

SPI控制寄存器0 P_SPI_Ctrl0($38)可以完成SPI模块的使能控制、主/从模式选择、时钟信号特性设置,以及SPI通信时钟频率选择等;该寄存器默认初始值为#OOh。有关SPI控制寄存器0的功能如表62所列。




bit7  SPIENSPI使能位。该位置1PC[3:0]作为SPI通信接口。

                  1=使能SPI功能;

                  1=禁止SPI功能。

 

bit6  MODSPI运行模式。

                  1=从机模式;

                  1=主机模式。

 

bit5  SCKPHASPI时钟相位选择,见SPI主模式时序。

 

bit4  SCKPOLSPI时钟极性选择,见SPI主模式时序。

 

bit3  SMS:主机采样模式选择。

                   1=输入数据输出末尾段进行采样;

0=输入数据输出中部进行采样。

 

bit  [2:0]SCKSEL[2:0]:主模式时钟选择位。

    111=Fsys128

    110=Fsys128

    101=FSYS128

    100=Fsys64

    011=Fsys32

    010=Fsys16

    001=Fsys8

    000=Fsys4

 

2SPI控制寄存器1 P_SPLCtrl1($39RW)

 

SPI模块的从模式的设置,以及采样时钟频率的选择等,可以通过写SPI控制寄存器1 P_SPI_Ctrll($39)完成设置。采样时钟的目的是为了防止在接收数据时受到尖脉冲的干扰,但是低的采样率会影响通信速度。建议采样时钟频率≥4×SPI时钟频率。SPI控制寄存器1默认初始值为#02h,该寄存器各位的功能如表63所列。




bit7  SMSENSPI从模式选择输入。

                  1=PC0作为SSB输入引脚(SSB:从模式选择,低有效)

                0=PC0作为通用IO引脚。

 

bit6  SWRSTSPI软件复位。

     写:

            1=产生脉冲复位SPI模块(寄存器设置除外)

           0=无效。

    读:总为0

 

bit  [5:2]保留。

bit  [1:0]SPISPCLK[1:0]:采样时钟选择位。

    11=Fsys4

    10=Fsys2

    01=Fsys

    00=不采样

 

3SPI TXRX状态寄存器P_SPI_status($ 3A Rw)

 

SPMC65 系列单片机的 SPI 模块提供了发送和接收中断,可以通过读取 SPI TX RX 状态寄存器 P_SPI_Status($ 3A ) 查询 SPI 模块的中断标志;而写 SPI TX RX 状态寄存器可以设置 SPI 中断的使能、清除 SPI 中断标志。该寄存器默认初始值为 #00h ,具体各个位的功能如表 6 4 所列。
 


bit7  SPIIFSPI中断标志。

    读:

             1=SPI中断发生;

             0=SPI中断发生。

    写:

              1=清除标志;

              0=无效。

 

bit6  SPIIENSPI中断使能位。

              1=使能;

              0=禁止。

 

bit5  TXBF:发送缓冲器满标志位。

              1=发送缓冲器满;

              0=发送缓冲器空。

 

bit  [4:1]保留。

 

bit0  BUFFull:接收缓冲器满并覆盖标志位。

             l=覆盖;

             0=接收缓冲器工作正常。

当前SPI接收到一个完整的数据时,会把接收缓冲器中上次接收到的数据覆盖,此时将BUFFull标志位置位。若上次接收到的数据被读取,则该标志位清零。

 

4SPI发送数据缓冲器P_SPI_rrxData($3BRW)

 

SPMC65 系列单片机的 SPI 模块提供了发送和接收数据的缓冲器,这两个寄存器默认初始值为 #00h ,发送数据缓冲器的具体功能如表 6 5 所列。接收数据缓冲器的具体功能参考表 6 6
 


bit  [7:0]  SPITXDATASPI发送数据。

             读:总为#00h

             写:发送数据。

 

5SPI接收数据缓冲器P_SPI_RxData($ 3C Rw)

 

其具体功能如表66所列。



bit  [7:0]  SPIRxDATASPI接收数据。

              读:SPI接收数据;

             写:无效。


  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: MCS-51 单片机是一种可编程控制器(Programmable Controller,简称 PLC),是一种广泛使用的微控制器。它的硬件结构由 CPU、存储器、输入/输出(I/O)以及中断控制器组成。 - CPU(中央处理器)是 MCS-51 单片机的核心,负责执行程序指令。MCS-51 单片机采用 Harvard 结构的 CPU,其中有一个可编程指令寄存器(Programmable Instruction Register,简称 PIR),用于存储执行的指令。 - 存储器包括内部存储器和外部存储器。内部存储器包括程序存储器、数据存储器和系统寄存器。程序存储器用于存储程序指令,数据存储器用于存储程序运行时的数据,系统寄存器包括栈指针、程序计数器等。外部存储器可以是 ROM、RAM 或 EPROM 等,用于存储更多的程序和数据。 - 输入/输出(I/O)是 MCS-51 单片机与外界交互的接口,包括数字输入/输出模块、模拟输入/输出模块和串行通信模块。 - 中断控制器负责处理外部中断,包括定时器中断、串行通信中断 ### 回答2: MCS-51 单片机是一种经典的8位单片机,内部包含了许多重要的硬件结构。 首先,MCS-51 单片机的核心是一个8位的CPU,它支持多种数据操作指令和地址计算方式。CPU 还具有内部寄存器,包括累加器、程序计数器、数据指针和状态寄存器等,用于执行各种指令和管理程序运行。 MCS-51 单片机还拥有4KB到64KB的存储器,包括ROM和RAM。ROM 用于存放程序代码,而RAM 则用于存储数据。此外,它还提供了特殊功能的SFR(特殊功能寄存器),用于控制外设和执行特定功能。 MCS-51 单片机还具有多个输入/输出端口,用于连接外部设备。这些输入/输出端口可以被程序读写,用于与外界交互,实现数据的输入和输出。 此外,MCS-51 单片机还包含多个定时器/计数器和串行通信接口。定时器/计数器用于生成精确的时间延迟和计数操作,而串行通信接口则负责与外部设备进行数据传输。 最后,MCS-51 单片机还具有一些辅助功能,如中断控制器、时钟控制器和电源管理等。中断控制器可以实现中断处理,时钟控制器则用于产生CPU时钟,电源管理功能用于节约电能和提高系统效率。 综上所述,MCS-51 单片机的硬件结构包括CPU、存储器、输入/输出端口、定时器/计数器、串行通信接口和辅助功能等部分,这些硬件结构相互配合,共同实现了单片机的各种功能和特性。 ### 回答3: MCS-51是Intel公司推出的一款经典的8位单片机,其内部硬件结构包括CPU、存储器、定时器、串行通信接口等模块。 首先,MCS-51单片机的核心是CPU,它使用了面向寄存器的架构。它包含有8位的累加器A、8位的指令寄存器IR,以及可供程序访问的8位工作寄存器B。CPU还包括了算术逻辑单元ALU,用于执行算术和逻辑运算。 其次,MCS-51单片机内部集成了存储器模块。其中,片内RAM用于存储程序和数据,有128字节或256字节的容量可选。另外,片内ROM用于存储程序代码,可以是4KB或8KB的容量。这两种存储器都可以通过直接地址访问。 此外,MCS-51单片机还具有定时器和计数器模块。其中,定时器0和定时器1可以用作16位定时器,也可以配置为计数器。另外,还有可编程的串行通信接口P1和P3,用于实现与其他设备的串行通信。 最后,MCS-51单片机还具有一些外部接口,如串口通信接口、中断控制器等。其串口通信接口可实现与外部设备的串行通信,其中包括UART和SPI等不同通信模式。而中断控制器可管理外部中断和定时器中断,提供了针对中断的优先级和屏蔽。 总之,MCS-51单片机具有丰富的内部硬件结构,包括CPU、存储器、定时器、串行通信接口等模块。这些模块的结合使得MCS-51单片机成为一款灵活且强大的微控制器,广泛应用于嵌入式系统和物联网设备中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值