基于FPGA的数字和模拟信号合成的彩色液晶显示器
0 引言
FPGA 技术作为一种新兴的技术, 具有静态可重复编程的特性, 芯片上包含的资源丰富, 能够将庞大的、满足各种需求的、复杂的数字电路以及高性能微处理器整合到一块芯片上实现片上系统(SoC), 使得系统的开发周期更短、可靠性更高。
这款同时显示数字和模拟信号的彩色液晶显示器可以将多种字体的彩色中西文、直方图、自由曲线等数字信号和视频模拟信号以叠加的方式显示;将固定显示的内容预先在微机上进行编制,然后将其作为“预置画面”送入机内Flash( 闪存) 中。另外, 开放了与BMP、JPEG 等格式图像文件显示与操作相关的命令,极大地提高了二次开发的效率,使显示效果得到更完美的体现。
1 系统概述
1.1 液晶显示器概述
液晶显示器作为科技时代的智慧结晶,为生产生活提供了极大的便利。液晶显示器将各种信号及场景直观地显示在屏幕上,缩短了显示到现场的距离,更能体现信号的各种细节,方便直观地为设计人员的开发提供了更加详细的数据支撑。本文介绍一种新型的液晶显示器,可以根据功能需要显示不同的数字或视频信息,体现出细节信息,将远程的数字或视频信息近距离地显示在眼前,具有很大的实用性。
1.2 FPGA概述
FPGA 全称现场可编程门阵列,是一种集成电路芯片,相当于把一个计算机系统集成在一个小的芯片上。本系统采用的FPGA 芯片为京微齐力科技有限公司自主研发设计的CME-M5 芯片。该芯片功能强大,既具备并行执行程序的特点,又集成了增强型8051 MCU,使得FPGA 的硬件性能大幅提高。采用FPGA 逻辑设计的外设可以确保电路系统稳定高速运行,嵌入式的8051 MCU 又可以为编程开发人员的设计带来便利,非常适合用作液晶显示器的主控芯片[1-2]。
2 系统设计
智能型彩色液晶显示器主要组成部分包括:电源模块、液晶显示模块、RSM232 隔离通信模块以及视频转换模块等。如图1 所示,加电工作时,首先启动FPGA内的配置程序分配资源,明确两片FPGA(M5)的工作任务。由其中一片FPGA(1)担负解析数字信号指令,负责切换分配显示内存等工作任务。由另一片FPGA(2)处理视频(ADV7810)解码后的数据,根据指令送入FPGA(1)分配的显示内存中,实现视频在指定窗口的显示。
2.1 电源模块
电源系统设计如图2 所示,显示器采用外部12 V或24 V 电源供电, 经过LT3995 转换为DC 5 V,DC 5 V 用来驱动7 英寸液晶屏的背光模块,并经过LM1085 转换为DC 3V3;DC 3V3 通过TPS71711 转换为DC 1V1,然后DC 3V3 和DC 1V1 共同驱动FPGA 芯片。本系统用到两个同一型号的FPGA 模块,FPGA_A用来处理视频信息,FPGA_D 用来处理数字信息,两个芯片协同工作保证显示器稳定高效地运行;DC 3V3经过LM1117-1V8 转换为DC 1V8, 然后DC 3V3 和DC 1V1 共同驱动ADV7180 进行模拟视频信号的转换工作[3]。
2.2 基于RSM232的隔离通信模块
数字信号的通信使用致远RSM232,如图3 所示,其中C82、C94 作为隔离电容使用。R6、R7 是防止通信线路串入强干扰所加磁珠或电阻[4]。
2.3 基于ADV7180的模拟视频信号转换模块
视频转换模块如图4 所示,IN1、IN2 和IN3 为模拟视频信号的输入端,通过sma 外接模拟摄像头;BF_PPIx、BF_TMRx 和LLC_CLK 为ADV7180 的输出信号,连接到FPGA_A 做进一步的信号处理;BF_PFx为IIC 总线,连接至FPGA_D 用来配置ADV7180[5]。
2.4 显示模块
系统采用群创7 英寸液晶屏作为显示终端,分辨率为800×480,采用RGB565 信号驱动液晶屏显示。
3 系统软件设计
系统软件的主要任务是实现数字信号以及视频模拟信号在显示屏上的正常显示。上电之后首先进行设备初始化工作,包括液晶显示屏模块、串口模块以及ADV7180 视频转换模块的初始化设置;随后进入串口处理数据模块,根据指定通信协议判断串口是否接收到有效数据,如果未接收到有效数据则返回串口数据处理模块,如果接收到有效数据则判断显示模式;根据显示模式来切换液晶显示屏的视频或数字界面,并将串口接收的数据进行必要的处理后显示在界面上的指定位置,到此本次处理结束,开启下一次处理以保证显示信息的实时性[6]。
3.1 ADV7180的初始化
系统上电后,FPGA 通过IIC 总线对ADV7180 进行初始化。初始化模块主要分为IIC 控制模块,IIC 命令模块,ROM 模块。IIC 控制核心是完成数据的串并转换以及将命令转换为IIC 总线的SCL/SDA 信号线的启动、停止、写、应答等具体的时序关系;IIC 命令模块是指IIC 接口间状态的转换以及从ROM 模块中将配置好的数据输出给IIC 控制模块,ROM 模块存储的是FPGA 配置好的ADV7180 的数据。当启动IIC 开始配置时,从ROM 中读取配置的内容送出即可。初始化代码如下:UINT8 adv7180_init(void)
{
UINT8 i;
UINT8 * pdate= ADV7180Config;
I2CIoctl(CLOCK_DIVIDE_BY_960);
for(i=0;i<sizeof(ADV7180Config)/2;i++)
{
I2COpen();
i f ( I 2 C M a s t e r W r i t e ( A D V 7 1 8 0 _
ADDRESS,pdate,2)!=I2C_OK)
{
return i+1;
}
I2CClose();
pdate+=2;
}
return 0;
}
3.2 数据的处理
采用中断方式进行串口接收处理,接收到的数据存放在一个256 B 的数据缓冲区中。在处理缓冲区数据时采用状态机的原理,只有当前一个状态完成时才进入下一个状态。缓冲区内经过判断正确的数据放入一个数组中,显示模块调用该数组的内容,这样做可以保证界面信息的实时性,也有效降低了不同模块之间的关联性,增加了程序的稳定性。串口接收,中断处理的流程如图6。
3.3 数字信号和模拟信号叠加处理
模拟信号通过ADV7180 芯片和FPGA 芯片的协同工作,将其转换为RGB 信号保存到SDRAM 中,过程如下:首先ADV7180 将摄像头输出的视频信号解码后转换为RBT656 信号发送给FPGA 芯片,进入芯片后首先将RBT656 信号解码,同时为了减少视频信号中的干扰,将RBT656 信号中的Y 信号滤波,滤波后将Cb、Cr 和Y 信号转换为RGB 信号,最后根据解码后的行信号和奇偶场信号将RGB 信号通过存储器调度模块写入SDRAM 保存起来,完成视频信号的解码过程。根据输入的数字显示信号中的行、场和时钟信号生成地址和读取信号,从SDRAM 中读取保存的视频数据,通过叠加模块同数字显示数据叠加后输出,实现显示。按彩色液晶屏像素的排列格式处理完成后的整屏RGB像素数据,可以直接送入液晶屏,实现显示。这一部分在FPGA 中完成[1],部分源代码如下:
assign va_s_o = vcount;
assign ha_s_o = hcount;
assign de_s_o = de_m_i;
assign clk_s_o = clk_m_i;
assign clk_o = clk_m_i;
assign de_o = de_m_i;
assign vs_o = vs_m_i;
assign hs_o = hs_m_i;
assign rgb_o = ( rgb_m_i!=16’h8410)?rgb_m_
i:rgb_s_i;
always @(posedge clk_m_i or negedge rst_n) begin
if (!rst_n)
vcount <=10’b0;
else
if(vsmf)
vcount <= 10’b0;
else
if(demb)
vcount <= vcount+1;
else
vcount <= vcount;
end
always @(posedge clk_m_i or negedge rst_n) begin
if (!rst_n)
hcount <=10’h0;
else
if(de_m_i)
hcount <= hcount+1;
else
hcount <=10’h0;
end
4 实验及结果分析
对本系统的硬件和软件模块调试成功后,对系统进行整体功能性测试。本文设计的液晶显示器需要实现的功能是:上电后即按照通信协议将接收到的数据包进行解析后按照帧定义进行显示,并可以根据通信协议自动进行数据刷新或者画面切换。实验测试包含数字界面能否正常刷新,数字和视频界面能否正常切换,视频和数字的叠加是否正常和系统运行是否稳定等。表1 的数据是系统测试200 次的结果以及运行24 h 的稳定性结果[1-4,6]。
5 结语
本文提出了一种采用双FPGA 处理器、通信模块加ADV7810 视频转换的能同时实时显示数字和模拟信号的彩色液晶显示器。该显示器能够实现画面的高速更新,且互不干扰,可以直接使用摄像头,真实还原摄像头的信号,在很多空间狭小不方便进去人员的场合都可以使用。
参考文献:
[1] 魏丽玲,朱平,石永亮.基于FPGA的图像采集与存储系统设计[J].电子技术应用,2015,41(10): 67-69.
[2] 曾声奎.可靠性设计与分析[M].北京:国防工业出版社,2011.
[3] 王兆安,黄俊.电力电子技术[M].北京:机械工业出版社,2003.
[4] 罗映红,张博.传输线端接阻抗对线间串扰的影响研究[J].郑州大学学报(工学版),2009,30(4):120-122.
[5] 朱珍民,沈燕飞,何哲.视频信号处理技术及应用[J].电子技术应用,2008,34(10).
[6] 陆民燕.软件可靠性工程[M].北京:国防工业出版社,2015.
(本文来源于《电子产品世界》2021年4月期)
评论