用于模数转换芯片的采样方法

文档序号:7536810阅读:585来源:国知局
专利名称:用于模数转换芯片的采样方法
技术领域
本发明涉及一种基于DMA和SPI通讯口的模数转换芯片的连续自动采样方法。
背景技术
目前市场上采用SPI通讯方式的ADC芯片比较多,例如Ti公司的ADS1178,在与IT公司C6000序列的DSP通讯时,存在如下问题1)采用SPI中断方式接收采样数据,存在中断速率高的问题(其中断速度是采样速率6-8倍),中断开销大。2)采用TI公司的C6000序列DSP芯片,由于其库函数进入了流水线后会禁止任何中断响应,这样务必会造成采样点的丢失,以致产生严重后果。3)加一片CPLD或FPGA进行时序转换来或专门负责采样,使设计成本大大增加。

发明内容
本发明的目的是提供一种连续自动的用于模数转换芯片的采样方法。本发明提供的用于模数转换芯片的采样方法,该方法包括以下步骤
步骤I,根据模数转换芯片的Ready信号配置GPIO管脚,设置该Ready信号为下降沿触发,用于触发GPI0_DMA事件;
步骤2,配置EDMA参数表,在DMA的事件使能寄存器中,使能SPI_DMA接收发送事件和GPI0_DMA事件,并配置此类事件对应的通道参数表;
步骤3,设置DSP处理器的SPI模式为主模式,使能SPI_DMA模式,设置SPI时钟频率; 步骤4,启动AD采样,采样数据将由EDMA自动放入预定的数据缓冲区。所述步骤2采用3个DMA通道配置SPI_DMA接收发送事件和GPI0_DMA事件的通道参数表,为GPI0_DMA事件提供一个DMA通道,配置成自动加载模式;为SPI_DMA接收事件分配一个DMA通道,配置成自动加载模式,并配置Chain模式触发发送;为SPI_DMA发送事件提供一个DMA通道,配置为自动加载模式。本发明通过DMA将模数转换芯片的转换结果直接按要求搬运到指定数据缓冲区中;并且每一次采样,DMA能自动设置当前缓冲区存储位置,供数据处理程序使用。在无CPU干预的情况下,本发明能进行数据的实时快速准确采集,不丢失采样数据,跟现有技术相t匕,本发明有如下优点
1.采样过程中CPU零消耗,完全释放CPU,加快读取速度,极大地提高了系统执行应用程序的效率;
2.采样中断不会丢失,采用DMA方式,保证了数据的实时性和连续性;
3.操作简单可靠,通过几个寄存器的配置就可以实现较为复杂的功能,使复杂的功能
简单化。


图1是本发明的流程图。
图2是本发明的模数转换芯片与主芯片的电路原理图。
具体实施例方式下面结合附图对本发明做进一步说明。如图1所示,本发明通过模数转换芯片的特点进行DSP处理器DMA事件及触发机制的设计,并利用DSP处理器内部DMA资源,不需要任何CPU参与,可以完成连续自动采样。本发明的模数转换芯片可采用TI公司的模数转换芯片,其型号为ADSl 178 ;DSP处理器采用TI公司的DSP处理器芯片,其型号为TMS320C67XX。在工作时,用三线SPI 口与处理器直接相连。DSP处理器采用EDMA进行数据通讯。有3个DMA通道参与本发明的数据采样,其具体操作步骤如下
步骤I,初始化模数转换芯片,使能SPI的DMA方式寄存器,并且使能SPI接收发送事件(SPI_DMA 事件)和 GPIO 的 DMA 事件(GPI0_DMA 事件)。步骤2,配置11张DMA对应事件参数表,这11张参数表可分为3组
组一
I号表,用于启动GPI0_DMA事件,完成第一个通道的数据发送;
2号表,用于在完成后第一个通道的数据发送后,重新加载I号表。组二
3号表,用于启动SPI接收数据;
4号表,用于完成SPI接收数据后,重新加载3号表。组三
5号表至9号表,均用于完成剩下五个通道的数据发送;
10号表,用于告知当前采样点位置;
11号表,用于重新加载5号表。步骤3,启动模数转换芯片进行采样。步骤4,采用EDMA方式模拟SPI的发送过程来接受模数转换芯片的数据。首先配置模数转换芯片的Ready信号终端,中断由Ready信号下降沿触发,此中断将触发一个GPI0_DMA事件。步骤5,步骤4中的GPI0_DMA事件触发一次DMA搬运,将一个任意16位数据传到SPI发送寄存器。该数据发送完成后,加载GPI0_DMA事件通道参数表中的2号表。步骤6,SPI启动一次接收,通过EDMA的link机制,DMA管理器重新加载GPI0_DMA事件通道参数表并触发一个SPI_DMA接收事件;此事件用来接收第一个来自数模转换芯片的16位采样数据。步骤7,当完成接收时,此时利用EDMA的Chain机制触发另一个SPI_DMA发送事件。该SPI_DMA事件用来触发一次DMA搬运,将一个任意16位数据传到SPI发送寄存器。发送完成后,再次触发一个SPI_DMA接收事件,接收模数转换芯片的第二个采样数据。步骤8,重复步骤7,继续完成剩余四次SPI_DMA接收发送事件,完成6个通道的SPI数据接收。步骤9,当第6个通道完成接收时,通过EDMA加载SPI_DMA接收事件通道参数表,并再次触发一个SPI_DMA发送事件,此事件用来触发一次DMA搬运,将当前ADC采样点的存储位置发送给指定变量。这些变量用于在中断服务子程序中,对采样数据进行处理。步骤10,步骤9中的SPI_DMA发送事件结束后,重新加载SPI_DMA发送事件通道参数表。由此就完成了整套EDMA采集数据的连续自动采样。
权利要求
1.一种用于模数转换芯片的采样方法,该方法包括以下步骤 步骤I,根据模数转换芯片的Ready信号配置GPIO管脚,设置该Ready信号为下降沿触发,用于触发GPI0_DMA事件; 步骤2,配置EDMA参数表,在DMA的事件使能寄存器中,使能SPI_DMA接收发送事件和GPI0_DMA事件,并配置此类事件对应的通道参数表; 步骤3,设置DSP处理器的SPI模式为主模式,使能SPI_DMA模式,设置SPI时钟频率; 步骤4,启动AD采样,采样数据将由EDMA自动放入预定的数据缓冲区。
2.根据权利要求1所述的用于模数转换芯片的采样方法,其特征在于,所述步骤2采用3个DMA通道配置SPI_DMA接收发送事件和GPI0_DMA事件的通道参数表,为GPI0_DMA事件提供一个DMA通道,配置成自动加载模式;为SPI_DMA接收事件分配一个DMA通道,配置成自动加载模式,并配置Chain模式触发发送;为SPI_DMA发送事件提供一个DMA通道,配置为自动加载模式。
全文摘要
本发明公开了一种用于模数转换芯片的采样方法,该方法包括以下步骤首先根据模数转换芯片的Ready信号配置GPIO管脚,设置该Ready信号为下降沿触发。再配置EDMA参数表,在DMA的事件使能寄存器中,使能SPI_DMA接收发送事件和GPIO中断事件,并配置此类事件对应的通道参数表;然后设置DSP处理器的SPI模式为主模式,使能SPI_DMA模式,设置SPI时钟频率;最后启动AD采样,采样数据将自动放入预定的数据缓冲区。本发明在采样过程中CPU零消耗,极大地提高了系统执行应用程序的效率;采样中断不丢失,保证了数据的实时性和连续性;同时操作简单可靠。
文档编号H03M1/12GK103036567SQ20121056483
公开日2013年4月10日 申请日期2012年12月24日 优先权日2012年12月24日
发明者刘铁军, 田丰, 张武娟, 沈合堂 申请人:长沙威胜能源产业技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1