CN115883675A - 一种可扩展的spi总线与can总线数据转换方法 - Google Patents
一种可扩展的spi总线与can总线数据转换方法 Download PDFInfo
- Publication number
- CN115883675A CN115883675A CN202211375540.9A CN202211375540A CN115883675A CN 115883675 A CN115883675 A CN 115883675A CN 202211375540 A CN202211375540 A CN 202211375540A CN 115883675 A CN115883675 A CN 115883675A
- Authority
- CN
- China
- Prior art keywords
- message
- data
- spi
- conversion module
- bus
- 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
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Communication Control (AREA)
Abstract
本发明提供一种可扩展的SPI总线与CAN总线数据转换方法,其特征在于:利用通信主机和一个以上的转换模块作为运行平台,具体步骤如下:S1,扩展通信架构设计;S2,SPI报文格式设计;S3,通信机制设计;S4,转换模块按统一格式完成SPI报文与CAN数据帧的转换;本发明的方法,通过建立数据缓冲区,解决了CAN总线缓冲区较小以及SPI总线与CAN总线速度不匹配的问题,提高了数据传输可靠性;通过设计数据包封装协议,实现了CAN数据包的透明传输,增加了协议转换的通用性;根据SPI通信特点设计SPI双向通信机制,实现通过SPI总线的多路CAN数据包传输。
Description
技术领域
本发明涉及通信技术领域,具体涉及一种可扩展的SPI总线与CAN总线数据转换方法。
背景技术
CAN属于总线式异步串行通信网络,具有可靠性高、错误检测能力强的优点,传输距离可达10千米,是国际上应用最广泛的现场总线之一。SPI总线是一种高速同步串行通信总线,通信速率可达50M,SPI总线具有传输速度快、结构简单、扩展性强的特点在芯片间通信中得到了广泛应用,但因SPI为同步串行总线,可靠性较低、传输距离短。
部分嵌入式芯片集成了1到2路CAN控制器,并且需要外接CAN收发器。在应用中可能遇到在CAN资源数量不足,或外接CAN收发器受限的情况,可通过SPI总线扩展CAN接口。通过SPI总线扩展CAN接口,可以结合SPI传输速度快以及CAN传输距离远的优点,
目前应用较多的是由硬件直接实现协议的转换,但该方法存在以下局限性:
(1)往往只能实现1路SPI与1至2路CAN接口的协议转换,不具备扩展性或扩展性不足,当需要多路CAN接口时,需要占用多路SPI资源,成本较高,甚至可能无法实现。
(2)无法对CAN接口进行灵活配置,往往只能按固定配置工作,导致数据转换欠缺灵活性,应用条件较严苛,适用性较低。
(3)硬件实现时难以进行充分封装,因此主机操作SPI接口时,需要遵守硬件时序,并实现复杂的逻辑,编程实现难度较大。
(4)难以对SPI的接口报文进行必要的封装,无法解决SPI的通信可靠性较低的问题。
(5)存在高速SPI总线与CAN总线速率不匹配的问题。
(6)硬件设计固化后,修改难度较大,维护成本高。
(7)需要增加可编程芯片或者专用芯片,成本较高,线路复杂。
发明内容
本发明提供一种可扩展的SPI总线与CAN总线数据转换方法,本发明的方法,通过建立数据缓冲区,解决了CAN总线缓冲区较小以及SPI总线与CAN总线速度不匹配的问题,提高了数据传输可靠性;通过设计数据包封装协议,实现了CAN数据包的透明传输,增加了协议转换的通用性;根据SPI通信特点设计SPI双向通信机制,实现通过SPI总线的多路CAN数据包传输。
为达到上述目的,本发明的技术方案是:一种可扩展的SPI总线与CAN总线数据转换方法,利用通信主机和一个以上的转换模块作为运行平台,具体步骤如下:
S1,扩展通信架构设计:
通信主机与一个以上的转换模块间通过SPI总线通信,转换模块通过CAN总线与外部设备连接,利用SPI总线一主多从工作方式,将通信主机软件设置为主机模式,转换模块软件设置为从机模式,通过SPI主机连接多个从机方式,通信主机通过多个转换模块搭建通道,实现SPI扩展多路CAN接口功能,对各个通道进行编号。
S2,SPI报文格式设计:
根据SPI总线的通信方式,设计统一的SPI报文格式;
S3,通信机制设计:
通信主机通过转换模块实现与多路CAN设备的通信,在转换模块内增加SPI报文缓冲区。
S31,数据发送时,通信主机将SPI报文发送至各转换模块,各转换模块将SPI报文转换为CAN数据帧,通过CAN接口对外发送。
S32,数据接收时,各转换模块通过CAN接口接收外部数据,转换为SPI报文并存入缓冲区,在通信主机读取数据时,向通信主机发送SPI报文。
S4,转换模块按统一格式完成SPI报文与CAN数据帧的转换。
进一步的,步骤S1具体包括扩展通信架构通信主机和转换模块的功能分配如下:
(1)通信主机配置各个通道的转换模块,并监控转换模块状态。
(2)通信主机封装需发送至各个通道的SPI报文,并处理由各个通道接收到的SPI报文。
(3)转换模块完成CAN数据帧的接收和发送,以及CAN数据帧与SPI报文的相互转换。
进一步的,通信主机与转换模块间通过SPI总线通信具体包括如下内容:
(1)控制报文,包括转换模块配置指令、状态查询指令和数据读取指令,配置指令实现转换模块配置,包括通道编号、CAN工作模式、CAN波特率、CAN屏蔽方式及屏蔽码;状态查询指令获取各转换模块的状态信息;数据读取指令读取转换模块的数据帧。
(2)状态报文,将转换模块的工作状态信息封装成状态报文,反馈给通信主机。
(3)数据报文,将CAN协议中的帧类型、帧ID、数据长度和数据封装成数据报文,实现CAN数据帧与SPI报文相互转换。
进一步的,所述SPI报文格式具体包括前导序列、报文段和结尾序列,各类报文采用相同格式的前导序列和结尾序列,报文段根据传输报文的不同采用不同的封装格式。
(1)前导序列包括起始符、通道号、报文标识和序列校验,用于识别报文开端,标识报文要发向的通道或者产生该报文的通道,并指示报文的类别。
(2)报文段为SPI报文的实际内容,具体为控制报文、状态报文和数据报文,其中控制报文、状态报文和数据报文具体报文格式不相同。
(3)结尾序列为固定序列,标识报文的结尾。
进一步的,所述转换模块的配置步骤为:
通信主机启动后,根据扩展的CAN接口数量。
(1)查询各通道的转换模块状态,完成各通道转换模块的状态检测。
(2)清空各通道转换模块的SPI报文缓冲区。
(3)设置各通道的CAN接口工作模式和波特率。
(4)设置各通道的接收屏蔽方式和屏蔽码。
进一步的,所述前导序列的元素格式为:
(1)起始符为2个字节的固定序列,用于接收方识别报文开端;
(2)通道号为通信主机分配的通道编号,根据可扩展通信架构中,通信主机连接多个转换模块的通信方式,前导序列中加入通道号,用以标识发送该SPI报文的通道,或者接收到该SPI报文的通道。
(3)报文标识用于区分报文的类别。
(4)序列校验根据前导序列计算,用于对前导序列的正确性进行校验。
进一步的,所述报文段格式为:
(1)控制报文格式包括指令字、指令参数和报文校验,指令字标识具体指令,指令参数是对应指令所需的参数,根据具体指令设置。
(2)状态报文包括标识符、数据区和报文校验,标识符标识状态数据类别,数据区为实际数据。
(3)数据报文格式根据CAN数据帧设计,CAN总线采用CAN2.0B标准协议格式,将CAN协议中的帧类型、帧ID、数据长度和数据字段重新进行封装,用于实现CAN数据帧与SPI报文的转换。
进一步的,步骤S31数据发送具体包括:
(1)按照SPI报文格式封装成数据报文;并控制SPI总线,将数据报文发送至对应的转换模块。
(2)转换模块接收到数据报文后,将SPI报文中的帧类型、帧ID、数据长度和数据填入CAN数据帧的对应字段,转换为CAN数据帧。
(3)将转换完成的CAN数据帧通过CAN接口发送出去,实现通信主机向特定CAN接口发送数据。
进一步的,步骤S32数据接收具体包括:
(1)转换模块建立以数据报文为单元的缓冲区,该缓冲区为环形缓冲区,缓冲区满后禁止写入。
(2)转换模块接收到接收到的CAN数据帧后,将CAN数据帧封装成数据报文,存入缓冲区。
(3)通信主机周期向各转换模块发送数据读取指令,并执行数据读取操作。
(4)转换模块接收到通信主机的数据读取指令。
(41)若缓冲区存在数据报文,则提取报文,在通信主机读取时,发送至主机。
(42)若缓冲区为空,则在通信主机读取时,向主机发送状态报文,通知主机,该通道缓冲区已空。
(5)通信主机若读取到数据报文,则解析并处理数据,若读取到缓冲区为空的状态报文,则丢弃数据,并终止本周期的读取操作。
本发明所产生的有益效果是:
(1)根据SPI通信特点设计了可扩展通信架构,利用SPI的一主多从工作模式,实现通过1路SPI接口扩展多路CAN接口的功能,大大增加了系统的扩展能力,而且由于SPI速度远高于CAN通信,该扩展方式不会影响CAN接口的通信速率。
(2)根据可扩展通信架构的通信内容,设计了统一的SPI报文格式,实现了对CAN总线灵活配置,对转换模块状态实时监控。
(3)根据CAN数据帧的结构,设计数据报文格式,实现了CAN数据包的透明传输,增加了协议转换的通用性,通过对转换算法进行必要的软件封装,通信主机软件完全按照标准CAN数据格式进行接收和发送,编程简单灵活。
(4)建立数据缓冲区,解决了CAN总线缓冲区较小以及SPI总线与CAN总线速度不匹配的问题,降低了对数据处理同步要求,提高了数据传输可靠性。
附图说明
图1为本发明的通讯主机与转换模式以及CAN总线之间的简单示意图。
图2为本发明的SPI总线与CAN总线数据转换方法的流程图。
具体实施方式
下面结合附图和具体实施方式对本发明做进一步详细说明。
如图1所示,一种可扩展的SPI总线与CAN总线数据转换方法,利用通信主机和一个以上的转换模块作为运行平台,通信主机和转换模块采用ARM嵌入式处理器,
如图2所示,具体步骤如下:
S1,扩展通信架构设计:
通信主机与一个以上的转换模块间通过SPI总线通信,转换模块通过CAN总线与外部设备连接,利用SPI总线一主多从工作方式,将通信主机软件设置为主机模式,转换模块软件设置为从机模式,通过SPI主机连接多个从机方式,通信主机通过多个转换模块搭建通道,实现SPI扩展多路CAN接口功能,对各个通道进行编号。
扩展通信架构的工作方式为:
(1)根据SPI总线一主多从工作方式,将通信主机设置为主机模式,转换模块设置为从机模式,各转换模块共用SPI的数据线和时钟线,但具有独立的信号线与通信主机连接,通信主机通过操作信号线,选择与其通信的转换模块。
(2)通信主机可直接发送数据,但接收数据时,因转换模块不具备主动发送能力,需要通信主机通过查询方式读取转换模块数据。
(3)转换模块通过自带的一路或多路CAN接口与外部CAN网通信。
扩展通信架构通信主机和转换模块的功能分配如下:
(1)通信主机配置各个通道的转换模块,通信主机为各个转换模块设置通道编号,并完成各个通道转换模块的CAN接口配置,设置CAN接口的工作模式、波特率和屏蔽方式及屏蔽码;通信主机通过控转换模块工作状态,完成装换模块状态自检和实时监控。
(2)通信主机封装需发送的SPI报文,并控制SPI总线,将SPI报文发送至对应的转换模块。并读取转换模块缓存的SPI报文,对接收到的数据进行解析和处理。
(3)转换模块根据通信主机的控制指令,完成CAN接口的配置,并向通信主机反馈状态报文。
(4)转换模块将接收的数据报文转换为CAN数据帧,通过CAN接口发送出去。
(5)转换模块将接收到的CAN数据帧转换为SPI数据文,并存入缓冲区;待通信主机读取数据数据时,通过SPI总线发送至通信主机。
通信主机与转换模块间通过SPI总线通信具体包括如下内容:
(1)控制报文,包括转换模块配置指令、状态查询指令和数据读取指令,配置指令实现转换模块配置,包括通道编号、CAN工作模式、CAN波特率、CAN屏蔽方式及屏蔽码;状态查询指令获取各转换模块的状态信息;数据读取指令读取转换模块的数据帧。
(2)状态报文,将转换模块的工作状态信息封装成状态报文,反馈给通信主机。
(3)数据报文,将CAN协议中的帧类型、帧ID、数据长度和数据封装成数据报文,实现CAN数据帧与SPI报文相互转换。
S2,SPI报文格式设计:
根据SPI总线的通信方式,设计统一的SPI报文格式,实现CAN接口的灵活配置、转换模块的状态反馈和数据报文与CAN数据帧的透明转换。
SPI报文格式具体包括前导序列、报文段和结尾序列,各类报文采用相同格式的前导序列和结尾序列,报文段根据传输报文的不同采用不同的封装格式。
(1)前导序列包括起始符、通道号、报文标识和序列校验,用于识别报文开端,标识报文要发向的通道或者产生该报文的通道,并指示报文的类别。
起始符:为大于等于2个字节的固定序列,用于接收方在SPI总线的串行报文中,识别SPI报文的开端。
通道号:定义通信主机和相连的1路转换模块为1个通道,对已扩展的通道进的编号,编号值即为通道号,当通信主机需要向转换模块发送SPI报文时,在起始序列中加入目的通道号,标识报文将要发向的通道;当转换模块向通信主机反馈SPI报文时,在起始序列中加入自身通道号,标识产生该报文的通道。
报文标识:报文标识包括报文类别和报文标识,报文类别用于区分控制报文、状态报文和数据报文;报文标识是报文的具体标识,例如控制报文中的波特率设置报文。
序列校验:序列字段运算的结果,对前导序列的正确性进行检验。
(2)报文段为SPI报文的实际内容,具体为控制报文、状态报文和数据报文,其中控制报文、状态报文和数据报文具体报文格式不相同。
控制报文格式包括指令字、指令参数和报文校验,指令字标识具体指令,指令参数是对应指令所需的参数,根据具体指令设置。
指令字:具体指令的标识,接收方根据指令字识别具体指令。
指令参数,对应指令所需的参数,根据具体指令设置。
报文校验,报文字段运算的结果,对报文的正确性进行检验。
状态报文包括标识符、数据区和报文校验,标识符标识状态数据类别,数据区为实际数据。
标识符:工作状态的标识,接收方根据指令字解析工作状态。
数据区:转换模块的状态。
报文校验,报文字段运算的结果,对报文的正确性进行检验。
数据报文格式根据CAN数据帧设计,CAN总线采用CAN2.0B标准协议格式,将CAN协议中的帧类型、帧ID、数据长度和数据字段重新进行封装,用于实现CAN数据帧与SPI报文的转换。
帧类型:标识CAN数据帧的类型为标准帧或者扩展帧。
帧ID:CAN数据帧的ID,标准帧占2个字节,扩展帧占4个字节。
数据长度:CAN数据帧数据有效长度。
数据字段:CAN数据帧的数据区内容,根据数据长度设置字节数。
(3)结尾序列为固定序列,用于接收方在SPI总线的串行报文中,识别SPI报文的结尾。
S3,通信机制设计:
通信主机通过转换模块实现与多路CAN设备的通信,在转换模块内增加SPI报文缓冲区。
S31,数据发送时,通信主机将SPI报文发送至各转换模块,各转换模块将SPI报文转换为CAN数据帧,通过CAN接口对外发送。具体步骤包括:
(1)通讯主机根据CAN协议,按照SPI报文格式将CAN协议中的帧类型、帧ID、数据长度和数据字段封装成数据报文;并控制SPI总线,将数据报文发送至对应的转换模块。
(2)转换模块接收到数据报文后,将SPI报文中的帧类型、帧ID、数据长度和数据填入CAN数据帧的对应字段,转换为CAN数据帧。
(3)将转换完成的CAN数据帧通过CAN接口发送出去,实现通信主机向特定CAN接口发送数据。
S32,数据接收时,各转换模块通过CAN接口接收外部数据,转换为数据报文并存入缓冲区,在通信主机读取数据时,向通信主机发送数据报文。具体步骤包括:
(1)转换模块建立以数据报文为单元的缓冲区,该缓冲区为环形缓冲区,缓冲区满后禁止写入;
(2)转换模块接收到接收到的CAN数据帧后,将帧类型、帧ID、数据长度和数据字段封装成数据报文,存入缓冲区;
(3)通信主机周期向各转换模块发送数据读取指令,并执行数据读取操作;
(4)转换模块接收到通信主机的数据读取指令;
(41)若缓冲区存在数据报文,则提取报文,在通信主机读取时,发送至主机;
(42)若缓冲区为空,则在通信主机读取时,向主机发送状态报文,通知主机,该通道缓冲区已空;
(5)通信主机若读取到数据报文,则解析并处理数据,若读取到缓冲区为空的状态报文,则丢弃数据,并终止本周期的读取操作。
S4,转换模块按统一格式完成SPI报文与CAN数据帧的转换。
其中,所述转换模块的配置步骤为:
通信主机启动后,根据扩展的CAN接口数量,
(1)查询各通道的转换模块状态,完成各通道转换模块的状态检测;
(2)清空各通道转换模块的SPI报文缓冲区;
(3)设置各通道的CAN接口工作模式和波特率;
(4)设置各通道的接收屏蔽方式和屏蔽码。
本发明所产生的有益效果是:
(1)根据SPI通信特点设计了可扩展通信架构,利用SPI的一主多从工作模式,实现通过1路SPI接口扩展多路CAN接口的功能,大大增加了系统的扩展能力,而且由于SPI速度远高于CAN通信,该扩展方式不会影响CAN接口的通信速率。
(2)根据可扩展通信架构的通信内容,设计了统一的SPI报文格式,实现了对CAN总线灵活配置,对转换模块状态实时监控。
(3)根据CAN数据帧的结构,设计数据报文格式,实现了CAN数据包的透明传输,增加了协议转换的通用性,通过对转换算法进行必要的软件封装,通信主机软件完全按照标准CAN数据格式进行接收和发送,编程简单灵活。
(4)建立数据缓冲区,解决了CAN总线缓冲区较小以及SPI总线与CAN总线速度不匹配的问题,降低了对数据处理同步要求,提高了数据传输可靠性。
(5)该设计利用现有的成熟芯片,通过开发软件实现,维护和使用成本较低。
Claims (9)
1.一种可扩展的SPI总线与CAN总线数据转换方法,其特征在于:利用通信主机和一个以上的转换模块作为运行平台,具体步骤如下:
S1,扩展通信架构设计:
通信主机与一个以上的转换模块间通过SPI总线通信,转换模块通过CAN总线与外部设备连接,利用SPI总线一主多从工作方式,将通信主机软件设置为主机模式,转换模块软件设置为从机模式,通过SPI主机连接多个从机方式,通信主机通过多个转换模块搭建通道,实现SPI扩展多路CAN接口功能,对各个通道进行编号;
S2,SPI报文格式设计:
根据SPI总线的通信方式,设计统一的SPI报文格式;
S3,通信机制设计:
通信主机通过转换模块实现与多路CAN设备的通信,在转换模块内增加SPI报文缓冲区,
S31,数据发送时,通信主机将SPI报文发送至各转换模块,各转换模块将SPI报文转换为CAN数据帧,通过CAN接口对外发送;
S32,数据接收时,各转换模块通过CAN接口接收外部数据,转换为SPI报文并存入缓冲区,在通信主机读取数据时,向通信主机发送SPI报文;
S4,转换模块按统一格式完成SPI报文与CAN数据帧的转换。
2.根据权利要求1所述的一种可扩展的SPI总线与CAN总线数据转换方法,其特征在于:步骤S1具体包括扩展通信架构通信主机和转换模块的功能分配如下:
(1)通信主机配置各个通道的转换模块,并监控转换模块状态;
(2)通信主机封装需发送至各个通道的SPI报文,并处理由各个通道接收到的SPI报文;
(3)转换模块完成CAN数据帧的接收和发送,以及CAN数据帧与SPI报文的相互转换。
3.根据权利要求1所述的一种可扩展的SPI总线与CAN总线数据转换方法,其特征在于:通信主机与转换模块间通过SPI总线通信具体包括如下内容:
(1)控制报文,包括转换模块配置指令、状态查询指令和数据读取指令,配置指令实现转换模块配置,包括通道编号、CAN工作模式、CAN波特率、CAN屏蔽方式及屏蔽码;状态查询指令获取各转换模块的状态信息;数据读取指令读取转换模块的数据帧;
(2)状态报文,将转换模块的工作状态信息封装成状态报文,反馈给通信主机;
(3)数据报文,将CAN协议中的帧类型、帧ID、数据长度和数据封装成数据报文,实现CAN数据帧与SPI报文相互转换。
4.根据权利要求1或3所述的一种可扩展的SPI总线与CAN总线数据转换方法,其特征在于:所述SPI报文格式具体包括前导序列、报文段和结尾序列,各类报文采用相同格式的前导序列和结尾序列,报文段根据传输报文的不同采用不同的封装格式;
(1)前导序列包括起始符、通道号、报文标识和序列校验,用于识别报文开端,标识报文要发向的通道或者产生该报文的通道,并指示报文的类别;
(2)报文段为SPI报文的实际内容,具体为控制报文、状态报文和数据报文,其中控制报文、状态报文和数据报文具体报文格式不相同;
(3)结尾序列为固定序列,标识报文的结尾。
5.根据权利要求1所述的一种可扩展的SPI总线与CAN总线数据转换方法,其特征在于:所述转换模块的配置步骤为:
通信主机启动后,根据扩展的CAN接口数量,
(1)查询各通道的转换模块状态,完成各通道转换模块的状态检测;
(2)清空各通道转换模块的SPI报文缓冲区;
(3)设置各通道的CAN接口工作模式和波特率;
(4)设置各通道的接收屏蔽方式和屏蔽码。
6.根据权利要求4所述的一种可扩展的SPI总线与CAN总线数据转换方法,其特征在于:所述前导序列的元素格式为:
(1)起始符为2个字节的固定序列,用于接收方识别报文开端;
(2)通道号为通信主机分配的通道编号,根据可扩展通信架构中,通信主机连接多个转换模块的通信方式,前导序列中加入通道号,用以标识发送该SPI报文的通道,或者接收到该SPI报文的通道;
(3)报文标识用于区分报文的类别;
(4)序列校验根据前导序列计算,用于对前导序列的正确性进行校验。
7.根据权利要求4所述的一种可扩展的SPI总线与CAN总线数据转换方法,其特征在于:所述报文段格式为:
(1)控制报文格式包括指令字、指令参数和报文校验,指令字标识具体指令,指令参数是对应指令所需的参数,根据具体指令设置;
(2)状态报文包括标识符、数据区和报文校验,标识符标识状态数据类别,数据区为实际数据;
(3)数据报文格式根据CAN数据帧设计,CAN总线采用CAN2.0B标准协议格式,将CAN协议中的帧类型、帧ID、数据长度和数据字段重新进行封装,用于实现CAN数据帧与SPI报文的转换。
8.根据权利要求1所述的一种可扩展的SPI总线与CAN总线数据转换方法,其特征在于:步骤S31数据发送具体包括:
(1)按照SPI报文格式封装成数据报文;并控制SPI总线,将数据报文发送至对应的转换模块;
(2)转换模块接收到数据报文后,将SPI报文中的帧类型、帧ID、数据长度和数据填入CAN数据帧的对应字段,转换为CAN数据帧;
(3)将转换完成的CAN数据帧通过CAN接口发送出去,实现通信主机向特定CAN接口发送数据。
9.根据权利要求1所述的一种可扩展的SPI总线与CAN总线数据转换方法,其特征在于:步骤S32数据接收具体包括:
(1)转换模块建立以数据报文为单元的缓冲区,该缓冲区为环形缓冲区,缓冲区满后禁止写入;
(2)转换模块接收到接收到的CAN数据帧后,将CAN数据帧封装成数据报文,存入缓冲区;
(3)通信主机周期向各转换模块发送数据读取指令,并执行数据读取操作;
(4)转换模块接收到通信主机的数据读取指令;
(41)若缓冲区存在数据报文,则提取报文,在通信主机读取时,发送至主机;
(42)若缓冲区为空,则在通信主机读取时,向主机发送状态报文,通知主机,该通道缓冲区已空;
(5)通信主机若读取到数据报文,则解析并处理数据,若读取到缓冲区为空的状态报文,则丢弃数据,并终止本周期的读取操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211375540.9A CN115883675A (zh) | 2022-11-04 | 2022-11-04 | 一种可扩展的spi总线与can总线数据转换方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211375540.9A CN115883675A (zh) | 2022-11-04 | 2022-11-04 | 一种可扩展的spi总线与can总线数据转换方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115883675A true CN115883675A (zh) | 2023-03-31 |
Family
ID=85759421
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211375540.9A Pending CN115883675A (zh) | 2022-11-04 | 2022-11-04 | 一种可扩展的spi总线与can总线数据转换方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115883675A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116962112A (zh) * | 2023-09-20 | 2023-10-27 | 中国船舶集团有限公司第七〇七研究所 | 基于标准spi总线连接的双机全双工数据透明传输方法 |
-
2022
- 2022-11-04 CN CN202211375540.9A patent/CN115883675A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116962112A (zh) * | 2023-09-20 | 2023-10-27 | 中国船舶集团有限公司第七〇七研究所 | 基于标准spi总线连接的双机全双工数据透明传输方法 |
CN116962112B (zh) * | 2023-09-20 | 2023-12-15 | 中国船舶集团有限公司第七〇七研究所 | 基于标准spi总线连接的双机全双工数据透明传输方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0622713B1 (en) | Method and apparatus for exchanging different classes of data during different time intervals | |
CN105324960A (zh) | 控制器局域网络灵活的数据率 | |
CN105117319A (zh) | 基于fpga实现对多路mdio设备实时监控的方法 | |
CN110471880B (zh) | 一种基于FPGA支持Label号筛选的ARINC429总线模块及其数据传输方法 | |
CN108966046B (zh) | 一种基于fpga的两种通信接口融合mac控制器 | |
CN102346501A (zh) | 一种具有统一机框管理架构的设备及其管理控制方法 | |
CN101610192A (zh) | 一种通信从机、总线级连方法及系统 | |
CN110177058B (zh) | 一种基于fpga的以太网交换板卡状态监控收发装置 | |
CN115883675A (zh) | 一种可扩展的spi总线与can总线数据转换方法 | |
US5056084A (en) | System for transmitting hdlc frames on a pcm type link using a single hdlc circuit and a transposition buffer memory | |
CN110663222A (zh) | 处理过程数据 | |
CN107992439A (zh) | 一种可扩展的数据交互方法及系统 | |
US7283488B2 (en) | J1850 application specific integrated circuit (ASIC) and messaging technique | |
CN108521416B (zh) | 一种ecn板卡 | |
CN116450563A (zh) | 一种消息接收装置和处理器通信系统 | |
CN115904844A (zh) | 一种用于打印boot信息的uart仿真模型及其工作方法 | |
CN112583839B (zh) | Autbus总线与Hart总线的协议转换装置及方法、设备及介质 | |
CN109787875B (zh) | 通讯总线转换系统 | |
CN111193650B (zh) | 一种基于sae as5643标准的节点收发控制装置 | |
CN209627394U (zh) | 一种数字信号采集器及系统 | |
CN110445569B (zh) | 一种具有定时与指令同步功能的集成系统 | |
CN108712242B (zh) | 分组设备内提升信令处理能力的系统及方法 | |
CN112882979A (zh) | 一种通信系统和方法 | |
CN110687854A (zh) | 一种pa总线控制器以及一种pa总线控制系统 | |
CN113141322A (zh) | 一种数据通信方法、数据通信装置及计算机存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |