FPGA与单片机实现串行通信.doc

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
FPGA与单片机实现串行通信

题目名称:FPGA与单片机实现串行通信 目录 1设计任务及内容 1 2设计方案 1 3系统硬件设计 1 3.1单片机串行通信设计 2 3.2 FPGA串行通信 3 4系统软件设计 5 4.1 FPGA单元设计……………………………………………………………………………6 5.系统调试 10 6课程设计总结 10 附录: 11 1设计任务及内容 要求实现FPGA与单片的串行通信,熟悉单片机和VHDL语言的编写,在设计过程中对单片机与FPGA有进一步理解,能够实现串行通信。 2设计方案 整个设计采用模块化的设计思想,可分为四个模块:FPGA数据发送模块,FPGA波特率发生控制模块,FPGA总体接口模块以及单片机数据接收模块。在通信过程中完全遵守RS232协议,并利用VHDL语言实现 FPGA与单片机的串口异步通信电路。本设计采用ll位帧格式异步通信方式,一位起始位、一位停止位、一位奇偶校验位、8位数据位,基于有限状态机原理进行FPGA设计。设计方案框图如下: 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口)。在每个时钟(SCK)上升沿.FPGA送出一位串行数据,单片机通过MISO读取数据。借助VHDL硬件描述语言和EDA开发工具可方便的实现该系统。如下图所示: 图一:单片机电路 3.2 FPGA串行通信 由于FPGA具有丰富的引脚资源,且EP1C3T100C8N的核电压是3.3 V,STC89LE52的输出电压也是3.3 V,所以任选3064A四个I/O与单片机4个I/O口连接即可,若连接在单片机的Po口时需要加上拉电阻。在这里将SS(CS)、SCK、SDI、SDO分别如图所示连接。 图二:FPGA电路 4系统软件设计 4.1 FPGA单元设计FPGA的计是通信网络的核心部分。依据功能要求,FPGA内部划分成四大功能模块:SRAM控制器、发送数据缓冲模块、16个UART模块、接收数据缓冲模块。 发送数据缓冲模块划分成16个RAM区,每个RAM区分别连接1个UART,当发送缓冲模块接收到主单片机下发的控制数据后,启动UART将数据发送至从单片机。接收缓冲区同样分为16个RAM区,发送控制数据后,UART周期性地向从单片机发送状态查询命令,从单片机将最新状态发送至UART模块,UART模块将数据存入接收缓冲模块相应的RAM区。如图3所示。   FPGA内部共有16对读/写和数据总线,分别连接UART和相应的发送缓冲区RAM及接收缓冲区 RAM。 FPGA内部模块采用图3 FPGA内部功能模块示意图自顶向下的设计方法,将复杂系统划分为简单系统,然后通过逻辑和接口设计实现各个模块功能。SRAM控制器用于FPGA和 C8051F020的接口,负责内部RAM的读写控制。UART负责接收从单片机上传的串行信号,将其并行化后存入接收数据缓冲RAM;另外也负责将发送缓冲RAM中的数据转换成符合RS232协议规范的串行信号发送给从单片机。   FPGA内部系统采用同步有限状态机(FSM)的设计方法实现,FSM负责调配各功能模块之间的协作。状态机采用独热(one—hot)编码,使电路的可靠性和速度有显著的提高。系统状态转移图如图4所示。   主单片机和上位机的通信速率及FPGA和从单片机的通信速率均设置为38.4 Kbps,可以更精确的控制主单片机与各个从单片机之间的通信时间。通信指令由报头、设备类型、设备号、命令号、命令数据、校验等字段组成。 报头用于通知单片机开始串行通信。设备类型和设备号用于将指令正确传达到相应的设备,命令号用于通知单片机指令,命令数据用于通知单片机具体的功能,校验则采用CRC校验以保证通信的准确性。写入控制命令号为OOH,读取命令号为01H,读取指令命令数据为0字节。通信指令的帧格式如下:   单片机接

文档评论(0)

ipbohn97 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档