项目来源:https://glasgow-embedded.org/latest/intro.html
Github:https://github.com/GlasgowEmbedded/glasgow/tree/main
板卡介绍
Glasgow Interface Explorer 是一款用于探索数字接口的工具,面向嵌入式开发人员、逆向工程师、数字档案管理员、电子爱好者以及所有希望以高可靠性和最少麻烦与各种数字设备进行通信的人。它可以连接到大多数数字接口,无需额外的有源或无源组件,并且包括针对意外情况和操作员错误的广泛保护。
Glasgow 硬件可以支持许多数字接口,因为它使用可重新配置逻辑。它不是仅提供一小部分标准硬件支持的接口,而是使用 FPGA即时适应手头的任务,而不会影响性能或可靠性,即使对于不寻常、自定义或过时的接口也是如此。
Glasgow 软件是一组旨在消除附带复杂性的构建块。每个接口都被打包成一个独立的小程序,可以直接从命令行使用,或者作为更复杂系统的一部分重复使用。使用 Glasgow 不需要任何编程知识,尽管如果您了解一点 Python,它会变得更加强大。
功能
- 通过UART进行通信
- 自动判断并跟随被测设备的波特率
- 通过 SPI 或 I²C 发起事务
- 读写 24 系列 I²C EEPROM
- 读写25系列SPI闪存
- 通过 SFDP 确定内存参数
- 读写 ONFI 兼容闪存
- 通过 ONFI 参数页确定内存参数
- 读写并行 27/28/29 系列 EPROM、EEPROM 和闪存
- 确定浮动栅极电荷衰减的程度并挽救数据
- 使用 SPI 接口对 AVR 微控制器进行编程和验证
- 自动确定未知的 JTAG 引脚分配
- 回放JTAG SVF文件
- 通过 JTAG 调试 ARC 处理器
- 通过 EJTAG 调试一些 MIPS 处理器
- 通过 JTAG 编程和验证 XC9500XL CPLD
- 使用 nRF24L01(+) 无线电进行通信
- 对 nRF24LE1 和 nRF24LU1(+) 微控制器进行编程
- 使用 Yamaha OPLx/OPM 芯片合成声音并在网页上实时播放
- 从 5.25”/3.5” 软盘驱动器读取原始调制数据
- … 更多!
上述所有操作只需一块 Glasgow revC 板、一些电线以及根据被测设备的外部电源即可完成。
USB 转串口适配器
Glasgow 可以用作 USB 转串口适配器,但效果更好。
与传统的串行适配器不同,它可以自动检测目标电压并“镜像”它。它将自动检测目标的波特率并实时跟踪它。它可以直接连接到反相信号 UART 接口,这通常需要额外的调试组件,例如缓冲晶体管。
环境传感器记录仪
Glasgow 内置了对InfluxDB的支持。因此,任何读取传感器的小程序都可以直接记录数据,并且您可以轻松地在Grafana中将它们可视化。我们已经支持一些二氧化碳和颗粒传感器。
Glasgow-InfluxDB-Grafana 来自 SCD30 传感器的温度、湿度、CO2 日志
技术规格
- iCE40HX8K Lattice Semiconductor FPGA(由完全开源的FPGA流程支持:Yosys、nextpnr、icestorm)
- FX2 高速 USB 接口,吞吐量可达 480 Mbps
- 两个 8 通道 I/O Bank 提供 16 个高度灵活的 I/O
- 每个 I/O Bank都有一个专用的可编程线性稳压器,
可配置为 1.8V 至 5V,并能够提供高达 150mA 的功率 - 每个 I/O Bank都有一个专用的感应 ADC,能够监控 I/O Bank
电压和电流,并具有可设置的中断触发阈值 - 每个 I/O的理论速度高达 100 MHz(实际速度
取决于许多因素) - 每个 I/O
都有一个具有单独方向 控制的专用电压电平转换器 - 每个 I/O都有一个专用的、软件控制的 10K 欧姆上拉/下拉电阻
- 所有I/O都有ESD保护二极管
- 一组可选的 14 个差分对 I/O,直接连接到 FPGA,
无需任何前端电路,可用于高速接口(仅
暴露在电路板上,无法与机箱结合使用) - 专用 SYNC 连接器
- 连接到 FPGA 的五个用户可控 LED
- 五个状态 LED
使用界面
此截屏视频显示了典型的命令行工作流程:
软件及工具链
Glasgow 完全用Python 3编写。 FPGA 上运行的接口逻辑使用Amaranth进行描述,Amaranth 是一种基于 Python 的领域特定语言。在主机 PC 上运行的支持代码是用 Python 和asyncio编写的。这样,FPGA 上的逻辑可以根据任何请求的配置按需组装,尽可能保持快速和紧凑,并且可以在网关软件和软件之间共享代码,从而无需添加容易出错的“粘合”样板。
如果没有开源 iCE40 FPGA 工具链,格拉斯哥就不可能实现,它不仅非常可靠,而且速度极快。它的速度非常快,通常只需要几秒钟就可以为 UART 等设备从头开始构建比特流。开发新小程序时,很少需要等待工具链完成。
实现可靠、高性能的 USB 通信并非易事——打包、缓冲和 USB 怪癖都会叠加起来。 Glasgow 抽象化了 USB:在 FPGA 上,小程序网关软件向 FIFO 写入或读取数据,而在主机上,小程序软件向类似套接字的接口写入或读取数据。惯用的 Python 代码可以在现代 PC 上以最大 USB 2 大容量带宽进行通信,而无需额外的工作。此外,当未来的 Glasgow 版本在 USB 旁边添加以太网时,无需更改小程序代码。
调试小程序可能很困难,特别是在涉及通过同一线路的双向通信时。 Glasgow 提供内置的周期精确逻辑分析仪,可以将 I/O 引脚电平和方向变化与小程序接收和发送的命令和响应相关联。逻辑分析仪会压缩波形,并在缓冲区即将溢出时暂停小程序。
硬件版本
格拉斯哥硬件随着时间的推移而不断发展,每个重大里程碑都称为“修订”。尽管所有修订版都将始终受到最新软件堆栈的支持,但它们的功能差异很大,并且正在使用的修订版将决定使用硬件可以实现哪些任务。
格拉斯哥硬件修订版使用以下revXN
格式,其中X
是修订字母(在进行重大设计更改时按字母顺序前进),并且N
是步进编号(在任何布局或组件更改时递增)。例如,revC0
是修订版 C 的第一步。
版本号
修订版 D 是计划的未来修订版,它将 I/O 引脚数量扩展到 32 个,而不会大幅改变其他功能。
修订版
版本C是最新版本,由1bitSquared在stepping上首次量产revC3
。它提供 16 个 I/O 引脚,数据速率高达约。 100 Mbps/引脚 (50 MHz) ,独立方向控制和独立可编程上拉/下拉电阻。 I/O 引脚分为两个 I/O 端口,每个端口都可以使用 1.8 V 至 5 V 之间的任何电压,感测和监控被测器件的 I/O 电压,并提供高达 150 mA 的电流。力量。该板使用 USB 2 进行供电、配置和通信,实现高达 336 Mbps (42 MB/s) 的持续组合吞吐量。
正面
背面