fpga与单片机实现串行通信

fpga与单片机实现串行通信

ID:22631838

大小:368.50 KB

页数:15页

时间:2018-10-30

fpga与单片机实现串行通信_第1页
fpga与单片机实现串行通信_第2页
fpga与单片机实现串行通信_第3页
fpga与单片机实现串行通信_第4页
fpga与单片机实现串行通信_第5页
资源描述:

《fpga与单片机实现串行通信》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、题目名称:FPGA与单片机实现串行通信目录1设计任务及内容12设计方案13系统硬件设计13.1单片机串行通信设计23.2FPGA串行通信34系统软件设计54.1FPGA单元设计………………………………………54.2串行通信MAX3232……………………………………65.系统调试106课程设计总结10附录:111设计任务及内容要求实现FPGA与单片的串行通信,熟悉单片机和VHDL语言的编写,在设计过程中对单片机与FPGA有进一步理解,能够实现串行通信。2设计方案整个设计采用模块化的设计思想,可分为四个模块:FPGA数据发送模块,FPGA波特率发生控制模块,FPGA总体

2、接口模块以及单片机数据接收模块。在通信过程中完全遵守RS232协议,并利用VHDL语言实现FPGA与单片机的串口异步通信电路。本设计采用ll位帧格式异步通信方式,一位起始位、一位停止位、一位奇偶校验位、8位数据位,基于有限状态机原理进行FPGA设计。设计方案框图如下:FPGA单片机发送器通信控制控制器接收器波特率发生3系统硬件设计3.1单片机串行通信设计单片机与FPGA串行通信可采用单片机的SPI(串行外设接口)方式。相对于UART,SPI更简单,速度更快。SPI共四条线。MOSI(MasterOutSlaveIn).MISO,SCK(SerialClock),SS

3、(SlaveSelect)。图1为SPIT作时序。当单片机向FPGA传输命令或数据时,应用SPI的四种模式中的SPIO模式。当片选SS拉低。然后在每个时钟(SCK)上升沿送出数据。将片选信号SS与移位寄存器使能端(En)相接,MOSI与移位寄存器数据输入端(SI)相接,SCK同时为移位寄存器提供时钟信号。在SS信号为低电平时,移位寄存器开始工作,在每个时钟上升沿将接收到的数据左移一位,等全部接受完毕,将SS置一l”,移位寄存器工作完毕,同时为触发器提供时钟,使移位寄存器接收到的数据并行输出。当单片机从FPGA读取数据时,向FPGA发送读使能信号RE(可用任意空闲I/

4、0口)。在每个时钟(SCK)上升沿.FPGA送出一位串行数据,单片机通过MISO读取数据。借助VHDL硬件描述语言和EDA开发工具可方便的实现该系统。如下图所示:图一:单片机电路3.2FPGA串行通信由于FPGA具有丰富的引脚资源,且EP1C3T100C8N的核电压是3.3V,STC89LE52的输出电压也是3.3V,所以任选3064A四个I/O与单片机4个I/O口连接即可,若连接在单片机的Po口时需要加上拉电阻。在这里将SS(CS)、SCK、SDI、SDO分别如图所示连接。图二:FPGA电路4系统软件设计4.1FPGA单元设计FPGA的设计是通信网络的核心部分。依

5、据功能要求,FPGA内部划分成四大功能模块:SRAM控制器、发送数据缓冲模块、16个UART模块、接收数据缓冲模块。发送数据缓冲模块划分成16个RAM区,每个RAM区分别连接1个UART,当发送缓冲模块接收到主单片机下发的控制数据后,启动UART将数据发送至从单片机。接收缓冲区同样分为16个RAM区,发送控制数据后,UART周期性地向从单片机发送状态查询命令,从单片机将最新状态发送至UART模块,UART模块将数据存入接收缓冲模块相应的RAM区。如图3所示。  FPGA内部共有16对读/写和数据总线,分别连接UART和相应的发送缓冲区RAM及接收缓冲区RAM。FPG

6、A内部模块采用图3FPGA内部功能模块示意图自顶向下的设计方法,将复杂系统划分为简单系统,然后通过逻辑和接口设计实现各个模块功能。SRAM控制器用于FPGA和C8051F020的接口,负责内部RAM的读写控制。UART负责接收从单片机上传的串行信号,将其并行化后存入接收数据缓冲RAM;另外也负责将发送缓冲RAM中的数据转换成符合RS232协议规范的串行信号发送给从单片机。  FPGA内部系统采用同步有限状态机(FSM)的设计方法实现,FSM负责调配各功能模块之间的协作。状态机采用独热(one—hot)编码,使电路的可靠性和速度有显著的提高。系统状态转移图如图4所示。

7、4.2串行通信MAX3232 主单片机和上位机的通信速率及FPGA和从单片机的通信速率均设置为38.4Kbps,可以更精确的控制主单片机与各个从单片机之间的通信时间。通信指令由报头、设备类型、设备号、命令号、命令数据、校验等字段组成。报头用于通知单片机开始串行通信。设备类型和设备号用于将指令正确传达到相应的设备,命令号用于通知单片机指令,命令数据用于通知单片机具体的功能,校验则采用CRC校验以保证通信的准确性。写入控制命令号为OOH,读取命令号为01H,读取指令命令数据为0字节。通信指令的帧格式如下:  单片机接收到控制命令后,如果接收正确,返回00H,若错误则

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。