随着测试技术的不断发展进步,低功耗、高性能的DSP可取代通用单片机,用在数据采集处理系统中;以太网技术也正在数据采集、测试测量技术中发挥越来越大的作用。本文主要从软件、硬件出发,介绍一种基于DSP和以太网的数据采集处理系统的设计思路及实现。 1 基于以太网的数据采集处理系统 由于生产和科研领域对测试的要求越来越高,所需测试和处理的数据量也越来越大,可能需要多个测试仪器同时进行处理,也可能需要在各测试仪器之间进行数据交换;而且,有些时候不适合工作人员亲临现场,这时就需要进行网络控制。以太网技术在数据采集处理系统中的应用如图1所示。
和现在使用于工业现场比较多的现场总线比较,以太网最大的特点是开发性好、成本低。通过把复杂的TCP/IP协议封装而提供的各种网络测试技术,使得网络测试的开发变得不再复杂;同时,网络测试带来的巨大效益,使得网络测试在测试自动化领域能够得到广泛的应用。以太网作为分布式测试的一个网络方案,其潜力无疑是巨大的。 以太网接口和DSP微处理器的价格不断下降,使得以太网直接集成到基于DSP等嵌入式系统的测试、采集和工业I/O设备中成为一个越来越明显的趋势。基于以太网的I/O设备是将以太网接口直接嵌入到设备内部。所以一般来说,在网络进行数据采集时,可以有更小的设备体积,安装也更灵活。和一些现在使用于工业的通信方案比较,以太网方式通常需要更强大的微处理器和内存。而现在网络和计算机技术的发展,特别是DSP技术的应用,可以大大地降低这方面的成本。 2 数据采集处理系统的硬件设计 该系统以TI公司的TMS320C6000(以下简称C6000)系列DSP中的TMS320C6211和10/100M自适应以太网控制芯片MX98728EC为核心,主要包括ADC数据采集、DSP数据处理和以太网接口三个部分。图2为数据采集处理系统框图。
(1)C6000系列DSP C6000是1997年美国TI公司推出的新一代高性能DSP芯片。这种芯片是属于定点、浮点兼容的D S P系列。其中定点系列是TMS320C62XX,浮点系列是TMS320C67XX。C6000片内有8个并行的处理单元,分为相同的两组。芯片的最高时钟频率可以达到300MHz,当芯片内部8个处理单元同时运行时,其最大处理能力可以达到2400MIPS。本数据采集处理系统采用TMS320C6211。 (2)以太网MX98728EC MX98728EC是一个通用的单片10/100M快速以太网。通过它的主机总线接口,可以实现各种各样的应用,而不需要或者只需极少的外部控制逻辑。单片的解决方案可以减小电路板的尺寸和板上芯片的数量,以降低系统的成本。MX98728EC的特点如下: ◇ 32位通用异步总线MHz; ◇ 单片解决方案,集成了10/100M TP收发器; ◇ 可选的外部收发器MII接口; ◇ 完全兼容IEEE 802.3u协议; ◇ 支持16/8位打包缓冲数据宽度和32/16位主机总线数据宽度; ◇ 分离的TX和RX FIFO,支持全双工模式,独立的TX和RX通道; ◇ 丰富的片上寄存器,以支持各种各样的网络管理功能; ◇ 支持16/8位的用于打包缓冲器的SRAM接口,支持片上FIFO的突发DMA模式; ◇ 自动设置网络速度和协议的NWAY功能; ◇ 可选的EEPROM 配置,支持1Kb和4Kb的EEPROM 接口; ◇ 支持软件EEPROM 接口,方便升级EEPROM的内容。 (3) 系统结构 ①ADC数据采集部分。CPLDl由DSP提供时钟信号,主要作用是提供扫描表SRAM的地址。扫描表SRAM的数据由DSP写入。扫描表的数据输出对拟进行A/D转换的模拟通道进行选择和对仪表放大器进行增益选择。ADC采用14位的LTCl416。32路模拟信号通过多路复用器,选择其中1路信号,进入仪表放大器放大之后,进入ADC。ADC的转换时钟由DSP的定时器提供。 ②DSP数据处理部分。ADC转换后的14位数据通过FIPO进入DSP进行处理。FIFO采用4片CY7C425形成乒乓结构,以实现模拟信号的不间断采样。DSP扩展一片Flash存储器,作为DSP的程序存储器。另外,还扩展了一片SRAM,作为程序缓存,脱机运行时,DSP将Flash中的程序写入SRAM,再写入DSP内部RAM。CPLD2主要是用于控制FIFO的读写,并且提供以太网接口部分的控制信号。DSP系统中的数字信号处理算法重点实现滤波、采样率变换、非线性修正和温漂修正等。 ③以太网接口部分。以太网主控芯片MX98728EC通过RJ45接口连接以太网,扩展一片SRAM作为以太网数据收发数据存储器。EEPROM存储以太网卡的MAC地址、I/O基地址、中断线选择等配置寄存器初始化数据。CPLD3通过DSP高位地址线的译码,控制以太网芯片的片选和提供以太网接口部分的复位信号等。DSP和以太网的接口部分硬件设计如图3所示。
3 数据采集处理系统的软件设计 C6000系列DSP芯片的硬件资源为高性能提供了必要条件,应该充分利用这些硬件资源及开发工具,使代码达到所期望的性能。在DSP嵌入式系统的基础上,集成已经封装的TCP/IP协议栈,增加网络连接代码,这是软件编程时应该着重考虑的问题。因为DSP系统硬件及以太网协议的复杂性,本系统中的软件编程是一个关键的难点。 本系统的软件设计过程中,采用了TI基于C6000系列DSP的实时操作系统DSP/BIOS和DSP/BIOS提供的实时数据交换功能RTDX(Real-Time-Data-eXchange)。DSP/BIOS针对DSP的应用环境,通过一系列的对象模块,向开发者提供了一个实用优秀的实时操作系统。它可以帮助用户提高软件的模块化、并行性和维护性等,有利于降低系统成本和缩短开发周期。运行于该操作系统之上的应用程序,在开发时间、软件维护和升级等方面都有了极大的提高。实时数据交换RTDX是DSP/BIOS提供的一个全新功能。在很多应用中,要求DSP从主机中实时地读取数据或者向主机实时地输出数据,而不能够停下来。 因为本系统的软件结构较为复杂,涉及的算法较多,故应采用模块化、由顶向下、逐步细化的结构化程序设计方法。这一方法可节省软件工作量、提高工作效率。图4为简化的数据采集处理主程序流程图。
结 语 实践证明,根据以上方案设计的基于DSP和以太网的数据采集处理系统,可以很好地实现对模拟信号进行采集和处理的功能。在此基础上,也可以作为基于DSP嵌入式系统和以太网的网络测试平台开发过程中重要的调试工具,从而加速把以太网集成到测试、采集和工业I/O仪器中的开发进程。