一种控制系统和可编程逻辑器件的通信方法与流程

文档序号:14950603发布日期:2018-07-17 22:27阅读:121来源:国知局

本发明涉及数字电子系统领域,特别涉及一种控制系统和可编程逻辑器件的通信方法。



背景技术:

控制系统广泛应用于数字电子系统中,一般均包括处理器和可编程逻辑器件。

在现有控制系统中,处理器采用并行的localbus总线与可编程逻辑器件进行通信。localbus总线包括数据线、地址线和控制线,是一种信号线数量较多的总线,不仅会占用处理器和可编程逻辑器件较多的i/o资源,而且也给跨单板远距离走线带来困难,甚至于,在走线较为复杂的情况下,影响总线信号质量。另外,现有控制系统在挂载多个可编程逻辑器件的时候,需要系统软件预先为每个可编程逻辑器件分配彼此不重复的地址空间,可移植性和可扩展性较差。

因此,如何减少总线占用的i/o资源和降低跨单板远距离走线的难度是本领域技术人员目前需要解决的技术问题。



技术实现要素:

本发明的目的是提供一种控制系统和可编程逻辑器件的通信方法,能够减少总线占用的i/o资源和降低跨单板远距离走线的难度。

为了解决上述技术问题,本发明提供的一种控制系统,包括控制系统本体,所述控制系统本体包括处理器和可编程逻辑器件,所述处理器内置有i2c控制器,且采用i2c总线与所述可编程逻辑器件连接。

优选地,所述可编程逻辑器件具体为cpld。

优选地,所述cpld设置有256个8位寄存器。

优选地,所述可编程逻辑器件具体为fpga。

为了解决上述技术问题,本发明还提供的一种可编程逻辑器件的通信方法,基于上述任一种控制系统,包括:

处理器利用i2c控制器通过i2c总线发送携带有目标地址的访问请求;

可编程逻辑器件识别所述目标地址,并与自身的从设备地址进行比对;

所述从设备地址与所述目标地址相同的可编程逻辑器件响应所述访问请求;

其中,所述从设备地址是预先为所述可编程逻辑器件设置的。

优选地,预先为所述可编程逻辑器件设置所述从设备地址具体包括:

读取所述可编程逻辑器件指定外部引脚的当前配置状态;

依据预设的配置状态与从设备地址的对应关系确定与所述当前配置状态对应的当前从设备地址;

将所述当前从设备地址设置为所述可编程逻辑器件的从设备地址。

优选地,所述访问请求具体包括读请求和写请求。

优选地,所述可编程逻辑器件响应所述读请求具体为:

所述可编程逻辑器件通过i2c总线向所述处理器发送目标寄存器中的数据;

其中,所述目标寄存器为自身地址与所述读请求中的目标寄存器地址相同的寄存器。

优选地,所述可编程逻辑器件响应所述写请求具体为:

所述可编程逻辑器件接收所述处理器通过所述i2c总线发送的数据,并将所述数据写入目标寄存器;

其中,所述目标寄存器为自身地址与所述写请求中的目标寄存器地址相同的寄存器。

本发明提供的控制系统中的处理器和可编程逻辑器件采用i2c总线进行通信,i2c总线只有两根信号线,分别是串行数据线和串行时钟线,信号线的数量较少,相比于具有三种信号线的总线而言,能够减少对处理器和可编程逻辑器件的i/o资源的占用,可以降低跨单板走线的难度。而且,i2c总线基于时钟同步通信,每个连接到i2c总线的可编程逻辑器件均可接收处理器通过i2c总线给自身发送的数据,也可以通过i2c总线向处理器发送数据,控制方式较为简单。当控制系统挂载多个可编程逻辑器件的时候,系统软件无需为每个可编程逻辑器件分配彼此不重复的地址空间,可移植性和可扩展性均可进一步提高。此外,本发明还提供了一种可编程逻辑器件的通信方法,效果如上。

附图说明

为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。

图1为本发明实施例提供的一种控制系统的结构示意图;

图2为本发明实施例提供的一种可编程逻辑器件的通信方法的流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动的前提下,所获得的所有其他实施例,都属于本发明保护范围。

本发明的目的是提供一种控制系统和可编程逻辑器件的通信方法,能够减少总线占用的i/o资源和降低跨单板远距离走线的难度。

为了使本领域的技术人员更好的理解本发明技术方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。

图1为本发明实施例提供的一种控制系统的结构示意图。如图1所示,本实施例提供的控制系统包括控制系统本体1,控制系统本体1包括处理器11和可编程逻辑器件12,处理器11内置有i2c控制器111,且采用i2c总线13与可编程逻辑器件12连接。

i2c总线13是两线式串行总线,基于时钟同步通信,由于其信号线的数量较少,所以,在应用时,其占用的i/o资源较少,而且,相比于三线式的总线而言,其控制方式更为简单,布线难度更低。

内置在处理器11中的i2c控制器111是操作i2c总线13的主设备,通过i2c总线13与处理器11连接的可编程逻辑器件12为挂载在主设备上的从设备。当然,可以理解的是,作为从设备的可编程逻辑器件12预先植入有i2c从设备逻辑。i2c从设备逻辑是指预先植入可编程逻辑器件12中,可以控制可编程逻辑器件12基于i2c的通信协议与处理器11基于时钟同步通信。也就是说,预先植入有i2c从设备逻辑的可编程逻辑器件12具有唯一地从设备地址,基于时钟信号,可以识别出处理器11发送目标地址是否与自身的从设备地址相同,且如果识别出处理器11发送目标地址与自身的从设备地址相同,则会响应处理器11。其中,目标地址是指处理器11访问的可编程逻辑器件12的从设备地址。由此可见,当处理器11下挂载有多个可编程逻辑器件12时,处理器11可以通过每个可编程逻辑器件12唯一的从设备地址对各可编程逻辑器件12进行独立访问,相对于现有技术而言,应用i2c总线进行通信,无需为可编程逻辑器件12分配不重复地地址空间,更加容易实现,可扩展性和移植性也更好。

在具体应用中,可以预先设置可编程逻辑器件12的从设备地址,例如,可以是将从设备地址预先固化在可编程逻辑器件12中,也可以是预先向可编程逻辑器件12植入从设备地址的设置逻辑,以使用户可以通过自主配置可编程逻辑器件12的外部引脚来设置可编程逻辑器件12的从设备地址。当处理器11需要访问可编程逻辑器件12时,可以利用i2c控制器111向i2c总线发送携带有目标地址的访问请求,基于i2c从设备逻辑,各可编程逻辑器件12均会识别i2c总线13上传输的目标地址是否与自身的从设备地址相同,如果相同,则对应的可编程逻辑器件12就会响应该访问请求。

具体地,如果处理器11发出的访问请求为读请求,则该读请求中包含有目标寄存器的地址,可编程逻辑器件12在确认自身的从设备地址与目标地址一致之后,会接收i2c总线13上的目标寄存器的地址,并确定该读请求为仅读取单个寄存器中数据的随机读请求,还是连续读多个寄存器中数据的连续读请求。如果该请求为随机读请求,则可编程逻辑器件12会将地址与目标寄存器的地址一致的寄存器中存储的数据通过i2c总线13发送至处理器11;而如果该请求为连续读请求,则可编程逻辑器件12会从地址与目标寄存器的地址一致的寄存器开始,按照预定的逻辑,逐个发送各寄存器中存储的数据,直到接收到处理器11发送的停止读信号。在实际应用中,处理器11与可编程逻辑器件12之间仅需要支持随机读请求即可,所以,为了使处理器11与可编程逻辑器件12之间的通信更为简单可靠,优选地,可以简化处理11与可编程逻辑器件12之间的通信协议,使得处理器11每次只能访问一个寄存器,即令可编程逻辑器件12仅响应随机读请求即可。

同理,如果处理器11发出的访问请求为写请求,则该写请求中包含有目标寄存器的地址,可编程逻辑器件12在确认自身的从设备地址与目标地址一致之后,会接收i2c总线13上的目标寄存器的地址和数据,并确定该写请求为仅写单个寄存器中数据的随机写请求,还是连续写多个寄存器中数据的连续写请求。如果该请求为随机写请求,则可编程逻辑器件12会将接收到的数据写入地址与目标寄存器的地址一致的寄存器中;而如果该请求为连续写请求,则可编程逻辑器件12会从地址与目标寄存器的地址一致的寄存器开始,将接收到的数据按顺序写入多个寄存器中,直到将接收到的所有数据均写入寄存器为止。其中,目标寄存器为自身地址与访问请求中的目标寄存器地址相同的寄存器。在实际应用中,处理器11与可编程逻辑器件12之间仅需要支持随机写请求即可,所以,为了使处理器11与可编程逻辑器件12之间的通信更为简单可靠,优选地,可以简化处理11与可编程逻辑器件12之间的通信协议,使得处理器11每次只能访问一个寄存器,即令可编程逻辑器件12仅响应随机写请求即可。

综上所述,本实施例提供的控制系统中的处理器和可编程逻辑器件采用i2c总线进行通信,i2c总线只有两根信号线,分别是串行数据线和串行时钟线,信号线的数量较少,相比于具有三种信号线的总线而言,能够减少对处理器和可编程逻辑器件的i/o资源的占用,可以降低跨单板走线的难度。而且,i2c总线基于时钟同步通信,每个连接到i2c总线的可编程逻辑器件均可接收处理器通过i2c总线给自身发送的数据,也可以通过i2c总线向处理器发送数据,控制方式较为简单。当控制系统挂载多个可编程逻辑器件的时候,系统软件无需为每个可编程逻辑器件分配彼此不重复的地址空间,可移植性和可扩展性均可进一步提高。

为了实现控制系统的灵活可配置协议算法,并提供扩展i/o控制,基于上述实施例,作为一种优选的实施方式,可编程逻辑器件12具体为cpld。并且,优选地,为了满足单板的功能需求,cpld设置有256个8位寄存器。当然,可以理解的是,在实际应用中,依据实际使用情况,还可为cpld设置更多或更少的寄存器,本发明不做限定。

基于上述实施例,作为一种优选的实施方式,可编程逻辑器件12具体为fpga。

本发明还提供了一种基于上述任一种控制系统的可编程逻辑器件的通信方法,由于可编程逻辑器件的通信方法部分的实施例与控制系统部分的实施例相互照应,因此可编程逻辑器件的通信方法部分的实施例可以参见控制系统部分的实施例的描述,对于相同之处,本发明不再赘述。

图2为本发明实施例提供的一种可编程逻辑器件的通信方法的流程图。本实施例提供的可编程逻辑器件的通信方法基于上述任一种控制系统,如图2所示,本可编程逻辑器件的通信方法包括:

s20:处理器利用i2c控制器通过i2c总线发送携带有目标地址的访问请求。

s21:可编程逻辑器件识别目标地址,并与自身的从设备地址进行比对。

s22:从设备地址与目标地址相同的可编程逻辑器件响应访问请求。

其中,从设备地址是预先为可编程逻辑器件设置的。

本实施例提供的可编程逻辑器件的通信方法,处理器和可编程逻辑器件采用i2c总线进行通信,i2c总线只有两根信号线,分别是串行数据线和串行时钟线,信号线的数量较少,相比于具有三种信号线的总线而言,能够减少对处理器和可编程逻辑器件的i/o资源的占用,可以降低跨单板走线的难度。而且,i2c总线基于时钟同步通信,每个连接到i2c总线的可编程逻辑器件均可接收处理器通过i2c总线给自身发送的数据,也可以通过i2c总线向处理器发送数据,控制方式较为简单。当控制系统挂载多个可编程逻辑器件的时候,系统软件无需为每个可编程逻辑器件分配彼此不重复的地址空间,可移植性和可扩展性均可进一步提高。

为了提高本通信方法的灵活性,基于上述通信方法的实施例,作为一种优选的实施方式,预先为可编程逻辑器件设置从设备地址具体包括:读取可编程逻辑器件指定外部引脚的当前配置状态;依据预设的配置状态与从设备地址的对应关系确定与当前配置状态对应的当前从设备地址;将当前从设备地址设置为可编程逻辑器件的从设备地址。其中,指定外部引脚是在向可编程逻辑器件植入程序的时候指定的外部引脚,用户可以通过指定的外部引脚来设置可编程逻辑器件的从设备地址,能够提高本通信方法的灵活性。

基于上述通信方法的实施例,作为一种优选的实施方式,访问请求具体包括读请求和写请求。

为了使本通信方法更加简单可靠,基于上述通信方法的实施例,作为一种优选的实施方式,可编程逻辑器件响应读请求具体为:可编程逻辑器件通过i2c总线向处理器发送目标寄存器中的数据;其中,目标寄存器为自身地址与读请求中的目标寄存器地址相同的寄存器。也就是说,应用本优选的实施方式,可编程逻辑器件只响应处理器的随机读请求。如此,可以简化可编程逻辑器件中植入的i2c从设备逻辑,使得本通信方法更加简单可靠。

同理,为了使本通信方法更加简单可靠,基于上述通信方法的实施例,作为一种优选的实施方式,可编程逻辑器件响应写请求具体为:可编程逻辑器件接收处理器通过i2c总线发送的数据,并将数据写入目标寄存器;其中,目标寄存器为自身地址与写请求中的目标寄存器地址相同的寄存器。也就是说,应用本优选的实施方式,可编程逻辑器件只响应处理器的随机写请求。如此,可以简化可编程逻辑器件中植入的i2c从设备逻辑,使得本通信方法更加简单可靠。

以上对本发明所提供的一种控制系统和可编程逻辑器件的通信方法进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明都是与其它实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

还需要说明的是,在本说明书中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或者操作区分开来,而不一定要求或者暗示这些实体或者操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何变体意在涵盖非排他性的包含,从而使得包括一系列的要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其它要素,或者还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1