摘要:SPI总线作为一种同步串行外围设备接口,是Motorola首先在其MMC68HCXX系列处理器上定义的。它可以使得MCU与各种外围设备以串行方式来进行数据的发送和传输,达到通信的目的。因此可直接与各个厂家生产的多种外围器件直接相连,而不需要其他的附加连接设备,从而减少了通信的成本。它的芯片的引脚上面只需要用杜邦线连接四个接口,节约了芯片的引脚,同时为PCB的布局节省了空间,提供了很大便利。正是处于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议;FPGA与传统的ASIC技术相比,它更加的灵活,可移植性更强,因此使得用户在操作中更加方便快捷。在这种架构之下,应用FPGA来构建SPI通信接口是切实可行的。
本课题选用的核心控制器是采用ALTERA 公司的CycloneIV芯片EP4CE6E22C8N作为核心最小系统的FPGA核心板,它是一款基于EP4CE6E22C8N为主控芯片的FPGA核心板,该核心板的控制代码采用Verilog HDL语言来编写,MCU部分选用的是意法半导体公司生产的8位单片机,它具有3级流水线的哈佛结构。本部分的控制代码选择用C语言编写。在硬件设计方面,STM8单片机核心板设置了4位LED显示灯,来显示SPI通信的数据发送与接收情况,该部分通过ST-LINK仿真器利用STVD软件下载程序代码,FPGA核心板则通过供电线和JATG下载程序进行工作。
关键词:FPGA;MCU;SPI通信
目录
摘要
Abstract
1 绪论-1
1.1选题的背景与意义-1
1.2 FPGA技术介绍及原理分析-1
1.3课题主要内容以及目标-2
2 SPI介绍及原理分析-4
2.1 SPI总线协议介绍及时序分析-4
2.2 SPI工作模式介绍及分析-5
2.3 SPI传输模式介绍及分析-5
2.4 SPI协议举例-7
3 系统硬件设计-8
3.1系统设计要求-8
3.1.1系统设计总体框图及分析-8
3.1.2系统开发选用资源-8
3.2 FPGA核心板部分硬件设计-9
3.2.1 FPGA核心板部分的供电系统设计-9
3.2.2 FPGA核心板部分的JTAG下载部分设计-10
3.2.3 FPGA核心板部分的外设连接设计-11
3.3 STM8部分硬件设计-12
3.3.1 STM8部分的主芯片部分设计-12
3.3.2 STM8部分的供电及下载部分设计-12
3.3.3 STM8部分的LED显示设计-13
3.3.4 ST-Link /V2仿真调试器及连接示意图分析-14
4 系统软件设计-16
4.1边沿检测电路的FPGA实现-16
4.1.1边沿检测的电路实现-16
4.1.2边沿检测电路的Verilog VHDL实现-16
4.2 SPI通信模块设计以及仿真-17
4.2.1 SPI通信模块接收设计以及仿真-17
4.2.2 SPI通信数据发送模块设计以及仿真-19
4.3 STM8部分的主函数设计-20
5 系统调试过程及结果分析-22
结 论-24
参考文献-25
附录A原理图和PCB-26
附录B 程序代码-30
致 谢-40