




已阅读5页,还剩36页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
4 9通用串行通信接口 USCI SPI模式 主要内容 SPI总线协议总线结构工作模式数据传输时序MSP430SPI模块模块的特性主从机模式SPI模块寄存器应用示例 SPI总线介绍 SPI接口是Motorola首先提出的全双工三 四线同步串行外围接口 采用主从模式架构 支持多从设备应用 一般只支持单主设备 利用3 4条线完成两个芯片之间的双工高速通信 两条数据线用于收发数据 一条时钟线用于同步 一条作为从机选择 时钟由主设备控制 当主机发送一字节数据 通过主出从入MOSI引脚 的同时 从机返回一字节数据 通过主入从出MISO引脚 总线上允许连接多个设备 在同一时刻只允许一个主机操作总线 并且同时只能与一个从机通信 主机控制数据的传输过程 目前应用中的数据速率可达Mbps级 SPI总线可在软件的控制下构成各种简单的或复杂的系统 1个主MCU和几个从MCU几个从MCU相互连接构成多主机系统 分布式系统 1个主MCU和1个或几个从I O设备 SPI典型结构如下 SPI总线结构 SPI工作模式 主机模式 当器件作为主机时 使用一个IO引脚拉低相应从机的选择引脚 STE 传输的起始由主机发送数据来启动 时钟 SCK 信号由主机产生 通过MOSI发送数据 同时通过MISO引脚接收从机发出的数据 从机模式 当器件作为从机时 传输在从机选择引脚 STE 被主机拉低后开始 接收主机输出的时钟信号 在读取主机数据的同时通过MISO引脚输出数据 SPI电气连接 以 线SPI为例 其通信时需要的4个引脚分别为 作SPI主机时 STE要接上拉电阻 STE引脚作用 STE 从机模式发送接收允许控制引脚 控制多主从系统中的多个从机 该引脚不用于3线SPI操作 可以在4线SPI操作中使多主机共享总线 避免发生冲突 4线SPI操作主模式中 STE的含义如下 SIMO和SCLK被强制进入输入状态SIMO和SCLK正常操作4线SPI操作从模式中 STE的含义如下 允许从机发送接收数据 SIMO正常操作禁止从机发送接收数据 SIMO被强制进入输入状态 SPI数据传输 数据传输格式 通常是高位 MSB 在前 低位 LSB 在后 一些增强型MCU中可以通过软件设置高位在前或低位在前 下面以 位数据的传输为例 看一下 种不同数据传输格式的时序 首先介绍两个概念 1 时钟极性 表示时钟信号在空闲时是高电平还是低电平 2 时钟相位 决定数据是在SCK的上升沿采样还是在SCK的结束沿采样 SPI传输时序 传输模式 根据时钟极性 CPOL 及相位 CPHA 不同可以组合成4种工作模式 SPI0 SPI1 SP2 SP3 1 SPI0 CPOL 0 CPHA 0 2 SPI1 CPOL 0 CPHA 1 3 SPI2 CPOL 1 CPHA 0 4 SPI3 CPOL 1 CPHA 1 传输模式 时钟极性 CPOL 定义了时钟空闲状态电平 对传输协议没有重大影响 CPOL 0 时钟空闲状态为低电平 CPOL 1 时钟空闲状态为高电平 传输模式 时钟相位 CPHA 定义数据的采样时间 CPHA 0 在时钟的第一个跳变沿 上升沿或下降沿 进行数据采样 CPHA 1 在时钟的第二个跳变沿 上升沿或下降沿 进行数据采样 SPI接口内部结构 特点 优点 1 接口简单 利于硬件设计与实现 2 时钟速度快 且没有系统开销 3 相对抗干扰能力强 传输稳定 特点 缺点 1 缺乏流控制机制 无论主器件还是从器件均不对消息进行确认 主器件无法知道从器件是否繁忙 因此 需要软件弥补 增加了软件开发工作量 2 没有多主器件协议 必须采用很复杂的软件和外部逻辑来实现多主器件架构 通用串行通信接口 USCI 模块 通用串行通信接口 USCI 模块支持多种串行通信模式 不同的USCI模块支持不同的模式USCI Ax模块支持 UART模式IrDA通信的脉冲整形LIN通信的自动波特率检测SPI模式USCI Bx模块支持 I2C模式SPI模式 MSP430模块特点 MSP430的SPI模块有如下特点 支持3线或4线SPI操作支持7位或8位数据格式接收和发送有单独的移位寄存器接收和发送有独立的缓冲器接收和发送有独立的中断能力时钟的极性和相位可编程主模式的时钟频率可编程传输速率可编程支持连续收发操作支持主从方式 主模式 MSP430USCI作为主机 外围设备作为从机图 从模式 外围设备作为主机 MSP430USCI作为从机图 UCSI串行时序 同步串行通信时序 UCMSB 1 SPI模式下可用的USCI寄存器 USCI Ax和USCI Bx都有SPI模块 下面以USCI Bx为例 介绍相关寄存器 应用示例 SPI主机与从机通过三线SPI接口通信 主机发送数据给从机 同时又接收从机发来的数据 发送数据从0 x01开始递增 从机接收到数据 就立马发出 主机接到这个数据 进入中断如果发送和接收数据相同 则点亮LED灯 否则熄灭 程序流程图 主机 端口初始化 P8SEL BIT4 BIT5 BIT6 P8DIR BIT4 BIT5 BIT6 P1DIR BIT0 BIT1 P1SEL BIT0 BIT1 选择P1 1 P1 0端口为输出 选择P1 1 P1 0端口为输出 选择P8 4 P8 6为外设功能 选择P8 4 P8 6端口方向为输出 UCB1CTL1 UCSWRST UCB1CTL0 UCMST UCSYNC UCCKPL UCMSB UCB1CTL1 UCSSEL 2 UCB1BR0 0 x02 UCB1BR1 0 UCB1IE UCRXIE UCB1CTL1 UCSWRST 主机 SPI模块初始化 选择SMCLK 配置波特率 打开SPI中断 USCI Bx复位释放 主机 其他配置 MST Data 0 x01 SLV Data 0 x00 P1OUT BIT1 delay cycles 100 while UCB1IFG 从机选择引脚 延时 判断发送缓冲是否为空 如果为空 标志位置位 则说明上个数据未发送完毕 等待直到数据发送完毕 发送第一个字符 主机 接收中断 pragmavector USCI B1 VECTOR interruptvoidUSCI B1 ISR void switch even in range UCB1IV 4 case0 break case2 while UCB1IFG 判断发送缓冲是否为空 如果为空 标志位置位 则说明上个数据未发送完毕 等待直到数据发送完毕 如果接收与发送相同 点亮LED 发送下一个字符 从机 端口初始化 P8SEL BIT4 BIT5 BIT6 P8DIR BIT4 BIT5 BIT6 P1REN BIT4 P1OUT BIT4 P1IES 使能P1 4内部电阻 P1 4输出为1 选择P8 4 P8 6为外设功能 选择P8 4 P8 6端口方向为输出 P1 4上升沿捕获 进入中断 P1 4IFG清零 P1 4中断使能 主机 SPI模块初始化 UCB1CTL1 UCSWRST UCB1CTL0 UCSYNC UCCKPL UCMSB UCB1CTL1 UCSWRST USCI Bx复位释放 从机 接收中断 pragmavector USCI B1 VECTOR interruptvoidUSCI B1 ISR void switch even in range UCB1IV 4 case0 break case2 while UCB1IFG 判断发送缓冲是否为空 如果为空 标志位置位 则说明上个数据未发送完毕 等待直到数据发送完毕 发送下一个字符 从机 接收中断 pragmavector USCI B1 VECTOR interruptvoidUSCI B1 ISR void switch even in range UCB1IV 4 case0 break case2 while UCB1IFG 判断发送缓冲是否为空 如果为空 标志位置位 则说明上个数据未发送完毕 等待直到数据发送完毕 发送下一个字符 从机 主机开始工作提示中断 pragmavector PORT1 VECTOR interruptvoidPort 1 void P1IFG USCI Bx复位释放 打开SPI中断 主机 端口初始化 库 SetP1 1forslaveresetGPIO setOutputHighOnPin MSP430 BASEADDRESS PORT1 R GPIO PORT P1 GPIO PIN1 SetP1 0tooutputdirectionGPIO setAsOutputPin MSP430 BASEADDRESS PORT1 R GPIO PORT P1 GPIO PIN0 P3 5 4 0optionselectGPIO setAsPeripheralModuleFunctionInputPin MSP430 BASEADDRESS PORT8 R GPIO PORT P8 GPIO PIN4 GPIO PIN5 GPIO PIN6 主机 SPI模块初始化 库 InitializeMasterreturnValue SPI masterInit MSP430 BASEADDRESS USCI B1 SPI CLOCKSOURCE SMCLK UCS getSMCLK MSP430 BASEADDRESS UCS SPICLK SPI MSB FIRST SPI PHASE DATA CHANGED ONFIRST CAPTURED ON NEXT SPI CLOCKPOLARITY INACTIVITY HIGH if STATUS FAIL returnValue return EnableSPImoduleSPI enable MSP430 BASEADDRESS USCI B1 EnableReceiveinterruptSPI enableInterrupt MSP430 BASEADDRESS USCI B1 SPI RECEIVE INTERRUPT 主机 其他配置 库 NowwithSPIsignalsinitialized resetslaveGPIO setOutputLowOnPin MSP430 BASEADDRESS PORT1 R GPIO PORT P1 GPIO PIN1 LEDOnGPIO setOutputHighOnPin MSP430 BASEADDRESS PORT1 R GPIO PORT P1 GPIO PIN0 Waitforslavetoinitialize delay cycles 100 InitializedatavaluestransmitData 0 x00 USCI A0TXbufferready while SPI getInterruptStatus MSP430 BASEADDRESS USCI B1 SPI TRANSMIT INTERRUPT TransmitDatatoslaveSPI transmitData MSP430 BASEADDRESS USCI B1 transmitData CPUoff enableinterrupts bis SR register LPM0 bits GIE 主机 接收中断 库 pragmavector USCI A0 VECTOR interruptvoidUSCI A0 ISR void switch even in range UCA0IV 4 Vector2 RXIFGcase2 USCI A0TXbufferready while SPI getInterruptStatus MSP430 BASEADDRESS USCI A0 SPI TRANSMIT INTERRUPT receiveData SPI receiveData MSP430 BASEADDRESS USCI A0 IncrementdatatransmitData SendnextvalueSPI transmitData MSP430 BASEADDRESS USCI A0 transmitData Delaybetweentransmissionsforslavetoprocessinformation delay cycles 40 break default break 从机 端口初始化 库 Ifclocksignalfrommasterstayslow itisnotyetinSPImodewhile GPIO INPUT PIN LOW GPIO getInputPinValue MSP430 BASEADDRESS PORT3 R GPIO PORT P3 GPIO PIN0 P8 4 5 6optionselectGPIO setAsPeripheralModuleFunctionInputPin MSP430 BASEADDRESS PORT8 R GPIO PORT P8 GPIO PIN4 GPIO PIN5 GPIO PIN6 主机 SPI模块初始化 库 InitializeslavetoMSBfirst inactivehighclockpolarityand3wireSPIreturnValue SPI slaveInit MSP430 BASEADDRESS USCI B1 SPI MSB FIRST SPI PHASE DATA CHANGED ONFIRST CAPTURED ON NEXT SPI CLOCKPOLARITY INACTIVITY HIGH if STATUS FAIL returnValue return
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- cdfi技师上岗证考试模拟试题及答案
- 透析患者发生溶血反应的试题及答案
- 2025年建筑信息模型(BIM)在工程项目全过程管理中的项目管理创新与实践案例报告
- 押题宝典高校教师资格证之《高等教育法规》通关考试题库附参考答案详解(a卷)
- 2025至2030年中国美甲行业市场深度评估及投资策略咨询报告
- 2025至2030年中国酱料行业市场全景调研及投资规划建议报告
- 押题宝典执业药师资格证之《西药学专业二》考试题库附参考答案详解【典型题】
- 考点解析-湖北省松滋市7年级上册期末测试卷专项练习试题(解析版)
- 解析卷人教版8年级数学上册《轴对称》同步测评试题(含答案及解析)
- 2025年医药企业存货质押贷款合同模板
- 中海大海洋化学课件02海洋的形成和海水的组成
- 均值X-R极差分析控制图(自动测算表)
- 体力劳动工作管理程序
- GB/T 28181-2022公共安全视频监控联网系统信息传输、交换、控制技术要求
- GB/T 40549-2021焦炭堆积密度小容器测定方法
- GB/T 39616-2020卫星导航定位基准站网络实时动态测量(RTK)规范
- GB/T 3620.1-2007钛及钛合金牌号和化学成分
- GB/T 17395-2008无缝钢管尺寸、外形、重量及允许偏差
- 化学史课件讲课教案
- 产品合格证明证书模板
- 医务人员礼仪培训
评论
0/150
提交评论