掌桥专利:专业的专利平台
掌桥专利
首页

一种字符显示方法、装置、设备及存储介质

文献发布时间:2023-06-19 10:38:35


一种字符显示方法、装置、设备及存储介质

技术领域

本申请涉及计算机应用技术领域,特别是涉及一种字符显示方法、装置、设备及存储介质。

背景技术

如今,各种应用系统的人机交互操作越来越多,如内窥镜系统、超声扫查系统等。这些人机交互过程可以通过显示终端进行显示,有助于提高应用系统的易操作性。人机交互过程有时需要在显示终端进行字符显示,以方便用户使用,同时也方便应用系统出现问题时开发人员进行调试。

目前,应用系统通过显示终端进行字符显示,主要是通过MCU(MicrocontrollerUnit,微控制单元)与FPGA(Field Programmable Gate Array,现场可编程门阵列)结合的方式实现。具体实现方法是MCU把相关字符字库写入到FPGA的RAM(Random Access Memory,随机存取存储器)中,FPGA实现显示终端的驱动程序并从RAM中取数据进行显示。

这种方式受限于MCU与FPGA的通信速率,对于一些高清显示很难完成。如果应用系统在设计之初是MCU与FPGA之间通信使用低速总线接口,将无法满足MCU传送字符通过FPGA进行显示的目的,这就需要改变应用系统的硬件,使得硬件成本较高。

发明内容

本申请的目的是提供一种字符显示方法、装置、设备及存储介质,以在FPGA内在不改变硬件的情况下实现字符显示,满足不同分辨率的视频显示要求,降低硬件成本。

为解决上述技术问题,本申请提供如下技术方案:

一种字符显示方法,应用于现场可编程门阵列FPGA系统,所述方法包括:

获得外部输入的待显示字符的字符编码;

在字符点阵字库中提取与每个所述字符编码对应的字符点阵数据;

确定每个所述字符点阵数据对应的字符像素映射值;

确定每个所述待显示字符在显示终端的显示位置;

基于所述字符像素映射值和所述显示位置,按照视频流输出所述待显示字符。

在本申请的一种具体实施方式中,在所述获得外部输入的待显示字符的字符编码之后、所述在字符点阵字库中提取与每个所述字符编码对应的字符点阵数据之前,还包括:

在检测到编码输入完成信号及视频帧开始信号的情况下,锁定待显示行数值。

在本申请的一种具体实施方式中,所述字符点阵字库使用单比特表示有效像素,所述确定每个所述字符点阵数据对应的字符像素映射值,包括:

将每个所述字符点阵数据的单比特像素映射为所述显示终端的像素单位,获得对应的字符像素映射值。

在本申请的一种具体实施方式中,还包括:

根据颜色字体显示要求,调整所述字符像素映射值。

在本申请的一种具体实施方式中,所述确定每个所述待显示字符在显示终端的显示位置,包括:

获得每行待显示的字符数及显示行信息;

基于所述每行待显示的字符数及显示行信息,确定每个所述待显示字符在显示终端的显示位置。

在本申请的一种具体实施方式中,所述字符点阵字库为在所述FPGA系统上电启动后加载。

在本申请的一种具体实施方式中,所述字符编码的输入结构包括:字符有效编码、行显示字符数和显示行。

一种字符显示装置,应用于现场可编程门阵列FPGA系统,所述装置包括:

字符编码获得单元,用于获得外部输入的待显示字符的字符编码;

字符点阵数据提取单元,用于在字符点阵字库中提取与每个所述字符编码对应的字符点阵数据;

字符像素映射值确定单元,用于确定每个所述字符点阵数据对应的字符像素映射值;

显示位置确定单元,用于确定每个所述待显示字符在显示终端的显示位置;

待显示字符输出单元,用于基于所述字符像素映射值和所述显示位置,按照视频流输出所述待显示字符。

一种字符显示设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现上述任一项所述字符显示方法的步骤。

一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述字符显示方法的步骤。

应用本申请实施例所提供的技术方案,在获得外部输入的待显示字符的字符编码后,可以在字符点阵字库中提取与每个字符编码对应的字符点阵数据,确定每个字符点阵数据对应的字符像素映射值及每个待显示字符在显示终端的显示位置,基于字符像素映射值和显示位置,按照视频流输出待显示字符。字符显示控制过程在FPGA系统内部完成,在不改变硬件的情况下实现字符显示,可以满足不同分辨率的视频显示要求,降低硬件成本。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例中一种字符显示方法的实施流程图;

图2为本申请实施例中一种字符串输入时序示意图;

图3为本申请实施例中一种编码输入结构示意图;

图4为本申请实施例中一种FPGA系统的结构示意图;

图5为本申请实施例中字符显示具体流程示意图;

图6为本申请实施例中一种字符显示装置的结构示意图;

图7为本申请实施例中一种字符显示设备的结构示意图。

具体实施方式

本申请的核心是提供一种字符显示方法,该方法可以应用于FPGA(FieldProgrammable Gate Array,现场可编程门阵列)系统,在获得外部输入的待显示字符的字符编码后,可以在字符点阵字库中提取与每个字符编码对应的字符点阵数据,确定每个字符点阵数据对应的字符像素映射值及每个待显示字符在显示终端的显示位置,基于字符像素映射值和显示位置,按照视频流输出待显示字符。该方案在FPGA系统内部完成,在不改变硬件的情况下实现字符显示,可以满足不同分辨率的视频显示要求,降低硬件成本。

为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

参见图1所示,为本申请实施例所提供的一种字符显示方法的实施流程图,该方法可以包括以下步骤:

S110:获得外部输入的待显示字符的字符编码。

在交互过程中有字符显示需求时,可以通过外部输入设备输入待显示字符的字符编码。该字符编码可以为国际编码或其他满足系统要求的编码。当前获得的外部输入的待显示字符的字符编码可以有一个或多个。

在本申请实施例中,如图2所示,每次输入字符编码时,先拉低字符显示使能信号string_dsp_en,当待显示字符准备完成时,编码准备完成信号single_string_rdy产生一个上升沿的跳变,此时获得外部输入的待显示字符的字符编码,可以将获得的待显示字符的字符编码写入RAM中缓存。

为了便于显示控制,待显示字符的字符编码在输入时可以遵循一定的输入结构,该输入结构包括字符有效编码、行显示字符数和显示行。如图3所示,最低位Byte指示字符显示行,次低位Byte指示一行显示的字符数,前面为字符有效编码。

S120:在字符点阵字库中提取与每个字符编码对应的字符点阵数据。

在实际应用中,可以预先获得字符点阵字库。字符点阵字库中可以包括ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)码字符和汉字字符等的字符点阵数据。以ASCII码字符为例,标准ASCII码使用七位二进制数来表示所有的大写字母、小写字母、数字0至9、标点符号及特殊控制字符。进行设计前,可以先确定使用的字体大小。如可以使用8*16点阵来表示一个字符,也即显示时每个字符横向占8个像素,纵向占16列。取字模时,可以使用先横向再纵向取模的方式,完成所有字符的取模以后,生成一个txt或coe格式的字符点阵字库,供后续使用。

使用字符点阵字库,相较于使用实际的像素字库,可以节约字库存储资源。

在FPGA系统中,可以通过ROM(Read-Only Memory,只读存储器)存储字符点阵字库,在FPGA系统上电启动后可以加载字符点阵字库。即FPGA系统初始化时加载字符点阵字库,每次FPGA系统掉电重启时,可以重新赋值ROM,效果类似于Flash(闪存)存储。ROM的存储内存为2018Byte,占用空间较少,一般的FPGA系统都能满足存储空间要求。

获得外部输入的待显示字符的字符编码后,可以在字符点阵字库中提取与每个字符编码对应的字符点阵数据。

字符点阵字库中每个字符点阵数据具有各自的地址,可以按照设定规则设定地址。获得外部输入的待显示字符的字符编码后,针对每个待显示字符的字符编码,可以按照相应规则对该字符编码的编码值进行换算,得到该字符编码对应的字符点阵字库中字符点阵数据的地址,然后依据该地址,在字符点阵字库中提取出该字符编码对应的字符点阵数据。

在获得外部输入的待显示字符的字符编码之后,在字符点阵字库中提取与每个字符编码对应的字符点阵数据之前,可以监测各信号,在检测到编码输入完成信号和视频帧开始信号的情况下,锁定待显示行数值,然后开始读取RAM缓存中的字符编码,执行在字符点阵字库中提取与每个字符编码对应的字符点阵数据的步骤。

S130:确定每个字符点阵数据对应的字符像素映射值。

在字符点阵字库中提取到与每个字符编码对应的字符点阵数据后,进一步可以确定每个字符点阵数据对应的字符像素映射值。

在本申请实施例中,字符点阵字库可以使用单比特表示有效像素,可以将每个字符点阵数据的单比特像素映射为显示终端的像素单位,获得对应的字符像素映射值。通过点阵映射可以适配不同像素宽度显示终端。

在实际应用中,还可以根据颜色字体显示要求,调整字符像素映射值。通过改变字符像素映射值可以实现不同颜色字体的显示。

S140:确定每个待显示字符在显示终端的显示位置。

获得外部输入的待显示字符的字符编码,同时可以获得每行待显示的字符数及显示行信息,基于每行待显示的字符数及显示行信息,可以确定每个待显示字符在显示终端的显示位置。

S150:基于字符像素映射值和显示位置,按照视频流输出待显示字符。

在确定每个字符点阵数据对应的字符像素映射值及每个待显示字符在显示终端的显示位置后,可以基于字符像素映射值和显示位置,按照视频流输出待显示字符,通过显示终端驱动在显示终端进行字符显示。具体的,可以按照确定的显示位置,将待显示字符对应的字符像素映射值插入到视频流的相应位置。

应用本申请实施例所提供的方法,在获得外部输入的待显示字符的字符编码后,可以在字符点阵字库中提取与每个字符编码对应的字符点阵数据,确定每个字符点阵数据对应的字符像素映射值及每个待显示字符在显示终端的显示位置,基于字符像素映射值和显示位置,按照视频流输出待显示字符。字符显示控制过程在FPGA系统内部完成,在不改变硬件的情况下实现字符显示,可以满足不同分辨率的视频显示要求,降低硬件成本。

如前所描述的,本申请实施例所提供的技术方案可以应用于FPGA系统。为便于理解,在FPGA系统角度对本申请实施例再次进行说明。

如图4所示,FPGA系统可以包括输入编码处理模块、字符显示主控模块、点阵字库存储模块、编码映射模块、编码输出模块和显示终端驱动模块。

其中,点阵字库存储模块用于存储字符点阵字库,其主要组成为ROM。初始化时把字符点阵字库加入,每次FPGA系统掉电重启,会重新赋值ROM。

FPGA系统上电启动后,先加载字符点阵字库,然后等待外部输入待显示字符的字符编码。当编码准备完成信号产生上升沿的跳变时,输入编码处理模块将获得的外部输入的待显示字符的字符编码写入RAM中缓存。字符编码的输入结构包括:最低位Byte指示字符显示行,次低位Byte指示一行显示的字符数,前面为字符有效编码,同时,输入编码处理模块可以统计待显示的行数信息并传递给字符显示主控模块;

当字符显示主控模块检测到编码输入完成信号,并检测到编码输出模块的视频帧开始信号,就会锁定输入编码处理模块统计的待显示行数值,并开始读取RAM缓存中的字符编码。然后按照编码值换算得到字符点阵字库中的地址,从点阵字库存储模块存储的字符点阵字库中提取出与每个字符编码对应的字符点阵数据。字符点阵字库通常使用单比特表示有效像素,需要把单比特像素映射为显示终端的像素单位,得到每个字符点阵数据对应的字符像素映射值。因为映射完成后的字符像素映射值,编码输出模块可能并不会立即使用,所以可以先把字符像素映射值暂存在另一个缓存中。

字符显示主控模块在读取字符编码的过程中,可以获得每行待显示的字符数及显示行信息,这些信息除了用于内部控制外,也可以传递给编码输出模块。编码输出模块基于每行待显示的字符数及显示行信息,计算出待显示字符在显示终端的显示位置。编码输出模块内部有计数器可以控制视频流的输出,可以提前生成读请求,从缓存中读取待显示字符对应的字符像素映射值,并把字符像素映射值插入到视频流的适当位置。

字符显示主控模块在输出一个字符点阵数据后,可以检测是否完成所有的待显示字符的字符点阵数据的输出。如果完成,则跳转等待新的待显示字符的字符编码输入。FPGA系统如不需要输入新的字符编码,可以置相关信号一直为高。在检测到编码输出模块的视频帧开始信号时,重复字符编码读取、字符点阵数据提取、点阵映射、显示位置确定、视频流输出等操作过程。如果检测到还有待显示字符的字符点阵数据待输出,则继续执行点阵映射、显示位置确定等操作,直至执行完所有字符操作。

显示终端驱动模块可以用于配合字符的显示,根据不同的显示终端,可以使用相应的驱动逻辑。

整个实施过程可以如图5所示,FPGA系统上电启动后,加载字符点阵字库。等待外部输入待显示字符的字符编码。确定外部输入的待显示字符的字符编码是否输入完成。如果未输入完成,则继续等待,如果输入完成,则确定是否检测到视频帧开始信号。如果未检测到视频帧开始信号,则继续等待,如果检测到视频帧开始信号,则锁定待显示行数值。在字符点阵字库中提取对应的字符点阵数据,确定字符点阵数据对应的字符像素映射值,按照视频流输出字符像素映射值,确定是否所有待显示字符均输出完成。如果还有待显示字符未输出完成,则继续执行在字符点阵字库中提取对应的字符点阵数据,确定字符点阵数据对应的字符像素映射值,按照视频流输出字符像素映射值的步骤,如果所有待显示字符均输出完成,则回到等待外部输入待显示字符的字符编码的步骤。

本申请实施例仅依靠FPGA实现字符显示,在硬件成本和系统可靠性上具有较好优势,可以实现超高清字体显示,而且,基于FPGA的可编程性,有助于低成本升级系统。

相应于上面的方法实施例,本申请实施例还提供了一种字符显示装置,应用于FPGA系统,下文描述的字符显示装置与上文描述的字符显示方法可相互对应参照。

参见图6所示,该装置可以包括:

字符编码获得单元610,用于获得外部输入的待显示字符的字符编码;

字符点阵数据提取单元620,用于在字符点阵字库中提取与每个字符编码对应的字符点阵数据;

字符像素映射值确定单元630,用于确定每个字符点阵数据对应的字符像素映射值;

显示位置确定单元640,用于确定每个待显示字符在显示终端的显示位置;

待显示字符输出单元650,用于基于字符像素映射值和显示位置,按照视频流输出待显示字符。

应用本申请实施例所提供的装置,在获得外部输入的待显示字符的字符编码后,可以在字符点阵字库中提取与每个字符编码对应的字符点阵数据,确定每个字符点阵数据对应的字符像素映射值及每个待显示字符在显示终端的显示位置,基于字符像素映射值和显示位置,按照视频流输出待显示字符。字符显示控制过程在FPGA系统内部完成,在不改变硬件的情况下实现字符显示,可以满足不同分辨率的视频显示要求,降低硬件成本。

在本申请的一种具体实施方式中,还包括待显示行数锁定单元,用于:

在获得外部输入的待显示字符的字符编码之后、在字符点阵字库中提取与每个字符编码对应的字符点阵数据之前,在检测到编码输入完成信号及视频帧开始信号的情况下,锁定待显示行数值。

在本申请的一种具体实施方式中,字符点阵字库使用单比特表示有效像素,字符像素映射值确定单元630,用于:

将每个字符点阵数据的单比特像素映射为显示终端的像素单位,获得对应的字符像素映射值。

在本申请的一种具体实施方式中,字符像素映射值确定单元630,还用于:

根据颜色字体显示要求,调整字符像素映射值。

在本申请的一种具体实施方式中,显示位置确定单元640,用于:

获得每行待显示的字符数及显示行信息;

基于每行待显示的字符数及显示行信息,确定每个待显示字符在显示终端的显示位置。

在本申请的一种具体实施方式中,字符点阵字库为在FPGA系统上电启动后加载。

在本申请的一种具体实施方式中,字符编码的输入结构包括:字符有效编码、行显示字符数和显示行。

相应于上面的方法实施例,本申请实施例还提供了一种字符显示设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行计算机程序时实现上述字符显示方法的步骤。

如图7所示,为字符显示设备的组成结构示意图,字符显示设备可以包括:处理器10、存储器11、通信接口12和通信总线13。处理器10、存储器11、通信接口12均通过通信总线13完成相互间的通信。

在本申请实施例中,处理器10可以为中央处理器(Central Processing Unit,CPU)、特定应用集成电路、数字信号处理器、现场可编程门阵列或者其他可编程逻辑器件等。

处理器10可以调用存储器11中存储的程序,具体的,处理器10可以执行字符显示方法的实施例中的操作。

存储器11中用于存放一个或者一个以上程序,程序可以包括程序代码,程序代码包括计算机操作指令,在本申请实施例中,存储器11中至少存储有用于实现以下功能的程序:

获得外部输入的待显示字符的字符编码;

在字符点阵字库中提取与每个字符编码对应的字符点阵数据;

确定每个字符点阵数据对应的字符像素映射值;

确定每个待显示字符在显示终端的显示位置;

基于字符像素映射值和显示位置,按照视频流输出待显示字符。

在一种可能的实现方式中,存储器11可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统,以及至少一个功能(比如数据提取功能、数据映射功能)所需的应用程序等;存储数据区可存储使用过程中所创建的数据,如字符点阵数据、字符编码数据等。

此外,存储器11可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件或其他易失性固态存储器件。

通信接口13可以为通信模块的接口,用于与其他设备或者系统连接。

当然,需要说明的是,图7所示的结构并不构成对本申请实施例中字符显示设备的限定,在实际应用中字符显示设备可以包括比图7所示的更多或更少的部件,或者组合某些部件。

相应于上面的方法实施例,本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述字符显示方法的步骤。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

技术分类

06120112619516