基于FPGA的手写教学系统的数据传输与显示

时间:2022-07-12 11:10:04

基于FPGA的手写教学系统的数据传输与显示

[摘 要]现代多媒体教学中,教师对课件的应用越来越广泛,但利用鼠标进行重点的勾画和批注操作不够方便。所以在此描述了一个根据实际需求,以FPGA为核心同时结合高速采集技术与海量存储技术以及显示屏以及触摸于一体的新产品。这种教学手段可以让使用者在进行书写时更加方便、流畅,使多媒体教学的效果更佳显著。

[关键词]EP3C16 数据传输 显示屏 FPGA USB

中图分类号:TN919.3 文献标识码:A 文章编号:1009-914X(2014)21-0058-02

0、引言

黑板与PPT已经非常普遍的融入到了平时的课堂教学中。但是这两种模式都有自身的局限性。板书不具有保存性,而用鼠标对PPT进行备注亦是不甚方便。而由于计算机的应用越来越广泛,所以创造一种可以方便教师书写而又能够将上课资料便于携带保存和展示的新产品是很有必要的。与传统教学相比,多媒体教学必将会因其提高教学质量而在教学中得到广泛的推广和应用。

1、手写教学系统的组成

本系统是在现有的多媒体教学软件的基础上加以改进:在现有的一些应用软件将教学内容显示出来之后,若还想要实现重点语句的勾画,则需要在工具栏中对画笔进行选择,并通过鼠标控制线条的绘制,这种操作很不方便而且用鼠标写出的字不美观。本系统利用SD卡存储和USB传输教学内容并显示的触摸屏上,直接通过触屏笔进行教学重点的勾画,同步显示在投影设备上。系统的组成如图1所示:数据从USB和SD卡中通过接口模块被读出,然后显示在外设上。通过触屏模块可以对图片和幻灯片等进行备注。

2、所需器件概述

2.1、USB

USB是一种外设连接标准,此技术目的是为了简化计算机与外设的连接过程,同时兼容低速和高速的设备,从而解决计算机连接串行设备和并行设备连接的问题。

2.2、VGA显示

VGA是一种视频传输标准,具有分辨率高、显示速率快、颜色丰富等优点。显示与时序通用VGA显示卡系统主要由控制电路、显示缓存区和视频BIOS(基本输入输出系统)程序三个部分组成。控制电路主要完成时序发生、显示缓冲区数据操作、主时钟选择和D/A转换等功能;显示缓冲区提供显示数据缓存空间;视频BIOS作为控制程序固化在显示卡的ROM中。利用FPGA/CPLD和SDRAM构造双口SRAM。这种方法实时性好,成本较低,时序控制比较复杂,它是实现高性能低成本要求的最佳方案

2.3、开发板

设计采用Altera公司的Cyclone系列的EP3C16Q240,该芯片采用240脚的PQFP封装,提供249个IO接口。该芯片拥有12060个LEs;52个M4K RAM Block;总共可以提供2396160Bit的RAM;另外芯片内部还自带有2个锁相环,可以在高速运行的时候保证系统时钟信号的稳定性。配置芯片为EPCS4,配有JTAG接口和AS接口及复位电路,以完成对FPGA和其配置芯片的SOPC设计程序的仿真调试和固化。

3、具体模块设计

在设计的过程中,需要用HDL和其他语言构成系统数据处理的主要工程模块。其功能实现后可为用户提供算法处理模块的接口。实现数据处理后,读取SDRAM中的数据并送至数码显示管。

3.1、USB模块设计

USB的嵌入结构主要分为连个部分:一是外设的接口,二是一个内部的协议层来实现USB的数据I/O通信和控制。

3.1.1、数据缓冲

在本设计中使用双端口RAM来构成乒乓结构。乒乓结构是一种典型的用于数据流控制的处理技巧,主要是把输入数据流通过"输入数据选择单元"等时地分配到数据缓冲区SRAM A和SRAM B中。即在第一场时间将输入的数据流缓存到SRAM A;在第二场时间内通过"输入数据选择单元"进行切换,并将输入的数据流缓存到SRAM B,与此同时,还要将第一场图像数据通过"输出数据选择单元"的选择,送到"图像预处理模块"进行运算处理。之后,再在第三个缓冲周期通过"输入数据选择单元"的再次切换,将输入的数据流缓存到SRAM A,与此同时,再一次将第二场图像数据通过"输出数据选择单元"的切换,送到"数据预处理模块"进行运算处理。整个乒乓结构作为一个整体,对于输入数据流与输出数据流都是连续不停顿的,符合流水线处理的思想,实现对高速数据的无缝缓冲。

3.1.2、缓存结构

在数据传递的过程中,为了保证为使得帧不丢失,需要加上一个FIFO缓存器。这个缓存器带有一个写使能引脚和一个读使能引脚。在写有效时,引脚始终在时钟上升沿时写入数据,当读有效时,时钟引脚在时钟上升沿读出数据。当FIFO写满数据时,用full引脚标志位高电平,而当FIFO无数据时,empty引脚为高。在对FIFO存储器进行读和写时,不需要地址线参与寻址。

3.1.3、通信模块

通信部分的核心模块为PL模块,在有数据进行传输时,此模块负责控制通信,数据的处理以及分析。可以通过CRC冗余检验对数据进行分析处理信息。此过程分为三个部分,组装USB包,拆分USB包以及通过协议对包进行控制。

3.1.4、USB仲裁模块

最后需要一个USB仲裁模块,用来解析发送过来的包。寻找ROM指令空间,将数据发送。这个部分的核心就是将数据从USB部分采集出来,发送至VGA或者是其他的显示器,通过这些外设将数据显示出来。

3.2、VGA显示模块设计

整个系统工作的流程是:在时钟信号和数据采集信号的控制下,数据信号通过采集模块到系统的存储设备。存储设备通过时钟控制信号和VGA显示控制信号将信号传输到显示屏上。设计中显示的控制芯片为ILI9325,它是QVGA TFT-LCD显示的单芯片解决方案,支持240*320像素,可以显示262144真色彩,内部含有172800字节的图像内存(GRAM)。GRAM是一个矩阵,其内部和屏幕上的每个像素点一一对应。当需要屏幕上特定点显示时,只要将该位置的点的颜色数据写入到响应的GRAM中便可显示。所以显示特定的图像就需要对特定的指令寄存器进行控制最终就可以完成输入。

3.2.1、VGA时序

在 VGA 接口协议中,不同的显示模式都有严格的工业标准,不同的分辨率或不同的刷新频率,故其时序也不相同。首先根据刷新频率确定主时钟频率,然后由主时钟频率和图像分辨计算出行总周期数,再把同步、消隐各时序段的时间按照主计数脉冲源频率折算成时钟周期数。在FPGA 中利用计数器,以计算出的各时序段时钟周期数为基准,产生不同宽度和周期的脉冲信号,利用它们的逻辑组合产生视频的控制信号和 VGA 接口的同步信号。

根据GRAM的特性,首先要对屏幕进行初始化设置;其次设定显示范围和GRAM显示光标的位置;然后将数据写入到GRAM中,最终可进行显示。

3.2.2、时钟与电源设计

时钟采用 FPGA 片外 100 MHz 的晶体振荡器,使用 FPG内的2 个 PLL,分别进行5/4、27/25 倍频,从而获得125 MHz和108 MHz 稳定、精确的时钟频率信号,时钟信号提供给双口RAM 和 FMS3818 等芯片使用。系统设计 ±5 V 电源,+5 V 电压经分压,稳压后得到 +3. 3 V、+1. 2 V 电压供芯片使用。

3.2.3、程序设计

程序设计利用 Verilog HDL 语言编写,在 QuartusII 软件环境下运行。

本系统中SD卡内的内容以图像的形式储存,使用Void Read_Display(void)函数进行图像显示,该函数的作用是将SD特定位置的数据读取并保存到数组中,然后再将该数组的数据经过传输,最终显示到屏幕上。

代码如下:

Void Read_Display(void)

{……

ili9325_Dislpay_Area(0,0,240,240,0,0;

for(j=0;j

{ SD_Read_Data(A+j,512,buf;

for(i=0;i

ili9325_Write_Data(temp[2*i+1],temp[2*i];

}

ili9325_nCS=1;}

四、结论

在整个过程中完成了以下一些工作:主要基于FPGA的USB接口的设计实现。硬件部分采用的是Altera的开发板。本次设计采用的是自上而下层次化以及模块化的设计思路,所提出的嵌入到FPGA芯片中的USB接口协议方式。通过这种方式,可以实现外设间的数据交换,对系统各子模块进行具体设计与仿真。数据缓冲模块则利用FPGA系统时钟资源设计了时钟控制模块来产生系统所需的各种时钟,最后利用FPGA内部IP核设计了缓冲模块并通过Modelsim进行仿真。

参考文献

[1] 胡建革,宋海声,陶中幸.基于FPGA 的数据采集与显示系统的设计[J].辽宁:仪表技术与传感器.2012.03-0053-03.

[2] 陈武福,胡修林,陈钧,张兵山.基于FPGA技术的多路并行实时数据采集系统[J].武汉:华中理工大学学报.1999.03期.

[3] 吴晓陆.基于FPGA的USB通信系统的设计[D].大连理工大学.2010.

上一篇:浅析电力调度过程安全风险管理 下一篇:浅析起重机液压传动系统