基于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公司的TMS320C6713,它是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位的像素点。 对于画图函数,最基本的莫过于画点函数,它是其他各种作图函数的基础,也是实现各种复杂图形显示的基础。 画线、画方框、画矩形、填充矩形、画椭圆、填充椭圆、画圆、填充圆的驱动函数只要基于画点函数再配合相应的算法即可实现。 对于汉字的显示,需要加载相应的字库,系统中的字库采用16×16点阵的汉字字库。首先根据汉字的区位码在字库中找到相应的点阵数组,然后将点阵数组输入到相应坐标的显存缓冲区即可。为提高程序的运行速度,系统中没有采用标准C库文件的文件操作方式来读取字库数组,而是将字库文件转换为数组形式保存在SDRAM中,程序只需根据汉字的区位码查表即可得到点阵数组,大幅提高了程序的运行速度。 对于图标和图像的显示,首先也要将图像转换为相应的点阵数组,再按照要显示的坐标区域将点阵数组输入的相应区域即可。 用基本画图函数就可实现各种图形的显示,在此基础也可以实现各种复杂图像的显示,系统验证时曾显示了图像、正弦波、三角波等较为复杂的动态图形的显示,并可以通过键盘控制波形频率的改变,如图3所示。
4 结束语 人机交互和图形图像显示技术,在需要人机交互系统应用中具有重要现实意义,文中讨论了基于DSP FPGA的图形显示控制系统,给出了各部分的设计思想,提供了键盘输入和图形图像显示的功能,可以满足各种复杂的人机交互和图形图像显示,在实际使用中也得到了验证。 |