CN110781118B - 实现并行总线从模式的方法及装置、计算机设备、介质 - Google Patents
实现并行总线从模式的方法及装置、计算机设备、介质 Download PDFInfo
- Publication number
- CN110781118B CN110781118B CN201910942709.6A CN201910942709A CN110781118B CN 110781118 B CN110781118 B CN 110781118B CN 201910942709 A CN201910942709 A CN 201910942709A CN 110781118 B CN110781118 B CN 110781118B
- Authority
- CN
- China
- Prior art keywords
- control cpu
- gpio17
- main control
- gpio
- mcu
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 230000006870 function Effects 0.000 claims description 64
- 238000004590 computer program Methods 0.000 claims description 13
- 230000001934 delay Effects 0.000 claims description 4
- 230000000977 initiatory effect Effects 0.000 claims description 3
- 230000009131 signaling function Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 229910002056 binary alloy Inorganic materials 0.000 description 2
- 230000003321 amplification Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本申请涉及实现并行总线从模式的方法及装置、计算机设备、介质,所述方法将MCU与主控CPU通过并行总线相连;其中MCU的GPIO1~GPIO8,8个GPIO连主控CPU的8条地址线;MCU的GPIO9~GPIO16,8个GPIO连主控CPU的8条数据线;GPIO17连接主控CPU的片选控制信号线;MCU的GPIO18连主控CPU的读写控制信号;当使能GPIO17中断,读取GPIO1~8的值,保存为地址值addr;读取GPIO18的值,判断是否=1;如果否的话进入写周期;如果是则转入读周期;以实现并行总线从模式。本文提出以GPIO管脚来实现并行总线的从模式的方法;可以实现在MCU上实现并行总线,并且实现成本低。
Description
技术领域
本申请涉及嵌入式驱动领域,特别是涉及一种利用GPIO实现并行总线从模式的方法及装置、计算机设备、可读存储介质。
背景技术
并行总线在计算机系统中经常见到,其传输速度快,时序简单的特点收到很多软硬件设计人员的喜欢。以8位并行总线为例,其包括8根地址线address[7:0],9根数据线data[7:0],片选CS信号,和读写控制信号WE,总计需要16根信号线。
虽然并行总线有很多优点,但是在很多MCU上却没有实现并行总线。因为其信号线太多,很多MCU为了节省设计成本,往往不增加并行总线接口。如果要在当前MCU上实现并行总线的从模式,一般有串并转换芯片来支持。但是这样会增加设计成本。即现有技术中无法在MCU上实现并行总线,即使有部分可通过串并转换芯片来实现,也是实现成本高。
因此,现有技术有待改进。
发明内容
本发明要解决的技术问题是,提供一种利用GPIO实现并行总线从模式的方法及装置、计算机设备、可读存储介质,本文提出以GPIO管脚来实现并行总线的从模式的方法;可以实现在MCU上实现并行总线,并且实现成本低。
一种利用GPIO实现并行总线从模式的方法,其中,所述方法包括:
A、将MCU与主控CPU通过并行总线相连;其中MCU的GPIO1~GPIO8,8个GPIO连主控CPU的8条地址线;MCU的GPIO9~GPIO16,8个GPIO连主控CPU的8条数据线;GPIO17连接主控CPU的片选控制信号线;MCU的GPIO18连主控CPU的读写控制信号;
B、挂载GPIO17中断处理函数;注册GPIO17的中断函数,gpio17_isr;使能GPIO17中断;
C、当使能GPIO17中断,中断函数,gpio17_isr开启;
D、在中断函数gpio17_isr中,读取GPIO1~8的值,保存为地址值addr;
E、读取GPIO18的值,判断是否=1;如果否的话进入写周期;如果是则转入读周期;以实现并行总线从模式。
所述利用GPIO实现并行总线从模式的方法,其中,所述步骤A还包括:
设置GPIO1~GPIO8为输入信号,用于接收主控CPU发过来的地址信号,总共为8位地址。
所述利用GPIO实现并行总线从模式的方法,其中,所述步骤A还包括:
设置GPIO9~GPIO16为输入/输出信号,在写周期时用于接收主控CPU发过来的数据信号;在读周期时,用于给主控CPU发送8bit数据。
所述利用GPIO实现并行总线从模式的方法,其中,所述步骤A还包括:
设置GPIO17为输入信号,为主控CPU发给MCU的控制信号,当为低电平是表示发起了读/写周期。
所述利用GPIO实现并行总线从模式的方法,其中,所述步骤A还包括:
设置GPIO18为输入信号(功能),为主控CPU发给MCU的读写控制信号;当为低电平时为写周期,为高电平时为读周期。
所述利用GPIO实现并行总线从模式的方法,其中,所述步骤A还包括:
设置GPIO17片选信号为下降沿触发中断。
一种利用GPIO实现并行总线从模式的装置,其中,所述装置包括:MCU以及主控CPU;
所述MCU与主控CPU通过并行总线相连;其中MCU的GPIO脚的GPIO1~GPIO8脚连接主控CPU的8条地址线;MCU的GPIO9~GPIO16连接主控CPU的8条数据线;所述MCUGPIO17连接主控CPU的片选控制信号线;MCU的GPIO18连主控CPU的读写控制信号线;
挂载模块,用于控制挂载GPIO17中断处理函数;注册GPIO17的中断函数,gpio17_isr;使能GPIO17中断;
中断控制模块,用于当使能GPIO17中断,中断函数,gpio17_isr开启;
读取控制模块,用于在中断函数gpio17_isr中,读取GPIO1~8的值,保存为地址值addr;
读写周期控制模块,用于读取GPIO18的值,判断是否=1;如果否的话进入写周期;如果是则转入读周期;以实现并行总线从模式。
所述的利用GPIO实现并行总线从模式的装置,其中,所述装置,还包括:
设置模块,用于设置GPIO1~GPIO8为输入信号,用于接收主控CPU发过来的地址信号,总共为8位地址;
设置GPIO9~GPIO16为输入/输出信号,在写周期时用于接收主控CPU发过来的数据信号;在读周期时,用于给主控CPU发送8bit数据;
设置GPIO17为输入信号,为主控CPU发给MCU的控制信号,当为低电平是表示发起了读/写周期;
设置GPIO18为输入信号,为主控CPU发给MCU的读写控制信号;当为低电平时为写周期,为高电平时为读周期;
设置GPIO17片选信号为下降沿触发中断,表示主控CPU发起了读/写周期。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其中,所述处理器执行所述计算机程序时实现任一项所述方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,其中,所述计算机程序被处理器执行时实现任一项所述的方法的步骤。
与现有技术相比,本发明实施例具有以下优点:
根据本发明实施方式提供的方法,首先将MCU与主控CPU通过并行总线相连;其中MCU的GPIO1~GPIO8,8个GPIO连主控CPU的8条地址线;MCU的GPIO9~GPIO16,8个GPIO连主控CPU的8条数据线;GPIO17连接主控CPU的片选控制信号线;MCU的GPIO18连主控CPU的读写控制信号;挂载GPIO17中断处理函数;注册GPIO17的中断函数,gpio17_isr;使能GPIO17中断;当使能GPIO17中断,中断函数,gpio17_isr开启;在中断函数gpio17_isr中,读取GPIO1~8的值,保存为地址值addr;读取GPIO18的值,判断是否=1;如果否的话进入写周期;如果是则转入读周期;以实现并行总线从模式。本文提出以GPIO管脚来实现并行总线的从模式的方法;可以实现在MCU上实现并行总线,并且实现成本低。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中一种利用GPIO实现并行总线从模式的装置的连接结构示意图。
图2为本发明实施例中一种利用GPIO实现并行总线从模式的方法的写时序示意图。
图3为本发明实施例中一种利用GPIO实现并行总线从模式的方法的读时序示意图。
图4为本发明具体应用实施例中一种利用GPIO实现并行总线从模式的方法的设置流程示意图。
图5为本发明具体应用实施例中一种利用GPIO实现并行总线从模式的方法的读写周期流程示意图。
图6为本发明实施例中一种利用GPIO实现并行总线从模式的方法的流程示意图。
图7为本发明实施例中计算机设备的内部功能原理框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
发明人经过研究发现,虽然并行总线有很多优点,但是在很多MCU上却没有实现并行总线。因为其信号线太多,很多MCU为了节省设计成本,往往不增加并行总线接口。如果要在当前MCU上实现并行总线的从模式,一般有串并转换芯片来支持。但是这样会增加设计成本。即现有技术中无法在MCU上实现并行总线,即使有部分可通过串并转换芯片来实现,也是实现成本高。
为了解决上述问题,在本发明实施例中,本文提出以GPIO管脚来实现并行总线的从模式的方法;可以实现在MCU上实现并行总线,并且实现成本低。
下面结合附图,详细说明本发明的各种非限制性实施方式。
本发明实施例提供的一种利用GPIO实现并行总线从模式的装置,如图1,所述装置包括:MCU以及主控CPU;
所述MCU与主控CPU通过并行总线相连;其中MCU的GPIO脚(GPIO通用型之输入输出脚)的GPIO1~GPIO8脚连接主控CPU的8条地址线,8个GPIO连主控CPU的8条地址线。MCU的GPIO9~GPIO16连接主控CPU的8条数据线,8个GPIO连主控CPU的8条数据线;所述MCUGPIO17连接主控CPU的片选控制信号线(CS);MCU的GPIO18连主控CPU的读写控制信号线(WE);
所述装置还包括:
挂载模块,用于控制挂载GPIO17中断处理函数;注册GPIO17的中断函数,gpio17_isr;使能GPIO17中断;
中断控制模块,用于当使能GPIO17中断,中断函数,gpio17_isr开启;
读取控制模块,用于在中断函数gpio17_isr中,读取GPIO1~8的值,保存为地址值addr;
读写周期控制模块,用于读取GPIO18的值,判断是否=1;如果否的话进入写周期;如果是则转入读周期;以实现并行总线从模式。
设置模块,用于设置GPIO1~GPIO8为输入信号,用于接收主控CPU发过来的地址信号,总共为8位地址;设置GPIO9~GPIO16为输入/输出信号,在写周期时用于接收主控CPU发过来的数据信号;在读周期时,用于给主控CPU发送8bit数据;设置GPIO17为输入信号,为主控CPU发给MCU的控制信号,当为低电平是表示发起了读/写周期;设置GPIO18为输入信号,为主控CPU发给MCU的读写控制信号;当为低电平时为写周期,为高电平时为读周期;设置GPIO17片选信号为下降沿触发中断,表示主控CPU发起了读/写周期。
本发明实施例中,在具体实施时,如图4所示,1.设置GPIO1~GPIO8为输入信号(功能),用于接收主控CPU发过来的地址信号,总共为8位地址;
2、设置GPIO9~GPIO16为输入/输出信号(功能),在写周期时用于接收主控CPU发过来的数据信号。在读周期时,用于给主控CPU发送8bit数据。
3、设置GPIO17为输入信号,为主控CPU发给MCU的控制信号,当为低电平是表示发起了读/写周期。
4、设置GPIO18为输入信号(功能),为主控CPU发给MCU的读写控制信号。当为低电平时为写周期,为高电平时为读周期。
5、设置GPIO17片选信号(CS)为下降沿触发中断,如图2和图3所示,表示主控CPU发起了读/写周期。对于主控CPU来说,图2为写时序,主控CPU会先将地址送到address(GPIO1-8)线上,然后拉低WEn(GPIO18),再把要写的值送到data(GPIO9-16)线上,最后把CSn(GPIO17)线拉低,并延时若干周期,再将CSn(GPIO17)线拉高,则一个写操作完成。
对于主控CPU来说,图3为读时序,主控CPU会先将地址送到address(GPIO1-8)线上,然后拉高WEn(GPIO18),再把CSn(GPIO17)线拉低,延时若干周期后,再读data(GPIO9-16)线上的数据,读完之后将CSn(GPIO17)线拉高,则一个读操作完成。
因为CPU的操作速度非常快,因此WEn(GPIO18)和CSn(GPIO17)的下降沿或者是上升沿看起来就像是同时发生一样,实际上放大时间来看的话,这两者并不是同时发生的。
6、注册GPIO17的中断函数,并挂载GPIO17中断处理函数,gpio17_isr。
7、使能GPIO17中断。
如图5所示
S21、中断函数,gpio17_isr;
S22、在中断函数gpio17_isr中,读取GPIO1~8的值,保存为地址值addr。
S22、读取GPIO18的值,判断是否=1;如果否的话进入写周期;如果是则转入读周期;可以实现并行总线从模式。
当进入读周期时,读取GPIO9-GPIO16脚中的值,并保存到data[7:0],将data写入地址值addr所在的内存空间;然后函数gpio17_isr出口。
当进入写周期时,读取地址值addr内存空间的数值data。将data[7:0]写入gpio9-16。
即本发明实施例中在中断函数gpio17_isr中,读取GPIO18的值,如果为0,则是要接收主控CPU发过来的数据,并且保存到地址值addr的存储空间中。如果GPIO18=1,则要把地址值addr存储空间中的内容,写入GPIO9~16上,发送给主控CPU。
本发明具体实施时举例如下:
本发明以GPIO管脚来实现并行总线的从模式的方法的关键步骤如下:
硬件上,参考图1所示,将MCU与主控CPU通过并行总线相连;MCU的GPIO1~GPIO8连接主控CPU的8条地址线;MCU的GPIO9~GPIO16连接主控CPU的8条数据线;GPIO17连接主控CPU的片选控制信号线;MCU的GPIO18连主控CPU的读写控制信号;这一步的作用是保证后续软件正常运行的前提。
软件上,第一步:将所有的GPIO口进行初始化,设置GPIO1~GPIO8为输入信号,用于接收主控CPU发过来的地址信号;设置GPIO9~GPIO16为输入/输出信号,在写周期时用于接收主控CPU发过来的数据信号;在读周期时用于给主控CPU发送8bit数据;设置GPIO17为输入信号,为主控CPU发给MCU的控制信号;设置GPIO18为输入信号,为主控CPU发给MCU的读写控制信号;这一步的作用主要是按照协议对相关GPIO口的引脚进行定义;
软件上,第二步:注册GPIO17的外部中断函数,设置GPIO17片选信号在下降沿时触发中断,进入中断处理函数对其他各个管脚的高低电平进行处理,因为在这个阶段表示主控CPU发起了读/写周期;这一步的核心就是对具体协议功能上的的实现;该中断函数内部的具体操作如下:
Ⅰ读取GPIO1~8的值,保存为地址值addr;
Ⅱ读取GPIO18的值,判断该电平的高低;如果为低电平的话进入写周期;如果为高电平的话则转入读周期;
Ⅲ写周期:读取GPIO9~16的值,保存为数据值data,将data值写入addr上对应的寄存器空间,进入第Ⅴ步;
Ⅳ读周期:将addr上对应的寄存器空间的值送到GPIO9~16线上,进入第Ⅴ步;
Ⅴ清除中断标志位,同时结束当前的中断处理函数。
本发明基于用GPIO实现并行总线从模式的装置,采用软件的方法实现并行总线从模式,实时性可靠性稳定性都是和硬件总线几乎一致;本文提出以GPIO管脚来实现并行总线的从模式的方法;可以实现在MCU上实现并行总线,并且实现成本低。
请参阅图6,图6示出了本发明实施例中利用GPIO实现并行总线从模式的方法,所述方法包括:
S1、将MCU与主控CPU通过并行总线相连;其中MCU的GPIO1~GPIO8,8个GPIO连主控CPU的8条地址线;MCU的GPIO9~GPIO16,8个GPIO连主控CPU的8条数据线;GPIO17连接主控CPU的片选控制信号线;MCU的GPIO18连主控CPU的读写控制信号WE;
S2、设置GPIO1~8为输入信号,用于接收主控CPU发过来的地址信号,总共为8位地址。
S3、设置GPIO9~GPIO16为输入/输出信号(功能),在写周期时用于接收主控CPU发过来的数据信号。在读周期时,用于给主控CPU发送8bit数据。
S4、设置GPIO17为输入信号,为主控CPU发给MCU的控制信号,当为低电平是表示发起了读/写周期。
S5、设置GPIO18为输入信号(功能),为主控CPU发给MCU的读写控制信号。当为低电平时为写周期,为高电平时为读周期。
S6、设置GPIO17片选信号(CS)为下降沿触发中断,如图2和图3所示,表示主控CPU发起了读/写周期。
S7、挂载GPIO17中断处理函数;注册GPIO17的中断函数,gpio17_isr。
S8、使能GPIO17中断。
如图5所示
S21、当使能GPIO17中断,中断函数,gpio17_isr开启;
S22、在中断函数gpio17_isr中,读取GPIO1~8的值,保存为地址值addr。
S22、读取GPIO18的值,判断是否=1;如果否的话进入写周期;如果是则转入读周期;可实现并行总线从模式。
例如,以下分别以读操作和写操作各举一个例子:
读操作举例,CPU读取MCU寄存器地址为0x12的值;
step 1:CPU将值0x12(二进制:00010010)送到8位地址线上;
step 2:CPU拉高读写控制信号;
step 3:CPU拉低片选信号,并且延时若干周期;在这一步的过程中,MCU检测到了片选信号,也就是GPIO17引脚产生了下降沿触发了中断,此时进入中断处理函数;
step 4:读取GPIO1~8的值,保存为地址值addr(这里的addr可以理解为一个变量,暂时存放的作用);
step 5:读取GPIO18的值,发现该电平为高,便将addr上对应寄存器空间的值,假设为0xAA(二进制:10101010)送到GPIO9~16线上;
step 6:CPU读取8根数据信号线,发现读到的数据为0xAA(二进制:10101010);
step 7:CPU拉高片选信号,MCU退出中断处理函数,注意,这一步上的操作并没有先后之分,必须保证的是CPU必须延时若干周期后再读,留点时间给MCU往数据信号线上送数据就行了;而MCU将数据送到GPIO9~16线上之后一般就会直接退出中断处理函数了。
写操作举例,CPU往MCU寄存器地址为0x12的值上写0x55;
step 1:CPU将值0x12(二进制:00010010)送到8位地址线上;
step 2:CPU拉低读写控制信号;
step 3:CPU将值0x55(二进制:01010101)送到8位数据信号线上;
step 4:CPU拉低片选信号,并且延时若干周期;在这一步的过程中,MCU检测到了片选信号,也就是GPIO17引脚产生了下降沿触发了中断,此时进入中断处理函数;
step 5:读取GPIO1~8的值,保存为地址值addr(这里的addr可以理解为一个变量,暂时存放的作用);
step 6:读取GPIO18的值,发现该电平为低,便继续读取GPIO9~16的值,保存为数据值data(这里的data可以理解为一个变量,暂时存放的作用);
step 7:将data的值0x55(二进制:01010101)写入到addr上对应寄存器空间;
step 8:CPU拉高片选信号,MCU退出中断处理函数,注意,这一步上的操作并没有先后之分,必须保证的是CPU必须延时若干周期后再拉高片选信号,留点时间给MCU处理数据信号线上的数据就行了;而MCU将data数据写到地址为addr上的寄存器空间之后一般就会直接退出中断处理函数了。
在一个实施例中,本发明还提供了一种计算机设备,该设备可以是终端,内部结构如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种自然语言模型的生成方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图7所示的仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
本发明实施例提供的一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
S1、将MCU与主控CPU通过并行总线相连;其中MCU的GPIO1~GPIO8,8个GPIO连主控CPU的8条地址线;MCU的GPIO9~GPIO16,8个GPIO连主控CPU的8条数据线;GPIO17连接主控CPU的片选控制信号线;MCU的GPIO18连主控CPU的读写控制信号WE;
S2、设置GPIO1~8为输入信号,用于接收主控CPU发过来的地址信号,总共为8位地址。
S3、设置GPIO9~GPIO16为输入/输出信号(功能),在写周期时用于接收主控CPU发过来的数据信号。在读周期时,用于给主控CPU发送8bit数据。
S4、设置GPIO17为输入信号,为主控CPU发给MCU的控制信号,当为低电平是表示发起了读/写周期。
S5、设置GPIO18为输入信号(功能),为主控CPU发给MCU的读写控制信号。当为低电平时为写周期,为高电平时为读周期。
S6、设置GPIO17片选信号(CS)为下降沿触发中断,如图2和图3所示,表示主控CPU发起了读/写周期。
S7、挂载GPIO17中断处理函数;注册GPIO17的中断函数,gpio17_isr。
S8、使能GPIO17中断。
如图5所示
S21、当使能GPIO17中断,中断函数,gpio17_isr开启;
S22、在中断函数gpio17_isr中,读取GPIO1~8的值,保存为地址值addr。
S22、读取GPIO18的值,判断是否=1;如果否的话进入写周期;如果是则转入读周期;可以实现并行总线从模式。
综上所述,与现有技术相比,本发明实施例具有以下优点:
根据本发明实施方式提供的方法,首先将MCU与主控CPU通过并行总线相连;其中MCU的GPIO1~GPIO8,8个GPIO连主控CPU的8条地址线;MCU的GPIO9~GPIO16,8个GPIO连主控CPU的8条数据线;GPIO17连接主控CPU的片选控制信号线;MCU的GPIO18连主控CPU的读写控制信号;挂载GPIO17中断处理函数;注册GPIO17的中断函数,gpio17_isr;使能GPIO17中断;当使能GPIO17中断,中断函数,gpio17_isr开启;在中断函数gpio17_isr中,读取GPIO1~8的值,保存为地址值addr;读取GPIO18的值,判断是否=1;如果否的话进入写周期;如果是则转入读周期;以实现并行总线从模式。本文提出以GPIO管脚来实现并行总线的从模式的方法;可以实现在MCU上实现并行总线,并且实现成本低。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (8)
1.一种利用GPIO实现并行总线从模式的方法,其特征在于,所述方法包括:
A、将MCU与主控CPU通过并行总线相连;其中MCU的GPIO1~GPIO8,8个GPIO连主控CPU的8条地址线;MCU的GPIO9~GPIO16,8个GPIO连主控CPU的8条数据线;GPIO17连接主控CPU的片选控制信号线;MCU的GPIO18连主控CPU的读写控制信号;
B、挂载GPIO17中断处理函数;注册GPIO17的中断函数gpio17_isr;使能GPIO17中断;
C、当使能GPIO17中断,中断函数gpio17_isr开启;
D、在中断函数gpio17_isr中,读取GPIO1~8的值,保存为地址值addr;
E、读取GPIO18的值,判断是否=1;如果否的话进入写周期;如果是则转入读周期;以实现并行总线从模式;
所述步骤A还包括:
设置GPIO1~GPIO8为输入信号,用于接收主控CPU发过来的地址信号,总共为8位地址;
所述步骤A还包括:
设置GPIO9~GPIO16为输入/输出信号,在写周期时用于接收主控CPU发过来的数据信号;在读周期时,用于给主控CPU发送8bit数据;
进入写周期时,主控CPU先将地址送到GPIO1~GPIO8线上,然后拉低GPIO18,把要写的数据送到GPIO9~GPIO16线上,最后将GPIO17线拉低,并延时若干周期,再将GPIO17线拉高。
2.根据权利要求1所述利用GPIO实现并行总线从模式的方法,其特征在于,所述步骤A还包括:
设置GPIO17为输入信号,为主控CPU发给MCU的控制信号,当为低电平是表示发起了读/写周期。
3.根据权利要求1所述利用GPIO实现并行总线从模式的方法,其特征在于,所述步骤A还包括:
设置GPIO18为输入信号功能,为主控CPU发给MCU的读写控制信号;当为低电平时为写周期,为高电平时为读周期。
4.根据权利要求1所述利用GPIO实现并行总线从模式的方法,其特征在于,所述步骤A还包括:
设置GPIO17片选信号为下降沿触发中断。
5.一种利用GPIO实现并行总线从模式的装置,其特征在于,所述装置包括:MCU以及主控CPU;
所述MCU与主控CPU通过并行总线相连;其中MCU的GPIO脚的GPIO1~GPIO8脚连接主控CPU的8条地址线;MCU的GPIO9~GPIO16连接主控CPU的8条数据线;所述MCUGPIO17连接主控CPU的片选控制信号线;MCU的GPIO18连主控CPU的读写控制信号线;
设置GPIO1~GPIO8为输入信号,用于接收主控CPU发过来的地址信号,总共为8位地址;
设置GPIO9~GPIO16为输入/输出信号,在写周期时用于接收主控CPU发过来的数据信号;在读周期时,用于给主控CPU发送8bit数据;
挂载模块,用于控制挂载GPIO17中断处理函数;注册GPIO17的中断函数gpio17_isr;使能GPIO17中断;
中断控制模块,用于当使能GPIO17中断,中断函数gpio17_isr开启;
读取控制模块,用于在中断函数gpio17_isr中,读取GPIO1~8的值,保存为地址值addr;
读写周期控制模块,用于读取GPIO18的值,判断是否=1;如果否的话进入写周期;如果是则转入读周期;以实现并行总线从模式;还用于进入写周期时,主控CPU先将地址送到GPIO1~GPIO8线上,然后拉低GPIO18,把要写的数据送到GPIO9~GPIO16线上,最后将GPIO17线拉低,并延时若干周期,再将GPIO17线拉高。
6.根据权利要求5所述的利用GPIO实现并行总线从模式的装置,其特征在于,所述装置,还包括:
设置模块,用于设置GPIO1~GPIO8为输入信号,用于接收主控CPU发过来的地址信号,总共为8位地址;
设置GPIO9~GPIO16为输入/输出信号,在写周期时用于接收主控CPU发过来的数据信号;在读周期时,用于给主控CPU发送8bit数据;
设置GPIO17为输入信号,为主控CPU发给MCU的控制信号,当为低电平是表示发起了读/写周期;
设置GPIO18为输入信号,为主控CPU发给MCU的读写控制信号;当为低电平时为写周期,为高电平时为读周期;
设置GPIO17片选信号为下降沿触发中断,表示主控CPU发起了读/写周期。
7.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4中任一项所述方法的步骤。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910942709.6A CN110781118B (zh) | 2019-09-30 | 2019-09-30 | 实现并行总线从模式的方法及装置、计算机设备、介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910942709.6A CN110781118B (zh) | 2019-09-30 | 2019-09-30 | 实现并行总线从模式的方法及装置、计算机设备、介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110781118A CN110781118A (zh) | 2020-02-11 |
CN110781118B true CN110781118B (zh) | 2023-11-03 |
Family
ID=69384829
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910942709.6A Active CN110781118B (zh) | 2019-09-30 | 2019-09-30 | 实现并行总线从模式的方法及装置、计算机设备、介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110781118B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1171577A (zh) * | 1996-04-01 | 1998-01-28 | 摩托罗拉公司 | 可编程读/写访问信号及其方法 |
CN101080073A (zh) * | 2007-06-22 | 2007-11-28 | 中兴通讯股份有限公司 | 一种双模通讯终端的模块间通讯电路及方法 |
CN101299207A (zh) * | 2008-06-17 | 2008-11-05 | 北京星网锐捷网络技术有限公司 | 微处理器系统总线与微处理器接口总线转换装置及方法 |
CN102880574A (zh) * | 2011-07-11 | 2013-01-16 | 航天信息股份有限公司 | 利用gpio模拟低速并行接口的方法 |
CN106528482A (zh) * | 2015-09-14 | 2017-03-22 | 中国科学院沈阳自动化研究所 | 一种基于微控制器和fpga的并行通信方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9904646B2 (en) * | 2011-09-27 | 2018-02-27 | Microchip Technology Incorporated | Virtual general purpose input/output for a microcontroller |
-
2019
- 2019-09-30 CN CN201910942709.6A patent/CN110781118B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1171577A (zh) * | 1996-04-01 | 1998-01-28 | 摩托罗拉公司 | 可编程读/写访问信号及其方法 |
CN101080073A (zh) * | 2007-06-22 | 2007-11-28 | 中兴通讯股份有限公司 | 一种双模通讯终端的模块间通讯电路及方法 |
CN101299207A (zh) * | 2008-06-17 | 2008-11-05 | 北京星网锐捷网络技术有限公司 | 微处理器系统总线与微处理器接口总线转换装置及方法 |
CN102880574A (zh) * | 2011-07-11 | 2013-01-16 | 航天信息股份有限公司 | 利用gpio模拟低速并行接口的方法 |
CN106528482A (zh) * | 2015-09-14 | 2017-03-22 | 中国科学院沈阳自动化研究所 | 一种基于微控制器和fpga的并行通信方法 |
Non-Patent Citations (2)
Title |
---|
SPI总线从机接口实时模拟的实现;郭静华等;东北农业大学学报;38(05);第669-671页 * |
嵌入式系统中可配置式GPIO模拟SPI总线方法的设计与实现;邓彬伟;电子技术(7、8);第109-110页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110781118A (zh) | 2020-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20140089568A1 (en) | Embedded multimedia card (emmc), host for controlling the emmc, and methods of operating the emmc and the host | |
CN110765058A (zh) | Gpio实现spi从机功能方法、系统、设备及介质 | |
US6810444B2 (en) | Memory system allowing fast operation of processor while using flash memory incapable of random access | |
US20070033334A1 (en) | Non-volatile memory card and transfer interruption means | |
US8041856B2 (en) | Skip based control logic for first in first out buffer | |
JP6924026B2 (ja) | 半導体装置、ヒューマンインターフェース装置及び電子機器 | |
KR20140035772A (ko) | 임베디드 멀티미디어 카드, 상기 임베디드 멀티미디어 카드를 포함하는 임베디드 멀티미디어 카드 시스템 및 상기 임베디드 멀티미디어 카드의 동작 방법 | |
US20070079015A1 (en) | Methods and arrangements to interface a data storage device | |
CN115858431A (zh) | 数据传输控制方法、控制器及电子设备 | |
US20080005387A1 (en) | Semiconductor device and data transfer method | |
CN113485672B (zh) | 基于fifo存储器的信息生成方法、装置、设备及介质 | |
US11829640B2 (en) | Asynchronous arbitration across clock domains for register writes in an integrated circuit chip | |
JP2002163127A (ja) | トレース制御回路 | |
US10658046B2 (en) | Memory device and method for operating the same | |
CN110765060B (zh) | Mdio总线到并行总线转换方法及装置、设备、介质 | |
CN110781118B (zh) | 实现并行总线从模式的方法及装置、计算机设备、介质 | |
US8370565B2 (en) | Boot system | |
CN115033520B (zh) | Iic数据传输方法、装置、单片机设备及存储介质 | |
JP2001184212A (ja) | トレース制御回路 | |
CN112100098B (zh) | Ddr控制系统及ddr存储系统 | |
US6405260B2 (en) | Data transmission method and apparatus for interfacing between main system and microcomputer | |
TWI473110B (zh) | 串列介面的快閃記憶體裝置及其重置動作的執行方法 | |
US20230305816A1 (en) | Device and method for handling programming language function | |
US20220121360A1 (en) | System for controlling memory operations in system-on-chips | |
US10566062B2 (en) | Memory device and method for operating the same |
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 |