实时采集处理范文

2024-08-18

实时采集处理范文(精选10篇)

实时采集处理 第1篇

随着计算机及通讯技术的发展, 在珠宝质量检测中, 传统的目测, 手写记录统计数据的方法因为数据的准确性难以保证, 使用不方便, 数据结果也不能及时呈现给用户等弊病已逐渐被淘汰。当今精密测量仪中大多数都带有RS232串行通讯接口, 可以通过计算机的COM接口与智能测量仪器通信, 实现对仪器的控制和数据采集。本文将METTLER TOLEDO B-S/A系列电子天平直接与计算机连接起来, 通过专业化的软硬件接口技术, 利用Active X控件——Microsoft Communication控件, 方便的实现了Window环境下PC机与电子天平串行通信功能, 实现分析数据的自动采集, 建立珠宝检测数据库。根据管理业务的需要, 实现了珠宝数据打印与检索, 包括成批打印分级、鉴定、定名证书, 打印分析报表, 查询检测日期、样品编号、批号、样品品种、客户等信息。有效的缩短样品检测时间, 确保检测结果的准确性、权威性, 从而提高检测效率和整体管理水平。

2 系统的硬件设计

采用PC机及METTLER TOLEDO B-S/A系列天平。

接口的物理结构:天平采用RS-232接口9芯插座, 单向传送控制信号。波特率为9600bps, PC的COM口与天平的RS232口的接线采用对等方式, 传输线采用屏蔽电缆, 传输距离可达250英尺。

使用Windows平台下的ActiveX通讯控件——MSComm控件初始化天平设置并获取天平测量数据。

MSComm是一个COM组件, 它提供具体的方法和属性, 以实现天平的初始化及实现数据通讯, 当串口接收到信息时MSComm控件提供两种处理方法, 一种为查询方式, 一种为事件响应方式, 利用SetCommEvent () 函数设置串口响应事件。当响应事件发生时, 系统会激活OnComm () 事件。在On Comm () 事件中添加用户处理代码, 则可实现类似中断的串口事件处理。Iput Mode使程序方便地选择从缓冲区读取数据格式。

计算机COM口的初始化要和天平的设置完全一致。

3 数据库及开发平台

Windows平台下可选的数据库种类很多, 在实际开发的过程中, 根据使用单位的业务规模和安全因素, 选择了MS SQL 2000作为后台数据库。而.NET平台以其使用方便的人机界面, 强大的开发工具支持而成为开发平台的首选。

SQL Server.NET数据提供程序使用它自己的协议来与SQL Server进行通讯。由于它经过了优化, 可以直接访问SQL Server而不用添加OLE DB或开放式数据库连接 (ODBC) 层, 因此它是轻量的, 并具有良好的性能。

.NET平台对数据库的连接方式也有很多, 根据所使用的数据库类型, 或应用程序的使用策略不同而不同, 本系统考虑到数据的实时性, 安全性要求, 采用ADO.NET对MS SQL 2000数据库进行连接及操作, 安全性通过Window账户验证。

4 系统实现

4.1 应用程序模型

珠宝鉴定根据品名不同分为宝玉石, 钻石, 吊牌等三类, 每一类都有数量和性质不同的参数字段, 除了重量统一需要通过电子秤的串口向计算机传输外, 还有一些其他参数如折射率, 净度等在现有的设备条件下需要另行检测后手工输入, 所有数据的采集由应用程序统一处理, 之后由数据显示控件展示给用户, 并选择恰当的时间和方式对数据库进行更新。应用程序模型如左图所示。

4.2 数据采集

.NET数据提供程序用于连接到数据库、执行命令和检索结果。下表概括了组成.NET数据提供程序的四个核心对象。

ADO.NET假定一个用于数据访问的模型:打开一个数据库的连接, 获取数据或执行操作, 然后关闭该连接。ADO.NET为使用此模型提供两个基本的策略。一个模型是在数据集中存储数据, 这是断开与数据源的连接时可以使用的记录的内存中缓存。若要使用一个数据集, 必须先创建该数据集的实例, 然后使用数据适配器从数据源填充它。然后可以使用数据集中的数据。数据集在断开缓存中存储数据。数据集的结构类似于关系数据库的结构;它公开表、行和列的分层对象模型。另外, 它包含为数据集定义的约束和关系。本系统的大多数数据纪录的添加都使用这种模型, 如将宝石的一个记录值写入数据集宝石数据表的一行中, 而钻石和吊牌各自写入另外的表, 这些表共同构成珠宝记录数据集, 在进行入添加、修改、删除时都可以对这些表进行操作。

另一个策略是直接对数据库执行操作。在此模型中, 可使用包含SQL语句或对存储过程的引用的数据命令对象。然后可以打开一个连接, 执行命令以执行操作, 接着关闭连接。如果该命令返回结果集 (即该命令执行Select语句) , 则可以使用数据读取器获取数据, 数据读取器的功能类似于高效的只读游标。数据阅读器然后作为数据绑定的来源。某些珠宝类型的参数字段有相同之处, 如两件同属蓝宝石的待鉴定品在折射率, 吸收光谱, 光性特征等方面相同, 因此, 在添加此类鉴定物品时, 可用其他表关联这些字段, 以减少冗余, 这些相关表的修改更新可采用直接数据库操作的方式。

4.2 数据建库与显示

鉴定系统的用户界面由相应控件处理, 而数据更新由Windows窗体数据绑定结构和ADO.NET数据提供程序来处理。

针对不同的鉴定类型, 采用不同的数据收集用户界面, 除了重量参数通过串口从天平采集外, 某些参数如钻石的净度只有固定的几个级别, 采用可选的下拉框形式, 以方便用户添加记录。

另外, 本系统使用DataGrid控件在一系列行和列中显示数据。首先, 实例化数据集对象, 然后把珠宝记录数据集的单个表绑定到相应的DataGrid, 就可以把纪录数据显示在简单的行和列中, 就像在电子表格中一样。如果绑定数据集内的数据通过任何机制被更新, 数据绑定结构负责将更改从数据集发送到数据绑定控件, 该数据集内的数据可以通过DataGrid控件反映所做更改, 而不必用自己的代码显式更新。所以大多数数据特定的操作都是通过数据源而不是DataGrid来执行。

数据访问控件的绑定方式有两种, 在本系统中根据不同的情况都有使用:

1) 在设计器中将DataGrid控件数据绑定到单个表, 将该控件的DataSource属性设置为包含要绑定到的数据集的对象。将DataMember属性设置为要绑定到的表的名称。通常可以调用数据适配器的Fill方法从数据库中直接填充数据集。

2) 运行时将数据绑定到DataGrid控件, 需要编写代码来填充数据集, 调用DataGrid控件的SetDataBinding方法, 向其传递数据源和一个数据成员。如:

DataGrid1.SetDataBinding (DsDiamond, "Diamond")

通过珠宝参数数据集更新数据源是一个包含两个步骤的过程。

第一步是使用新记录更新数据集。这是将新纪录填充到内存中的过程。必须新建一个数据行并将其添加到数据表的DataRow集合中。调用数据表的NewRow方法来新建一个空记录, 该新记录将从数据表的DataColumnCollection继承其列结构, 例如:

Dim GemRow as DataRow=GemTable.NewRow,

对此纪录中的每一列从数据收集用户界面中获得并填充, 然后更新该新行, 就像它是现有记录一样。

当数据集填充了数据之后, 在将其发送回数据库之前, 通常会执行某种类型的数据操作。由于数据集中的每个记录都由一个DataRow对象来表示, 所以对从数据源填充的数据集中的记录更改通过更新和删除个别行来完成。另外, 通过将新的DataRow对象添加到DataTable对象的Rows集合中, 可以将新记录插入数据集。DataRow类包含RowState属性, 该属性的值指示自数据表首次从数据库加载后, 行是否已更改以及是如何更改的。RowState属性的可能值包括Deleted、Modified、New和Unchanged.

第二步则是将更改从数据集发送到数据库。

更新数据集的过程不会同时将更改直接写入基础数据源, 所以必须显式执行第二步。为了完成这一步骤, 我们调用曾用来填充数据集的同一个数据适配器的Update方法, 传递数据集的名称, 该数据集包含要写入数据库的值。数据适配器将根据数据集中行的RowState来执行适当的命令 (INSERT、UPDATE或DELETE) 。这些命令都通过Update方法将更改解析回数据源, 这样, 在我们将数据集发送到数据库的时候, 就无需将整个数据集回写到数据库中, 有效地提高了数据更新的效率。

当调用Update方法时, DataAdapter将分析已作出的更改并执行相应的命令 (INSERT、UPDATE或DELETE) 。当DataAdapter遇到对Data Row的更改时, 它将使用InsertCommand、UpdateCommand或DeleteCommand来处理该更改。如果DataTable映射到单个数据库表或从单个数据库表生成, 则可以利用CommandBuilder对象自动生成DataAdapter的DeleteCommand、InsertCommand和UpdateCommand。但本系统的数据表都由很多关联表构成, 因此, 在调用Update之前, 必须显式设置这些命令。

4.3 数据安全与更新

考虑到珠宝鉴定的数量比较大, 本系统应能同时在多台微机上在数据库的支持下工作, 这时, 怎样保证对数据库操作的安全与正确性, 就需要遵循一定的并发原则。本系统对同一数据库进行添加, 删除, 修改等操作时, 针对具体的使用情况, 采用了开放式并发控制, 这种并发方式, 只有当实际更新数据时, 数据库中待修改行才对其他用户不可用。更新将在数据库中检查该行并确定是否进行了任何更改。如果当某用户接收到来自数据库的值后, 另一用户在该用户试图修改该值之前即将其修改, 则认为发生了冲突。在开放式并发中, 只有在访问数据库时才设置并保持锁。这些锁将防止其他用户在同一时间更新记录。除了进行更新这一确切的时刻之外, 数据始终可用。我们通过版本方法 (实际版本号) 保证了这一点。

在版本号方法中, 要更新的记录必须具有一个包含版本号的列。当读取该记录时, 版本号将保存在客户端。然后, 将对该值进行部分更新。仅当WHERE子句中的值与记录上的值匹配时才进行更新。该方法的SQL表示形式为:

UPDATE Table1 SET Column1=@newvalue1, Column2=@newvalue2

WHERE RowVersion=@origRowVersionValue

如果版本号匹配, 则表明数据存储区中的记录未被更改, 并且可以安全地使用数据集中的新值对该记录进行更新。如果不匹配, 则将返回错误。通过编写代码, 实现了这种形式的并发检查和响应任何更新冲突。为了确保版本号的准确性, 在数据库表上设置触发器, 以便在发生对行的更改时, 对版本号进行更新。

5 结束语

利用VB.net下的ActiveX控件实现了在Windows2000/xp环境下微机与METTER TOLEDO B-S/A系列天平的通讯, 实现了天平数据自动采集、建库、汇总、打印与上报, 为测试的快速和准确性控制起到了积极作用, 实现了珠宝测量、鉴定、记录、打标及入库管理一体化, 提高了检测效率和整体管理水平。

参考文献

[1]范逸文等, Visual Basic与RS-232串行通信控制[M].北京:清华大学出版社, 2002.

[2]王仲文等, 精通串行通信[M].北京:电子工业出版社, 1995.

[3]METTER TOLEDO Reference manual about MT-SICS[梅特勒-托利多MT-SICS参考手册].

实时采集处理 第2篇

根据《XX市人民政府办公室关于印发的通知》精神,为推动我县加油站油品销售情况监测逐步实现数据信息实时采集,构建“销、控、进”监管体系,防止成品油经营企业购进和销售非法油品、偷逃税款等违法行为,确保在全县所有民营、联营、私营以及其他国有(除中石化、中石油外)加油站加油机安装数据信息实时采集系统,现结合我县实际,特制定本方案。

一、成立领导小组

为加强组织领导,决定成立县加油站数据信息实时采集系统建设工作领导小组,负责统筹协调并指导加油站数据信息实时采集系统建设工作,协调解决系统建设过程中遇到的问题。

组长:XX县委常委、统战部部长、副县长

副组长:XX县政府办公室副主任、大数据发展和政务局局长

XX县工业信息化和商务局局长

XXXX税务局局长

成员:XX县委网信办副主任

XX县公安局副局长

XX县财政局副局长

XX县工业信息化和商务局党组成员

XX县应急局副局长

XX县市场监管局副局长

XXXX海事处副处长

XXXX税务局副局长

领导小组下设办公室,办公室设在县工业信息化和商务局,办公室主任由XX同志兼任,办公室承担领导小组日常工作,协助县政府办公室统筹推进加油站数据信息实时采集系统的建设,办理县人民政府交办的其他事项。

二、目标任务

2021年10月30日前,在全县所有民营、联营、私营以及其他国有(除中石化、中石油外)加油站加油机安装数据信息采集设备,建设加油站数据信息实时采集系统。

三、重点工作

(一)做好宣传解释。

大力宣传建设加油站数据信息实时采集系统对加强全县成品油市场监管、规范成品油经营行为,打造公平有序、诚信纳税的经营环境的重要意义,宣传解释建设加油站数据信息实时采集系统不增加经营者负担,消除广大成品油经营者顾虑。

(二)摸清底数情况。

对本辖区成品油市场情况进行认真分析掌握,尽快组织人员对辖区范围内所有民营加油站数量、加油机品牌、加油机服务厂商联系方式、加油计量器具使用情况、经营状况等方面内容进行摸底排查,并建立明细台账,做到“底数清、情况明”,确保所有民营加油站按时完成数据信息实时采集系统建设。

(三)做好安装调试。

各相关部门共同配合,确保在10月30日前完成加油站数据信息实时采集系统建设,并同步做好设备运行和系统调试工作,实现加油站数据信息实时采集系统全覆盖和正常运行。

(四)强化日常管理。

各相关部门按照职责分工,强化日常管理,充分利用加油站数据信息实时采集系统实现加油站销售数据实时采集、实时上传、实时监控、实时预警功能,运用数据分析结果,进一步加强全县成品油市场监管和税收征管;及时排查异常装置设备,解决系统后续使用及管理问题,不断优化系统功能;抓好加油机管理、税控设备维护等相关工作。

四、职责分工

(一)县工业信息化和商务局。

做好本辖区系统设备推广应用有关工作,收集整理系统推广过程中出现的问题,加强和运营单位反馈协调,不断完善优化;加强本辖区成品油市场监督管理,分析评估全县成品油市场状况,结合全县加油站经营现状,指导系统设备安装工作。

(二)XX税务局。

做好数据采集、运用和保密工作,做好纳税服务和宣传辅导;配合做好系统设备的安装建设和推广应用等工作,并运用数据分析强化本辖区成品油税收征管工作;查处税收违法行为。

(三)县市场监管局。

配合做好加油站数据信息实时采集系统建设工作,依法加强加油站成品油质量和加油机的计量监管,强化加油机生产企业、建设施工单位、“云端”产品生产企业、成品油销售企业的主体责任,明确各方在加油站数据信息实时采集系统后续运行中持续改进的义务,以确保加油机计量性能准确可靠,依法查处计量作弊等违法行为。

(四)县公安局。

配合抓好系统推广运用和安装工作,依法打击破坏系统设备、抗拒行政执法、暴力抗税等违法行为。

(五)县应急局。

配合抓好系统推广运用中的应急管理、安全性评估等工作。

(六)县委网信办。

负责网络舆情监控,确保数据信息实时采集系统安装工作有序推进。

(七)XX海事处。

配合做好水上加油站(趸)加油数据信息实时采集系统建设的推广宣传,配合相关部门依法打击破坏设备、抗拒行政执法、暴力抗税等违法行为。

(八)县财政局。

负责统筹保障加油站数据信息实时采集系统建设工作经费。

(九)中国移动通信集团XX有限公司XX分公司等运营单位。

及时采购相关设备,提供技术力量支持,确保加油站数据信息实时采集系统按时间要求运行,及时排查、发现、反馈系统异常情况,解决加油站数据信息实时采集系统后续使用、管理问题,确保加油站数据信息实时采集系统正常运转。

五、经费保障

(一)争取2021年自治区服务业发展专项资金支持。

根据《自治区商务厅关于做好2021年自治区服务业发展专项资金(第三批)项目申报工作的通知》(X商建发〔2021〕X号)精神,争取自治区财政补助资金。

(二)县财政局统筹安排。

建设资金不足部分由县财政统筹安排,具体运营单位由中国移动通信集团XX有限公司XX分公司自行决定,项目实施过程中一律不得要求纳税人承担任何费用。

六、运营单位的确定

拟以单一来源采购的方式进行政府采购,确定中国移动通信集团XX有限公司XX分公司为运营商,具体政府采购手续由县工业信息化和商务局按有关规定办理。

七、工作要求

(一)加强组织领导。

各相关部门要加强组织领导,成立工作领导机构,明确目标任务和职责分工,落实专人负责该项工作,确保工作有序推进。

(二)加强信息报送。

县领导小组办公室要加强信息报送,每周星期四前向县领导小组报送一次推进信息。报送邮箱:XX@163.com,联系电话:XX。

电能量数据实时采集的研究与实践 第3篇

【关键词】电能量;数据实时采集;研究;实践

有多种方法能够实现电能量数据的实时采集,比如专用通道的解决方法,这种方法实时性特别强,能够应用在对电能量数据采集要求特别高的场所,但是其成本过高;除此之外,还可以选择共用远动通道的方法,这种方法能够节约投资以及运行成本,完全可以尝试着使用。

1.电能量数据实时采集的必要性

目前我国的电能量数据已经实现了实时采集,这是一场中国电力事业的变革,这场变革之后,我国电力部门的工作人员工作量大大减轻,但是其工作质量却大幅度提高,因此电能量的数据采集对电力企业来说,意义重大,电能量数据能够实现实时采集的却非常必要。但是除此之外,其必要性还体现在如下几方面:

首先,有利于缩短电费结算的时间,传统的电能量数据的结算需要人工抄表,存在误差暂且不说,其需要耗费大量的人力物力,其电费结算周期非常长,但是如果电能量实现数据实时采集之后,可以随时抄表记录,随时结算,十分方便,工作人员只要做好相应的操作工作即可;其次,有利于对电网进行集中控制,促进电网资源得到合理的优化配置,以使其供需得到平衡,这对用电用户以及电力产业来说都十分重要;最后,能够为用户提供更加优质的用电服务,电能量数据实现实时采集之后,用户可以上网查询自己的用电信息,也可以上网缴费十分方便。

2.电能量数据采集通道的解决方案

2.1专用通道

这种解决方案主要是专用通道和供电企业中厂站端中的采集装置进行衔接,进而完成电能量的数据采集工作。该种解决方案最大优势就是实时性强,而且因其实时性高,因此能够在要求非常高的场合来使用。我国某大型电厂,使用的就这种专用通道方法,不仅解决了传统的电能量采集的麻烦,结算的也不是十分复杂,该种方法可以将统计、记录以及相关的结算进行有机结合。但是专用通道方案虽然应用效果非常好,但是需要花费大量的成本,而且对维护的要求非常高,再加之,还需要设计很多种专用的数据采集端口,如果系统需要多个通道,还需要安装前置机。因此在选择专门通道的方案之前,应该做好相关的准备工作。

2.2共用远动通道

在调度中心,各个系统中存在着多个计量关口,这种关口几乎都具备远动通道的功能,完全可以实现共用,这样不仅节省大量的投资,同时运行费用也能够得到有效的控制。该种解决方案的优势主要体现在以下两方面:

一是远动装置具备含电能量的作用,现代世界各国几乎都使用了微机远动装置,其能够遥测电能量,主要是以脉冲的形式进入到该装置中,这样无论是电能量数据,还是其他形式的数据都能够及时的传送到主站中。从技术角度来讲,远动装置还应该具备采集电能量的功能,可以实现电能量的实时传送,但是需要做好的是管理工作。因为电能量是长时间累积的一个过程,因此设备在运行过程中,不能随意停止。但是远动装置的应用,必须要对其进行检查或者扩容,因此不可避免的会中断工作,为了保证数据一致,在检查结束之后,人工应该设置相关数据,能够保证电能表两者之间读书相同,不会出现误差。

二是专用电能量采集装置与远动装置共用通道为满足生产管理和电网调度的需求,可以采用远动设备实时采集传送电能量数据,但是采用独立的电能量数据采集装置,与远动装置相互独立,这样便于管理,也更能满足各方用户独立监管的要求。该装置除了可提供通信接口连接专用通道和拨号通道外,还可以提供通信接口与远动装置通信口并接,共用远动通道向主站传送数据,以满足调度中心的实时要求。

3.主站前置机的通道接入方案

某省电网调度自动化系统采用电力自动化研究院研制的SD—6000系统。为了取得高的运行率和可靠性,前置部分采用冗余结构。电能量采集备有电话拨号方式作为备用通道。接入前置机的通道有2种:点对点的远动实时通道和电话拨号通道。电能量数据采集以前者为主,后者为辅。前置机利用远动通道与远动装置通信,采集远动数据和对厂站进行控制的同时,按设定的周期插入电能量采集的有关命令:

3.1查询电能量采集装置内部状态

该命令可获得电能量采集装置的内部配置情况和运行状态。如容量配置、交直流供电电源状态、故障信息、事件记录、实时时钟以及软件版本等。

3.2时间同步

采集装置可以利用站端GPS同步,也可以由主站同步。采用后者时,主站以设定的同步周期,对采集装置进行周期性同步;同时,采集装置在返回的数据帧中,除带有数据抄录日期、时间外,还在帧末附上当前实时时间。

3.3索取电能量数据

索取电能量数据有多种命令供选择:“读冻结电量”、“读当前电量”、“读某电量某段时间历史数据”、“读若干电量某时刻数据”或“总查询”命令等。前置机通常可以用“读若干电量某时刻数据”或“总查询”命令向采集装置索取数据。前者读取一帧特定日期、时间的若干电能表读数;后者读取从某一时刻开始相隔规定时间(步长)的若干帧数据。当实时通道中断,用拨号通道采集数据时,常用“总查询”命令可以获得较快的速度。前置机对“最近成功采集电量时间”每分钟进行一次检查,与当前时间相比较,若差值达到或超过规定步长,则在远动信息序列中插入电能量查询命令。

3.4补采电能量数据

前置机对“最近成功采集电量时间”每分钟进行一次检查,与当前时间相比较,若差值超过规定的若干倍步长(因远动通道故障引起),除了实时通道恢复后予以补采电能量外,同时启动电话通道用“总查询”命令补采电能量,直到到达当前该采集的时间點为止。

4.结语

综上所述,可知对电能量数据实时采集进行研究非常必要,因为这是电力事业发展的必要选择,尽管电能量的数据采集完全的实现实时性还有一定的困难,但是随着电力技术的发展,科学研究的深入,定会在全国范围内使用,待到完全实现实时性数据采集时,电力企业能够为客户提供更多更优质的服务,用电安全也能够得到有效的保证,这对提高我国电力事业在世界市场上的竞争力有着重大的意义。 [科]

【参考文献】

[1]宋浩彬,李彦波.误差率与更正率在补退电能量中的应用[J].农村电工,2005(07).

[2]玉光,刘海民.“预购电能量”收费理念上的改革[J].农村电工,2005(02).

[3]李双言,王宪春,李育发.浑江发电公司电能量考核管理系统[J].吉林电力,2006(05).

水声信号实时数据采集与处理系统 第4篇

1 系统硬件设计

作为通用的信号处理平台,该系统具有24路数据采集功能,最高采样率3MHz,采样精度14位,模拟信号中心频率200KHz;8路低速D/A,用于时间增益控制;2路高速D/A,用于复杂发射信号的产生;一个RS232接口,连接温度传感器;一个RS422接口,连接压力传感器;I2C接口,连接姿态仪;56路可编程通用数字IO口,用于程控增益控制和简单发射信号的产生;一个千兆以太网接口,用于DSP和PC机的高速实时数据传输;256M的DDR 2内存;32M的FLASH;1M的EEPROM;256K×18的FIFO;DSP以及FPGA的JTAG接口,用于系统的实时调试。系统硬件使用Cadence设计,10层PCB板,目前系统运行稳定,工作状态良好。系统的结构框图如图1所示。

1.1 DSP处理器

TMS320C 6455是TI公司推出的一款面向高端用户的高性能、定点数字信号处理器。最高工作频率为1.2 GHz,具有八个运算单元,每秒钟能够进行96亿次乘加运算,并且配有TCP和VCP两个协处理器,具有2M的内部缓存,配合256M的DDR 2内存,能够满足系统的实时性要求。

TMS320C 6455具有强大的IO能力,它是一款支持千兆以太网的DSP处理器,能够保证采集数据的实时传输,极大的提高了系统的性能。它还具有用于片级互联的RapidIO接口、PCI接口、DDR 2接口、64位的EMIF接口、I2C接口、McBSP接口、U-TOPIA接口、JTAG仿真器接口等。

1.2 现场可编程逻辑阵列(FPGA)

FPGA采用Xinlix公司VirtexII系列的XC 2V 1000,该器件的密度为100万门。XC 2V 1000工作在420MHz,IO口的最大读写速度为840Mb/s。内部含有720K的双口RAM,160K的可分配RAM,40个乘法模块,最大可用IO口328个。

FPGA主要完成系统的逻辑功能和扩展接口功能。由于采集通道数较多,采集数据为串行数据,所以A/D之后的数据先送入FPGA进行串并转换和简单的处理。高速D/A的数据线较多,所以先把数据送入FPGA后再写入D/A转换模块,同时通过FPGA扩展了程控增益控制线和差分信号线。FPGA和DSP的数据采用DMA方式传输,能够提高系统的性能,满足了实时性的要求。

1.3 信号模数转换模块

声纳系统大部分工作在500KHz以内,根据奈奎斯特采样定理,要想恢复出原始信号,采样频率要高于最高频率的两倍,因此A/D转换芯片的采样率要高于1M。由于数据采集通道较多,为了节省板卡空间,应该采取管脚数较少,通道数较多的A/D转换芯片。LTC 1407A就满足上述条件,LTC 1407A单通道采用率为3M,双通道同时采样率为1.5M,输入差分模拟信号,输出串行数字信号,采样精度为14位。

1.4 千兆以太网接口

基于TMS320C 6455片内EMAC/MDIO模块、片外AgereET1011C PHY芯片及其外围电路的接口设计,可以快速地实现OSI模型中数据链路层和物理层的功能。AgereET1011CPHY芯片是千兆以太网物理层自适应收发器,支持IEEE 802.3标准,提供RGMII,GMII,MII,RTBI和TBI接口,能够与TMS320C 6455中的EMAC/MDIO模块无缝连接。支持10/100/1000Mb/s全双工数据传输。接口电路如图2所示。

2 系统软件实现

DSP数据采集系统的软件调试与开发均采用针对TMS320C 6455的CCS3.2版本。TI公司为用户提供的软件开发工具CCS(CodeComposerStudio),提供了可视化窗口,将所有代码生成工具集成在一起,用户的一切开发过程都是在CCS中进行,包括项目建立、源程序的编辑、程序的编译和调试,另外CCS还提供了实时操作系统DSP/BIOS,极大的方便了用户调试和开发。

2.1 TCP/IP协议栈的实现

NetworkDeveloper'sKit是TI公司开发的专门针对DSP系统的网络开发套件,最新版的1.92和1.91支持TMS320C 6455芯片,使用该套件编程与在Windows下使用套接字编程一样方便,针对不同的平台,用户只要在编译的时候选择自己的平台即可以生成驱动程序。在进行数据发送和接收的时候只需要调用NDK提供的内部函数就可以了。系统使用NDK协议栈,编写了针对TMS320C 6455的驱动程序,完成了TCP传输,并且进行了各种网络性能的测试,运行良好。

2.2 DSP应用程序

软件实现的是客户端程序,采用流式套接字。软件设计过程中采用C语言和DSP/BIOS实时多任务操作系统,实现对24路高速模拟信号进行采集、处理和传输,流程图如图3所示。软件存储在Flash中,上电启动后进行初始化,启动网络监听程序,等待服务器端的指令,根据服务器的指令进行数据采集,滤波和波束形成,通过网络传送到计算机中进行显示和控制。

2.3 上位机应用程序实现

系统采集的数据经过处理后传送到上位机中进行显示和控制,同时上位机要传送各种命令和参数给DSP,因此上位机的程序应该包括显示控制模块、网络通信模块以及简单的数据处理模块。PC端的程序采用VisualC++和MFC设计,使用Windows套接字进行网络传输。

程序具体设计中,根据设计功能需求,在主线程的基础上创建了2个线程来实现数据接收和数据显示处理功能。程序流程图如图4所示。

3 结束语

硬件设计中,使用了最新的功能强大的DSP处理器TMS320C 6455,是国内最早将该芯片成功应用于实际项目的单位之一,同时成功的实现了基于DSP的千兆以太网传输,解决了远距离大量数据的实时传输。软件设计方面,采用C语言和标准的库函数,具有良好的兼容性和扩展性,能够方便的把代码移植到其它DSP平台。

水声信号实时数据采集与处理系统功能强大,通用性强,具有很好的扩展性,能够满足未来几年各种声纳系统的需求,具有广泛的应用前景。水声信号实时数据采集与处理系统目前成功应用于便携式蛙人探测声纳中。

参考文献

[1]Magdalena Lovescu,Mike Denio.Software Operation of Gigabit Ethernet Media Access Controller on TMS320C645X DSP,SPRAA90.TI Inc.October2006.

[2]TMS320C645X DS PEthernet Media Access Controller(EMAC)/Management Data Input/Output(MDIO)User’s Guide,SP-RU975B[R].TI Inc.August2006.

[3]TMS320C6000Network Develop’s Kit(NDK)Software User’s Guide,SPRU523C.TI Inc.January2007.

[4]TMS320C6000DSP/BIOS5.31Application Programming Interface(API)Reference Guide,SPRU430N.TI Inc.September2006.

[5]冯琛华,别红霞.基于DM642的以太网通信接口设计.信号处理,2007,23(5):783~785

[6]杨建,张慧慧.基于DSP的嵌入式网络化数据采集分析系统.北京工业大学学报,2006,32(8):710~713

实时采集处理 第5篇

摘要:介绍了基于USB总线的实时数据采集系统的USB设备固件程序、驱动程序、应用程序的设计与具体实现。

关键词:通用串行总线 实时数据采集 设备固件 驱动程序

在现代工业生产和科学技术研究的各行业中,通常需要对各种数据进行采集。目前通用的通过数据采集板卡采集的方法存在着以下缺点:安装麻烦,易受机箱内环境的干扰而导致采集数据的失真?熏易受计算机插槽数量和地址、中断资源的`限制,可扩展性差。而通用串行总线USB(Universal Serial Bus)的出现,很好地解决了上述问题,很容易实现便捷、低成本、易扩展、高可靠性的数据采集,代表了现代数据采集系统的发展趋势。

1 系统硬件设计与实现

1.1 硬件总体结构

基于USB总线的实时数据采集系统硬件组成包括模拟开关、A/D转换器、单片机、USB接口芯片,其硬件总体结构如图1所示。多路模拟信号经过模拟开关传到A/D转换器转换为数字信号?熏单片机控制采集,USB接口芯片存储采集到的数据并将其上传至PC,同时也接收PC机USB控制器的控制信息。

1.2 PDIUSBD12芯片

USB接口芯片采用Philips公司的一种专用芯片PDIUSBD12(以下简称D12)。该芯片完全符合USB1.1规范,集成了SIE、320B的多配置FIFO存储器、收发器、电压调整器、SoftConnect、GoodLink、可编程时钟输出、低频晶振和终端电阻等,支持双电压工作、完全自动DMA 操作、多中断模式,内部结构如图2所示。

单片机通过8位并行接口传送经过A/D转换的采集数据,存储在FIFO存储器中。一旦存满,串行接口引擎SIE立刻对数据进行处理,包括同步模式识别、并/串转换、位填充/不填充、CRC校验、PID确认、地址识别以及握手鉴定,处理完毕后数据由模拟收/发器通过D+、D-发送至PC。上述过程遵循USB1.1协议。D12与89C51的具体实现电路如图3所示。

2 系统软件设计与实现

系统软件包括USB设备固件编程、驱动程序和应用程序。其中设备固件是整个系统的核心,它控制芯片D12采集数据、接收并处理USB驱动程序的请求和应用程序的控制指令。

2.1 USB设备固件程序设计与实现

设备固件是设备运行的核心,用C语言设计。其主要功能是控制A/D模块的数据采集;接收并处理驱动程序的请求,如请求描述符、请求或设置设备状态、请求设备设置、请求或设置设备接口等USB1.1标准请求;控制芯片D12接收应用程序的控制指令等。其程序主框图如图4所示。单片机检测到D12后进入主循环。此时PC机先发令牌包给D12,D12接收到令牌包后给单片机发中断,单片机据中断类型设定标志位Status;最后执行相应标志位的中断服务程序。单片机通过A/D模块的中断入口控制A/D模块的数据采集。

实时采集处理 第6篇

在环境监测的数据处理系统中,对来自传感器的数据需要进行不同的处理,例如要对这些数据进行显示、存储、检测是否超过设定值,同时,系统还要通过通信接口与上位机通信。在通常的嵌入式数据采集系统中,一般是通过查询方式或中断方式获取来自传感器的数据,然后再调用不同的功能函数对数据进行处理。查询方式需要消耗时间查询传感器状态,所有数据处理过程串行执行,而数据的存储和通信过程比较耗时,有时会因为硬件异常而中断程序的执行,程序的执行时间无法保证。中断方式虽然可以满足系统实时性的要求,但是在复杂系统中,由于需要处理的实时事件较多,有限的中断无法满足系统的要求;大量的使用中断进程,也不利于程序的模块化设计,程序的可读性和易维护性下降。在嵌入式系统设计中采用实时操作系统(RTOS)可以将系统功能分解成多个不同的任务,各个任务独立运行,实现了系统的模块化设计[1,2]。任务的调度由RTOS负责,同时也满足了系统可靠性和实时性的要求[3]。

本文使用消息邮箱将传感器采集到数据以广播的方式向数据处理任务发送,数据处理任务作为接收者可以并发接收来自传感器的数据,在保证实时性的同时,也实现了任务模块之间的松耦合。

2环境监测系统任务划分(Task division of environmental monitoring system)

在基于μC/OS-II的嵌入式系统中,将环境监测系统中环境因子的数据采集和处理功能分配在不同的任务中,任务之间由RTOS进行调度,各个任务有不同的优先级,任务按照优先级的高低分时使用CPU。在μC/OS-II中,可以将任务分成64个不同的优先级[4],且任务优先级各不相同。其中空闲任务和统计任务是系统保留的优先级,用户不可用。其他的优先级根据实现的功能进行设置。环境监测系统中任务及优先级分配如表1所示。

数据采集任务使用单通道ADC采集传感器数据,数据以DMA方式保存在存储器中,采集数据的周期在任务中设置。虽然系统对实时性的要求不是很高,但是考虑到采集任务需要向其他任务提供数据源,因此将该任务设置为最高优先级。监测及报警任务负责对数据上下限范围的监测,对敏感数据的声光报警,因此将其优先级设置为仅次于数据采集任务。对于串口通信任务和LCD显示任务,相对于前两个任务,实时性和重要性不高,可以将它们设置为较低的优先级。任务模式根据各个任务在数据处理中的不同作用,分为数据广播者和数据接收者。数据采集任务是数据广播者,其他任务是数据接收者。

3广播模式及实现(Broadcast mode and implementation)

3.1任务间数据广播

μC/OS-II中实现数据的广播通信有两种方法,一种是利用信号量来实现。由于信号量只能标识事件的发生,所以在使用信号量实现时,需要使用两种不同类型的信号量方式:计数信号量表示事件的发生;互斥信号量用来保护临界资源。在大型系统中,需要设置多个信号量,程序流程复杂。另外一种是使用消息邮箱方式[5]。μC/OS-II提供的通用消息处理函数只能一次发送一个消息,数据读取后自动清空消息邮箱,无法实现消息的广播。通过对消息邮箱函数的扩展,实现了数据采集任务向多个接收任务广播数据。基于消息邮箱的广播方式具有编程简单,结构清晰的特点。

基于消息邮箱的广播模式实现过程如图1所示。数据采集任务的采样周期设置为5s,数据采集任务Sensor Task获取数据后,向其他三个任务LCDTask、COMTask和ALARMTask通过消息邮箱广播发送数据,这时需要实现多个任务之间的同步。当Sensor Task获得来自ADC的数据后,要将此数据以消息的方式通知所有数据接收任务,Sensor Task以OSMbox Post Opt()广播数据。其他任务在同步点调用OSMbox Pend()等待来自Sensor Task的消息,获取数据后,LCDTask、COMTask和ALARMTask中处于就绪状态的任务就可以根据优先级的高低切换上下文获取系统资源,执行相应的操作。

3.2任务内部的状态转换

μC/OS-II以任务的形式管理程序的执行,内核为创建的任务分配栈空间,并根据任务的优先级进行任务的调度,将就绪任务列表中优先级最高的任务置为运行态。数据采集任务和数据接收任务的状态转换如图2(a)和图2(b)所示,分别是数据采集任务Sensor Task和数据接收任务(以LCDTask为例)的状态转换图。数据采集任务Sensor Task有最高的优先级,最先获得CPU的使用权,启动ADC转换模块采集数据并将采集到的数据通过广播的形式发送,然后调用延时函数进入等待状态,让出CPU的使用权,其他低优先级任务获得运行机会。延时时间到后,通过时钟中断进入就绪态,由于Sensor Task在所有处于就绪态的任务中具有最高的优先级,一旦就绪就可以通过上下文切换立即进入到运行态,开始进行下一个周期的数据采集和发送。数据接收任务LCDTask创建后进入就绪态,其中优先级最高的任务在数据采集任务延时期间可以进入运行态,时间延时或等待消息事件都会使数据接收任务进入等待状态。当获得广播消息后,数据接收任务就可以进入就绪态,优先级最高的任务首先获得CPU的使用权,进入到执行状态,任务执行结束后延时开始下一个周期的循环。

4系统性能分析(System performance analysis)

4.1系统硬件实现

系统采用的控制芯片为STM32F103VE,其上运行经过移植的μC/OS-II 2.86 RTOS。STM32F103VE采用32位的Cortex-M3 ARM内核,工作频率72MHz,具有低成本、低功耗等特点[6,7]。温湿度传感器采用DHT11[8],通过PD12端口与控制器相连,如图3所示。

4.2系统性能测试分析

(1)系统任务之间的切换

不同任务之间切换如图4所示。大部分时间里,CPU运行具有最低优先级的空闲任务Idle Task,在每一次数据采集点,Sensor Task获取CPU资源,开始执行任务,由于该任务具有最高优先级,可以无中断的运行结束。其他任务根据优先级的不同相续获取CPU资源,执行各自的功能。由于一个数据采集周期远远大于各个任务的执行时间,因此在系统中不存在任务的中断。

(2)任务广播延迟

理论上来讲,在广播方式下,各个接收任务应该同时接收到消息,但由于接收任务有不同的优先级,优先级高的任务首先进入运行态。数据采集任务发送数据与接收任务接收数据的延时时间主要有两部分组成:当前处于运行态的任务执行任务的时间和任务切换时间。不同任务的数据延迟时间统计如图5所示。

5结论(Conclusion)

基于广播模式的数据实时采集与处理系统,将功能分解到任务,使软件结构清晰,实现了各个功能模块的松耦合,提高了系统实时性和灵活性,实际测试结果表明,不同任务之间的时间延迟在10ms之内,满足了数据处理系统实时性的要求。

参考文献

[1]E Barakat,N Sinno,C Keyrouz.A Remote Monitoring System for Voltage,Current,Power and Temperature Measurements[J].Physics Procedia,2014,55:421-428.

[2]M Rockwood,et al.Using a Real-time Operating System for Multitasking in Remote Patient Monitoring[J].IEEE International Symposium on Medical Measurements&Applications,2014:1-5.

[3]J M Fontana,M Farooq,E Sazonov.Automatic Ingestion Monitor:A Novel Wearable Device for Monitoring of Ingestive Behavior[J].IEEE Transactions on Biomedical Engineeri ng,2014,61(6):1772-1779.

[4]Jean J.Labrosse.嵌入式实时操作系统μC/OS-II[M].北京:北京航空航天大学出版社,2003.

[5]刘林真.消息邮箱机制在烟花仓库温湿度监控系统中的应用[J].福州大学学报:自然科学版,2015(5):622-626.

[6]贾鹏辉,等.基于STM32F103VCT6的振弦式传感器数据采集系统[J].仪表技术与传感器,2015(2):67-70.

[7]王晨辉,吴悦,杨凯.基于STM32的多通道数据采集系统设计[J].电子技术应用,2016,42(1):51-53.

实时采集处理 第7篇

1 系统硬件组成

基于Zynq-7000高速图像采集与实时处理系统如图1所示, 系统主要由高速CMOS图像传感器OV7725、Zynq-7000可扩展处理平台、数据存储单元DDR3和USB Wi Fi模块等组成。Zynq-7000可扩展平台作为整个实时处理系统的核心, 其包括处理系统 (Processing System, PS) 和可编程逻辑 (Programmable Logic, PL) 两部分, 其中PS部分包含了最高可运行在1 GHz的双Cortex-A9核, PL部分包含了传统意义的FPGA逻辑单元和DSP资源[1]。其PL部分负责从CMOS图像传感器中获取数据, 并通过PL实现DMA Engine使用的DMA传输至DDR3内存芯片中存储, PS从DDR3内存芯片中读取经帧缓冲的图像数据, 应用图像处理算法, 将数据通过USB Wi Fi与上位机交互, 并控制执行器进行动作。

高速CMOS图像采集系统采用了低照度好、在QVGA (320×240) 分辨率下能达到120 fip·s-1的OV7725芯片[2], 图像采集模块结构如图2所示。

图像采集模块采用150°的广角镜头来获取大范围的环境信息, 光线通过滤光片, 以获得指定光波长范围内的有效信息, 并最终通过OV7725芯片获取图像数据。

要完整地将OV7725数据采集, 理论上所需的最小IO吞吐量为120×320×240×16×140.625 Mbit·s-1。

而对于Zynq-7000的IO吞吐量, 即使对于该系列最低端的Zynq-7010能支持的16 bit, 1 066 MHz (533 MHz双倍速率) 和75%利用率的DDR3而言仍有399.75 MB/s[3], 因此满足需求。

由于OV7725与Zynq-7010的接口位于PL侧, 在Zynq-7000系列中, PS和PL的数据交互主要有以下几种方式:

(1) CPU控制IO直接与PL交互, 实现简单, 且拥有最低的吞吐率。

(2) 使用PS的DMAC实现数据交互, 具有中等吞吐率, 但DMAC配置复杂, 且PL中实现满足DMAC协议的IP核也有难度。

(3) 使用PS的AXI_GP接口和PL内的DMA, 其具有中等吞吐率, 并会消耗一定的逻辑资源。

(4) 使用PS的AXI_ACP或AXI_HP接口以及PL内的DMA, 其具有最高吞吐率, 但逻辑设计更为复杂。

考虑到实现的难度, 文中在PL部分设计了一个自定义IP核, 采用方式 (3) 和方式 (4) 实现了OV7725和PS的数据交互, 具体思路为:

(1) PS使用AXI_GP接口, 通过AXI-Lite协议, 使用Memory Map的方式读写自定义IP核的寄存器和DMA Engine, 并以控制OV7725和启动DMA来进行数据传输。

(2) 自定义IP核采用Verilog HDL语言实现, 通过检测OV7725的帧同步、行同步、像素时钟等信息, 将OV7725的图像数据缓存于一个异步时钟FIFO中, 而异步时钟FIFO的写时钟由OV7725提供。DMA Engine使用Xilinx提供的IP核实现, 同时还提供异步时钟FIFO读时钟, 请求一次读操作时从异步时钟FIFO中弹出一个数据写入到DMA Engine中。

(3) PS使用AXI_HP接口, 控制DDR3内存接收DMA Engine的数据。

2 系统软件设计

为了能有效地对采集到的图像进行处理, 可在无OS或有OS的系统中运行相应的算法但考虑到系统调试的便捷性、现有资源的可重复利用性, 及各软件模块的协调运行, 文中在Zynq-7000的PS中搭建了嵌入式实时RTLinux操作系统, 并接入一个USB Wi Fi模块作为实时运行中的调试接口, 如图3所示。

2.1 嵌入式实时Linux操作系统搭建

为了能在实时性要求较强的场合下应用Linux, 需对系统进行改造。对此, 有几种常用的解决方案[4]:

(1) 应用开源的Preempt_RT实时内核补丁。

(2) 应用经改造的商业化Linux实时内核版本。

(3) 采用非对称多处理实时方案, 一个Cortex-A9处理器运行非实时Linux系统, 而另一个Cortex-A9处理器运行实时操作系统, 如μC/OS-III等, 两个Cortex-A9处理器通过共享内存等方式进行交互。

考虑到方案实施的难度与系统的复杂性, 本文采用方案 (3) , 使用Linux发行版为Peta Linux, 其内核版本为3.8.11, 下载对应的实时补丁文件, 为非实时的Linux系统内核打上Preempt_RT实时内核补丁, 并在编译Linux内核时选择Preemption Model为Fully Preemptible Kernel (RT) 的选项, 即可切换为硬实时的内核。

Zynq-7000 So C的启动顺序为: (1) 主CortexA9 CPU在片内BootROM中执行启动代码, 根据特定的引脚配置从JTAG、Quad-SPI/NAND/NOR Flash或SD卡中加载FSBL代码, 本文设计是从主频高达133 MHz的32 MB Quad-SPI Flash中启动。 (2) FSBL程序加载bitstream配置PL, 加载第二阶段引导程序或裸跑程序到内存空间, 文中设计为加载uboot程序以启动Linux内核。 (3) 运行PS端的用户代码, 设计为运行Linux系统代码。

Zynq-7000是首先启动PS随后才能启动PL, 即使用户完全不使用PS的资源也需配置PS。

2.2 无线实时调试系统设计

采用Linux系统的优势是可充分应用互联网的众多资源。为此, 系统设计中使用USB Wi Fi模块RTL8188C作为系统的无线调试接口, 通过编写相应的通信控制程序, 这样即使在机器人运动时, 仍可实时掌控机器人的各项状态, 加快系统调试的速度。

Linux3.x内核已默认支持RTL8188C驱动, 在编译内核时, 通过menuconfig选择编译RTL8192CU驱动为内核, 并编译相应的无线网络内核。

为了便于调试机器人系统, 获知系统内部状态, 编写了相应的上位机程序与移动机器人进行实时通讯。同时为满足跨平台的应用调试设计, 上位机程序设计在使用了Python语言编写, 并通过TCP协议与移动机器人进行通讯。

另外, 在Linux中搭建了GDB服务器环境, 使得远程调试应用程序成为可能, 加快了应用软件的开发。

2.3 摄像头图像采集接口Linux设备驱动

为了能在Linux应用程序中对摄像头图像采集接口进行控制, 必须编写相应的Linux设备驱动。由于摄像头图像采集接口, 包括相应DMA Engine为自定义设备, 在原始搭建的Linux系统中并没有关于它们的描述, 因此需在编译内核前修改好设备树, 再加入对自定义的摄像头图像采集设备和DMA Engine的描述。

在Linux设备驱动中, 首先初始化了I2C接口, 并通过I2C对OV7725相应寄存器进行读写, 使其输出120 fip·s-1QVGA分辨率的图像。继而注册OV7725的帧同步中断, 在中断服务程序中通过Memory Map的方式操作DMA Engine的寄存器, 并启动其进行一次完整的帧传输, 将帧数据传输到DDR3指定的内存地址中。

需注意, 通过DMA传输的数据不能经过Cache, 因此需在Linux设备驱动中通过一致性DMA映射分配缓冲区接收DMA传输的数据[5]。

2.4 应用软件设计

该系统应用软件流程如图4所示。其应用软件主要是处理来自上述Linux设备驱动所获得并经帧缓冲的图像数据, 同时运行相应的图像处理、识别算法等程序, 以对接收到的图像数据信息加以提炼, 进而控制执行器执行相应的动作, 完成机器人系统的既定目标[6,7,8]。

应用Zynq-7000可扩展平台处理图像数据主要有两种加速图像处理方法: (1) 应用Zynq-7000的PL部分, 通过编写并行处理算法, 使用DSP资源完成图像数据的并行处理。 (2) 应用Zynq-7000的PS部分, 通过灵活应用最高能运行在667 MHz的双Cortex-A9核, 配合每个处理器独立的SIMD多媒体处理引擎 (NEON) 对图像数据进行并行快速处理。

3 系统运行及测试

测试系统在自行开发的PCB上进行, 除了图像采集模块外, 板载有128 MB的DDR3, 32 MB的QuadSPI Flash和一个用于接入USB Wifi的USB PHY。测试系统实物如图5所示。

使用Plan Ahead 14.7对Zynq-7010的PL部分进行综合实现后, 得到该系统消耗的资源如表1所示。

从表1中可看出, Zynq-7000的逻辑资源丰富, 可有效开发更为复杂的系统。

经测试, 系统在OV7725输出120 fip·s-1QVGA分辨率的图像下可正常工作, 且实时Linux的延迟仅为μs级, 可认为其能工作在实时要求较高的场合下。

在使用红外激光对某未知墙壁环境进行测距时, 实时采集到的图像如图4所示, 应用软件经计算直方图、二值化、边缘提取、模式识别等步骤得到的图像分别如图6和图7所示, 实际图像如图8所示。

由此可见, 该系统能满足实时采集、处理图像所需的性能要求。达到了小机器人实时、准确识别目标的效果。

4 结束语

基于Zynq-7000高速图像采集与实时处理系统硬、软件相结合的设计, 以及在小机器人上测试的结果表明, 文中介绍的使用该平台进行高性能图像处理的方法, 为小型机器人的高性能图像处理应用提供了可行的设计方案。同时应用Zynq-7000可扩展平台, 既具有传统FPGA硬件可编程的优势, 又能使用Cortex A9双核处理器执行复杂的图像处理算法, 其适合于高性能、低成本的应用。且其超小的封装[6,7,8], 更适用于对电路面积敏感的工业应用和机器人应用, 这对于需迅速针对复杂图像处理应用进行原型验证的工作而言, 有着重要意义。

参考文献

[1]Xilinx Inc.Zynq-7000 all programmable SoC technical reference manual (v1.6.1) [M].USA:Xilinx Inc, 2013.

[2]OmniVision Technology Inc.OV7725 CMOS VGA (640×480) camerachip sensor with OmniPixel2 Technology[M].Newyork:OmniVision Technology.Inc, 2007.

[3]何宾.Xilinx all programmable Zynq-7000 SoC[M].北京:清华大学出版社, 2013.

[4]黄武陵, 何小庆, 艾云峰.嵌入式Linux实时化技术[J].电子产品世界, 2009 (2) :57-60.

[5]CORBET J, RUBINI A, KROAH-HARTMAN G.Linux device drivers[M].GE:O'Reilly Media, Inc, 2005.

[6]SPECIFICATION P.Zynq-7000 all programmable SoC packaging and pinout[M].USA:Xilinx Inc, 2012.

[7]梁柱华, 顾新.嵌入式Linux实时性的研究[J].电子科技, 2005 (11) :57-60, 64.

实时采集处理 第8篇

关键词:DSP,中断管理,视频处理,VP口

1 引言

近年来, 随着数字化技术的不断发展、成熟和完善, 图像处理技术广泛应用于科学研究、工农业生产、军事技术、医疗卫生等领域。

实时图像处理系统要求必须具有处理大数量的能力, 本文选用TI公司C6000系列的高速DSP为核心单元, 充分利用其专用可配置视频口和灵活的中断仲裁方式, 结合可编程的高级专用A/D、D/A芯片, 采用模块化编程的开发思路, 设计了基于外同步中断控制的实时视频采集处理系统, 具有数字处理能力强、实时性高等优势。

2 系统架构设计

本系统的主要硬件功能模块包括:视频采集模块、DSP模块、存储模块、视频显示模块等, 由于该系统的实时性要求较高, 因此设计中采用外同步信号作为中断触发方式控制图像显示输出, 使其满足总体需求。工作过程如下:DSP通过I2C总线和握手信号控制视频采集模块, 使其将CCD摄像头送出的模拟视频信号 (CVBS) 转换成原始数字信号后送到DSP, 由DSP提取其中有效的视频数据进行滤波、图像识别、目标叠加等算法处理并将其存储在SDRAM中。DSP在响应外同步中断后将存储的有效图像数据送入视频显示模块进行D/A转换并送终端显示, 实现复合模拟视频图像输出。其硬件系统设计框图如图1所示。

2.1 DSP模块设计

本系统主处理器采用了TMS320DM642, 该芯片是TI公司一款针对多媒体处理领域应用的高性能32位定点DSP, 基于C64x核心架构, 集成了丰富的外围设备和接口, 主频最高可达720 MHz, 最大指令处理速度为5760MIPS, 内部具有256K字节的二级缓存结构[1]。

2.1.1 DSP片上资源

DM642的片上资源归纳为以下几个部分:3个可编程的视频端口, 能够与通用视频编、解码芯片无缝连接, 支持多种视频分辨率及视频标准格式;1个标准的I2C总线接口, 可实现对编解码芯片的初始化设置和读写访问操作;1个64位外部存储单元接口EMIFA, 支持与同步或异步存储单元的连接;1个具有64路独立通道的增强型EDMA控制器, 可以直接访问存储器, 不占用CPU资源;1个符合IEEE1149.1标准的JTAG接口等等[2]。

2.1.2 VP口的配置和设计

DSP模块的主要功能是实现与外围接口的无缝连接和数字图像信号采集、处理、输出。而数字图像信号的采集与输出主要由视频口完成, 这里主要介绍一下视频口的配置与设计。DM642每个视频口划分为A、B两个通道, 当DM642工作于双通道模式时, 每个视频通道占用的FIFO大小为2560字节, 当工作于单通道模式时, 通道占用的FIFO大小为5120字节[3]。

本系统中VP1口被配置成8位BT.656视频输入口, 在采集使能和采集时钟的控制下接收数字视频信息后完成同步头、有效数据的抽取并存入Capture FIFO中, 然后通过EDMA通道把FIFO中的数据搬入SDRAM中;DSP对SDRAM中的原始图像数据进行解压、滤波、复合等数字图像处理, 并将处理后的数据仍放到SDRAM中。视频口VP0口被配置成8位的数字视频输出口, 在外同步中断触发下取出SDRAM中的数据送入Display FIFO中输出。视频口的结构图如图2所示。

2.2 视频采集、显示模块设计

本系统的视频采集模块主要由A/D转换芯片ADV7181及其外围电路组成。ADV7181是一款低功耗可编程的多功能数字视频解码芯片。它可以自动检测NTSC、PAL和SECAM等标准的复合电视信号并将其转换为8位的CCIR-656 YCb Cr 4∶2∶2的视频数据输出格式[4];视频显示模块主要由D/A转换芯片ADV7171及其外围电路组成。ADV7171是一种高性能、兼容各种视频标准的PAL/NTSC/SECAM编码器, 将DSP输出的CCIR-656 4:2:2格式的复合数字图像信号进行D/A转换成PAL制式的模拟CVBS复合视频信号[5]。编、解码芯片通过I2C总线来实现与DSP的通信, 使用I2C总线的SCL和SDA进行数据传输和通信控制。

2.3 存储模块设计

TMS320DM642 的外部存储器接口 (EMIFA) 支持各种外部器件的无缝接口, 如同步存储器SDRAM、异步存储器FLASH等。FLA S H存储器具有可在线进行电擦写, 掉电后信息不丢失的功能, 用它来保存系统自启动代码以及系统程序代码;SDRAM存储器的存取速度较高, 用它来存放系统运行时的代码以及临时图像数据;CPLD电路是实现FLASH的页选、外围接口的扩展等功能[6]。

3 软件设计

本系统的软件设计采用“C语言+线性汇编”的模式, 在CCS3.3编译环境下编写, 按功能模块划分, 本系统软件模块主要分为初始化模块、视频处理模块 (包括采集、处理和显示) 、中断管理模块。系统软件设计功能模块图如图3所示。

3.1 初始化模块

初始化程序模块主要是通过对DM642的片内寄存器、芯片支持库 (CSL) 、EDMA控制寄存器、中断管理寄存器的配置来实现整个系统的初始化, 其中, 通过CSL提供的API函数可完成对片内外设寄存器的设置, 从而实现对片内外设的控制和管理, 如视频口、EMIFA接口、I2C总线接口等。初始化模块的流程图如图4所示。

3.2 视频处理模块

本系统的视频处理模块包括视频采集、视频处理和视频显示三个模块, 模块化的设计结构使得程序更加易于调试和修改, 其工作流程图如图5所示。

3.3 中断管理模块

中断管理模块主要是对中断相关寄存器的管理和配置、中断服务函数的处理, DM642内部提供了一套完整的CPU中断或EDMA事件处理机制, 当中断或事件的触发条件满足时, DSP内部就会产生相应的中断或事件触发信号。本系统中采用外同步信号作为外部中断事件触发信号, 实现复合视频的实时处理和显示。

4 结语

本文给出的基于外同步中断的实时视频采集处理系统的设计方案, 已成功地应用于工程实践中, 由于本设计中每帧图像处理、显示均由外部25Hz统一同步控制, 因此本设计可适用于对同步要求较高的场合。

参考文献

[1]张旭东.TI DSP在视频传输和处理中的应用[M].北京:电子工业出版社, 2009.

[2]王跃宗, 刘京会.TMS320DM642 DSP应用系统设计与开发[M].北京:人民邮电出版社.

[3]TI.TMS320C64x DSP Video Port/VCXO Interpolated Control (VIC) Port Reference Guide.pdf[EB/OL].Texas Instruments Incorporated, 2004.

[4]10-Bit, Integrated, Multiformat SDTV/HDTV Video Decoder and RGB Graphics Digitizer ADV7181C[S].Analog Devices, Inc, 2008-2012.

[5]Digital PAL/NTSC Video Encoder with 10-Bit SSAFTM and Advanced Power Management ADV7170/ADV7171[S], 2005.

实时采集处理 第9篇

在现代工业控制系统中,多参数实时采集对监控设备正常运行有着十分重要的作用。多参数信号采集是将监控现场的物理量、化学量或生物量通过相应的传感器和调理电路把模拟量转换为易于采集、处理的电压信号,经过单片机的处理,一方面反馈给控制部件对监控对象进行控制调整,另一方面送给显示单元,实时显示采集的信号数据。在航空、汽车、通信、园林等控制领域,多参数实时采集与处理是自动控制系统的核心。但是专用的数据采集设备价格动辄上万,高速数据采集卡的价格也在千元以上,而且这类设备大多有固定的接口,无法适应千差万别的被测对象的需求,不具有通用性[1,2,3]。本文从应用角度出发,设计分辨率为8位的实时数据采集系统,在STC_ISP_V394软件环境的支持下,通过PC机实时显示采集的参数。下位机以AT89C52单片机为控制单元,8路A/D转换芯片ADC0809采集两路电压信号:通道0每隔1s采样一次,共采集10次;通道1每隔5s采样一次,共采集20次。采集的数据通过串行通信方式发送到上位机实现实时显示。本系统利用不同的传感器取代两路电压信号的采集,适用于各种控制电路,具有较强的通用性。

1 系统硬件设计

数据采集与处理系统分为单片机主控模块、A/D转换模块、数码管显示模块、键盘控制模块和串行通讯模块等五个单元,系统组成框图如图1所示。

1.1 A/D转换模块

模数转换采用常用芯片ADC0809,其内部有一个8通道多路开关,由于内部进行转换的转换器只有一个,所以只能对8路模拟量信号进行分时转换,根据锁存地址线译码后的信号,某一时刻只选通8路模拟输入信号中的一路,以逐次逼近原理进行模-数转换,转换时间为100μs,转换精度为8位[4]。

ADC0809内部结构如图2所示。启动ADC0809进行A/D转换,首先输入3位地址信号,并使ALE为高电平,将地址存入地址锁存器中,经译码器译码选通8路模拟输入之一到比较器;START上升沿将逐次逼近寄存器复位,下降沿启动A/D转换,EOC输出信号变低,指示转换正在进行。直到EOC变为高电平,表示A/D转换结束,转换结果存入锁存器。当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。

1.2 键盘及显示模块

参数采集与处理系统的人机交互采用2×8矩阵键盘和静态数码管显示,如图3所示。设计上为节省单片机I/O口线,人机交互采用两条线控制,利用模拟开关CD4052切换,控制键盘和数码管的数据信号[5]。

1.3 串行通信模块

由于单片机和PC机使用不同的逻辑电平,在设计串行接口电路时,必须考虑电平的匹配、驱动能力的匹配、元器件的选择以及其它电气特性。PC机通常有两个标准的RS232串行口,为了提高抗干扰能力,这种接口采用EIA电平逻辑,如表1所示[6]。

为实现单片机与PC机电平兼容,单片机与PC机通讯时,必须经过电平转换。通常使用MC1488和MC1489芯片实现电平转换,但这两种转换芯片组成电路结构复杂,电源需±12V电源供电,工作不稳定,易烧坏芯片。本设计使用MAX232集成电路芯片,仅用+5V供电,其内部有两组电压转换电路,外围电路配上4个升压电容,实现在EIA电平和TTL电平之间互相转换,具有电路结构简单、元器件数量少、电源单一、功耗低等特点,MAX232芯片组成的串行接口电路如图4所示[7,8]。

AT89C52单片机内有一个可编程、全双工的串行口,串行收发的数据在通讯时,通过特殊功能寄存器SFR的串行数据缓冲器SUBF实现数据交换,故可做多机通讯,特别适合于终端和系统主机间的通讯。

1.4 单片机与A/D接口模块

单片机采用ATMEL公司生产的AT89C52单片机。它采用先进工艺制造,具有高性能的MCS51内核设计,带有非易失性Flash程序存储器,是一种高性能、低功耗的8位CMOS微处理芯片,市场应用广泛,在实现信号采集、数据处理、串行传输、实时控制等有较大优势。

本设计采用查询法采集数据,合理分配单片机的资源,大部分时间单片机用来运行控制程序,只有在采集时间到来时单片机才用来执行采集程序。图5所示为ADC0809与单片机的接口电路,需要采集数据时,单片机首先输出地址信号,指定采集的通道,接着使ALE和START为高电平,启动A/D转换,然后单片机处理其它事务,稍后查询EOC是否为高电平,若为高电平,转换结束,需要读取转换结果时,发送读取命令使OE为高电平读取转换结果,存入指定单元,供数码管显示和上传给PC机[9]。

2 系统软件设计

系统软件主要包括:系统初始化、判键程序、AD转换程序、数码管显示程序和串行通信程序,图6为程序结构框图。

单片机采用11.0592MHz晶振、定时器选择工作方式2、串口工作在方式1,波特率设为9600。上位PC机在STC_ISP_V394开发环境下,使用"串行调试助手"功能,接收串行数据并显示采集结果,图7为STC_ISP_V394数据采集界面,显示出两路电压信号的实时采集结果。

单片机串行通信初始化设置:

MOV TMOD,#20H:T1工作方式2

MOV TH1,#0FDH:波特率9600

MOV SCON,#40H:串口工作方式1

SETB TR1:打开定时器1

单片机发送数据:

MOV SBUF,A:将接收的数据传送给PC机

JNB TI,$

CLR TI

3 结束语

本文介绍了一种基于A/D转换芯片ADC0809和AT89C52单片机的数据采集和串行通信接口的实现方法。本设计在自制开发机上完成调试,自制开发机采用S T C 8 9 C 5 4单片机,具有I S P在线编程功能,在STC_ISP_V394开发环境下完成程序下载以及数据通信。通过实践验证在短距离传输中有很好的效果,传输中未出现数据丢失和错误。数据采集和串行数据传输在工业控制中十分重要,本设计具有一般通用性,读者可根据自己的实际需要进行改进,以满足工程设计需要。

摘要:本文以AT89C52单片机为核心,采用A/D转换芯片ADC0809,设计了两路直流电压信号实时采集系统,对信号进行采集、转换、处理、存储,通过单片机串行口送给PC机,在STCISPV394开发环境的串行调试窗口下实时显示。文中详细论述了系统的硬件设计和程序流程图的结构,此采集和处理系统具有较强的移植性和通用性。

关键词:单片机,A/D转换,数据采集

参考文献

[1]马捷中,郭阳明.飞行数据管理记录系统的数据采集技术实现[J].计算机工程与设计,2006,27(13):2469-2471.

[2]梅琴.汽车制动性能检测系统中的数据采集系统[J].机械与电子,2008(11):45-47.

[3]孙凯.基于单片机的智能温室控制系统的设计[J].自动化技术与应用,2008,27(8):101-103.

[4]梁丽洁,马兴兵.基于单片机的简单数字采集系统的设计[J].河北理工学院学报,2007,29(1):83-85.

[5]姚有峰.电子工艺实习教程[M].安徽:中国科技大学出版社,2008.

[6]官晟,张杰,等.微机主从通讯系统多232口连接电路设计[J].微计算机信息,2005,21(4):200-201.

[7]冯楠,曾国宏,等.基于RS232及红外接口的多功能通讯实验板的设计[J].现代电子技术,2006,(18):76-78.

[8]刘辉.基于8051单片机的数据采集与通信接口设计[J].软件导刊,2008,7(12):72-74.

实时采集处理 第10篇

在海洋环境监测领域中, 采集的通常是水下的光信号, 光信号通过光纤传输经过传感器转换成模拟电信号, 对该信号的采集与处理主要由AD转换器和DSP芯片组成的系统完成, AD转换器的最高工作频率决定了信号采集的速率, 而整个系统的处理能力则由DSP芯片决定。作者根据项目需要设计了一种通用性的设备, 双通道、最大采样速率为5M的数据采集与实时处理系统。该系统具有较强信号处理能力和较大数据吞吐量, 主要应用于基于激发荧光和激光多普勒技术的浮游植物粒径分布现场在线监测系统中的数据采集与处理部分。

2系统硬件设计

本系统可以完成对荧光信号和多普勒信号采集和实时处理并将处理后的频谱数据通过USB接口传输到PC机并显示出来。系统主要分为数据采集部分, 数据处理部分, 逻辑时序控制部分, 主机通信部分, 以及电源管理。

选用TI公司的浮点高速C6000系列中的TMS320C6713B作为核心处理芯片, 模拟电信号经THS4503后转变为差分信号, 输入ADS1605后将模拟信号转换为16位的数字信号。通过DSP的地址译码分时选通AD1和AD2实现双通道的由AD到DSP的EMIF总线的数据传输:, 相应的信号处理算法在DSP中实现。在CPLD控制下数据由DSP的HPI接口通过USB接口芯片传入PC, 系统结构如图1:

2.1 DSP以及外围芯片电路设计

TMS320C6713 DSP是美国TI于1997年推出的C6000系列DSP芯片的一款, 它是32位高速浮点型DSP, 时钟最高频率为300MHz, , 其EMIF总线宽度为16位, 接口电压为3.3V,

其EMIF提供了4个外设空间[2], 在本设计中两个通道的AD1和AD2分别占用CE0空间中的两个地址, 通过DSP中的主程序读取这两个地址中的值来读取相应通道中的ADC数据总线上的16为数据。在实时采集时, 通过CPLD来实现DSP地址译码。通过EMIF的地址总线EA2, EA3和CE0, 进行译码。当AD1的片选信号CE和RD信号同时为低电平时, AD1的数据线上将由高阻变成有效的数据, 而此时AD2的片选CE为高电平所以AD2的数据线为高阻状态, 所以在同一时间EMIF总线上不会出现总线竞争情况。

2.2 USB2.0接口设计

系统的数据传输通过USB接口芯片, 所以本方案采用CY7C68013的“GPIF主控”接口模式与TMS320C6713B芯片HPI接口连接, 该芯片的最主要特点是可通过USB2.0的通用可编程接口 (GPIF) 为特定的应用接口编程, 以便使用多种协议完成与外围器件的无缝连接“GPIF主控”接口模式, 使用PORTB和PORTD双向FIFO数据线来构成通向四个端点FIFO (EP2、EP4、EP6、EP8) 的16位数据接口, 以用来连接数据线DD[15:0]并进行数据的传送;GPIF作为内部主控器与FIFO相连, 并通过产生用户可编程的控制信号CTL[2:0]与外部接口进行通信。同时, GPIF还可以通过RDY[1:0]引脚采样外部信号并等待外部事件。

3系统程序设计

3.1 DSP程序设计

该系统DSP的程序由C语言程序和汇编程序组成, 完成双通道数据采集与实时处理。通道1采集荧光信号, 通道2采集多普勒信号。当系统启动后两个通道都开始进行2K的数据循环采样, 同时通道1中的数据进行32个数据累加检测, 当32个数据的和大于设置的触发门限时, 两个通道都开始进行6K的数据采样, 由于保存了触发前的两个通道的2K数据, 所以两个通道中的数据均为8K, 然后对通道1的8K数据求最大值和最小值, 计算出中间值, 通过对一通道中的数据进行搜索, 与中间值进行比较得到其下标地址, 从而得出脉冲的两个中间值之间的宽度。在通道2中对采集的8K数据进行快速傅里叶变换得到频谱, 最后将以上数据传到上位机显示。

3.2 Usb接口芯片固件程序

固件是在USB接口芯片加电后, 由其他设备加载到CY7C68013芯片中并在其中运行完成接口数据传送功能的一段程序.在该系统中, CY7C68013芯片的固件程序控制整个硬件系统的运行, 包括初始化工作;硬件设备的重新列举, 处理PC主机发来的各种USB请求和数据传输。该固件是根据Cypress公司提供的固件编程框架来完成的, 所使用的编程语言则是Keil公司的C51编译器。

固件程序的核心内容为Fw.c (框架源代码Fw.c中主要包括任务分配器 (TD) 函数和设备请求 (DR) 函数) 、Ti6713HPI.c (用户自定义函数) 以及Gpif.C (波形时序控制) , 由GPIF_Designer生成, 用以匹配HPIC、HPIA、HPID时序, 将GPIF_Designer的4组波形分别定义为:第一半字写、第二半字写、FIFO写和FIFO读, 其中前两组波形配合任务分配器函数TD_Poll () 完成DSP中寄存器HPIC和HPIA的写, 后两组波形配合TD_Poll () 完成自增模式下HPID的读写, 波形的设计要严格遵守HPI总线访问时序。

结束语

本文主要介绍了基于TMS320C6713B的数据采集与实时处理系统, 创新点在于该系统可以高速高效的在双通道之间进行切换, 实现了主机在线编程, 可以根据任务随时通过PC机更换系统的DSP程序, 使系统可以灵活处理各种数据采集处理任务。

参考文献

[1]王粘旭.DSP基础与应用系统设计.北京航空航天大学出版社, 2001.

[2]Texas Instruments.TMS320C6713B Data Book.RevisedJune, 2006.

[3]汪安民, 张松灿.TMS320C6000DSP实用技术与开发案例.人民邮电出版社.

上一篇:电子学籍档案下一篇:体育课教育