基于SOPC技术的SPI核的实现.docx

上传人:rrsccc 文档编号:8927374 上传时间:2021-01-25 格式:DOCX 页数:2 大小:13.48KB
返回 下载 相关 举报
基于SOPC技术的SPI核的实现.docx_第1页
第1页 / 共2页
基于SOPC技术的SPI核的实现.docx_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

《基于SOPC技术的SPI核的实现.docx》由会员分享,可在线阅读,更多相关《基于SOPC技术的SPI核的实现.docx(2页珍藏版)》请在三一文库上搜索。

1、基于SOPC技术的SPI核的实现摘要:阐述何为SPI核,以16位 A /D 转换器 ADS8361芯片为例,分析了其工作原理和特点,利用硬件逻辑资源完成 A /D 数据采集和处理的时序设计,并将其添加为SOPC组件;在NIOS 系统中实现了A /D数据采集外设接口的定制,并对 A /D 数据采集结果进行了分析。关键词:ADS8361; SOPC;SPI核;NIOS 引言 SOPC(System On a Programmable Chip ) 称为可编程片上系统。SOPC 集成了硬核或软核 CPU 、DSP 、锁相环 PLL 、存储器、I/ O 接口及可编程逻辑,可以灵活高效地解决 SOC 方

2、案,而且设计周期短,设计成本低。SOPC 的设计是以 IP 为基础,以硬件描述语言为主要设计手段,借助计算机为平台的 EDA 工具,自动化、智能化地自顶向下进行的过程。其具体开发流程如图1所示。【1】 图1SOPC开发流程图 SPI是嵌入式系统常用的标准串行接口。带Avalon 接口的SPI内核符合SPI协议并通过 Avalon 从机接口接到Avalon 总线上。SPI是一个工业标准串行接口协议,通常用于嵌入式系统中连接处理器和各种片外的传感器、合成器、存储器和控制设备。基于Avalon接口的SPI实现了SPI协议,并在后端提供了一个Avalon接口。 SOPC Builder中提供了现成的S

3、PI核,可以轻松地集成到NIOS II系统中。SPI可以配置为主和从两种模式。当SPI被配置为主模式时,它可以控制16个相互独立的从SPI。SPI传输数据的宽度是由用户配置的,一般为116bit,如果需要传输位数更宽的数据,则需要软件程序支持。每当一次数据传输结束时,SPI核就请求一个中断。【2】 1ADS8361芯片的工作原理和特点 ADS8361的工作原理框图如图2所示。【3】 ADS8361是一种具有双通道16位的模数(A / D转换)转换器,分两组四个全差分输入通道,可同时进行高速信号采集,采样速率高达500KSPS。在高噪声环境频率为50kHz的情况下还能很好地提供了80dB的共模抑

4、制比。ADS8361提供了高速,双SPI串行接口和控制的输入,以尽量减少软件开销。图3为ADS8361串行时序图。 图2ADS8361内部工作原理框图 图3ADS8361串行时序图 2ADS8361核的设计 上述提到SPI内核传输的最大位宽为16位,而ADS8361传输的位宽为20bit,不能直接使用SPI内核。虽然,软件编程和自定义IP核组件两种方法都能实现,但是软件编程不仅占用CPU资源,而且传输速度也受到相应的限制,再加上RD(CONVST)、BUSY信号来确保时钟同步。因此,通过自定义IP核组件来实现更加快速、稳定、有效。 2.1逻辑模块设计 根据ADS8361的转换原理和SPI核的结

5、构,就可以用Verilog HDL语言编写用户的逻辑模块。部分代码如下所示: . . . . . . always (posedge clk) if(DCLK_DIV (CLK_FREQ / DCLK_FREQ) DCLK_DIV = DCLK_DIV+1; else begin DCLK_DIV = 0; AD_CLK = AD_CLK; end . . . . . . if(COUNTER d19) begin data_reg = AD_DATA; data_reg = data_reg; COUNTER = COUNTER+1; irq = 0; state=state; end .

6、. . . . . 2.2模块仿真 将设计好的功能模块在Quartus II下进行仿真,验证其模块设计的正确性。当M0=0,M1=0时,通道A输出的功能模块的仿真如图4所示。 图4逻辑功能模块仿真 2.3ADS8361SPI核在SOPC Builder中的封装 将设计文件封装为SOPC Builder元件,主要有以下几个步骤: (1) 添加硬件描述文件,并注意指定Top Level Module; (2) 设置信号; (3) 设置接口; (4) 添加软件文件,即设置文件路径。【4】 其中,设置接口和信号是关键步骤之一,定义为主还是从接口,信号的类型及位宽等等这些,必须参考相关资料。本文参考的是

7、Altera 官网上的技术资料里的SPI核和ADS8361的Datasheet。设置信号如图5所示。 2.4NIOSII对自定义外设接口的定制 图5设置信号 通过定义chipselset和address信号,SOPC Builer会自动分配给用户逻辑一个地址,那么对于用户逻辑的访问和操作,其实就是对分配给用户逻辑的地址进行访问和操作。从而实现 NIOS II 对自定义外设的定制。如图6所示。 图6SOPC设计及地址分配 最后,将各部分综合成一个. bdf文件,使得用户接口逻辑( interface t o user logic) ,与 NIOS 内部 AVALON 总线相连,编译生成完整硬件系

8、统。 3数据测量及分析 ADS8361是16位的A/D转换芯片,输入电压范围为-2.5V +2.5V,-2.5V表示方法为0x8000,+2.5V表示方法为0x7fff,0V表示为0x0000,即以补码形式输出,最高位为符号位,1表示负电压输入。下面只给出0 V +2.5V正电压测量数据,负电压测量数据不再给出。正电压测量数据如表1所示。 表15个点各五次采集得到的数值表 AD转换值计算公式为 (1) 其中,D为测量值的计算值,正数不变,负数取反加1,代入公式(1)可得被测的模拟电压值。 通过上述波形仿真和硬件测试和数据分析,可得知该数据采样板采集的模拟量数据准确、工作正常。 4结论 SOPC技术可以利用IP库快速生成系统,同时也可以把用户自定义的逻辑加入到系统当中,体现了用SOPC设计嵌入式系统的灵活性。使用SOPC可以快速地生成设计验证机,有效缩短开发周期。 参考文献: 【1】黄佳玮, 陈福深. 基于Nios的SOPC嵌入式系 统设计, 电子元器件应用, 2009. 【2】徐光辉等. 基于FPGA的嵌入式开发与应用, 电子工业出版社, 2006:30-57. 【3】ADS8361:16-Bit 500 kSPS 2 ADCs,4ch,serial out,,2007.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1