CN110795369A - 基于gpio管脚实现mido从机功能的方法及终端 - Google Patents

基于gpio管脚实现mido从机功能的方法及终端 Download PDF

Info

Publication number
CN110795369A
CN110795369A CN201910887579.0A CN201910887579A CN110795369A CN 110795369 A CN110795369 A CN 110795369A CN 201910887579 A CN201910887579 A CN 201910887579A CN 110795369 A CN110795369 A CN 110795369A
Authority
CN
China
Prior art keywords
slave
mido
host mcu
implementing
bit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201910887579.0A
Other languages
English (en)
Other versions
CN110795369B (zh
Inventor
杨超
吴闽华
孟庆晓
梁栋
戴瑜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Genew Technologies Co Ltd
Original Assignee
Shenzhen Genew Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Genew Technologies Co Ltd filed Critical Shenzhen Genew Technologies Co Ltd
Priority to CN201910887579.0A priority Critical patent/CN110795369B/zh
Publication of CN110795369A publication Critical patent/CN110795369A/zh
Application granted granted Critical
Publication of CN110795369B publication Critical patent/CN110795369B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Information Transfer Systems (AREA)
  • Microcomputers (AREA)
  • Electrotherapy Devices (AREA)

Abstract

本发明公开了基于GPIO管脚实现MIDO从机功能的方法及终端,所述方法包括:设置GPIO1为时钟信号,并设置GPIO2为数据信号;主机MCU发送所述时钟信号给从机CPU,所述数据信号在所述主机MCU和所述从机CPU之间进行双线传递;当所述主机MCU读取所述从机CPU的数据时,所述数据信号由所述从机CPU控制,当所述主机MCU写所述从机CPU的数据时,所述数据信号由所述主机MCU控制。本发明通过GPIO管脚,实现了MIDO从机功能,可以被MDIO主机访问。

Description

基于GPIO管脚实现MIDO从机功能的方法及终端
技术领域
本发明涉及计算机应用技术领域,尤其涉及一种基于GPIO管脚实现MIDO从机功能的方法、终端及存储介质。
背景技术
MDIO(Management Data Input/Output)接口是一种非常简单,只有两根线的串行接口,一般用于连接网口的物理层芯片。MDIO也分为主设备和从设备,主设备发起MDIO时序,从设备接收MDIO时序,并作出一定反应。大部分带网口的CPU都支持MDIO主机功能,同时也可以用GPIO(通用输入输出端口的简称,简单来说就是STM32可控制的引脚,STM32芯片的GPIO引脚与外部设备连接起来,从而实现与外部通讯、控制以及数据采集的功能)来模拟MIDO时序,由软件实现MDIO协议。用GPIO实现MDIO主机模式的驱动非常简单成熟,用的也非常之多。
如果要在当前通用CPU上,实现MDIO从机功能,被MDIO主机访问,那一般需要硬件支持,或者用CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件)去实现协议,用软件实现MIDO从机功能比较困难。
因此,现有技术还有待于改进和发展。
发明内容
本发明的主要目的在于提供一种基于GPIO管脚实现MIDO从机功能的方法、终端及存储介质,旨在解决现有技术中无法通过软件实现MIDO从机功能的问题。
为实现上述目的,本发明提供一种基于GPIO管脚实现MIDO从机功能的方法,所述基于GPIO管脚实现MIDO从机功能的方法包括如下步骤:
设置GPIO1为时钟信号,并设置GPIO2为数据信号;
主机MCU发送所述时钟信号给从机CPU,所述数据信号在所述主机MCU和所述从机CPU之间进行双线传递;
当所述主机MCU读取所述从机CPU的数据时,所述数据信号由所述从机CPU控制,当所述主机MCU写所述从机CPU的数据时,所述数据信号由所述主机MCU控制。
可选地,所述的基于GPIO管脚实现MIDO从机功能的方法,其中,所述基于GPIO管脚实现MIDO从机功能的方法还包括:
当所述主机MCU将所述时钟信号拉高为高电平后,所述从机CPU通过GPIO1发出中断,所述从机CPU进入中断处理程序,在中断处理程序中读取GPIO2的MDIO管脚的电平高低并保存。
可选地,所述的基于GPIO管脚实现MIDO从机功能的方法,其中,所述设置GPIO1为时钟信号,并设置GPIO2为数据信号,之前还包括:
设置GPIO1为输入功能,设置GPIO2为输入输出功能,设置GPIO1为边缘中断属性;
挂载GPIO1中断处理函数;
接收比特个数为0,发送比特个数为0;
使能GPIO1中断,设置MDIO设备地址为0x08。
可选地,所述的基于GPIO管脚实现MIDO从机功能的方法,其中,所述中断处理函数用于处理所述主机MCU发来的读写请求;
当所述主机MCU写所述从机CPU时,则在,所述中断处理函数中读取所述时钟信号的电平高低,每次中断读取一个比特,并且按照协议PHY地址读取5比特为设备地址和5比特寄存器内部地址。
可选地,所述的基于GPIO管脚实现MIDO从机功能的方法,其中,预先定义两个状态,分别为空闲状态和忙状态;
所述空闲状态表示当前没有任何请求,总线为空,等待32个同步帧;
所述忙状态表示当前状态已经进入MIDO时序中。
可选地,所述的基于GPIO管脚实现MIDO从机功能的方法,其中,所述基于GPIO管脚实现MIDO从机功能的方法还包括:
当进入所述中断处理函数的入口时,判断当前状态是否为空闲状态;
当处于空闲状态时,读取GPIO2电平到接收缓冲,并接收比特数,判断所述比特数是否为46;
当是时,判断是否有32个比特的同步帧、2个开始比特、2个操作码和2个比特读写位,当任意一个为否时,则整个状态机进入空闲状态,当为是时,则进入忙状态,并接收比特长度为0,发送比特长度为0。
可选地,所述的基于GPIO管脚实现MIDO从机功能的方法,其中,所述判断当前状态是否为空闲状态,之后还包括:
当不处于空闲状态时,进入读操作或者写操作;
所述读操作为:将A地址的寄存器值按比特写入GPIO2,发送比特长度加1,最终状态进入空闲状态,并接收比特长度为0;
所述写操作为:读取GPIO2高低电平值到接收缓冲,接收比特数加1,将接收缓冲16比特数据写入寄存器地址A,最终状态进入空闲状态,并接收比特长度为0。
此外,为实现上述目的,本发明还提供一种基于GPIO管脚实现MIDO从机功能的***,其中,所述***包括:主机MCU和从机CPU;
所述主机MCU发送所述时钟信号给所述从机CPU,所述数据信号在所述主机MCU和所述从机CPU之间进行双线传递;当所述主机MCU读取所述从机CPU的数据时,所述数据信号由所述从机CPU控制,当所述主机MCU写所述从机CPU的数据时,所述数据信号由所述主机MCU控制。
此外,为实现上述目的,本发明还提供一种终端,其中,所述终端包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的基于GPIO管脚实现MIDO从机功能的程序,所述基于GPIO管脚实现MIDO从机功能的程序被所述处理器执行时实现如上所述的基于GPIO管脚实现MIDO从机功能的方法的步骤。
此外,为实现上述目的,本发明还提供一种存储介质,其中,所述存储介质存储有基于GPIO管脚实现MIDO从机功能的程序,所述基于GPIO管脚实现MIDO从机功能的程序被处理器执行时实现如上所述的基于GPIO管脚实现MIDO从机功能的方法的步骤。
本发明通过设置GPIO1为时钟信号,并设置GPIO2为数据信号;主机MCU发送所述时钟信号给从机CPU,所述数据信号在所述主机MCU和所述从机CPU之间进行双线传递;当所述主机MCU读取所述从机CPU的数据时,所述数据信号由所述从机CPU控制,当所述主机MCU写所述从机CPU的数据时,所述数据信号由所述主机MCU控制。本发明通过GPIO管脚,实现了MIDO从机功能,可以被MDIO主机访问。
附图说明
图1是本发明基于GPIO管脚实现MIDO从机功能的方法的较佳实施例的流程图;
图2是本发明基于GPIO管脚实现MIDO从机功能的***的较佳实施例的功能原理图;
图3是本发明基于GPIO管脚实现MIDO从机功能的方法中初始化阶段的流程示意图;
图4是本发明基于GPIO管脚实现MIDO从机功能的方法中状态判断及执行过程的示意图;
图5为本发明终端的较佳实施例的运行环境示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明较佳实施例所述的基于GPIO管脚实现MIDO从机功能的方法,如图1和图2所示,所述基于GPIO管脚实现MIDO从机功能的方法包括以下步骤:
步骤S10、设置GPIO1为时钟信号(MDC信号),并设置GPIO2为数据信号(MDIO信号);
步骤S20、主机MCU发送所述时钟信号给从机CPU,所述数据信号在所述主机MCU和所述从机CPU之间进行双线传递;
步骤S30、当所述主机MCU读取所述从机CPU的数据时,所述数据信号由所述从机CPU控制,当所述主机MCU写所述从机CPU的数据时,所述数据信号由所述主机MCU控制。
进一步地,选定MDC的GPIO1管脚能支持向所述从机CPU发送中断,中断类型可以设置为边缘出发;一旦所述主机MCU将MDC拉高变为有效后,所述从机CPU的GPIO1向CPU发出中断,所述从机CPU进入中断处理程序,然后在中断处理程序中读取GPIO2 MDIO管脚的电平高低,高电平代表数据1,低电平代表数据0;读到的每个比特保存到变量中,按照MDIO协议的时序要求,进行相应的处理。
如下表(MDIO接口的数据帧结构)所示,MDIO协议格式如下:
Figure BDA0002207787500000061
其中,各域的具体含义如下:
PRE:帧同步码,在此状态MAC会驱动MDIO向PHY器件送出32个连续的“1”,用于器件的同步通信,但该领域不是必须的,为了提高效率,有些PHY器件的MDIO操作就没有此域,
ST:帧开始标志,MAC输出“01”比特通知PHY表示帧操作开始。
OP:帧操作码,比特“01”表示此帧为一次写操作请求,比特“10”表示此帧为一次读操作请求。
PHY AD:PHY器件地址,为5比特位宽,每个PHY器件都把自己的地址与这5个比特进行比较,若匹配则响应后面的操作,若不匹配则忽略掉后面的操作,5个比特决定了一个MDIO接口最多只能支持32个PHY芯片的配置。
REG AD:PHY寄存器地址,为5比特位宽;用来选择PHY芯片内部的32个寄存器中的某个寄存器的地址,PHY为物理层接口,每一个PHY接***有32个16位的寄存器,其中前16个寄存器(对应地址为5'b00000到5'b11111)为802.3协议所规定的必须具有的寄存器,后面16个寄存器为可由厂家指定功能的寄存器。一般情况下不同的PHY芯片的前16个寄存器的内容应该一致。
TA:状态转换域,共2比特。若为读操作,则第1比特由MDIO模块送出高阻态,第2比特是由PHY芯片给MDIO信号置“0”。若为写操作,则MDIO信号由MDIO模块来进行控制,连续输出“10”两个比特。
DATA:帧的寄存器数据域,共16比特。若为读操作,则为PHY送到MDIO模块的串行数据,若为写操作,则为MDIO模块送到PHY的串行数据。
IDLE:帧结束后的空闲状态。此时MDIO无源驱动,处于高阻状态,但一般用上拉电阻使其处在高电平。
进一步地,本发明的基于GPIO管脚实现MIDO从机功能的方法的整个过程分为初始化阶段,读操作,写操作三个部分。其中,初始化流程如图3所示,具体为:
S1:设置GPIO1为输入功能;
S2:设置GPIO2为输入输出功能;
S3:设置GPIO1为边缘中断属性;
S4:挂载GPIO1中断处理函数gpio1_irs();
S5:接收比特个数为0,发送比特个数为0;
S6:使能GPIO1中断;
S7:设置MDIO设备地址为0x08。
其中,核心部分是中断处理函数gpio1_irs(),其用于处理所述主机MCU发来的读写请求,如果是所述主机MCU要写所述从机CPU,则在gpio1_irs()中读取MDC的电平高低,每次中断读取一个bit(比特,比特是表示信息的最小单位,是二进制数的一位包含的信息或2个选项中特别指定1个的需要信息量),并且按照协议PHY地址读取5比特为设备地址,接着是5比特寄存器内部地址。
进一步地,如图4所示,预先定义两个状态,分别为空闲状态和忙状态;所述空闲状态表示当前没有任何请求,总线为空,等待32个同步帧;所述忙状态表示当前状态已经进入MIDO时序中。
具体地,当进入所述中断处理函数gpio1_irs()的入口时,判断当前状态是否为空闲状态(N表示否,另外一种情况则表示是),当处于空闲状态时,读取GPIO2电平到接收缓冲,并接收比特数L=L+1,判断所述比特数是否为46,当否时,进入gpio1_irs()的出口,当是时,判断是否比特[0-31]==全1,比特[32-33]==0b01,当否时,则控制当前状态继续处于空闲状态,并接收比特长度=0,发送比特长度=0,当是时,则判断是否比特[36-41]=设备地址0x08,当否时,则控制当前状态继续处于空闲状态,并接收比特长度=0,发送比特长度=0,当是时,寄存器地址A=比特[42-46],操作码O=比特[34-35],将当前状态控制为忙状态,接收比特长度=0,发送比特长度=0,并判断是否操作码==01;且一开始判断后,当不处于空闲状态时,同样进入判断是否操作码==01;当是时进入写操作,当否时进入读操作;写操作:读取GPIO2高低电平值到接收缓冲,接收比特数加1,判断是否接收比特数L==16,当否时,进入gpio1_irs()的出口,当是时,将接收缓冲16比特数据写入寄存器地址A,最终状态进入空闲状态,并接收比特长度为0,再进入gpio1_irs()的出口;读操作:将A地址的寄存器值按比特写入GPIO2,发送比特长度加1,判断是否发送比特数L==16,当否时,进入gpio1_irs()的出口,当是时,最终状态进入空闲状态,并接收比特长度为0。
其中,所述从机CPU在46连续中断,读取46个比特的数据,分别判断是不是有32个比特的同步帧,2个开始比特,2个操作码,2个比特读写位;只要有一个判断错误,整个状态机进入空闲转态,继续读取46个比特。
如果是读操作,则将地址A的内容,在连续16个中断中,每一个中断向GPIO2 MDIO写入一个比特,完成后继续进入空闲状态;如果是写操作,在连续16个中断中,每一个中断从GPIO2 MDIO读取一个比特,拼凑成16比特数据后再写入A地址寄存器,完成后继续进入空闲状态。
进一步地,如图2所示,本发明还提供了一种基于GPIO管脚实现MIDO从机功能的***,其中,所述***包括:主机MCU和从机CPU;设置GPIO1为时钟信号(MDC信号),并设置GPIO2为数据信号(MDIO信号);所述主机MCU发送所述时钟信号给所述从机CPU,所述数据信号在所述主机MCU和所述从机CPU之间进行双线传递;当所述主机MCU读取所述从机CPU的数据时,所述数据信号由所述从机CPU控制,当所述主机MCU写所述从机CPU的数据时,所述数据信号由所述主机MCU控制。
进一步地,如图5所示,基于上述基于GPIO管脚实现MIDO从机功能的方法,本发明还相应提供了一种终端,所述终端包括处理器10、存储器20及显示器30。图5仅示出了终端的部分组件,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
所述存储器20在一些实施例中可以是所述终端的内部存储单元,例如终端的硬盘或内存。所述存储器20在另一些实施例中也可以是所述终端的外部存储设备,例如所述终端上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器20还可以既包括所述终端的内部存储单元也包括外部存储设备。所述存储器20用于存储安装于所述终端的应用软件及各类数据,例如所述安装终端的程序代码等。所述存储器20还可以用于暂时地存储已经输出或者将要输出的数据。在一实施例中,存储器20上存储有基于GPIO管脚实现MIDO从机功能的程序40,该基于GPIO管脚实现MIDO从机功能的程序40可被处理器10所执行,从而实现本申请中基于GPIO管脚实现MIDO从机功能的方法。
所述处理器10在一些实施例中可以是一中央处理器(Central Processing Unit,CPU),微处理器或其他数据处理芯片,用于运行所述存储器20中存储的程序代码或处理数据,例如执行所述基于GPIO管脚实现MIDO从机功能的方法等。
所述显示器30在一些实施例中可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。所述显示器30用于显示在所述终端的信息以及用于显示可视化的用户界面。所述终端的部件10-30通过***总线相互通信。
在一实施例中,当处理器10执行所述存储器20中基于GPIO管脚实现MIDO从机功能的程序40时实现以下步骤:
设置GPIO1为时钟信号,并设置GPIO2为数据信号;
主机MCU发送所述时钟信号给从机CPU,所述数据信号在所述主机MCU和所述从机CPU之间进行双线传递;
当所述主机MCU读取所述从机CPU的数据时,所述数据信号由所述从机CPU控制,当所述主机MCU写所述从机CPU的数据时,所述数据信号由所述主机MCU控制。
所述基于GPIO管脚实现MIDO从机功能的方法还包括:
当所述主机MCU将所述时钟信号拉高为高电平后,所述从机CPU通过GPIO1发出中断,所述从机CPU进入中断处理程序,在中断处理程序中读取GPIO2的MDIO管脚的电平高低并保存。
所述设置GPIO1为时钟信号,并设置GPIO2为数据信号,之前还包括:
设置GPIO1为输入功能,设置GPIO2为输入输出功能,设置GPIO1为边缘中断属性;
挂载GPIO1中断处理函数;
接收比特个数为0,发送比特个数为0;
使能GPIO1中断,设置MDIO设备地址为0x08。
所述中断处理函数用于处理所述主机MCU发来的读写请求;
当所述主机MCU写所述从机CPU时,则在,所述中断处理函数中读取所述时钟信号的电平高低,每次中断读取一个比特,并且按照协议PHY地址读取5比特为设备地址和5比特寄存器内部地址。
预先定义两个状态,分别为空闲状态和忙状态;
所述空闲状态表示当前没有任何请求,总线为空,等待32个同步帧;
所述忙状态表示当前状态已经进入MIDO时序中。
所述基于GPIO管脚实现MIDO从机功能的方法还包括:
当进入所述中断处理函数的入口时,判断当前状态是否为空闲状态;
当处于空闲状态时,读取GPIO2电平到接收缓冲,并接收比特数,判断所述比特数是否为46;
当是时,判断是否有32个比特的同步帧、2个开始比特、2个操作码和2个比特读写位,当任意一个为否时,则整个状态机进入空闲状态,当为是时,则进入忙状态,并接收比特长度为0,发送比特长度为0。
所述判断当前状态是否为空闲状态,之后还包括:
当不处于空闲状态时,进入读操作或者写操作;
所述读操作为:将A地址的寄存器值按比特写入GPIO2,发送比特长度加1,最终状态进入空闲状态,并接收比特长度为0;
所述写操作为:读取GPIO2高低电平值到接收缓冲,接收比特数加1,将接收缓冲16比特数据写入寄存器地址A,最终状态进入空闲状态,并接收比特长度为0。
进一步地,本发明还提供一种存储介质,其中,所述存储介质存储有基于GPIO管脚实现MIDO从机功能的程序,所述基于GPIO管脚实现MIDO从机功能的程序被处理器执行时实现如上所述的基于GPIO管脚实现MIDO从机功能的方法的步骤。
综上所述,本发明提供基于GPIO管脚实现MIDO从机功能的方法及终端,所述方法包括:设置GPIO1为时钟信号,并设置GPIO2为数据信号;主机MCU发送所述时钟信号给从机CPU,所述数据信号在所述主机MCU和所述从机CPU之间进行双线传递;当所述主机MCU读取所述从机CPU的数据时,所述数据信号由所述从机CPU控制,当所述主机MCU写所述从机CPU的数据时,所述数据信号由所述主机MCU控制。本发明通过GPIO管脚,实现了MIDO从机功能,可以被MDIO主机访问。
当然,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关硬件(如处理器,控制器等)来完成,所述的程序可存储于一计算机可读取的存储介质中,所述程序在执行时可包括如上述各方法实施例的流程。其中所述的存储介质可为存储器、磁碟、光盘等。
应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。

Claims (10)

1.一种基于GPIO管脚实现MIDO从机功能的方法,其特征在于,所述基于GPIO管脚实现MIDO从机功能的方法包括:
设置GPIO1为时钟信号,并设置GPIO2为数据信号;
主机MCU发送所述时钟信号给从机CPU,所述数据信号在所述主机MCU和所述从机CPU之间进行双线传递;
当所述主机MCU读取所述从机CPU的数据时,所述数据信号由所述从机CPU控制,当所述主机MCU写所述从机CPU的数据时,所述数据信号由所述主机MCU控制。
2.根据权利要求1所述的基于GPIO管脚实现MIDO从机功能的方法,其特征在于,所述基于GPIO管脚实现MIDO从机功能的方法还包括:
当所述主机MCU将所述时钟信号拉高为高电平后,所述从机CPU通过GPIO1发出中断,所述从机CPU进入中断处理程序,在中断处理程序中读取GPIO2的MDIO管脚的电平高低并保存。
3.根据权利要求1所述的基于GPIO管脚实现MIDO从机功能的方法,其特征在于,所述设置GPIO1为时钟信号,并设置GPIO2为数据信号,之前还包括:
设置GPIO1为输入功能,设置GPIO2为输入输出功能,设置GPIO1为边缘中断属性;
挂载GPIO1中断处理函数;
接收比特个数为0,发送比特个数为0;
使能GPIO1中断,设置MDIO设备地址为0x08。
4.根据权利要求3所述的基于GPIO管脚实现MIDO从机功能的方法,其特征在于,所述中断处理函数用于处理所述主机MCU发来的读写请求;
当所述主机MCU写所述从机CPU时,则在,所述中断处理函数中读取所述时钟信号的电平高低,每次中断读取一个比特,并且按照协议PHY地址读取5比特为设备地址和5比特寄存器内部地址。
5.根据权利要求3所述的基于GPIO管脚实现MIDO从机功能的方法,其特征在于,预先定义两个状态,分别为空闲状态和忙状态;
所述空闲状态表示当前没有任何请求,总线为空,等待32个同步帧;
所述忙状态表示当前状态已经进入MIDO时序中。
6.根据权利要求5所述的基于GPIO管脚实现MIDO从机功能的方法,其特征在于,所述基于GPIO管脚实现MIDO从机功能的方法还包括:
当进入所述中断处理函数的入口时,判断当前状态是否为空闲状态;
当处于空闲状态时,读取GPIO2电平到接收缓冲,并接收比特数,判断所述比特数是否为46;
当是时,判断是否有32个比特的同步帧、2个开始比特、2个操作码和2个比特读写位,当任意一个为否时,则整个状态机进入空闲状态,当为是时,则进入忙状态,并接收比特长度为0,发送比特长度为0。
7.根据权利要求6所述的基于GPIO管脚实现MIDO从机功能的方法,其特征在于,所述判断当前状态是否为空闲状态,之后还包括:
当不处于空闲状态时,进入读操作或者写操作;
所述读操作为:将A地址的寄存器值按比特写入GPIO2,发送比特长度加1,最终状态进入空闲状态,并接收比特长度为0;
所述写操作为:读取GPIO2高低电平值到接收缓冲,接收比特数加1,将接收缓冲16比特数据写入寄存器地址A,最终状态进入空闲状态,并接收比特长度为0。
8.一种基于GPIO管脚实现MIDO从机功能的***,其特征在于,所述***包括:主机MCU和从机CPU;
所述主机MCU发送所述时钟信号给所述从机CPU,所述数据信号在所述主机MCU和所述从机CPU之间进行双线传递;当所述主机MCU读取所述从机CPU的数据时,所述数据信号由所述从机CPU控制,当所述主机MCU写所述从机CPU的数据时,所述数据信号由所述主机MCU控制。
9.一种终端,其特征在于,所述终端包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的基于GPIO管脚实现MIDO从机功能的程序,所述基于GPIO管脚实现MIDO从机功能的程序被所述处理器执行时实现如权利要求1-7任一项所述的基于GPIO管脚实现MIDO从机功能的方法的步骤。
10.一种存储介质,其特征在于,所述存储介质存储有基于GPIO管脚实现MIDO从机功能的程序,所述基于GPIO管脚实现MIDO从机功能的程序被处理器执行时实现如权利要求1-7任一项所述的基于GPIO管脚实现MIDO从机功能的方法的步骤。
CN201910887579.0A 2019-09-19 2019-09-19 基于gpio管脚实现mdio从机功能的方法及终端 Active CN110795369B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910887579.0A CN110795369B (zh) 2019-09-19 2019-09-19 基于gpio管脚实现mdio从机功能的方法及终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910887579.0A CN110795369B (zh) 2019-09-19 2019-09-19 基于gpio管脚实现mdio从机功能的方法及终端

Publications (2)

Publication Number Publication Date
CN110795369A true CN110795369A (zh) 2020-02-14
CN110795369B CN110795369B (zh) 2023-05-30

Family

ID=69438574

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910887579.0A Active CN110795369B (zh) 2019-09-19 2019-09-19 基于gpio管脚实现mdio从机功能的方法及终端

Country Status (1)

Country Link
CN (1) CN110795369B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112269338A (zh) * 2020-10-23 2021-01-26 阳光电源股份有限公司 基于gpio的数字控制器通信方法及***
CN115834282A (zh) * 2022-11-07 2023-03-21 交控科技股份有限公司 一种can总线通信方法、装置、设备及可读存储介质
CN117076352A (zh) * 2023-08-22 2023-11-17 深圳市飞宇光纤股份有限公司 一种通过gpio口模拟smi协议实现访问phy芯片的方法及***

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6532533B1 (en) * 1999-11-29 2003-03-11 Texas Instruments Incorporated Input/output system with mask register bit control of memory mapped access to individual input/output pins
US20070101043A1 (en) * 2005-10-31 2007-05-03 Lsi Logic Corporation Protocol converter to access AHB slave devices using the MDIO protocol
US20090058630A1 (en) * 2007-09-05 2009-03-05 Sonitrol Corporation, Corporation of the State of Florida System and method for monitoring security at a premises using line card with secondary communications channel
CN102291423A (zh) * 2011-05-12 2011-12-21 福建星网锐捷网络有限公司 控制物理层芯片的方法及控制电路
US20150339253A1 (en) * 2014-05-26 2015-11-26 Mediatek Inc. Electronic device with enhanced management data input/output control
CN105677599A (zh) * 2014-11-19 2016-06-15 中兴通讯股份有限公司 主机、主机管理从机的方法及***
CN106020888A (zh) * 2016-05-24 2016-10-12 武汉虹信通信技术有限责任公司 一种快速驱动万兆以太网的方法及设备
CN107426118A (zh) * 2017-07-24 2017-12-01 西安微电子技术研究所 一种基于mdc/mdio接口的千兆以太网交换电路访问装置
CN110175145A (zh) * 2019-05-23 2019-08-27 深圳市易飞扬通信技术有限公司 Mdio接口通信方法和电路

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6532533B1 (en) * 1999-11-29 2003-03-11 Texas Instruments Incorporated Input/output system with mask register bit control of memory mapped access to individual input/output pins
US20070101043A1 (en) * 2005-10-31 2007-05-03 Lsi Logic Corporation Protocol converter to access AHB slave devices using the MDIO protocol
US20090058630A1 (en) * 2007-09-05 2009-03-05 Sonitrol Corporation, Corporation of the State of Florida System and method for monitoring security at a premises using line card with secondary communications channel
CN102291423A (zh) * 2011-05-12 2011-12-21 福建星网锐捷网络有限公司 控制物理层芯片的方法及控制电路
US20150339253A1 (en) * 2014-05-26 2015-11-26 Mediatek Inc. Electronic device with enhanced management data input/output control
CN105677599A (zh) * 2014-11-19 2016-06-15 中兴通讯股份有限公司 主机、主机管理从机的方法及***
CN106020888A (zh) * 2016-05-24 2016-10-12 武汉虹信通信技术有限责任公司 一种快速驱动万兆以太网的方法及设备
CN107426118A (zh) * 2017-07-24 2017-12-01 西安微电子技术研究所 一种基于mdc/mdio接口的千兆以太网交换电路访问装置
CN110175145A (zh) * 2019-05-23 2019-08-27 深圳市易飞扬通信技术有限公司 Mdio接口通信方法和电路

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
左鹏鹏: "基于SFP封装集成ONU模块的三网融合接入终端的设计与实现" *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112269338A (zh) * 2020-10-23 2021-01-26 阳光电源股份有限公司 基于gpio的数字控制器通信方法及***
CN115834282A (zh) * 2022-11-07 2023-03-21 交控科技股份有限公司 一种can总线通信方法、装置、设备及可读存储介质
CN117076352A (zh) * 2023-08-22 2023-11-17 深圳市飞宇光纤股份有限公司 一种通过gpio口模拟smi协议实现访问phy芯片的方法及***

Also Published As

Publication number Publication date
CN110795369B (zh) 2023-05-30

Similar Documents

Publication Publication Date Title
US7529862B2 (en) System for providing access of multiple data buffers to a data retaining and processing device
US8898358B2 (en) Multi-protocol communication on an I2C bus
CN110795369B (zh) 基于gpio管脚实现mdio从机功能的方法及终端
JP2018533120A (ja) マルチノードネットワークにおける入力/出力信号のブリッジングおよび仮想化
EP3103021B1 (en) Methods and apparatus for a multiple master bus protocol
JP2008539496A (ja) I2cスレーブ装置の複数のi/oバンクの同時制御
CN112639755A (zh) 从机到从机直接通信
US20190356412A1 (en) Fast termination of multilane double data rate transactions
JP2008539644A (ja) プログラマブル書込みトランザクションサイクルを有するi2cスレーブ装置
CN112765082B (zh) 多主机仲裁方法、装置和可读存储介质
US20070079015A1 (en) Methods and arrangements to interface a data storage device
US7353300B2 (en) Apparatus to improve the firmware efficiency for a multiframe serial interface
CN111124985A (zh) 一种移动终端只读控制方法及装置
WO2019217077A1 (en) Latency optimized i3c virtual gpio with configurable operating mode and device skip
CN113485672A (zh) 基于fifo存储器的信息生成方法、装置、设备及介质
CN110795373B (zh) 一种i2c总线到并行总线的转换方法、终端及存储介质
CN106649187B (zh) 一种芯片自动化外设协议选择的方法
CN115543246A (zh) 一种bmc和服务器
CN105068962A (zh) I2c控制器访问方法及***
CN112732176B (zh) 基于fpga的ssd访问方法及装置、存储***及存储介质
CN111427813A (zh) 一种基于串口的核间通讯方法、终端及存储介质
CN113836058A (zh) 一种板卡间数据交换方法、装置、设备及存储介质
CN109976778B (zh) 车辆电子产品的软件更新方法与***、上位机及存储介质
CN111427815A (zh) 一种基于spi接口的核间通讯方法、终端及存储介质
CN116610622B (zh) 一种spi菊花链自适应通信方法及***

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant