一种基于双控制器的SPI通信方法、终端设备及存储介质与流程

文档序号:17950134发布日期:2019-06-18 23:57阅读:166来源:国知局
一种基于双控制器的SPI通信方法、终端设备及存储介质与流程

本发明涉及工业控制领域,特别涉及一种基于双控制器的spi通信方法、终端设备及存储介质。



背景技术:

在安全信息产品中,不管是数据通信还是身份认证过程,都需要用到加密算法,很多产品的主处理器上不附带加密引擎,所以必须在主处理器外增加一个加密芯片,主处理器芯片可以通过这个加密芯片进行数据加解密等功能。串行外设接口spi(serialperipheralinterface)为一种常用的主处理器和加密芯片的通信方式。

spi总线系统是一种同步串行外设接口总线。它采用的是主从工作方式,在这种模式下通常有一个主设备(master)和一个或多个从设备(slave)。主机控制数据传输,从机配合主机完成传输任务。硬件资源上,它通常采用的是四线制进行双向通信,三线制实现单向传输,在通信过程中,主机首先通过片选信号线cs(chipselect)选中从机,然后主机将已装入8位移位寄存器中的数据在8个时钟信号sclk(serialclock)的驱动下,通过spi总线主机输出/从机输入信号线mosi(masteroutputslaveinput,串行数据输出)管脚送到从机的移位寄存器中,于此同时,从机中数据也通过spi总线主机输入/从机输出信号线miso(masterinput,slaveoutput)管脚移送到主机中。在整个通信过程中信号线只能由主设备控制,从机对通信过程没有控制作用。

对于加密芯片而言,需要对数据的传输过程进行控制,即加密芯片对主处理器发送过来的数据进行加解密处理后在发送给主处理器,所以需要有一个控制信号对主处理器何时进行数据接收进行控制,本工程领域的开发人员目前的技术方案基本是采用增加外部信号线来同步主从机之间的数据通信,比如申请号为201110387599.5的发明《一种基于spi总线的双处理器通信方法》就是在spi四线制的基础上增加一条控制信号线,形成五线制的spi总线来进行双向通信的同步机制。基于惯性思维,本行业应用开发人员通常会以增加外部通信线的方式来控制spi的同步机制。



技术实现要素:

为了解决上述问题,本发明旨在提供一种基于双控制器的spi通信方法、终端设备及存储介质,在不额外增加外部信号线的情况下,应用spi总线本身的四线制和程序控制逻辑来实现主处理器和加密芯片之间的数据通信。

具体方案如下:

一种基于双控制器的spi通信方法,包括以下步骤:

s10:将主设备设置为主机模式,将从设备设置为从机模式,主设备和从设备之间通过miso、mosi、sclk和cs四线spi信号相连,其中miso、mosi和sclk信号的设置与通用spi信号设置相同,cs信号用来控制主设备用于发送数据还是接受数据;

s20:当主设备接收到发送数据给从设备的任务时,将要发送的数据组成数据帧后存入主设备中的数据发送链表;

s30:实时判断主设备中的数据发送链表内是否有数据,如果有,且cs引脚为低电平时,从发送链表获取一个数据帧,将该数据帧发送给从设备,当该数据帧发送完成后停止发送数据;

s40:从设备将主设备发送过来的数据存入接收缓冲区内;

s50:从设备定时扫描接收缓冲区,当接收缓冲区内的数据组成一个完整的数据帧时,对该数据帧内进行处理,处理后生成一组新的数据,将处理后的数据重新组成数据帧后写入从设备的发送缓冲区,然后将cs引脚设置为高电平,等待主设备从从设备读取该数据;

s60:主设备接收到cs引脚为高的信号时,从从设备读取数据,每读取一个字节检测一次cs引脚的电平高低情况,如果cs引脚为高电平,继续读取数据,如果cs引脚是低电平,停止读取数据,开始进行下一个数据帧的发送的准备工作;

s70:当从设备每次被主设备读取完一个字节时,将从设备发送缓冲区内的数据转移到从设备的移位寄存器中等待主设备的下一次读取,如果从设备的发送缓冲区内没有数据时,从设备将cs引脚设置为低电平。

进一步的,所述数据帧包括数据任务的id号、校验码、数据长度、数据域和请求类型。

进一步的,步骤s50中的所述处理包括校验数据帧,解析数据帧和处理数据。

进一步的,所述处理数据包括其中的一种或多种:加密数据、解密数据、生成摘要、生成随机数。

一种基于双控制器的spi通信终端设备,包括存储器、设备以及存储在所述存储器中并可在所述设备上运行的计算机程序,所述设备执行所述计算机程序时实现本发明基于双控制器的spi通信方法法的步骤。

一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本发明基于双控制器的spi通信方法的步骤。

本发明采用如上技术方案,提供了一种基于双控制器的spi通信方法,在不额外增加外部引线的情况下,使用spi总线本身的四线制来进行主处理器和加密芯片的数据通信,通过把cs引脚设置成普通的输入输出引脚,并通过程序逻辑控制,灵活应用cs的功能,可以有效的协调主设备和从设备的通信问题,节省处理器的外部引脚资源。

附图说明

图1所示为本发明实施例一的步骤示意图。

具体实施方式

为进一步说明各实施例,本发明提供有附图。这些附图为本发明揭露内容的一部分,其主要用以说明实施例,并可配合说明书的相关描述来解释实施例的运作原理。配合参考这些内容,本领域普通技术人员应能理解其他可能的实施方式以及本发明的优点。图中的组件并未按比例绘制,而类似的组件符号通常用来表示类似的组件。

现结合附图和具体实施方式对本发明进一步说明。

实施例一:

本发明实施例一提供了一种基于双控制器的spi通信方法,如图1所示,其为本发明实施例一所述的基于双控制器的spi通信方法的流程示意图,所述方法可包括以下步骤:

s10:将主设备设置为主机模式,将从设备设置为从机模式,主设备和从设备之间通过四线spi信号相连。

所述四线spi信号分别为:miso、mosi、sclk和cs,其中miso、mosi和sclk信号的设置与通用spi信号设置相同,cs信号的设置与通用的片选设置不同。

miso为主设备数据输入,从设备数据输出;

mosi为主设备数据输出,从设备数据输入;

sclk为时钟信号,由主设备控制输出;

cs为方向选择控制信号,主设备为输入,从设备为输出,此信号用来控制主设备用于发送数据还是接受数据。

该实施例中,所述主设备为主处理器芯片,采用的型号为恩智浦处理器mc9s12,所述从设备为加密芯片,型号为国民技术的加密芯片is8u256。加密芯片对主处理器芯片发送过来的数据进行处理后再将处理后的数据发送给主处理器芯片,主处理器芯片接收到第一组处理后的数据后再重新发送第二组数据给加密芯片进行处理。由于该主处理器芯片的发送和接收过程有时序的要求,所以不同通过通用的spi功能实现,该实施例中通过将通用spi信号中的cs信号设定为发送接收选择信号,用于控制主处理器芯片的发送接收时序,以达到预期的目标。

s20:当主设备接收到发送数据给从设备的任务时,将要发送的数据组成数据帧后存入主设备中的数据发送链表。

所述数据帧包括数据任务的id号、校验码、数据长度、数据域和请求类型。

s30:实时判断主设备中的数据发送链表内是否有数据,如果有,且cs引脚为低电平时,从发送链表获取一个数据帧,将该数据帧发送给从设备,当该数据帧发送完成后停止发送数据。

所述数据发送给从设备的过程为通用的spi数据发送过程,即所述数首先将数据帧存入主设备的发送缓冲区内,再将发送缓冲区的数据以一个字节为单位转移到主设备的移位寄存器内,将主设备移位寄存器内的8位即一个字节的数据向从设备的移位寄存器内转移。

s40:从设备将主设备发送过来的数据存入接收缓冲区内。

所述主设备发送过来的数据先存入从设备的移位寄存器内,在从移位寄存器转移到从设备的接收缓冲区内,由于移位寄存器通常为8位,所以该实施例中数据存入接收缓冲区以一个字节即8位为单位。

s50:从设备定时扫描接收缓冲区,当接收缓冲区内的数据组成一个完整的数据帧时,对该数据帧内进行处理,处理后生成一组新的数据,将处理后的数据重新组成数据帧后写入从设备的发送缓冲区,然后将cs引脚设置为高电平,等待主设备从从设备读取该数据。

该实施例中所述处理包括校验数据帧,解析数据帧和处理数据。

该实施例中所述处理数据包括其中的一种或多种:加密数据、解密数据、生成摘要、生成随机数。

s60:主设备接收到cs引脚为高的信号时,从从设备读取数据,每读取一个字节检测一次cs引脚的电平高低情况,如果cs引脚为高电平,代表着数据还没读取完毕,继续读取数据,如果cs引脚是低电平,代表数据已经读取完毕,停止读取数据,开始进行下一个数据帧的发送的准备工作。

s70:当从设备每次被主设备读取完一个字节时,将从设备发送缓冲区内的数据转移到从设备的移位寄存器中等待主设备的下一次读取,如果从设备的发送缓冲区内没有数据时,从设备将cs引脚设置为低电平,通知主设备数据已经全部发送完成,并可以接受下一个请求。

本发明实施例一提供了一种基于双控制器的spi通信方法,在不额外增加外部引线的情况下,使用spi总线本身的四线制来进行主处理器和加密芯片的数据通信,通过把cs引脚设置成普通的输入输出引脚,并通过程序逻辑控制,灵活应用cs的功能,可以有效的协调主设备和从设备的通信问题,节省处理器的外部引脚资源。

实施例二:

本发明还提供一种基于双控制器的spi通信终端设备,包括存储器、设备以及存储在所述存储器中并可在所述设备上运行的计算机程序,所述设备执行所述计算机程序时实现本发明实施例一的上述方法实施例中的步骤。

进一步地,作为一个可执行方案,所述基于双控制器的spi通信终端设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述基于双控制器的spi通信终端设备可包括,但不仅限于,设备、存储器。本领域技术人员可以理解,上述基于双控制器的spi通信终端设备的组成结构仅仅是基于双控制器的spi通信终端设备的示例,并不构成对基于双控制器的spi通信终端设备的限定,可以包括比上述更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述基于双控制器的spi通信终端设备还可以包括输入输出设备、网络接入设备、总线等,本发明实施例对此不做限定。

进一步地,作为一个可执行方案,所称处理器可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述基于双控制器的spi通信终端设备的控制中心,利用各种接口和线路连接整个基于双控制器的spi通信终端设备的各个部分。

所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述基于双控制器的spi通信终端设备的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

进一步地,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例上述方法的步骤。

所述基于双控制器的spi通信终端设备集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

尽管结合优选实施方案具体展示和介绍了本发明,但所属领域的技术人员应该明白,在不脱离所附权利要求书所限定的本发明的精神和范围内,在形式上和细节上可以对本发明做出各种变化,均为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1