一种基于FPGA和DSP的图行显示控制系统设计
摘要 提出了一种基于DSP和FPGA的图行显示控制系统,以及系统各部分的设计方法和思想。硬件上充分利用DSP高速计算和FPGA并行处理特点;软件上给出了图形图像、汉字字符等的驱动函数。通过键盘输入和图形图像显示的功能,系统验证表明,系统可以满足图像、正弦波、三角波等较为复杂的动态图形的显示,效果良好。
关键词 DSP;FPGA;图像显示控制
随着现代电子信息技术的发展,人机交互、图形图像数据的输出显示在系统设计中越来越重要,一方面要求各种参数的输入,另一方面要求将数据结构显示出来。文中设计的基于DSP和FPGA的系统结构,实现了人机交互和各种图形图像的输出显示,而且可以达到动态显示的效果。在设计上采用了软件填充的图形设计方法,先由DSP生成全局数据缓冲区,填充要绘制的图形,之后通过DSP的EDMA传递给FPGA,FPGA实现显示屏的接口不断扫描,将数据送到显示屏显示。同时FPGA连接键盘接口,通过扫描法扫描键值,之后通过中断方式送到DSP,使DSP对各种输入进行控制。整个系统的结构图如图1所示。
1 系统功能
为实现显示系统的基本功能,系统要求实现人机交互,通过键盘输入各种键值,选择或输入各种参数,因此设计了6×6的矩阵键盘,可以输入26个英文字母和0~9共10个数字,键盘的接口连在FPGA上,FPGA将扫描到的键值以中断方式送到DSP,DSP根据输入的参数进行处理。
对于显示部分,系统要求提供各种驱动函数,可以实现画点、画线、画方框、画矩形、填充矩形、画椭圆、填充椭圆、画圆、填充圆、显示汉字、数字、英文字符以及图标Logo等功能,在这些基本画图函数的基础上可以实现各种复杂图形的显示。
总的实现方式是在DSP内部开辟一缓冲数据区,DSP将要输出的图形数据填充至数据缓冲区,需要显示时,DSP启动EDMA,通过总线将缓冲区的数据送至FPGA,在FPGA内开辟一双口RAM,一端接收DSP传输的缓冲区的数据,保存在双口RAM中,另一端将双口RAM中保存的缓冲区数据读出,以不断扫描的方式按照显示屏的时序将数据显示在显示屏上。
2 系统硬件设计
DSP具有高速处理的特点,运算速度快、FPGA并行处理能力强,常用于设计一些接口。DSP和FPGA相互结合的结构,能充分发挥二者的优点,选用各种复杂的系统。
显示控制系统采用的DSP是TI公司的,它是TI公司推出的一款高性能的数字信号处理器。FPGA采用的是Altera公司Cyclone系列的一款芯片EP3C78017,这是一款高性价比的FPGA芯片。FPGA和DSP通过DSP的外部总线接口EMIF连接。为便于系统的扩张,将FPGA映射在DSP的CE2和CE3的地址空间,对应的存储器映射地址分别为0xA0000000和0xB0000000。
由于要加载字库,系统需要大容量的数据存储器来存储字库数据和数据缓冲区,而DSP的内部RAM只有不到200 kB,因此需要扩展系统的数据存储器。系统外挂了一个SDRAM,它依然通过DSP的EMIF接口和DSP相连接,连接在DSP的CE0空间,对应的存储器映射地址为0x80000000,SDRAM的型号为MT48LC2M32BTG。
显示屏是640×480点阵的EL LCD宽温显示屏,其上下半屏同时扫描的双扫描单色显示屏,由于宽温特性,多用在工业和军事中,型号是EL640.480 AF1 ET。
系统将键盘接口和显示接口连接在FPGA上。系统硬件原理如图2所示。
3 系统软件设计
3.1 键盘接口设计
为实现人机交互必须要有相应的输入接口,系统在FPGA外部连接了6×6的矩阵键盘,以实现各种参数的输入和显示控制。DSP和FPGA要完成各自不同的控制逻辑。
FPGA中用VHDL硬件描述语言设计键值的扫描程序,采用逐行扫描的思想,并开辟一寄存器保存扫描到的键值,DSP读取该寄存器即得到按键键值,该寄存器对应的地址为0xA0001000,对应DSP中CE2的选址空间。当有按键按下时,FPGA扫描得到键值,保存至按键寄存器中,并向DSP发送外部中断Exint4,DSP在中断服务程序中读取地址为0xA0001000寄存器中的内容即可得到键值。
3.2 显示接口设计
由于显示屏是640×480的单色显示屏,要在DSP内开辟一显示的数据缓冲区,大小为38 400 Byte,缓冲区的每一位代表一个像素,代表显示屏上的一个像素点,缓冲区的第一个Byte的最低位点代表显示屏的第一个像素点,依次类推。
对于要显示的图像,DSP必须先用相应的图形算法填充该图形缓冲区,之后启动DSP的EDMA将数据通过DSP的总线送至FPGA的双口RAM中,双口RAM的起始地址是0xA0080000,对应LCD显示屏第一行的第1~32个像素点,结束地址是0xA00895FC,对应显示屏第480行第637~640个像素点。DSP是32位数据总线,每个地址可存储32位的像素点
- 在采用FPGA设计DSP系统中仿真的重要性 (06-21)
- 基于 DSP Builder的FIR滤波器的设计与实现(06-21)
- 基于FPGA的快速并行FFT及其在空间太阳望远镜图像锁定系统中的应用(06-21)
- 3DES算法的FPGA高速实现(06-21)
- 用FPGA实现FFT算法(06-21)
- FPGA的DSP性能揭秘(06-16)