版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Yibin UniversityEDA技术及应用期末设计报告题 目: 单片机总线接口电路的设计 专 业: 电子信息科学与技术 2013 年 12月 19 日摘要:单片机具有性价比高,功能灵活,易于人机交换和良好的数据处理能力等特点;FPGA具有高速,高可靠以及开发方便快捷规范等特点,以此两类器件相结合的电路结构在许多高性能仪器仪表和电子产品中被广泛运用。在目前的单片机与FPGA的接口电路实际设计中,重要的角色之一就是并串转换电路,并且在很多其它设计中是必不可少的,尤其是在数据量庞大的设计中,如果前级电路和后级电路直接通过并行传输数据,那么数据有多少位就得有多少根通信线,这必将导致通信的准确度的
2、降低和通信成本的增加,当距离较长时这种方式更是不可采用的。这次设计是基于FPGA设计的51单片机与外围电路通信的并串转换电路,该转换电路在接到51单片发出的访问外部RAM的时序时,自动接受并行数据,接受完毕后自动串行发送数据,并且产生输出时钟,提供给后级电路使用。该电路可以完成51单片机与串口外围电路的通信,扩展了51单片机的I/O端口,使得单片机可以带更多的负载。关键字:(1)并串转换 (2)FPGA (3)VHDL (4)状态机(5)单片机目录摘要-2关键字-2设计概述-4总的系统框图-4设计思路-5方案论证-5设计程序-6设计仿真图-16仿真分析-17参考文献-17设计概述:本次设计用F
3、PGA设计一个并串转换电路,完成的功能是让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_VEC
7、TOR(7 DOWNTO 0);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&
8、ADD_LOW;END IF;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,S
9、END_END:OUT STD_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=
10、1)THENTEMP=DATAIN;-锁存数据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
11、;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=TEMP(3);SEND_END=0;NEXT_STATECLKOUT=1;QOUT=TEMP(4);SEND_END=
12、0;NEXT_STATECLKOUT=0;QOUT=TEMP(4);SEND_END=0;NEXT_STATECLKOUT=1;QOUT=TEMP(5);SEND_END=0;NEXT_STATECLKOUT=0;QOUT=TEMP(5);SEND_END=0;NEXT_STATECLKOUT=1;QOUT=TEMP(6);SEND_END=0;NEXT_STATECLKOUT=0;QOUT=TEMP(6);SEND_END=0;NEXT_STATECLKOUT=1;QOUT=TEMP(7);SEND_END=0;NEXT_STATECLKOUT=0;QOUT=TEMP(7);SEND_END
13、=0;NEXT_STATECLKOUT=0;-发送结束,将接收标志位置位QOUT=0;SEND_END=1;NEXT_STATECLKOUT=0;QOUT=0;SEND_END=1;NEXT_STATE=ST0;END CASE;-END IF;END PROCESS;END ARCHITECTURE ART;3)控制部分源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY CONT ISPORT(CLK,RESET:IN STD_LOGIC;SEND_END,RECIVE_END:IN STD_LOGIC;CLR,REN:OUT STD_LO
14、GIC;LOAD,SEN:OUT STD_LOGIC);END ENTITY CONT;ARCHITECTURE ART OF CONT ISTYPE STATES IS(ST0,ST1,ST2,ST3,ST4);SIGNAL CURRENT_STATE,NEXT_STATE:STATES;BEGINPROCESS(RESET,CLK) ISBEGINIF(RESET=1)THENCURRENT_STATE=ST0;ELSIF(CLKEVENT AND CLK=0)THENCURRENT_STATEREN=0;CLR=1;SEN=0;LOAD=0;IF(RECIVE_END=0)THENNEX
15、T_STATE=ST1;ELSENEXT_STATEREN=1;CLR=0;SEN=0;LOAD=0;IF(RECIVE_END=1)THENNEXT_STATE=ST2;ELSENEXT_STATEREN=0;CLR=1;SEN=0;LOAD=1;NEXT_STATEREN=0;CLR=0;SEN=1;LOAD=0;NEXT_STATEREN=0;CLR=0;SEN=0;LOAD=0;IF(SEND_END=1)THENNEXT_STATE=ST0;ELSENEXT_STATE=ST4; END IF; END CASE;END PROCESS;END ARCHITECTURE ART;设计仿真图:图一.接收部分源程序仿真图二.发送部分源程序仿真图三.控制部分源程序仿真仿真分析:由图一可知,当单片机发出访问时序时和访问地址时,该电路响应单片机,接收了数据,并且在接受完毕后自动开始串行发送。由仿真图可知接收的数据是46H,串行发送的数据是0100 0110,显然和接收的数据一样。当发送完毕后,该电路让SEND_END发出持续两个周期的正脉冲。输出数据Qout在输出时钟CLKout的下降沿时有效。由图二可知,当数据在串行发送时,如果单片机再次发出访问时序,该接口电路不会响应,访问无效,发送不受影响。由图三可知,当数据完成一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026人工智能行业市场竞争现状供需分析及投资评估规划分析研究报告
- 2026中国食品饮料行业市场现状供需分析及投资布局规划分析研究报告
- 2026乳房假体材料安全性争议与市场信任度重建路径报告
- 2026中国智能家居行业发展趋势调研与投资规划深度分析报告
- 管网考试题目类型与参考答案
- 2026年6月青少年机器人技术等级考试理论综合试卷五级真题(含答案-在末尾)
- 自考里有关杜甫的考试题目及答案分享
- 大专法律考试典型试题及参考答案
- 美术 2025届高三周练卷模拟卷
- 湖南卷 政治 2007届学考重点中学模拟卷
- 2026年中小学教师(语文)副高级职称评审答辩题库及答案
- 学校管理与教师专业发展手册
- 初中音乐七年级上册《美丽的草原我的家》深度鉴赏与跨文化理解教案
- 2026秋新人教版英语五年级上册单元一Unit 1 Different friends测试卷-提高卷附答案(文档中已插入听力音频)
- 2026广西南宁市青秀区伶俐镇人民政府招聘2人(劳务派遣)笔试参考题库及答案详解
- 2026年餐饮服务食品安全管理员试题及答案
- GB/T 47950-2026资产管理数据资产登记指南
- 2026版《医师外出会诊管理暂行规定》课件
- 影像医学技术操作规程大全
- 2026年河南高考地理考试试卷及答案
- 2026年综合评标专家库专家考试(法律法规)试题及解析(浙江浙江)
评论
0/150
提交评论