电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

串行外设接口(spi)协议芯片资料

41页
  • 卖家[上传人]:F****n
  • 文档编号:88062184
  • 上传时间:2019-04-18
  • 文档格式:PPT
  • 文档大小:1.46MB
  • / 41 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、4.9 通用串行通信接口(USCI) SPI模式,主要内容,SPI总线协议 总线结构 工作模式 数据传输时序 MSP430 SPI模块 模块的特性 主从机模式 SPI模块寄存器 应用示例,SPI总线介绍,SPI接口是Motorola首先提出的全双工三/四线同步串行外围接口,采用主从模式架构,支持多从设备应用,一般只支持单主设备。 利用34条线完成两个芯片之间的双工高速通信。两条数据线用于收发数据,一条时钟线用于同步,一条作为从机选择。 时钟由主设备控制,当主机发送一字节数据(通过主出从入MOSI引脚)的同时,从机返回一字节数据(通过主入从出MISO引脚)。 总线上允许连接多个设备,在同一时刻只允许一个主机操作总线,并且同时只能与一个从机通信。主机控制数据的传输过程。 目前应用中的数据速率可达Mbps级。,SPI总线可在软件的控制下构成各种简单的或复杂的系统: 1个主MCU和几个从MCU 几个从MCU相互连接构成多主机系统(分布式系统) 1个主MCU和1个或几个从I/O设备 ,SPI典型结构如下:,SPI总线结构,SPI工作模式,主机模式: 当器件作为主机时,使用一个IO引脚拉低相应从机

      2、的选择引脚(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中可以通过软件设置高位在前或低位在前。 下面以位数据的传输为例,看一下种不同数据传输格式的时序。首先

      3、介绍两个概念: 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)缺乏流控制机制,无论主器件还是从器件均

      4、不对消息进行确认,主器件无法知道从器件是否繁忙。因此,需要软件弥补,增加了软件开发工作量。 (2)没有多主器件协议,必须采用很复杂的软件和外部逻辑来实现多主器件架构。,通用串行通信接口(USCI)模块,通用串行通信接口(USCI)模块支持多种串行通信模式。不同的USCI 模块支持不同的模式 USCI_Ax 模块支持: UART 模式 IrDA 通信的脉冲整形 LIN 通信的自动波特率检测 SPI 模式 USCI_Bx 模块支持: I2C 模式 SPI 模式,MSP430模块特点,MSP430的SPI模块有如下特点: 支持3线或4线SPI操作 支持7位或8位数据格式 接收和发送有单独的移位寄存器 接收和发送有独立的缓冲器 接收和发送有独立的中断能力 时钟的极性和相位可编程 主模式的时钟频率可编程 传输速率可编程 支持连续收发操作 支持主从方式,主模式,MSP430 USCI作为主机、外围设备作为从机 图,从模式,外围设备作为主机,MSP430 USCI作为从机 图,UCSI串行时序,同步串行通信时序,UCMSB=1,SPI模式下可用的USCI寄存器,USCI_Ax和USCI_Bx都有SP

      5、I模块,下面以USCI_Bx为例,介绍相关寄存器,应用示例,SPI主机与从机通过三线SPI接口通信,主机发送数据给从机,同时又接收从机发来的数据,发送数据从0x01开始递增,从机接收到数据,就立马发出,主机接到这个数据,进入中断如果发送和接收数据相同,则点亮LED灯,否则熄灭。,程序流程图,主机端口初始化,P8SEL |= BIT4+BIT5+BIT6; P8DIR |= BIT4+BIT5+BIT6; P1DIR |= BIT0 + BIT1; P1SEL |= BIT0 + BIT1;,选择P1.1P1.0端口为输出,选择P1.1P1.0端口为输出,选择P8.4P8.6为外设功能,选择P8.4P8.6端口方向为输出,UCB1CTL1 |= UCSWRST; UCB1CTL0|=UCMST+UCSYNC+UCCKPL+UCMSB; UCB1CTL1 |= UCSSEL_2; UCB1BR0 = 0x02; UCB1BR1 = 0; UCB1IE |= UCRXIE; UCB1CTL1 &= UCSWRST,主机SPI模块初始化,选择SMCLK,配置波特率,打开SPI中断,USCI_B

      6、x复位释放,主机其他配置,MST_Data = 0x01; SLV_Data = 0x00; P1OUT |= BIT1; _delay_cycles(100); while (!(UC B1IFG,从机选择引脚,延时,判断发送缓冲是否为空,如果为空, 标志位置位,则说明上个数据未发送完毕, 等待直到数据发送完毕,发送第一个字符,主机接收中断,#pragma vector=USCI_ B1_VECTOR _interrupt void USCI_ B1_ISR(void) switch(_even_in_range(UC B1IV,4) case 0: break; case 2: while (!(UC B1IFG ,判断发送缓冲是否为空,如果为空, 标志位置位,则说明上个数据未发送完毕, 等待直到数据发送完毕,如果接收与发送相同,点亮LED,发送下一个字符,从机端口初始化,P8SEL |= BIT4+BIT5+BIT6; P8DIR |= BIT4+BIT5+BIT6; P1REN |= BIT4; P1OUT |= BIT4; P1IES ,使能P1.4内部电阻,P1.4输出为1

      7、,选择P8.4P8.6为外设功能,选择P8.4P8.6端口方向为输出,P1.4上升沿捕获,进入中断,P1.4 IFG 清零,P1.4中断使能,主机SPI模块初始化,UCB1CTL1 |= UCSWRST; UCB1CTL0 |= UCSYNC+UCCKPL+UCMSB; UCB1CTL1 &= UCSWRST,USCI_Bx复位释放,从机接收中断,#pragma vector=USCI_ B1_VECTOR _interrupt void USCI_ B1_ISR(void) switch(_even_in_range(UC B1IV,4) case 0: break; case 2: while (!(UC B1IFG ,判断发送缓冲是否为空,如果为空, 标志位置位,则说明上个数据未发送完毕, 等待直到数据发送完毕,发送下一个字符,从机接收中断,#pragma vector=USCI_ B1_VECTOR _interrupt void USCI_ B1_ISR(void) switch(_even_in_range(UC B1IV,4) case 0: break; case 2:

      8、 while (!(UC B1IFG ,判断发送缓冲是否为空,如果为空, 标志位置位,则说明上个数据未发送完毕, 等待直到数据发送完毕,发送下一个字符,从机主机开始工作提示中断,#pragma vector=PORT1_VECTOR _interrupt void Port_1(void) P1IFG ,USCI_Bx复位释放,打开SPI中断,主机端口初始化库,/ Set P1.1 for slave reset GPIO_setOutputHighOnPin(_MSP430_BASEADDRESS_PORT1_R_, GPIO_PORT_P1, GPIO_PIN1 ); / Set P1.0 to output direction GPIO_setAsOutputPin(_MSP430_BASEADDRESS_PORT1_R_, GPIO_PORT_P1, GPIO_PIN0 ); / P3.5,4,0 option select GPIO_setAsPeripheralModuleFunctionInputPin(_MSP430_BASEADDRESS_PORT8_R_, GPIO

      9、_PORT_P8, GPIO_PIN4 + GPIO_PIN5 + GPIO_PIN6 );,主机SPI模块初始化库,/ Initialize Master returnValue = 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; / Enable SPI module SPI_enable(_MSP430_BASEADDRESS_USCI_B1_); / Enable Receive interrupt SPI_enableInterrupt(_MSP430_BASEADDRESS_USCI_B1_, SPI_RECEIVE_INTERRUPT);,主机其他配置库,/ Now with SPI signals initialized, reset slave GPIO_setOutputLowOnPin( _MSP430_BASEADDRESS_PORT1_R_, GPIO_PORT_P1, GPIO_PIN1 ); / LED On GPIO_setOutputHighOnPin( _MSP430_BASEADDRESS_PORT1_R_, GPIO_PORT_P1, GPIO_PIN0 ); / Wait for slave to initialize _delay_cycles(100); / Initialize data values transmitData = 0x00; /

      《串行外设接口(spi)协议芯片资料》由会员F****n分享,可在线阅读,更多相关《串行外设接口(spi)协议芯片资料》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结 2022年家长会心得体会集合15篇
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.