摘要:针对多模式、高速、大数量采集及网络实时上传的要求,设计专用数据采集系统。硬件上以DM642作为主控CPU,软件上利用其内嵌的DSP/BIOS操作系统调度网络控制任务、数据采集任务、周期触发线程以及硬件中断,并利用网络开发工具包NDK实现TCP/IP协议,完成网络控制和通信。构建可靠的数据传输机制,保证底层高速采集的大数据量快速可靠的上传。最后,用VC开发上位机程序,实现数据处理、显示和故障诊断。实际应用表明该系统运行稳定,满足实时采集的要求。
关键词:DSP/BIOS;DM642;多线程;NDK;数据采集
随着嵌入式系统复杂性、实时性的不断提高,采用单任务顺序和循环结构的传统软件构架已经不能满足要求,基于操作系统的多线程设计得到越来越多的应用。课题中,为了实时监测某型号导弹的整个测试过程,记录偶尔出现的故障信息并判断问题原因,设计以数据采集系统为核心的在线监测设备。传统的数据采集系统软件结构实时性差、资源利用率低,很难满足高速、大数据量采集并需要实时上传的应用场合。而课题中的数据采集系统需要采集现场多个类型、多个通道的数据,采集数据需通过网络实时传输给上位机,因此,采用DSP/BIOS实时操作系统提供的多任务机制并结合TI提供的NDK网络开发工具包来设计研制数据采集系统。
1 DSP/BIOS及NDK简介
DSP/BIOS是TI公司为C28x,C5000和C6000系列DSP开发的可裁剪实时多任务操作系统,同时也是CCS提供的一套多任务开发、硬件抽象、实时分析和系统配置的专用工具。DSP/BIOS以其功能丰富的APIs综合管理系统内存,实现任务分配和调度,实时监测分析系统运行,并提供方便的数据通信接口和外设驱动开发工具。DSP/BIOS的运用大大降低了DSP软件开发难度,提高了调试效率,非常适合结构复杂、实时性强和运行效率高的应用开发。NDK是TI专门为网络应用开发提供的网络开发工具包,利用其TCP/IP协议栈开发网络应用具有成本低、开发周期短的特点。网络性能由套接字类型、套接字缓冲区、CPU速度和CPU缓冲等几方面决定。
2 数据采集系统总体设计
数据采集系统可工作在两种模式下:模式一,采集数据通过网络实时上传;模式二,采集数据先存入CF卡,监测结束后一并上传。硬件上采用DM642+FPGA的主控方案,在DSP中运行DSP/BIOS操作系统来综合管理外设资源,分配调度硬件中断HWI、周期性触发线程PRD、数据采集任务和网络控制传输任务,从而实现对A/D采集、串口通信、数据存储和网络收发的控制。根据功能划分,数据采集系统可以分为A/D采集单元、RS 422通信单元、CF卡存储单元和网络控制收发单元。硬件总体框图如图1所示。
2.1 A/D采集单元设计
A/D采集单元分为高速采集和低速采集2个通道。高速采集通道选用12位的AD7356,单片并行双通道,最高采样率5 MSa/s,串行输出,通过5片AD7356的组合可并行或循环采集10路差分输入信号。低速采集通道选用12位的AD7658,单片并行6通道,最高采样率250KSa/s,2片AD7658采用菊花链的级联方式可同时采集12路差分或单端输入信号。A/D控制信号和转换数据通过磁耦隔离芯片IL716实现后端隔离。
2.2 其他功能单元设计
RS 422串口通信单元采用MAX485实现,1路发送5路接收,发送通道用于产生设备自检信号。数据存储单元选用大容量、掉电不丢失的CF卡,并开发支持IDE模式下UDMA传输的主控IP核,由FPGA独立控制。网路控制收发单元采用DM642自带的以太网接口并结合TI提供的TCP/IP协议栈实现。
[page]
3 多线程机制设计
3.1 DSP/BIOS提供的多线程机制
DSP/BIOS支持的线程按优先级从高到低可以分为硬件中断HWI、软件中断SWI、任务TSK和后台线程IDL。HWI就是ISR,优先级最高,适合200 kHz触发的任务;SWI适合100 ms或者更大周期的触发任务;Task不同SWI之处在于它在执行过程中能被挂起直到必需资源有效,任务之间可以通过queue,semaphore,mailbox进行信息共享;其他线程不运行时才运行IDL;HWI和SWI不能挂起和等待。
3.2 功能划分及任务规划
为了优化CPU资源,实现各功能的协调运作,需要合理划分功能、规划任务。本设计中构建了2个硬件中断线程HWI、一个周期触发线程PRD以及网络配置任务线程和网络传输任务线程共5个线程。各线程运行调度状态如图2所示。
3.2.1 硬件中断线程
硬件中断线程主要用来处理响应时间要求严格的请求,同时它的优先级最高,能抢占当前运行的其他线程及时运行。方案中的RS 422通信共5个接收通道,波特率高达614.4 Kb/s,且每个通道的缓冲FIFO只设计了256 B,连续通信时半满触发的时间为2 ms左右。因此,采用HWI处理RS 422通信数据,5个通道共用一个DSP中断源。另外,设计要求被测28 V信号作为AD采集的开关,即28 V有效时启动采集,28 V无效就得中断当前采集任务。因此,通过比较电路将28 V转换为控制信号触发DSP中断。
3.2.2 网络任务线程
网络服务启动流程通常是先运行NETCTRL任务线程,完成协议栈的配置、初始化和事件调度,然后开辟新线程执行FTP服务或者HTTP服务。本设计中,网络配置任务线程即NETCTRL任务线程,是DSP/BIOS静态创建的主线程mainTSK,并动态创建网络传输任务线程。网络传输任务是最核心的任务线程,主要完成网络命令解析、通道查询和数据上传的功能,其流程图如图3所示。网络命令分为自检、监测和切断通信下监测3种。自检时不需要被测28 V信号作为AD采集开关,但需要设备本身提供模拟真实信号的以5 ms为周期发送的RS 422信号,采用PRD来实现。通信切断的功能的为了防止设备对原有测试环境的影响。
4 数据可靠性传输机制设计
实时采集上传的数据量大,为了保证数据传输的可靠性,要综合考虑网络带宽、AD采样率和缓冲数组等因素。底层数据分为AD采集数据和RS 422通信数据2类,AD采集又分成高速采集和低速采集2个通道。高速采集通道的平均数据量为4 MB/s,低速采集通道的平均数据量为50 KB/s,FPGA中为每个通道配置一个FIFO,DSP通过循环查询判断FIFO标志位,有效即从FIFO读取数据再通过网络上传。RS 422通信数据采用中断方式写到网络发送的缓冲数组中,为了避免由于中断抢占导致的数据冲突,设计2个缓冲数组通过乒乓操作交替写入和上传通信数据。
各环节时间估计如下:通过配置寄存器,DSP访问1次外部存储器需要40个100 MHz的时钟周期。DM642运行TI提供的TCP/IP协议栈,底层通过网络循环发送常数给上位机,经测试,网络平均带宽为80 Mb/s。因此,DSP从FIFO中读取4 KWord(双字节)数据并上传需要的时间至少为2.46 ms,这段时间里4.MB/s采样率下积累的数据量近10 KB。为了防止一个通道数据有效时由于CPU正处理另一个通道的数据而导致第一个通道FIFO溢出的情况,设计每个FIFO的深度为16 KWord,容量达1/4时产生满标志位。数据传输机制如图4所示。
5 结果分析
上位机软件采用VC 6.0结合SQL 2005数据库开发,实现网络控制、数据接收和存储、数据处理和故障诊断以及动态显示信号波形的功能。每一次监测的数据都自动保存到数据库中以便之后的进一步分析和处理。
采样数据波形显示界面如图5所示。
6 结语
本设计利用DSP/BIOS的多任务机制,实现网络控制、数据采集以及网络通信的有效配合,保证底层高速采集的大数据量快速可靠得上传给上位机。同时,以DM642的硬件资源为基础,通过调用NDK提供的APIs,实现了百兆以太网的传输。上位机软件利用数据库作为数据存储平台,可以方便得处理、显示、对比多次采集结果。实际应用表明,该系统稳定可靠、实时性强,在高速实时数据采集领域中有一定的应用价值。
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』