CN105260260A - 具有数据校验功能的spi数据传输设备及数据校验方法 - Google Patents

具有数据校验功能的spi数据传输设备及数据校验方法 Download PDF

Info

Publication number
CN105260260A
CN105260260A CN201510604371.5A CN201510604371A CN105260260A CN 105260260 A CN105260260 A CN 105260260A CN 201510604371 A CN201510604371 A CN 201510604371A CN 105260260 A CN105260260 A CN 105260260A
Authority
CN
China
Prior art keywords
check code
data
spi
module
data transmission
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201510604371.5A
Other languages
English (en)
Inventor
王振
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Feixun Data Communication Technology Co Ltd
Original Assignee
Shanghai Feixun Data Communication Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Feixun Data Communication Technology Co Ltd filed Critical Shanghai Feixun Data Communication Technology Co Ltd
Priority to CN201510604371.5A priority Critical patent/CN105260260A/zh
Publication of CN105260260A publication Critical patent/CN105260260A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Detection And Correction Of Errors (AREA)

Abstract

本发明公开了一种具有数据校验功能的SPI数据传输设备及数据校验方法,所述设备包括SPI主设备、SPI从设备和SPI接口;所述SPI从设备包括第一校验码模块和数据发送模块,所述SPI主设备包括数据接收模块、第二校验码模块和校验码比对模块。本发明各设备产生各自的奇偶校验码;SPI主、从设备的校验码模块产生的校验码分别送至SPI主设备中的校验码比对模块,校验码比对模块对SPI主、从设备产生的奇偶校验码进行一致性比对,以校验SPI主设备从SPI从设备读取的数据是否有误,CPU可以根据该结果采取下一步动作,避免造成CPU的误动作,大大提高了***的可靠性。

Description

具有数据校验功能的SPI数据传输设备及数据校验方法
技术领域
本发明涉及数据传输接口,尤其涉及一种具有数据校验功能的SPI数据传输设备及数据校验方法。
背景技术
SPI(SerialPeripheralInterface,串行外设接口)是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局节省空间,提供方便,正是出于这种简单易用的特性,如今越来越多的芯片集成了这种通信协议。
SPI以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,它有四根信号线,分别是SDI(数据输入)、SDO(数据输出)、SCLK(时钟)和CS(片选)。
其中,CS是控制芯片是否被选中的,也就是说只有片选信号为预先规定的使能信号时(高电位或低电位),对此芯片的操作才有效。这就允许在同一总线上连接多个SPI设备成为可能。
由于SPI是串行通讯协议,也就是说数据是一位一位地传输的,这就是SCLK时钟线存在的原因,由SCLK提供时钟脉冲,SDI,SDO则基于此脉冲完成数据传输。数据输出通过SDO线,数据在时钟上升沿或下降沿时改变,在紧接着的下降沿或上升沿被读取,完成一位数据输出。数据输入也使用同样原理。这样,经过至少8次时钟信号的改变(上沿和下沿为一次),就可以完成8位数据,即一个字节数据的传输。
根据SPI总线的协议可知,SPI在***管理方面的缺点是缺乏流控机制,无论SPI主设备还是从设备均不对消息进行确认,SPI主设备无法知道从设备是否繁忙,更无法判断于SPI从设备中读取的数据是否正确。如果读取的数据有误,可能会造成CPU的误动作,降低***的可靠性。
发明内容
本发明的目的是为解决目前SPI数据传输缺乏流控机制,无论SPI主设备还是从设备均不对消息进行确认,SPI主设备从SPI从设备中读取的数据可能有误,会造成CPU的误动作,降低***可靠性的技术问题。
为了解决上述技术问题,一方面,本发明提供一种具有数据校验功能的SPI数据传输设备,所述SPI数据传输设备包括一台SPI主设备、一台或多台SPI从设备和SPI接口;
任一所述SPI从设备包括第一校验码模块和数据发送模块,所述第一校验码模块的输出端连接到所述数据发送模块的输入端;
所述SPI主设备包括数据接收模块、第二校验码模块和校验码比对模块,所述数据接收模块的输入端通过所述SPI接口连接到所述数据发送模块的输出端,所述数据接收模块的输出端连接到所述校验码比对模块的输入端,所述第二校验码模块的输出端连接到所述校验码比对模块的输入端;
所述第一校验码模块用于产生校验码A,所述校验码A附加于所述数据发送模块所发送数据C的尾部,所述数据C和校验码A一并发送至所述SPI主设备,所述数据接收模块接收所述数据C和校验码A并将所述校验码A传送至所述校验码比对模块;
所述第二校验码模块用于产生校验码B并将所述校验码B传送至所述校验码比对模块;
所述校验码比对模块用于比较所述校验码A与所述校验码B是否相等,若相等,则所述数据C传输正确;若不相等,则所述数据C传输错误。
进一步地,所述校验码A与所述校验码B均为奇偶校验码。
进一步地,所述数据C的每一个字节对应一位所述奇偶校验码。
进一步地,每八个字节的所述数据C对应一个字节的所述奇偶校验码,通过所述SPI接口一次传输八个字节的所述数据C和一个字节的所述奇偶校验码。
另一方面,本发明提供一种SPI数据传输的数据校验方法,包括如下步骤:
(1)SPI从设备的第一校验码模块产生校验码A;
(2)所述SPI从设备发送数据C和所述校验码A;
(3)SPI主设备接收所述数据C和校验码A,并将所述校验码A送至所述SPI主设备的校验码比对模块;
(4)所述SPI主设备的第二校验码模块产生校验码B,并将所述校验码B送至所述SPI主设备的校验码比对模块;
(5)所述SPI主设备的校验码比对模块对所述校验码A与所述校验码B进行比较;
(6)若A=B,则数据C传输正确,结束本次传输,准备下一次数据传输;若A≠B,则数据C传输错误,准备重新传输数据C。
进一步地,所述校验码A与所述校验码B均为奇偶校验码。
进一步地,所述数据C的每一个字节对应一位所述奇偶校验码。
进一步地,每八个字节的所述数据C对应一个字节的所述奇偶校验码,通过所述SPI接口一次传输八个字节的所述数据C和一个字节的所述奇偶校验码。
本发明的SPI主、从设备均包含校验码模块,用以产生各自的奇偶校验码;每八个字节的数据产生一个字节的奇偶校验码,这九个字节通过SPI接口一次性地由SPI从设备传输至SPI主设备,SPI主、从设备的校验码模块产生的校验码分别送至SPI主设备中的校验码比对模块,校验码比对模块对SPI主、从设备产生的奇偶校验码进行一致性比对,以校验SPI主设备从SPI从设备读取的数据是否有误,如一致,则数据正确,反之,数据有误,CPU可以根据该结果采取下一步动作,当数据正确时结束本次数据传输,准备下一次数据传输,当数据有误时,准备重新传输数据,避免造成CPU的误动作,大大提高了***的可靠性。
附图说明
图1为本发明所述设备实施例的原理框图;
图2为本发明所述方法一个实施例的流程图;
图3为本发明所述方法另一个实施例的流程图。
图中:SPI从设备1,第一校验码模块101,数据发送模块102,SPI主设备2,数据接收模块201,第二校验码模块202,校验码比对模块203,SPI接口3。
具体实施方式
现在结合附图和实施例对本发明作进一步详细的说明。这些附图均为简化的示意图,仅以示意方式说明本发明的基本结构,因此其仅显示与本发明有关的构成,且其不应理解为对本发明的限制。
如图1所示的实施例,本发明的具有数据校验功能的SPI数据传输设备包括一台SPI主设备2、一台或多台SPI从设备1(图中仅示出一台,若为两台或更多台,通过SPI总线的片选信号CS选择其中的一台SPI从设备与SPI主设备2进行数据传输,即任一时间仅有一台SPI从设备工作)和SPI接口3;SPI从设备1包括第一校验码模块101和数据发送模块102,第一校验码模块101的输出端连接到数据发送模块102的输入端;SPI主设备2包括数据接收模块201、第二校验码模块202和校验码比对模块203,数据接收模块201的输入端通过SPI接口3连接到数据发送模块102的输出端,数据接收模块201的输出端连接到校验码比对模块203的输入端,第二校验码模块202的输出端连接到校验码比对模块203的输入端;数据发送模块102用于发送数据C,数据C的每一个字节对应一位奇偶校验码,每八个字节的数据C对应一个字节的奇偶校验码A,第一校验码模块101用于产生一个字节的奇偶校验码A,通过SPI接口3一次传输八个字节的数据C和一个字节的奇偶校验码A,数据接收模块201接收数据C和校验码A并将校验码A传送至校验码比对模块203;第二校验码模块202用于产生一个字节的奇偶校验码B并将奇偶校验码B传送至校验码比对模块203;校验码比对模块203用于比较奇偶校验码A与奇偶校验码B是否相等,若相等,则数据C传输正确;若不相等,则数据C传输错误。
如图2所示的实施例,本发明的SPI数据传输的数据校验方法,包括如下步骤:
S110:SPI从设备的第一校验码模块产生校验码A;
S120:SPI从设备发送数据C和校验码A;
S130:SPI主设备接收数据C和校验码A,并将校验码A送至SPI主设备的校验码比对模块;
S140:SPI主设备的第二校验码模块产生校验码B,并将校验码B送至SPI主设备的校验码比对模块;
S150:SPI主设备的校验码比对模块对校验码A与校验码B进行比较,若A=B,则继续到步骤S160;若A≠B,则转至步骤S170;
S160:数据C传输正确,结束本次传输,准备下一次数据传输;
S170:数据C传输错误,准备重新传输数据C。
如图3所示的实施例,本发明的SPI数据传输的数据校验方法,包括如下步骤:
S210:SPI从设备的第一校验码模块产生一个字节的奇偶校验码A1;
S220:SPI从设备发送数据C1和奇偶校验码A1;
S230:SPI主设备接收数据C1和奇偶校验码A1,并将奇偶校验码A1送至SPI主设备的校验码比对模块;
S240:SPI主设备的第二校验码模块产生一个字节的奇偶校验码B1,并将奇偶校验码B1送至SPI主设备的校验码比对模块;
S250:SPI主设备的校验码比对模块对奇偶校验码A1与奇偶校验码B1进行比较,若A1=B1,则继续到步骤S160;若A1≠B1,则转至步骤S170;
S260:数据C1传输正确,结束本次传输,准备下一次数据传输;
S270:数据C1传输错误,准备重新传输数据C1。
本发明的SPI主设备2包含校验码模块202,用于产生的奇偶校验码B1,SPI从设备1包含校验码模块101,用以产生奇偶校验码A1;每八个字节的数据C1产生一个字节的奇偶校验码A1,这九个字节通过SPI接口一次性地由SPI从设备1传输至SPI主设备2,SPI主、从设备的校验码模块产生的校验码A1、B1分别送至SPI主设备中的校验码比对模块203,校验码比对模块203对SPI主、从设备产生的奇偶校验码A1、B1进行一致性比对,以校验SPI主设备2从SPI从设备1读取的数据C1是否有误,如一致,则数据C1正确,反之,数据C1有误,CPU可以根据该结果采取下一步动作,当数据正确时结束本次数据传输,准备下一次数据传输,当数据有误时,准备重新传输数据C1,避免造成CPU的误动作,大大提高了***的可靠性。
以上述依据本发明的理想实施例为启示,通过上述的说明内容,相关工作人员完全可以在不偏离本项发明技术思想的范围内,进行多样的变更以及修改。本项发明的技术性范围并不局限于说明书上的内容,必须要根据权利要求范围来确定其技术性范围。

Claims (8)

1.具有数据校验功能的SPI数据传输设备,其特征在于,所述SPI数据传输设备包括一台SPI主设备、一台或多台SPI从设备和SPI接口;
任一所述SPI从设备包括第一校验码模块和数据发送模块,所述第一校验码模块的输出端连接到所述数据发送模块的输入端;
所述SPI主设备包括数据接收模块、第二校验码模块和校验码比对模块,所述数据接收模块的输入端通过所述SPI接口连接到所述数据发送模块的输出端,所述数据接收模块的输出端连接到所述校验码比对模块的输入端,所述第二校验码模块的输出端连接到所述校验码比对模块的输入端;
所述第一校验码模块用于产生校验码A,所述校验码A附加于所述数据发送模块所发送数据C的尾部,所述数据C和校验码A一并发送至所述SPI主设备,所述数据接收模块接收所述数据C和校验码A并将所述校验码A传送至所述校验码比对模块;
所述第二校验码模块用于产生校验码B并将所述校验码B传送至所述校验码比对模块;
所述校验码比对模块用于比较所述校验码A与所述校验码B是否相等,若相等,则所述数据C传输正确;若不相等,则所述数据C传输错误。
2.根据权利要求1所述的具有数据校验功能的SPI数据传输设备,其特征在于,所述校验码A与所述校验码B均为奇偶校验码。
3.根据权利要求2所述的具有数据校验功能的SPI数据传输设备,其特征在于,所述数据C的每一个字节对应一位所述奇偶校验码。
4.根据权利要求3所述的具有数据校验功能的SPI数据传输设备,其特征在于,每八个字节的所述数据C对应一个字节的所述奇偶校验码,通过所述SPI接口一次传输八个字节的所述数据C和一个字节的所述奇偶校验码。
5.SPI数据传输的数据校验方法,其特征在于,包括如下步骤:
(1)SPI从设备的第一校验码模块产生校验码A;
(2)所述SPI从设备发送数据C和所述校验码A;
(3)SPI主设备接收所述数据C和校验码A,并将所述校验码A送至所述SPI主设备的校验码比对模块;
(4)所述SPI主设备的第二校验码模块产生校验码B,并将所述校验码B送至所述SPI主设备的校验码比对模块;
(5)所述SPI主设备的校验码比对模块对所述校验码A与所述校验码B进行比较;
(6)若A=B,则数据C传输正确,结束本次传输,准备下一次数据传输;若A≠B,则数据C传输错误,准备重新传输数据C。
6.根据权利要求5所述的方法,其特征在于,所述校验码A与所述校验码B均为奇偶校验码。
7.根据权利要求6所述的SPI数据传输的数据校验方法,其特征在于,所述数据C的每一个字节对应一位所述奇偶校验码。
8.根据权利要求7所述的SPI数据传输的数据校验方法,其特征在于,每八个字节的所述数据C对应一个字节的所述奇偶校验码,通过所述SPI接口一次传输八个字节的所述数据C和一个字节的所述奇偶校验码。
CN201510604371.5A 2015-09-21 2015-09-21 具有数据校验功能的spi数据传输设备及数据校验方法 Pending CN105260260A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510604371.5A CN105260260A (zh) 2015-09-21 2015-09-21 具有数据校验功能的spi数据传输设备及数据校验方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510604371.5A CN105260260A (zh) 2015-09-21 2015-09-21 具有数据校验功能的spi数据传输设备及数据校验方法

Publications (1)

Publication Number Publication Date
CN105260260A true CN105260260A (zh) 2016-01-20

Family

ID=55099960

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510604371.5A Pending CN105260260A (zh) 2015-09-21 2015-09-21 具有数据校验功能的spi数据传输设备及数据校验方法

Country Status (1)

Country Link
CN (1) CN105260260A (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105718417A (zh) * 2016-01-21 2016-06-29 上海斐讯数据通信技术有限公司 一种基于spi提高数据传输性能的***和方法
CN105786639A (zh) * 2016-03-01 2016-07-20 上海斐讯数据通信技术有限公司 一种i2c总线数据的传输方法及***
CN106294044A (zh) * 2016-08-09 2017-01-04 上海东软载波微电子有限公司 芯片内部寄存器的校验电路及芯片
CN108121615A (zh) * 2016-11-28 2018-06-05 中国科学院沈阳自动化研究所 一种基于冗余容错机制的数据存储方法
CN110855686A (zh) * 2019-11-18 2020-02-28 深圳开立生物医疗科技股份有限公司 一种spi协议通信方法、***、设备及计算机存储介质
CN112749384A (zh) * 2019-10-30 2021-05-04 盈甲医疗科技(北京)有限公司 一种设备接入方法及其加密接口电路
CN113364782A (zh) * 2021-06-09 2021-09-07 苏州智加科技有限公司 一种提高数据传输安全性的方法及***
TWI762900B (zh) * 2020-02-27 2022-05-01 瑞昱半導體股份有限公司 電子裝置以及通訊方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020120795A1 (en) * 2001-02-28 2002-08-29 Alcatel Serial peripheral interface master device, a serial peripheral interface slave device and a serial peripheral interface
CN101751364A (zh) * 2010-01-25 2010-06-23 成都优博创技术有限公司 一种spi总线接口的固件isp烧录器和烧录方法
CN102508812A (zh) * 2011-11-30 2012-06-20 上海大学 一种基于spi总线的双处理器通信方法
CN102819512A (zh) * 2012-06-28 2012-12-12 惠州市德赛西威汽车电子有限公司 一种基于spi的全双工通信装置及其方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020120795A1 (en) * 2001-02-28 2002-08-29 Alcatel Serial peripheral interface master device, a serial peripheral interface slave device and a serial peripheral interface
CN101751364A (zh) * 2010-01-25 2010-06-23 成都优博创技术有限公司 一种spi总线接口的固件isp烧录器和烧录方法
CN102508812A (zh) * 2011-11-30 2012-06-20 上海大学 一种基于spi总线的双处理器通信方法
CN102819512A (zh) * 2012-06-28 2012-12-12 惠州市德赛西威汽车电子有限公司 一种基于spi的全双工通信装置及其方法

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105718417A (zh) * 2016-01-21 2016-06-29 上海斐讯数据通信技术有限公司 一种基于spi提高数据传输性能的***和方法
CN105786639A (zh) * 2016-03-01 2016-07-20 上海斐讯数据通信技术有限公司 一种i2c总线数据的传输方法及***
CN106294044A (zh) * 2016-08-09 2017-01-04 上海东软载波微电子有限公司 芯片内部寄存器的校验电路及芯片
CN106294044B (zh) * 2016-08-09 2019-05-03 上海东软载波微电子有限公司 芯片内部寄存器的校验电路及芯片
CN108121615A (zh) * 2016-11-28 2018-06-05 中国科学院沈阳自动化研究所 一种基于冗余容错机制的数据存储方法
CN112749384A (zh) * 2019-10-30 2021-05-04 盈甲医疗科技(北京)有限公司 一种设备接入方法及其加密接口电路
CN110855686A (zh) * 2019-11-18 2020-02-28 深圳开立生物医疗科技股份有限公司 一种spi协议通信方法、***、设备及计算机存储介质
CN110855686B (zh) * 2019-11-18 2022-08-16 深圳开立生物医疗科技股份有限公司 一种spi协议通信方法、***、设备及计算机存储介质
TWI762900B (zh) * 2020-02-27 2022-05-01 瑞昱半導體股份有限公司 電子裝置以及通訊方法
CN113364782A (zh) * 2021-06-09 2021-09-07 苏州智加科技有限公司 一种提高数据传输安全性的方法及***
CN113364782B (zh) * 2021-06-09 2023-05-02 苏州智加科技有限公司 一种提高数据传输安全性的方法及***

Similar Documents

Publication Publication Date Title
CN105260260A (zh) 具有数据校验功能的spi数据传输设备及数据校验方法
CN103716118A (zh) 一种自适应多速率的数据发送和接收方法及装置
CN101464848A (zh) 一种串行总线扩展方法及设备
CN107832250A (zh) 一种基于spi的主从通讯时序方法及可靠传输方法
CN105446930A (zh) 一种单选择端spi主从式多机双向通信方法
CN109062850B (zh) 一种单片机的数据发送和接收方法
CN103440187A (zh) 一种基于硬件脚本的can总线自动化测试方法
CN103577362B (zh) 改善数据传输的方法及其相关计算机***
CN110740085B (zh) 一种基于并机***的通信方法、通信装置及终端
CN113792003A (zh) 单总线通信单元、***及方法
CN110471878B (zh) 实现双TypeC接口盲插控制方法、装置、设备及存储介质
CN104253667A (zh) 一种应用于手机平台的串行同步总线校验反馈***和方法
CN112506840B (zh) 一种多对多spi总线切换方法
CN102545953B (zh) Uart功能扩展电路及其控制方法
CN113986600B (zh) 一种用于芯片串行接口的测试方法、装置和芯片
CN201378316Y (zh) 通用输入/输出接口扩展电路和具有该电路的移动终端
CN105740186A (zh) 高速数据转接板电路
CN104679701A (zh) 数据传输装置及方法
CN112506839A (zh) 一种一对多spi总线切换方法及装置
CN101833528A (zh) 电子设备传输速度的调整方法
CN107741920B (zh) 一种精简的选针器数据传输方法
CN104978294A (zh) 串行外设接口的兼容设备、串行外设接口及主机设备
CN105226474B (zh) 一种基于qsfp28 接口的100g 电缆模块
CN105718417A (zh) 一种基于spi提高数据传输性能的***和方法
CN103019995A (zh) 基于1553b总线的接口板卡

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20160120

RJ01 Rejection of invention patent application after publication