《一种确保数据完整的SPI通讯接口及其通讯方法.pdf》由会员分享,可在线阅读,更多相关《一种确保数据完整的SPI通讯接口及其通讯方法.pdf(12页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103077144 A(43)申请公布日 2013.05.01CN103077144A*CN103077144A*(21)申请号 201210580697.5(22)申请日 2012.12.28G06F 13/38(2006.01)G06F 13/40(2006.01)(71)申请人上海自动化仪表股份有限公司地址 200233 上海市徐汇区虹漕路41号(72)发明人李炜玮 邵继红(74)专利代理机构上海申汇专利代理有限公司 31001代理人俞宗耀 俞昉(54) 发明名称一种确保数据完整的SPI通讯接口及其通讯方法(57) 摘要本发明属分散控制系统技术领域,涉及一种确保。
2、数据完整的SPI通讯接口及其通讯方法,包括SPI通讯的主机与至少一台从机、MISO线、MOSI线、SCK线和CS线,其特征在于:每台所述从机都有一条Ready线与所述主机连接,用于确保SPI通讯的数据完整。利用上述SPI通讯接口,本发明提供了两种通讯方法来确保SPI通讯的数据完整。本发明通过在SPI通讯的主机和从机间增设一条Ready线,消除了现有SPI通讯中从机被动接受通讯指令时被打断当前操作的影响,确保了SPI通讯的数据完整。(51)Int.Cl.权利要求书1页 说明书4页 附图6页(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书1页 说明书4页 附图6页(10)申请公布。
3、号 CN 103077144 ACN 103077144 A1/1页21.一种确保数据完整的SPI通讯接口,包括SPI通讯的主机与至少一台从机、MISO线、MOSI线、SCK线和CS线,其特征在于:每台所述从机都有一条Ready线与所述主机连接,用于确保SPI通讯的数据完整。2.使用如权利要求1所述一种SPI通讯接口确保数据完整的通讯方法,其特征在于,包括以下步骤:(1) 从机数据采集完毕并将数据放入SPI发送buff区,准备好进行SPI通讯时,拉低Ready线;(2) 主机检测到某从机Ready线为低时,拉低该从机对应的CS线;(3) 主机与该从机进行SPI通讯;(4) 通讯完毕,主机拉高C。
4、S线,从机拉高Ready线。3.使用如权利要求1所述一种SPI通讯接口确保数据完整的通讯方法,其特征在于,包括以下步骤:(1) 从机数据采集完毕并将数据放入SPI发送buff区,准备好进行SPI通讯时,拉低Ready线;(2) 主机检测到某从机Ready线为低时,拉低该从机对应的CS线;(3) 该从机与主机开始SPI通讯,传输一个字节;(4) 判断数据传输是否完毕,传输完毕则转至步骤(7),未完毕则转至步骤(5);(5) 从机将下一字节放入SPI数据寄存器,并翻转一次Ready线的电平;(6) 主机根据传送的字节数判断Ready线电平是否正确,正确则转至步骤(3),不正确则转至步骤(7);(7。
5、) 主机拉高CS线,从机拉高Ready线,通讯结束。权 利 要 求 书CN 103077144 A1/4页3一种确保数据完整的 SPI 通讯接口及其通讯方法技术领域0001 本发明属DCS(分散控制系统)技术领域,具体涉及一种应用于卡件内部及卡件之间芯片SPI通讯接口及其确保SPI通讯数据完整的方法。背景技术0002 分散控制系统(DCS)广泛地应用于电力、冶金、石油化工等各个行业。随着DCS的发展,单模块双单片机甚至多单片机的情况越来越多,或者是单模块有多个可编程芯片。SPI通讯协议灵活、可控度高,而且很多CPU芯片已经支持带DMA的SPI通讯,使SPI通讯变得更加简单便捷,并且占用CPU的。
6、时间更少,所以很多芯片间的通讯都采用SPI协议的通讯模式。0003 SPI通讯的双方分为主机和一个或多个从设备,一般使用4条线:串行时钟线(SCK)、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI和低电平有效的从机选择线CS。0004 一般的SPI通讯时,主机处于主动和主导的地位,从机只能被动接受。但是作为从机的芯片一般还需要执行其他命令和任务,而被动地接受主机的通讯命令不可避免的要打断和影响当前执行的任务,尤其是如果双方的通讯内容是不断更新的数据的话,从机被动地接受SPI通讯命令可能会打断当前的数据采集或者打断数据区赋值,造成从机采集到的数据不可靠和数据错位等问题,甚至有。
7、可能引起很严重的故障。发明内容0005 本发明要解决的技术问题是提供一种SPI通讯接口以及利用其确保单片机间或者其他可编程芯片间的SPI通讯的数据完整的通讯方法,避免SPI通讯中处于从机地位的可编程芯片的当前任务被打断,也避免了通讯传输的数据发生错位等问题,提高传输效率和处理器的运算效率。0006 为达到上述目的,采用的技术方案是:一种确保数据完整的SPI通讯接口,包括SPI通讯的主机与至少一台从机、MISO线、MOSI线、SCK线和CS线,其特征在于:每台所述从机都有一条Ready线与所述主机连接,用于确保SPI通讯的数据完整。0007 使用上述SPI通讯接口,第一种确保数据完整的通讯方法,。
8、其特征在于,包括以下步骤:(1) 从机数据采集完毕并将数据放入SPI发送buff区,准备好进行SPI通讯时,拉低Ready线;(2) 主机检测到某从机Ready线为低时,拉低该从机对应的CS线;(3) 主机与该从机进行SPI通讯;(4) 通讯完毕,主机拉高CS线,从机拉高Ready线。0008 使用上述SPI通讯接口,第二种确保数据完整的通讯方法,其特征在于,包括以下步骤:说 明 书CN 103077144 A2/4页4(1) 从机数据采集完毕并将数据放入SPI发送buff区,准备好进行SPI通讯时,拉低Ready线;(2) 主机检测到某从机Ready线为低时,拉低该从机对应的CS线;(3) 。
9、该从机与主机开始SPI通讯,传输一个字节;(4) 判断数据传输是否完毕,传输完毕则转至步骤(7),未完毕则转至步骤(5);(5) 从机将下一字节放入SPI数据寄存器,并翻转一次Ready线的电平;(6) 主机根据传送的字节数判断Ready线电平是否正确,正确则转至步骤(3),不正确则转至步骤(7);(7) 主机拉高CS线,从机拉高Ready线,通讯结束。0009 本发明的积极效果是:通过在SPI通讯的主机和每台从机间增设一条Ready线,使从机拥有对通讯的主动权,消除了现有SPI通讯中从机被动接受通讯指令时被打断当前操作的影响。同时由于CS线的存在,SPI通讯的主机也没有丢失对通讯的控制权,主。
10、机和从机都不会因被动的接受通讯命令而打断自己的其他任务,从而能使SPI通讯的质量显著提高,确保了SPI通讯的数据完整,也提高了SPI通讯的主机和从机的CPU的工作效率。附图说明0010 图1是现有SPI通讯的硬件原理框图;图2是本发明的SPI通讯的硬件原理框图;图3是本发明的SPI通讯方法的单字节时序图;图4是本发明的第一种通讯方法多字节通讯时的时序图;图5是本发明的第二种通讯方法多字节通讯时的时序图;图6是本发明的第一种通讯方法多字节通讯时从机的流程图;图7是本发明的第一种通讯方法多字节通讯时主机的流程图;图8是本发明的第二种通讯方法多字节通讯时从机的流程图;图9是本发明的第二种通讯方法多字。
11、节通讯时主机的流程图。具体实施方式0011 一种确保数据完整的SPI通讯接口,包括SPI通讯的主机与至少一台从机、MISO线、MOSI线、SCK线和CS线,其特征在于:每台所述从机都有一条Ready线与所述主机连接,用于确保SPI通讯的数据完整。0012 使用上述SPI通讯接口,第一种确保数据完整的通讯方法,其特征在于包括以下步骤:(1) 从机数据采集完毕并将数据放入SPI发送buff区,准备好进行SPI通讯时,拉低Ready线;(2) 主机检测到某从机Ready线为低时,拉低该从机对应的CS线;(3) 主机与该从机进行SPI通讯;(4) 通讯完毕,主机拉高CS线,从机拉高Ready线。001。
12、3 使用上述SPI通讯接口,第二种确保数据完整的通讯方法,其特征在于,包括以下步骤:说 明 书CN 103077144 A3/4页5(1) 从机数据采集完毕并将数据放入SPI发送buff区,准备好进行SPI通讯时,拉低Ready线;(2) 主机检测到某从机Ready线为低时,拉低该从机对应的CS线;(3) 该从机与主机开始SPI通讯,传输一个字节;(4) 判断数据传输是否完毕,传输完毕则转至步骤(7),未完毕则转至步骤(5);(5) 从机将下一字节放入SPI数据寄存器,并翻转一次Ready线的电平;(6) 主机根据传送的字节数判断Ready线电平是否正确,正确则转至步骤(3),不正确则转至步骤。
13、(7);(7) 主机拉高CS线,从机拉高Ready线,通讯结束。0014 图1是现有SPI通讯的硬件原理框图,图2是本发明的SPI通讯的硬件原理框图,对比图1和图2可见,本发明的SPI通讯比现有的SPI通讯在硬件上多了一条Ready线,这条线的信号由从机输出,输入到主机,是从机对整个SPI通讯的控制线,这条线使主机在整个SPI通讯中有了主动权,因此,从机当前执行的任务如数据采集等不再被主机发出的SPI通讯命令打断。0015 图3是本发明的SPI通讯方法的单字节时序图,由时序图中可以看出,只有在Ready线拉低之后CS线才会拉低,而只有在Ready和CS线都是低的情况下CLK才会有效,从而数据才。
14、会有效,正是Ready线和CS线的存在,才使SPI通讯的主机和从机双方都有了主控权,主机和从机都不会因被动的接受通讯命令而打断自己的其他任务,从而能保证SPI通讯的数据和其他数据完整和真实准确。0016 本发明有两种通讯模式:图4是本发明的第一种通讯方法多字节通讯时的时序图,图5是本发明的第二种通讯方法多字节通讯时的时序图。两种通讯模式的相同之处在于,从机都有Ready控制线,都对通讯有控制权;不同之处在于第一种模式Ready线只翻转一次,开始通讯之前拉低,通讯完毕拉高,适用于对通讯速度要求高的情况,主机、从机都可以用DMA等快速数据传输手段;而第二种模式在每个字节传输完毕Ready线都翻转一。
15、次,在这种情况下,主机在除第一个字节以外的每个字节传输之前都需要判定Ready线的电平,从而更能确保通讯的正确性,但这种模式的缺陷在于,由于每次从机都要翻转Ready线而主机每次都需要判定Ready线的状态,从而降低了SPI的通讯速度,并且不能使用DMA等高速通讯方法。所以在使用时可以根据实际情况来选择使用第一种模式还是第二种模式。0017 图6是本发明的第一种通讯方法多字节通讯时从机的流程图,图7是本发明的第一种通讯方法多字节通讯时主机的流程图。如图所示,当从机数据准备好时,拉低Ready线;主机检测到某从机Ready线为低时,拉低该从机对应的CS线;主机与该从机进行SPI通讯;通讯完毕,主。
16、机拉高CS线,从机拉高Ready线。0018 图8是本发明的第二种通讯方法多字节通讯时从机的流程图,图9是本发明的第二种通讯方法多字节通讯时主机的流程图。如图所示:(1)从机数据采集完毕并将数据放入SPI发送buff区,准备好进行SPI通讯时,拉低Ready线;(2) 主机检测到某从机Ready线为低时,拉低该从机对应的CS线;(3) 该从机与主机开始SPI通讯,传输一个字节;(4) 判断数据传输是否完毕,传输完毕则转至步骤(7),未完毕则转至步骤(5);说 明 书CN 103077144 A4/4页6(5) 从机将下一字节放入SPI数据寄存器,并翻转一次Ready线的电平;(6) 主机根据传。
17、送的字节数判断Ready线电平是否正确,正确则转至步骤(3),不正确则转至步骤(7);(7) 主机拉高CS线,从机拉高Ready线,通讯结束。0019 由上述两种通讯模式的流程图可以看出,在每次通讯开始前,都要对Ready线进行操作,这是从机可以选择何时开始通讯,而主机因为CS线的存在,也没有丢失对通讯的控制权,这样从机可以在数据采集或者其他任务完成后来控制Ready线通知主机可以通讯,而主机也可以选择在其他任务完成后来控制CS线来开始通讯,这样主机和从机都拥有的控制权使通讯变得可控性非常强,使主机和从机的其他操作不会被打断,保证了其他操作的设计到的数据完整性。0020 实验验证:对于本发明的。
18、性能进行测试,同现有SPI通讯方式进行对比,两者硬件电路相同,都采用主机为LPC2136、二从机为STM32F103,主机同时进行多种通讯,从机同时进行脉冲量的计频测量,测量范围为110000Hz。0021 实验证明,当采用传统的SPI通讯方法时,从机因为被动的接受通讯命令,在脉冲频率较高的时候或者脉冲频率较低的时候,从机的计频操作会被SPI通讯打断,从而造成计算结果跟输入的信号源不一致。当采用本发明的SPI通讯方法时,从机选择在计算完毕后拉低Ready线开始通讯,经过长时间的观察,从机的计算结果跟输入的信号保持一致,在测量范围内,误差为1Hz。0022 由实验结果可知,本发明能确保SPI通讯双方其他操作的正确性,能确保SPI通讯双方执行其他计算时涉及到的数据的完整。说 明 书CN 103077144 A1/6页7图1说 明 书 附 图CN 103077144 A2/6页8图2图3说 明 书 附 图CN 103077144 A3/6页9图4图5说 明 书 附 图CN 103077144 A4/6页10图6图7说 明 书 附 图CN 103077144 A10。