APP下载

基于DSP+FPGA的图形显示控制系统

2013-12-17范俊锋简秦勤

电子科技 2013年3期
关键词:字库键值缓冲区

范俊锋,邓 轲,简秦勤

(西安电子科技大学电子工程学院,陕西西安 710071)

随着现代电子信息技术的发展,人机交互、图形图像数据的输出显示在系统设计中越来越重要,一方面要求各种参数的输入,另一方面要求将数据结构显示出来。文中设计的基于DSP和FPGA的系统结构,实现了人机交互和各种图形图像的输出显示,而且可以达到动态显示的效果。在设计上采用了软件填充的图形设计方法,先由DSP生成全局数据缓冲区,填充要绘制的图形,之后通过DSP[1]的EDMA传递给FPGA,FPGA实现显示屏的接口不断扫描,将数据送到显示屏显示。同时FPGA连接键盘接口,通过扫描法扫描键值,之后通过中断方式送到DSP,使DSP对各种输入进行控制。整个系统的结构图如图1所示。

图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[2],它是TI公司推出的一款高性能的数字信号处理器。FPGA采用的是Altera公司Cyclone系列的一款芯片EP3C780I7[3],这是一款高性价比的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[4-6]。

系统将键盘接口和显示接口连接在FPGA上。系统硬件原理如图2所示。

图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所示。

图3 图像显示

4 结束语

人机交互和图形图像显示技术,在需要人机交互系统应用中具有重要现实意义,文中讨论了基于DSP+FPGA的图形显示控制系统,给出了各部分的设计思想,提供了键盘输入和图形图像显示的功能,可以满足各种复杂的人机交互和图形图像显示,在实际使用中也得到了验证。

[1]李方慧,王飞,何佩琨.TMS320C6000系列DSPs原理与应用[M].2版.北京:电子工业出版社,2003.

[2]TI Conpration.TMS320C6713B floating point digital signal processors(SPRS186I)[M].USA:TI Conpration,2006.

[3]Altera Conpration.Cyclone III device handbook[M].USA:Altera Conpration,2010.

[4]Planar Conpration.EL640.480-AF1 family 6.4 electroluminescent VGA flat panel display user's manual[M].USA:Planar Conpration,2006.

[5]刘宇.基于TMS320F28335信号处理板的设计与实验[J].电子科技,2011,24(5):44 -48.

[6]张云昌,张令弥,赵建洋.基于McBSP的TMS320C6713异步串行通信的实现[J]. 电子科技,2009,22(7):55-58.

猜你喜欢

字库键值缓冲区
No.2 喜茶联合汉仪字库推出微型书和书签
非请勿进 为注册表的重要键值上把“锁”
论计算机字库单字的著作权保护
——以方正诉宝洁案为例
基于网络聚类与自适应概率的数据库缓冲区替换*
一键直达 Windows 10注册表编辑高招
一类装配支线缓冲区配置的两阶段求解方法研究
老家的惜字库
关键链技术缓冲区的确定方法研究
初涉缓冲区
字库之战