CN115065575B - 基于can总线控制器的数据传输***及电子设备 - Google Patents
基于can总线控制器的数据传输***及电子设备 Download PDFInfo
- Publication number
- CN115065575B CN115065575B CN202210881757.0A CN202210881757A CN115065575B CN 115065575 B CN115065575 B CN 115065575B CN 202210881757 A CN202210881757 A CN 202210881757A CN 115065575 B CN115065575 B CN 115065575B
- Authority
- CN
- China
- Prior art keywords
- module
- bus
- controller
- frame data
- node
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40006—Architecture of a communication node
- H04L12/40013—Details regarding a bus controller
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L2012/40208—Bus networks characterized by the use of a particular bus standard
- H04L2012/40215—Controller Area Network CAN
-
- 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
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Systems (AREA)
- Small-Scale Networks (AREA)
Abstract
本申请涉及CAN总线控制领域,提供一种基于CAN总线控制器的数据传输***及电子设备。该***包括CAN总线、与CAN总线连接的CAN收发器:用于解析CAN总线上的电压变化,得到逻辑电平信号;至少一个设置于CAN节点中的CAN总线控制器,CAN总线控制器的接收管脚和发送管脚与CAN收发器连接,CAN总线控制器的寄存器模块用于根据所述逻辑电平信号生成寄存器配置信息;CAN总线控制器的控制器模块用于根据所述寄存器配置信息将所述CAN节点的模式切换到工作模式,并检测数据传输信号,根据该数据传输信号在CAN节点和CAN总线之间进行数据传输。本申请提供的数据传输***通过CAN总线控制器可以使CAN总线上的节点之间通过CAN总线进行通信,消除节点间的通信隔离,提高通信效率。
Description
技术领域
本申请涉及CAN总线控制领域,具体涉及一种基于CAN总线控制器的数据传输***及电子设备。
背景技术
CAN(Controller Area Network,控制器局域网)是ISO国际标准化的串行通信协议,目前被广泛地应用于工业自动化、船舶、医疗设备、工业设备等领域。 CAN总线控制器是用以实现CAN总线协议和微处理器的接口的电路模块。 CAN总线以多主机方式工作,CAN网络上任意一个节点均可以在任意时刻主动向网络上的其他节点发送信息,而不分主从,通信方式灵活。目前,随着信息技术的发展,船舶、医疗器械和汽车等集成设备的结构和功能日益复杂,功能不同的结构之间相互独立,存在通信隔离,不利于对设备的集中控制,且容易影响通信效率。
发明内容
本申请实施例提供一种基于CAN总线控制器的数据传输***及电子设备,用以解决现有的集成设备不同结构之间相互独立,存在通信隔离,影响通信效率的技术问题。
第一方面,本申请实施例提供一种基于CAN总线控制器的数据传输***,所述数据传输***包括CAN收发器、CAN总线和至少一个设置于所述CAN总线上挂载的CAN节点中的CAN总线控制器,所述CAN总线控制器包括接收管脚、发送管脚、寄存器模块和控制器模块,所述CAN收发器与所述CAN总线连接,所述CAN总线控制器的接收管脚和发送管脚与所述CAN收发器连接,其中:
所述CAN收发器用于解析所述CAN总线上的电压变化,得到逻辑电平信号;
所述寄存器模块用于根据所述逻辑电平信号生成寄存器配置信息;
所述控制器模块用于根据所述寄存器配置信息将所述CAN节点的模式切换到工作模式,并检测所述CAN总线上的数据传输信号,根据所述数据传输信号在所述CAN节点和所述CAN总线之间进行数据传输。
在一个实施例中, 所述CAN总线控制器还包括波特率模块、计时器模块、解码模块、过滤器模块和运行内存RAM模块,其中:
所述波特率模块用于确定所述CAN总线的位时序信息,根据所述位时序信息生成待接收帧数据的采样标志;
所述控制器模块还用于生成第一使能信号和第二使能信号;
所述计时器模块根据所述第一使能信号启动计时器,所述计时器用于根据位时间生成待接收帧数据的时间戳;
所述解码模块根据所述第二使能信号,基于所述时间戳和所述采样标志对所述待接收帧数据进行解码处理;
所述过滤器模块用于对解码处理后的待接收帧数据进行标识符匹配,若匹配通过,指示所述解码模块将解码后的待接收帧数据写入所述运行内存RAM模块中等待被读取,若匹配不通过,指示所述解码模块丢弃解码后的待接收帧数据。
在一个实施例中,所述CAN总线控制器还包括循环冗余校验模块,所述控制器模块中包括错误计数器和控制状态机,其中:
所述控制器模块还用于生成所述待接收帧数据的选择信号;
所述循环冗余校验模块根据所述选择信号生成所述待接收帧数据的循环冗余校验码,并根据所述循环冗余校验码对所述待接收帧数据进行校验;
所述控制器模块中的错误计数器根据所述循环冗余校验模块的校验结果,生成所述待接收帧数据对应的错误计数值;
所述控制器模块还用于当所述错误计数值达到设定阈值时,生成离线同步请求;
所述解码模块还用于根据所述离线同步请求进行离线同步。
在一个实施例中,所述CAN总线控制器还包括编码模块:
所述波特率模块还用于根据所述位时序信息生成待发送帧数据的传输标志;
所述循环冗余校验模块还用于生成待发送帧数据的循环冗余校验序列;
所述编码模块用于根据所述传输标志和所述循环冗余校验序列,对所述待发送帧数据进行编码处理。
在一个实施例中,所述计时器模块还用于记录所述待发送帧数据和所述待接收帧数据的帧起始时间戳,当所述待发送帧数据的帧起始时间戳与预设的定时发送时间戳匹配时,开始发送所述待发送帧数据。
在一个实施例中,所述运行内存RAM模块的存储容量为可配置。
在一个实施例中,所述寄存器模块包括控制寄存器和状态寄存器,其中:
所述控制寄存器用于配置所述控制器模块的控制信息,所述控制信息用于控制所述CAN总线上挂载的CAN节点的模式;
所述状态寄存器用于配置所述控制器模块中的控制状态机的状态信息,所述状态信息用于控制所述CAN节点的节点状态,所述节点状态包括接收状态和发送状态。
在一个实施例中,所述发送管脚包括内部发送管脚和外部发送管脚,所述接收管脚包括内部接收管脚和外部接收管脚:
所述CAN总线控制器还包括连接模块,用于提供所述内部发送管脚、所述外部发送管脚、所述内部接收管脚及所述外部接收管脚的连接关系。
在一个实施例中,当所述CAN节点处于工作模式时,在所述连接模块中,所述外部接收管脚与所述内部接收管脚连接,所述外部发送管脚与所述内部发送管脚连接;
当所述CAN节点处于测试模式时,在所述连接模块中,所述内部发送管脚与所述内部接收管脚连接,通过所述内部发送管脚发送的帧数据同步到所述内部接收管脚上,进行环回测试;
当所述CAN节点处于休眠模式时,通过所述外部发送管脚输出隐性位。
第二方面,本申请实施例提供一种电子设备,包括处理器和存储有计算机程序的存储器,还包括如第一方面所述的基于CAN总线控制器的数据传输***中的CAN总线控制器。
本申请实施例提供的基于CAN总线控制器的数据传输***及电子设备,通过在CAN总线上挂载的节点中设置CAN总线控制器,可以在CAN节点和CAN总线之间进行数据传输,使得CAN总线上各节点之间可以通过CAN总线进行通信,从而消除了节点之间的通信隔离,有利于对CAN总线上各节点进行集中控制,提高CAN总线上各节点之间的通信效率。
附图说明
为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的基于CAN总线控制器的数据传输***的结构示意图之一;
图2是本申请实施例提供的CAN总线控制器的结构示意图之一;
图3是本申请实施例提供的电子设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供的基于CAN总线控制器的数据传输***(以下简称***),包括CAN收发器、CAN总线和至少一个设置于CAN总线上挂载的CAN节点中的CAN总线控制器,CAN总线控制器设置于CAN总线上挂载的CAN节点中,该CAN节点可以是设备或子***。CAN收发器与CAN总线连接,CAN总线控制器包括接收管脚CANRX和发送管脚CANTX,该接收管脚CANRX和发送管脚CANTX与CAN收发器连接。CAN总线控制器还包括寄存器模块和控制器模块,其中:
CAN收发器用于解析CAN总线上的电压变化,得到逻辑电平信号,寄存器模块用于根据CAN收发器解析出的逻辑电平信号生成寄存器的配置信息,控制器模块用于根据寄存器的配置信息切换CAN总线的模式,将CAN节点的模式切换为工作模式,同时检测数据传输信号,根据检测到的数据传输信号在CN节点和CAN总线之间进行数据传输,实现CAN节点与CAN总线之间的数据交换,基于此 ,不同的CAN节点之间可以基于CAN总线进行通信,从而消除集成设备中不同结构之间的通信隔离。其中,数据传输信号包括待接收帧数据或待发送帧数据的帧起始(Start-of-Frame ,SOF),当检测到帧起始时,控制节点开始发送或接收帧数据。寄存器模块包括多个寄存器,其中包括控制寄存器和状态寄存器,控制寄存器用于配置控制器模块的控制信息,该控制信息用于控制总线节点的模式,使总线节点处于工作、休眠或测试等模式下,状态寄存器用于配置控制器模块中的控制状态机的状态信息,该状态信息用于控制CAN总线节点的节点状态,节点状态包括接收状态和发送状态,用于控制帧数据的接收和发送。总线网络中各节点的处理器通过配置寄存器模块中的控制寄存器,使节点处于相应的模式下,当节点处于工作模式下时,控制器模块检测到SOF时,通过配置寄存器模块中的状态寄存器,使控制状态机跳到帧接收状态或帧传输状态,并产生使能信号,启动其他模块进行帧数据的接收或发送。
具体地,参照图1,图1为本申请实施例提供的基于CAN总线控制器的数据传输***的***结构示意图之一。在图1中,CAN总线(以下简称总线)包括高低电平的CAN_H和CAN_L两条线,CAN收发器为差分收发电路,分别与CAN_H和CAN_L连接,以解析总线上的电压变化,并通过CAN总线控制器的接收管脚CANRX将解析出的逻辑电平信号发送给CAN总线控制器,CAN总线控制器通过发送管脚CANTX将数据发送给CAN收发器,并通过总线进行传输。其中,总线上包括多个节点(节点1至节点N,N为大于0的正整数),该节点可以是搭载CAN总线控制器的子***或设备,在此不做具体限定,在集成设备中,不同的节点可以表示不同的功能结构或设备。CAN总线控制器设置在节点内,对总线上的信息进行解析和传输,CAN收发器解析CAN总线上CAN_H和CAN_L的电压变化,在CANRX解析出逻辑电平信号,对应着显性位和隐性位,例如显性位是逻辑‘0’,隐性位是逻辑‘1’;根据CANTX输出的逻辑电平信号控制总线的CAN_H和CAN_L的电压变化,CAN总线控制器根据CANRX接收的电平信号按照CAN总线的协议要求接收并解析出帧数据,同时,也可以根据CAN协议要求通过CANTX发送帧数据。
进一步地,***对数据的传输包括接收数据和发送数据,接收或发送的数据为帧数据。CAN总线控制器还包括波特率模块、计时器模块、解码模块、过滤器模块和运行内存RAM模块,在接收帧数据时,波特率模块用于确定总线的位时序信息,并将位时序信息写入寄存器模块中,根据位时序信息生成待接收帧数据的采样标志。控制器模块还用于生成使能信号,包括第一使能信号和第二使能信号,其中,计时器模块根据第一使能信号启动计时器,计时器用于根据位时间生成待接收帧数据的时间戳,解码模块根据第二使能信号启动解码功能,根据计时器生成的时间戳和波特率模块生成的采样标志,对待接收帧数据进行解码处理,过滤器模块用于对解码处理后的待接收帧数据进行标识符匹配,若匹配通过,则指示解码模块将解码处理后的待接收帧数据写入运行内存RAM模块,等待被节点中的处理器读取;若匹配不通过,则指示解码模块丢弃解码处理后的待接收帧数据。其中,过滤器模块中用于匹配的标识符可以是预先配置的,控制器模块通过生成使能信号控制其他模块的启动,从而完成数据的接收或发送。
进一步地,CAN总线控制器还包括循环冗余校验模块(即CRC(Cyclic RedundancyCheck)模块,以下简称CRC模块),控制器模块中包括错误计数器和控制状态机,控制器模块还用于生成待接收帧数据的选择信号,该选择信号用于对帧接收、帧发送、空闲或离线等不同节点状态进行选择,CRC模块根据控制器模块生成的选择信号,生成待接收帧数据的CRC校验码,并对待接收帧数据的CRC段进行校验,控制器中的错误计数器根据CRC模块对待接收帧数据的校验结果,生成对应的错误计数值,例如,校验结果为通过时,错误计数值减一,校验结果为不通过时,错误计数值增加一。控制器模块还用于当错误计数值达到设定阈值时,生成离线同步请求,解码模块根据控制器模块生成的离线同步请求,进行离线同步,在总线128次检测到11个连续的隐性位,认为离线同步成功。控制器模块的控制状态机在检测到SOF 时跳到帧接收状态,等待帧接收完毕之后会把标识符送进过滤器模块进行标识符的匹配,匹配的则将对应的帧数据写入到RAM内存中,处理器按照FIFO(first in,first out,先进先出)的原则读取该帧数据;如果不匹配, CAN总线控制器则丢弃该帧数据。
进一步地,CAN总线控制器还包括编码模块,当节点需要发送数据时,控制器模块通过使能信号启动编码模块、波特率模块和CRC模块,控制状态机切换至帧传输状态,波特率模块根据位时序信息生成待发送帧数据的传输标志,CRC模块生成待发送帧数据的CRC序列,编码模块根据传输标志和CRC序列,对待发送帧数据进行编码处理,编码处理后的帧数据在总线上通过仲裁传输,控制器模块等待帧发送完毕再次回到空闲。
更进一步地,CAN总线控制器的运行内存RAM模块的存储容量是可配置的,还支持定时发送功能,计时器模块还用于记录待发送帧数据和待接收帧数据的帧起始时间戳,即SOF时间戳,当待发送帧数据的SOF时间戳与预设的定时发送时间戳匹配时,开始发送待发送帧数据,实现定时发送功能。CAN总线控制器的接收管脚CANRX包括外部CANRX和内部CANRX,同样地,发送管脚CANTX包括外部CANTX和内部CANTX,外部CANTX和外部CANRX分别与CAN收发器连接。CAN总线控制器还包括连接模块,该连接模块提供外部CANTX、内部CANTX、外部CANRX及内部CANRX的连接关系。测试模式下,内部CANTX与内部CANRX连接,控制通过内部CANTX传输的数据直接共享到内部CANRX上,外部CANTX可以选择不输出,实现环回测试;工作模式下,外部CANTX与内部CANTX连接、外部CANRX与内部CANRX连接,通过外部CANTX发送帧数据,通过外部CANRX接收帧数据,实现数据传输;休眠模式下,默认外部CANTX输出隐性位,逻辑‘1’。
参照图2,图2为本申请实施例提供的CAN总线控制器的结构示意图之一,在图2中,CAN总线控制器接口包括总线接口、***时钟clk、***复位rst、与外部相连的外部CANRX和外部CANTX管脚,CAN总线控制器功能模块包括运行内存RAM模块1、过滤器模块2、波特率模块3、寄存器模块4、控制器模块5、解码模块6、计时器模块7、循环冗余校验模块8、编码模块9和连接模块10,其中,寄存器模块4包括控制寄存器和状态寄存器,CAN总线控制器通过总线接口与节点的通信总线连接,通过外部CANRX和CANTX与CAN收发器连接,并通过CAN收发器与外部CAN总线上的其他节点进行数据传输,实现基于CAN总线的通信。
进一步地,基于图2所示出的结构示意图,对本申请提供的CAN总线控制器的数据传输***进行详细说明,首先,图2中CAN总线控制器各模块的功能如下:
运行内存RAM模块1:用于编码模块的数据读取、解码模块的数据写入以及总线的寄存器操作写入或读取RAM数据,运行内存RAM模块作为总线发送和接收信息的存储位置,其内存大小可以根据实际需要存储的数据的帧数进行配置。当多个模块在同一时间段内进行数据的读写操作时,需要进行优先级判断,根据优先级顺序,按照FIFO原则进行读写操作,例如,根据总线优先、编码次优先和解码最后的优先级顺序进行读取或写入操作。运行内存RAM模块1中除了优先级判断,还包括RAM控制器、接收FIFO写指针和接收FIFO读指针,其中,RAM控制器是相应的RAM存储器的控制器,对读取或写入RAM存储器的操作进行控制,接收FIFO读、写指针是保存帧接收的地址信息,帧接收信息按照FIFO的规则进行,可以根据接收FIFO读、写地址得到目前RAM中存储的数据帧数。
过滤器模块2:过滤器模块2在检测到解码模块6的帧接收完毕的信号时,把接收到的帧数据的帧标识符与过滤器内配置的标识符进行比较,若一致则比较成功,可以通过过滤器,相应的帧数据为有效信息,指示解码模块6将帧数据写入运行内存RAM模块1中,等待被处理器读取;若比较不成功则指示解码模块6丢弃接收到的帧数据。
波特率模块3:波特率模块3用于定义CAN协议的位时序信息,通过配置寄存器中的位时序寄存器修改波特率,同时该模块还具备CAN协议的硬同步和再同步。当波特率模块3被使能,其中的计数器会按照位时序寄存器中配置的信息进行工作并周期性的输出采样标志和传输标志,供解码模块6和编码模块9使用。如果节点状态是接收节点,那么在检测第一个位时间的边沿会初始化计数器,执行硬同步,在其他每一个边沿会初始化计数器,实现再同步。
寄存器模块4:寄存器模块提供与处理器的接口,处理器可以通过总线接口对寄存器以及运行内存RAM模块1的内存进行读取或写入操作,寄存器模块4内包括多个寄存器可以提供多种配置,主要包括CAN的控制寄存器、CAN的状态寄存器、接收FIFO的状态寄存器、中断寄存器、位时序寄存器、过滤器寄存器等。
控制器模块5:控制器模块5用于控制整个CAN总线控制器的运行过程,其中包括模式、控制状态机、错误检测和错误计数。处理器通过配置寄存器模块4的控制寄存器使CAN总线控制器处于不同的模式下,包括休眠、工作和测试模式,其中,休眠模式下,CAN总线控制器不工作,控制状态机处于等待状态,除了寄存器模块4和控制器模块5之外,其余模块不工作;工作模式下,其余模块正常运行,处理器配置寄存器模块4生成发送请求信号,控制器模块5检测信号部分检测到该发送请求信号,将控制状态机从等待状态切换到帧传输状态,在帧传输状态下,生成使能信号以启动编码模块9、循环冗余校验模块8、波特率模块3进行帧传输,等待帧传输完毕后,即检测到帧传输完毕的信号,控制状态机又切换回等待状态,等待检测下一个请求;如果检测到传输错误,则会再次传输对应的帧数据;测试模式下,允许对外界或内部进行检测,即可以在不影响外部总线信号的情况下,检测外部时序和内部自发时序,当检测到的错误计数值,即错误计数器的计数值达到设定值时,将CAN节点的错误状态由主动错误状态转换为被动错误状态和离线状态。离线状态表明该CAN节点错误的概率很高,需要等待离线同步后才能重新进入工作状态。此时生成离线同步请求,控制状态机进入离线同步状态,等待离线同步完毕,回到主动错误状态,其中,错误计数器的计数值在检测到传输错误和接收错误时增加,在检测到传输成功和接收成功时减少。
解码模块6:解码模块6根据控制器模块5的使能信号 ,启动解码,解码会根据CAN协议要求进行数据帧、远程帧、过载帧、错误帧和间隔帧的解码 ,在每个采样标志对应的采样点对内部CANRX信号进行电平读取,若解码成功则生成帧接收完毕的信号,否则,若解码出错输出接收错误信号。同时,解码模块6还用于总线同步和节点的离线同步,例如,在总线检测到11个连续的隐性位时,则视为总线同步完成,生成相应的总线同步完成的信号;在总线128次检测到11个连续的隐性位时,则视为离线同步完成,生成相应的离线同步完成的信号。
计时器模块7:计时器模块7由控制器模块5使能启动计数器进行计数,该计数器为位计数器,在每个位时间的采样点递增,产生16位的时间戳供外部使用。
循环冗余校验模块8:根据控制器模块5的选择信号,可以选择计算内部CANTX或者内部CANRX传输数据的CRC序列,在每一帧数据计算之前需要对CRC计算进行初始化,然后把CANTX或者CANRX的串行数据流输入计算,最终产生的计算结果为15位的CRC校验码序列,CRC序列可以用于进行CRC校验或者作为帧数据的一部分进行传输。具体地,对于节点接收的帧数据,计算出的CRC序列用于对接收的帧数据中的CRC段进行校验,对于节点发送的帧数据,计算得到的CRC序列作为待发送帧数据的CRC段,即作为待发送帧数据的一部分进行传输。
编码模块9:根据控制器模块5给出的使能信号启动,根据CAN协议要求,基于循环冗余校验模块8计算出的CRC序列和波特率模块3生成的传输标志,可以编码输出数据帧、远程帧、错误帧、过载帧和间隔帧,当编码出现错误时会产生传输错误信号,当编码成功时输出传输完毕的信号,传输错误信号和传输完毕信号用于供控制器模块5的错误计数器生成计数值。
连接模块10:用于提供外部CANTX 、外部CANRX 、内部CANTX及内部CANRX的连接关系。在测试模式下,可以控制内部CANTX的数据流共享到内部CANRX上,外部CANTX可以选择不输出,可以实现环回测试,并且不会对外部总线产生影响;正常工作模式下,外部CANTX与内部CANTX相连,外部CANRX与内部CANRX相连,对数据进行接收和发送,实现节点间的通信;休眠模式下,默认外部CANTX输出隐性位,逻辑‘1’,不与其他节点通信。
基于上述CAN总线控制器各模块的功能,本申请实施例提供的基于CAN总线控制器的数据传输***在进行数据传输时,具体地,处理器可以通过配置寄存器模块4的控制寄存器使CAN节点处于不同的模式下,休眠模式下CAN节点不工作,控制状态机处于等待状态,除了寄存器模块4和控制器模块5之外,其余模块不工作。工作模式下,其余模块正常运行,处理器配置寄存器产生发送请求信号,控制器模块5中的检测信号部分将检测到该发送请求信号,将控制状态机从等待状态切换到帧传输状态,在帧传输状态下,启动编码模块9、循环冗余校验模块8、波特率模块3进行帧传输,等待检测到帧传输完毕信号后,又回到等待状态,等待检测下一个请求;如果检测到传输错误,则会再次传输该帧数据。测试模式下,允许对外界或内部进行检测,即可以在不影响外部总线信号的情况下,检测外部时序和内部自发时序测试,当检测到错误时,控制器模块5中的错误计数器的计数值改变,当错误计数器的计数值达到设定的阈值时,CAN节点的错误状态由主动错误状态转变为被动错误状态和离线状态,需要完成离线同步后才能重新进入工作状态,此时,控制器模块5生成离线同步请求,控制状态机切换至离线同步状态,等待解码模块6离线同步完毕,控制器模块5控制CAN节点回到主动错误状态,可以重新进入工作模式进行数据传输。
在本实施例中,通过在CAN总线上挂载的节点中设置CAN总线控制器,可以在CAN节点和CAN总线之间进行数据传输,包括数据的发送和接收,使得CAN总线上各节点之间可以通过CAN总线进行通信,从而消除了节点之间的通信隔离,有利于对CAN总线上各节点进行集中控制,提高CAN总线上各节点之间的通信效率。
进一步地,CAN总线控制器可以提供多种模式和可配置的存储容量,有利于满足用户的个性化需求,并且可以实现定时发送,提供更多的应用场景。
图3示例了一种电子设备的实体结构示意图,如图3所示,该电子设备可以包括:处理器(processor)310、通信接口(Communication Interface)320、存储器(memory)330和通信总线340,其中,处理器310,通信接口320,存储器330通过通信总线340完成相互间的通信,通信接口320与CAN总线控制器连接,并通过CAN总线控制器与外部进行通信。处理器310可以调用存储器330中的计算机程序或数据,以实现基于CAN总线控制器的数据传输***的功能。
此外,上述的存储器330中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述***的全部或部分功能。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
所述存储介质可以是处理器能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(MO)等)、光学存储器(例如CD、DVD、BD、HVD等)、以及半导体存储器(例如ROM、EPROM、EEPROM、非易失性存储器(NAND FLASH)、固态硬盘(SSD))等。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)实现各个实施例或者实施例的某些部分所述的***功能。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (8)
1.一种基于CAN总线控制器的数据传输***,其特征在于,所述数据传输***包括CAN收发器、CAN总线和至少一个设置于所述CAN总线上挂载的CAN节点中的CAN总线控制器,所述CAN总线控制器包括接收管脚、发送管脚、寄存器模块和控制器模块,所述CAN收发器与所述CAN总线连接,所述CAN总线控制器的接收管脚和发送管脚与所述CAN收发器连接,其中:
所述CAN收发器用于解析所述CAN总线上的电压变化,得到逻辑电平信号;
所述寄存器模块用于根据所述逻辑电平信号生成寄存器配置信息;
所述控制器模块用于根据所述寄存器配置信息将所述CAN节点的模式切换到工作模式,并检测数据传输信号,根据所述数据传输信号在所述CAN节点和所述CAN总线之间进行数据传输;
所述CAN总线控制器还包括波特率模块、计时器模块、解码模块、过滤器模块和运行内存RAM模块,其中:
所述波特率模块用于确定所述CAN总线的位时序信息,根据所述位时序信息生成待接收帧数据的采样标志;
所述控制器模块还用于生成第一使能信号和第二使能信号;
所述计时器模块根据所述第一使能信号启动计时器,所述计时器用于根据位时间生成待接收帧数据的时间戳;
所述解码模块根据所述第二使能信号,基于所述时间戳和所述采样标志对所述待接收帧数据进行解码处理;
所述过滤器模块用于对解码处理后的待接收帧数据进行标识符匹配,若匹配通过,指示所述解码模块将解码后的待接收帧数据写入所述运行内存RAM模块中等待被读取,若匹配不通过,指示所述解码模块丢弃解码后的待接收帧数据;
所述CAN总线控制器还包括循环冗余校验模块,所述控制器模块中包括错误计数器和控制状态机,其中:
所述控制器模块还用于生成所述待接收帧数据的选择信号;
所述循环冗余校验模块根据所述选择信号生成所述待接收帧数据的循环冗余校验码,并根据所述循环冗余校验码对所述待接收帧数据进行校验;
所述控制器模块中的错误计数器根据所述循环冗余校验模块的校验结果,生成所述待接收帧数据对应的错误计数值;
所述控制器模块还用于当所述错误计数值达到设定阈值时,生成离线同步请求;
所述解码模块还用于根据所述离线同步请求进行离线同步。
2.根据权利要求1所述的基于CAN总线控制器的数据传输***,其特征在于,所述CAN总线控制器还包括编码模块:
所述波特率模块还用于根据所述位时序信息生成待发送帧数据的传输标志;
所述循环冗余校验模块还用于生成待发送帧数据的循环冗余校验序列;
所述编码模块用于根据所述传输标志和所述循环冗余校验序列,对所述待发送帧数据进行编码处理。
3.根据权利要求2所述的基于CAN总线控制器的数据传输***,其特征在于,所述计时器模块还用于记录所述待发送帧数据和所述待接收帧数据的帧起始时间戳,当所述待发送帧数据的帧起始时间戳与预设的定时发送时间戳匹配时,开始发送所述待发送帧数据。
4.根据权利要求1所述的基于CAN总线控制器的数据传输***,其特征在于,所述运行内存RAM模块的存储容量为可配置。
5.根据权利要求1所述的基于CAN总线控制器的数据传输***,其特征在于,所述寄存器模块包括控制寄存器和状态寄存器,其中:
所述控制寄存器用于配置所述控制器模块的控制信息,所述控制信息用于控制所述CAN总线上挂载的CAN节点的模式;
所述状态寄存器用于配置所述控制器模块中的控制状态机的状态信息,所述状态信息用于控制所述CAN节点的节点状态,所述节点状态包括接收状态和发送状态。
6.根据权利要求1所述的基于CAN总线控制器的数据传输***,其特征在于,所述发送管脚包括内部发送管脚和外部发送管脚,所述接收管脚包括内部接收管脚和外部接收管脚:
所述CAN总线控制器还包括连接模块,用于提供所述内部发送管脚、所述外部发送管脚、所述内部接收管脚及所述外部接收管脚的连接关系。
7.根据权利要求6所述的基于CAN总线控制器的数据传输***,其特征在于:
当所述CAN节点处于工作模式时,在所述连接模块中,所述外部接收管脚与所述内部接收管脚连接,所述外部发送管脚与所述内部发送管脚连接;
当所述CAN节点处于测试模式时,在所述连接模块中,所述内部发送管脚与所述内部接收管脚连接,通过所述内部发送管脚发送的帧数据同步到所述内部接收管脚上,进行环回测试;
当所述CAN节点处于休眠模式时,通过所述外部发送管脚输出隐性位。
8.一种电子设备,包括处理器和存储有计算机程序的存储器,其特征在于,还包括如权利要求1至7任一项所述的CAN总线控制器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210881757.0A CN115065575B (zh) | 2022-07-26 | 2022-07-26 | 基于can总线控制器的数据传输***及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210881757.0A CN115065575B (zh) | 2022-07-26 | 2022-07-26 | 基于can总线控制器的数据传输***及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115065575A CN115065575A (zh) | 2022-09-16 |
CN115065575B true CN115065575B (zh) | 2022-11-29 |
Family
ID=83206030
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210881757.0A Active CN115065575B (zh) | 2022-07-26 | 2022-07-26 | 基于can总线控制器的数据传输***及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115065575B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115834282A (zh) * | 2022-11-07 | 2023-03-21 | 交控科技股份有限公司 | 一种can总线通信方法、装置、设备及可读存储介质 |
CN117896301B (zh) * | 2024-03-14 | 2024-06-21 | 深圳市星卡科技股份有限公司 | 波特率分析方法、装置、电子设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102759891A (zh) * | 2012-06-07 | 2012-10-31 | 中国航天科技集团公司第九研究院第七七一研究所 | 一种硬切换的双冗余can 控制器 |
EP2985955A1 (en) * | 2014-08-15 | 2016-02-17 | Nxp B.V. | Controller area network (can) device and method for emulating classic can error management |
CN106533873A (zh) * | 2016-11-15 | 2017-03-22 | 天津大学 | 包含收发器与控制器的can总线节点芯片 |
CN109976216A (zh) * | 2019-03-29 | 2019-07-05 | 浙江理工大学 | 一种can总线控制器及控制方法 |
CN111104272A (zh) * | 2019-12-10 | 2020-05-05 | 北京振兴计量测试研究所 | 一种基于rx和tx的can总线控制器测试方法 |
CN111538319A (zh) * | 2020-06-22 | 2020-08-14 | 北京振兴计量测试研究所 | 一种can总线控制器并行测试方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105978777B (zh) * | 2016-06-22 | 2019-05-24 | 广州致远电子股份有限公司 | 一种波形存储方法及装置 |
DE102019208058A1 (de) * | 2019-06-03 | 2020-12-03 | Robert Bosch Gmbh | Fehlererkennung-Testeinrichtung für eine Teilnehmerstation eines seriellen Bussystems und Verfahren zum Testen von Mechanismen zur Fehlererkennung bei einer Kommunikation in einem seriellen Bussystem |
-
2022
- 2022-07-26 CN CN202210881757.0A patent/CN115065575B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102759891A (zh) * | 2012-06-07 | 2012-10-31 | 中国航天科技集团公司第九研究院第七七一研究所 | 一种硬切换的双冗余can 控制器 |
EP2985955A1 (en) * | 2014-08-15 | 2016-02-17 | Nxp B.V. | Controller area network (can) device and method for emulating classic can error management |
CN106533873A (zh) * | 2016-11-15 | 2017-03-22 | 天津大学 | 包含收发器与控制器的can总线节点芯片 |
CN109976216A (zh) * | 2019-03-29 | 2019-07-05 | 浙江理工大学 | 一种can总线控制器及控制方法 |
CN111104272A (zh) * | 2019-12-10 | 2020-05-05 | 北京振兴计量测试研究所 | 一种基于rx和tx的can总线控制器测试方法 |
CN111538319A (zh) * | 2020-06-22 | 2020-08-14 | 北京振兴计量测试研究所 | 一种can总线控制器并行测试方法 |
Non-Patent Citations (1)
Title |
---|
"面向智能驾驶的CAN广播式时间同步机制";柳灏;《信息与电脑(理论版)》;20211125;第189-191页 * |
Also Published As
Publication number | Publication date |
---|---|
CN115065575A (zh) | 2022-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115065575B (zh) | 基于can总线控制器的数据传输***及电子设备 | |
US10108578B2 (en) | Single wire communications interface and protocol | |
CN110471872B (zh) | 一种基于zynq芯片实现m-lvds总线数据交互***和方法 | |
CN101399654B (zh) | 一种串行通信方法和装置 | |
US6651107B1 (en) | Reduced hardware network adapter and communication | |
CN102831096B (zh) | 一种1553b总线协议ip核 | |
EP1825382B1 (en) | Low protocol, high speed serial transfer for intra-board or inter-board data communication | |
CN102929836B (zh) | 一种航天专用asic芯片*** | |
CN112799992B (zh) | 现场总线芯片架构 | |
RU2377729C2 (ru) | Способ и устройство для обращения к памяти сообщений коммуникационного модуля | |
CN111104272B (zh) | 一种基于rx和tx的can总线控制器测试方法 | |
CN108234267B (zh) | 一种基于m-lvds实时多主高速总线的通信*** | |
CN112564882B (zh) | 一种基于ahb总线的单线数字通讯接口 | |
US5953372A (en) | Loopback transmission testing in a communications device | |
US5133078A (en) | Serial frame processing system in which validation and transfer of a frame's data from input buffer to output buffer proceed concurrently | |
KR20220012988A (ko) | 직렬 버스 시스템의 가입자국용 오류 검출 시험 장치 및 직렬 버스 시스템에서의 통신 시 오류 검출 메커니즘의 시험 방법 | |
TW201413457A (zh) | 分配位址至互連上之裝置 | |
US7257079B1 (en) | Physical layer and data link interface with adaptive speed | |
US7444427B2 (en) | System and method for preventing transmission during message reception | |
CN113341853B (zh) | 一种ip核、fpga芯片、交流伺服驱动器及通讯方法 | |
CN110188054B (zh) | 1553总线网络产品 | |
US5721891A (en) | Detection of N length bit serial communication stream | |
CN114095300A (zh) | 自适应速率的数据读写方法及设备 | |
CN114488871A (zh) | 控制方法、变频器及计算机可读存储介质 | |
CN112147918B (zh) | 基于arm+fpga+dsp架构的异步数据交互方法及*** |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |