基于DSP的信号采集处理系统
时间:07-21
来源:作者:丁锋,董 晖
点击:
显然,该信号处理软软件中最关键的是McBSP的DMA中断响应函数和PCI中断响应函数,下面分别介绍这两个函数。
DMA中断响应函数的主要代码如下:
从代码中可以看出,DMA中断响应函数最核心的部分是按照给定条件初始化DMA控制器,然后启动DMA通道,开始接收数据。这里的给定条件主要是保证DMA的写入地址符合要求,特别是在循环写入的情况下不致发生地址冲突。DSP与主机缓冲区之间的数据交换也是通过中断响应方式进行的,与通过DMA方式从McBSP读数据不同,PCI接口工作在猝发方式,其中断响应函数在输出缓冲区全部写满后将缓冲区内的全部数据写到主机缓冲区,因此,输出缓冲区无需分片。采用这种方式可以减少PCI接口读写次数,提高数据传输效率。
4 基于多线程的主机处理技术
DSP数据采集处理系统的处理结果需要输出到主机,主机可以对处理结果进行进一步处理。主机程序最关键的部分是要将主机缓冲区的数据读出来,再写到硬盘上的文件中。DSP数据采集处理系统的驱动程序在计算机内存中开辟主机缓冲区,在一台主机上可以允许多个数据采集处理系统同时工作,这时需要同时开辟多个缓冲区。为保证多个数据采集处理系统同时工作,主机在处理时采用了多线程技术,整个主机处理软件利用C++Builder开发,在该开发环境下很容易实现多线程处理技术。
主机处理软件的核心代码如下:
从代码中可以看出,主机多线程处理技术的核心是一个线程执行函数(Execute()),该函数将缓冲区内的数据写到文件中,在多个数据采集处理系统同时工作时,该处理函数以轮循的方式将对应缓冲区的数据写入不同的文件句柄(g_hFiles[i][0]),也就是写入不同的文件,这样就不会在数据写入时发生冲突。
主机程序除了将数据写入指定文件外,还可以控制每一个数据采集处理系统的启动和停止,并具备在线加载并配置DSP程序的能力,用户可以通过修改DSP程序的参数来执行不同的处理任务。所有这些功能都是由该系统的硬件驱动程序提供,该硬件驱动程序已封装成一个库函数,调用起来较为方便。这样,用户就可根据自己的需要开发不同的主机应用程序。
5 结束语
基于TMS320C6205的数据采集处理系统已经在实际应用中获得了良好的效果,特别是该系统可以通过加载不同的DSP处理程序进行不同的数据处理,大大拓展了该系统的应用范围,充分体现了基于DSP的数据采集处理系统在应用上的灵活性。同时,由于多个采集处理系统可同时工作,整个处理系统可以适合不同应用场合的需要,可以胜任不同处理能力的需要。
DMA中断响应函数的主要代码如下:
从代码中可以看出,DMA中断响应函数最核心的部分是按照给定条件初始化DMA控制器,然后启动DMA通道,开始接收数据。这里的给定条件主要是保证DMA的写入地址符合要求,特别是在循环写入的情况下不致发生地址冲突。DSP与主机缓冲区之间的数据交换也是通过中断响应方式进行的,与通过DMA方式从McBSP读数据不同,PCI接口工作在猝发方式,其中断响应函数在输出缓冲区全部写满后将缓冲区内的全部数据写到主机缓冲区,因此,输出缓冲区无需分片。采用这种方式可以减少PCI接口读写次数,提高数据传输效率。
4 基于多线程的主机处理技术
DSP数据采集处理系统的处理结果需要输出到主机,主机可以对处理结果进行进一步处理。主机程序最关键的部分是要将主机缓冲区的数据读出来,再写到硬盘上的文件中。DSP数据采集处理系统的驱动程序在计算机内存中开辟主机缓冲区,在一台主机上可以允许多个数据采集处理系统同时工作,这时需要同时开辟多个缓冲区。为保证多个数据采集处理系统同时工作,主机在处理时采用了多线程技术,整个主机处理软件利用C++Builder开发,在该开发环境下很容易实现多线程处理技术。
主机处理软件的核心代码如下:
从代码中可以看出,主机多线程处理技术的核心是一个线程执行函数(Execute()),该函数将缓冲区内的数据写到文件中,在多个数据采集处理系统同时工作时,该处理函数以轮循的方式将对应缓冲区的数据写入不同的文件句柄(g_hFiles[i][0]),也就是写入不同的文件,这样就不会在数据写入时发生冲突。
主机程序除了将数据写入指定文件外,还可以控制每一个数据采集处理系统的启动和停止,并具备在线加载并配置DSP程序的能力,用户可以通过修改DSP程序的参数来执行不同的处理任务。所有这些功能都是由该系统的硬件驱动程序提供,该硬件驱动程序已封装成一个库函数,调用起来较为方便。这样,用户就可根据自己的需要开发不同的主机应用程序。
5 结束语
基于TMS320C6205的数据采集处理系统已经在实际应用中获得了良好的效果,特别是该系统可以通过加载不同的DSP处理程序进行不同的数据处理,大大拓展了该系统的应用范围,充分体现了基于DSP的数据采集处理系统在应用上的灵活性。同时,由于多个采集处理系统可同时工作,整个处理系统可以适合不同应用场合的需要,可以胜任不同处理能力的需要。
DSP TMS320C6205 FPGA 信号采集 处理器 相关文章:
- 在采用FPGA设计DSP系统中仿真的重要性 (06-21)
- 基于 DSP Builder的FIR滤波器的设计与实现(06-21)
- 达芬奇数字媒体片上系统的架构和Linux启动过程(06-02)
- FPGA的DSP性能揭秘(06-16)
- 用CPLD实现DSP与PLX9054之间的连接(07-23)
- DSP+FPGA结构在雷达模拟系统中的应用(01-02)