串行外设接口SPI总线电路、实现方法以及电子设备
技术领域
本发明涉及电子电路技术领域,具体涉及串行外设接口SPI总线电路、实现方法以及电子设备。
背景技术
现有技术的电路中,系统的配置信息和调试升级程序都是离线烧录模式,这种离线烧录模式需要大量的工具设备配合完成烧录,并需要在信息烧录完成后断电再与数据读取设备等连接,操作复杂、成本较高;而在线烧录模式相比离线烧录模式成本低,不需要断电连接,操作简单,但是在线烧录模式存在数据存储和读取的数据冲突问题以及后期调试升级不方便的问题,因此亟需一种能够解决在线烧录模式中数据冲突以及调试升级不方便问题的技术方案。
发明内容
本发明提供了一种串行外设接口SPI总线电路、实现方法以及电子设备以解决在线烧录模式数据冲突以及调试升级不方便的问题。
为达到上述目的,本发明提供了一种串行外设接口SPI总线电路,该SPI总线电路包括:作为主设备的第一主机和第二主机以及作为从设备的一从机;
第一主机、第二主机以及一从机上均设有SPI总线接口,第一主机的SPI总线接口、第二主机的SPI总线接口与一从机的SPI总线接口之间连接;
第一主机上设有控制接口,第二主机上设有控制引脚,第一主机经控制接口向第二主机的控制引脚发送控制指令,以实现第一主机和第二主机分时复用一从机的SPI总线接口。
可选地,第一主机上还设有用于连接USB连接器的USB接口;
第一主机,用于通过USB接口接收USB连接器传输来的调试升级指令和调试升级程序,并根据调试升级指令将调试升级程序写入从机中。
可选地,第一主机为微控制单元MCU;
第二主机为现场可编程门阵列FPGA;
一从机为队列串行外设接口闪存QSPI Flash;
第一主机MCU的控制接口为I/O口;
第二主机FPGA的控制引脚为被动配置模式下的复位引脚。
可选地,第一主机MCU,在接收到调试升级指令后,经I/O口向第二主机FPGA的被动配置模式下的复位引脚发送控制指令,使得第二主机FPGA暂停访问从机QSPI Flash;以及,
在检测到调试升级程序写入完成的指令后,经I/O口向第二主机FPGA的被动配置模式下的复位引脚发送控制指令,同时将第一主机的SPI总线接口挂起,使得第二主机FPGA恢复访问从机QSPI Flash。
可选地,第一主机经I/O口向第二主机FPGA的被动配置模式下的复位引脚发送将该被动配置模式下的复位引脚置为低电平的控制指令,使得第二主机FPGA暂停访问从机QSPI Flash;以及,
第一主机经I/O口向第二主机FPGA的被动配置模式下的复位引脚发送将该被动配置模式下的复位引脚置为高电平的控制指令,同时将第一主机的SPI总线接口挂起,使得第二主机FPGA恢复访问从机QSPI Flash。
可选地,第一主机MCU,用于将获取的调试升级程序经SPI总线接口写入从机QSPIFlash;
从机QSPI Flash,用于存储调试升级程序;
第二主机FPGA,用于经SPI总线接口从机QSPI Flash中读取调试升级程序。
根据本发明另一个方面,提供了一种电子设备,该电子设备包括:如本发明一个方面所述的SPI总线电路。
根据本发明又一个方面,提供了一种SPI总线电路的实现方法,该方法包括:
在电路中选取第一主机和第二主机作为主设备,选取一从机作为从设备;
在第一主机、第二主机以及一从机上设置SPI总线接口,将第一主机的SPI总线接口、第二主机的SPI总线接口与一从机的SPI总线接口之间连接起来;
在第一主机上设置控制接口,在第二主机上设置控制引脚,利用第一主机的控制接口向第二主机的控制引脚发送控制指令,以实现第一主机和第二主机分时复用一从机的SPI总线接口。
可选地,该方法还包括:在第一主机上设置用于连接USB连接器的USB接口;
利用第一主机,通过USB接口接收USB连接器传输来的调试升级指令和调试升级程序,并根据调试升级指令将调试升级程序写入从机中。
可选地,选取微控制单元MCU作为第一主机;
选取现场可编程门阵列FPGA作为第二主机;
选取队列串行外设接口闪存QSPI Flash作为一从机;
以及,选取I/O口为第一主机MCU的控制接口;
选取被动配置模式下的复位引脚为第二主机FPGA的控制引脚。
本发明的有益效果是:本发明的技术方案通过将作为主设备的第一主机和第二主机以及作为从设备的一从机通过SPI总线接口连接起来,同时将作为主设备的第一主机和第二主机通过控制接口和控制引脚连接起来,从而可以使第一主机通过控制接口和控制引脚向第二主机发送控制指令,来实现两个主机分时复用一从机的SPI总线接口,解决了程序在线烧录时的数据冲突问题,第一主机或者第二主机均可与从机通信实现数据的传输和存储,另外,在线烧录也省略了离线烧录的烧录设备,节省了成本,增强了系统的稳定性。
附图说明
图1是本发明一个实施例的一种SPI总线电路的结构示意图;
图2是本发明又一个实施例的一种SPI总线电路的结构示意图;
图3是本发明一个实施例的一种SPI总线电路实现方法流程图;
图4是本发明一个实施例的一种电子设备的结构示意图。
具体实施方式
本发明的核心思想是:针对现有技术中存在的问题,利用串行外设接口SPI(Serial Peripheral Interface)总线的特点,提出了一种基于SPI总线的分时复用机制,解决两主一从系统中存在的数据读取和存储的冲突问题,对数据流向进行有效管理,同时方便系统后期升级和调试。SPI总线是一种高速的、全双工、同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为电路板的布局上节省空间,简单易用。分时复用是指第一时刻由第一主机访问一从机进行数据的写入工作,第二时刻由第二主机访问一从机进行数据的读取工作,两个主机分时复用同一从机,从而避免了数据冲突问题。具体实施时可由第一主机来控制实现访问切换。
图1是本发明一个实施例的一种SPI总线电路的结构示意图,参见图1,本发明一个实施例的这种SPI总线电路100包括:
作为主设备的第一主机101和第二主机102以及作为从设备的一从机103;
第一主机101、第二主机102以及一从机103上均设有SPI总线接口,第一主机101的SPI总线接口、第二主机102的SPI总线接口与一从机103的SPI总线接口之间连接;
第一主机101上设有控制接口,第二主机102上设有控制引脚,第一主机101经控制接口向第二主机102的控制引脚发送控制指令,以实现第一主机101和第二主机102分时复用一从机103的SPI总线接口。
在本实施例中,第一主机101为微控制单元MCU;第二主机102为现场可编程门阵列FPGA;其中,主机和从机的选择是考虑到是否提供时钟信号,提供SPI串行时钟的SPI设备作为主设备或主机,其他设备则作为SPI从机或从设备。第一主机MCU的控制接口为I/O口;第二主机FPGA的控制引脚为被动配置模式下的复位引脚。通常,FPGA器件有三类配置方式:主动配置方式(AS)、被动配置方式(PS)和(JTAG)配置方式,PS(passive serial)模式即被动串行的加载方式,在这个模式下,FPGA被动的等待配置起始信号,然后接受配置文件,完成配置。即每次在FPGA上电时,由外部器件完成FPGA的配置。在本实施例中,将第二主机FPGA的PS Reset引脚即被动配置模式下的复位引脚作为控制引脚,通过该PS Reset引脚接收第一主机MCU的I/O输出的控制指令,确定访问从机的时段。
一从机103为队列串行外设接口闪存QSPI Flash,QSPI是在SPI接口协议的基础上通过增加队列传输机制而形成的接口协议,SPI只有1个8位的发送数据寄存器,所以每次最多只能准备一个字节的待发送数据,而QSPI拥有16个QSPI传输控制组的传输队列,所以每次最多可以准备16个待传输的数据。通过QSPI用户可以一次性的传输包含多达16个8位或16位数据的传输队列,极大的提高了传输效率。
需要说明的是,本发明一个实施例的采用的是QSPI Flash,但在本发明的其他实施例中,可以选择SPI Flash或者其他ROM存储器作为从机,应当根据存储器数据存储容量以及主机的具体使用需求来进行选择,对此不作限制。
在图1所示的电路中,第一主机MCU通过SPI总线将系统配置信息烧写到从机QSPIFlash中,第二主机FPGA通过SPI总线访问从机QSPI Flash来读取存储器中的系统配置信息,第一主机MCU通过控制第二主机FPGA的控制引脚PS RESET来实现两主机通过SPI总线分时复用访问从机QSPI Flash的SPI总线接口的功能,解决了第一主机和第二主机同时访问从机的数据冲突问题,也节省了硬件成本并提高了系统的稳定性。
图2是本发明又一个实施例的一种SPI总线电路的结构示意图;参见图2,这种SPI总线电路100包括:作为主设备的第一主机101和第二主机102以及作为从设备的一从机103;
第一主机101上还设有用于连接USB连接器的USB接口;
第一主机101用于通过USB接口接收USB连接器传输来的调试升级指令和调试升级程序,并根据调试升级指令将调试升级程序写入从机中。
第一主机MCU,在接收到调试升级指令后,经I/O口向第二主机FPGA的被动配置模式下的复位引脚发送控制指令,使得第二主机FPGA暂停访问从机QSPI Flash;以及,在检测到调试升级程序写入完成的指令后,经I/O口向第二主机FPGA的被动配置模式下的复位引脚发送控制指令,同时将第一主机的SPI总线接口挂起,使得第二主机FPGA恢复访问从机QSPI Flash。
本实施例中,第一主机经I/O口向第二主机FPGA的被动配置模式下的复位引脚发送将该被动配置模式下的复位引脚置为低电平的控制指令,使得第二主机FPGA暂停访问从机QSPI Flash;以及,第一主机经I/O口向第二主机FPGA的被动配置模式下的复位引脚发送将该被动配置模式下的复位引脚置为高电平的控制指令,同时将第一主机的SPI总线接口挂起,使得第二主机FPGA恢复访问从机QSPI Flash。
具体的工作过程为:当系统进行设备固件升级DFU(Device Firmware Upgrade)调试和升级时,第一主机MCU通过USB接口检测到DFU调试和升级指令后,通过I/O端口输出低电平,使第二主机FPGA的PS RESET端口置低,从而使第二主机FPAG的SPI总线端挂起;当上述配置完成后,第一主机MCU通过SPI总线访问从机QSPI FALSH,将由USB传输通道传输来的调试和升级的程序经SPI通道传输至从机QSPI FALSH;当第一主机MCU检测到程序调试和升级完成指令后,第一主机MCU的I/O端口输出高电平,使第二主机FPGA的PS RESET端口置高,使第二主机FPAG的SPI总线端释放,同时第一主机MCU的SPI端口配置为输入高阻状态,使第一主机MCU的SPI总线挂起,能够通过SPI总线实现从机QSPI FALSH与第二主机FPGA的通信。从而实现了实现两主机通过SPI总线分时复用访问从机QSPI Flash的SPI总线接口的功能。
与上述SPI总线电路相对应的,本发明还提供了一种SPI总线电路的实现方法,图3是本发明一个实施例的一种SPI总线电路实现方法流程图参见图3,该方法包括:
步骤S301,在电路中选取第一主机和第二主机作为主设备,选取一从机作为从设备;
步骤S302,在第一主机、第二主机以及一从机上设置SPI总线接口,将第一主机的SPI总线接口、第二主机的SPI总线接口与一从机的SPI总线接口之间连接起来;
步骤S303,在第一主机上设置控制接口,在第二主机上设置控制引脚,利用第一主机的控制接口向第二主机的控制引脚发送控制指令,以实现第一主机和第二主机分时复用一从机的SPI总线接口。
在本实施例中,该方法还包括:在第一主机上设置用于连接USB连接器的USB接口;
利用第一主机,通过USB接口接收USB连接器传输来的调试升级指令和调试升级程序,并根据调试升级指令将调试升级程序写入从机中。
在本实施例中,选取微控制单元MCU作为第一主机;
选取现场可编程门阵列FPGA作为第二主机;
选取队列串行外设接口闪存QSPI Flash作为一从机;以及,选取I/O口为第一主机MCU的控制接口;
选取被动配置模式下的复位引脚为第二主机FPGA的控制引脚。
需要说明的是,本发明的这种SPI总线电路的实现方法是和前述的SPI总线电路相对应的,因而该SPI总线电路的实现方法实现步骤可以参见前述SPI总线电路的部分的具体说明,在此不再赘述。
此外本发明还提供了一种电子设备,图4是本发明一个实施例的一种电子设备的结构示意图,参见图4,该电子设备400包括:SPI总线电路100。本发明的这种电子设备400由于具有该SPI总线电路100,因而能够在线烧录程序并且避免了数据冲突,稳定性强,成本低。在本发明的一个实施例中,该电子设备可以是头戴式显示设备(HMD)。
综上所述,本发明的技术方案通过将作为主设备的第一主机和第二主机以及作为从设备的一从机通过SPI总线接口连接起来,同时将作为主设备的第一主机和第二主机通过控制接口和控制引脚连接起来,从而可以使第一主机通过控制接口和控制引脚向第二主机发送控制指令,来实现两个主机分时复用一从机的SPI总线接口,解决了程序在线烧录时的数据冲突问题,第一主机或者第二主机均可与从机通信实现数据的传输和存储,增强了系统的稳定性。另外,在线烧录也省略了离线烧录的烧录设备,节省了硬件成本。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。