基于FPGA的ADS1256芯片控制器设计.doc
《基于FPGA的ADS1256芯片控制器设计.doc》由会员分享,可在线阅读,更多相关《基于FPGA的ADS1256芯片控制器设计.doc(2页珍藏版)》请在三一文库上搜索。
1、基于FPGA的ADS1256芯片控制器设计模数转换即将模拟信号进行数字化处理,得到与原始信号近似的离散的数字量,用数字信号以bit位单位编码量化表示原始信号,这种量化目前由ADC(模数转换)芯片的硬件实现,对芯片的控制可以根据系统特占通过DSP(数字信号处理器)、ASIC(专用集成电路)和FPGA(现场可编程门阵列)三种不同方式完成。2采用FPGA的方式适合与对速率要求较高的可编程环境,本设计使用Xilinx公司Spartan3E的FPGA通过对TI的ADS1256芯片控制并完成模数转换功能。功能实现整体模块的设计应该包含以下子功能模块:(1)时钟模块clk_gen对20MHz的主时钟分频产生
2、供SPI使用的占空比为50%的2MHz时钟和4MHz的时钟;(2)延迟模块delay_n在系统上电后延迟一段时间,等待供电稳定后再初始化A/D启动A/D转换,减少系统上电时对模拟信号输入的瞬时影响,保证ADC转换时可输出稳定的数据;(3)初始化模块adc_iniTIal,它的功能是通过SPI接口对ADS1256进行初始化,根据芯片使用说明按步骤设定它进入工作状态;(4)AD转换控制模块adc_xchange,它的功能是产生ADS1256需要的时序,把控制字通过SPI发送到ADS1256,并最终根据芯片指示读出A/D转换后的数字信号。在FPGA上完成的ADS1256芯片控制系统的RTL结构图如下
3、图所示:SRL16E的应用系统中采用Xilinx原语SRL16E构成的16位移位寄存器进行时钟控制,可以通过以下公式进行计算:数据输出位数=8*A3+4*A2+2*A1+1*A0+1例如本系统采用20Mhz的系统主时钟,要进行5分频得到4M的SPI接口工作时钟,只需将A3,A2,D1,D0设置为0,1,0,0(8*0+4*1+2*0+1*0+1=5)即可。本设计中使用SRL16E而没有采用锁存器(PLL)进行时钟的分频,可以进一步节省FPGA的硬件资源。因为FPGA中每个查找表LUT能够构成一个16位的移位寄存器,它可以通过对Xilinx定义的系统宏SRL16E的调用来实现。由于LUT中能够提供一个16位的同步RAM。利用SRL16E这种存储的能力设计递归的延迟线(RDL),再根据RDL抽样个数倍减而速率倍增的特点与时分复用技术相结合,构成递归折叠结构。最终以提高主工作时钟频率的代价,增大了采样速率以及相关运算单元的吞吐率,并且极大的降低了资源的使用。本设计中采用了1/4的递归折叠结构,资源消耗仅为优化前的1/3。如下图所示,为FPGA的资源使用情况。FPGA的资源使用。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 FPGA ADS1256 芯片 控制器 设计
链接地址:https://www.31doc.com/p-3410262.html