本网页已闲置超过3分钟,按键盘任意键或点击空白处,即可回到网页

基于 ESP32 的RS232视频终端

发布时间:2021-10-21
分享到:

基于 ESP32 的RS232视频终端

发布时间:2021-10-21
分享到:

硬件概述 
uTerm2-S(微型 Term2 单机版)是一个易于构建的多仿真 RS232 终端,使用 ESP32-Wroom-32 模块和强大的 FabGL 库。此外,使用 ESP32 可以通过 Arduino IDE 和 ESP32 内核轻松以多种不同方式使用 uTerm2-S。

这些 uTerm2-S 的主要规格:

RS232串口;
VGA输出;
串行 USB 适配器的“透明”端口;
使用串行 USB 适配器进行 ESP32 编程的辅助串行端口;
RS232 和“透明”端口之间的 RTS/CTS 支持;
板载电源;
颜色、图形和声音功能;
多语言键盘支持;
各种终端仿真;
用于键盘和鼠标的 PS/2 连接器;
用于外部扬声器的板载放大器。


在下图中,连接到普通 PC 扬声器的 uTerm2-S(以前的 PCB 版本):

COM-USB2 (J3) 连接器(透明端口)
uTerm2-S 有一个用于 USB 串行适配器的“透明”端口(如在 uTerm-S 中),因此您可以例如使用 XMODEM 与 PC(运行支持 XMODEM 文件传输的终端仿真器)交换文件,而uTerm2-S 正在使用中。

两种“混合”供电方案(USB 串行适配器不是由 USB 供电,而是由 uTerm2-S 供电,反之亦然)均由硬件管理,因此您无需担心。

在下图中,串行 USB 适配器通过电缆连接到透明的 COM-USB2 (J3) 端口:

这允许在“同一”时间使用两个键盘和两个显示器(一个键盘和显示器直接连接到 uTerm2-S,另一个键盘和显示器的终端仿真器在与串行 USB 连接的 PC 上)。

请注意,COM-USB2 (J3) 端口支持 RTS/CTS 硬件握手,因此串行 USB 适配器上需要 RTS/CTS 信号。

在下图中,一个普通的基于 CP2102 的串行 USB 适配器连接了 RTS/CTS 信号:

下表显示了如何将串行 USB 适配器连接到 J3:

注意:信号分配与 uTerm-S 的 SER-USB (J3) 连接器相同。

PRG-USB1 (J2) 连接器(编程端口)
PRG-USB1 (J2) 连接器用于使用串行 USB 适配器对 ESP32 进行编程(建议使用支持默认 921600 bit/s 上传速度的模型,如基于 CP2102 的适配器)。

两种“混合”供电方案(USB 串行适配器不是由 USB 供电,而是由 uTerm2-S 供电,反之亦然)均由硬件管理,因此您无需担心。

有关编程过程的更多信息,请参阅“如何对 ESP32 进行编程”段落。


SPK (J9) 连接器
SPK (J9) 连接器用于连接可选扬声器(4/16 欧姆)。我使用了回收的 PC 扬声器。


其他连接器
其余的连接器很明显。PS/2 KB (J5) 和 PS/2 MOUSE (J4) 用于 PS/2 键盘和可选的 PS/2 鼠标。请注意,许多 USB 键盘(以及 USB 鼠标)都内置了 PS/2 兼容芯片,因此可以与众所周知的“绿色适配器”一起使用:

VGA(J1)接口用于VGA显示器,RS232(J8)接口是主机的RS232串口。最大速度为 115200 bps(它是 MAX232 RS232 驱动程序的最大速度)。

DC-IN (J2) 是电源输入连接器。建议使用 9V 1A 直流电源。

RTS-HS (SW3) 开关
uTerm2-S 具有用于 RS232 串行端口 (J8) 连接器(用于主机)和 COM-USB2 (J3) 连接器(用于终端仿真软件的“透明端口”)之间的硬件握手的 RTS/CTS 信号PC),因此可以用于文件交换。

为了澄清下图显示了 uTerm2-S 的串行端口的框图:

在 COM-USB2 (J3) 侧,如果 PC 侧的 RX 缓冲区已满,则 PC 上的终端仿真软件使用 RTS 信号将通信置于等待状态。CTS 信号是一个输入,如果主机端的输入缓冲区已满,则允许主机执行相同操作。由于 PC 通常比复古系统快得多,因此可以方便地将 RTS 信号设置为“始终准备接受”状态(在 PC 端)。在这种情况下,RTS-HS 开关 (SW3) 用于打开或关闭 RTS 握手。

当关闭时,连接到串口的主机会看到 RST 线始终处于活动状态(RTS 和 CTS 是活动的“低”信号)。这在某些情况下会很方便。

RTS-HS 开关对 CTS 信号没有影响。

RST 钥匙 (SW2)
RST 键(SW2)用于重置 ESP32 模块。


DFLT 键 (SW1)
DFLT 键 (SW1) 用于将所有终端参数重置为默认值。要激活此功能,您必须按下 DFLT 键,同时按住它直到重置完成,然后按下并释放 RST 键 (SW2) 以重置 uTerm2-S。

注意:必须在 AnsiTerminal 草图中启用 DFLT 键(请参阅“如何编程 ESP32(J2/PROG-USB1 连接器)”段落)才能使其工作。

 

 软件概述 
uTerm2-S 设计为使用 FabGL 库,因此您首先需要安装 Arduino IDE 和 ESP32 内核。

然后你必须安装 FabGL 库。因为有很多教程,我不会在这里提供更多关于如何设置“工具链”的详细信息(即参见 FabGL 站点上的演示和教程部分)。

如何编程 ESP32


uTerm2-S 可以使用 Arduino IDE 作为通用 ESP32 板进行编程(具有自动上传所需的电路):

您只需要使用带有串行 USB 适配器的 PRG-USB1 (J2) 连接器:

下表显示了如何将串行 USB 适配器连接到 PRG-USB1 (J2):

注意:您可以使用相同的适配器/电缆进行编程(通过 J2)和与透明端口(通过 J3)通信,因为 J2 和 J3 连接表具有兼容的信号分配。

要刷新终端固件,您必须从 FabGL 库的示例中打开 AnsiTerminal“草图”:

请记住首先更改包含以下内容的行:

#define 用户设置PIN 0到:

#define 用户设置PIN 1

启用 DFLT 密钥:

现在您可以编译和烧写 AnsiTerminal 草图。

注1:不要在“流量控制”终端设置面板上启用 HW RTS/CTS 握手,因为 HW 握手是为 COM-USB2 (J3)“透明”连接器保留的(参见“RTS-HS SWITCH”段),并且相关的 GPIO 不用于此。

注2:最大终端串口速度不能超过115200 bps。

游戏
在 FabGL 库的示例目录中,也有一些游戏可以使用 uTerm2-S 运行。

这里是太空侵略者:

和经典赛车:

如果您对此项目有任何想法、意见或问题,请在下方留言。

外文原文:点击进入
声明:本文由Hackaday授权电路城翻译,系电路城的原创内容,转载请注明出处! 

加入微信技术交流群

技术交流,职业进阶

关注与非网服务号

获取电子工程师福利

加入电路城 QQ 交流群

与技术大牛交朋友

讨论