毕业设计(论文)一路数字信号采编的电路设计.doc

上传人:仙人指路1688 文档编号:4192548 上传时间:2023-04-09 格式:DOC 页数:32 大小:464.50KB
返回 下载 相关 举报
毕业设计(论文)一路数字信号采编的电路设计.doc_第1页
第1页 / 共32页
毕业设计(论文)一路数字信号采编的电路设计.doc_第2页
第2页 / 共32页
毕业设计(论文)一路数字信号采编的电路设计.doc_第3页
第3页 / 共32页
毕业设计(论文)一路数字信号采编的电路设计.doc_第4页
第4页 / 共32页
毕业设计(论文)一路数字信号采编的电路设计.doc_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《毕业设计(论文)一路数字信号采编的电路设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)一路数字信号采编的电路设计.doc(32页珍藏版)》请在三一办公上搜索。

1、1 绪论1.1 数据采集系统的概念和意义信号采集与处理是计算机与外部物理世界连接的桥梁,在科研、生产和人们的日常生活中,经常需要测量流量、速度、位移、温度、压力、外形等物理量,人们一般通过传感器把上述物理量转换成模拟电信号,然后将模拟电信号经过放大、滤波、数模转换等处理后送入计算机,这就是数据采集。数据采集技术是信息科学的重要分支,它不仅应用在智能仪器中,而且在现代工业生产、国防军事及科学研究等方面都得到广泛应用,无论是过程控制、状态监测,还是故障诊断、质量检测,都离不开数据采集系统1-2。从严格意义上说,数据采集系统应该是用计算机控制的多路数据自动检测或巡回检测,并且能够对数据实行存储、处理

2、、分析计算,以及从检测的数据中提取可用的信息,供显示、记录、打印或描绘的系统。总之,不论在哪个应用领域中,数据的采集与处理越及时,工作效率就越高,取得的经济效益就越大。1.2 数据采集系统研究现状数据采集存储系统目前在环境感知,图像处理、语音识别、通信等领域有着广泛的应用,它用于实时、高速地采集和记录应用领域的各项参数信息。随着应用领域的不断深入,信号分辨率、采样率,数据存储容量,存储时间等要求都大幅提升,设备可靠性和实时性要求也越来越高,因此高精度、高可靠性的大容量数据采集存储系统就显得尤为重要,而且抗冲击干扰能力、可扩展性及可移植性等方面因素都必须严格考虑处理3-4。传统的数据采集系统采用

3、单片机作为微处理器。近年来,数据采集系统的控制芯片由原来的单片机逐步发展到数字处理芯片DSP(数字信号处理器),嵌入式芯片等速度更高功能更强的芯片。在高性能数据采集系统中,通常采用单片机或DSP作为CPU,控制ADC(模/数转换器)、存储器和其他外围电路的工作5。但基于单片机和DSP设计的数据采集系统都有一定的不足:单片机的时钟频率较低,各种功能都要靠软件的运行来实现,软件运行时间在整个采样时间中占很大的比例,效率低,难以适应高速数据采集系统的要求;DSP的运算速度快,擅长处理密集的乘加运算,但很难完成外围的复杂硬件逻辑控制。FPGA是英文FieldProgrammable Gate Arra

4、y的缩写,即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。FPGA集成度高,器件密度高达数千万门,可完成复杂的时序与组合逻辑电路功能,通过编程,用户可立刻把一个通用FPGA芯片配置成需要的硬件数字电路,其内部丰富的布线资源也给修改、测试和系统升级提供了极大的方便。随着电子技术的飞速发展,FPGA 能有效克服单片机和DSP的缺点,它的全部控制逻辑均由硬件完成,容易实现硬件上的并行工作。FPGA内部可以嵌入DSP软核,增强了系统的

5、数据处理能力6-7;FPGA 还具有时钟频率高、内部延时小、编程配置灵活的特点,可以集采样控制、处理、缓存和传输于一个芯片内实现片上系统,这样大大提高了系统的可靠性,降低系统成本;同时随着 IP产业的崛起,更加缩短了产品的开发周期和上市时间,有利于在激烈的市场竞争中抢占先机;因此在多路并行高速数据采集领域得到广泛应用。对数据采集系统的设计提出两个方面的要求:一方面,要求接口简单灵活且有较高的数据传输率;另一方面,由于通道多、数据量较大,要求主机能够对实时数据做出快速响应,并及时进行分析和处理。一般的数据采集系统由多路数据选择器转换器、数据存储器、单片机控制器以及通信接口电路等A/D组成。传统的

6、数据采集器中的多路数据选择器由多个模拟开关组成,加上转换器的控制电路及数据存储器,电路所需元A/D器件较多,因此电路板设计的面积较大。如果采用现场可编程门阵列电路实现多路数据选择器、存储器及外围的一些FPGA控制电路。不仅可以减小电路板的设计体积,而且最大限度地提高系统的信号采集和处理能力。1.3主要研究内容本课题的主要研究内容是,在理解数据采集原理的基础上,设计一个数据采集系统,对一路数字信号进行采集,将采集编帧后的数据存储,并通过上位机软件进行数据的分析。2 系统总体设计F P G A控制单元U SB接口电路计算机FLASH存储器数字信号源422接口图2.1 系统整体结构图本设计的系统框图

7、如图2.1所示。该系统由422接口模块、FPGA控制模块、信号存储模块、USB通讯模块以及外围电路组成。其中,USB通信模块的设计利用了已有的研究成果。422接口负责接收外部的RS-422数字量信号,并将其送入FPGA采集。FPGA将读取到的数字量信号先进行数据编帧处理,接着存入外部FIFO中,最后控制存储于外部FLASH之中。电路的整个时序由逻辑控制模块协调控制。FPGA控制模块由FPGA及外围电路组成。FPGA是控制模块的核心部分,完成数据信号的采集、缓冲和传输控制。该设计方案选用FPGA作为主模块,主要是考虑FPGA现场可编程特性,使用灵活方便,能够降低硬件电路设计难度。信号存储模块在系

8、统中主要完成数字信息的存储。闪存(FLASH Memory)具有体积小、功耗低和数据不易丢失的特点,可用来实现存储器的功能。把采集到的数据缓存到外部FIFO中。当FIFO半满后,FPGA读取FIFO中的数据写入FLASH存储器中。USB接口模块实现FPGA与上位机之间的通信,完成上位机控制命令与Flash存储数据的传送。 3 系统硬件电路的设计3.1 主要器件的选择3.1.1 FPGA芯片的选择FPGA采用Xilinx 公司的Spartan-系列FPGA 中的XC2S100-6PQ208实现。XCF01SVO20作为EPROM,TPS70358作为供电芯片。XC2S100-6PQ208的核心电

9、压为2.5V,I/O口电压为3.3V,具有与通用5V数字电路直接连接的能力。速度等级是-6,采用PQFP封装类型,管脚数有208个,最大可用的用户I/O数为140个。系统门数有100000个,逻辑单元数(LC)为2700个;切片数(Slice)为1200个;BlockRAM有10个,是完全同步的双端口RAM,总容量为40K;分布式RAM位总数是38400 bits8。断电后,程序会保留在FPGA中,不会清除,使应用更加方便。3.1.2 数字通信接口芯片的选择数字通信接口选择MAX490芯片,MAX490是MAXIM公司生产的差分平衡型收发器芯片。集成片内包含1个驱动器和1个接收器适合于RS-4

10、85及RS-422通信标准。无误差传输数据的速率可达2.5Mb/s,若通信速率为100kb/s时,通信距离可达1200m9。3.1.3 外部FIFO的选择本设计采用FIFO数据缓存器。FIFO是指先入先出队列(First Input First Output,FIFO),这是一种传统的按顺序执行方法,先进入的指令先完成并引退,跟着才执行第二条指令。FIFO与普通存储器的区别是没有外部读写地址线,这样使用起来非常简单,但缺点就是只能顺序写入数据,顺序的读出数据,其数据地址由内部读写指针自动加1完成,不能像普通存储器那样可以由地址线决定读取或写入某个指定的地址。IDT7206是一种先进先出的双端口

11、数据缓存器。该器件使用一个满标志(FF)和一个空标志(EF)来检测其存储状态,通过W引脚和R引脚来控制数据的存储和读取。该设备提供了9位宽度的数据存储输入输出和一个控制作为用户的选择校验位。其时序如图3.1所示。需要注意的是,IDT7206是一个单向的FIFO双端口存储器。即只能由D0D8输入数据,由Q0-Q8输出数据,所以读、写控制线只有一套。也就是说不能作为双向的数据传送。另外因为这是一个FIFO(先入先出)存储器,所以没有绝对地址的概念,只有读指针和写指针的相对位置。当相对位置为0时,表明存储器空;为所用的存储器的写操图3.1 IDT7206时序图容量时,表明存储器已满。作:只要FF标志

12、不为0,就可以进行写操作,且可以与读操作同时进行。每写一次数据,写指针自动加一,当写指针与读指针的相对位置为存储器的容量时,标志FF清零。当FF标志为0时,所进行的任何写操作都不会改变存储器中的数据,也不会改变写指针的值。此时的写禁止由内部控制。读操作:只要EF标志不为0,就可以进行读操作,且可以与写操作同时进行。每读一次数据,读指针自动加一,当读指针与写指针的相对位置为0时,标志EF清零。当EF标志为0时,所进行的任何读操作都不会改变读指针,且读出的数据都为0FFH。即数据总线呈现高阻10。3.1.4 USB设计模块的选择USB接口采用基于Cypress公司生产的EZ-USB FX2系列中的

13、CY7C68013,是目前市面上第一块符合USB2.0标准的USB控制器。EZ-USB FX2 芯片包括1个8051处理器、1个串行接口引擎(SIE)、1个USB收发器、8.5KB片上RAM,4KB FIFO存储器以及1个通用可编程接口(GPIF)。FX2是一个全面集成的解决方案,它占用的电路板空间更少,开发时间更短11。CY7C68013采用编程接口GPIF模式。可编程接口GPIF是主机方式,可以由软件设置读写控制波形,灵活性很大,几乎可以对任何8/16bit接口的控制器、存储器和总线进行数据的主动读写,使用非常灵活,只要输出信号和就绪信号作相应的组合,就可以实现多种复杂的控制时序。3.2

14、硬件电路各模块的设计3.2.1 FPGA外围电路 (1)电源转换电路XC2S100的管脚电压为3.3V,内核电压为2.5V,因此本设计中采用一片TPS70358来实现5V到3.3V和2.5V的转换,以满足XC2S100的供电要求。当EN脚连接到一个低电平时该器件开始工作。SEQ控制哪个输出电压通道(VOUT1或VOUT2)先打开。当装置被启用并且SEQ为高电平时,VOUT2先打开,VOUT1保持关闭,当其值达到VOUT2输出电压的83时VOUT1打开。如果VOUT2被拉低于83(即过载条件)则VOUT1关闭。电源转换电路如图3.2所示:图3.2 电源转换电路(2)时钟电路XC2S100上有4个

15、全局时钟输入端口,GCLK0、GCLK1、GCLK2和GCLK3,在此仅使用GCLK0。本系统采用40MHz的晶体振荡器产生时钟信号。其余3个时钟输入端都接地以防止干扰。时钟电路如下图。图3.3 FPGA时钟电路(3)配置电路在Xilinx的FPGA中采用了SRAM制造工艺,需要提供外部存储器PROM、EPROM、Flash等来存储FPGA的下载文件,上电后数据会自动下载到FPGA内部,对FPGA进行配置。本设计中选用主串模式,在主串模式中必须使用Xilinx公司专用的PROM。XC2S100的配置文件大小为781,216位,选择XCF01SV020作为配置PROM。在该模式下,FPGA产生配

16、置时钟CCLK驱动外部串行PROM,FPGA将PROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。第一次数据下载通过Xilinx公司提供的开发软件ISE将配置文件烧写到XCF01SVO20中,此后每次上电后,XCF01SVO20会在CCLK的驱动下将配置数据写入FPGA的内部配置存储器。配置电路的原理图如图3.4所示。图3.4 FPGA配置电路其中,配置电路与FPGA相接时须接入4.7K的上拉电阻,以保证电路的正常工作。(4)去耦电路在每个电路芯片的电源引脚上都要并接一个去耦电容,其作用是降低电路中因负载变化而引起的噪声、减少干扰信号并使信号稳定。下图是本模块中FPGA的VC

17、CINT引脚与VCCO引脚的去耦接法。图3.5 去耦电容电路中其他芯片也相应的接去耦电容。3.2.2 数字信号采集电路单路数字量接口如图3.6所示。Rs422总线是现在广泛应用的工业总线,许多仪器用422总线进行通信12。由于所采集输入的数字量信号是采用RS-422差分信号电气特性传输的,故MAX490芯片负责将输入的差分信号还原成单端数字量信号,其最大波特率可达到2.5Mbps,满足数字量传输速率要求。电阻R是根据传输距离与介质而加入的接收匹配阻抗,可有效减少信号反射与衰减。 图3.6 数字量采集接口3.2.3 外部FIFO缓存电路使用IDT7206作为采集数据缓存。硬件电路如图3.7。ID

18、T7206是一个单向的FIFO双端口存储器。即只能由D0D8输入,系统只要求8位数据,所以对于IDT7206的数据位,只用前8位即可。.数据输入和输出端均只使用前8位(Q0Q7、D0D7);读允许信号R由FPGA的控制信号提供;写允许信号W由FPGA输入,当W为低时,将转换后的数据存入IDT7206;复位信号RS由FPGA控制,当RS输入为低电平时器件开始复位,其内部读和写都将回到初始位置且RS上升沿来临之前读信号和写信号都将保持高电平。图3.7 IDT7206缓存电路3.3 电路板的设计3.3.1 电路原理图设计在绘制电路原理图时,需要注意以下几个问题:首先,在绘制电路原理图之前,应该将电气

19、格点和锁定格点设置为开启状态,可以避免导线与器件引脚产生的虚连接。其次,在完成电路图的绘制后,进行电气规则检查(ERC)是一项非常重要的工作。根据设计要求,在电气规则检查矩阵中,设置相应的电气警告和电气错误的条件,ERC就可以全面的分析原理图的常见错误和无效的电气连接,如未连接的电源实体、悬空的输入管脚、输出管脚连接在电源上等。ERC的冲突点在原理图上的相应位置以高亮显示的形式逐一标出,并记录到ERC报告文件中。本系统的电路原理图见附录A。3.3.2 PCB设计在印刷电路板的设计过程中,应该遵循一些设计的基本原则,否则会使系统工作不稳定甚至不能正常工作,一般的解决办法包括布局设计、布线设计。(

20、1)布局设计考虑到本设计中元器件比较多,所以我按照以下方法进行布局。首先,按电气性能合理分区,完成同一功能的器件应相对集中,并调整各元器件以保证连线最为简洁;同时,调整各功能模块间的相对位置,使功能块间的连线最简洁。其次,本设计中电源和地滤波电路中的去耦电容较多,在放置去耦电容时,应将电容尽量靠近电源、接地引脚。(2)布线设计布线是整个PCB设计中最重要的工序,这将直接影响着PCB板的性能好坏。在该系统的PCB设计中,全板使用手工布线,首先注意到该设计中成组的信号线主要是数据线和地址线。所以在元器件位置确定后,应该先完成它们的布线,尽可能做到成组、平行分布,同时应尽可能的短,之后再进行各种控制

21、信号的布线。最后处理电源和接地引脚。在布线时,应按照地线电源线信号线的关系加宽电源、地线宽度,地线及电源线的典型线宽值为40Mil。采用45的折线布线,以减小高频信号的辐射。最后在版图布线完成后,对布线进行优化;同时,经初步网络检查和DRC检查无误后,对未布线区域进行地线填充13。4 系统软件设计 该系统的软件设计主要指FPGA软件设计。FPGA软件采用模块化设计方法,利用VHDL语言开发,设计框图如下。 FLASH控制外部FIFOFPGA数据编帧USB通信数字量接收图4.1 数字量采集框图4.1 数据采集422接口的系统顶层图为:图4.2 数字量接口系统顶层图其中:数字量接口采用RS485异

22、步串行数据通信接口。一个完整的UART接口包括发送模块和接收模块,具体到本次设计,数字量接口和工作模式选择接口使用UART的接收模块。UART串行数据格式如下图所示,串行数据包括8位数据、l位起始位、l位结束位、l位校验位,共11位。图4.3 UART串行数据格式系统接收的外部数字量数据,由于传输距离较远,很容易引进各种干扰信号:系统内部的一些关键信号,不可避免会受到杂波的干扰,导致一些信号会出现干扰、噪声14。为了让系统有效准确,必须采取有效的措施抑制该信号的干扰信号,本设计中采用消抖技术。对于信号消抖有软件和硬件两种方式,硬件消抖有多种方法,长线电缆这一类板外信号因干扰造成的大的抖动可以采

23、用积分电路具有施密特功能的门电路(如74HC14)来消除15。同样在软件方面,可以用VHDL实现类似的办法。对于小于触发器建立时间的抖动可以用时钟打一下实现滤波,但较大的抖动,可以采用延时比较法。延时比较法的思想就是N个系统时钟周期内读取的数据相同时我们认为收到了一个稳定的数据,否则认为是过渡态,予以消除。其中N要根据实际情况变化,延时比较法的流程图如图4.4。设S1为受扰信号,S2为经过消抖处理后要输出的信号。图4.4 延时比较法流程图下面给出用VHDL实现的延时消抖,同时给出仿真结果,是经过延时比较后的仿真图,bclk为实际输出的时钟信号,可以看到lclk的抖动被消除了。因此,延时比较法能

24、有效地消除抖动。entity xiaodou isport (fosc : in std_logic; lclk : in std_logic; bclk : out std_logic); end xiaodou;architecture Behavioral of xiaodou issignal count : std_logic_vector(1 downto 0); signal dout : std_logic; signal rstcnt : std_logic_vector(17 downto 0):=000000000000000000; signal rst : std_l

25、ogic; beginprocess ( fosc,rstcnt )-reset1beginif rstcnt = 111111111111111111 thenrstcnt = rstcnt;rst = 0;elsif foscevent and fosc =1 thenrstcnt = rstcnt + 1;rst = 1;end if;end process;process (fosc,rst)beginif rst = 1 thenrxout = 1;elsif fosc event and fosc = 1 thenif (lclk = 0) and (count(1) = 0) a

26、nd (dout = 1) thendout = 1;count = count+1;elsif (lclk = 0) and (count(1) = 1) and (dout = 1) thendout = 0;count = 00;elsif (lclk = 1) and (count(1) = 0) and (dout = 0) thendout = 0;count = count+1;elsif (lclk = 1) and (count(1) = 1) and (dout = 0) thendout = 1;count = 00;elsebclk = dout;count = 00;

27、end if;end if;end process;end Behavioral;仿真结果如下图所示:图4.5 消抖仿真结果4.2 数据存储4.2.1 FLASH存储器无效块检测本设计中的数据存储模块使用的是SAMSUNG公司的NAND型Flash K9K8G08UOA,由于在出厂时NAND结构的Flash芯片就可能存在一位或多位无效位的坏块,这种情况在NAND型Flash中是不可避免的。另外在使用过程中也可能会产生无效块,如果对Flash中的无效块进行读写操作,在检测其编程或擦除是否结束时,Flash反馈的状态信息就会出错,这样可能会使上位机软件进入死循环,造成数据的丢失和误码,为了保证数据

28、的完整性和有效性,在对Flash读写操作之前必须对Flash进行无效块检查,在对Flash进行检测时,首先要建立无效块信息表,并判断此块是否为有效块,然后再对Flash进行读写操作。整个无效块检测流程如图4.6所示:首先进行程序初始化设置,然后进行块擦除,块擦除结束判断是否成功,若擦除不成功则此块为无效块,并在此无效块的第1页和第2页的第2048个字节写入0X00,表示此块为无效块,接着块地址递增,进行下一块的擦除,整个过程如此循环,直到检测完最后一块为止。图4.6 无效块检测流程图4.2.2 数据的存储数字量信号在采集过程中存储于一片外部FIFO中,缓冲数字量数据。逻辑控制单元FPGA检测

29、FIFO的半满信号,FIFO半满后,将该片FIFO中已写入的数据存入Flash的指定区域中。数据存储具体流程如图4.7所示: 图4.7 数据存储流程5 电路及系统调试将程序下载到芯片以后,硬件部分连接至上位机,用上位机来设置信号源,实现递增、递减或固定值的数字量信号,如图5.1所示。图5.1 信号源设置图当信号源发出一组递增的数字量信号时,采集存储结果如下图5.2。图5.2 采集的递增数据当信号源发出一组递减的数字量信号时,采集存储结果如下图5.3。图5.3 采集的递减数据当信号源发出一组固定的数字量信号时,采集存储结果如下图5.4。图5.4 采集的固定数据由上述图可以看出采集存储的数据没有问

30、题,数据符合编帧的要求,帧格式为“04+6F+反码+原码”。6 总结本文介绍了对一路数字信号采编的电路设计。首先对数据采集作了简要概述,介绍了数据采集的发展现状和前景,然后提出了本次设计的目的与要求;其次针对整个系统的组成框架,详细阐述了每一个部分的原理和设计,以及在设计软件中的实际操作,最后简要分析了调试的结果和问题。本设计经过了细致的方案设计,分层次分模块的硬件设计,最终达到了设计之初所要达到的指标,基本上完成了所要设计的内容。但由于经验较少,在设计中还是遇到了不少问题,如由于外电路的干扰,电路不稳定等因素,导致采集到的波形稍有严重。就数据采集系统来说,已经具备了采集编帧、分析数据等功能。

31、但由于本设计还处于初级实验间段。在以后设计电路的时候应考虑到外部电路的干扰,只有外部电路稳定,才能更好的减小波形的误差。经过这次的毕业设计,使我学到如何解决在设计中所遇问题的方法,巩固了我在大学四年中学到的知识,锻炼了我的实践动手能力,而且扩展了我的视野,但是同时看到了自己的许多不足,希望自己可以在以后的工作和学习中得到克服改正。 附录A 系统原理图附录B 部分程序以下均省略了对库的定义library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;1.

32、数字信号接收部分entity rxslow isport(mclkx16 : in std_logic; rx : in std_logic; reset : in std_logic; jl : in std_logic_vector(1 downto 0); rxrdy : out std_logic; data : out std_logic_vector(7 downto 0); neibu_rxrdy : out std_logic; neibu_data : out std_logic_vector(7 downto 0) ); end rxslow;architecture Be

33、havioral of rxslow issignal cnt : integer range 0 to 175; signal flag : std_logic;signal stop : std_logic; signal tmp_data : std_logic_vector(7 downto 0); -signal temp_data : std_logic_vector(7 downto 0); beginprocess (mclkx16, reset)beginif reset = 1 thenflag = 1;elsif (mclkx16=1) and (mclkx16event

34、) then if cnt = 166 thenflag = 1;elsif rx = 0 then flag = 0;end if; end if;end process;process (mclkx16, reset)beginif reset = 1 thencnt = 0;elsif (mclkx16=1) and (mclkx16event) then if flag = 1 then-if cnt = 163 thencnt = 0;elsif flag = 0 then-else cnt = cnt + 1;end if;end if;end process;process (m

35、clkx16, reset)beginif reset = 1 thendata = 00000000;rxrdy= 1;stop=0;-temp_data = 00000000;elsif (mclkx16=1) and (mclkx16event) then if cnt = 23 thentmp_data(0)= rx;elsif cnt = 38 thentmp_data(1)= rx;elsif cnt = 53 thentmp_data(2)= rx;elsif cnt = 68 thentmp_data(3)= rx;elsif cnt = 83 thentmp_data(4)=

36、 rx;elsif cnt = 98 thentmp_data(5)= rx;elsif cnt = 113 thentmp_data(6)= rx;elsif cnt = 128 thentmp_data(7)= rx;-temp_data =temp_data+1;elsif cnt = 129 then-data = tmp_data;neibu_data = tmp_data;-data = tmp_data;elsif cnt = 158 then ifrx=1 then stop=1; elsif rx=0 then stop=0; end if;elsif cnt = 159 t

37、hendata = 00000100 ; -04 if jl(0)=1 then ifstop=1then rxrdy= 0;else rxrdy= 1; end if;end if; if jl(1)=1 then ifstop=1then neibu_rxrdy= 0;else neibu_rxrdy= 1; end if; end if;elsif cnt = 160 then rxrdy= 1;neibu_rxrdy= 1; elsif cnt = 161 thendata = 01101111; -6F if jl(0)=1 then ifstop=1then rxrdy= 0;el

38、se rxrdy= 1; end if;end if;elsif cnt = 162 thenrxrdy= 1;elsif cnt = 163 thendata = not tmp_data;-反码 if jl(0)=1 then ifstop=1then rxrdy= 0;else rxrdy= 1; end if;end if;elsif cnt = 164 thenrxrdy= 1;elsif cnt = 165 thendata = tmp_data; if jl(0)=1 then ifstop=1then rxrdy= 0;else rxrdy= 1; end if;end if;

39、elsif cnt = 166 thenrxrdy= 1;end if;end if;end process;end Behavioral;2. 数字信号分频部分entity fp22 isport(clk :in std_logic;-40M时钟信号输入 clkout : out std_logic -1.8181M 16倍波特率 );end fp22;architecture rtl of fp22 issignalcount1:integer range 0 to 10:=0 ;-输出时钟计数信号signal temp : std_logic :=0; begin process (cl

40、k)-begin if (clkevent and clk = 1) thenif(count1 = 10)thencount1 = 0;temp = not temp;elsecount1 = count1 + 1;end if;clkout-initialize s_state s_state s_state s_state s_state s_state f_cle = 1;flash_data =01100000;-write 0x60H commands_state f_we = 0;s_state s_state s_state f_we = 1;s_state -write row1 addressf_cle=0;f_ale=1;flash_d

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号