本发明涉及一种数据通信系统。
背景技术:
:目前,集成电路(inter-integratedcircuit,i2c)总线用于连接微控制器以及外围设备,其中i2c总线通信在服务器应用上也越来越广泛。在现有技术中,会使用i2c驱动以实现对i2c总线的控制。然而,当总线上的i2c驱动芯片过多时将会导致i2c总线过载,如此也将影响i2c设备之间的通信。技术实现要素:有鉴于此,有必要提供一种数据通信系统。一种数据通信系统,所述系统包括:主设备;从设备;用于与所述主设备建立通信连接;及可编程逻辑器件,所述主设备通过所述可编程逻辑器件与所述从设备建立通信连接,所述可编程逻辑器件用于实时接收来自所述主设备及从设备的集成电路总线的scl信号与sda信号;所述可编程逻辑器件还用于实时地侦测所述主设备与从设备之间的集成电路总线的sda信号的电平变化状态,并根据所侦测到的sda信号的电平变化状态以确定当前sda信号的方向。进一步地,所述数据通信系统包括:多个从设备;所述可编程逻辑器件用于实现所述主设备从所述多个从设备中选通对应的从设备以建立通信连接。进一步地,所述可编程逻辑器件包括:选通模块,所述选通模块用于实现所述主设备从所述多个从设备中选通对应的从设备以建立通信连接。进一步地,所述可编程逻辑器件还包括:时钟延展单元,所述时钟延展单元用于支持所述从设备对集成电路总线的scl信号进行时钟延展。进一步地,所述可编程逻辑器件还包括:方向控制单元,所述方向控制单元用于通过侦测所述主设备与从设备之间的集成电路总线的sda信号的电平变化状态,以确定当前sda信号的方向。进一步地,当所述方向控制单元侦测到所述主设备的集成电路总线的sda信号先由高电平变为低电平时,所述方向控制单元将所述从设备的集成电路总线的sda信号拉低且维持低电平状态,所述当前sda信号的方向具体为:由主设备到从设备的方向。进一步地,当所述方向控制单元侦测到所述从设备的集成电路总线的sda信号先由高电平变为低电平时,所述方向控制单元将所述主设备的集成电路总线的sda信号拉低且维持低电平状态,所述当前sda信号的方向具体为:由从设备到主设备的方向。进一步地,所述可编程逻辑器件还包括:数据控制单元,所述数据控制单元用于根据所述方向控制单元所确定的sda信号方向,以选择sda信号方向。进一步地,当所述sda方向为所述主设备到所述从设备时,则所述主设备的数据信号引脚为输出,所述可编程逻辑器件的第一i/o管脚方向为输入;所述从设备的数据信号引脚为输入,所述可编程逻辑器件的第二i/o管脚方向为输出。进一步地,当所述sda方向为所述从设备到所述主设备时,则所述从设备的数据信号引脚为输出,所述可编程逻辑器件的第二i/o管脚方向为输入;所述主设备的数据信号引脚为输入,所述可编程逻辑器件的第一i/o管脚方向为输出。在上述数据通信系统中,通过所述时钟延展单元以支持所述从设备对scl信号进行延展,还通过所述方向控制单元及数据控制单元确定出当前sda信号的方向,以实现i2c总线的控制。如此不仅可以节省i2c总线驱动芯片与pcb空间,还可大大提高对i2c总线上数据传输的稳定性。附图说明图1为数据通信系统在一较佳实施例中的方框图。图2为图1中可编程逻辑器件连接于主设备与从设备之间的示意图。主要元件符号说明电子装置300数据通信系统100可编程逻辑器件10选通模块12通信模块13时钟延展单元14方向控制单元16数据控制单元18主设备20从设备30a、30b、30c如下具体实施方式将结合上述附图进一步说明本发明。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。为了可以使本发明的目的、技术方案及优点能够更加清楚明白,以下将会结通过合附图及实施方式,以对本发明中的数据通信系统作进一步详细的描述及相关说明。请参考图1及图2,一种数据通信系统100包括一可编程逻辑器件(complexprogrammablelogicdevice,cpld)10、一主设备20及多个从设备30a、30b、30c。在本实施方式中,从设备30a、30b及30c的个数以三个为例。所述主设备20通过所述可编程逻辑器件10与所述多个从设备30a、30b、30c建立通信连接。其中,所述主设备20通过所述可编程逻辑器件10可选择性地与所述多个从设备30a、30b及30c中的任意一个从设备建立通信连接。所述可编程逻辑器件10用于实时地接收来自所述主设备20及所述多个从设备30a、30b、30c的i2c总线的串行数据线(serialdataline,sda)信号与串行时钟线(serialclockline,scl)信号。所述主设备20的集成电路(inter-integratedcircuit,i2c)总线(scl_m,sda_m)经过可编程逻辑器件10的处理后,可与所述从设备30a、30b及30c的i2c总线(scl_s1,sda_s1)、(scl_s2,sda_s2)、(scl_s3,sda_s3)通信连接。所述可编程逻辑器件10还用于实时侦测所述主设备20与从设备30a、30b、30c之间的i2c总线的sda信号的电平变化状态,并根据所侦测到的sda信号的电平变化状态以确定当前sda信号的方向。在空闲状态下,主设备及从设备的i2c总线的sda信号均处于高电平状态。具体而言,当所述主设备20选通所述从设备30a为通信连接的对象时,所述可编程逻辑器件10将会实时接收所述主设备20及所述从设备30a的i2c总线的scl信号与sda信号。此时,所述可编程逻辑器件10还将会实时侦测主设备20与从设备30a之间的i2c总线的sda信号的电平变化状态,并对应地确定当前sda信号的方向。例如,当所述主设备20的i2c总线的sda信号先由高电平变为低电平时,所述可编程逻辑器件10将所述从设备30a的i2c总线的sda线拉低且维持低电平状态。此时,所述当前sda信号的方向具体为:由主设备20到从设备30a的方向。并且在此状态下,所述可编程逻辑器件10只会侦测主设备20的sda信号的电平变化状态。接着,当所述可编程逻辑器件10侦测到所述主设备的i2c总线的sda信号重新恢复为高电平状态时,所述可编程逻辑器件10将会释放所述从设备30a的i2c总线的sda信号线,所述从设备30a的i2c总线的sda信号变为高电平状态。此时,主设备20和从设备30a的sda信号均为高电平状态。所述当前sda信号的方向将不由所述可编程逻辑器件10控制,主设备20和从设备30a会自行按照i2c协议识别方向继续通信。并且在此状态下,所述可编程逻辑器件10可同时侦测主设备20和从设备30a的sda信号的电平变化状态。当所述从设备30a的i2c总线的sda信号先由高电平变为低电平时,所述可编程逻辑器件10将所述主设备20的i2c总线的sda信号线拉低且维持低电平状态。此时,所述当前sda信号的方向具体为:由从设备30a到主设备20的方向。并且在此种状态下,所述可编程逻辑器件10只会侦测从设备30a的sda信号的电平变化状态。接着,当所述可编程逻辑器件10侦测到所述从设备30a的i2c总线的sda信号重新恢复为高电平状态时,所述可编程逻辑器件10将会释放所述主设备20的i2c总线的sda信号线,所述主设备20的i2c总线的sda信号变为高电平状态。此时,主设备20和从设备30a的sda信号均为高电平状态。所述当前sda信号的方向将不由所述可编程逻辑器件10控制,主设备20和从设备30a会自行按照i2c协议识别方向继续通信。并且在此状态下,所述可编程逻辑器件10可同时侦测主设备20和从设备30a的sda信号的电平变化状态。在一较佳实施方式中,所述可编程逻辑器件10可进一步地包括一选通模块12。其中,所述选通模块12用于实现所述主设备20从所述多个从设备中选通对应的从设备30a、30b、30c中的一个从设备建立通信连接。举例来说,所述主设备20可以通过所述选通模块12以对应选择与所述从设备30a建立通信连接,所述主设备20也可以通过所述选通模块12以选择与所述从设备30b建立通信连接,所述主设备20还可以通过所述选通模块12以选择与所述从设备30b建立通信连接。在一较佳实施方式中,所述可编程逻辑器件10还包括一通信模块13。所述通信模块13可包括一时钟延展单元14,所述时钟延展单元14用于支持所述从设备30a、30b及30c对i2c总线scl信号进行时钟延展。具体而言,当所述主设备20要向从设备(如从设备30a)传输数据且所述从设备30a还没准备好时,所述从设备30a会将scl信号线拉低且维持低电平状态以发出暂停传输的请求。同时,所述时钟延展单元14还可侦测到所述从设备30a已将scl信号线拉低,所述时钟延展单元14已得知所述从设备30a的时钟延展请求,并且将所述主设备20的i2c总线的scl信号线也拉低且维持低电平状态。在此过程中,所述时钟延展单元14将会实时地侦测所述从设备30a的scl信号线的电平变化状态。若所述时钟延展单元14侦测到所述从设备30a的scl信号线为低电平状态,则继续将所述主设备20的scl信号线拉低且维持低电平状态。此时,所述主设备20与所述从设备30a之间暂停数据传输。若所述时钟延展单元14侦测到所述从设备30a的scl信号线变为高电平状态时,即表示所述从设备30a已将scl信号线释放,则释放所述主设备20的scl信号线。此时,所述主设备20可以继续与所述从设备30a进行数据传输。在一较佳实施方式中,所述通信模块13可还可进一步包括一方向控制单元16。所述方向控制单元16用于通过侦测所述主设备20与从设备30a、30b及30c之间的i2c总线的sda信号的电平变化状态,以确定当前sda信号的方向。举例而言,当所述主设备20通过所述选通模块12以选择与所述从设备30b建立通信连接。此时,所述方向控制单元16将会实时地侦测所述主设备20与从设备30b的i2c总线的sda信号的电平变化状态。当所述方向控制单元16先侦测到所述主设备20的i2c总线的sda信号由高电平变为低电平时,所述方向控制单元16得知所述主设备20的数据传输请求,所述方向控制单元16将所述从设备30b的sda信号线拉低且维持低电平状态。如此一来,所述当前sda信号的方向具体为:由主设备20到从设备30b的方向。并且在此状态下,所述方向控制单元16只会侦测主设备20的sda信号的电平变化状态。接着,当所述方向控制单元16侦测到所述主设备的i2c总线的sda信号重新恢复为高电平状态时,所述方向控制单元16将会释放所述从设备30a的i2c总线的sda信号线,所述从设备30a的i2c总线的sda信号变为高电平状态。此时,所述主设备20和所述从设备30a的sda信号均为高电平状态。所述当前sda信号的方向将不由所述方向控制单元16控制,所述主设备20和从设备30a会自行按照i2c协议识别方向继续通信。并且在此状态下,所述方向控制单元16可同时侦测主设备20和从设备30a的sda信号的电平变化状态。当所述方向控制单元16先侦测到所述从设备30b的i2c总线的sda信号由高电平变为低电平时,所述方向控制单元16得知所述主设备20的数据传输请求,所述方向控制单元16将所述主设备20的i2c总线的sda信号线拉低且维持低电平状态。如此一来,所述当前sda信号的方向具体为:由从设备30b到主设备20的方向。并且在此状态下,所述方向控制单元16只会侦测从设备30a的sda信号的电平变化状态。接着,当所述方向控制单元16侦测到所述从设备30a的i2c总线的sda信号重新恢复为高电平状态时,所述方向控制单元16将会释放所述主设备20的i2c总线的sda信号线,所述主设备20的i2c总线的sda信号变为高电平状态。此时,主设备20和从设备30a的sda信号均为高电平状态。所述当前sda信号的方向将不由所述方向控制单元16控制,所述主设备20和从设备30a会自行按照i2c协议识别方向继续通信。并且在此状态下,所述方向控制单元16可同时侦测主设备20和从设备30a的sda信号的电平变化状态。在一较佳实施方式中,所述通信模块13可还可进一步包括一数据控制单元18。所述数据控制单元18用于根据所述方向控制单元16所确定的sda信号方向,以选择sda信号方向。例如,当数据传输方向为所述主设备20到所述从设备30b时,则所述主设备20的sda_m为输出,所述可编程逻辑器件10的i/o管脚方向为输入。所述从设备30b的sda_s2为输入,所述可编程逻辑器件10的i/o管脚方向为输出。当数据传输方向为所述从设备30b到所述主设备20时,则所述从设备30b的sda_s2为输出,所述可编程逻辑器件10的i/o管脚方向为输入。此时,所述主设备20的sda_m为输入,所述可编程逻辑器件10的i/o管脚方向为输出。以此类推,若所述主设备20通过所述选通模块12选择与所述从设备30c建立通信连接,所述方向控制单元16同理可确定当前sda信号的方向,所述数据控制单元18可选择sda信号方向。如此,通过上述数据通信系统100,通过所述选通模块12即可实现所述主设备20与任意一个从设备之间的通信连接。并且,所述时钟延展单元14支持从设备从设备对i2c总线的scl信号进行时钟延展,以保证数据传输的稳定性。此外,通过所述方向控制单元16及数据控制单元18可确定出当前sda信号的方向,以实现i2c总线的控制。如此不仅可以节省i2c总线驱动芯片与pcb空间,还可大大提高对i2c总线上数据传输的稳定性。最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明。本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。并且,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都将属于本发明保护的范围。当前第1页1 2 3