SPI协议
SPI协议一.SPI协议简介
SPI(Serial Peripheral interface)定义的一种串行外围设备接口,是一种全双工、同步的通信总线,只需四根信号线即可,节约引脚,同时有利于PCB的布局。正是出于这种简单易用的特性,现在越来越多的芯片集成了SPI通信协议,如FLASH、AD转换器等。
SPI通信协议的优点是支持全双工通信,通讯方式比较简单,且相对数据传输速率较快(相比UART、I2C),灵活的数据传输方式,不限于8位,可以是任意大小的字;缺点是没有应答机制,在数据可靠性上有一定缺陷
二.SPI协议通信原理 1.SPI协议物理层
SPI通信设备的通信模式是主从通信模式,通信双方有主从之分,根据从机设备的数量,SPI通信设备之间的连接方式可分为一主(FPGA)一从和一主多从(eg:flash芯片M25P16)。
SPI总线传输需要4根线就能完成,这四根线的作用分别如下:
SCK(Serial Clock)时钟信号线:用于同步通信数据。由通信主机产生,决定了通信的速率,不同的设备支持的最高时钟频率不同。
CS(Chip Select)片选信号线: ...
UART串口通信
UART通信原理
UART(universal asynchronous receiver-transmitter)异步收发传输器是一种采用异步串行通信方式的通用异步收发传输器;它在发送数据时将并行数据转换成串行数据来传输,在接收数据时将接收到的串行数据转换成并行数据。它包含RS232,RS499,RS423,RS485等接口标准规范和总线标准规范。
UART串口通信需要两根信号线来实现,一根用于发送,另外一根接收。
UART可以实现全双工,即可以同时进行发送数据和接收数据。
优缺点
缺点:
传输距离不远,速率相对较慢
优点:
很多传感器芯片或CPU都带有串口功能,目的是在使用一些传感器或CPU时可以通过串口进行调试。
在较为复杂的高速数据接口和数据链路集合的系统中往往联合调试比较困难,可以先使用串口数据链路部分验证后,再把串口换成高速数据接口。
串口的数据线一共两根,没有时钟线,节省了大量的管脚资源。
1. 协议层:通信协议(包括数据格式、传输速率等)
传输速率串口通信的速率用波特率表示,它表示每秒传输二进制数据的位数,单位是bit/s(位 ...
FPGA开发流程
FPGA开发流程1. 分析需求,确定方案 2.设计方案(程序框图、模块划分、模块间信号、模块内信号、模块逻辑确定、模块逻辑实现方式……)【确定程序框架、确定接口、模块间信号、模块内信号】3.设计输入(写代码(VerilogHDL/VHDL编码)4.RTL功能仿真(验证逻辑功能&数据流,Modelsim)编译5.分析综合(将设计映射为器件模型,生成网表文件)【分析语法错误】6.布局布线(功能映射、指定布线资源)【利用分析与综合建立的数据库】7.门级仿真(根据估计的布局布线延时进行时序仿真)8.时序分析(验证设计是否满足时序和性能要求——Timing Analyzer工具)时序仿真9.板级验证(板级调试——Signal Tap嵌入式逻辑分析工具)
同步复位和异步复位的区别
同步复位和异步复位的区别
同步复位:复位的有效条件与clk的上升沿有关,当clk的上升沿采到rst_n为低的时候可复位。
异步复位:复位的触发条件不仅与clk的上升沿有关,还与rst_n的下降沿有关,当clk上升沿采到rst_n为低时可复位,同时当遇到rst_n下降沿时也进行复位。
同步复位是指复位信号只有在时钟上升沿到来时才能有效,否则无法完成对系统的复位工作。异步复位是指无论时钟沿是否到来,只要复位信号有效,就能对系统进行复位。异步复位对复位信号的质量要求比较高,不能有毛刺,如果其与时钟关系不确定,也可能出现亚稳态。
基于Avalon_MM接口的SDRAM读写
程序设计思路一.大体思路框架
PC通过串口助手,经过UART RX模块发送连续字节数据进入SDRAM_CTRL模块,SDRAM_CTRL模块里的WRfifo,接受RX传入的数据,WR_EN打开,同时传入地址和对应数据,通过满足Avalon时序(【WRfifo】读端:avm_waitrequest为低,非读空;写端:非写满,数据有效。【state】WRfifo读端rdusedw>=需要一次连续写入的数据量),传入Avalon_MM端口模块,再RD_EN打开,传入地址,经过Avalon端口读出SDRAM内部数据,传入SDRAM_CTRL模块里的RDfifo(【RDfifo】写端:avm_rd_data_vld 且非写满;读端:UART TX端非忙且非读空。),再传入UART TX端,PC通过串口助手接受到数据。
使用Avalon_MM接口后,我们只需考虑SDRAM_Control模块(SDRAM控制模块)【内含WRfifo,RDfifo】,如何满足接收和发送数据到Avalon_MM接口即可,不用考虑SDRAM内部运行的过程。
有四个状态,IDLE(空闲状态) ...
FPGA内部结构
FPGA内部结构1. 可编程逻辑单元(LABS)
FPGA的基本可编程逻辑单元是由查找表(LUT)和寄存器(Register)组成的,查找表完成纯组合逻辑功能。FPGA内部寄存器可配置为带同步/异步复位和置位、时钟使能的触发器,也可以配置成为锁存器。FPGA一般依赖寄存器完成同步时序逻辑设计。
展开查看
- 【包含逻辑单元(LEs),自适逻辑模块(ALMs),查找表(LUT),进位逻辑,输出寄存器逻辑】lut dff辅助逻辑
- LE和ALM是同级的,有些LAB里是LE,有些是ALM。ALM比LE复杂一些。
2.可编程连线(丰富的布线资源)
布线资源连通FPGA内部所有单元,连线的长度和工艺决定着信号在连线上的驱动能力和传输速度。布线资源的划分: (1)全局性的专用布线资源:以完成器件内部的全局时钟和全局复位/置位的布线; (2)长线资源:用以完成器件Bank间的一些高速信号和一些第二全局时钟信号的布线; (3)短线资源:用来完成基本逻辑单元间的逻辑互连与布线; (4)其他:在逻辑单元内部还有着各种布线资源和专用时钟、复位等控制信号线 ...
Hello World
Welcome to Icaurs! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
Quick StartCreate a new post1$ hexo new "My New Post"
More info: Writing
Run server1$ hexo server
More info: Server
Generate static files1$ hexo generate
More info: Generating
Deploy to remote sites1$ hexo deploy
More info: Deployment