发明内容
基于此,有必要提供一种结构简单、效率高的数控IO总线控制系统。
一种数控IO总线控制系统,包括数控模块、IO总线控制器及IO模块;
所述IO总线控制器通过PCI接口连接所述数控模块,所述IO总线控制器通过IO总线连接所述IO模块;
所述IO总线控制器包括依次连接的PCI接口模块、总线控制模块及总线接口模块;
所述PCI接口模块用于实现所述IO总线控制器与所述PCI接口的通讯;
所述总线控制模块用于对所述IO总线的命令进行处理及地址分配;
所述总线接口模块用于实现所述IO总线控制器与所述IO模块的之间数据传输;
所述数控模块通过所述PCI接口与所述IO总线控制器进行数据交互,所述IO总线控制器将所述PCI接口传输过来的数据和指令发送到IO总线上,并将所述IO总线上返回的数据传输给所述PCI接口模块;
所述IO模块为所述IO总线的从站,用于与所述IO总线控制器进行通讯。
在其中一个实施例中,所述PCI接口模块与所述总线控制模块采用FPGA的硬件描述语言编程实现。
在其中一个实施例中,所述PCI接口模块包括数据输入输出模块、配置模块、状态机模块及数据处理模块;所述数据输入输出模块同时连接所述配置模块、所述状态机模块及所述数据处理模块;
所述数据输入输出模块用于提取所述PCI接口上的输入数据,同时将要发送的数据输出到所述PCI接口上,并进行时序调度和管教分时复用处理;
所述配置模块用于分配PCI地址空间;
所述状态机模块用于处理PCI通讯过程;
所述数据处理模块用于提取PCI接口上输入数据中的有效信息,并将所述有效信息发送给所述总线控制模块;同时将所述总线控制模块返回的数据传输到PCI接口上。
在其中一个实施例中,所述状态机模块用于监控用户检测电压、温度及看门狗信号。
在其中一个实施例中,所述总线控制模块包括总线命令处理模块、所述地址分配模块及所述数据传输模块;
所述总线命令处理模块用于读写存储模块中的总线命令;所述地址分配模块用于将PCI地址空间划分为不同的段来定义存储模块;
所述数据传输模块用于输出所述总线控制模块发送的指令并将IO总线中的PCI数据读取到所述总线控制模块中。
在其中一个实施例中,所述存储模块包括寄存器及RAM存储器。
在其中一个实施例中,所述每段地址对应不同的寄存器。
在其中一个实施例中,所述地址分配模块为每个从站分配地址,并对从站内部的地址空间进行定义。
在其中一个实施例中,所述IO总线的地址和数据采用8bit的数据位数。
在其中一个实施例中,所述从站的地址从00到FF之间每隔8个地址依次递增,并在所述从站的内部地址空间中引入索引。
上述数控IO总线控制系统通过数控模块与IO总线控制器直接通过PCI接口通讯,大大提高了通讯效率,便于大量数据的实时传输。PCI接口模块和总线控制模块在FPGA中通过硬件描述语言编程实现。FPGA结构灵活、速度快,能够有效提高数据处理和传输效率,并且方便后续的功能拓展。由于不需要像通用总线控制器一样考虑与多种设备兼容,因此,总线命令十分精简,大大提升了通讯效率。
具体实施方式
为了便于理解本发明,下面将参照相关附图对本发明进行更全面的描述。附图中给出了本发明的较佳的实施例。但是,本发明可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对本发明的公开内容的理解更加透彻全面。
需要说明的是,当元件被称为“固定于”另一个元件,它可以直接在另一个元件上或者也可以存在居中的元件。当一个元件被认为是“连接”另一个元件,它可以是直接连接到另一个元件或者可能同时存在居中元件。本文所使用的术语“垂直的”、“水平的”、“左”、“右”以及类似的表述只是为了说明的目的。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。
如图1所示,为数控IO总线控制系统的模块图。
请结合图2。
一种数控IO总线控制系统,包括数控模块101、IO总线控制器102及IO模块103。
所述IO总线控制器102通过PCI接口(PeripheralComponentInterconnect,外设部件互连标准)连接所述数控模块101,所述IO总线控制器102通过IO总线连接所述IO模块103。
所述IO总线控制器102包括依次连接的PCI接口模块201、总线控制模块202及总线接口模块203。
所述PCI接口模块201用于实现所述IO总线控制器102与所述PCI接口的通讯。
所述总线控制模块202用于对所述IO总线的命令进行处理及地址分配。
所述总线接口模块203用于实现所述IO总线控制器102与所述IO模块103的之间数据传输。
所述数控模块101通过所述PCI接口与所述IO总线控制器102进行数据交互,所述IO总线控制器102将所述PCI接口传输过来的数据和指令发送到IO总线上,并将所述IO总线上返回的数据传输给所述PCI接口模块201。
所述IO模块103为所述IO总线的从站,用于与所述IO总线控制器102进行通讯。
在本实施例中,数控模块101通过PCI机的PCI接口与IO总线控制器进行数据交互。IO总线控制器102将PCI机传输过来的数据好指令发送到IO总线上,并将IO总线上返回的数据传输给PCI接口模块201。由于IO模块103作为IO总线的从站与IO总线控制器102进行通讯。数控模块101与IO总线控制器102直接通过PCI接口通讯,大大地提高了通讯效率,便于大量数据的实时传输。
在本实施例中,PCI接口模块201与所述总线控制模块202采用FPGA的硬件描述语言编程实现。
请结合图3。
PCI接口模块包括数据输入输出模块301、配置模块302、状态机模块303及数据处理模块304;所述数据输入输出模块301同时连接所述配置模块302、所述状态机模块303及所述数据处理模块304。
所述数据输入输出模块301用于提取所述PCI接口上的输入数据,同时将要发送的数据输出到所述PCI接口上,并进行时序调度和管教分时复用处理。
所述配置模块302用于分配PCI地址空间。
所述状态机模块303用于处理PCI通讯过程。
所述数据处理模块303用于提取PCI接口上输入数据中的有效信息,并将所述有效信息发送给所述总线控制模块202;同时将所述总线控制模块返回的数据传输到PCI接口上。
状态机模块303还用于监控用户检测电压、温度及看门狗信号。
PCI接口模块201实现IO总线控制器102与PC机的PCI接口的通讯,总线控制模块202实现总线命令处理、地址分配。总线接口模块203实现IO总线控制器102与IO模块103的数据传输。
请结合图4。
在本实施例中,总线控制模块202包括总线命令处理模块401、所述地址分配模块402及所述数据传输模块403。
所述总线命令处理模块401用于读写存储模块中的总线命令;所述地址分配模块402用于将PCI地址空间划分为不同的段来定义存储模块。
所述数据传输模块403用于输出所述总线控制模块202发送的指令并将IO总线中的PCI数据读取到所述总线控制模块202中。
在本实施例中,总线命令模块401通过读写寄存器来实现总线命令控制。将PCI地址空间划分为不同的段来定义寄存器。如图5所示。每段地址对应不同的寄存器,通过寄存器的读写实现总线命令的处理。硬件配置用于实现通讯速率的选择、存储空间的大小等硬件信息的定义;IO总线控制器102用于对总线地址和数据的读写;状态监控用户检测电压、温度、看门狗等信号;RAM(Random-AccessMemory,随机存取存储器)用于数据的存储和读写。由于不需要像通用总线控制器一样考虑与多种设备兼容,因此IO总线控制器102发出的总线命令十分精简,大大提升了通讯效率。
PCI接口模块201和总线控制模块202在FPGA((Field-ProgrammableGateArray,现场可编程门阵列)中通过硬件描述语言编程实现。FPGA结构灵活、速度快,能够有效提高数据处理和传输效率,并且方便后续的功能拓展。
在本实施例中,存储模块包括寄存器及RAM存储器。
在本实施例中,每段地址对应不同的寄存器。
地址分配模块为每个从站分配地址,并对从站内部的地址空间进行定义。
从站的地址从00到FF之间每隔8个地址依次递增,并在所述从站的内部地址空间中引入索引。
具体的,地址分配模块一方面为每个从站分配地址,另一方面对从站内部地址空间进行定义。IO总线地址和数据都采用8bit的数据位数,这样可以保证地址、输入数据、输出数据在32位的PCI接口上同时传输,可以提高数据的传输效率和实时性。从站的地址从00到FF之间每隔8个地址依次递增,如图6所示。间隔的8个地址作为从站的内部地址空间使用,8个地址非常有限,无法进行复杂的逻辑控制,在从站的内部地址空间中引入索引,大大地提高了地址空间的使用率,如图7所示。
总线接口模块203主要控制IO总线数据的传输方式和时序,将PCI地址空间中IO总线控制寄存器的第一字节(bit0-7)定义为IO总线地址(C),第二字节(bit8-15)定义为IO总线输出数据(A),第三字节(bit16-23)定义为IO总线输入数据(B),如图8所示。往总线上写数据的时候,地址C默认为0,首选将数据写到A上,延迟1us以后再将目标地址写到C上,从站需要在地址C转换为0的过程中读取数据A;IO总线控制器102从总线上读数据的时候,地址C默认为0,首先将目标地址写到C上,从站识别地址后,将响应数据写在B上,这时总线控制器可以读取数据,完成之后地址C再次切换为0。
基于上述所有实施例,数控IO总线控制系统结构简单、速度快、使用方便、成本低;数控模块101与IO总线控制器102直接通过PCI接口通讯,大大地提高了通讯效率,便于大量数据的实时传输;
采用FPGA作为处理器,其结构灵活、速度快,能够有效提高数据处理和传输效率,并且方便后续的功能拓展;且总线命令十分精简,大大提升了通讯效率。
在从站的内部地址空间中引入索引,大大地提高了地址空间的使用率;自定义的数控IO总线控制系统专用IO总线,不需要购买通用总线控制器的IP核和ASIC芯片,降低了产品的成品。
基于上述所有实施例,PCI地址空间内寄存器地址的分配可根据用户需求灵活变动。
IO总线的地址和数据位数可以为其他数值,如16bit或是32bit;
从站的地址分配方式可以为顺序或逆序。
从站的地址空间的直接地址和索引地址分配方式可根据用户需求灵活变动。
上述数控IO总线控制系统通过数控模块101与IO总线控制器102直接通过PCI接口通讯,大大提高了通讯效率,便于大量数据的实时传输。PCI接口模块201和总线控制模块202在FPGA中通过硬件描述语言编程实现。FPGA结构灵活、速度快,能够有效提高数据处理和传输效率,并且方便后续的功能拓展。由于不需要像通用总线控制器一样考虑与多种设备兼容,因此,总线命令十分精简,大大提升了通讯效率。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。