CPLD与51单片机数据通信设计EDA大作业_第1页
CPLD与51单片机数据通信设计EDA大作业_第2页
CPLD与51单片机数据通信设计EDA大作业_第3页
CPLD与51单片机数据通信设计EDA大作业_第4页
CPLD与51单片机数据通信设计EDA大作业_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

./.州科技学院课程设计课程课程EDA课程设计题目CPLD与51单片机数据通信设计专业班级*********学生XX***学生学号***********指导教师*****2011年6月14日摘要本文介绍了利用行思科技的一款CPLD开发套件和微机上的QuartusⅡ等软件系统,使用VerilogHDL语言输入方法来实现串行通信。VerilogHDL就是在用途最广泛的C语言的基础上发展起来的一种硬件描述语言,是一种以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。它是由GDA(GatewayDesignAutomation)公司的PhilMoorby在1983年末首创的,最初只设计了一个仿真与验证工具,之后又陆续开发了相关的故障模拟与时序分析工具。1985年Moorby推出它的第三个商用仿真器Verilog-XL,获得了巨大的成功,从而使得VerilogHDL迅速得到推广应用。本文简单介绍EDA技术的发展史、说明QuartusⅡ的使用过程,阐述了单片机与CPLD实行最简单的串行通信(SPI)相关过程。关键词:EDA(电子设计自动化);VerilogHDL(硬件描述语言);QuartusⅡ软件开发环境目录TOC\o"1-3"\h\u24245第1章概述1124481.1.1EDA技术与应用 2314281.1.2EDA技术发展趋势 2146081.2.1EDA硬件工作平台 3258621.2.2EDA的软件工作平台 31875第2章CPLD原理图设计 42.3系统逻辑框图: 51875第3章单片机原理图设计63.2硬件结构图: 724725第4章系统程序设计 64164.1.1CPLD通信协议SPI 864164.1.2实验原理 85654.2.1设计规划 8201894.2.2设计说明 9179504.3程序设计 92518131375结论 1321082参考文献 1321082附录与思考14第1章概述

EDA是电子设计自动化(ElectronicDesignAutomation)的缩写。由于它是一门刚刚发展起来的新技术,涉与面广,容丰富,理解各异,所以目前尚无一个确切的定义[1]。但从EDA技术的几个主要方面的容来看,可以理解为:EDA技术是以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件与实验开发系统为设计工具,通过有关的开发软件,自动完成用软件的方式设计电子系统到硬件系统的一门新技术。可以实现逻辑编译、逻辑化简、逻辑分割、逻辑综合与优化,逻辑布局布线、逻辑仿真。完成对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片[2]。EDA技术是伴随着计算机、集成电路、电子系统的设计发展起来的,至今已有30多年的历程。大致可以分为三个发展阶段。20世纪70年代的CAD(计算机辅助设计)阶段:这一阶段的主要特征是利用计算机辅助进行电路原理图编辑,PCB布同布线,使得设计师从传统高度重复繁杂的绘图劳动中解脱出来。20世纪80年代的QAE(计算机辅助工程设计)阶段:这一阶段的主要特征是以逻辑摸拟、定时分析、故障仿真、自动布局布线为核心,重点解决电路设计的功能检测等问题,使设计能在产品制作之前预知产品的功能与性能[3]。20世纪90年代是EDA(电子设计自动化)阶段:这一阶段的主要特征是以高级描述语言,系统级仿真和综合技术为特点,采用"自顶向下"的设计理念,将设计前期的许多高层次设计由EDA工具来完成[4]。EDA是电子技术设计自动化,也就是能够帮助人们设计电子电路或系统的软件工具。该工具可以在电子产品的各个设计阶段发挥作用,使设计更复杂的电路和系统成为可能。在原理图设计阶段,可以使用EDA中的仿真工具论证设计的正确性;在芯片设计阶段,可以使用EDA中的芯片设计工具设计制作芯片的版图;在电路板设计阶段,可以使用EDA中电路板设计工具设计多层电路板。特别是支持硬件描述语言的EDA工具的出现,使复杂数字系统设计自动化成为可能,只要用硬件描述语言将数字系统的行为描述正确,就可以进行该数字系统的芯片设计与制造[5]。21世纪将是EDA技术的高速发展期,EDA技术将是对21世纪产生重大影响的十大技术之一。

硬件描述语言

:

硬件描述语言(HDL)是一种用于进行电子系统硬件设计的计算机高级语言,它采用软件的设计方法来描述电子系统的逻辑功能、电路结构和连接形式。

常用硬件描述语言有HDL、Verilog和VHDL语言[6]。1.1.1EDA技术与应用电子EDA技术发展迅猛,逐渐在教学、科研、产品设计与制造等各方面都发挥着巨大的作用。在教学方面:几乎所有理工科(特别是电子信息)类的高校都开设了EDA课程。主要是让学生了解EDA的基本原理和基本概念、硬件描述系统逻辑的方法、使用EDA工具进行电子电路课程的模拟仿真实验并在作毕业设计时从事简单电子系统的设计,为今后工作打下基础。具有代表性的是全国每两年举办一次的大学生电子设计竞赛活动。在科研方面:主要利用电路仿真工具进行电路设计与仿真;利用虚拟仪器进行产品调试;将FPGA器件的开发应用到仪器设备中。在产品设计与制造方面:从高性能的微处理器、数字信号处理器一直到彩电、音响和电子玩具电路等,EDA技术不单是应用于前期的计算机模拟仿真、产品调试,而且也在后期的制作、电子设备的研制与生产、电路板的焊接、器件的制作过程等有重要作用。可以说电子EDA技术已经成为电子工业领域不可缺少的技术支持[7]。1.1.2EDA技术发展趋势1.2.1EDA硬件工作平台1.计算机;2.CPLD开发套件一款(MAX2EPM1270T144C5)。1.2.2EDA的软件工作平台PLD(ProgrammableLogicDevice)是一种由用户根据需要而自行构造逻辑功能的数字集成电路。目前主要有两大类型:CPLD(ComplexPLD)和FPGA(FieldProgrammableGateArray)。它们的基本设计方法是借助于EDA软件,用原理图、状态机、布尔表达式、硬件描述语言等方法,生成相应的目标文件,最后用编程器或下载电缆,由目标器件实现。生产PLD的厂家很多,但最有代表性的PLD厂家为Altera、Xilinx和Lattice公司。我们采用了QuartusⅡ软件作为开发工具。1.2.3SPI协议简述SPI,是英语SerialPeripheralInterface的缩写,顾名思义就是串行外围设备接口。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议。SPI是一个环形总线结构,由ss(cs)、sck、sdi、sdo构成,其时序其实很简单,主要是在sck的控制下,两个双向移位寄存器进行数据交换。上升沿发送、下降沿接收、高位先发送。上升沿到来的时候,sdo上的电平将被发送到从设备的寄存器中。下降沿到来的时候,sdi上的电平将被接收到主设备的寄存器中。第2章CPLD原理图设计2.1CPLD数据接收原理流程图:开始开始posedgesckcs==1counter<=0;sbuf[7-counter]<=dataounter<=counter+1counter==4'd8counter<=0; sbuf[7:0]<=sbuf[7:0]Nsbuf[7:0]<=sbuf[7:0]YNYN图2-1CPLD数据接收流程图2.2CPLD显示流程图:开始posedgesckout[3:0]是否为1-8decodeout输出为其段码开始posedgesckout[3:0]是否为1-8decodeout输出为其段码NNYN图2-2CPLD数据显示流程图2.3CPLD设计的电路逻辑框图:图2-3系统逻辑框图图2-3系统逻辑框图第3章单片机原理图设计3.151数据发送流程图:开始开始初始化变量发送初始值buf=5cs=1;hc=buf;cs=0;i<8i=0dat=hc&0x80hc=hc<<1sck发送一个脉冲i++sck发送一个脉冲等待发送下一个数据3-1发送数据流程图3.251硬件结构图:图3-2硬件结构图第4章系统程序设计4.1.1CPLD通信协议SPI:

本次课程设计中只取了SPI协议在方式0,CPOL=0(SCL为低时数据线空闲);CPHA=0(为第一个SCl上升沿时),CPLD开始采集数据。为了设计的简单,简化了数据通信协议,题目要用CPLD接收来自51单片机的数据并在数码管上显示,把51单片机数据接收端口SDO(CPLD发送端口)给省略了,还有在verilog程序设计时,省略了SPI中有关寄存器的配置。4.1.2实验原理1.发送程序:当51单片机初始化之后,会向CPLD发送一个数字6;然后等待下一个按键按下,每当按键按下,就会发送对应的数字过去,每次发送时都会重新打开片选CS,每次发送完一次数据都会关闭CS。2.接收数据:当检测到片选信号CS有效时,在每个SCK上升沿时,将数据依次放到缓冲寄存器buf里面,依次将其送到共阴极数码管上显示,注意SPI协议发送数据是从低位往高位发送的,接收时注意。每接收8位数据,计数变量counter清零,以便下次继续发送数据。4.2.1设计规划基于硬件描述语言(VerilogHDL),行思科技的开发套件与QuartusⅡ软件设计数字钟,实现实验要求的实现51单片机与CPLD之间的数据通信(采用SPI协议),并通过8位八段共阴数码管静态稳定准确地显示出来。4.2.2设计说明本章节主要介绍用VerilogHDL语言来描述SPI协议通信和显示部分与c语言描述的单片机发送数据的程序部分。4.3.1数据接收与显示程序modulespi(sck,data,cs,decodeout);inputsck,data,cs;output[6:0]decodeout;reg[6:0]decodeout;wire[7:0]out;reg[7:0]sbuf;reg[3:0]counter,counter2;always(posedgesck)begin if(cs) begin counter<=0; //out<=0; end else begin sbuf[7-counter]<=data; counter<=counter+1; if(counter==4'd8) begin counter<=0; sbuf[7:0]<=sbuf[7:0]; end endendwire[7:0]t_buf=sbuf[7:0];assignout[7:0]=t_buf[7:0];always(*)begincase(out[3:0])4'd0:decodeout=7'h3f;4'd1:decodeout=7'h06;4'd2:decodeout=7'h5b;4'd3:decodeout=7'h4f;4'd4:decodeout=7'h66;4'd5:decodeout=7'h6d;4'd6:decodeout=7'h7d;4'd7:decodeout=7'h07;4'd8:decodeout=7'h7f;4'd9:decodeout=7'h6f;default:decodeout=7'bx;endcaseend/*/*case(out[7:4])4'd0:decodeout2=7'h3f;4'd1:decodeout2=7'h06;4'd2:decodeout2=7'h5b;4'd3:decodeout2=7'h4f;4'd4:decodeout2=7'h66;4'd5:decodeout2=7'h6d;4'd6:decodeout2=7'h7d;4'd7:decodeout2=7'h07;4'd8:decodeout2=7'h7f;4'd9:decodeout2=7'h6f;default:decodeout2=7'bx;endcase*/endmodule//程序注释部分为追加的显示发送数据的高四位#include<reg52.h>#include<intrins.h>sbitsck=P3^1;sbitdat=P3^2;#include<reg52.h>#include<intrins.h>sbitsck=P3^1;sbitdat=P3^2;sbitcs=P3^3;unsignedcharbuf;voidinitck(){ SCON=0x70; ES=1; EA=1; TMOD|=0x20; TH1=TL1=0xfd; TR1=1;}#include<reg52.h>#include<intrins.h>sbitsck=P3^1;sbitdat=P3^2;sbitcs=P3^3;unsignedcharbuf;voiddelay(){ inti,j; for(i=0;i<50;i++)voidmain(){ unsignedchari,hc,hc2;voidmain(){ unsignedchari,hc,hc2; buf=0x6; sck=0; initck(); while(1) { cs=1; hc2=hc=buf; cs=0; for(i=0;i<8;i++) { dat=hc&0x80; hc=hc<<1; sck=1; _nop_(); _nop_(); delay(); sck=0; } cs=1; while(hc2==buf); buf=buf-0x30; }}voidfack()interrupt4{ RI=0; if(SBUF!=0) buf=SBUF;}方框里为用电脑发送数据,单片机接收,然后再送给CPLD显示的程序}voiddelay2(){ inti,j; for(i=0;i<10;i++) for(j=0;j<1000;j++);}voidmain(){unsignedchari,hc; buf=0x5; sck=0; while(1) { cs=1; hc=buf; cs=0; for(i=0;i<8;i++) { dat=hc&0x80; hc=hc<<1; sck=1; _nop_(); _nop_(); delay(); sck=0; } cs=1; while(P0==0xff); delay2(); if(P0==0xfe) buf=1; elseif(P0==0xfd) buf=2; elseif(P0==0xfb) buf=3; elseif(P0==0xf7) buf=4; elseif(P0==0xef) buf=5; elseif(P0==0xdf) buf=6; elseif(P0==0xbf) buf=7; elseif(P0==0x7f) buf=8; while(P0!=0xff); delay2();}}4.4实验连接1.51单片机,键盘输入口P0,数据输出口sck=P3^1.dat=P3^2.cs=P3^3。2.CPLD如下图:结论 通过此次课程设计,让我对EDA这门技术有了更深的体会,并更好的学会了使用QuartusⅡ软件进行硬件设计。 此次课程设计时基于VerilogHDL语言进行的数据通信,在课程设计时,我逐渐掌握了VerilogHDL语言的语句与语法等的使用。但在学习过程中,也遇到了很多困难,由于刚刚学习EDA不久,所以很多细节容都不是很了解,尤其时VHDL语言的运用。我先上网找了一些资料和程序,一点点的看,慢慢摸索着学习写语句。最后在老师和同学的帮助下,终于完成了此设计,以后我会利用更多时间来学习EDA技术。EDA技术有着非常好的发展前景,是进几年电子工业的发展趋向,中国的EDA行业发展十分迅速,有着很大的潜力。参考文献[1]国丽,朱维勇.电子技术实验指导书.:中国科技大学,2000[2]松,黄继业.EDA技术实用教程.:科学,2002[3]家

温馨提示

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

最新文档

评论

0/150

提交评论