调试嵌入式系统设计中的串行总线 应用指南
声明:您必须遵守我们的协议,如果您下载了该资源行为将被视为对《电天下账号管理规范》全部内容的认可,本网站资源来自原创,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请举报本资源,我们将及时审核处理!
泰克 调试嵌入式系统设计中的串行总线 应用指南.
文本预览
应用指南
调试嵌入式系统设计中的
串行总线
引言
今天,嵌入式系统几乎遍布在人类社会的每个角落。嵌入式系统可以简单定义为属于大型系统或机
器一部分的一种专用计算机系统,其目的是为该系统或机器提供监测和控制服务。典型的嵌入式系
统在开机时会开始运行某些专用应用,直到关闭时才会停止。当前设计和生产的几乎每个电子设备
都是嵌入式系统。嵌入式系统实例包括:
www.tektronix.com/oscilloscopes 1调试嵌入式系统设计中的串行总线
应用指南
■ 电子闹表
■ 自动柜员机
■ 移动电话
■ 计算机打印机
■ 防抱死刹车控制器
■ 微波炉
■ 导弹使用的惯性引导系统
■ DVD播放机
■ 个人数字助理(PDA)
■ 工业自动化和监测使用的
可编程逻辑控制器(PLC)
■ 便携式音乐播放机
■ 可能还包括烤面包机⋯
嵌入式系统可能包含许多不
图1. 逻辑分析仪采集的微控制器的时钟、地址总线、数据总线和控制线。
同类型的设备,包括微处理
器、微控制器、DSP、RAM、
EPROM、FPGA、模数转换器、数模转换器和I/O。这 了嵌入式系统设计人员的常用挑战,及怎样使用MSO/
些设备在传统上一直使用宽并行总线相互通信及与外部 DPO系列- MSO/DPO4000、MSO/DPO3000和MSO/
世界通信。然而今天,嵌入式系统设计中使用的越来越 DPO2000系列示波器中提供的功能迎接这些挑战。
多的构件将用串行总线代替宽并行总线,原因如下:
并行与串行比较
■ 减少了要布线的信号数量,降低了要求的电路板空间
在并行结构中,总线的每个组件都有自己的信号路径。
■ 降低了成本 可能有16条地址线、16条数据线、一条时钟线和各种
■ 降低了功率要求 其它控制信号。通过总线发送的地址或数据值会通过所
■ 减少了封装上的针脚数量 有并行线路同时传送。因此,使用大多数示波器和逻辑
分析仪中的状态触发或码型触发功能触发感兴趣的事件
■ 嵌入式时钟
相对简便。同时,可以简便地一目了然地了解在示波器
■ 差分信令,改善抗噪声能力
或逻辑分析仪显示屏上捕获的数据。例如,在图1中,
■ 采用标准串行接口的器件大量供应 我们使用逻辑分析仪从微控制器中采集时钟线、地址
线、数据线和控制线。通过使用状态触发,我们隔离了
尽管串行总线提供了大量的优势,但它们也给嵌入式系
我们查找的总线。为“解码”总线上发生的情况,我们
统设计人员带来了某些重大挑战,因为它以串行方式传
需要查看每条地址线、数据线和控制线的逻辑状态。
送信息,而不是以并行方式传送信息。本应用指南讨论
在串行总线中,所有这些信息都必须以串行方式在相同
的少数导线(有时是一条)上发送。这意味着一个信号可
2 www.tektronix.com/oscilloscopes调试嵌入式系统设计中的串行总线
应用指南
能包括地址信息、控制信息、
数据信息和时钟信息。例如,
看一下图2中所示的控制器区
域网(CAN)串行信号。
这条消息包含帧头、标识符
(地址)、数据长度代码、数据、
CRC和帧尾及少量其它控制
位。时钟嵌入在数据中,使用
填充位保证接收设备拥有数
量充足的边沿锁定时钟,这使
情况变得进一步复杂化。即使
是经过训练的眼睛,也很难迅
速了解这一消息的内容。现在
想象一下这是一条有问题的
消息,一天只发生一次,您需
要触发采集这条消息。传统示
波器和逻辑分析仪不能有效 图2. CAN总线中采集的一条消息。
处理这类信号。
即使是比较简单的串行标准,
如I2C,与并行协议相比,观
察总线上传输的内容仍要明
显困难得多。
I2C采用分开的时钟线和数据
线,因此至少在本例中,您可
以使用时钟作为参考点。但
是,您仍需要找到消息开头
(数据变低,时钟为高),手动
检查和记下每个时钟上升沿
上的数据值,然后把各个位整
理成消息结构。在长采集中解
码一条消息就会需要几分钟
时间,而您不知道这是不是实
际要找的消息。
图3. I2C总线中采集的一条消息。
www.tektronix.com/oscilloscopes 3调试嵌入式系统设计中的串行总线
应用指南
如果不是,您需要在下一条消
息上重新开始这一麻烦的、容
开始 地址 R/W 确认 数据0 确认0 数据1 确认1 ... 数据N 确认N 结束
易出错的过程。最好只触发查
7或10位 1位 1位 8位 1位 8位 1位 1位 8位 1位
找的消息内容,但多年来示波
器的逻辑分析仪上使用的状态 图4. I2C消息结构。
触发和码型触发并不能发挥作
用。它们是为了考察多条通道中同时发生的问题设计 工作方式
的。为处理串行总线,其触发引擎深度必需有几千种状 I2C的物理两线接口由双向串行时钟(SCL)和数据(SDA)
态(每个bit位一个状态)。即使存在这种触发功能,但为 线组成。I2C支持总线上多个主从设备,但一次只能激
调试嵌入式系统设计中的
串行总线
引言
今天,嵌入式系统几乎遍布在人类社会的每个角落。嵌入式系统可以简单定义为属于大型系统或机
器一部分的一种专用计算机系统,其目的是为该系统或机器提供监测和控制服务。典型的嵌入式系
统在开机时会开始运行某些专用应用,直到关闭时才会停止。当前设计和生产的几乎每个电子设备
都是嵌入式系统。嵌入式系统实例包括:
www.tektronix.com/oscilloscopes 1调试嵌入式系统设计中的串行总线
应用指南
■ 电子闹表
■ 自动柜员机
■ 移动电话
■ 计算机打印机
■ 防抱死刹车控制器
■ 微波炉
■ 导弹使用的惯性引导系统
■ DVD播放机
■ 个人数字助理(PDA)
■ 工业自动化和监测使用的
可编程逻辑控制器(PLC)
■ 便携式音乐播放机
■ 可能还包括烤面包机⋯
嵌入式系统可能包含许多不
图1. 逻辑分析仪采集的微控制器的时钟、地址总线、数据总线和控制线。
同类型的设备,包括微处理
器、微控制器、DSP、RAM、
EPROM、FPGA、模数转换器、数模转换器和I/O。这 了嵌入式系统设计人员的常用挑战,及怎样使用MSO/
些设备在传统上一直使用宽并行总线相互通信及与外部 DPO系列- MSO/DPO4000、MSO/DPO3000和MSO/
世界通信。然而今天,嵌入式系统设计中使用的越来越 DPO2000系列示波器中提供的功能迎接这些挑战。
多的构件将用串行总线代替宽并行总线,原因如下:
并行与串行比较
■ 减少了要布线的信号数量,降低了要求的电路板空间
在并行结构中,总线的每个组件都有自己的信号路径。
■ 降低了成本 可能有16条地址线、16条数据线、一条时钟线和各种
■ 降低了功率要求 其它控制信号。通过总线发送的地址或数据值会通过所
■ 减少了封装上的针脚数量 有并行线路同时传送。因此,使用大多数示波器和逻辑
分析仪中的状态触发或码型触发功能触发感兴趣的事件
■ 嵌入式时钟
相对简便。同时,可以简便地一目了然地了解在示波器
■ 差分信令,改善抗噪声能力
或逻辑分析仪显示屏上捕获的数据。例如,在图1中,
■ 采用标准串行接口的器件大量供应 我们使用逻辑分析仪从微控制器中采集时钟线、地址
线、数据线和控制线。通过使用状态触发,我们隔离了
尽管串行总线提供了大量的优势,但它们也给嵌入式系
我们查找的总线。为“解码”总线上发生的情况,我们
统设计人员带来了某些重大挑战,因为它以串行方式传
需要查看每条地址线、数据线和控制线的逻辑状态。
送信息,而不是以并行方式传送信息。本应用指南讨论
在串行总线中,所有这些信息都必须以串行方式在相同
的少数导线(有时是一条)上发送。这意味着一个信号可
2 www.tektronix.com/oscilloscopes调试嵌入式系统设计中的串行总线
应用指南
能包括地址信息、控制信息、
数据信息和时钟信息。例如,
看一下图2中所示的控制器区
域网(CAN)串行信号。
这条消息包含帧头、标识符
(地址)、数据长度代码、数据、
CRC和帧尾及少量其它控制
位。时钟嵌入在数据中,使用
填充位保证接收设备拥有数
量充足的边沿锁定时钟,这使
情况变得进一步复杂化。即使
是经过训练的眼睛,也很难迅
速了解这一消息的内容。现在
想象一下这是一条有问题的
消息,一天只发生一次,您需
要触发采集这条消息。传统示
波器和逻辑分析仪不能有效 图2. CAN总线中采集的一条消息。
处理这类信号。
即使是比较简单的串行标准,
如I2C,与并行协议相比,观
察总线上传输的内容仍要明
显困难得多。
I2C采用分开的时钟线和数据
线,因此至少在本例中,您可
以使用时钟作为参考点。但
是,您仍需要找到消息开头
(数据变低,时钟为高),手动
检查和记下每个时钟上升沿
上的数据值,然后把各个位整
理成消息结构。在长采集中解
码一条消息就会需要几分钟
时间,而您不知道这是不是实
际要找的消息。
图3. I2C总线中采集的一条消息。
www.tektronix.com/oscilloscopes 3调试嵌入式系统设计中的串行总线
应用指南
如果不是,您需要在下一条消
息上重新开始这一麻烦的、容
开始 地址 R/W 确认 数据0 确认0 数据1 确认1 ... 数据N 确认N 结束
易出错的过程。最好只触发查
7或10位 1位 1位 8位 1位 8位 1位 1位 8位 1位
找的消息内容,但多年来示波
器的逻辑分析仪上使用的状态 图4. I2C消息结构。
触发和码型触发并不能发挥作
用。它们是为了考察多条通道中同时发生的问题设计 工作方式
的。为处理串行总线,其触发引擎深度必需有几千种状 I2C的物理两线接口由双向串行时钟(SCL)和数据(SDA)
态(每个bit位一个状态)。即使存在这种触发功能,但为 线组成。I2C支持总线上多个主从设备,但一次只能激
AIGC
"本应用指南深入探讨了在嵌入式系统设计过程中对串行总线进行调试的关键步骤和技术。内容涵盖了串行通信协议(如UART、SPI、I2C等)的基础理论、实际应用实例以及常见问题排查方法。它详细阐述了如何设置和配置各个类型的串行接口,包括初始化过程、数据发送与接收的正确实现、波特率调整、奇偶校验、错误检测与纠正、同步与异步通信模式的区别与选择等。此外,还包括针对硬件故障、驱动程序问题、软件逻辑错误等方面的调试策略和工具使用技巧。无论对于初学者还是经验丰富的工程师,此指南都将为优化嵌入式系统的串行通信性能提供实用且全面的指导。"