教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 范文大全 > 资料大全 >

SPI总线接口的FPGA设计与实现

来源:网络收集 时间:2026-09-12
导读: 第25卷第2期2004年6月 军 事 通 信 技 术 JournalofMilitaryCommunicationsTechnology Vol.25No.2 Jun.2004 SPI总线接口的FPGA设计与实现 杨承富1,徐志军2 (1.解放军理工大学通信工程学院研究生2队,江苏南京210007; 2.解放军理工大学通信工程学院电子信息工

第25卷第2期2004年6月

军 事 通 信 技 术

JournalofMilitaryCommunicationsTechnology

Vol.25No.2 Jun.2004 

SPI总线接口的FPGA设计与实现

杨承富1,徐志军2

(1.解放军理工大学通信工程学院研究生2队,江苏南京210007;

2.解放军理工大学通信工程学院电子信息工程系)

Ξ

摘 要:文中介绍了采用Alterea公司FLEX10K型的FPGA器件实现串行外设接口(SPI)的原理与过程,

给出了逻辑框图以及部分Verilog代码。用此种方法实现的接口与专用接口芯片相比,具有使用灵活,系统配置方便的优点。

关键词:串行外设接口;现场可编程门阵列;Verilog硬件描述语言中图分类号:TP336文献标识码:A文章编号:003221289(2004)0220072205

DesignandImplementSPIBusInterfacewithFPGA

YANGCheng2fu,XUZhi2jun

1

2

(1.PostgraduateTeam2ICE,PLAUN2.DepartmentofEelctronicInformICE,)

Abstract:wimpentingaSPIinterfacewithFPGAare

introduced,andsomeVerilogcodearepresented.Thechipimplementedinthiswayhasmoreagilityandismoreconvenienttoconfigurethanothers.

Keywords:SPIinterface;FPGA;VerilogHDL

串行外设接口SPI(SerialPeripheralInterface)是Motorola公司推出的一种同步串行接口。Motorola公

司生产的绝大多数单片机都配有SPI硬件接口,如68系列单片机。但也有许多单片机没有SPI接口,在需要应用SPI进行通信的场合,就需要对其进行SPI接口扩展。SPI接口的扩展有硬件和软件两种方法,软件模拟SPI接口方法虽然简单方便,但是速度受到限制,若用来进行通信,则速度不会很高。因此我们可以用FPGA来实现SPI接口,FPGA的速度很高,可以实现高速串行通信。根据SPI总线的电气特性,我们采用易ALTERA公司的FLEX10K系列FPGA器件设计并实现了SPI总线的通信接口,该总线接口具有高速、调试、配置灵活等等优点,大大地减少了系统的开发周期。

1 SPI简介

三线通信的系统。它允许处理器与各种外围设备SPI接口是工业标准的同步串行接口,是一种全双工、

以串行方式(8位数据同时、同步地被发送和接收)进行通信。在SPI接口中,数据的传输需要1个时钟信号和两条数据线。

从机输入线(MOSI),主机输入 从机输出线SPI总线由四根线组成:串行时钟线(SCK),主机输出

(MISO),还有一根是从机选择线(SS),它们在与总线相连的各个设备之间传送信息。

Ξ收稿日期:2003206205;修回日期:2003206220

作者简介:杨承富(1980-),男,硕士生.

SPI总线中所有的数据传输由串行时钟SCK

来进行同步,每个时钟脉冲传送1比特数据。SCK由主机产生,是从机的一个输入。时钟的相位(CPHA)与极性(CPOL)可以用来控制数据的传输。CPOL=“0”表示SCK的静止状态为低电平,则表示SCK静止状态为高电平。时钟CPOL=“1”

相位(CPHA)可以用来选择两种不同的数据传输模式。如果CPHA=“0”,数据在信号SS声明后的第一个SCK边沿有效;而当CPHA=“1”时,数据在信号SS声明后的第二个SCK边沿才有效。因此,主机与从机中SPI设备的时钟相位和极性必须要一致才能进行通信。图1和图2分别为不同相位与极性的时钟控制下的数据传输模式。

SPI可工作在主模式或从模式下。在主模

式,每一位数据的发送 接收需要1次时钟作

图2 CPHA=1时的传输模式

用;而在从模式下,每一位数据都是在接收到时钟信号之后才发送 接收。一个典型的SPI系统包括1个主M和1,如图3所示。单片机通过SPI,就可以与系统中的从机进行通信,,。但同一时间,图1 CPHA=0时的传输模式

2 SPI总线接口模块设计

我们最终设计的目标是用硬件描述语言建立一个SPI总线接口模块,也就是建立一个可以复用的IP核,并用FPGA来实现。并且可以将设计好的模块保存,应用于其它需要此模块的系统中,减少大型设计的工作量。2.1 SPI接口模块的建立

我们设计的最终目标就是生成如图4所示的一个模块。各管脚的定义为:clk为外部时钟信号,一般由单片机来提供;rst为复位信号,当其处于有效时,系统恢复起始状态;datai与datao分别为SPI接口的输入输出并行数据线,用来和单片机交换数据;addr为输入地址线,单片机用来对内部寄存器进行读写编址;rd和we分别为单片机读写信号输

图3 典型SPI系统组成

入管脚;scki为从模式下的串行时钟输入,scko为主模式下的时钟输出;mosi和

从机输出主机接收的串行数据线;当该模块作miso分别为主机输出从机接收、

为从机时,ss是别的主机的选择信号;sso(7∶0)是其作为主机时从机选择信号输出,可以与8个从机相连。2.2 SPI接口电路结构的设计

按照设计目标,根据需要实现的功能,我们将SPI接口划分成几个模块,这些模块独自完成一定的任务,结合起来实现通信接口功能。划分模块以后,可以

图4 SPI接口模块封装外观图

更方便地用硬件描述语言对其进行描述。

如图5所示,我们将要设计的SPI接口电路分成两个主要功能块——微处理器接口部分、SPI总线接口部分。因为SPI有主从两种工作模式,我们设计的目的就是使一块FPGA芯片能够实现主从模式SPI接口电路的全部功能。图2中,单片机接口部分电路在主模式与从模式下大致差不多,而SPI总线接口部分却有很大的不同。主模式下,串行时钟产生控制模块对外部时钟进行分频得到串行通信时钟——SCK,因此它就相当于一个分频器。而在从模式下,SCK由外部输入,该模块就不起作用,完全可以省略。主要组成部分的功能阐述如下:

8比特读缓冲器与移位寄存器——SPI的核心单元。其中发送端是单缓冲,而接收是双缓冲。实际上就是新发送的数据直到前一个数据发送结束才能写进移存器;接收到的数据是被送到一个并行的

读数据缓冲器中以使得移存器能够自由的接收第

图5 SPI接口结构图二个串行数据,只要第一个数据在第二个数据准备

发送前被读出缓冲器,就不会产生数据的溢出。

控制寄存器——随时可以被单片机读写,置。可以控制传输模式(主或是从),控制I状态寄存器—当相应的事件方式时,这些标志自动设置,清除则由软件来完成从选择寄存器—。当SPI主机传送开始时,SSCR寄存器的内容自动赋给管脚SSO(7)2SSO(0)。

SCK产生控制模块——主模式下产生串行时钟SCK,软件利用控制寄存器(SPCR)里面的两个比特可以选择四种串行时钟极性与相位的组合。时钟的极性由CPOL控制比特确定,选择高电平有效或是低电平有效对传送模式没多大影响。时钟相位控制比特(CPHA)选择两种基本传输模式中的一种。从模式下只用来接收主机产生的SCK,用来控制数据的传输。

从操作模式并对传输进行控制。SPI控制器决定传输速度和模式(相位和极SPI控制器——决定主

性),还负责产生中断需求与检测错误。

3 SPI的Verilog描述

它允许设计者用它来进行各种级别的VerilogHDL是硬件描述语言的一种,用于数字电子系统的设计。

逻辑设计,可以用它来进行数字逻辑系统的仿真验证、时序分析、逻辑综合。它是目前应用最广泛的一种硬件

描述语言。在这里,我们主要用它对设计目标进行RTL(寄存器传输)级的描述,编写出可综合的Verilog模块。

3.1 SPI接口电路的Verilog实现

在这里,我们采用的是自顶向下(TOP2DOWN)的设计方法,从系统级开始,把系统划分为几个基本的单元,依据需要还可以将这几个基本单元再进行细划分。本设计的系统划分如图6所示。

整个 …… 此处隐藏:4287字,全部文档内容请下载后查看。喜欢就下载吧 ……

SPI总线接口的FPGA设计与实现.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/fanwen/1816025.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)