搜索
当前位置:首页 > 传统电子行业 > 通信网络 > 使用 Python 和 Jupyter 笔记本快速构建基于 FPGA 的设计并进行编程

使用 Python 和 Jupyter 笔记本快速构建基于 FPGA 的设计并进行编程

作者: 2019-08-16 10:23:00 浏览:225

在将开发工具、笔记本电脑和其他资源连接到电子硬件进行测试和调试时,其实存在一定风险。尽管为了监控系统运行情况,有必要通过 UART、SPI、I2C 和其他总线直接进行连接,但很多时候开发中的硬件可能会发生故障。随后,硬件会通过这些接口输送不需要的电压和电流,损坏连接的工具和笔记本电脑。

这些工具通常很昂贵。不仅如此,而且据墨菲定律可知,硬件和工具将在最糟糕的时刻发生故障。由此造成的后果将是项目发生延迟,并且不得不花更多加急运费使工作台恢复正常运行。

本文将讨论开发人员如何能够使用基于平价隔离 IC 的接口保护他们的工具投资;这些 IC 可在 30 分钟内完成构建。此外还将讨论如何选择隔离器,并提供一些建议和提示,旨在确保当硬件确实发生故障时,开发工具和笔记本电脑不会受到影响。

选择隔离器时的考虑因素

隔离器可将一个电路分隔为两个电路,由隔离栅隔开。隔离栅每一侧的电路都是独立加电和接地。隔离栅的作用是充当滤波器,用于阻止高压和瞬变电压传输,只允许通过耦合机制从一侧向另一侧传输数字信息或数据。耦合机制通常有容性、磁性或光学性三种。

在许多情况下,读者会发现对于可能需要保护的某个接口,他们有不止一种选择。例如,I2C 隔离器通常提供容性和磁性两种。要选择采用哪一种技术,我们首先需要了解自己的工作环境。

容性耦合利用变化的电场来跨越隔离栅传输数据,因此对于有强磁场的应用是很好的选择。容性耦合还往往会带来更小的板基底面和更高的工作能效,因此成为很多应用的上佳选择。然而,值得注意的是,容性耦合有时确实会由于共享信号路径而产生噪声问题。

磁性耦合利用变化的磁场来跨越隔离栅传输数据,因此对于有强电场的应用是很好的选择。磁性耦合通常使用小型变压器,以帮助抑制噪声,并实现跨越隔离栅的高能效传输。

光学耦合利用光脉冲来跨越非导电隔离栅传输光,因此对于有噪声的电磁环境是最佳的选择。与磁性和容性耦合信号不同,光学耦合可以跨越隔离栅传输稳态信号。使用光耦合器的缺点是,它们的速度可能受限,需要的工作功率也更高。

在了解这几种技术及其特性后,接下来将介绍几种不同的总线协议,并详细指导如何在各种接口上隔离开发工具。

选择 I2C 隔离器

如果开发人员要为微控制器外部的器件开发驱动程序,则使用某种总线监视工具是一种好方法。开发人员可利用这些工具监控总线流量,而价格更贵的优质工具还可用于将信息写入总线。

简短经历描述:曾经有一次,我有一个 I2C/SPI 组合工具连接到客户的 I2C 总线。他们的硬件出了故障,跨 I2C 总线的电压下降了 42 伏,不仅毁坏了他们的硬件,也连累了我的开发工具。如果我当时使用 I2C 隔离器来保护自己的工具,就不必花额外的钱购买新工具,也不用支付加急运费。

在选择 I2C 隔离器时,应考虑几个特性。首先,电压隔离应至少达到 2500 伏 RMS。这种隔离级别可防御 90% 或以上的嵌入式开发故障。其次,应检查隔离器的数据速率。标准 I2C 的工作速率为 100 千位每秒 (kbps) 和 400 kbps。高速 I2C 的工作速率为 1000 kbps。开发工具或应用将决定哪种隔离器和隔离器技术是最佳选择。

有几种通用 I2C 隔离器可以有效地保护开发工具。对于通用隔离器,Analog Devices 的 ADUM3211ARZ-RL7 是不错的选择(图 1)。

Analog Devices 的 ADUM3211 通用型双通道磁性耦合隔离器示意图

图 1:ADUM3211 是一种通用型双通道磁性耦合隔离器,工作速率可高达 1000 kbps。(图片来源:Analog Devices)

ADUM3211 使用磁性耦合机制,以高达 1000 kbps 的数据速率跨越隔离栅传输数据。因此,该隔离器可以处理高速 I2C,但不包含双向隔离栅。也就是说,开发工具可以监控总线,但是不能向总线写入数据,不过这对于大多数应用来说完全可以接受。

要保护需要同时在总线上监控和写入数据的开发工具,Texas Instruments 的 ISO1541DR I2C 隔离器是绝佳的选择(图 2)。ISO1541 在 SOIC-8 封装中使用容性耦合机制,以高达 1000 kbps 的速率传输双向数据。该隔离器包含两个独立的隔离通道:一个用于数据信号 (SDA),另一个用于时钟信号 (SCL)。

Texas Instruments 的 ISO1541DR I2C 隔离器示意图

图 2:Texas Instruments 的 ISO1541DR I2C 隔离器包含两个双向隔离通道,工作速率可高达 1000 kbps。(图片来源:Texas Instruments)

从图 1 和图 2 可以注意到,这些器件要求工具一侧向隔离器的工具一侧供电,而目标一侧向其目标一侧供电。忘记从各自的电源为每一侧供电,是导致隔离栅两端缺乏通信的常见原因,因此在安装过程中应注意确保两侧都有供电。

选择 SPI 隔离器

保护 SPI 总线可能比保护 I2C 总线更棘手一点。I2C 总线只包含两条通信线路,无论总线上连接了多少个器件。而 SPI 总线包含三条数据线,分别用于主输出、主输入和时钟。除了这三条数据线外,每个连接到 SPI 总线的器件还需要一条从设备选择线路。因此,任何 SPI 隔离器还必须包含几条用于从设备选择线路的隔离线路。

有几种隔离器非常适合用于保护 SPI 开发工具。第一种是 Analog Devices 推出的 ADUM3154 SPI 隔离器。ADUM3154 使用磁性耦合机制,以高达 17 兆位每秒 (Mbps) 的数据速率跨越隔离栅传输数据。该速率不仅覆盖大多数微控制器 SPI 外设的最大波特率 4 Mbps,也覆盖存储器接口控制器的常用数据速率。ADUM3154 还支持多达四个隔离的从设备选择(图 3)。

Analog Devices 的 ADUM3154 四通道 SPI 隔离器示意图

图 3:ADUM3154 是 Analog Devices 推出的四通道 SPI 隔离器,可处理高达 17 Mbps 的数据速率。(图片来源:Analog Devices)

如果 17 Mbps 速率不足以满足需求,还可以选择 Analog Devices 提供的 ADUM3151BRSZ-RL7(图 4)。

Analog Devices 的 ADUM3151 七通道 SPI 隔离器示意图

图 4:ADUM3151 是 Analog Devices 推出的七通道 SPI 隔离器,可处理高达 34 Mbps 的数据速率。(图片来源:Analog Devices)

ADUM3151 也使用磁性耦合机制,但可处理高达 34 Mbps 的数据速率。它还有四个通道可用于从设备选择。

选择串行线调试 (SWD) 隔离器

在嵌入式软件工程师通常拥有的开发工具中,调试探头是最昂贵的工具之一。一个好的调试探头价格可高达几千美元。虽然编程线路出问题的可能性较低,但不值得冒险。

开发人员可以开发自己的隔离解决方案来保护所有 SWD 线路,但是这样做比较耗时,成本也较高。有一种简单的解决方案是使用 SEGGER Microcontroller Systems 的 J-Link SWD 隔离器(图 5)。

SEGGER Microcontroller Systems 的 J-Link SWD 隔离器图片

图 5:SEGGER Microcontroller Systems 推出的 J-Link SWD 隔离器可在调试编程器与目标系统之间提供 1000 伏的隔离。(图片来源:SEGGER Microcontroller Systems)

J-Link SWD 可在仿真器与目标硬件之间提供 1000 VDC 的隔离。

选择和构建 UART 隔离器

很多开发人员可能认为隔离小型 UART 是在浪费时间和金钱。毕竟,如果一个低成本工具(例如 SparkFun Electronics 的 BOB-12731 USB 转串口分线板)发生故障,可以很容易更换。然而,如果确实发生故障,另一侧可能有价值几千美元的计算机设备应该受到保护。因此,投入这种额外的时间和金钱非常值得。

装配 UART 保护电路的步骤很简单,也可以按照类似的步骤来保护其他总线接口。首先需要选择一个隔离器。前面讨论的 ADUM3211 是很好的选择,因为它具有两个方向相反的高速隔离通道。这非常适合于 UART 的 Tx/Rx 线路,这些线路通常彼此相邻。

在选择隔离器之后,开发人员需要使用分线板,如 Aries Electronics 的 LCQT-SOIC8-8(图 6)。该分线板已包含针座,因此能够轻松焊接到 BOB-12731 上。

Aries Electronics 的 LCQT-SOIC8-8 图片

图 6:Aries Electronics 的 LCQT-SOIC8-8 用作 SOIC-8 芯片的分线板,而该芯片具有板上跳线,可快速连接目标设备。(图片来源:Aries Electronics)

将隔离器焊接到分线板上,然后焊接到 UART 适配器上时,务必确保电压和接地引脚正确对齐。否则,隔离器可能无法加电。此外,还必须确保隔离器通道的方向正确。如果分线板或隔离器无法正确对齐,可能有必要定制一个分线板(图 7)。

UART 隔离器电路图片

图 7:组装完成的 UART 隔离器电路已连接了 USB-UART 转换器,可提供与目标设备之间的定制隔离通信。(图片来源:Beningo Embedded Group)

组装完成后,USB-UART 转换器将向隔离器的工具一侧供电,而目标设备将向目标一侧供电。结果是一个得到隔离的双向 UART 工具,可受到最高 2500 伏的保护。

关于隔离开发工具的建议和提示

很多技术和隔离接口可用于保护开发工具。下面是关于保护工具投资的几项建议和提示:

  • 查看规格书,确保电压隔离规格符合您的需要。
  • 熟悉不同的隔离机制,确保为应用选择正确的技术。
  • 隔离任何连接回笔记本电脑 USB 端口的总线或接口,因为它是可能造成损坏的接地路径。
  • 对所选的隔离器利用现有的开发套件或者使用分线板,以缩短开发时间,降低开发成本。
  • 使用 SWD 隔离器保护专业调试器。

总结

许多嵌入式系统开发人员在将昂贵的开发工具连接到测试中硬件时,不能做到三思而后行。这样做通常不会有什么问题。不过,有时会发生意外事件,使开发工具暴露在超出规格的电压和电流下,从而导致损坏。为了避免在最后一刻匆忙地恢复工作台的正常运行,应事先花上几个小时,使用市面上的很多隔离解决方案来正确隔离工具,从而提高开发效率,降低开发成本。

 

参与评价

最新评价

相关推荐

热文推荐