CN105260260A - 具有数据校验功能的spi数据传输设备及数据校验方法 - Google Patents
具有数据校验功能的spi数据传输设备及数据校验方法 Download PDFInfo
- 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
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(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和一个字节的所述奇偶校验码。
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)
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)
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的全双工通信装置及其方法 |
-
2015
- 2015-09-21 CN CN201510604371.5A patent/CN105260260A/zh active Pending
Patent Citations (4)
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)
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 |