“ Glasgow 是一款用于探索数字接口的工具,面向嵌入式开发人员、逆向工程师、数字档案管理员、电子爱好者,以及所有希望以高可靠性和最少麻烦与多种数字设备进行通信的人。 ”
概览
Glasgow 是一款用于探索数字接口的工具,面向嵌入式开发人员、逆向工程师、数字存档人员、电子爱好者,以及所有希望以高可靠性和最少麻烦与多种数字设备进行通信的人。它可以连接到大多数设备,无需额外的有源或无源元件,并具有广泛的保护功能,可防止意外情况和操作错误。
Glasgow 硬件采用可重构逻辑,因此可以支持多种数字接口。它不是只提供一小部分标准硬件支持的接口,而是使用 FPGA 在不影响性能或可靠性的情况下,即时适应手头的任务,甚至是不寻常、定制或过时的接口。
Glasgow 软件是一套构件,旨在消除附带的复杂性。每个界面都打包成一个独立的小程序,可直接从命令行使用,或作为更复杂系统的一部分重复使用。使用 Glasgow 不需要任何编程知识,但如果你会一点 Python,它就会变得更加强大。
功能
通过 UART 进行通信
自动确定并跟踪被测设备的波特率
SPI 或 I²C
读写 24 系列 EEPROM
读写 25 系列闪存
通过 SFDP 确定存储器参数
读写兼容 ONFI 的闪存、
通过 ONFI 参数页面确定存储器参数
使用 SPI 接口对 AVR 微控制器进行编程和验证
自动确定未知的 JTAG 引脚布局
回放 JTAG SVF 文件
通过 JTAG 调试 ARC 处理器
通过 EJTAG 调试某些 MIPS 处理器
通过 JTAG 对 XC9500XL CPLD 进行编程和验证
使用 Yamaha OPL 芯片合成声音,并在网页上实时播放
从 5.25"/3.5" 软驱读取原始调制数据、
License
BSD License & Apache 2.0
原理图 & PCB
Glasgow的软件
Glasgow 完全用 Python 3 编写。在 FPGA 上运行的接口逻辑使用 Migen 进行描述,Migen 是一种基于 Python 的领域特定语言。在主机 PC 上运行的支持代码是使用 asyncio 用 Python 编写的。这样,FPGA 上的逻辑就可以根据任何请求的配置按需组装,从而尽可能保持快速和紧凑。 如果没有开源 iCE40 FPGA 工具链,格拉斯哥就不可能实现,该工具链不仅非常可靠,而且速度极快。它的速度如此之快,以至于 FPGA 比特流不需要被缓存(除了不重建设备上已有的比特流之外),因为从头开始构建一个 UART 之类的比特流只需要几秒钟。当开发一个新的小程序时,很少需要等待工具链。 实现可靠、高性能的 USB 通信并非易事——打包、缓冲和 奇怪的 USB 问题都会增加成本。Glasgow 抽象化了 USB:在 FPGA 上,小程序网关软件向 FIFO 写入或读取数据,而在主机上,小程序软件向类似套接字的接口写入或读取数据。惯用的 Python 代码可以在现代 PC 上以最大 USB 2 大容量带宽进行通信,而无需额外的工作。此外,当未来的 Glasgow 版本除了 USB 之外还将使用以太网时,无需更改小程序代码。
调试新的小程序可能很困难,特别是在涉及双向总线的情况下。Glasgow 提供内置的周期精确逻辑分析仪,可以将 I/O 引脚电平和方向变化与小程序接收和发送的命令和响应相关联。逻辑分析仪会压缩波形,并在缓冲区即将溢出时暂停小程序。
仓库 & 下载
可以在Github中获取开源仓库: https://github.com/GlasgowEmbedded/glasgow
全部0条评论
快来发表一下你的评论吧 !