基于DSP和CPLD技术的多路ADC系统的设计与实现
发布时间:2008/5/28 0:00:00 访问次数:449
引言
随着现代电子技术的应用和发展,数字信号处理的内容日益复杂,而adc是实现从模拟到数字转换的一个必然过程。针对这种情况,利用数字信号处理器和可编程逻辑器件提出了多路adc系统的设计方法,实现了对动态多路模拟输入信号的采样传输以及处理,简化了电路设计,可编程逻辑器件使得系统的通用性和可移植性得到良好的扩展。系统框图如图1所示。
系统硬件设计
本设计所采用的adc器件是maxim公司的生产的低功耗16位模数转换器(adc)max1162。max1162采用逐次逼近型 adc结构,具有自动关断、1.1μs快速唤醒和兼容于spi/qspi/microwire的高速接口,采用+5v单模拟电源,并且具有独立的数字电源引脚,允许芯片直接和+2.7~+5.25v的数字逻辑接口。ref引脚接外部参考电压,用于设定模拟输入电压范围,与模拟地之间连接一个4.7μf的电解电容;avdd引脚是+5v电源供应输入端,与模拟地之间接一个0.1μf的电容;agnd是模拟地;cs是片选输入,低有效。当为高时,系统处于断电模式,由高变低时,激活系统到正常运行模式,同时初始化一次转换。本系统选择作为ad的使能信号;sclk是串行时钟输入,驱动模数转换进程;dout是串行数据输出,数据状态在sclk的下降沿改变;dgnd是数字地;dvdd是数字电压供应,与数字地之间接一个0.1μf的电容;ain是模拟信号输入端。
该adc系统的中央控制单元采用ti(德州仪器)公司的浮点数字信号处理器tms320vc33-150,tms320vc33的地址总线为24位,程序寻址范围可达16m,数据总线为32位,内部具有34k×32bit的sram,可根据需要映射在程序或数据空间,拥有一路串行口,可以构成传输8、16、24、32位的数据,其传输模式可以设置为突发模式或者是连续模式。两个32位的通用定时器,能够用来按照规定的时间间隔与芯片内部通信或者是和外部通信。
使用x9241实现高分辨率的软件代码
为了方便理解实现控制的细节,我们提供了c语言源代码(代码由xicor公司提供,我们做了一定的修改)。用户只需要自己再编写适用于不同单片机的i2c硬件接口函数(函数名称同程序中介绍一致),在应用程序中加入我们提供的源代码,简单的调用程序中介绍的5个函数,就可以方便地实现dcp的高分辨率控制。
关于x9241实现高分辨率的软件源代码,工程师可到http://www.icbase.com/download/x9241.c去下载。
本系统考虑到主要应用在adc中,所以就直接采用tms320vc33的数据总线和地址总线,没有再附加额外的电路,使得adc的采样速度和转换精度得到良好的保证。同时还利用了int2和xf0引脚,作为dsp接收数据的中断信号和adc的使能信号。int2是外部中断引脚,由外部的数据输入触发中断;xf0即外部标志输出引脚,受软件控制,可以用来向外部器件发送信号,该引脚的状态由i/o标志寄存器决定,iof=0x22,即置xf0为通用目的输出引脚,同时该引脚输出0;若iof=0x26,则置xf0为通用目的输出引脚,同时该引脚输出为1。本系统利用软件指令对xf0进行置高置低,控制adc的启动转换和停止。
emp7512ae基于eeprom技术,采用多电压i/o接口技术,系统内核供应电压为3.3v,而i/0引脚与2.5v、3.3v、5.0v逻辑电平相互兼容。epm7512ae有10 000个可用门、512个宏单元、32个逻辑阵列块和212个用户可用i/0引脚。cpld在系统中的主要功能是:给adc转换提供时钟信号,控制adc转换的使能和复位,由于采用的adc芯片是串行输出的,cpld还实现对串行数据的输入转为并行数据的输出,然后直接和tms320vc33的数据总线相连接。同时cpld产生脉冲信号,在adc转换完成后,数据暂存在cpld中,该脉冲向cpu申请中断,提示有数据需要接收。另外,cpld的一个关键作用就是,实现路数的动态选择,目前设计的该系统最多路数为8路。cpld和dsp及ad芯片的具体硬件连接图如图2所示。
使用x9241实现高分辨率的软件代码
为了方便理解实现控制的细节,我们提供了c语言源代码(代码由xicor公司提供,我们做了一定的修改)。用户只需要自己再编写适用于不同单片机的i2c硬件接口函数(函数名称同程序中介绍一致),在应用程序中加入我们提供的源代码,简单的调用程序中介绍的5个函数,就可以方便地实现dcp的高分辨率控制。
关于x9241实现高分辨率的软件源代码,工程师可到http://www.icbase.com/download/x9241.c去下载。
下面给出vhdl语言的主要程序部分。
begin
adcs <= synthesized_wire_12;
ada <= synthesized_wire_2;
gdfx_temp_signal_1 <= (l & l & h & h & h & l);
gdfx_temp_signal_0 <= (h & l & h & h & l);
u1 : lpm_bus
随着现代电子技术的应用和发展,数字信号处理的内容日益复杂,而adc是实现从模拟到数字转换的一个必然过程。针对这种情况,利用数字信号处理器和可编程逻辑器件提出了多路adc系统的设计方法,实现了对动态多路模拟输入信号的采样传输以及处理,简化了电路设计,可编程逻辑器件使得系统的通用性和可移植性得到良好的扩展。系统框图如图1所示。
系统硬件设计
本设计所采用的adc器件是maxim公司的生产的低功耗16位模数转换器(adc)max1162。max1162采用逐次逼近型 adc结构,具有自动关断、1.1μs快速唤醒和兼容于spi/qspi/microwire的高速接口,采用+5v单模拟电源,并且具有独立的数字电源引脚,允许芯片直接和+2.7~+5.25v的数字逻辑接口。ref引脚接外部参考电压,用于设定模拟输入电压范围,与模拟地之间连接一个4.7μf的电解电容;avdd引脚是+5v电源供应输入端,与模拟地之间接一个0.1μf的电容;agnd是模拟地;cs是片选输入,低有效。当为高时,系统处于断电模式,由高变低时,激活系统到正常运行模式,同时初始化一次转换。本系统选择作为ad的使能信号;sclk是串行时钟输入,驱动模数转换进程;dout是串行数据输出,数据状态在sclk的下降沿改变;dgnd是数字地;dvdd是数字电压供应,与数字地之间接一个0.1μf的电容;ain是模拟信号输入端。
该adc系统的中央控制单元采用ti(德州仪器)公司的浮点数字信号处理器tms320vc33-150,tms320vc33的地址总线为24位,程序寻址范围可达16m,数据总线为32位,内部具有34k×32bit的sram,可根据需要映射在程序或数据空间,拥有一路串行口,可以构成传输8、16、24、32位的数据,其传输模式可以设置为突发模式或者是连续模式。两个32位的通用定时器,能够用来按照规定的时间间隔与芯片内部通信或者是和外部通信。
使用x9241实现高分辨率的软件代码
为了方便理解实现控制的细节,我们提供了c语言源代码(代码由xicor公司提供,我们做了一定的修改)。用户只需要自己再编写适用于不同单片机的i2c硬件接口函数(函数名称同程序中介绍一致),在应用程序中加入我们提供的源代码,简单的调用程序中介绍的5个函数,就可以方便地实现dcp的高分辨率控制。
关于x9241实现高分辨率的软件源代码,工程师可到http://www.icbase.com/download/x9241.c去下载。
本系统考虑到主要应用在adc中,所以就直接采用tms320vc33的数据总线和地址总线,没有再附加额外的电路,使得adc的采样速度和转换精度得到良好的保证。同时还利用了int2和xf0引脚,作为dsp接收数据的中断信号和adc的使能信号。int2是外部中断引脚,由外部的数据输入触发中断;xf0即外部标志输出引脚,受软件控制,可以用来向外部器件发送信号,该引脚的状态由i/o标志寄存器决定,iof=0x22,即置xf0为通用目的输出引脚,同时该引脚输出0;若iof=0x26,则置xf0为通用目的输出引脚,同时该引脚输出为1。本系统利用软件指令对xf0进行置高置低,控制adc的启动转换和停止。
emp7512ae基于eeprom技术,采用多电压i/o接口技术,系统内核供应电压为3.3v,而i/0引脚与2.5v、3.3v、5.0v逻辑电平相互兼容。epm7512ae有10 000个可用门、512个宏单元、32个逻辑阵列块和212个用户可用i/0引脚。cpld在系统中的主要功能是:给adc转换提供时钟信号,控制adc转换的使能和复位,由于采用的adc芯片是串行输出的,cpld还实现对串行数据的输入转为并行数据的输出,然后直接和tms320vc33的数据总线相连接。同时cpld产生脉冲信号,在adc转换完成后,数据暂存在cpld中,该脉冲向cpu申请中断,提示有数据需要接收。另外,cpld的一个关键作用就是,实现路数的动态选择,目前设计的该系统最多路数为8路。cpld和dsp及ad芯片的具体硬件连接图如图2所示。
使用x9241实现高分辨率的软件代码
为了方便理解实现控制的细节,我们提供了c语言源代码(代码由xicor公司提供,我们做了一定的修改)。用户只需要自己再编写适用于不同单片机的i2c硬件接口函数(函数名称同程序中介绍一致),在应用程序中加入我们提供的源代码,简单的调用程序中介绍的5个函数,就可以方便地实现dcp的高分辨率控制。
关于x9241实现高分辨率的软件源代码,工程师可到http://www.icbase.com/download/x9241.c去下载。
下面给出vhdl语言的主要程序部分。
begin
adcs <= synthesized_wire_12;
ada <= synthesized_wire_2;
gdfx_temp_signal_1 <= (l & l & h & h & h & l);
gdfx_temp_signal_0 <= (h & l & h & h & l);
u1 : lpm_bus
引言
随着现代电子技术的应用和发展,数字信号处理的内容日益复杂,而adc是实现从模拟到数字转换的一个必然过程。针对这种情况,利用数字信号处理器和可编程逻辑器件提出了多路adc系统的设计方法,实现了对动态多路模拟输入信号的采样传输以及处理,简化了电路设计,可编程逻辑器件使得系统的通用性和可移植性得到良好的扩展。系统框图如图1所示。
系统硬件设计
本设计所采用的adc器件是maxim公司的生产的低功耗16位模数转换器(adc)max1162。max1162采用逐次逼近型 adc结构,具有自动关断、1.1μs快速唤醒和兼容于spi/qspi/microwire的高速接口,采用+5v单模拟电源,并且具有独立的数字电源引脚,允许芯片直接和+2.7~+5.25v的数字逻辑接口。ref引脚接外部参考电压,用于设定模拟输入电压范围,与模拟地之间连接一个4.7μf的电解电容;avdd引脚是+5v电源供应输入端,与模拟地之间接一个0.1μf的电容;agnd是模拟地;cs是片选输入,低有效。当为高时,系统处于断电模式,由高变低时,激活系统到正常运行模式,同时初始化一次转换。本系统选择作为ad的使能信号;sclk是串行时钟输入,驱动模数转换进程;dout是串行数据输出,数据状态在sclk的下降沿改变;dgnd是数字地;dvdd是数字电压供应,与数字地之间接一个0.1μf的电容;ain是模拟信号输入端。
该adc系统的中央控制单元采用ti(德州仪器)公司的浮点数字信号处理器tms320vc33-150,tms320vc33的地址总线为24位,程序寻址范围可达16m,数据总线为32位,内部具有34k×32bit的sram,可根据需要映射在程序或数据空间,拥有一路串行口,可以构成传输8、16、24、32位的数据,其传输模式可以设置为突发模式或者是连续模式。两个32位的通用定时器,能够用来按照规定的时间间隔与芯片内部通信或者是和外部通信。
使用x9241实现高分辨率的软件代码
为了方便理解实现控制的细节,我们提供了c语言源代码(代码由xicor公司提供,我们做了一定的修改)。用户只需要自己再编写适用于不同单片机的i2c硬件接口函数(函数名称同程序中介绍一致),在应用程序中加入我们提供的源代码,简单的调用程序中介绍的5个函数,就可以方便地实现dcp的高分辨率控制。
关于x9241实现高分辨率的软件源代码,工程师可到http://www.icbase.com/download/x9241.c去下载。
本系统考虑到主要应用在adc中,所以就直接采用tms320vc33的数据总线和地址总线,没有再附加额外的电路,使得adc的采样速度和转换精度得到良好的保证。同时还利用了int2和xf0引脚,作为dsp接收数据的中断信号和adc的使能信号。int2是外部中断引脚,由外部的数据输入触发中断;xf0即外部标志输出引脚,受软件控制,可以用来向外部器件发送信号,该引脚的状态由i/o标志寄存器决定,iof=0x22,即置xf0为通用目的输出引脚,同时该引脚输出0;若iof=0x26,则置xf0为通用目的输出引脚,同时该引脚输出为1。本系统利用软件指令对xf0进行置高置低,控制adc的启动转换和停止。
emp7512ae基于eeprom技术,采用多电压i/o接口技术,系统内核供应电压为3.3v,而i/0引脚与2.5v、3.3v、5.0v逻辑电平相互兼容。epm7512ae有10 000个可用门、512个宏单元、32个逻辑阵列块和212个用户可用i/0引脚。cpld在系统中的主要功能是:给adc转换提供时钟信号,控制adc转换的使能和复位,由于采用的adc芯片是串行输出的,cpld还实现对串行数据的输入转为并行数据的输出,然后直接和tms320vc33的数据总线相连接。同时cpld产生脉冲信号,在adc转换完成后,数据暂存在cpld中,该脉冲向cpu申请中断,提示有数据需要接收。另外,cpld的一个关键作用就是,实现路数的动态选择,目前设计的该系统最多路数为8路。cpld和dsp及ad芯片的具体硬件连接图如图2所示。
使用x9241实现高分辨率的软件代码
为了方便理解实现控制的细节,我们提供了c语言源代码(代码由xicor公司提供,我们做了一定的修改)。用户只需要自己再编写适用于不同单片机的i2c硬件接口函数(函数名称同程序中介绍一致),在应用程序中加入我们提供的源代码,简单的调用程序中介绍的5个函数,就可以方便地实现dcp的高分辨率控制。
关于x9241实现高分辨率的软件源代码,工程师可到http://www.icbase.com/download/x9241.c去下载。
下面给出vhdl语言的主要程序部分。
begin
adcs <= synthesized_wire_12;
ada <= synthesized_wire_2;
gdfx_temp_signal_1 <= (l & l & h & h & h & l);
gdfx_temp_signal_0 <= (h & l & h & h & l);
u1 : lpm_bus
随着现代电子技术的应用和发展,数字信号处理的内容日益复杂,而adc是实现从模拟到数字转换的一个必然过程。针对这种情况,利用数字信号处理器和可编程逻辑器件提出了多路adc系统的设计方法,实现了对动态多路模拟输入信号的采样传输以及处理,简化了电路设计,可编程逻辑器件使得系统的通用性和可移植性得到良好的扩展。系统框图如图1所示。
系统硬件设计
本设计所采用的adc器件是maxim公司的生产的低功耗16位模数转换器(adc)max1162。max1162采用逐次逼近型 adc结构,具有自动关断、1.1μs快速唤醒和兼容于spi/qspi/microwire的高速接口,采用+5v单模拟电源,并且具有独立的数字电源引脚,允许芯片直接和+2.7~+5.25v的数字逻辑接口。ref引脚接外部参考电压,用于设定模拟输入电压范围,与模拟地之间连接一个4.7μf的电解电容;avdd引脚是+5v电源供应输入端,与模拟地之间接一个0.1μf的电容;agnd是模拟地;cs是片选输入,低有效。当为高时,系统处于断电模式,由高变低时,激活系统到正常运行模式,同时初始化一次转换。本系统选择作为ad的使能信号;sclk是串行时钟输入,驱动模数转换进程;dout是串行数据输出,数据状态在sclk的下降沿改变;dgnd是数字地;dvdd是数字电压供应,与数字地之间接一个0.1μf的电容;ain是模拟信号输入端。
该adc系统的中央控制单元采用ti(德州仪器)公司的浮点数字信号处理器tms320vc33-150,tms320vc33的地址总线为24位,程序寻址范围可达16m,数据总线为32位,内部具有34k×32bit的sram,可根据需要映射在程序或数据空间,拥有一路串行口,可以构成传输8、16、24、32位的数据,其传输模式可以设置为突发模式或者是连续模式。两个32位的通用定时器,能够用来按照规定的时间间隔与芯片内部通信或者是和外部通信。
使用x9241实现高分辨率的软件代码
为了方便理解实现控制的细节,我们提供了c语言源代码(代码由xicor公司提供,我们做了一定的修改)。用户只需要自己再编写适用于不同单片机的i2c硬件接口函数(函数名称同程序中介绍一致),在应用程序中加入我们提供的源代码,简单的调用程序中介绍的5个函数,就可以方便地实现dcp的高分辨率控制。
关于x9241实现高分辨率的软件源代码,工程师可到http://www.icbase.com/download/x9241.c去下载。
本系统考虑到主要应用在adc中,所以就直接采用tms320vc33的数据总线和地址总线,没有再附加额外的电路,使得adc的采样速度和转换精度得到良好的保证。同时还利用了int2和xf0引脚,作为dsp接收数据的中断信号和adc的使能信号。int2是外部中断引脚,由外部的数据输入触发中断;xf0即外部标志输出引脚,受软件控制,可以用来向外部器件发送信号,该引脚的状态由i/o标志寄存器决定,iof=0x22,即置xf0为通用目的输出引脚,同时该引脚输出0;若iof=0x26,则置xf0为通用目的输出引脚,同时该引脚输出为1。本系统利用软件指令对xf0进行置高置低,控制adc的启动转换和停止。
emp7512ae基于eeprom技术,采用多电压i/o接口技术,系统内核供应电压为3.3v,而i/0引脚与2.5v、3.3v、5.0v逻辑电平相互兼容。epm7512ae有10 000个可用门、512个宏单元、32个逻辑阵列块和212个用户可用i/0引脚。cpld在系统中的主要功能是:给adc转换提供时钟信号,控制adc转换的使能和复位,由于采用的adc芯片是串行输出的,cpld还实现对串行数据的输入转为并行数据的输出,然后直接和tms320vc33的数据总线相连接。同时cpld产生脉冲信号,在adc转换完成后,数据暂存在cpld中,该脉冲向cpu申请中断,提示有数据需要接收。另外,cpld的一个关键作用就是,实现路数的动态选择,目前设计的该系统最多路数为8路。cpld和dsp及ad芯片的具体硬件连接图如图2所示。
使用x9241实现高分辨率的软件代码
为了方便理解实现控制的细节,我们提供了c语言源代码(代码由xicor公司提供,我们做了一定的修改)。用户只需要自己再编写适用于不同单片机的i2c硬件接口函数(函数名称同程序中介绍一致),在应用程序中加入我们提供的源代码,简单的调用程序中介绍的5个函数,就可以方便地实现dcp的高分辨率控制。
关于x9241实现高分辨率的软件源代码,工程师可到http://www.icbase.com/download/x9241.c去下载。
下面给出vhdl语言的主要程序部分。
begin
adcs <= synthesized_wire_12;
ada <= synthesized_wire_2;
gdfx_temp_signal_1 <= (l & l & h & h & h & l);
gdfx_temp_signal_0 <= (h & l & h & h & l);
u1 : lpm_bus