为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

usart跟usci区别

2012-11-18 38页 pdf 394KB 54阅读

用户头像

is_659026

暂无简介

举报
usart跟usci区别 © 2005 Texas Instruments Inc、Slide 1 新型的高性能双通信模块—USCI Thomas Kot 德州仪器MSP430资深市场工程师 thomas-kot@ti.com © 2005 Texas Instruments Inc、Slide 2 会议议程 • USCI 介绍 • UART/LinBUS 异步模式 • SPI 同步模式 • I2C 同步模式 • 选择正确的总线 • 设备选择 • 模块的同时工作 © 2005 Texas Instruments Inc、Slide...
usart跟usci区别
© 2005 Texas Instruments Inc、Slide 1 新型的高性能双通信模块—USCI Thomas Kot 德州仪器MSP430资深市场工程师 thomas-kot@ti.com © 2005 Texas Instruments Inc、Slide 2 会议议程 • USCI 介绍 • UART/LinBUS 异步模式 • SPI 同步模式 • I2C 同步模式 • 选择正确的总线 • 设备选择 • 模块的同时工作 © 2005 Texas Instruments Inc、Slide 3 通用串行通信 I/F • 超低功耗 LPMx 工作 • 2 个独立块 • 双缓存 TX/RX • RX 干扰抑制 • 波特率发生器 灵活的时钟源 自动检测 生成 • 启用 DMA • 中断驱动 © 2005 Texas Instruments Inc、Slide 4 特性概览 • 新型 MSP430 串行接口 • 两个相互独立的通信块 • 异步通信模式 UART 标准与多处理器 带自动波特率检测的 UART(LIN 支持) IrDA(SIR——低红外,最大 115k 波特) LPMx 唤醒 • 同步通信模式 SPI(主从模式,3 或 4 线) I2C(主从模式) LPMx 工作 © 2005 Texas Instruments Inc、Slide 5 USCI 与 USART 的差异 USART • UART 仅一个调制器 N/A N/A N/A • SPI 仅提供一个 SPI • I2C 复杂特性 USCI • UART 两个调制器可支持 n/16 计时 自动波特率检测功能:LIN 集成式 IrDA 编码器与解码器 同步 USCI_A/USCI_B • SPI 双 SPI:USCI_A 与 B 各一个 • I2C 经简化,方便易用 © 2005 Texas Instruments Inc、Slide 6 USCI_A USCI_A Baudrate Generator IrDA Decoder SPI UART Transmit Shift Register Transmit Buffer UC0TXBUF IrDA Encoder Receive Buffer UC0RXBUF Receive Shift Register UCA0TXD UCA0RXD • 支持 IrDA/LIN 或 SPI 的 UART • 双缓存 TX/RX • 可自动检测波特率的波特率发生器 © 2005 Texas Instruments Inc、Slide 7 USCI_B USCI_B I2C Bitclock Generator SPI Transmit Shift Register Transmit Buffer UC1TXBUF I2C Bus Interface Receive Buffer UC1RXBUF Receive Shift Register UCB0SIMO UCB0SOMI • I2C 主/从,最大 400kHz,或 SPI • 比特时钟发生器 • 双缓存 TX/RX © 2005 Texas Instruments Inc、Slide 8 USCI_A UART 模式 Receiver Shift Register Transmit Shift Register RXBUF TXBUF Baud-Rate Generator Auto baud rate detect Start Edge Clock RXD TXD • 超低功耗 • 灵活 7 或 8 位数据 奇、偶或非奇偶 LSB 或 MSB 优先 干扰抑制 • 通信 IrDA 多处理器 自动波特 (S/W LIN) •中断驱动 故障检测 TX/RX © 2005 Texas Instruments Inc、Slide 9 UART 波特率生成器 • 低功耗低频率模式 可使用较慢的时钟 n/8 调制器 最大波特率 1/3 BRCLK 大多数情况 3x BITCLK • 16x 过采样模式 准标准 UART、LIN、IrDA n/16 调制器 最大波特率 1/16 BRCLK 大多数情况 16x BITCLK • 灵活的时钟源 外部 UCA0CLK 输入 ACLK SMCLK © 2005 Texas Instruments Inc、Slide 10 32KHz XTAL实现 UART 9600 波特率通信 9600 波特率: BRCLK = ACLK = 32768 Hz Baud = 32768/9600 = 3.41 BR1 | BR0 | MCTL = 00h 03h 06h: modulation wraps around after 8 bits BITCLK = ACLK/3 /4 /3 /4 /3 /4 /3 /3 /3 /4 . . . D0 D1 D2 D3 D4 D5 D6 D7ST ST © 2005 Texas Instruments Inc、Slide 11 过采样模式波特率 • 双调制器 • 用 BITCLK16 进行 RX 采样 • BITCLK16 支持 IrDA TX 脉 冲发生 • 准标准 UART、IrDA & LIN 15-Bit Prescaler/Divider BR0 BITCLK16 BR1 87 BRFx 16 BRCLK /16 2nd Modulator BITCLK BRSx 8 1st Modulator LSB © 2005 Texas Instruments Inc、Slide 12 UART 超低功耗工作 • 从 LPMx 唤醒 • 如果 LPMx 关闭 BRCLK 源,则 RX 起始沿或自动写入 TXBUF 可打开内部 BRCLK 源 • BRCLK 源在 LPMx 中的 TX 或 RX 终点后关闭 • 无需软件处理 • 瞬时开启的时钟避免了丢字符的损失 • LPM3 模式中,SMCLK 可支持高波特率! LPMx 操作为什么重要? © 2005 Texas Instruments Inc、Slide 13 演示:在起始沿上唤醒 LPM3 • LPM3 中115.2 kbps 采用 DCO/FLL 作为时钟源 SetupUSCIA mov.b #UCSWRST,&UC0CTL1 ; module reset bis.b #UCSSEL1,&UC0CTL1 ; SMCLK mov.b #0x09,&UC0BR0 ; 115k at 1048576Hz mov.b #0x00,&UC0BR1 ; mov.b #0x08,&UC0MCTL ; modulation values bic.b #UCSWRST, &UC0CTL1 ; state m/c start bis.b #UC0RXIE, &IE2 ; enable RXinterrupt Mainloop bis.b #LPM3+GIE,SR ; enter LPM3, enable ; interrupts USCI01RX_ISR //Function: Echo received character bit.b #UC0TXIFG,&IFG2 ; TX buffer ready? jz TX0 ; jump if not ready mov.b &UC0RXBUF,&UC0TXBUF ; RX -> TX TX0 reti ; SetupUSCIA mov.b #UCSWRST,&UC0CTL1 ; module reset bis.b #UCSSEL1,&UC0CTL1 ; SMCLK mov.b #0x09,&UC0BR0 ; 115k at 1048576Hz mov.b #0x00,&UC0BR1 ; mov.b #0x08,&UC0MCTL ; modulation values bic.b #UCSWRST, &UC0CTL1 ; state m/c start bis.b #UC0RXIE, &IE2 ; enable RXinterrupt Mainloop bis.b #LPM3+GIE,SR ; enter LPM3, enable ; interrupts USCI01RX_ISR //Function: Echo received character bit.b #UC0TXIFG,&IFG2 ; TX buffer ready? jz TX0 ; jump if not ready mov.b &UC0RXBUF,&UC0TXBUF ; RX -> TX TX0 reti ; © 2005 Texas Instruments Inc、Slide 14 UART 通信协议 [2nd Stop Bit] [Parity Bit] [Address Bit] [8th Data Bit] ST D0 D6 D7 AD PA SP SP • 支持四种通信协议 标准 闲置线路多处理器 地址位多处理器 LIN 的自动波特率检测 • 标准协议 带故障检测的标准 UART 通信 © 2005 Texas Instruments Inc、Slide 15 UART 错误检测 • 干扰抑制器滤掉 RX bit level < de-glitch time • 自动错误检测 帧错误 FE 如停止位在接收帧中缺失,则设置 FE =1 奇偶校验错误 PE 如接收帧中存在奇偶不匹配,则设置 PE=1 接收溢出错误 OE 如 RXBUF 被覆盖,则设置 OE =1 中断条件 BRK 如接收帧中所有位为 0,则设置 BRK=1, 如对 BRKIE 与 RXIFG 进行设置=1 ,则 BRK=1 • UART 经编程后,仅向 RXBUF 传输无错误的字符 © 2005 Texas Instruments Inc、Slide 16 UART 闲置线路多处理器 • 闲置线路多处理器协议 如停止位后出现连续 10 个周期的标志,则检测到闲置。 闲置后的第一个字符是地址 可对 UART进行编程,仅接收地址字符 Idle periods of 10 bits or more Address DataST SP ST SP DataST SP UC0TXD/UC0RXD A D D A D A D D D © 2005 Texas Instruments Inc、Slide 17 UART 地址位多处理器 0Address DataST SP ST SP DataST SP01 Characters with AD bit =1 are Address bytes Characters with AD bit =0 are Data bytes Idle periods are of no significance A D D A D A D D D UC0TXD/UC0RXD • 地址位多处理器协议 接收字符中的额外位状态标记为地址字符 可对 UART 进行编程,仅接收地址字符 © 2005 Texas Instruments Inc、Slide 18 UART 自动波特率检测 • 自动波特率检测协议 波特率是由有效的 SYNC 计算出来的 自动波特率值存储在 BR1、BR0 和调制器位中 硬件BREAK 超时检测 可编程的DELIMITER时间 © 2005 Texas Instruments Inc、Slide 19 UART LIN 支持 • 汽车本地互连网络 • UART 自动波特率检测 • LIN 模式 UART = 8 bit、LSB 优先、无奇偶位、1 停止位 • LIN 设备驱动程序通过软件实施 • 需要外部 LIN 总线驱动 • 支持 LIN 从模式 根据接收到的 LIN break和synch 场‘0x55’ 进行break synch检测和自动波特 率测量 © 2005 Texas Instruments Inc、Slide 20 支持 LIN 主模式 • 支持LIN 主模式 自动break-synch生成 • 软件序列传输一个 LIN 主模式要求的中断同步字段 1. 选择自动波特率检测模式且 UCTXBRK = 1 2. DELIMx 指定break delimiter的长度,默认为 1 位周期 3. 检查 TXBUF 是否准备就绪,并向 TXBUF 写入 LIN synch ‘0x55h’ • 传输13 位间隔场后,然后是break delimiter和synch场 UCTXBRK 在同步载入 TX 移位寄存器后自动重设 写入 TXBUF 的数据正常传输 © 2005 Texas Instruments Inc、Slide 21 UART IrDA 支持 • 集成 IrDA 编码器和解码器 • 直接连接至外部 IR 模拟电路 • 32KHz 频率可产生 9.6kbps • 接受脉冲过滤的数字滤波级 • 支持 IrDA 标准 3/16 位周期 脉冲 • IrDA 协议栈由软件实施 UART IR Transmit Formatter IR Receive Decoder UART CLK TX RX © 2005 Texas Instruments Inc、Slide 22 IrDA 编码器 • 可编程的发射机脉冲长度 • 过采样波特率发生器可选择 IrDA 标准 3/16 位长度 © 2005 Texas Instruments Inc、Slide 23 IrDA 解码器 • 可编程的高或低脉冲检测能支持两种类型的 IrDA 收发器 • 可编程的接收脉冲长度滤波器,增强了抗干扰的能力 • 上例演示了检测低脉冲的情况 © 2005 Texas Instruments Inc、Slide 24 USCI_A & USCI_B SPI 模式 Receive Shift Register Transmit Shift Register RXBUF TXBUF Master Bit Clock Generator 16-Bit Prescaler BR1,BR0 BRCLK SOMI SIMO CLK Slave Slave • 灵活的接口 3 或 4 引脚 SPI 7 或 8 位数据长度 主或从 LSB 或 MSB 优先 • 软件可配置的时钟相位和极 性 • 可编程的 SPI 主时钟 • 双缓存 TX/RX • 中断驱动 TX/RX • 可启用 DMA • LPMx 操作 © 2005 Texas Instruments Inc、Slide 25 SPI 连接 • 3 线模式支持主从模式 • 4 线主模式STE 防止与其他主设备发生冲突 • 4 线从设备中,TX 及 RX 用 STE 进行外部控制 © 2005 Texas Instruments Inc、Slide 26 USCI SPI 中断处理 • TX & RX ISR 建议流程 • USCI_A & USCI_B 共享 TX 向量和 RX 向量 • 软件检测 ISR 是否响应正确的事件 © 2005 Texas Instruments Inc、Slide 27 USCI_B I2C 模式 UCBxSCL UCBxSDA SCL SDA USCI I2C Device A • 超低功耗 LPMx 从接收器 START 检测 LPM4 中的从操作 • Philips 规范 2.1 版 7 和 10 位地址 支持多个主设备 从模式 高达 400kbps • 中断驱动 无应答 判优丢失 启动/停止条件 TX/RX I2C 方块示意图 • 集成前置分频器 (pre-scaler) 的比特时钟发生器 • 灵活的时钟选择 • 开漏输出,符合 I2C 标准 • 从LPMx 返回后自动工作 © 2005 Texas Instruments Inc、Slide 28 © 2005 Texas Instruments Inc、Slide 29 I2C 状态的中断处理 • I2C工作状态的辨别标志 ALIFG 仲裁丢失标志 NACKIFG 未接收到应答的标志 STTIFG 从模式启动条件的标志 STPIFG 从模式停止条件的标志 © 2005 Texas Instruments Inc、Slide 30 I2C 数据中断处理 • I2C传输标记 UCBxTXBUF 为空时 UCBxTXIFG置位 • I2C 接收标记 UCBxRXBUF 接收到字符UCBxRXIFG 置位 TX ISR USCI_A TXIFG ? I2C RXIFG? USCI_A TX ISR Write TXBUF Return I2C RX ISR Return I2C TXIFG? I2C TX ISR Return Return YES NO YES YES NO NO © 2005 Texas Instruments Inc、Slide 31 USCI 中断 • USCI_A & USCI_B 共享 TX & RX 中断矢量 • USCI_A flags UART – TXIFG、RXIFG SPI – TXIFG、RXIFG • USCI_B 标志 SPI – TXIFG、RXIFG I2C 状态 – ALIFG、NACKIFG、 STTIFG、STPIFG I2C 数据 – TXIFG、RXIFG © 2005 Texas Instruments Inc、Slide 32 常见的串行总线选项 • 异步 UART 半双工或全双工 最大波特率达 BRCLK/3 是否要求无线?考虑到 IrDA 网络化异步?考虑到 LIN • 高速通信 SPI 模式 根据所选择的设备系列,可实施 4 或 8MHz 主模式 根据所选择的设备系列,可实施 8 或 16MHz 从模式 自然全双工增加吞吐量 • I2C 环境 符合 Philips v2.1 标准 最大支持 400kHz 的高速 主/从操作 支持多主设备环境 © 2005 Texas Instruments Inc、Slide 33 未来的 USCI 设备 • USCI_A = UART、IrDA、LIN 支持、SPI • USCI_B = SPI、I2C • USCI_C = UART、SPI © 2005 Texas Instruments Inc、Slide 34 演示:同步工作的 USCI_A/USCI_B USCI_A UART USCI_B SPI Hyperterminal 115.2kbps echo TLV5619 DAC 3MHz master © 2005 Texas Instruments Inc、Slide 35 演示:USCI 配置 SetupUSCIA mov.b #UCSWRST,&UC0CTL1 ; state machine reset bis.b #UCSSEL1,&UC0CTL1 ; SMCLK mov.b #0x34,&UC0BR0 ; 115k at 6029312Hz mov.b #0x00,&UC0BR1 ; mov.b #0x20,&UC0MCTL ; modulation values bic.b #UCSWRST,&UC0CTL1 ; state machine start SetupUSCIB mov.b #SWRST,&UC1CTL1 ; state machine reset mov.b #UCCKPL+UCCKPH+UCMSB+UCMST+UCSYNC,&UC1CTL0 ; SPI-M,MSB,3-pin,CK- mov.b #UCSSEL1,&UC1CTL1 ; SMCLK mov.b #0x02,&UC1BR0 ; SMCLK/2 mov.b #0x00,&UC1BR1 ; bic.b #SWRST,&UC1CTL1 ; state machine start bis.b #UC0RXIE+UC1TXIE,&IE2; enable RX/TX int. SetupUSCIA mov.b #UCSWRST,&UC0CTL1 ; state machine reset bis.b #UCSSEL1,&UC0CTL1 ; SMCLK mov.b #0x34,&UC0BR0 ; 115k at 6029312Hz mov.b #0x00,&UC0BR1 ; mov.b #0x20,&UC0MCTL ; modulation values bic.b #UCSWRST,&UC0CTL1 ; state machine start SetupUSCIB mov.b #SWRST,&UC1CTL1 ; state machine reset mov.b #UCCKPL+UCCKPH+UCMSB+UCMST+UCSYNC,&UC1CTL0 ; SPI-M,MSB,3-pin,CK- mov.b #UCSSEL1,&UC1CTL1 ; SMCLK mov.b #0x02,&UC1BR0 ; SMCLK/2 mov.b #0x00,&UC1BR1 ; bic.b #SWRST,&UC1CTL1 ; state machine start bis.b #UC0RXIE+UC1TXIE,&IE2; enable RX/TX int. © 2005 Texas Instruments Inc、Slide 36 演示:USCI 中断子例程 USCIARX_ISR// Echo back RXed character, TXBUF ready? TX0 bit.b #UC0TXIFG,&IFG2 ; TXBUF ready? jz TX0 ; Jump if not ready mov.b &UC0RXBUF,&UC0TXBUF ; RX -> TX reti ; USCIBTX_ISR// External DAC Sine table update bic.b #0x01,&P3OUT ; FS reset L1 bit.b #UC1TXIFG,&IFG2 ; USCI Transmit ready? jnc L1 ; mov.b Sin_tab(R6),&UC1TXBUF; load from sine table incd.w R6 ; and.w #0x3E,R6 ; only 32 words L2 bit.b #UCBUSY,&UC1STAT ; USCI Transmit done? jnz L2 ; bis.b #0x01,&P3OUT ; FS set reti ; USCIARX_ISR// Echo back RXed character, TXBUF ready? TX0 bit.b #UC0TXIFG,&IFG2 ; TXBUF ready? jz TX0 ; Jump if not ready mov.b &UC0RXBUF,&UC0TXBUF ; RX -> TX reti ; USCIBTX_ISR// External DAC Sine table update bic.b #0x01,&P3OUT ; FS reset L1 bit.b #UC1TXIFG,&IFG2 ; USCI Transmit ready? jnc L1 ; mov.b Sin_tab(R6),&UC1TXBUF; load from sine table incd.w R6 ; and.w #0x3E,R6 ; only 32 words L2 bit.b #UCBUSY,&UC1STAT ; USCI Transmit done? jnz L2 ; bis.b #0x01,&P3OUT ; FS set reti ; © 2005 Texas Instruments Inc、Slide 37 为什么 USCI 不能发挥作用? • 正确的 USCI_A 配置步骤 1. 置位 SWRST 2. 配置 USCI 寄存器 3. 清除 SWRST 4. 需要时启用中断 SetupUSCIA mov.b #UCSWRST,&UC0CTL1 ; module reset bis.b #UCSSEL1,&UC0CTL1 ; SMCLK mov.b #0x09,&UC0BR0 ; 115k at 1048576Hz mov.b #0x00,&UC0BR1 ; mov.b #0x08,&UC0MCTL ; modulation values bic.b #UCSWRST, &UC0CTL1 ; state m/c start bis.b #UC0RXIE, &IE2 ; enable RXinterrupt SetupUSCIA mov.b #UCSWRST,&UC0CTL1 ; module reset bis.b #UCSSEL1,&UC0CTL1 ; SMCLK mov.b #0x09,&UC0BR0 ; 115k at 1048576Hz mov.b #0x00,&UC0BR1 ; mov.b #0x08,&UC0MCTL ; modulation values bic.b #UCSWRST, &UC0CTL1 ; state m/c start bis.b #UC0RXIE, &IE2 ; enable RXinterrupt © 2005 Texas Instruments Inc、Slide 38 USCI:以一变应千变 • USCI 是 MSP430新标准的串行接口 • 两个相互独立的块可同时工作 • 所有模式都能从任意 LPMx 进行操作 • USCI 由中断驱动 • USCI 可启用 DMA • USCI_A 支持 UART、IrDA、自动波特 LinBUS • UART 集成了波特率发生器和调制器,可支持部分比特率 • USCI_B 支持 SPI、I2C 新型的高性能双通信模块—USCI 会议议程 通用串行通信 I/F 特性概览 USCI 与 USART 的差异 USCI_A USCI_B USCI_A UART 模式 UART 波特率生成器 32KHz XTAL实现 UART 9600 波特率通信 过采样模式波特率 UART 超低功耗工作 演示:在起始沿上唤醒 LPM3 UART 通信协议 UART 错误检测 UART 闲置线路多处理器 UART 地址位多处理器 UART 自动波特率检测 UART LIN 支持 支持 LIN 主模式 UART IrDA 支持 IrDA 编码器 IrDA 解码器 USCI_A & USCI_B SPI 模式 SPI 连接 USCI SPI 中断处理 USCI_B I2C 模式 I2C 方块示意图 I2C 状态的中断处理 I2C 数据中断处理 USCI 中断 常见的串行总线选项 未来的 USCI 设备 演示:同步工作的 USCI_A/USCI_B 演示:USCI 配置 演示:USCI 中断子例程 为什么 USCI 不能发挥作用? USCI:以一变应千变
/
本文档为【usart跟usci区别】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索