首页 > 编程知识 正文

fpga spi,spi总线协议

时间:2023-05-04 01:30:25 阅读:51365 作者:4207

本论文主要介绍在FPGA内部实现SPI协议、使用Verilog语言构建硬件描述电路的方法。 经由作为8个信道的模数转换芯片的SPI通信协议的芯片ADC 128至ADC 122具体描述ADC 128至s 022。

B站介绍本文的视频链接

SPI概念:串行外围接口(SPI )是摩托罗拉公司提出的同步串行数据传输标准,广泛用于许多器件。

接口:

SPI接口通常被称为4线串行总线,它以主/从方式工作,数据传输过程由主机初始化。 如图1所示,使用的4条信号线分别如下。

SCLK )用于同步串行时钟、数据传输,从主体输出; MOSI :先传输主输出从输入数据线,通常是MSB; MISO )主输入从输出数据线,通常先传输LSB; s )单侧选择线,低电平有效,主机输出。

在某个时间点,SPI总线上可以存在多个从站,但是只有一个主站,主站通过选择线程来确定要通信的从站。 这要求从设备的MISO端口具有三态特性,使得在未选择设备时其端口线处于高阻抗。 ADC128S022具体时序:由于该接口使用标准SPI接口,可以直接连接到微控制器的片上SPI。 在FPGA的情况下,可以根据SPI时序构建控制电路,实现ADC128S022的控制。特别要注意一下两个的时序,DIN在SCLK的上升沿输入,DOUT在SCLK的下降沿输出,也就是说说DIN是在SCLK的下降沿改变,DOUT是在SCLK的上升沿改变。

通过利用设备的时序图,可以具体实现向设备的写入和输出数据。

ADC128S022的具体实现(线性序列器),其中参考gxdlqFPGA接口的时序是一个非常规则的序列,SCLK信号应该在什么时候从低改变到高,什么时候从高改变到低。 DIN信号何时应传输哪个位数据可以基于时间序列参数唯一地决定。 因此,该数据波形可以被包含在以时间为横轴的二维坐标系中,纵轴对应于各个信号。 因此,逻辑上只要使用计数器进行计数,各计数值就对应于t轴上对应的时间点。 那么,此时,各信号需要进行什么样的操作,直接代入值即可。

根据线性可编程控制器的设计思想,可以整理得到对应于每个信号变化时的时刻

以及此时相应计数器的值。 表中根据线性可编程控制器的设计思想,整理了得到的各信号变化时对应的时刻和此时对应的计数器的值。 其中,CS_N是芯片状态标志信号,SCLK是芯片时钟输入引脚,DIN是芯片串行数据输入,DOUT是芯片串行数据输出。 http://www.Sina.com/http://www.Sina.com /

//可编程控制器是ADC串行数据接口的数据收发always @ (posedgeclkornegedgerst _ n ) if (! Rst_n ) beginADC_SCLK=1'b1; ADC_CS_N=1'b1; ADC_DIN=1'b1; endelseif(en ) beginif ) sclk2x ) begincase ) sclk_gen_CNT )6'd0:beginADC_cs_n=1'B0; end6'd1:begin ADC_SCLK=1'b0; ADC_DIN=1'b0; end6'd2:begin ADC_SCLK=1'b1; end6'd3:begin ADC_SCLK=1'b0; end6'd4:begin ADC_SCLK=1'b1; end6'd5:begin ADC_SCLK=1'b0; ADC_DIN=r_Channel[2]; end//addr [2]6' d 63360 begin ADC _ sclk=1' B1; end6'd7:begin ADC_SCLK=1'b0; ADC_DIN=r_Channel[1]; end//addr [1]6' d 83360 begin ADC _ sclk=1' B1; end6'd9:begin ADC_SCLK=1'b0; ADC_DIN=r_Channel[0]; 对于每个end//addr[0]//上升沿,ADC串行数据输出线上的转换结果6 ' D10、6 ' d12、6 ' d14、6 ' d16、6 ' d18、6 ' d20、6 ' d22、6 ' end//循环移位寄存器DOUT上12个数据6'd11、6'd13、6'd15、6'd17、6'd19、6'd21、6'd25、6'd27、6'd29 结束默认: begin ADC _ cs _ n=1' B1; 将结束//转换结果输出到结束案例结尾; end else beginADC_CS_N=1'b1; end 3358 www.Sina.com/http://www.Sina.com /

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。