基于sopc技术的spi核的实现

基于sopc技术的spi核的实现

ID:23791974

大小:56.00 KB

页数:6页

时间:2018-11-10

基于sopc技术的spi核的实现_第1页
基于sopc技术的spi核的实现_第2页
基于sopc技术的spi核的实现_第3页
基于sopc技术的spi核的实现_第4页
基于sopc技术的spi核的实现_第5页
资源描述:

《基于sopc技术的spi核的实现》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

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

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

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

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

5、VerilogHDL语言编写用户的逻辑模块。部分代码如下所示:......al0=0,M1=0时,通道A输出的功能模块的仿真如图4所示。图4逻辑功能模块仿真2.3ADS8361SPI核在SOPCBuilder中的封装  将设计文件封装为SOPCBuilder元件,主要有以下几个步骤:(1)添加硬件描述文件,并注意指定TopLevelModule;(2)设置信号;(3)设置接口;(4)添加软件文件,即设置文件路径。[4]  其中,设置接口和信号是关键步骤之一,定义为主还是从接口,信号的类型及位宽等等这些,必须参考相关资料。本文参考的是Altera官X上的技术资料里的SPI核和ADS

6、8361的Datasheet。设置信号如图5所示。2.4NIOSII对自定义外设接口的定制图5设置信号  通过定义chipselset和address信号,SOPCBuiler会自动分配给用户逻辑一个地址,那么对于用户逻辑的访问和操作,其实就是对分配给用户逻辑的地址进行访问和操作。从而实现NIOSII对自定义外设的定制。如图6所示。图6SOPC设计及地址分配  最后,将各部分综合成一个.bdf文件,使得用户接口逻辑(interfacetouserlogic),与NIOS内部AVALON总线相连,编译生成完整硬件系统。3数据测量及分析  ADS8361是16位的A/D转换芯片,输入

7、电压范围为-2.5V~+2.5V,-2.5V表示方法为0x8000,+2.5V表示方法为0x7fff,0V表示为0x0000,即以补码形式输出,最高位为符号位,1表示负电压输入。下面只给出0V~+2.5V正电压测量数据,负电压测量数据不再给出。正电压测量数据如表1所示。表15个点各五次采集得到的数值表  AD转换值计算公式为(1)  其中,D为测量值的计算值,正数不变,负数取反加1,代入公式(1)可得被测的模拟电压值。  通过上述波形仿真和硬件测试和数据分析,可得知该数据采样板采

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。