单片机总线接口电路的设计

上传人:工**** 文档编号:460525072 上传时间:2022-08-05 格式:DOC 页数:18 大小:256.50KB
返回 下载 相关 举报
单片机总线接口电路的设计_第1页
第1页 / 共18页
单片机总线接口电路的设计_第2页
第2页 / 共18页
单片机总线接口电路的设计_第3页
第3页 / 共18页
单片机总线接口电路的设计_第4页
第4页 / 共18页
单片机总线接口电路的设计_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《单片机总线接口电路的设计》由会员分享,可在线阅读,更多相关《单片机总线接口电路的设计(18页珍藏版)》请在金锄头文库上搜索。

1、Yibin UniversityEDA技术及应用期末设计报告题 目: 单片机总线接口电路的设计 专 业: 电子信息科学与技术 2013 年 12月 19 日摘要:单片机具有性价比高,功能灵活,易于人机交换和良好的数据处理能力等特点;FPGA具有高速,高可靠以及开发方便快捷标准等特点,以此两类器件相结合的电路结构在许多高性能仪器仪表和电子产品中被广泛运用。在目前的单片机与FPGA的接口电路实际设计中,重要的角色之一就是并串转换电路,并且在很多其它设计中是必不可少的,尤其是在数据量庞大的设计中,如果前级电路和后级电路直接通过并行传输数据,那么数据有多少位就得有多少根通信线,这必将导致通信的准确度的

2、降低和通信本钱的增加,当距离较长时这种方式更是不可采用的。这次设计是基于FPGA设计的51单片机与外围电路通信的并串转换电路,该转换电路在接到51单片发出的访问外部RAM的时序时,自动接受并行数据,接受完毕后自动串行发送数据,并且产生输出时钟,提供应后级电路使用。该电路可以完成51单片机与串口外围电路的通信,扩展了51单片机的I/O端口,使得单片机可以带更多的负载。关键字:1并串转换 2FPGA 3VHDL 4状态机5单片机目录摘要-2关键字-2设计概述-4总的系统框图-4设计思路-5方案论证-5设计程序-6设计仿真图-16仿真分析-17参考文献-17设计概述:本次设计用FPGA设计一个并串转

3、换电路,完成的功能是让51单片机可以和串行外设通信,51单片机可以用访问外部RAM的时序去访问该接口电路。在51单片机发出访问时序时,FPGA响应51单片机,接受数据并锁存,然后自动串行发送。具体过程是当ALE有效时,P0口送出地址低八位地址01,P2口送出高八位地址FA,FPGA接收地址并锁存;当WR有效时,P0送出8位数据,如果FPGA锁存的地址是FA01,那么此时FPAG将锁存8位数据。在整个接受过程中,FPGA不能发送数据,输出数据和时钟都拉为低电平。FPGA在接受完数据后将自动启动串行发送,每发送一位数据都发出一个周期的的输出时钟,作为后级电路的串行输入时钟。当数据发送完后,将数据发

4、送结束标志拉高两个周期的高电平。在整个发送期间,不能接受数据,只有发送结束后才可以接受新的数据,并自动发送。总的系统框图:8051FPGA单P0add_lowQout片P2add_highCLKout机WRwrsend_end ALEale设计思路:次本设计采用了模块设计的思路,把整个设计分为三个局部,即接收局部、发送局部、控制局部。接收局部主要负责响应单片机,锁存数据;发送局部主要负责串行发送数据和产生时钟信号;控制局部主要负责控制接受和发送,当在接受时数据时,发送局部被控制在等待状态,输出被拉低,发送完毕后自动开始发送。当在发送数据时控制局部将接收局部关闭,不予响应接收信号。方案论证:方案

5、一:在一个设计实体中完成所用功能,发送和接收之间通过内部标志信号控制。这样做可以用一个程序完成设计,但是内部控制信号繁多,时序复杂,思维不易理清,所以不采用此方案。方案二:采用模块化设计思想,分为接收、发送局部,发送局部采用计数器实现自动发送。该方案采用模块设计思路,明显比方案一思路清晰,但是发送局部采用计数器控制发送,这样不易实现接收和发送的相互控制和配合。方案三:采用模块设计思想,分为接收、控制、发送局部。接收局部采用状态机实现数据的制动发送,控制局部也采用状态机控制接收和发送。当在接收数据时,控制状态机让发送状态机处于等待状态;接收完毕后,接收模块反应一个信号给控制状态机,随后控制模块使

6、接收模块处于等待状态,使能发送模块,发送完毕后发送模块也反应一个信号给控制模块,控制模块在此使能接收模块,关闭发送模块,依次反复进行接收发送。第三种方案防止方案一和方案的缺点,所以本次设计采用第三种方案。设计程序:1接收局部程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY RECIVE ISPORT(REN,CLR:IN STD_LOGIC; -REN,CLR是控制模块发出的信号,REN使能接收,CLR关闭接收ALE,WR:IN STD_LOGIC;ADD_HIGH,ADD_LOW:IN STD_LOGIC_VECTOR(7 DOWNTO 0

7、);RECIVE_END:OUT STD_LOGIC;-接收结束标志信号DATAOUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END ENTITY RECIVE;ARCHITECTURE ART OF RECIVE ISSIGNAL TEMP:STD_LOGIC_VECTOR(15 DOWNTO 0);-16位地址锁存BEGIN PROCESS(ALE,WR,CLR) ISBEGINIF(CLR=1)THENRECIVE_END=0;-开始发送时将其清零ELSIF(REN=1)THENIF(ALE=1)THENTEMP=ADD_HIGH&ADD_LOW;END IF

8、;IF(TEMP=XFA01 AND WR=0)THENDATAOUT=ADD_LOW;RECIVE_END=1;-发送结束,置位发送结束标志END IF;END IF;END PROCESS;END ARCHITECTURE ART;2发送局部源程序:library IEEE;use IEEE.STD_LOGIC_1164.ALL;ENTITY SEND ISPORT(SEN,RESET,CLK,LOAD:IN STD_LOGIC;-SEN是控制模块发出的信号DATAIN:IN STD_LOGIC_VECTOR(7 DOWNTO 0);QOUT,CLKOUT,SEND_END:OUT STD

9、_LOGIC);-串行数据输出,时钟输出END ENTITY SEND;ARCHITECTURE ART OF SEND ISTYPE STATES IS (ST0,ST1,ST2,ST3,ST4,ST5,ST6,ST7,ST8,ST9,ST10,ST11,ST12,ST13,ST14,ST15,ST16,ST17,ST18);SIGNAL CURRENT_STATE,NEXT_STATE:STATES;SIGNAL TEMP:STD_LOGIC_VECTOR(7 DOWNTO 0);BEGIN PROCESS(LOAD) IS-锁存信号BEGINIF(LOAD=1)THENTEMP=DATA

10、IN;-锁存数据END IF;END PROCESS;PROCESS(CLK,RESET) ISBEGINIF (RESET=1) THENCURRENT_STATE=ST0;ELSIF (CLK=1 AND CLKEVENT)THENCURRENT_STATE CLKOUT=0;-状态0,等待状态QOUT=0;SEND_END=0;IF(SEN=0)THENNEXT_STATE=ST0;ELSENEXT_STATECLKOUT=1;QOUT=TEMP(0);SEND_END=0;NEXT_STATECLKOUT=0;QOUT=TEMP(0);SEND_END=0;NEXT_STATECLKOUT=1;QOUT=TEMP(1);SEND_END=0;NEXT_STATECLKOUT=0;QOUT=TEMP(1);SEND_END=0;NEXT_STATECLKOUT=1;QOUT=TEMP(2);SEND_END=0;NEXT_STATECLKOUT=0;QOUT=TEMP(2);SEND_END=0;NEXT_STATECLKOUT=1;QOUT=TEMP(3);SEND_END=0;NEXT_STATECLKOUT=0;QOUT=T

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号