资源预览内容
第1页 / 共12页
第2页 / 共12页
第3页 / 共12页
第4页 / 共12页
第5页 / 共12页
第6页 / 共12页
第7页 / 共12页
第8页 / 共12页
第9页 / 共12页
第10页 / 共12页
亲,该文档总共12页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
2010 年 01 月文档 ID 16312 第 1 版1/12AN3070 应用笔记应用笔记 管理驱动器使能信号以使用 STM32的 USART 进行 RS-485 和 IO-Link 通信前言前言RS-485 和 IO-Link 为半双工通信协议,它们为工业网络中物理层的实施提供了便捷的途径。STM32F10x 支持多达 5 个 UART 接口并可实现快速 DMA 传输和低中断延迟,符合 RS-485 和 IO-Link 时序规范。本应用笔记旨在提供两种方法测量 DE 信号(驱动器使能)的切换时序,并管理该信号在 RS-485 和 IO-Link 中的主器件发送。本应用笔记分为三部分:首先介绍 DE 信号时序之所以重要的原因然后说明两种管理 DE 信号的方法最后给出不同的 DE 信号切换时间测量结果www.st.com目录目录AN30702/12文档 ID 16312 第 1 版目录目录1DE 信号时序限制信号时序限制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52DE 信号管理方法说明信号管理方法说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.1使用 DMA 中断的方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.2使用 USART 中断的方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63使用两种方法测量使用两种方法测量 DE 信号切换时间信号切换时间 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83.1测量 DE 信号切换时间 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83.1.1使用 DMA 中断方法测量 DE 信号切换时间 . . . . . . . . . . . . . . . . . . . . . . . 93.1.2使用 USART 中断方法测量 DE 信号切换时间 . . . . . . . . . . . . . . . . . . . . . 94结论结论 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105版本历史版本历史 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11文档 ID 16312 第 1 版3/12AN3070表格索引表格索引3表格索引表格索引表 1.选择 72 MHz 时的 DE 切换时序测量结果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 表 2.选择 24 MHz 时的 DE 切换时序测量结果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 表 3.选择 72 MHz 时的 DE 切换时序测量结果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 表 4.选择 24 MHz 时的 DE 切换时序测量结果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 表 5.文档版本历史 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11图片索引图片索引AN30704/12文档 ID 16312 第 1 版图片索引图片索引图 1.DE 时序限制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 图 2.使用 DMA 中断方法控制 DE 信号. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 图 3.使用 USART 中断方法控制 DE 信号. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 图 4.放大 DE 信号切换周期 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8文档 ID 16312 第 1 版5/12AN3070DE 信号时序限制信号时序限制101 DE 信号时序限制信号时序限制对于 RS-485 和 IO-Link 等串行半双工通信协议而言,主器件需要生成方向信号来控制收发 器 (PHY)。该信号会通知 PHY 必须以发送模式还是以接收模式动作。这种控制的时序特别重要,特别是从发送模式切换到接收模式时,应用必须确保器件在另一 个实体发送数据前已处于接收模式。主器件必须在一个位的时间内释放 Tx/Rx 线路,否则会与从器件的响应发生冲突。因此,在 主器件发送最后一个字节的最后一位后,DE 信号必须在一个位的时间内从高电平切换到低 电平。图图 1.DE 时序限制时序限制主器件应能够确保 DE 信号的时序(由 RS-485 和 IO-Link 规范规定)。通过 GPIO 可管理 DE 信号。请注意,在本应用笔记中,虽然 DE 信号仿真使用的是 GPIO 端口 C 的引脚 6 (PC6),但实 际上可以使用任何 GPIO。?tBITtC/Q ?DE?ai17356DE 信号管理方法说明信号管理方法说明AN30706/12文档 ID 16312 第 1 版2 DE 信号管理方法说明信号管理方法说明本部分将提供两种控制 DE 信号并在 USART 发送和接收模式间进行切换的方法。第一种方法使用两个中断:DMA 的发送完成中断和 USART 的发送完成中断。第二种方法使用两个 USART 中断:发送完成中断和发送缓冲器清空中断。2.1 使用使用 DMA 中断的方法中断的方法在此方法中,DMA 将全程管理数据缓冲器的数据发送。它会将数据缓冲器中的数据持续发送 给 USART 数据寄存器,直到 DMA 计数器的读数为 0。如果发生 DMA 发送完成中断,则使 能 USART 发送完成中断。在此中断中,将 DE 引脚设置为低电平。DE 信号会在使能 DMA 传输前设为高电平。图 2 显示使用 DMA 发送完成中断管理 DE 信号的示例。图图 2.使用使用 DMA 中断方法控制中断方法控制 DE 信号信号2.2 使用使用 USART 中断的方法中断的方法使用 USART 的发送完成中断可以将 DE 引脚变为低电平,从而通知从器件发送响应。另外, 还可使用发送数据寄存器清空中断将此引脚变为高电平,通知从器件主器件即将发送数据。 图 3 显示使用 USART 中断管理 DE 信号的示例。发送第一个字节前应将 DE 引脚拉升为高电平。发送最后一个字节的最后一位后将其变为低 电平。这可以通过在发送最后一个字节时使能 TC 中断来实现。下一次发生发送完成中断时 会将 DE 引脚变为低电平。? ? ? ? ? ? ?文档 ID 16312 第 1 版7/12AN3070DE 信号管理方法说明信号管理方法说明10图图 3.使用使用 USART 中断方法控制中断方法控制 DE 信号信号? ? ? ? ? ? ? ? ? ? ?使用两种方法测量使用两种方法测量 DE 信号切换时间信号切换时间AN30708/12文档 ID 16312 第 1 版3 使用两种方法测量使用两种方法测量 DE 信号切换时间信号切换时间本部分将给出一些使用前面介绍的两种方法测量 DE 时序的结果。要测量的时序是最后一个字节的停止位末尾与 DE 信号的下降沿之间的时间间隔。使用 CPU 时钟周期来度量(参见图 4)。图图 4.放大放大 DE 信号切换周期信号切换周期MCO 引脚 (PA8) 用于输出系统时钟(CPU 时钟),以按 CPU 周期测量 DE 信号切换到低电 平的时间。通过测量一个位的时间内 CPU 时钟周期的数量可以计算出停止位的末尾时刻。本应用笔记提供两个固件示例,分别采用之前介绍的两种方法。两个示例均以相同的顺序 进行说明:将 PC6 变为高电平(DE 信号),从缓冲器发送 4 个字节,然后将 PC6 变为低 电平。用户可通过在 main.c 文件中注释/取消注释以下 define 语句,选择不同的 CPU 频率 (72 MHz 或 24 MHz):#define HCLK_FREQ_72MHz默认情况下选择 72 MHz。3.1 测量测量 DE 信号切换时间信号切换时间此时序取决于不同的因素,如所用的编译器、优化等级或 CPU 频率。示例使用两个编译器进行编译:Keil 4.00 和 IAR 5.40。 它们采用两种优化模式:时序低级优化和高级优化。 发送波特率为 230400 波特(位时间 = 4.34 s),1 个停止位。?文档 ID 16312 第 1 版9/12AN3070使用两种方法测量使用两种方法测量 DE 信号切换时间信号切换时间103.1.1 使用使用 DMA 中断方法测量中断方法测量 DE 信号切换时间信号切换时间表 1 给出使用 DMA 中断方法并选择 72 MHz 时测量的不同时序。表 2 给出使用 DMA 中断方法并
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号