一种spi通讯接口的制作方法

文档序号:6396710阅读:285来源:国知局
专利名称:一种spi通讯接口的制作方法
技术领域
本实用新型属DCS (分散控制系统)技术领域,具体涉及一种应用于卡件内部及卡件之间芯片SPI通讯接口。
背景技术
分散控制系统(DCS)广泛地应用于电力、冶金、石油化工等各个行业。随着DCS的发展,单模块双单片机甚至多单片机的情况越来越多,或者是单模块有多个可编程芯片。SPI通讯协议灵活、可控度高,而且很多CPU芯片已经支持带DMA的SPI通讯,使SPI通讯变得更加简单便捷,并且占用CPU的时间更少,所以很多芯片间的通讯都采用SPI协议的通讯模式。SPI通讯的双方分为主机和一个或多个从设备,一般使用4条线:串行时钟线(SCK)、主机输入/从机输出数据线MIS0、主机输出/从机输入数据线MOSI和低电平有效的从机选择线CS。一般的SPI通讯时,主机处于主动和主导的地位,从机只能被动接受。但是作为从机的芯片一般还需要执行其他命令和任务,而被动地接受主机的通讯命令不可避免的要打断和影响当前执行的任务,尤其是如果双方的通讯内容是不断更新的数据的话,从机被动地接受SPI通讯命令可能会打断当前的数据采集或者打断数据区赋值,造成从机采集到的数据不可靠和数据错位等问题,甚至有可能引起很严重的故障。
发明内容
本实用新型要解决的技术问题是提供一种SPI通讯接口,避免SPI通讯中处于从机地位的可编程芯片的当前任务被打断,也避免了通讯传输的数据发生错位等问题,提高传输效率和处理器的运算效率。为达到上述目的,采用的技术方案是:一种SPI通讯接口,包括SPI通讯的主机与至少一台从机、MISO线、MOSI线、SCK线和CS线,其特征在于:每台所述从机都有一条Ready线与所述主机连接,用于确保SPI通讯的数据完整。本实用新型的积极效果是:通过在SPI通讯的主机和每台从机间增设一条Ready线,使从机拥有对通讯的主动权,消除了现有SPI通讯中从机被动接受通讯指令时被打断当前操作的影响。同时由于CS线的存在,SPI通讯的主机也没有丢失对通讯的控制权,主机和从机都不会因被动的接受通讯命令而打断自己的其他任务,从而能使SPI通讯的质量显著提高,确保了 SPI通讯的数据完整,也提高了 SPI通讯的主机和从机的CPU的工作效率。

图1是现有SPI通讯的硬件原理框图;图2是本实用新型的SPI通讯的硬件原理框图;图3是本实用新型的SPI通讯方法的单字节时序图;[0011]图4是本实用新型的第一种通讯方法多字节通讯时的时序图;图5是本实用新型的第二种通讯方法多字节通讯时的时序图;图6是本实用新型的第一种通讯方法多字节通讯时从机的流程图;图7是本实用新型的第一种通讯方法多字节通讯时主机的流程图;图8是本实用新型的第二种通讯方法多字节通讯时从机的流程图;图9是本实用新型的第二种通讯方法多字节通讯时主机的流程图。
具体实施方式
一种SPI通讯接口,包括SPI通讯的主机与至少一台从机、MISO线、MOSI线、SCK线和CS线,其特征在于:每台所述从机都有一条Ready线与所述主机连接,用于确保SPI通讯的数据完整。使用上述SPI通讯接口,第一种确保数据完整的通讯方法,其特征在于,包括以下步骤:(I)从机数据采集完毕并将数据放入SPI发送buff区,准备好进行SPI通讯时,拉低Ready线;(2)主机检测到某从机Ready线为低时,拉低该从机对应的CS线;(3)主机与该从机进行SPI通讯;
·[0022](4)通讯完毕,主机拉高CS线,从机拉高Ready线。使用上述SPI通讯接口,第二种确保数据完整的通讯方法,其特征在于,包括以下步骤:(I)从机数据采集完毕并将数据放入SPI发送buff区,准备好进行SPI通讯时,拉低Ready线;(2)主机检测到某从机Ready线为低时,拉低该从机对应的CS线;(3)该从机与主机开始SPI通讯,传输一个字节;(4)判断数据传输是否完毕,传输完毕则转至步骤(7),未完毕则转至步骤(5);(5)从机将下一字节放入SPI数据寄存器,并翻转一次Ready线的电平;(6)主机根据传送的字节数判断Ready线电平是否正确,正确则转至步骤(3),不正确则转至步骤(7);(7)主机拉高CS线,从机拉高Ready线,通讯结束。图1是现有SPI通讯的硬件原理框图,图2是本实用新型的SPI通讯的硬件原理框图,对比图1和图2可见,本实用新型的SPI通讯比现有的SPI通讯在硬件上多了一条Ready线,这条线的信号由从机输出,输入到主机,是从机对整个SPI通讯的控制线,这条线使主机在整个SPI通讯中有了主动权,因此,从机当前执行的任务如数据采集等不再被主机发出的SPI通讯命令打断。图3是本实用新型的SPI通讯方法的单字节时序图,由时序图中可以看出,只有在Ready线拉低之后CS线才会拉低,而只有在Ready和CS线都是低的情况下CLK才会有效,从而数据才会有效,正是Ready线和CS线的存在,才使SPI通讯的主机和从机双方都有了主控权,主机和从机都不会因被动的接受通讯命令而打断自己的其他任务,从而能保证SPI通讯的数据和其他数据完整和真实准确。[0033]本实用新型有两种通讯模式:图4是本实用新型的第一种通讯方法多字节通讯时的时序图,图5是本实用新型的第二种通讯方法多字节通讯时的时序图。两种通讯模式的相同之处在于,从机都有Ready控制线,都对通讯有控制权;不同之处在于第一种模式Ready线只翻转一次,开始通讯之前拉低,通讯完毕拉高,适用于对通讯速度要求高的情况,主机、从机都可以用DMA等快速数据传输手段;而第二种模式在每个字节传输完毕Ready线都翻转一次,在这种情况下,主机在除第一个字节以外的每个字节传输之前都需要判定Ready线的电平,从而更能确保通讯的正确性,但这种模式的缺陷在于,由于每次从机都要翻转Ready线而主机每次都需要判定Ready线的状态,从而降低了 SPI的通讯速度,并且不能使用DMA等高速通讯方法。所以在使用时可以根据实际情况来选择使用第一种模式还是第二种模式。图6是本实用新型的第一种通讯方法多字节通讯时从机的流程图,图7是本实用新型的第一种通讯方法多字节通讯时主机的流程图。如图所示,当从机数据准备好时,拉低Ready线;主机检测到某从机Ready线为低时,拉低该从机对应的CS线;主机与该从机进行SPI通讯;通讯完毕,主机拉高CS线,从机拉高Ready线。图8是本实用新型的第二种通讯方法多字节通讯时从机的流程图,图9是本实用新型的第二种通讯方法多字节通讯时主机的流程图。如图所示:(1)从机数据采集完毕并将数据放入SPI发送buff区,准备好进行SPI通讯时,拉低Ready线;(2)主机检测到某从机Ready线为低时,拉低该从机对应的CS线;(3)该从机与主机开始SPI通讯,传输一个字节;(4)判断数据传输是否完毕,传输完毕则转至步骤(7),未完毕则转至步骤(5);(5)从机将下一字节放入SPI数据寄存器,并翻转一次Ready线的电平;(6)主机根据传送的字节数判断Ready线电平是否正确,正确则转至步骤(3),不正确则转至步骤(7);(7)主机拉高CS线,从机拉高Ready线,通讯结束。由上述两种通讯模式的流程图可以看出,在每次通讯开始前,都要对Ready线进行操作,这是从机可以选择何时开始通讯,而主机因为CS线的存在,也没有丢失对通讯的控制权,这样从机可以在数据采集或者其他任务完成后来控制Ready线通知主机可以通讯,而主机也可以选择在其他任务完成后来控制CS线来开始通讯,这样主机和从机都拥有的控制权使通讯变得可控性非常强,使主机和从机的其他操作不会被打断,保证了其他操作的设计到的数据完整性。实验验证:对于本实用新型的性能进行测试,同现有SPI通讯方式进行对比,两者硬件电路相同,都采用主机为LPC2136、二从机为STM32F103,主机同时进行多种通讯,从机同时进行脉冲量的计频测量,测量范围为I一 10000Hz。实验证明,当采用传统的SPI通讯方法时,从机因为被动的接受通讯命令,在脉冲频率较高的时候或者脉冲频率较低的时候,从机的计频操作会被SPI通讯打断,从而造成计算结果跟输入的信号源不一致。当采用本实用新型的SPI通讯方法时,从机选择在计算完毕后拉低Ready线开始通讯,经过长时间的观察,从机的计算结果跟输入的信号保持一致,在测量范围内,误差为±1Ηζ。由实验结果可知,本实用新型能确保SPI通讯双方其他操作的正确性,能确保SPI通讯双方执行其他计算 时涉及到的数据的完整。
权利要求1.一种SPI通讯接口,包括SPI通讯的主机与至少一台从机、MISO线、MOSI线、SCK线和CS线,其特征在于:每台所述从机都有一条Ready线与所述主机连接,用于确保SPI通讯的数据完整 。
专利摘要本实用新型属分散控制系统技术领域,涉及一种SPI通讯接口,要解决从机在被动接受通讯指令时可能会打断当前的数据采集或打断数据区赋值,造成从机采集到的数据不可靠或数据错位等技术问题。SPI通讯接口包括SPI通讯的主机与至少一台从机、MISO线、MOSI线、SCK线和CS线,其特征在于每台所述从机都有一条Ready线与所述主机连接,用于确保SPI通讯的数据完整。利用上述SPI通讯接口,可有两种通讯方法来确保SPI通讯的数据完整。本实用新型通过在SPI通讯的主机和从机间增设一条Ready线,消除了现有SPI通讯中从机被动接受通讯指令时被打断当前操作的影响,确保了SPI通讯的数据完整。
文档编号G06F13/38GK203117968SQ201220735758
公开日2013年8月7日 申请日期2012年12月28日 优先权日2012年12月28日
发明者李炜玮, 邵继红 申请人:上海自动化仪表股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1