位置:51电子网 » 技术资料 » 嵌入式系统

基于USB和多线程的实时数据采集系统

发布时间:2008/5/27 0:00:00 访问次数:511

摘要:说明基于usb技术的实时数据采集系统的硬件、软件实现;重点介绍pdiusbd12带并行总线的usb接口器件以及基于多线程思想设计应用程序的方法。

关键词:usb pdiusbd12 多线程 实时数据采集

1 问题的提出

随着信息技术的飞速发展,各种数据的实时采集和处理在现代工业控制中已成为必不可少的。这就为我们的设计提出了两个方面的要求:一方面,要求接口简单灵活且有较高的数据传输率;另一方面,由于数据量通常都较大,要求主机能够对实时数据做出快速响应,并及时进行分析和处理。

传统的外设与主机的通信接口难以满足上述第一个方面的要求。这些接口一般采用pci部线或rs-232串行总线。pci总线虽然有很高的传输率(可达132mbps),还能“即插即用”,但是它们的扩充槽相当有限,且插拔并不方便。rs-232串行总线虽然连接方便,可是它的带宽非常有限,传输速度太慢,而且1条rs-232串口通信电缆只能连接1个物理设备。usb技术正是顺序这一要求提出的,它集pci和rs-232的优点于一身:具有较高的传输速率(usb协议1.1支持最高传输速度达12mbps,usb协议2.0支持最高传输速度可达148mbps),实现了真正意义上的“即插即用”(plug & play),同时usb上最多可以连接127个外设。因此,将usb技术应用于数据的实时采集是非常适合的。

实时系统对多任务的要求比较普遍。往往在后台采集数据、进行数据显示的同时,还要在前台界面对用户的操作做出响应。在实时系统中,对实时数据做出及时而准确的反应是十分重要的。由于受a/d采集速度等因素的限制,从硬件上采用usb接口技术的确可以提高速度,但毕竟潜力有限,因此在现有硬件设计基础上充分发挥软件的作用就能进一步提升速度。使用传统的单线程编程技术效率较低,无法及时处理,必须充分利用windows的多任务处理功能,采用多线程编程技术来处理数据。

在这个实时采集系统的设计上,我们将这两种技术结合起来:在硬件上采用usb技术;软件用vc++进行开发,采用多线程编程,使系统的效率从这两方面都得到提升。

2 系统体系结构

2.1 硬件结构

整个系统硬件结构如图1所示。

实时数据采集系统主要由多路选择开关、a/d转换、单片机系统、pdiusbd12、微机组成。多路选择开关对多路信号进行选择,使其分时输入;a/d转换实现模拟信号的数字化;单片机系统主要完成信号采集、数据通信;pdiusbd12实现usb接口;微机完成数据接收、存入数据库、数据处理、计算、显示等功能。

其中pdiusbd12是系统usb技术得以实现的关键。它是philips公司的一个带并行总线的usb接口器件,支持本地的dma传输。它完全符合usb1.1版的规范,同时集成了sie(串行接口引擎)、fifo存储器、收发器以及电压调整器。其主端点的双缓冲配置增加了数据吞吐量并轻松实现实时数据传输,功能框图如图2所示。

在这个系统中,单片机采用的是80c52。pdiusbd12与80c52的接口有2种方式:多路地址/数据总线方式、单地址/数据总线方式。我们采用的是前一种方式:使用了80c52的int0、ale、wr、rd和p0口,当pdiusbd12接收到主机的有效信息时,会产生一个中断通知80c52进行处理。在此种方式下,pdiusbd12在ale下降沿的时候,对单片机的输出地址进行锁存。若输出地址为奇数,则表示对pdiusbd12发送指令;若输出地址为偶数,则表示对pdiusbd12进行数据传输。接口电路如图3所示。

80c52将a/d采集的数据经pdiusbd12的并行接口送入fifo存储器。当usb的传输速率达到12mbps时,mmu(存储器管理单元)和集成ram作为usb之间速度差异的缓冲区,这就允许单片机以它自己的速率对usb信息包进行读写。若fifo中数据已满,sie会立即对数据做处理:同步模式的识别、并行/串行转换、位填充/解除填充、crc校验/产生、pid校验/产生、地址识别和握手评估/产生。sie实现了全部的usb协议层,完全由硬件实现而不需要固件的参与。数据经处理后由收发器通过数据线d+、d-传送到主机。对一个单片机而言,pdiusbd12看起来就像1个带8位数据总线和1个地址位的存储器件。

摘要:说明基于usb技术的实时数据采集系统的硬件、软件实现;重点介绍pdiusbd12带并行总线的usb接口器件以及基于多线程思想设计应用程序的方法。

关键词:usb pdiusbd12 多线程 实时数据采集

1 问题的提出

随着信息技术的飞速发展,各种数据的实时采集和处理在现代工业控制中已成为必不可少的。这就为我们的设计提出了两个方面的要求:一方面,要求接口简单灵活且有较高的数据传输率;另一方面,由于数据量通常都较大,要求主机能够对实时数据做出快速响应,并及时进行分析和处理。

传统的外设与主机的通信接口难以满足上述第一个方面的要求。这些接口一般采用pci部线或rs-232串行总线。pci总线虽然有很高的传输率(可达132mbps),还能“即插即用”,但是它们的扩充槽相当有限,且插拔并不方便。rs-232串行总线虽然连接方便,可是它的带宽非常有限,传输速度太慢,而且1条rs-232串口通信电缆只能连接1个物理设备。usb技术正是顺序这一要求提出的,它集pci和rs-232的优点于一身:具有较高的传输速率(usb协议1.1支持最高传输速度达12mbps,usb协议2.0支持最高传输速度可达148mbps),实现了真正意义上的“即插即用”(plug & play),同时usb上最多可以连接127个外设。因此,将usb技术应用于数据的实时采集是非常适合的。

实时系统对多任务的要求比较普遍。往往在后台采集数据、进行数据显示的同时,还要在前台界面对用户的操作做出响应。在实时系统中,对实时数据做出及时而准确的反应是十分重要的。由于受a/d采集速度等因素的限制,从硬件上采用usb接口技术的确可以提高速度,但毕竟潜力有限,因此在现有硬件设计基础上充分发挥软件的作用就能进一步提升速度。使用传统的单线程编程技术效率较低,无法及时处理,必须充分利用windows的多任务处理功能,采用多线程编程技术来处理数据。

在这个实时采集系统的设计上,我们将这两种技术结合起来:在硬件上采用usb技术;软件用vc++进行开发,采用多线程编程,使系统的效率从这两方面都得到提升。

2 系统体系结构

2.1 硬件结构

整个系统硬件结构如图1所示。

实时数据采集系统主要由多路选择开关、a/d转换、单片机系统、pdiusbd12、微机组成。多路选择开关对多路信号进行选择,使其分时输入;a/d转换实现模拟信号的数字化;单片机系统主要完成信号采集、数据通信;pdiusbd12实现usb接口;微机完成数据接收、存入数据库、数据处理、计算、显示等功能。

其中pdiusbd12是系统usb技术得以实现的关键。它是philips公司的一个带并行总线的usb接口器件,支持本地的dma传输。它完全符合usb1.1版的规范,同时集成了sie(串行接口引擎)、fifo存储器、收发器以及电压调整器。其主端点的双缓冲配置增加了数据吞吐量并轻松实现实时数据传输,功能框图如图2所示。

在这个系统中,单片机采用的是80c52。pdiusbd12与80c52的接口有2种方式:多路地址/数据总线方式、单地址/数据总线方式。我们采用的是前一种方式:使用了80c52的int0、ale、wr、rd和p0口,当pdiusbd12接收到主机的有效信息时,会产生一个中断通知80c52进行处理。在此种方式下,pdiusbd12在ale下降沿的时候,对单片机的输出地址进行锁存。若输出地址为奇数,则表示对pdiusbd12发送指令;若输出地址为偶数,则表示对pdiusbd12进行数据传输。接口电路如图3所示。

80c52将a/d采集的数据经pdiusbd12的并行接口送入fifo存储器。当usb的传输速率达到12mbps时,mmu(存储器管理单元)和集成ram作为usb之间速度差异的缓冲区,这就允许单片机以它自己的速率对usb信息包进行读写。若fifo中数据已满,sie会立即对数据做处理:同步模式的识别、并行/串行转换、位填充/解除填充、crc校验/产生、pid校验/产生、地址识别和握手评估/产生。sie实现了全部的usb协议层,完全由硬件实现而不需要固件的参与。数据经处理后由收发器通过数据线d+、d-传送到主机。对一个单片机而言,pdiusbd12看起来就像1个带8位数据总线和1个地址位的存储器件。

-->
相关IC型号
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!