没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
21页
STM32应用程序虚拟增加串行通信外设的数量 经常发生的情况是当并不是每个通道都需要全部 (或特定)功能时,通信流及其控制可极大简化 (例如仅在特定的模式或时隙需要通信、通信速度可以更低、并不是所有信号都严格需要正确的时间、可接受简化的协议或流程)。在这些特定情况下,如果有方法能用当前硬件补充缺失的信道,避免移植,则用户可真正受益。
资源推荐
资源详情
资源评论
2016 年 8 月 DocID027483 Rev 1 [English Rev 1] 1/21
1
AN4655
应用笔记
在 STM32 应用中虚拟增加串行通信外设数目
前言
应用工程师经常面临的问题是,微控制器在功能和性能上满足应用的所有其它要求,只是串
行通信外设数量有限。有时,他们只能替换为具有充分数量通信外设的高级微控制器以规避
此问题。这种移植可带来额外的 (经常是用不到的)性能和功能,在多数情况下应用都不需
要或用不到,但却增加了成本和 PCB 复杂度。
经常发生的情况是当并不是每个通道都需要全部 (或特定)功能时,通信流及其控制可极大
简化 (例如仅在特定的模式或时隙需要通信、通信速度可以更低、并不是所有信号都严格需
要正确的时间、可接受简化的协议或流程)。在这些特定情况下,如果有方法能用当前硬件
补充缺失的信道,避免移植,则用户可真正受益。
另一方面,要在复用通道上与所有原始硬件特性完全兼容,代码和性能方面的代价太大,也
很难实现。通常,会倾向于放弃一些特定需要,以达到简化复用外设通道概念的目的。这
里,关键一点是识别那些应用中不需要的、可使用低工作量、降低性能的方法变更的通道。
本应用笔记提供了所述问题的基本概述,可帮助应用工程师在实现缺失的通信通道时,发现
可能的替代方法。因为所讨论的外设存在于所有该类产品,所以它适用于所有 STM32 微控
制器。
在下面的参考文档中有更多的信息和样例,说明了实际的用例和解决方案:
• TN0072,软件工具链和 STM32 特性;
• UM0892, STM32 ST-LINK 工具软件说明;
• AN4457, STM32F4 全双工 UART 模拟。
最后引用的文档与相同主题的其它应用笔记共同开发,用户可在 www.st.com 上查看。
www.st.com
1
目录 AN4655
2/21 DocID027483 Rev 1 [English Rev 1]
目录
1 硬件方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2 软件方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.1 兼容因子 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.1.1 功能性 (与时序无关) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.1.2 时序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.1.3 HW 接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.1.4 API 接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2 可用的方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2.1 位模拟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2.2 硬件和软件组合控制 GPIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3 通用方法论 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3.1 时钟信号方面,主从的对比 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3.2 中断和 DMA vs. 位模拟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.4 软件模拟的外设方面 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11
2.4.1 SPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.4.2 UART . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.4.3 I2C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.5 示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.5.1 基于硬件和软件组合控制 GPIO 的 UART
双工通道 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.5.2 SPI 位模拟序列 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.5.3 I2C 主设备位模拟序列 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3 结论 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4 版本历史 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2
DocID027483 Rev 1 [English Rev 1] 3/21
AN4655 表格索引
3
表格索引
表 1. 文档版本历史 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
表 2. 中文文档版本历史 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3
图片索引 AN4655
4/21 DocID027483 Rev 1 [English Rev 1]
图片索引
图 1. 重映射选项原理. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
图 2. 使用走线接口 (RI)专用组时的复用原理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
图 3. 基于定时器捕获事件的 UART 双工通道 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4
DocID027483 Rev 1 [English Rev 1] 5/21
AN4655 硬件方法
20
1 硬件方法
如果不能接受增加原始硬件外设 (例如,增加专用通信协处理器单元等外部组件),那么可
使用下述基本方法补偿外设数量的限制:
1. 使用内部专用外设实例的重映射选项,更改不同端口处的输入和输出,以此建立微控制
器与不同通道的临时连接 (用户可在数据手册的引脚说明中,针对每种产品及其实现的
外设找到复用功能能力的信息)。
2. 使用复用逻辑,将多个通信通道复用为一个通信端口。
3. 使用 SWO 特性。
前两种方法提供了除专用时隙之外所选通道的服务,仅当它发生时不严格要求复用通道的同
时操作和永久监测才可使用,例如:
• 服务通道;
• 偶尔与远程设备通信;
• 监测数值变化缓慢的传感器;
• 用于周期性备份的通道。
当从设备的活动等待主请求,或与从设备的通信可丢失,当主设备重新连至服务通道时可容
易地重新同步时 (监听并通话),这些方法适合于主设备通信。当从设备和主设备之间提供
额外控制信号来告知从设备连接建立时 (例如,当从设备能 / 不能在通道工作时的片选或通
道就绪 / 繁忙信号),它也可用于从设备侧。
总之,当复用功能重新映射或复用到另一通道时,用户应注意与外设实例总线信号相关的
GPIO 处于非活动状态。正确设置可确保空闲条件的模拟,防止阻塞于当前未选择的或未用
于通信的通道。可通过正确配置 GPIO 端口寄存器达到这一目的,增加外部组件 (上拉 / 下
拉电阻)也有部分作用。请注意,当从端口移除 (重映射)复用功能时, GPIO 逻辑一般会
覆盖相关引脚的控制,用户必须防止这些临时冻结通道上的任何总线虚假状态检测。
对于复用情况,如可用于产品,用户可使用路由接口专用组处的 I/O 开关专用控制。用户必
须确保单个组内的适当开关组合 (配对)及时关闭,以令信号通过需要的路径。用户必须为
这种开关指定额外的 IO,它们不能用于其它用途,而且还会有额外的 PCB 走线。
该原理示于
图
1 和
图
2 中。
5
剩余20页未读,继续阅读
资源评论
小正太浩二
- 粉丝: 196
- 资源: 5920
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 后端开发框架探索与选择
- Python课设-学生信息管理系统
- 广东省2021年普通高考音乐表演-器乐类总分分数段统计表(含本、专科层次加分)
- ubuntu20.04安装教程.md
- 广东省2021年普通高考音乐表演-声乐类总分分数段统计表(含本、专科层次加分)
- 广东省2021年普通高考音乐学类总分分数段统计表(含本、专科层次加分)
- 广东省2021年普通高考舞蹈类总分分数段统计表(含本、专科层次加分)
- Python教程-快速入门基础必看课程10-函数基础
- tensorflow-2.9.2-cp39-cp39-win-amd64.whl
- tensorflow-2.9.2-cp37-cp37m-win-amd64.whl
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功