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

技术编号:21398853 阅读:30 留言:0更新日期:2019-06-19 06:57
本发明专利技术涉及一种基于双控制器的SPI通信方法、终端设备及存储介质,在该方法中,将主设备设置为主机模式,将从设备设置为从机模式,主设备和从设备之间通过四线SPI信号相连,其中CS信号用来控制主设备用于发送数据还是接受数据;且CS引脚为低电平时,主设备将一个数据帧发送给从设备,当该数据帧发送完成后停止发送数据;开始从从设备接收数据,CS引脚的电平高低由从设备来设置,当从设备开始接收数据时,将CS引脚设置为低电平,当从设备的将接收到的数据进行处理并发送主设备完成时,将CS引脚设置为高电平。本发明专利技术在不额外增加外部信号线的情况下,应用SPI总线本身的四线制和程序控制逻辑来实现主处理器和加密芯片之间的数据通信。

【技术实现步骤摘要】
一种基于双控制器的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引脚为低电平时,从发送链表获取一个数据帧,将该数据帧发送给从设备,当该数据帧发送完成后停止发送数据。所述数据发送给从设备的过程为本文档来自技高网
...

【技术保护点】
1.一种基于双控制器的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引脚设置为低电平。...

【技术特征摘要】
1.一种基于双控制器的SPI通信方法,其特征在于:包括以下步骤:S10:将主设备设置为主机模式,将从设备设置为从机模式,主设备和从设备之间通过MISO、MOSI、SCLK和CS四线SPI信号相连,其中MISO、MOSI和SCLK信号的设置与通用SPI信号设置相同,CS信号用来控制主设备用于发送数据还是接受数据;S20:当主设备接收到发送数据给从设备的任务时,将要发送的数据组成数据帧后存入主设备中的数据发送链表;S30:实时判断主设备中的数据发送链表内是否有数据,如果有,且CS引脚为低电平时,从发送链表获取一个数据帧,将该数据帧发送给从设备,当该数据帧发送完成后停止发送数据;S40:从设备将主设备发送过来的数据存入接收缓冲区内;S50:从设备定时扫描接收缓冲区,当接收缓冲区内的数据组成一个完整的数据帧时,对该数据帧内进行处理,处理后生成一组新的数据,将处理后的数据重新组成数据帧后写入从设备的发送缓冲区,然后将CS引脚设置为高电平,等待主设备从从设备读取该数据;S60:主设备接收到CS引脚为高的信号时,从从设备读取数据,每读取一个字节检测一次CS引脚的电平高低情况,如果CS引脚为高电平,继续读取数...

【专利技术属性】
技术研发人员:刘炯钟温禧周炜峰牛方超蔡江为
申请(专利权)人:厦门雅迅网络股份有限公司
类型:发明
国别省市:福建,35

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1