FPGA和外围51单片机的通信
- 格式:doc
- 大小:207.00 KB
- 文档页数:5
基于51单片机和FPGA的人机交互系统的设计
基于51 单片机和FPGA 的人机交互系统的设计
在现代各类仪器的开发中,人机交互功能正起着无可替代的作用。
人
机交互界面友好的仪器将更容易操作和使用,从而提高工作效率。
液晶显示器(LCD)具有功耗低、价格低、寿命长、接口控制方便等特点,在科研与设计
领域正发挥着越来越大的作用。
FPGA 作为单片机外设的接口芯片,可以大大简化接口电路,通过对FPGA 进行编程,可以实现常用的译码、地址选通等功能。
本文以C8051F020 单片机与FPGA 互连系统为控制核心,以液晶显示控制器T6963C 为例,结合行扫描键盘,简述了一种人机交互功能的设计。
1 系统设计方案:
FPGA 可在很大程度上扩展单片机的资源,然而人机交互功能仍应尽量减少对单片机及FPGA 的资源消耗,以便将更多的片内资源用于其他功能的扩展。
采用FPGA 扫描键盘可以节省单片机的资源,同时也能灵活地实现键盘的扩展。
而考虑到液晶控制较复杂,依然采用单片机控制LCD,使LCD 的各种功能得到最大程度的利用,其系统框图如图1 所示。
2 硬件电路及FPGA 接口设计:
2.1 总线接口设计:
这里采用单片机C8051F020 与CycloneⅡFPGA 互连的系统。
C8051F020 器件是完全集成的混合信号系统级MCU 芯片,具有64 个数字I/O 引脚,与8051 完全兼容,而且速度得到了极大提高,70%的指令执行时间为1 或2 个系统时钟周期,只有4 条指令的执行时间大于4 个系统时钟周期。
此外,C8051F020 系列MCU 对CIP-51 内核和外设有几项关键性的改进,提高。
基于FPGA的单片机外围接口电路设计微计算机信息摘要:利用现场可编程门阵列 FPGA实现单片机的外设接口电路可以简化单片机系统的硬件电路,提高系统的集成度、可靠性和系统设计的灵活性。
本文介绍了基于 FPGA的单片机外设接口电路的基本设计方法,分别给出了各个功能模块的设计思路和实现方法。
所有功能的实现全部采用 VHDL进行描述。
0 引言单片机具有性价比高、功能灵活、易于人机对话、数据处理能力强等特点。
单片机应用系统通常由键盘、显示器、通信接口、存储器、A/D、D/A电路等部分组成。
传统的单片机系统经常要用标准的逻辑电路或专用的接口芯片来组成外围电路,如地址译码、I/O扩展等功能通常由标准的TTL/COMS逻辑电路或各种专用接口芯片实现,这样就会使系统的芯片数增多,接线复杂,从而使电路板面积增大、可靠性和 EMI性能减低,难以实现设计的小型化、集成化和高可靠性。
而可编程门阵列FPGA的LCA结构和它丰富的内部资源可以用来设计各种组合逻辑和时序逻辑电路,因此使用FPGA设计单片机的外围电路能够大大简化系统硬件结构,使系统的设计、修改和扩展都变的十分灵活方便。
本文通过对FPGA器件进行功能设计,取代传统单片机系统中外设接口用的标准逻辑电路和专用的接口芯片,使单片机系统的硬件电路大大简化并提高其可靠性。
当需要改变系统性能时,可以通过对FPGA重新编程而不用改变硬件电路,提高了系统设计的灵活性。
1 系统设计方案根据一般单片机系统设计的需要,本文所设计的系统具有以下几个功能模块,如图1所示。
1 )通用逻辑模块:根据具体的情况产生各种不同的逻辑电路及控制信号,代替传统的标准逻辑芯片。
本文将其设计为扩展存储器时用到的地址锁存器。
2 )键盘接口模块:代替传统的单片机与键盘的接口电路,用 FPGA编程完成消除抖动及按键识别功能。
本文将其设计为4×4扫描键盘的通用接口。
3 )显示接口模块:代替传统的单片机与显示器的接口电路,用 FPGA编程完成译码、扫描等功能。
F PG A和外围51单片机的通信(总5页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--1 单片机与FPGA的接口方式单片机与FPGA的接口方式一般有两种,即总线方式与独立方式。
MCS-51单片机具有很强的外部总线扩展能力,利用片外三总线结构很容易实现单片机与FPGA的总线接口,而且单片机以总线方式与FPGA进行数据与控制信息通信也有许多优点:速度快;节省PLD 芯片的I/O口线;相对于非总线方式,单片机编程简捷,控制可靠;在FPGA中通过逻辑切换,单片机易于与SRAM或ROM接口。
单片机与FPGA以总线方式通信的逻辑设计,重要的是要详细了解单片机的总线读写时序,根据时序图来设计逻辑结构,其通信的时序必须遵循单片机内固定的总线方式读/写时序。
FPGA的逻辑设计也相对比较复杂,在程序设计上必须与接口的单片机程序相结合,严格安排单片机能访问的I/O空间。
单片机以总线方式与FPGA进行数据通信与控制时,其通信工作时序是纯硬件行为,速度要比前一种方式快得多,另外若在FPGA内部设置足够的译码输出,单片机就可以仅通过19根I/O线在FPGA与单片机之间进行通信和控制信息交换,这样可以节省FPGA芯片的I/O线。
其原理图如图1所示。
2 总线接口逻辑设计2.1 接口设计思想单片机与CPLD/FPC,A以总线方式通信的逻辑设计,重要的是要详细了解单片机的总线读写时序,根据时序图来设计逻辑结构。
MCS-51系列单片机的时序图如图2所示。
ALE为地址锁存使能信号,可利用其下降沿将低8位地址锁存于FPGA中的地址锁存器(LATCH_ADDRES)中;当ALE将低8位地址通过P0锁存的同时,高8位地址已稳定建立于P2口,单片机利用读指令允许信号PSEN的低电平从外部ROM中将指令从P0口读入,由时序图可见,其指令读入的时机是在PSEN的上升沿之前。
接下来,由P2口和P0口分别输出高8位和低8位数据地址,并由ALE的下降沿将P0口的低8位地址锁存于地址锁存器。
FPGA和51单片机通信接口的设计作者:刘宇成李金凤来源:《卷宗》2015年第10期摘要:虽然FPGA速度快,但由于FPGA对采集到的数据的处理能力和控制能力比较差,故需要将其采集到的数据送到单片机系统上来实现数据的处理功能,这就使得FPGA系统与单片机系统之间的数据通信提到日程上。
本文给出部分VHDL源程序,并用Quartus II进行仿真。
关键词:FPGA;VHDL;单片机;通信单片机具有性价比高、功能灵活、易于人机对话、良好的数据处理能力的特点;FPGA则具有高速、可靠以及开发便捷等优点。
系统设计中将单片机数据处理的优势与FPGA、执行快速的特点相结合,能够设计出既有强大控制功能又能使各项功能快速执行的系统。
因此,单片机与FPGA之间的通信便显得尤为重要本文介绍利用VHDL语言实现FPGA与单片机的并行通信接口设计。
本文主要由以下三个部分组成:FPGA接收ADC0809数据;FPGA发送数据和单片机接收数据模块,VHDL程序及仿真结果。
本文着重对FPGA数据发送模块实现进行说明,原理图如图1所示:1 FPGA接收ADC0809数据ADC0809是美国国家半导体公司生产的CMOS工艺8通道,8位逐次逼近式A/D模数转换器。
其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。
本系统用ADC0809把传感器采集的模拟信号变成数字信号,然后用FPGA控制数据流进程,并用外围LED电路显示。
FPGA与ADC0809接口电路图如图2所示。
为了实现对ADC0809精确地控制,所以本系统采用FPGA特有的状态机来进行时序上的控制,引脚说明如下:(1)ALE信号(引脚):高电平时把三个地址信号送入地址锁存器,并经译码器得到地址数据,以选择相应的模拟输入通道。
(2)OE信号(引脚)EN使能信号:电平由低变高时,打开数据输出锁存器,将转换数据送到数据总线上。
基于FPGA与单片机通讯的LCD显示模块设计摘要在数字电路技术高度发展的今天,基于FPGA、单片机的产品无处不在。
液晶显示也成为现代显示器的主流产品。
LCD液晶显示已经是人机交互界面得以实现的关键手段。
本文对基于FPGA与单片机通信及单片机驱动LCD 液晶显示器系统进行了研究。
本文简要介绍了用单片机作驱动控制器的GDM12864A的基本原理,汉字的显示原理以及单片机的原理。
阐述了基于51系列单片机的LCD 液晶显示器的并行方式的接口电路设计方法。
对驱动电路的应用方法加以研究,还详细说明了其驱动程序相关部分的设计步骤并给出了相关代码。
本设计的重点是用单片机驱动控制LCD显示器,接受来自FPGA发的信号。
根据实验室的要求。
FPGA输出一些简单的数字信号,通过LCD显示相应的结果。
本设计的目的就是将LCD用到实验里。
不止做简单的几个汉字显示。
让它显示我们试验中FPGA发的信号数字。
在本课题中,FPGA只传输一些在试验中比较简单的数字信号。
所以在写驱动程序库在不需要太多的汉字库,设置一些数字,字母和一些常用的算数逻辑符号即可满足我们的要求。
通过本课题设计能解决试验箱GW48-SOPC上LCD一直不被利用的状态,让它在教学中发挥它应用的作用。
让我们在做实验时观察的结果更直观方便。
关键词:FPGA,LCD,单片机,GDM12864A,GW48-SOPCSingle-chip FPGA-based communications with the LCDdisplay module designABSTRACTIn the digital circuit technology of today's highly developed, based on the FPGA, MCU products everywhere. LCD monitors have become the mainstream of modern products. LCD liquid crystal display is a man-machine interface of the key means to achieve. In this paper, with the single-chip FPGA-based communications and single-chip LCD driver liquid crystal display systems were studied.This paper introduces the use of single-chip controller driver for GDM12864A the basic principles of the principle characters of the show, as well as the principle of single-chip microcomputer. 51 series of single-chip based on the LCD liquid crystal display mode of the parallel interface circuit design. Of the drive circuit to study the application of methods, but also a detailed description of its driver-related part of the design steps and give the relevant code.The focus of this design is a single-chip LCD display drive control, receive the signal from the FPGA made. In accordance with the requirements of the laboratory. FPGA output of some simple digital signal through the LCD shows the corresponding results. The purpose of this design is the LCD used in the experiment. Do more than simply show that the number of Chinese characters. It shows that we made the pilot signal in the digital FPGA.In this issue, FPGA transmission only in the test is relatively simple digital signal. Therefore, in writing database drivers do not need too much in hancku, set up some numbers, letters and a number of commonly used logic symbol count to meet our requirements. Issues through the design of the chamber to solve GW48-SOPC on LCD has not been utilized, and in teaching it to play its role in applications. Let us do sdddo to observe the results of experiments to facilitatemore intuitive.KEY WORDS:FPGA, LCD, single-chip, GDM12864A, GW48-SOPC目录前言 (6)第1章绪论 (8)§1.1 开发背景及意义 (8)§1.2 系统方案 (8)§1.3 系统方案流程图 (9)§1.4 系统方案论证 (9)§1.5 系统需求 (10)§1.6 开发软硬件平台 (10)第2章系统硬件设计 (11)§2.1 单片机 (11)§2.1.1 单片机概述 (11)§2.1.2 单片机系列芯片介绍 (11)§2.2 FPGA (12)§2.2.1 FPG A概述 (12)§2.2.2 FPGA系列芯片介绍 (13)§2.3 CPU的选择及应用 (16)§2.3.1 MCS-51单片机的内部结构及芯片图 (16)§2.3.2 Cyclone EP1C6结构及特性 (22)§2.4 LCD液晶显示器 (23)§2.4.1 LCD液晶器工作原理 (23)§2.4.2 GDM12864A 图形液晶显示模块电路特性 (24)§2.5 硬件原理连接 (26)§2.5.1 单片机与FPGA并行通信接口 (26)§2.5.2 单片机与LCD连接 (27)§2.5.3 整系统连接图 (28)第3章系统软件设计 (29)§3.1 软件设计模块概述 (29)§3.2 FPGA嵌入式存储器模块 (29)§3.3 单片机模块 (31)§3.4 GDM12864A 图形液晶显示模块的软件特性 (32)§3.5 汉字取模 (36)第4章开发环境 (38)§4.1 系统调试软件Keil uVision2 (38)§4.2 系统调试软件Quartus II (39)第5章系统测试与结果仿真 (40)§5.1 FPGA模块测试 (40)§5.2 单片机驱动测试 (40)§5.3 整体系统测试 (41)结论 (43)参考文献 (1)致谢 (2)前言自上世纪70年代第一位4位单片机问世,到如今的8位,16位,32位单片机,其应用已涉足诸多领域,如工业生产,航空航天,生物技术,医疗器械,办公自动化等等。
多数示例提供完整源程序
KX2C5F+系统提供的大量电子设计自主创新演示项目于宽领域大深度培养能力、启迪智慧、激励创新
杭州康芯公司
实验4
8052 IP核UART串口应用和CPU与硬件频率计联合设计
多路选择器
输出数据接P1口的低4位数字频率计
频率计采样控制时钟
频率计待测信号输入口
锁存器,数据在开发板的LEDB 数码管显示
锁存器,数据在开发板的LEDA 数码管显示锁存器,数据在开发板的LEDC 数码管显示
显示译码器频率计信号采样控制模块
32位计数器32位锁存器
单片机IP核+内部RAM+内部程序ROM+频率计采样电路+RS232通信控制
待测频率信号:1Hz —200MHz
CycloneII FPGA SOC设计
I/O口
PC机显示频率数据
RS232串行通信
FPGA中51单片机核的工作程序
注意程序路径
下载文件
串行通信口连接PC机
黑线接地
棕线接RX,接P71
红线接TX,接P75
来自PC机的数据“123”,
检测双向通信功能
黑线接地
红线接TX,接P75
棕线接RX,接P71
锁存器VHDL描述
多路选择器VHDL描述译码器VHDL描述
频率计信号采样控制模块32位计数器
32位锁存器
键入3为16进制数据
按此键接受来自FPGA的数据
按此键向FPGA发送数据
UART串行通信测试程序加频率计文件
下载此程序,测试频率计功能
单纯UART串行通信测试程序
测得频率:32768Hz 键入数据
按此纽,向KX_7C板传送数据”ABC”按此纽,将KX_7C板测得的频率显示。
FPGA和单片机串行通信接口的实现FPGA(Field-Programmable Gate Array)和单片机(Microcontroller)是两种常用的数字电子设备,它们在串行通信接口方面有不同的实现方式。
首先,我们需要了解串行通信是一种将数据以位的形式逐个传输的通信方式。
常见的串行通信协议包括UART(Universal Asynchronous Receiver/Transmitter)、SPI(Serial Peripheral Interface)和I2C (Inter-Integrated Circuit)等。
对于FPGA和单片机之间的串行通信,我们可以基于以下几种方式进行实现:1. UART:UART是一种常见的串行通信协议,可以实现全双工的通信。
在FPGA和单片机之间建立UART通信,需要在FPGA中实现UART模块,并将其与单片机的UART接口连接。
在FPGA中,我们可以使用硬件语言(如Verilog或VHDL)来实现UART模块,该模块负责将FPGA内部的数据通过UART协议进行封装和解封装。
单片机与FPGA之间通过TX(发送)和RX (接收)引脚建立连接。
单片机可以通过串口发送数据给FPGA,FPGA接收到数据后进行处理,然后再通过串口将处理后的数据发送给单片机。
2.SPI:SPI是一种用于片上外设之间通信的串行通信协议,常用于FPGA与外部设备(例如传感器、显示器等)之间的通信。
在FPGA和单片机之间建立SPI通信,需要在FPGA中实现SPI控制器,并将其与单片机的SPI接口连接。
FPGA通过把数据写入SPI发送缓冲区或从SPI接收缓冲区读取数据来实现与单片机的通信。
单片机通过控制SPI接口的时钟、数据和使能信号来与FPGA进行数据传输。
3.I2C:I2C是一种双线制串行总线,常用于连接多个设备的系统,例如FPGA、单片机和其他外部设备之间的通信。
在FPGA和单片机之间建立I2C通信,需要在FPGA中实现I2C控制器,并将其与单片机的I2C接口连接。
51系列单片机与外围接口芯片的实验和技巧51系列单片机是一种常用的微控制器,具有广泛的应用领域。
为了提高单片机的功能和扩展其外围接口,常常需要使用外围接口芯片。
本文将介绍一些与51系列单片机配合使用的外围接口芯片的实验和技巧。
一、LCD液晶显示屏LCD液晶显示屏是一种常见的外围接口设备,可以用来显示各种信息。
与51系列单片机配合使用时,需要通过IO口进行数据和控制信号的交互。
在使用LCD液晶显示屏时,需要注意以下几点:1. 配置IO口的工作模式:将IO口设置为输出模式,以便向液晶显示屏发送控制信号和数据。
2. 使用延时函数:由于LCD液晶显示屏的响应速度较慢,需要在发送完数据后进行适当的延时,以确保数据能够被正确接收和显示。
3. 熟悉液晶显示屏的命令和数据格式:LCD液晶显示屏有自己的一套命令和数据格式,需要根据具体型号的要求进行设置。
二、ADC模数转换芯片ADC模数转换芯片可以将模拟信号转换为数字信号,常用于采集和处理模拟信号。
与51系列单片机配合使用时,需要注意以下几点:1. 配置IO口的工作模式:将IO口设置为输入模式,以便接收来自ADC芯片的模拟信号。
2. 设置ADC模数转换的精度:根据需要,可以调整ADC芯片的工作精度,以获得更高的准确性或更快的转换速度。
3. 调用ADC转换函数:通过调用相应的函数,可以启动ADC芯片进行模数转换,并获取转换结果。
三、DAC数模转换芯片DAC数模转换芯片可以将数字信号转换为模拟信号,常用于控制模拟设备的输出。
与51系列单片机配合使用时,需要注意以下几点:1. 配置IO口的工作模式:将IO口设置为输出模式,以便向DAC芯片发送数字信号。
2. 设置DAC数模转换的精度:根据需要,可以调整DAC芯片的工作精度,以获得更高的准确性或更大的输出范围。
3. 调用DAC转换函数:通过调用相应的函数,可以向DAC芯片发送数字信号,并控制其输出模拟信号的大小。
四、串口通信芯片串口通信芯片可以实现与其他设备的串口通信,常用于数据传输和远程控制。
摘要单片机自问世以来由于其本身的优越性使其在社会的各个领域得到了广泛的应用,目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。
单片机不仅有小巧灵活、控制能力强、成本低、易于产品化等优势,但随着社会的发展,单片机也存在一些弊端,其速度、规模、性能等指标越来越难以满足用户的需求,因此单片机的开发、升级面临着新的挑战。
随着可编程逻辑控制器技术的发展越来越成熟,为单片机的重构开辟了新的途径,为单片机的设计与升级提供了一种新的方法,本文采用的是以FPGA器件为载体,采用EDA设计中TOP-DOWN和模块化设计思想进行系统设计,灵活运用VHDL描述语言对设计对象进行编程,来实现MCS-51单片机的控制运算模块设计。
最后以EDA开发软件Quartus II为设计平台,经过编译、调试、修改、仿真测试,完成该设计。
关键词:MCS-51单片机,VHDL,EDA,大规模可编程逻辑器件,TOP-DOWNAbstractThe Single Chip Micyoco(SCM)ask myself a life time because of it of the superiority make it at society of each the realm got extensive of application,currently SCM seep through us life of each realm,almost can hardly find out which realm have no a list slice the trace of the machine.SCM not only is cleverly made and vivid,the control ability be strong,the cost be low and be easy to a product to turn etc. advantage,but along with society of development,SCM also existence some irregularity,it speed, scale,function etc. the index sign be more and more hard satisfy the customer's need,so SCM of development,get stripe to face new of challenge.Along with programmable logic controller technique of development more and more mature,for SCM developped new of path,is list slice the design of the machine with got stripe to provide a kind of new of method,this text adoption of take FPGA spare part as to carry a body,adoption EDA design medium TOP-DOWN and mold piece turn design thought to carry on system design and use flexibly VHDL description language to design the object carry on plait distance,realization MCS-51 SCM the arithmetic,logic of the machine operation mold piece design.End with EDA development software Quartus II is design terrace,has been editted and translate, adjusted to try,modification, imitate true test,completion should design.Key Words:MCS-51microcomputer,VHDL,EDA,FPGA,TOP-DOWN目录摘要 (I)Abstract .................................................................................................................................................. I I 目录 .................................................................................................................................................... I II 第一章绪论 (1)1.1 课程设计背景知识 (1)1.1.1 单片机的特点 (1)1.1.2 单片机面临的问题 (1)1.1.3 单片机与FPGA/CPLD的对比 (2)1.2 课程研究的目的以及要完成的任务 (3)第二章 EDA介绍 (4)2.1 EDA技术的发展概述 (4)2.1.1 EDA技术的含义 (4)2.1.2 EDA设计的主要流程 (5)2.1.3 EDA与传统的设计方法的比较 (6)2.1.4 自顶向下(Top-Down)设计的基本概念 (6)2.2 FPGA/CPLD简介 (7)2.3 Verilog HDL和VHDL的比较 (8)2.4 常见的EDA软件与Quartus II简介 (9)2.4.1 常见的EDA软件 (9)2.4.2 Quartus II介绍 (9)第三章MCS-51单片机的反向解剖 (11)3.1 MCS-51单片机的结构、原理 (11)3.1.1 MCS-51单片机概述 (11)3.1.2 MCS-51单片机内部结构与工作原理 (11)3.2 MCS-51单片机的指令系统的实现原理 (16)第四章MCS-51单片机的控制模块设计 (17)4.1控制器模块 (17)4.1.1存储器控制模块 (17)4.1.2 实现指令系统的状态机的模块 (18)4.1.3串行接口模块 (22)4.2小结 ....................................................................................................... 错误!未定义书签。
宜宾学院(物理与电子工程学院论文设计)FPGA与51串口通信设计专业:电子信息科学与技术学生姓名: XXX 学生学号: XXXXXXXXX 院系:物理与电子工程学院班级: XXXXX 指导教师: XX2014年6月18日摘要 (1)第一章引言 (2)第二章设计要求 (3)第三章设计方案 (4)第四章仿真结果 (5)第五章总结 (6)第六章参考文献 (7)附录1 (8)本设计介绍了AT89C51单片机与FPGA之间进行简单的串口通信中FPGA部分。
FPGA从AT89C51单片机接收数据之后,再发送出去。
关键词: AT89C51单片机、FPGA、串口通信第一章引言单片机均内含异步串行通信口,如AT89C51单片机内为UART(即Universal Asynchronous Receiver Transmitter 通用异步收发器),可实现全双工串行通信,其串行通信非常方便。
FPGA发展十分迅速,集成度不断提高,可以完成很多复杂的功能,在其完成各种功能的同时,完全可以将串行通信接口构建于其中。
这样,FPGA与单片机的串行通信就变得极其方便。
第二章设计要求本设计只设计FPGA接收与发送部分。
当接收到接收信号时,FPGA从单片机P0与P2口接收数据,有地址锁存信号对其锁存。
当地址为7F00H时,锁存地址,并等待WR口下降沿到来。
当WR下降沿到来时,读P0口数据进行锁存,开始准备发送。
当接收发发送信号时,来一个时钟上升沿就对数据输出一位,直到8位数据全部输出,则FPGA又开始接收数据。
第三章 设计方案本设计采用AT89C51单片机与FPGA 进行串口通信,系统总程序框架如图3-1:图3-1 总程序框架实验程序代码见附录1初始化定义端口 是否锁存地址11是发送数据锁存数据判断握手信号是否发送完数是否否第四章仿真结果仿真结果结果如图4-1、图4-2所示:图4-1 串口通信仿真结果图4-2 串口通信仿真结果第五章总结该设计结果与预期结果一致,可以实现FPGA连续从单片机中接收与发送数据。
MCS-51单片机与FPGA接口逻辑设计的VHDL实现付扬(辽宁石油化工大学信息工程学院抚顺,113001)摘要:本文阐述了单片机和现场可编程门阵列FPGA各自的特点,指出在波形发生器设计中两者相结合设计的优势和在设计中所遇到的接口逻辑设计这个难点,详细给出了接口逻辑设计的VHDL程序。
通过该接口程序设计,实现了单片机技术和EDA技术相结合,从而实现了所要求波形发生器的设计。
关键词:单片机FPGA(现场可编程门阵列)PLD(可编程逻辑器件)0引言可编程逻辑器件(PLD)及EDA技术的应用成为电子系统设计的潮流。
FPGA 是一种新兴的可编程逻辑器件(PLD),与其它PLD相比,具有更高的密度、更快的工作速度和更大的编程灵活性。
单片机以其体积小、功能齐全、价格低廉、可靠性高等方面所具有的独特优点,长期以来被广泛的应用在各领域。
基于FPGA的高密度、高速度、现场可编程的能力和单片机强大的数据处理功能,制作了波形发生系统,用于产生各种频率的正弦波、方波和三角波,其幅值0~5V可调,频率步进达到1Hz以下,频率范围1Hz~100kHz。
该波形发生器以单片机(MCS8031)为中心控制系统,FPGA片内实现DDS技PROM28c64术,在此DDS技术中,采用6级BCD比例乘法器级联。
首先由单片机将E2中存入波形数据。
FPGA在单片机的控制下,利用较高的时钟频率(16M)生成用户要求的频率的128倍频,并以此频率在EPROM28c64取波形数据,将其发送给2D/A转换器,并通过滤波器输出。
同时单片机实现对输出电压的控制。
本设计中,FPGA选用Altera公司的FLEX10K,晶振频率可达40MHz。
使用MAX+PLUSⅡ开发系统支持。
FLEX10K系列是FLEX系列当中非常有代表性的FPGA 器件系列,每个FLEX10K器件包含一个嵌入式阵列和一个逻辑阵列。
嵌入式阵列用来实现各种存储器及复杂的逻辑功能。
逻辑阵列用来实现普通逻辑功能。
你应该是想实现单片机与FPGA的串口通信。
以下内容可能会对你有所帮助:根据RS232 异步串行通信来的帧格式,在FPGA发送模块中采用的每一帧格式为:1位开始位+8位数据位+1位奇校验位+1位停止位,波特率为2400。
本系统设计的是将一个16位的数据封装成高位帧和低位帧两个帧进行发送,先发送低位帧,再发送高位帧,在传输数据时,加上文件头和数据长度,文件头用555555来表示,只有单片机收到555555时,才将下面传输的数据长度和数据位进行接收,并进行奇校验位的检验,正确就对收到的数据进行存储处理功能,数据长度可以根据需要任意改变。
由设置的波特率可以算出分频系数,具体算法为分频系数X=CLK/(BOUND*2)。
可由此式算出所需的任意波特率。
下面是实现上述功能的VHDL源程序。
Library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity atel2_bin isport( txclk: in std_logic; --2400Hz的波特率时钟reset: in std_logic; --复位信号din: in std_logic_vector(15 downto 0); --发送的数据start: in std_logic; --允许传输信号sout: out std_logic --串行输出端口);end atel2_bin;architecture behav of atel2_bin issignal thr,len: std_logic_vector(15 downto 0);signal txcnt_r: std_logic_vector(2 downto 0);signal sout1: std_logic;signal cou: integer:=0;signal oddb:std_logic;type s is(start1,start2,shift1,shift2,odd1,odd2,stop1,stop2);signal state:s:=start1;beginprocess(txclk)beginif rising_edge(txclk) thenif cou<3 then thr<=0000000001010101; --发送的文件头elsif cou=3 thenthr<=0000000000000010; --发送的文件长度elsif (cou>3 and state=stop2) then thr<=din;--发送的数据end if;end if;end process;process(reset,txclk)variable tsr,tsr1,oddb1,oddb2: std_logic_vector(7 downto 0);beginif reset=1 thentxcnt_r<=(others=>0);sout1<=1;state<=start1;cou<=0;elsif txclkevent and txclk=1 thencase state iswhen start1=>if start=1 thenif cou=3 thenlen<=thr;end if;tsr:=thr(7 downto 0);oddb1:=thr(7 downto 0);sout1<=0; --起始位txcnt_r<=(others=>0);state<=shift1;elsestate<=start1;end if;when shift1=>oddb<=oddb1(7) xor oddb1(6) xor oddb1(5) xor oddb1(4) xor oddb1(3) xor oddb1(2) xor oddb1(1) xor oddb1(0);sout1<=tsr(0); --数据位tsr(6 downto 0):=tsr(7 downto 1);tsr(7):=0;txcnt_r<=txcnt_r+1;if (txcnt_r=7) thenstate<=odd1;cou<=cou+1;end if;when odd1=> --奇校验位if oddb=1 thensout1<=0;state<=stop1;elsesout1<=1;state<=stop1;end if;when stop1=>sout1<=1; --停止位if cou<4 thenstate<=start1;elsestate<=start2;end if;when start2=>tsr1:=thr(15 downto 8);oddb2:=thr(15 downto 8);sout1<=0; --起始位txcnt_r<=(others=>0);state<=shift2;when shift2=>oddb<=oddb2(7) xor oddb2(6) xor oddb2(5) xor oddb2(4) xor oddb2(3) xor oddb2(2) xor oddb2(1) xor oddb2(0);sout1<=tsr1(0);--数据位tsr1(6 downto 0):=tsr1(7 downto 1);tsr1(7):=0;txcnt_r<=txcnt_r+1;if (txcnt_r=7) thenstate<=odd2;end if;when odd2=> --奇校验位if oddb=1 thensout1<=0;state<=stop2;elsesout1<=1;state<=stop2;end if;when stop2=>sout1<=1; --停止位if len=0000000000000000 thenstate<=stop2;elsestate<=start1;len<=len-1;end if;end case;end if;end process;sout<=sout1;end behav;剩下的波形仿真就自己搞定。
FPGA与单片机实现串行通信FPGA(Field-Programmable Gate Array)和单片机是两种常见的嵌入式系统设计元件。
FPGA是一种可编程逻辑芯片,可以重新配置内部逻辑电路以实现各种不同的功能。
它由大量的逻辑门、存储单元和I/O(输入/输出)资源组成。
相比于单片机,FPGA具有更高的灵活性和通用性,并且可以实现更高性能的应用。
单片机则是一种集成了处理器、内存和各种外设接口的微控制器芯片。
它通常具有较小的尺寸和低功耗特性,适用于较简单的应用场景。
单片机通常使用汇编语言或高级编程语言进行程序设计,并通过输入/输出引脚与外部设备进行通信。
串行通信是一种将数据按照位的顺序依次传输的通信方式。
在FPGA与单片机之间实现串行通信有多种方法,其中常见的包括USART、SPI、I2C和UART等。
USART(Universal Synchronous/AsynchronousReceiver/Transmitter)是一种通用的串行接口,可以工作在同步或异步模式下。
FPGA和单片机可以通过USART接口进行双向数据传输。
USART接口包含多个引脚,包括数据线、时钟线和控制线。
通过配置合适的配置参数,可以实现不同的通信速率和数据格式。
SPI(Serial Peripheral Interface)是一种全双工的串行通信协议,常用于外设与控制器之间进行高速数据传输。
SPI接口由四根线组成,包括主机输出(MISO)、主机输入(MOSI)、时钟(SCLK)和片选(SS)线。
FPGA可以作为SPI主机,单片机作为SPI从机,通过配置合适的时序和数据格式实现数据的传输。
I2C(Inter-Integrated Circuit)是一种双线串行总线,用于短距离内的设备通信。
I2C由两根线组成,包括串行数据线(SDA)和串行时钟线(SCL)。
FPGA和单片机可以通过I2C接口进行双向数据传输。
在I2C通信中,所有设备都必须拥有唯一的地址,以便正确识别和通信。
摘要MCS-51是Intel公司生产的其中一个单片机系列的名称。
该系列单片机诞生于1980年,功能强大、应用方便,已成为单片机领域的实际标准。
MCS-51单片机小巧灵活,成本低,易于产品化,方便地组成各种智能测试设备及各种智能仪器仪表。
其指令系统有各种控制功能用指令,很容易构成各种规模的应用系统,易扩展,可以很方便地实现多机和分布式控制。
而VHDL语言则是应用广泛的一种硬件描述语言,目前越来越多的厂商、科研机构在使用VHDL语言进行系统开发。
本文将采用具有学习能力强、兼容性能好及采用并行处理优点等的FPGA/CPLD为载体,应用灵活高效的VHDL语言对MCS-51兼容单片机进行编程、以EDA开发软件Quartus II 为设计平台,经过编译、调试、修改、仿真测试,实现MCS-51单片机的算术模块功能。
关键词:MCS-51单片机,VHDL,EDA,FPGAAbstractMCS-51 is an among those that the Intel company produce list slice the name of the machine series.Should series list slice the machine was born in 1980, the function be strong, application convenience, have become list slice machine realm of actual standard.The MCS-51 list slice the machine be cleverly made and vivid, the cost be low, be easy to a product to turn and expediently constitute various intelligence to measure, equipments and various intelligence instrument appearance.Its instruction system have various control the function use instruction, very easy constitute various scale of application system, easy expand, can very expediently realization many machine and distribute type control.But VHDL language then application extensive of the description language of a kind of hardware, currently more and more of manufacturer, research organization at usage the VHDL language carry on system development.This text has study ability the adoption strong, and permit function good and adoption proceed together processing advantage etc. of FPGA/CPLD in order to carry a body, application vivid efficiently of VHDL language to MCS -51 and permit list slice the machine carry on plait distance, with EDA development software Quartus II is design terrace, has been editted and translate, adjusted to try, modification, imitate true test, realization MCS-51 list slice the arithmetic mold of the machine piece function.Keyword:The machine, VHDL, EDA of the MCS-51 list slice, FPGA目录第一章绪论 (1)1.1 课程设计背景知识 (1)1.1.1 单片机的概述 (1)1.1.2 单片机的发展历程 (1)1.1.3 单片机的发展趋势 (2)1.1.4 单片机的特点及应用 (2)1.1.5 单片机面临的问题 (3)1.1.6 单片机与FPGA/CPLD的对比 (4)1.1.7 EDA技术设计方法系统级设计 (5)第二章单片机的结构原理 (8)2.1 单片机的内部模块功能 (8)2.2 MCS-51单片机的指令系统的实现原理 (11)第三章ALU的原理分析与实现工具 (12)3.1 ALU的原理分析 (12)3.2 用FPGA实现ALU的设计 (12)3.3 ALU的实现工具VHDL语言 (13)第四章MCS-51单片机的算术模块设计 (14)4.1 加/减法器设计 (15)4.2 乘法器设计 (19)4.3 除法器设计 (21)4.4 十进制调整器设计 (24)第五章总结与展望 (28)致谢 (29)参考文献 (30)第一章绪论1.1 课程设计背景知识1.1.1 单片机的概述单片机是大规模集成电路技术发展的产物,它将中央处理器(CPU)、存储器(ROM/RAM)、输入输出接口、定时器/计数器等主要计算机部件集成在一片芯片上,因此单片机被称为单片微型计算机(Single Chip Microcomputer)。
题目名称:FPGA与单片机实现串行通信目录1设计任务及内容 (1)2设计方案 (1)3系统硬件设计 (1)3.1单片机串行通信设计 (2)3.2 FPGA串行通信 (3)4系统软件设计 (5)4.1 FPGA单元设计 (5)4.2串行通信MAX3232 (6)5.系统调试 (10)6课程设计总结 (10)附录: (11)1设计任务及内容要求实现FPGA与单片的串行通信,熟悉单片机和VHDL语言的编写,在设计过程中对单片机与FPGA有进一步理解,能够实现串行通信。
2设计方案整个设计采用模块化的设计思想,可分为四个模块:FPGA数据发送模块,FPGA 波特率发生控制模块,FPGA总体接口模块以及单片机数据接收模块。
在通信过程中完全遵守RS232协议,并利用VHDL语言实现 FPGA与单片机的串口异步通信电路。
本设计采用ll位帧格式异步通信方式,一位起始位、一位停止位、一位奇偶校验位、8位数据位,基于有限状态机原理进行FPGA设计。
设计方案框图如下:3系统硬件设计3.1单片机串行通信设计单片机与FPGA串行通信可采用单片机的SPI(串行外设接口)方式。
相对于UART,SPI更简单,速度更快。
SPI共四条线。
MOSI(Master Out Slave In).MISO,SCK(Serial Clock),SS(Slave Select)。
图1为SPI T作时序。
当单片机向FPGA 传输命令或数据时,应用SPI的四种模式中的SPIO模式。
当片选SS拉低。
然后在每个时钟(SCK)上升沿送出数据。
将片选信号SS与移位寄存器使能端(En)相接,MOSI与移位寄存器数据输入端(SI)相接,SCK同时为移位寄存器提供时钟信号。
在SS信号为低电平时,移位寄存器开始工作,在每个时钟上升沿将接收到的数据左移一位,等全部接受完毕,将SS置一l”,移位寄存器工作完毕,同时为触发器提供时钟,使移位寄存器接收到的数据并行输出。
当单片机从FPGA读取数据时,向FPGA发送读使能信号RE(可用任意空闲I/0口)。
IEEE802.3的CSM A /CD 方法的缺陷是 在重载时冲突频频发生,站点对网络的访问迟延成为不确定,不利于铁路现场网对实时性要求高的特点; 冲突检测要求在电缆上任一点上任何两个站的信号强度的差别足够小,并且辨别是干扰噪声还是其他站的信号较困难,在铁路现场强干扰的环境中适用性较差; 对分组的长度有下限要求,铁路现场网中普遍的交互式的短分组的通信就会浪费信道的带宽。
IEEE802.4令牌总线和IEEE802.5令牌环方式虽然可以解决介质访问时间不确定的问题,在高负荷情况下能实现高吞吐量,但这种方法控制复杂、开销大,难以完全做到固定周期访问,所以也不适应铁路现场测控的蛛网要求。
(2)数据链路服务和应用层服务IEEE802委员会规定3种链路服务:L L C1(无确认的连接服务)、L L C 2(确认的连接服务)、L LC 3(确认的无论连接服务)。
这3种LL C 服务均不向用户提供周期服务,而周期服务是铁路现场级设备必不可少的通信需求。
在应用层服务方面目前提供的L AN 应用服务是面向计算机系统的,而不是铁路的各种现场设备(如传感器,调节器等)。
虽然L A N 为现场设备提供了组网的灵活性和可扩充性,但是作为铁路现场网必须要满足现场设备通信业务的可确定性和周期性,通常概念的L AN 是不会突出对这种通信需求的处理。
因此研究适应铁路现场设备联网的类似于工业中fieldsbus 体系结构是十分具有应用前景的。
3 展望网络中数据传输和数据通信技术是实现铁路自动化的一个关键技术,它为铁路现场网提供采集信息和控制信息交换的通路,将直接影响到铁路各种自动化系统运行效率和安全。
从我国铁路自动化目前的状况来看,现场设备测控信号的数据通信网络还很简陋,还有许多值得探讨和改进的地方。
在很多方面可以参考和借鉴目前成熟的工业CA D/CIM S 技术和办公室自动化高级分布式系统技术,为网络技术在铁路现场中应用做好必要的技术储备。
1 单片机与FPGA的接口方式
单片机与FPGA的接口方式一般有两种,即总线方式与独立方式。
MCS-51单片机具有很强的外部总线扩展能力,利用片外三总线结构很容易实现单片机与FPGA的总线接口,而且单片机以总线方式与FPGA进行数据与控制信息通信也有许多优点:速度快;节省PLD芯片的I/O口线;相对于非总线方式,单片机编程简捷,控制可靠;在FPGA中通过逻辑切换,单片机易于与SRAM或ROM接口。
单片机与FPGA以总线方式通信的逻辑设计,重要的是要详细了解单片机的总线读写时序,根据时序图来设计逻辑结构,其通信的时序必须遵循单片机内固定的总线方式读/写时序。
FPGA的逻辑设计也相对比较复杂,在程序设计上必须与接口的单片机程序相结合,严格安排单片机能访问的I/O空间。
单片机以总线方式与FPGA 进行数据通信与控制时,其通信工作时序是纯硬件行为,速度要比前一种方式快得多,另外若在FPGA内部设置足够的译码输出,单片机就可以仅通过19根I/O线在FPGA与单片机之间进行通信和控制信息交换,这样可以节省FPGA芯片的I/O线。
其原理图如图1所示。
2 总线接口逻辑设计
2.1 接口设计思想
单片机与CPLD/FPC,A以总线方式通信的逻辑设计,重要的是要详细了解单片机的总线读写时序,根据时序图来设计逻辑结构。
MCS-51系列单片机的时序图如图2所示。
ALE为地址锁存使能信号,可利用其下降沿将低8位地址锁存于FPGA中的地址锁存器(LATCH_ADDRES)中;当ALE将低8位地址通过P0锁存的同时,高8位地址已稳定建立于P2口,单片机利用读指令允许信号PSEN的低电平从外部ROM中将指令从P0口读入,由时序图可见,其指令读入的时机是在PSEN的上升沿之前。
接下来,由P2口和P0口分别输出高8位和低8位数据地址,并由ALE的下降沿将P0口的低8位地址锁存于地址锁存器。
若需从FPGA中读出数据,单片机则通过指令“MOVXA,@DPTR”使RD信号为低电平,由P0口将锁存器中的数据读入累加器A;但若欲将累加器A的数据写进FPGA,则需通过指令“MOVx DPTR,A”和写允许信号WR。
这时,DPTR中的高8位和低8位数据作为高、低8位地址分别向P2和P0口输出,然后由WR的低电平并结合译码,将累加器A的数据写入图中相关的锁存器。
通过对MCS-51单片机总线读/写时序的分析,设计了图3所示的接口电路。
在FPGA中,设计了两个模块:一个是总线接口模块,负责单片机与FPGA的总线接口逻辑;另一个是寄存器单元及外部接口模块,运用总线接口模块来操作此模块。
在总线应用时,MCS-51单片机的P0口是作为地址/数据总线分时复用的,因此应在总线接口模块中设计一个三态缓冲器,实现P0口的三态接口;又因MCS-51单片机在访问外部空间时,它的地址为16位,因此借助地址锁存使能信号ALE在FPGA中实现高8位与低8位地址的编码,组合成16位地址,然后再根据MCS-51单片机的读/写信号,实现对FPGA的读写操作。
在接口设计中,采用了VHDL语言实现其接口逻辑。
用VHDL语言编写,往往比较方便和严谨,注意整个过程的逻辑思路,并且尽量避免语言的冗余,造成比较长的延时。
-MCS-51单片机与FPGA的通信读写电路的部分程序
FPGA是一种新兴的可编程逻辑器件,可以取代现有的全部微机接口芯片,实现微机系统中的存储器、地址译码等多种功能,具有更高的密度、更快的工作速度和更大的编程灵活性,被广泛应用于各种电子类产品中。
在功能上,单片机具有性价比高、功能灵活、易于人机对话、强大的数据处理能力等特点;而FPGA则具有高速、高可靠性以及开发便捷、规范等特点,因此两类器件相结合的电路结构将在许多高性能仪器仪表和电子产品中被广泛应用。
基于这种需求,本文设计了MCS-51单片机与FPGA的总线接口逻辑电路,实现了单片机与FPGA数据与控制信息的可靠通信,使FP—GA与单片机优势互补,组成灵活的、软硬件都可现场编程的控制系统。