微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于FPGA的LCD显示远程更新

基于FPGA的LCD显示远程更新

时间:11-18 来源:互联网 点击:

时序发生模块主要产生数字TFT—LCD所需的像素点时钟D—CLK、行同步信号H—SYNC、场同步信号V—SYNC、行同步信号H—SYNC、数据使能信号Data—EN信号。随着FPGA的出现,利用编程逻辑方法产生行场扫描时序是一个发展方向。这种方法具有电路简单、功能强、修改方便、可靠性高等优点,只需在代码中修改一些时序参数就能产生任意时序的波形,可以支持各种接口时序要求的TFT. — LCD显示器。

·帧存控制模块

帧存控制模块实现2个帧存SRAM的“乒乓”切换,当DSP向其中一个帧存写显示信息时,由FPGA构成的帧存控制模块将另一个帧存的控制权交给LCD显示控制器图像处理模块,反之亦然。

·软件设计

TCP/IP是一种网络通信协议,它规范了网络上所有通信设备,尤其是一个主机与另一个主机之间的数据往来格式及传送方式。TCP/IP是Internet的基础协议,也是一种计算机数据打包和寻址的标准方法。在Intemet中几乎可以无差错地传送数据。

LWIP是瑞士计算机科学院的Adam Dunkels等开发的一套用于嵌入式系统的开放源代码TCP/IP协议栈。LWIP既可以移植到操作系统上,也可以在无操作系统的情况下独立运行。LWIP TCP/IP实现的重点是在保持TCP协议主要功能的基础上减少对RAM的占用,一般它只需要几十kB的RAM和50 kB左右的ROM就可以运行,使得LWIP协议栈适合在嵌入式系统中使用。

LWIP的特性如下:

(1)支持多网络接口下的IP转发;

(2)支持ICMP协议;

(3)包括实验性扩展的的UDP(用户数据报协议);

(4)包括阻塞控制,I T估算,以及快速恢复和转发的TCP(传输控制协议);

(5)提供专门的内部回调接口(Raw API)用于提高应用程序性能;

(6)可选择的Berkeley接121API(多线程情况下);

(7)在最新的版本中支持PPP;

(8)新版本中增加了的IP fragment的支持;

(9)支持DHCP协议,动态分配IP地址。

在Xilinx的Spartan 6 FPGA上实现的LWIP TCP/IP采用的是LWIP的版本V1.1.1,提出和采用以下几种移植和运行方式:

(1 )TCP/IP协议的每一层是一个单独进程,链路层是一个进程,IP层是一个进程,TCP层是一个进程。这样的优势是网络协议的每一层都非常清晰,代码的调试和理解都非常容易;最大的缺点是数据跨层传递时会引起上下文切换。接收一个TCP信息段要引起3次上下文切换(从网卡驱动程序到链路层进程,从链路层进程到IP层进程,从IP层进程~]TCP进程)。对于操作系统来说,任务切换是要浪费时间的。过频的上下文切换使得系统运行比较沉重,这是不可取的。

(2) TCP/IP协议栈在操作系统内核当中,应用程序通过操作系统的系统调用和协议栈来进行通讯,这样TCP/IP的协议栈就限定于特定的操作系统内核了。此法理论上可以实现,但代码不具有通用性,不便于将来的维护和再移植,同样也是不太可取的。

(3)TCP/IP协议栈都在一个进程当中,这样TCP/IP协议栈就和操作系统内核分开了,而应用层程序既可以是单独的进程也可以驻留在TCP/IP进程中。如果应用程序是单独的进程,可以通过操作系统的邮箱、消息队列等和TCP/IP进程进行通讯。此种方式移植层次清晰,移植代码量适中,是比较好的思路,并且在此基础上移植调试成功,证明此思路是切实可行的,但缺点是依赖于操作系统的任务通信机制,不能得到很高的性能。

(4)把应用层程序驻留TCP/IP进程中,则应用层程序就利用内部回调函数口(Raw API)和TCP/IP协议栈通讯。应用层程序既可以是独立的任务,也可以在TCP/IP线程中利用内部回调函数n(Raw API)和TCP/IP协议栈通讯。此方式不依赖实时操作系统,能在无操作系统的情况下运行。经过对LWIP协议栈源码的彻底消化,改写其接口代码,经多次调试移植成功,测试性能得到了很大提升。

2.4 软件设计流程图

软件设计分为发送部分和接受部分。

程序流程图如下:

发送端流程图 接收端流程图

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top