本发明涉及通信,尤其涉及一种单根gpio模拟i2c设备进行通信的电路、方法和网络设备。
背景技术:
1、mcu(microcontroller unit,微控制单元)或通信芯片等芯片都会带有不同数量不同种类的外设接口,这些外设接口是用来和外设进行通信数据交换的,而接口又分为不同的接口类型,比如spi/uart/i2c/sdio/adc……这些接口都是通过gpio(general-purpose input/output,通用输入/输出接口)接口映射出来的,即芯片的gpio接口,只要芯片本身把这些硬件接口映射到一个支持模拟接口的gpio上,就可以随时映射为i2c、adc(analog to digital converter,数模转换)或者spi(serial peripheral interfac,串行外设)等接口。
2、有些mcu或通信芯片上,没有i2c硬件接口或硬件接口不够,导致只能用gpio来模拟i2c协议波形进行数据通信。现有技术中,在使用gpio模拟i2c协议时需要通过两根gpio线来模拟,一根gpio线用于模拟i2c的scl(i2c时钟信号),一根gpio线用于模拟sda(i2c数据信号线)。
3、然而,在一些情况下,设备上硬件资源不足,没有足够的gpio线能够使用,导致无法进行i2c通信。
技术实现思路
1、本发明提出了一种单根gpio模拟i2c设备进行通信的电路、方法和网络设备,以解决硬件资源不足时如何通过1根gpio线模拟i2c协议进行通信的问题。
2、为了解决上述技术问题,本发明是这样实现的:
3、第一方面,本发明实施例提供了一种i2c通信电路,所述电路包括:控制单元和分压单元;
4、所述控制单元分别与主i2c设备的scl接口、sda接口连接;
5、所述分压单元的第一端与从设备的gpio接口连接,所述分压单元的第二端与所述控制单元连接;
6、所述控制单元用于根据所述主i2c设备的scl接口、sda接口输出的信号控制所述分压单元的阻值大小,以调节所述从设备的gpio接口接收的电压信号。
7、可选的,所述分压单元包括:第一电阻、第二电阻和第三电阻;所述控制单元包括第一控制器和第二控制器;
8、所述第一控制器,包括控制极、第一极和第二极,所述第一控制器的控制极与主i2c设备的scl接口连接,所述第一控制器的第一极与所述第一电阻的第二端连接,所述第一控制器的第二极与所述第三电阻的第二端连接;
9、所述第二控制器,包括控制极、第一极和第二极,所述第二控制器的控制极与主i2c设备的sda接口连接,所述第二控制器的第一极与所述第二电阻的第二端连接,所述第二控制器的第二极与第三电阻的第二端连接;
10、所述第一电阻的第一端、所述第二电阻的第一端、所述第三电阻的第一端并联后与从设备的gpio接口连接。
11、可选的,所述i2c通信电路还包括模式调节单元,所述模式调节单元包括第三控制器:
12、所述第三控制器,包括控制极、第一极和第二极,所述第三控制器的控制极与从设备的gpio接口连接,所述第三控制器的第一极与主i2c设备的sda接口连接,所述第三控制器的第二极接地连接。
13、可选的,所述分压单元还包括第四电阻,所述第四电阻的第一端与第一电源连接,所述第四电阻的第二端与所述第一电阻、第二电阻以及第三电阻的第一端连接。
14、可选的,所述第一控制器、第二控制器和所述第三控制器均为mos管。
15、可选的,所述第一控制器、第二控制器和所述第三控制器都是pmos管,所述第一极为源极、所述第二极为漏极、所述控制极为栅极。
16、可选的,所述第三电阻的阻值<所述第一电阻的阻值<所述第二电阻的阻值。
17、第二方面,本发明实施例提供了一种i2c通信电路的通信方法,所述方法应用于从设备,所述从设备包括一个gpio接口,所述gpio接口如本发明实施例任一所述的电路连接,所述方法包括:
18、检测所述gpio接口的电压;
19、根据检测到的电压,与主设备进行数据传输。
20、可选的,所述根据检测到的电压,与主设备进行数据传输包括:
21、在模拟模式,当检测到所述gpio接口的电压为符合起始条件的电压时,确定需要从所述主设备进行数据接收;
22、根据检测到的所述gpio接口的电压获取对应的比特值;
23、当检测到所述gpio接口的电压为停止信号对应的电压时,确定数据传输结束。
24、可选的,当所述第一控制器、第二控制器是pmos管,所述第三电阻的阻值<所述第一电阻的阻值<所述第二电阻的阻值时:
25、所述当开始进行数据接收后,根据检测到的电压信号获取对应的比特值包括:
26、当所述gpio处检测到的电压为v4时,收到的比特值为1;
27、当所述gpio处检测到的电压为v3时,收到的比特值为0;
28、当所述gpio处检测到的电压低于v3时,一个比特的数据发送完成;
29、所述v4>v3。
30、可选的,所述i2c通信电路还包括:模式调节单元,所述模式调节单元包括第三控制器,所述第三控制器包括控制极、第一极和第二极,所述第三控制器的控制极与从设备的gpio接口连接,所述第三控制器的第一极与主i2c设备的sda接口连接,所述第三控制器的第二极接地连接;
31、所述方法还包括:每连续接收完预设比特的数据时将从设备的gpio接口切换为输出模式;
32、在输出模式下所述gpio接口通过所述第三控制器向所述主设备的sda接口发送应答信号;
33、所述应答信号发送完成后,所述从设备的gpio切换为模拟模式,继续进行数据接收,直到接收到所述停止信号。
34、第三方面,本发明实施例提供了一种网络设备,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序,所述程序被所述处理器执行时实现上述第二方面所述的i2c通信电路的通信方法的步骤。
35、第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述第二方面的i2c通信电路的通信方法的步骤。
36、本发明实施例提供的技术方案带来的有益效果至少包括:提供了一种i2c通信电路,所述电路包括:控制单元和分压单元;所述控制单元分别与主i2c设备的scl接口、sda接口连接;所述分压单元的第一端与从设备的gpio接口连接,所述分压单元的第二端与所述控制单元连接;所述控制单元用于根据所述主i2c设备的scl接口、sda接口输出的信号控制所述分压单元的阻值大小,以调节所述从设备的gpio接口接收的电压信号;通过上述电路能够实现通过单根gpio线模拟i2c从设备通信的技术效果。
1.一种i2c通信电路,其特征在于,包括:控制单元和分压单元;
2.根据权利要求1所述的i2c通信电路,其特征在于,所述分压单元包括:第一电阻、第二电阻和第三电阻;所述控制单元包括第一控制器和第二控制器;
3.根据权利要求1所述的i2c通信电路,其特征在于,所述i2c通信电路还包括模式调节单元,所述模式调节单元包括第三控制器:
4.根据权利要求2所述的i2c通信电路,其特征在于,所述分压单元还包括第四电阻,所述第四电阻的第一端与第一电源连接,所述第四电阻的第二端与所述第一电阻、第二电阻以及第三电阻的第一端连接。
5.根据权利要求3所述的i2c通信电路,其特征在于,所述第一控制器、第二控制器和所述第三控制器均为mos管。
6.根据权利要求5所述的i2c通信电路,其特征在于,所述第一控制器、第二控制器和所述第三控制器都是pmos管,所述第一极为源极、所述第二极为漏极、所述控制极为栅极。
7.根据权利要求2所述的i2c通信电路,其特征在于,所述第三电阻的阻值<所述第一电阻的阻值<所述第二电阻的阻值。
8.一种i2c通信电路的通信方法,其特征在于,所述方法应用于从设备,所述从设备包括一个gpio接口,所述gpio接口如权利要求1至7任一所述的电路连接,所述方法包括:
9.根据权利要求8所述的i2c通信电路的通信方法,其特征在于,所述根据检测到的电压,与主设备进行数据传输包括:
10.根据权利要求9所述的i2c通信电路的通信方法,其特征在于,当所述第一控制器、第二控制器是pmos管,所述第三电阻的阻值<所述第一电阻的阻值<所述第二电阻的阻值时:
11.根据权利要求9所述的i2c通信电路的通信方法,其特征在于,所述i2c通信电路还包括:模式调节单元,所述模式调节单元包括第三控制器,所述第三控制器包括控制极、第一极和第二极,所述第三控制器的控制极与从设备的gpio接口连接,所述第三控制器的第一极与主i2c设备的sda接口连接,所述第三控制器的第二极接地连接;
12.一种网络设备,其特征在于,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序,所述程序被所述处理器执行时实现如权利要求8至11中任一项所述的i2c通信电路的通信方法的步骤。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求8至11中任一项所述的i2c通信电路的通信方法的步骤。