[发明专利]一种基于SPI总线的双处理器通信方法有效
申请号: | 201110387599.5 | 申请日: | 2011-11-30 |
公开(公告)号: | CN102508812A | 公开(公告)日: | 2012-06-20 |
发明(设计)人: | 胡越黎;孙斌;王昆;徐磊;刘廷尧;王龙杰;虞超 | 申请(专利权)人: | 上海大学 |
主分类号: | G06F15/163 | 分类号: | G06F15/163;G06F13/20 |
代理公司: | 上海上大专利事务所(普通合伙) 31205 | 代理人: | 何文欣 |
地址: | 200444*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 spi 总线 处理器 通信 方法 | ||
1.一种基于SPI总线的双处理器通信方法,其特征在于具体操作步骤为:
a.扩展SPI物理层;在SPI的四线制基础上增加一条接有上拉电阻握手信号线——HandShaking;
b.建立基于SPI总线双向通信的帧格式;
c.基于SPI总线已经规定的CS信号线和我们新建立的HandShaking握手信号线,建立基于SPI总线双向通信的同步机制;
d.在发送帧和接收帧格式的基础上,建立流量控制机制;
e.基于CRC校验和确认帧校验,建立错误处理机制。
2.根据权利要求1所述的基于SPI总线的双处理器通信方法,其特征在于所述步骤a的扩展SPI物理层的方法为:
在SPI四线制通信的基础上,建立五线制用于双向通信SPI总线,即在SPI的四线制基础上增加一条接有上拉电阻握手信号线——HandShaking,这是一条从机到主机单向的信号线,HandShaking信号的作用主要是告知主机,从机有数据需要发送。
3.根据权利要求2所述的基于SPI总线的双处理器通信方法,其特征在于所述步骤b建立基于SPI总线双向通信帧格式的方法为:
在所述五线制SPI总线基础上,采用“0比特插入法”,并将(0x7f)作为一个流量控制的标志;作为主从通信方式,帧格式主要包括发送方帧格式和接收方帧格式两种:
①、发送方帧格式
由于SPI本身可以8位或16位传输,并且具有CS选通信号,作为其发送开始与发送结束的标志,所以类似于HDLC的起始和结束标志符(0x7f)可以省略,为了能够满足发送方的业务需求,增加了地址、控制和CRC校验段;
发送方帧格式中的地址是指目的地址;
发送方帧格式中的控制信息包括了功能ID和长度信息,在采用8位传输的情况下,功能ID为4bits,而长度信息为4bits;在采用16位传输的情况下,功能ID和长度信息均为8bits;
发送方帧格式中的长度信息是指信息段的长度;
②、接收方帧格式
作为接收方而言,为了能够有效控制数据流,考虑到SPI接收方的特点,针对LINUX操作系统的处理机制,接收方的同步反馈信息为奇数子节时,为接收处理器的缓冲区剩余容量,偶数子节为该处理器前一接收子节是否处理器完标志——确认字符(0x7E)。
4.根据权利要求3所述的基于SPI总线的双处理器通信方法,其特征在于所述步骤c建立基于SPI总线双向通信的同步机制的方法如下:
基于SPI主从模式,明建立的总线同步机制分为主机发起通信的同步机制和从机发起通信的同步机制:
①、主机发起通信的同步机制
由主机发起的数据传送与普通的SPI传送并没有区别,也就是说,完全兼容传统的SPI通信;
②、从机发起通信的同步机制
从机发起的通信由HandShaking信号向主机申请开始发送,主机在接收到HandShaking信号后,开始SPI发送;由于绝大多数MCU的中断处理以下降沿处理为主,所以,采用了外部上拉,由从机MCU置0的方式;在主机响应中断后,HandShaking信号由从机的发送结束中断取消。
5.根据权利要求4所述的基于SPI总线的双处理器通信方法,其特征在于所述步骤d建立流量控制机制的方法如下:
发送方发送过程中,每两个Bytes就有一个接收缓冲区剩余容量单元(设该值为 ),当接收方回应的接收缓冲区容量小于2()时,则发送方应停止发送.若当前正在发送过程中,则中断当前帧,对于主机起始发送来说,即将CS信号拉高;对于从机起始发送来说,即将HankShaking信号拉高;发送方等待随机长时间后,重新尝试发起发送。
6.根据权利要求5所述的基于SPI总线的双处理器通信方法,其特征在于所述步骤e建立错误处理机制的方法如下:
在本基于SPI总线双向通信主要有以下两种错误:一是接收方CRC校验错误,二是确认字符错误:
①、CRC校验错误
CRC校验采用16bitCRC校验码,其生成多项式采用CCITT V4.1建议的:;当出现CRC校验错误是,接收方将接收缓冲区剩余容量()置为0,即中止原发送方的继续发送,然后接收方发起发送,将控制段中的控制ID置为错误标识符0xf,即控制段为0xf0.发送的数据帧如下:
②、确认字符错误
确认字符错误是发送方没有在偶字节接收到确认字符0X7E,则发送方中断本次发送,即将主机端CS信号或者从机端HandShaking信号拉高;然后,在随机时间间隔后重新发起发送。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海大学,未经上海大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110387599.5/1.html,转载请声明来源钻瓜专利网。