电子信息与通信学院
实 验 报 告
实验名称: 课程名称: 专业班级: 姓名: 学号: 实验成绩: 指导教师:
2014年12月23日
串行IO 接口设计 微机原理实验 电信卓越1201班
钟远维 U201213500
罗杰
一. 实验目的
1. 2. 3. 4. 5.
理解RS232串行通信协议以及接口设计 理解SPI 串行通信协议 掌握RS232串行接口设计 掌握SPI 串行接口设计 掌握串行AD/DA接口设计
二. 实验任务
SPI 接口DA 转换输出锯齿波,频率1kHz 以上(降低采样频率),峰峰值约3.3V
要求:全部采用中断方式。
三. 实验步骤
1. 接口电路如图所示:
DAC121S101中断控制方式接口电路
2. 硬件平台建立
1) 使用XPS 创建一个基于AXI 总线的最小计算机系统。
File –> New BSB Project,如图:
2) 修改时钟设置:将时钟产生器的时钟输入信号进行修改,修改为单一时
钟源。
修改后的结果如图:
3) 添加AXI Interrupt Controller IP核:
a. 在IP Catalog标签中,双击下面图标创建INTC IP核:
b. 将microblaze_0实例的INTERRUPT 引脚选择axi_intc_0_INTERRUPT,如图:
4) 加入AXI SPI接口控制器:
a. 如图所示,选择AXI SPI。
b. 配置SPI 接口参数如图所示。这是由于该SPI 接口仅需要输出数据,而且一次传输需要16位数据,一个从设备,且D/A转换芯片要求SCLK 最高速率30MHz ,由于AXI 总线频率为100MHz ,一次分频比为4,此时SCLK 的频率仅为25MHz 。
c. 设置端口连接配置,如图:
5) 为AXI INTC添加中断源,如图:
6) 配置UCF 文件:
在UCF 文件中修改如图所示配置,此时是通过PMOD JA上排插针进行连接:
7) 创建工程过程完成后,
a. 在主界面下选择Hardware->Generate Netlist; b. 在主界面下选择Hardware->Generate Bitstream;
c. 单击Graphical Design View,可以看到系统的连接图,如下:
3. 软件平台建立
a. SDK 提供的外设驱动以及应用程序
1. 点击project->Expert Hardware Design to SDK…,点击Export&Launch
SDK :
2. 在SDK 中,点击file->new->board support package,如图:
3. 点击file->new->application project,创建一个Empty Applicant工程,
在src 中新建一个SPIDIswitch.c 文件,如图所示:
b. 源代码及注释:
四. 实验结果和调试过程
首先,把SPI 接口D/A模块跟Nexys4的板子相接;
然后,下载并运行该工程,将示波器的探针连接到J2的1脚,可以看到锯齿波的波形。
实验结果,如图所示:
可以看到,锯齿波的峰峰值3.32V ,频率为1.451kHz ,符合实验内容的要求。
五. 实验心得
通过串行IO 接口的实验,我理解了SPI 串行通信协议,同时也掌握了SPI 串行接口的设计以及串行AD/DA接口的设计。不仅如此,通过这次实验,我对中断的理解更加深刻了,对它的操作更加熟练。
这个实验的过程中,令我觉得最困难的不是硬件部分的理解和搭建,而是软件部分代码的理解,由于代码中利用到了中断,所以对中断状态的理解和使用上面遇到了一些问题。通过与同学交流,和看书上的相关内容,最后我也把代码理解了,这样就很好地把整个实验的过程都理解了。
总的来说,本次实验做得还比较轻松,原理方面容易掌握,操作方面也容易实验。希望综合项目的实验也一样顺利。
电子信息与通信学院
实 验 报 告
实验名称: 课程名称: 专业班级: 姓名: 学号: 实验成绩: 指导教师:
2014年12月23日
串行IO 接口设计 微机原理实验 电信卓越1201班
钟远维 U201213500
罗杰
一. 实验目的
1. 2. 3. 4. 5.
理解RS232串行通信协议以及接口设计 理解SPI 串行通信协议 掌握RS232串行接口设计 掌握SPI 串行接口设计 掌握串行AD/DA接口设计
二. 实验任务
SPI 接口DA 转换输出锯齿波,频率1kHz 以上(降低采样频率),峰峰值约3.3V
要求:全部采用中断方式。
三. 实验步骤
1. 接口电路如图所示:
DAC121S101中断控制方式接口电路
2. 硬件平台建立
1) 使用XPS 创建一个基于AXI 总线的最小计算机系统。
File –> New BSB Project,如图:
2) 修改时钟设置:将时钟产生器的时钟输入信号进行修改,修改为单一时
钟源。
修改后的结果如图:
3) 添加AXI Interrupt Controller IP核:
a. 在IP Catalog标签中,双击下面图标创建INTC IP核:
b. 将microblaze_0实例的INTERRUPT 引脚选择axi_intc_0_INTERRUPT,如图:
4) 加入AXI SPI接口控制器:
a. 如图所示,选择AXI SPI。
b. 配置SPI 接口参数如图所示。这是由于该SPI 接口仅需要输出数据,而且一次传输需要16位数据,一个从设备,且D/A转换芯片要求SCLK 最高速率30MHz ,由于AXI 总线频率为100MHz ,一次分频比为4,此时SCLK 的频率仅为25MHz 。
c. 设置端口连接配置,如图:
5) 为AXI INTC添加中断源,如图:
6) 配置UCF 文件:
在UCF 文件中修改如图所示配置,此时是通过PMOD JA上排插针进行连接:
7) 创建工程过程完成后,
a. 在主界面下选择Hardware->Generate Netlist; b. 在主界面下选择Hardware->Generate Bitstream;
c. 单击Graphical Design View,可以看到系统的连接图,如下:
3. 软件平台建立
a. SDK 提供的外设驱动以及应用程序
1. 点击project->Expert Hardware Design to SDK…,点击Export&Launch
SDK :
2. 在SDK 中,点击file->new->board support package,如图:
3. 点击file->new->application project,创建一个Empty Applicant工程,
在src 中新建一个SPIDIswitch.c 文件,如图所示:
b. 源代码及注释:
四. 实验结果和调试过程
首先,把SPI 接口D/A模块跟Nexys4的板子相接;
然后,下载并运行该工程,将示波器的探针连接到J2的1脚,可以看到锯齿波的波形。
实验结果,如图所示:
可以看到,锯齿波的峰峰值3.32V ,频率为1.451kHz ,符合实验内容的要求。
五. 实验心得
通过串行IO 接口的实验,我理解了SPI 串行通信协议,同时也掌握了SPI 串行接口的设计以及串行AD/DA接口的设计。不仅如此,通过这次实验,我对中断的理解更加深刻了,对它的操作更加熟练。
这个实验的过程中,令我觉得最困难的不是硬件部分的理解和搭建,而是软件部分代码的理解,由于代码中利用到了中断,所以对中断状态的理解和使用上面遇到了一些问题。通过与同学交流,和看书上的相关内容,最后我也把代码理解了,这样就很好地把整个实验的过程都理解了。
总的来说,本次实验做得还比较轻松,原理方面容易掌握,操作方面也容易实验。希望综合项目的实验也一样顺利。