一种对脉冲数据进行采样的方法技术

技术编号:6009159 阅读:222 留言:0更新日期:2012-04-11 18:40
一种对脉冲数据进行采样的方法,把产生脉冲的GPIO直接连到CPU?SPI接口的MISO引脚上,利用CPU现有的SPI接口来代替CPU进行脉冲数据的采样,采样到的数据由DMA来代替负责保存。当脉冲为低时,SPI采样到的数据就为0,当脉冲为高时,SPI采样到的数据就为1。所以只要求出连续为0或为1的位数,再根据采样精度就可以求出脉冲的时间宽度。本发明专利技术无需添加额外的硬件就可以实现高精度,高性能的脉冲数据采样。具有很好的实现效果和较低的实现成本。

【技术实现步骤摘要】

本专利技术属于,适用于具有脉冲数据采样功能的终端广品。
技术介绍
随着物联网产业的发生,要求越来越多的终端产品具有脉冲数据采样的功能,例如对黑白摄像头,一维激光头输出的脉冲数据做采样和处理。传统的对脉冲数据进行采样的做法主要有两种。第一种方法如图1所示,把产生脉冲的GPIO引脚连接到CPU的一个外部中断引脚上。并把此外部中断配置为双边缘触发,这样只要脉冲的状态一变化,就会触发中断,在中断处理程序中计算并保存两个脉冲边缘的时间间隔。第二种方法如图2所示,扩张一颗专门负责脉冲数据采样的芯片,芯片通过串口,USB等接口与CPU互联。第一种方法不需要额外添加硬件就能完成采样功能。实现成本低,但是会由于中断处理存在延时而导致采样精度不高,而且采样过程需要CPU的参与会导致系统负荷增加。所以这并不是一种可产品化的方法,只能用于熟悉原理所用。第二种方法算是一种完美的方法,但是这需要添加额外的硬件,会导致产品成本的增加。
技术实现思路
本专利技术所要解决的技术问题在于提供一种低成本、高精度的脉冲数据采样方法, 该方法无需添加额外硬件,且具有较高采样精度和采样性能。本专利技术采用以下技术方案解决上述技术问题,包括如下步骤步骤1 首先初始化相应SPI接口的GPIO引脚;步骤2 设置SPI总线的时钟,即脉冲数据的采样时钟;步骤3 初始化DMA控制器,并设置采样数据的保存地址;步骤4 当要开始采集时,就使能SPI接口,对MISO上输入的脉冲做采样;步骤5 =SPI每采样到4个字节的数据就发起一个DMA请求,DMA控制器会把数据保存到指定的内存位置;步骤6 当采样结束之后,所有采样到的数据保存在步骤3指定的位置;步骤7 根据步骤2设置的采样时钟,可以计算出SPI每采样一位数据所花费的时间;步骤8 转义采样到的数据,按位来对数据解析;如果连续位的值为0,就说明这部分采样数据对应的是低脉冲,把连续为0的位数和步骤7的值相乘便可计算出低脉冲的时间宽度;如果连续位的值为1,就说明这部分采样数据对应的是高脉冲,把连续为1的位数和步骤7的值相乘可计算出高脉冲的时间宽度。本专利技术的优点在于把产生脉冲的GPIO直接连到CPU SPI接口的MISO引脚上,利用CPU现有的SPI接口来代替CPU进行脉冲数据的采样,采样到的数据由DMA来代替负责保存。无需添加额外的硬件就可以实现高精度,高性能的脉冲数据采样。具有很好的实现效果和较低的实现成本。附图说明下面参照附图结合实施例对本专利技术作进一步的描述。图1是现有技术之一的逻辑连接框图。图2是现有技术之二的逻辑连接框图。 图3是本专利技术的逻辑连接框图。图4是本专利技术的硬件原理图。图5是本专利技术的软件控制流程。具体实施方式请同时参阅图3至图5,,包括如下步骤步骤1 首先初始化相应SPI接口的GPIO引脚;步骤2 设置SPI总线的时钟,即脉冲数据的采样时钟;步骤3 初始化DMA控制器,并设置采样数据的保存地址;步骤4 当要开始采集时,就使能SPI接口,对MISO上输入的脉冲做采样;步骤5 =SPI每采样到4个字节的数据就发起一个DMA请求,DMA控制器会把数据保存到指定的内存位置;步骤6 当采样结束之后,所有采样到的数据保存在步骤3指定的位置;步骤7 根据步骤2设置的采样时钟,可以计算出SPI每采样一位数据所花费的时间;步骤8 转义采样到的数据,按位来对数据解析;如果连续位的值为0,就说明这部分采样数据对应的是低脉冲,把连续为0的位数和步骤7的值相乘便可计算出低脉冲的时间宽度;如果连续位的值为1,就说明这部分采样数据对应的是高脉冲,把连续为1的位数和步骤7的值相乘可计算出高脉冲的时间宽度。这样,便可数值化输入的整个脉冲波形。本专利技术中,把输出脉冲的GPIO引脚连接至CPU SPI接口的MISO引脚,也就是把脉冲作为SPI接口的输入数据,当脉冲为低时,SPI采样到的数据就为0,当脉冲为高时,SPI 采样到的数据就为1。所以只要求出连续为0或为1的位数,再根据采样精度就可以求出脉冲的时间宽度。由于SPI控制器的FIFO大小有限,所以必须及时取走采样到的数据。否则就会发生FIFO溢出,导致采样数据的丢失。所以为了防止中断处理延时导致FIFO溢出和降低采样过程中系统的负荷,本专利技术采用DMA的方式把采样数据及时转移直指定的内存位置。本专利技术把产生脉冲的GPIO直接连到CPU SPI接口的MISO引脚上,利用CPU现有的SPI接口来代替CPU进行脉冲数据的采样,采样到的数据由DMA来代替负责保存。无需添加额外的硬件就可以实现高精度,高性能的脉冲数据采样。具有很好的实现效果和较低的实现成本。权利要求1. ,其特征在于包括如下步骤 步骤1 首先初始化相应SPI接口的GPIO引脚; 步骤2 设置SPI总线的时钟,即脉冲数据的采样时钟; 步骤3 初始化DMA控制器,并设置采样数据的保存地址; 步骤4 当要开始采集时,就使能SPI接口,对MISO上输入的脉冲做采样; 步骤5 =SPI每采样到4个字节的数据就发起一个DMA请求,DMA控制器会把数据保存到指定的内存位置;步骤6 当采样结束之后,所有采样到的数据保存在步骤3指定的位置; 步骤7 根据步骤2设置的采样时钟,可以计算出SPI每采样一位数据所花费的时间; 步骤8 转义采样到的数据,按位来对数据解析;如果连续位的值为0,就说明这部分采样数据对应的是低脉冲,把连续为0的位数和步骤7的值相乘便可计算出低脉冲的时间宽度;如果连续位的值为1,就说明这部分采样数据对应的是高脉冲,把连续为1的位数和步骤7的值相乘可计算出高脉冲的时间宽度。全文摘要,把产生脉冲的GPIO直接连到CPU SPI接口的MISO引脚上,利用CPU现有的SPI接口来代替CPU进行脉冲数据的采样,采样到的数据由DMA来代替负责保存。当脉冲为低时,SPI采样到的数据就为0,当脉冲为高时,SPI采样到的数据就为1。所以只要求出连续为0或为1的位数,再根据采样精度就可以求出脉冲的时间宽度。本专利技术无需添加额外的硬件就可以实现高精度,高性能的脉冲数据采样。具有很好的实现效果和较低的实现成本。文档编号H03K19/0175GK102163967SQ20111000968公开日2011年8月24日 申请日期2011年1月17日 优先权日2011年1月17日专利技术者赵进云 申请人:福建鑫诺通讯技术有限公司本文档来自技高网...

【技术保护点】
1.一种对脉冲数据进行采样的方法,其特征在于:包括如下步骤:步骤1:首先初始化相应SPI接口的GPIO引脚;步骤2:设置SPI总线的时钟,即脉冲数据的采样时钟;步骤3:初始化DMA控制器,并设置采样数据的保存地址;步骤4:当要开始采集时,就使能SPI接口,对MISO上输入的脉冲做采样;步骤5:SPI每采样到4个字节的数据就发起一个DMA请求,DMA控制器会把数据保存到指定的内存位置;步骤6:当采样结束之后,所有采样到的数据保存在步骤3指定的位置;步骤7:根据步骤2设置的采样时钟,可以计算出SPI每采样一位数据所花费的时间;步骤8:转义采样到的数据,按位来对数据解析;如果连续位的值为0,就说明这部分采样数据对应的是低脉冲,把连续为0的位数和步骤7的值相乘便可计算出低脉冲的时间宽度;如果连续位的值为1,就说明这部分采样数据对应的是高脉冲,把连续为1的位数和步骤7的值相乘可计算出高脉冲的时间宽度。

【技术特征摘要】

【专利技术属性】
技术研发人员:赵进云
申请(专利权)人:福建鑫诺通讯技术有限公司
类型:发明
国别省市:35

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1