数字设计实例_第1页
数字设计实例_第2页
数字设计实例_第3页
数字设计实例_第4页
数字设计实例_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第12章数字设计实例12.1基于FPGA实现点阵式液晶显示控制12.2基于CPLD实现字符液晶显示控制12.3VGA彩条信号发生器12.4VGA图像显示控制器设计12.5异步串行接口(UART)设计12.6直接数字频率合成器(DDS)12.7等精度频率计12.8FIR数字滤波器12.9CRC校验码内容数字设计实例12.1基于FPGA实现点阵式液晶显示控制

GDM12864的结构及指令

GDM12864A原理简图

“写数据”时序图

指令名称控制信号控制代码RSR/WD7D6D5D4D3D2D1D0显示开关设置000011111D显示起始行设置0011L5L4L3L2L1L0页面地址设置0010111P2P1P0列地址设置0001C5C4C3C2C1C0读取状态字01busy0on/offreset0000写显示数据10数

据控制指令功能表顶层设计及状态分配

顶层设计

用状态机来进行设计。设置5个状态,分别是空闲状态“Idle”,写页面地址状态“Xpage”,写列地址状态“Yline”,写数据状态“Data”,显示状态“Display”。当处于Xpage状态时,rs=0,rw=0,按照前面介绍的命令格式“10111P2P1P0”将页面地址送上数据总线(P2P1P0表示页面地址)。当处于Yline状态时,rs=0,rw=0,将列地址“01C5C4C3C2C1C0”送上数据总线(C5C4C3C2C1C0代表0至63的列地址)。当处于Data状态时,rs=1,rw=0,依次将ROM中的显示数据送上数据总线。将8个页面全部扫描过一遍后,进入Display状态,rs=0,rw=0,将命令“00111111”送上数据总线。

液晶控制

字符液晶由点阵字符液晶显示器件和专用的行、列驱动器、控制器及必要的连接件装配而成,可显示数字和英文字符。字符液晶本身具有字符发生器,显示容量大,功能丰富,一般最少可显示1行8个或l行16个字符,每个字符由5×7、5×8或5×11的一组像素点阵排列构成,每个字符间有一点的间隔,每行间也有一行的间隔12.2基于CPLD实现字符液晶显示控制

CPLD与字符液晶HS162的接口典型电路HS162读写控制

状态机设计及源代码HS162-4液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的,为了方便控制,可以采用状态机进行设计。在设计中设置8个状态,分别是空闲状态“IDLE”,设置CGRAM状态“SETCGRAM”,工作方式设置状态“SETFUNCTION”,输入方式设置状态“SWITCHMODE”,光标归位状态“RETURNCURSOR”,字符移位状态“SHIFT”,写RAM状态“WRITERAM”。12.3VGA彩条信号发生器

VGA显示器采用光栅扫描方式,即轰击荧光屏的电子束在CRT显示器上从左到右、从上到下做有规律的移动,其水平移动受水平同步信号HSYNC控制,垂直移动受垂直同步信号VSYNC控制。扫描方式一般分为逐行扫描和隔行扫描,这里采用逐行扫描。完成一行扫描的时间称为水平扫描时间,其倒数称为行频率,完成一帧(整屏)扫描的时间称为垂直扫描时间,其倒数称为场频,又称刷新率。VGA工业标准要求的时钟频率如下:时钟频率(Clockfrequency) 25.175MHz(像素输出的频率)行频(Linefrequency) 31469Hz场频(Fieldfrequency) 59.94Hz颜色黑蓝绿品红青黄白R00001111G00110011B01010101颜色编码

一个象素点可有多种颜色,由表示该象素点的二进数确定,这里每个象素点我们采用3位二进制数表示:分别为三基色信号R、G、B。因此只可表示8种颜色,如表所示。颜色编码VGA行扫描时序VGA场扫描时序VGA时序行扫描时序要求(单位:像素,即输出一个像素Pixel的时间间隔)场扫描时序要求(单位:行,即输出一行Line的时间间隔)场同步头场图像场周期对应位置V_TfV_TaV_TbV_TcV_TdV_TeV_Tg时间(Lines)222584808525行同步头行图像行周期对应位置H_TfH_TaH_TbH_TcH_TdH_TeH_Tg时间(Pixels)8964086408800根据以上的行、场扫描时序要求,可设置两个计数器,一个是行扫描计数器hcnt,进行模800计数;另一个是场扫描计数器vcnt,进行模525计数。行扫描计数器的驱动时钟频率(像素输出的频率)按照VGA工业标准为25.175MHz。场扫描计数器以行同步信号HS为驱动时钟,当HS的下降沿到来时进行计数。设置完计数器后,就可对行图像H_Td和场图像V_Td所对应的640×480个点赋值。12.4VGA图像显示控制器设计VGA图像显示控制器结构框图

本例在VGA显示器上显示了一幅128×128点的图像,每个像素点依然使用3比特量化。因此ROM的存储单元数目为16384,即地址线宽度为14比特,数据线宽度为3比特。增加了一个图像位置移动控制部分,使得图像在屏幕范围内成45度角移动,撞到边缘后变向,类似于屏保。很显然,由于量化的比特数较少,显示出的图像只能看出大体的形状轮廓,若想提高图像的质量,必须增加对三基色R、G、B分别量化的比特数,而后再分别通过D/A转换器输出。三基色分别采用8比特表示

三基色分别采用1比特表示

VGA图像显示控制器顶层设计

12.5异步串行接口(UART)设计

基本的UART通信只需要两条信号线:RXD和TXD,TXD是UART的发送端,RXD是UART的接收端,接收与发送全双工工作。

UART是异步通信方式,发送方和接收方分别有各自独立的时钟,传输的速率由双方约定,使用起至式异步协议。起止式异步协议起止式异步协议的特点是一个字符一个字符地进行传输,字符之间没有固定的时间间隔要求,每个字符都以起始位开始,以停止符结束。每一个字符的前面都有一位起始位(低电平,逻辑值0),字符本身有5到8比特数据位组成,接着是一位校验位(也可以没有校验位),最后是一位(或一位半、二位)停止位,停止位后面是不定长度的空闲位。停止位和空闲位都规定为高电平,这样就保证起始位开始处一定有一个下降沿。数据接收数据接收:接收的首要任务是能够正确找到数据的位置。这主要靠检测数据的起始位和停止位来实现。起始位是一位0,它作为联络信号附加进发送信息,因为空闲位都为高电平,所以当接收数据线的信号突然变为低电平时,告诉接收端数据的到来。一个字符接收完毕后,对数据进行校验(若数据包含奇偶校验位),最后检测停止位,以确认数据接收完毕。

UART接收示意图

由于传输中有可能会产生毛刺,接收端极有可能将毛刺误认为是起始位,所以要对检测到的下降沿进行判别。一般采用如下的方法:取接收端的时钟频率是发送频率的16倍频,当检测到一个下降沿后,在接下来的16个周期内检测数据线上“0”的个数,若“0”的个数超过8个或者10(根据具体情况设置),则认为是起始位到来,否则认为起始位没有到来,继续检测传输线,等待起始位。起始位的检测数据发送:数据的发送实际上就是按照帧格式将寄存器中的并行数据转为串行数据,为其加上起始位和停止位,以一定的波特率进行传输。波特率可以有多种选择,如9600bits/s,14400bits/s,19200bits/s,38400bits/s等数据发送12.6直接数字频率合成器

1、DDS原理与顶层设计

DDS的基本结构如图所示,主要由相位累加器、加法器、波形存储ROM、D/A转换器组成。DDS结构图

其中K为频率控制字,P为相位控制字。设fc为参考时钟频率,N为相位累加器的字长,M为ROM数据位和D/A转换器的字长。相位累加器在时钟fc的控制下以步长K累加,输出的N位二进制码经过处理(截断处理)后与相位控制字相加,结果作为ROM的输入地址,对波形ROM寻址。ROM中输出的M位的幅度码经D/A转换后就可得到合成波形。合成信号的波形取决于ROM中存储的幅度码,因此可以用DDS产生任意波形。DDS顶层设计

图中加法器add32和寄存器reg32构成了相位累加器,加法器add12和寄存器reg12构成了相位调制器。乘法器mult用于调节DDS的步进频率,频率控制字和相位控制字分别由单片机控制键盘输入,锁相环输出40MHz的频率。波形存储器sin_rom的输出和D/A转换器相连。2、ROM初始化数据文件生成

初始化数据文件格式有2种:MemoryInitializationFile(.mif)格式文件,或Hexadecimal(Intel-Format)File(.hex)格式文件。生成初始化数据文件的方法通常有下面几种。(1)建立.mif格式文件(2)建立hex格式文件(3)其他方法3、宏功能模块的定制

选择ROM数据线地址线宽度添加数据文件4、使用嵌入式逻辑分析仪在线测试

QuartusII软件具有SignalTapII嵌入式逻辑分析仪,它提供了一种对器件进行实时测试的手段。SignalTapII嵌入式逻辑分析仪可以随设计文件一起下载到目标芯片中,用以捕捉目标芯片中设计者感兴趣的信号节点处的信息,而不影响芯片的正常工作。SignalTapII将测得的样本信号暂存于目标芯片的片内RAM(如ESB、M4K)中,然后通过器件的JTAG端口和ByteBlasterII编程线将采得的信息传出,送入计算机进行分析。(1)新建SignalTapII文件SignalTapII编辑窗

(2)调入待测信号

为了调入待测信号名,在下栏的空白处双击,即弹出如图所示的“NodeFinder”对话框,根据需要在“Filter”中选择感兴趣的类,然后单击“List”按钮,即在左栏出现与此工程相关的所有信号,可将欲查看的信号调入SignalTapII信号观察窗口。

(3)设置信号

单击全屏按钮和窗口左下角的“Setup”选项卡,即出现如图13.14所示的全屏编辑窗口。

(4)SignalTapII文件存盘

选择菜单“Assignments”中的“Settings”,在Category栏中选择“SignalTapIILogicAnalyzer”.在“SignalTapIIFile”栏中选中已存盘的SignalTapII文件名,并选中“EnableSignalTapIILogicAnalyzer”,单击“OK”按钮。(5)编译下载

选择菜单“Processing”中的“StartCompilation”,启动全程编译。编译结束后,SignalTapII的观察窗通常会自动打开,若没有打开,可选择菜单“Tools”中的“SignalTapIILogicAnalyzer”打开。打开试验开发系统的电源,连接JTAG编程接口,设定通信模式。通过“Setup”按钮选择硬件通信模式:ByteBlasterII或ByteBlasterMV。然后单击下方的“Device”栏的ScanChain按钮,对试验板进行扫描。如果在栏中出现FPGA的型号,表示系统JTAG通信正常,可以进行下载。最后在SOFManager中选择下载文件,单击下载图标,在左上角观察下载信息。(6)启动SignalTapII进行测试

单击Instance名“sin_stp”,再单击“AutorunAnalysis”按钮,即启动了SignalTapII,通常会自动弹出“Data”页,这时就

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论