现场总线至PC104总线的转换装置及数据传输方法转让专利

申请号 : CN201110394482.X

文献号 : CN102508809B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 唐东升李明树侯玮玮

申请人 : 中国科学院软件研究所

摘要 :

一种实现多功能现场总线至PC104总线的转换装置,其特征在于包括:PC104从设备接口电路,用于通过PC104总线与上位机进行通信;接收缓冲区,用于接收上位机或现场总线控制逻辑电路发送来的数据;发送缓冲区,用于向上位机或现场总线控制逻辑电路发送数据;中断及查询处理电路,用于处理现场总线控制逻辑电路的对上位机的服务请求,并将该请求通过PC104从设备接口电路传输给上位机;现场总线控制逻辑电路,用于与多功能现场总线通信并实现控制。

权利要求 :

1.一种实现多功能现场总线至PC104总线的转换装置,其特征在于包括:PC104从设备接口电路,用于通过PC104总线与上位机进行通信,并设置了上位机用于访问发送缓冲区和接收缓冲区的寄存器;

接收缓冲区,用于接收上位机或现场总线控制逻辑电路发送来的数据;

发送缓冲区,用于向上位机或现场总线控制逻辑电路发送数据;

中断及查询处理电路,用于处理现场总线控制逻辑电路的对上位机的服务请求,并将该请求通过PC104从设备接口电路传输给上位机;

现场总线控制逻辑电路,用于与多功能现场总线通信并实现控制;

其中转换装置由FPGA芯片实现,其中FPGA能够对多种不同协议类型的多功能现场总线进行配置,并实现多功能总线至PC104总线的转换。

2.根据权利要求1所述的实现多功能现场总线至PC104总线的转换装置,其特征在于对实时性要求较强的服务,通过中断的方式请求上位机的服务。

3.根据权利要求1所述的实现多功能现场总线至PC104总线的转换装置,其特征在于对实时性要求不高的服务,采用上位机定时或不定时轮询的服务方式。

4.根据权利要求1所述的实现多功能现场总线至PC104总线的转换装置,其特征在于所述寄存器包括:命令寄存器,用来表达开始发送数据、结束发送数据、开始接收数据或结束接收数据的命令;

长度寄存器,用于上位机写入待发送的数据帧的长度,或者用于上位机读出待接收的数据帧的长度;

状态寄存器,用于表示发送缓冲区的状态、接收缓冲区的状态以及现场总线的状态。

5.根据权利要求1所述的实现多功能现场总线至PC104总线的转换装置,其特征在于还包括ASIC电路,FPGA通过控制ASIC控制现场总线。

6.一种上位机通过PC104总线向多功能现场总线发送数据的方法,其特征在于包括如下步骤:(1)上位机通过PC104总线向命令寄存器写入开始发送数据的命令;

(2)上位机通过PC104总线向发送长度寄存器里写入待发送数据帧的长度;

(3)上位机通过PC104总线向发送数据寄存器中连续写入待发送的数据;

(4)待所有的数据写入完成后,上位机通过PC104总线向命令寄存器里写入结束数据发送的命令;

(5)在上位机将完整的一帧数据写入发送缓冲区后,根据现场总线控制协议将数据通过多功能现场总线发出;

其中上述步骤中使用的命令寄存器、长度寄存器和发送数据寄存器均包含在一个FPGA中,由FPGA实现对多种不同协议类型的多功能现场总线进行配置,并实现多功能现场总线至PC104总线的转换。

7.一种由多功能现场总线通过PC104总线向上位机发送数据的方法,其特征在于包括如下步骤:(1)在多功能现场总线上接收到完整的一帧后,将数据存放在接收缓冲区中;

(2)上位机检查到接收缓冲区中有数据帧时,向命令寄存器中写入开始接收的命令;

(3)上位机读取接收长度寄存器的值,以明确数据帧的长度;

(4)上位机从接收数据寄存器中依次读出接收缓冲区里的数据;

(5)所有的数据接收完成后,上位机向命令寄存器中写入结束接收数据的命令;

其中上述步骤中使用的命令寄存器、长度寄存器和接收数据寄存器均包含在一个FPGA中,由FPGA实现对多种不同协议类型的多功能现场总线进行配置,并实现多功能现场总线至PC104总线的转换。

8.根据权利要求7所述的由多功能现场总线通过PC104总线向上位机发送数据的方法,其特征在于向上位机报告中断以请求服务,或者上位机通过定时或不定时轮询的方式获知现场总线的服务请求。

9.一种上位机通过PC104总线与多功能现场总线之间传输数据的方法,其特征在于:上位机通过PC104总线向多功能现场总线发送数据包括步骤:(1)上位机通过PC104总线向命令寄存器写入开始发送数据的命令;

(2)上位机通过PC104总线向发送长度寄存器里写入待发送数据帧的长度;

(3)上位机通过PC104总线向发送数据寄存器中连续写入待发送的数据;

(4)待所有的数据写入完成后,上位机通过PC104总线向命令寄存器里写入结束数据发送的命令;

(5)在上位机将完整的一帧数据写入发送缓冲区后,根据现场总线控制协议将数据通过多功能现场总线发出;

由多功能现场总线通过PC104总线向上位机发送数据包括如下步骤:(21)在现场总线上接收到完整的一帧后,将数据存放在接收缓冲区中;

(22)上位机检查到接收缓冲区中有数据帧时,向命令寄存器中写入开始接收的命令;

(23)上位机读取接收长度寄存器的值,以明确数据帧的长度;

(24)上位机从接收数据寄存器中依次读出接收缓冲区里的数据;

(25)所有的数据接收完成后,上位机向命令寄存器中写入结束接收数据的命令;

其中上述步骤中使用的命令寄存器、长度寄存器、发送数据寄存器和接收数据寄存器均包含在一个FPGA中,由FPGA实现对多种不同协议类型的多功能现场总线进行配置,并实现多功能现场总线至PC104总线的转换。

10.根据权利要求9所述的上位机通过PC104总线与多功能现场总线之间传输数据的方法,其特征在于向上位机报告中断以请求服务,或者上位机通过定时或不定时轮询的方式获知现场总线的服务请求。

说明书 :

现场总线至PC104总线的转换装置及数据传输方法

技术领域

[0001] 本发明属于现场总线控制领域,尤其涉及一种实现多功能现场总线至PC104总线的转换装置及数据传输方法,其适用于各种不同协议类型的现场总线。

背景技术

[0002] 现场总线是指安装在制造或过程区域的现场装置与控制室内的自动装置之间的数字式、串行、多点通信的数据总线。现场总线一般用来组建自动化领域中底层数据通信网络。大多现场总线,无法直接完成与上位机的互联,一般需要桥接芯片来完成。PC104总线是一种较为通用的计算机总线,通过PC104总线建立PC驱动与底层多功能现场总线链路通信的桥梁,是目前最常用的解决方案。但由于现场总线的类型较多,用一种形式较为统一的PC104链路层接口将他们统一起来还有些困难。

发明内容

[0003] 为了克服现有PC104接口无法统一多种不同类型的现场总线的链路层接口这一问题,本发明设计出一种适用范围交广的PC104软件及硬件系统,并易于移植于不同的现场总线应用场合。
[0004] 依据本发明技术方案,本发明提供了一种实现多功能现场总线至PC104总线的转换装置,其特征在于包括:PC104从设备接口电路,用于通过PC104总线与上位机进行通信;接收缓冲区,用于接收上位机或现场总线控制逻辑电路发送来的数据;发送缓冲区,用于向上位机或现场总线控制逻辑电路发送数据;中断及查询处理电路,用于处理现场总线控制逻辑电路的对上位机的服务请求,并将该请求通过PC104从设备接口电路传输给上位机;
现场总线控制逻辑电路,用于与多功能现场总线通信并实现控制。
[0005] 此外,本发明还提供一种上位机通过PC104总线与多功能现场总线之间传输数据的方法,其特征在于:
[0006] 上位机通过PC104总线向多功能现场总线发送数据包括步骤:
[0007] (1)上位机通过PC104总线向命令寄存器写入开始发送数据的命令;
[0008] (2)上位机通过PC104总线向发送长度寄存器里写入待发送数据帧的长度;
[0009] (3)上位机通过PC104总线向发送数据寄存器中连续写入待发送的数据;
[0010] (4)待所有的数据写入完成后,上位机通过PC104总线向命令寄存器里写入结束数据发送的命令;
[0011] (5)在上位机将完整的一帧数据写入发送缓冲区后,根据现场总线控制协议将数据通过多功能现场总线发出;
[0012] 由多功能现场总线通过PC104总线向上位机发送数据包括如下步骤:
[0013] (21)在现场总线上接收到完整的一帧后,将数据存放在接收缓冲区中;
[0014] (22)上位机检查到接收缓冲区中有数据帧时,向命令寄存器中写入开始接收的命令;
[0015] (23)上位机读取接收长度寄存器的值,以明确数据帧的长度;
[0016] (24)上位机从接收数据寄存器中依次读出接收缓冲区里的数据;
[0017] (25)所有的数据接收完成后,上位机向命令寄存器中写入结束接收数据的命令。
[0018] 本发明采用了FPGA来实现多功能总线至PC104总线的转换,由于FPGA电路的可配置性,使得能够非常灵活地使用各种不同协议类型的多功能现场总线,其并发执行性能也能较好的解决各种协议所要求的实时性。

附图说明

[0019] 图1是本发明的系统整体架构示意图;
[0020] 图2是本发明的FPGA内部电路结构图;
[0021] 图3是本发明PC系统中PC104软件的架构图。

具体实施方式

[0022] 为使本发明的上述目的、特征和优点更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
[0023] 图1是本发明系统的整体架构示意图;整个系统分为软件和硬件两部分。硬件部分采用FPGA+ASIC解决方案。ASIC主要是对现场总线做实时处理,以及协议转换。FPGA再将这些经过转换后的数据流和控制流,进一步虚拟成易于被处理器接受的收发链路接口,增强其缓冲能力,从而减少对软件在实时性上的要求。软件部分主要在PC系统上实现,由驱动程序和应用程序两部分组成。驱动程序基于PC上的PC104总线,它通过访问PC104来实现对硬件部分提供的收发链路进行管理,并为应用提供友好的访问接口。针对不同协议类型的现场总线,首先需要确定是否需要ASIC的协助。一般的数字链路处理,可以在FPGA内部处理,对于较复杂的协议,ASIC能提供较完整的解决方案,FPGA仅需要通过控制ASIC就能控制现场总线。FPGA自身完成总线的实时处理后,还需要通过PC104总线与上位机(PC机)进行通信。在硬件上,采用FPGA来实现多功能总线至PC104总线的转换。FPGA电路的可配置性,能够非常灵活地使用各种不同协议类型的多功能现场总线,其并发执行性能也能较好的解决各种协议所要求的实时性。对于较为复杂的现场总线,可以加入ASIC以缩短开发周期。
[0024] 图2是本发明的FPGA的系统结构图;FPGA中,现场总线控制逻辑电路的内容相对来说是可变的,因为他要适应不同的现场总线或者ASIC。但是此模块跟其他模块的访问接口可以固定。如图,接收缓冲区用于缓存来自上位机PC104的发送数据流,这些数据在现场总线控制逻辑的控制下最终流向现场总线。发送缓冲区用于缓存来自现场总线的数据流,这些数据在上位机PC104的控制下最终流向上位机。另外,FPGA里面还包含中断及查询处理电路,在接收到来自现场总线的数据时,产生中断信号,以请求PC机的软件服务,这个电路还可提供一些对现场总线控制模块的辅助控制单元。此外,PC104从设备的功能由FPGA来实现,其主要构造为发送缓冲区和接收缓冲区。缓冲区的作用是实现实时传输端与非实时传输端的转换。在PC104从设备接口电路中设置了上位机用于访问发送缓冲区和接收缓冲区的寄存器。所定义寄存器包含如下类型:命令寄存器、发送数据寄存器、接收数据寄存器、发送长度寄存器、接收长度寄存器、状态寄存器。其中,命令寄存器用来表达不同的命令种类,如开始发送数据、结束发送数据、开始接收数据、结束接收数据。长度寄存器用于上位机写入待发送的数据帧的长度,或者用于上位机读出待接收的数据帧的长度。状态寄存器对上位机而言为只读类型,上位机可以通过此寄存器可以了解发送缓冲区的状态(如空/满情况,剩余的数据等)、现场总线上目前的状态等。另外,在PC104的接口上,提供中断以及查询两种服务方式。这就是图2中PC104从设备接口电路的功能。在此电路中定义了上位机(PC机)用于访问发送缓冲区和接收缓冲区的寄存器地址以及访问方式。
[0025] 对实时性要求较强的服务,通过中断的方式请求PC软件的服务;对实时性要求不高的服务,可以采用PC定时或不定时轮询的服务方式。
[0026] 在软件上,需要PC的驱动上管理好PC104侧的发送缓冲区和接收缓冲区,并为应用程序提提供较为便捷的访问接口。PC104驱动为上层应用(各种现场总线协议)提供统一的阻塞式消息发送和接收接口。
[0027] 图3是PC系统中PC104软件的架构图。
[0028] PC104软件为PC系统中的应用程序提供收据收发接口。在PC系统中,对于应用需要发送的数据,PC104软件构造相应的数据包,然后通过寄存器接口,将数据包提交至FPGA中的数据发送缓冲区;同时,PC104软件通过轮询或中断方式确定FPGA接收缓冲区中是否有数据包到达,对于到达的数据包解析之后,将数据提交给应用程序。
[0029] 较为核心的过程在于PC104数据链路的通信。
[0030] 数据的发送过程,按照如下步骤进行:
[0031] 上位机通过PC104总线向多功能现场总线发送数据包括步骤:
[0032] (1)上位机通过PC104总线向命令寄存器写入开始发送数据的命令;
[0033] (2)上位机通过PC104总线向发送长度寄存器里写入待发送数据帧的长度;
[0034] (3)上位机通过PC104总线向发送数据寄存器中连续写入待发送的数据;
[0035] (4)待所有的数据写入完成后,上位机通过PC104总线向命令寄存器里写入结束数据发送的命令;
[0036] (5)在上位机将完整的一帧数据写入发送缓冲区后,根据现场总线控制协议将数据通过多功能现场总线发出;
[0037] 由多功能现场总线通过PC104总线向上位机发送数据包括如下步骤:
[0038] (21)在现场总线上接收到完整的一帧后,将数据存放在接收缓冲区中;
[0039] (22)上位机检查到接收缓冲区中有数据帧时,向命令寄存器中写入开始接收的命令;
[0040] (23)上位机读取接收长度寄存器的值,以明确数据帧的长度;
[0041] (24)上位机从接收数据寄存器中依次读出接收缓冲区里的数据;
[0042] (25)所有的数据接收完成后,上位机向命令寄存器中写入结束接收数据的命令。
[0043] 本设计方案可以为各种不同现场总线提供易于被计算机软件控制的方法,为实现现场总线的网络控制提供便捷的条件。
[0044] 最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制;尽管参照较佳实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者对部分技术特征进行等同替换;而不脱离本发明技术方案的精神,其均应涵盖在本发明请求保护的技术方案范围当中。