CN102355394B - 针对多路can总线进行数据传输控制的方法及装置 - Google Patents

针对多路can总线进行数据传输控制的方法及装置 Download PDF

Info

Publication number
CN102355394B
CN102355394B CN201110205969.9A CN201110205969A CN102355394B CN 102355394 B CN102355394 B CN 102355394B CN 201110205969 A CN201110205969 A CN 201110205969A CN 102355394 B CN102355394 B CN 102355394B
Authority
CN
China
Prior art keywords
bus
data
controller
processor
conversion
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
Application number
CN201110205969.9A
Other languages
English (en)
Other versions
CN102355394A (zh
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.)
Datang Mobile Communications Equipment Co Ltd
Original Assignee
Datang Mobile Communications Equipment 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 Datang Mobile Communications Equipment Co Ltd filed Critical Datang Mobile Communications Equipment Co Ltd
Priority to CN201110205969.9A priority Critical patent/CN102355394B/zh
Publication of CN102355394A publication Critical patent/CN102355394A/zh
Application granted granted Critical
Publication of CN102355394B publication Critical patent/CN102355394B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Bus Control (AREA)

Abstract

本发明涉及通信领域,公开了一种针对多路CAN总线进行数据传输控制的方法及装置,用以提高与多路CAN总线相连接的处理器的工作效率。该方法为:在处理器与控制多路CAN总线的各个CAN控制器之间增设一多路CAN控制装置,多路CAN控制装置将处理器的Local Bus总线直接转换成SPI接口,多路CAN控制装置通过SPI信号直接对CAN控制器进行操作,读取CAN总线的信息状态,由多路CAN控制装置来接替处理器来完成对多路CAN总线的数据传输的控制,由于多路CAN控制装置接替了处理器的部分数据处理功能,因此,减少了处理器的数据处理量,缓解了处理器的运行负荷,从而有效提高了处理器的运行效率,提升了处理器的运行稳定性。

Description

针对多路CAN总线进行数据传输控制的方法及装置
技术领域
本发明涉及通信领域,特别涉及一种针对多路CAN总线进行数据传输控制的方法及装置。 
背景技术
对于通信设备而言,其内部的控制单元需要通过采集系统中各个部分的参数来实现对通信设备的监测与控制,目前常用的采集方式有:通过CAN(Controller Area Network,控制器局域网络)总线进行多路数据的采集。 
CAN总线有着很多优点,因而得到了广泛的应用。在很多应用场合下,通常会将一个处理器同时连接多路CAN总线,并要求工作在很高的带宽下,这就需要对多路CAN总线采用合理的管理策略,一旦管理策略不适合,就会使得总线的带宽无法提升,或者,大量占用处理器的工作资源,令处理器的性能无法提升。 
目前的多路CAN总线管理装置的结构如图1所示,它由处理器和多个CAN控制器组成,其中, 
处理器,由处理器电路组成,与多个CAN控制器相连接,用于对每个CAN控制器进行读、写操作,并且运行其他的管理程序; 
CAN控制器,通过CAN接口与CAN总线相连接,用于将处理器的控制信号转换成CAN总线的信号;其中,所谓的CAN接口即是指按照CAN协议进行数据传输的接口; 
如图1所示,处理器和各CAN控制器之间的控制接口,用于将处理器的信号转换成CAN控制器需要的信号;例如:控制接口可实现SPI接口的功能:用于传输(输出/输入)数据信号、时钟信号、片选信号、中断信号;又例如, 控制接口可实现并行数据接口的功能:用于传输地址信号、数据信号、读信号、写信号、片选信号、中断信号等等。 
上述多路CAN总线管理装置的一般采用两种工作方式: 
方式一:处理器通过轮循方式,不断通过每个CAN控制器对CAN总线进行查询,当发现有数据输入的时候,读入数据,并回送相关数据。 
然而,采用方式一的情况下,处理器需要不断的对每个CAN总线进行监测,影响处理器的运行效率; 
方式二:处理器通过中断的方式进行操作,即当某个CAN总线的数据通过CAN控制器输入进来时,CAN控制器便向处理器发出一个中断,处理器对该中断进行处理,确认是那个CAN控制器发出的中断,然后对该中断的CAN控制器对应的CAN总线进行操作。 
然而,采用方式二的情况下,当CAN总线高速发送接收数据时,会频繁的产生中断,而多路CAN总线所产生的大量中断会造成处理器的处理负荷大,从而影响处理器的运行效率,进而造成处理器的运行不稳定。 
发明内容
本发明实施例提供一种基于CAN总线进行数据传输的方法及装置,用以提高与多路CAN总线相连接的处理器的工作效率。 
本发明实施例提供的具体技术方案如下: 
一种针对多路控制器局域网络CAN总线进行数据传输控制的装置,所述装置分别与处理器和至少两个CAN控制器相连接,所述装置确定任意一个CAN控制器中存在已接收的CAN总线数据时,读取所述已接收的CAN总线数据,并向处理器发送中断信号,通知处理器获取所述CAN总线数据,以及在接收到所述处理器的发送数据时,将该发送数据通过对应的CAN控制器传送至相应的CAN总线;其中,所述装置中设置有至少两个转换控制器件,每一个转换控制器件与一路CAN总线的CAN控制器相连接,用于完成Local Bus 总线向SPI接口的转换,转换控制器件通过SPI信号直接对CAN控制器进行操作,读取CAN总线的信息状态,该过程不需要处理器进行干预,其中,任意一个转换控制器件确定相应的CAN控制器中存在已接收的CAN总线数据时,读取所述已接收的CAN总线数据,并向处理器发送中断信号,通知处理器获取所述CAN总线数据,以及在接收到所述处理器的发送数据时,将该发送数据通过对应的CAN控制器传送至相应的CAN总线。 
一种针对多路控制器局域网络CAN总线进行数据传输控制的装置,包括处理器、至少两个CAN控制器,以及上述针对多路控制器局域网络CAN总线进行数据传输控制的装置。 
一种针对多路控制器局域网络CAN总线进行数据传输控制的方法,包括: 
针对至少两个CAN控制器,确定任意一个CAN控制器中存在已接收的CAN总线数据时,读取所述已接收的CAN总线数据,并向处理器发送中断信号,通知处理器获取所述CAN总线数据; 
在接收到所述处理器的发送数据时,将该发送数据通过对应的CAN控制器传送至相应的CAN总线; 
其中,通过内部设置的至少两个转换控制器件完成Local Bus总线向SPI接口的转换,每一个转换控制器件与一路CAN总线的CAN控制器相连接,基于转换控制器件通过SPI信号直接对CAN控制器进行操作,读取CAN总线的信息状态,该过程不需要处理器进行干预,其中,通过任意一个转换控制器件确定相应的CAN控制器中存在已接收的CAN总线数据时,读取所述已接收的CAN总线数据,并向处理器发送中断信号,通知处理器获取所述CAN总线数据,以及在接收到所述处理器的发送数据时,将该发送数据通过对应的CAN控制器传送至相应的CAN总线。 
本发明实施例中,在处理器与控制多路CAN总线的各个CAN控制器之间增设一多路CAN控制装置,通过该多路CAN控制装置来接替处理器来完成对多路CAN总线的数据传输的控制,由于多路CAN接替了处理器的部分数据处 理功能,因此,减少了处理器的数据处理量,缓解了处理器的运行负荷,从而有效提高了处理器的运行效率,提升了处理器的运行稳定性。 
附图说明
图1为现有技术下多路CAN总线管理装置结构示意图; 
图2为本发明实施例中多路CAN总线管理装置结构示意图; 
图3为本发明实施例中多路CAN控制装置功能结构示意图; 
图4为本发明实施例中总线转SPI控制模块结构示意图; 
图5为本发明实施例中针对CAN总线进行数据传输控制流程图。 
具体实施方式
在应用了多路CAN总线的电路环境中,为了提高与多路CAN总线相连接的处理器的工作效率,本发明实施例中,在处理器与控制多路CAN总线的各个CAN控制器之间增设一多路CAN控制装置,通过该多路CAN控制装置来接替处理器来完成对多路CAN总线的数据传输的控制。 
下面结合附图对本发明优选的实施方式进行详细说明。 
参阅图2所示,本发明实施例中,多路CAN总线管理装置中包括:处理器、多路CAN控制装置、至少两个CAN控制器,其中, 
处理器,用于接收多路CAN控制装置发送的来自于多路CAN总线的数据,以及通过CAN控制装置向多路CAN总线发送数据; 
CAN控制器,是CAN总线的控制芯片,完成对CAN总线的协议控制处理,每一个CAN控制器对应一路CAN总线; 
多路CAN控制装置,分别与处理器和至少两个CAN控制器相连接,用于接替处理器来完成对多路CAN控制器的管理工作,该多路CAN控制装置确定任意一个CAN控制器中存在已接收的CAN总线数据时,读取已接收的CAN总线数据,并向处理器发送中断信号,通知处理器获取CAN总线数据,以及 在接收到处理器的发送数据时,将该发送数据通过对应的CAN控制器传送至相应的CAN总线。 
本实施例中,多路CAN控制装置的作用是连接处理器与CAN控制器,代替处理器对CAN总线进行操作,处理器只需要直接读取多路CAN控制装置的相关寄存器,就可以获得从CAN总线接收的数据或向CAN总线发送的数据;CAN总线送入到处理器的数据、对CAN总线送入的数据进行解析、以及判断数据值是否有效等等操作,都由多路CAN控制装置代替处理器进行处理,从而减轻了处理器的运行负荷; 
如图2所示,处理器与多路CAN控制装置之间通过处理器接口相连接,多路CAN控制装置和各CAN控制器之间通过控制接口相连接,而CAN控制器通过CAN接口和CAN总线相连接,其中, 
处理器接口,为数据总线接口〔即Local Bus(本地总线)接口〕,用于在处理器和多路CAN控制装置之间传输地址信号、数据信号、读信号、写信号、片选信号、中断信号等等。 
控制接口:为信号转换接口,用于在多路CAN控制装置和各CAN控制器之间实现信号的互换; 
例如:控制接口为SPI(Serial Peripheral Interface,串行外围接口)接口:用于传输(输出/输入)数据信号,传输时钟信号、片选信号、中断信号等等; 
又例如,控制接口为并行数据接口:用于传输地址信号、数据信号、读信号、写信号、片选信号、中断信号等等。 
CAN接口:为CAN协议接口,用于在CAN控制器和相应的CAN总线之间完成数据传输。 
参阅图3所示,本发明实施例中,多路CAN控制装置向相应的CAN控制器提供了可使用的SPI接口,即多路CAN控制装置将处理器的Local Bus总线直接转换成SPI接口,多路CAN控制装置通过SPI信号直接对CAN控制器进行操作,读取CAN总线的信息状态,该过程不需要处理器进行干预。处理器 在需要读取CAN接口的信息时,通过与多路CAN控制装置连接的Local Bus总线获取,CAN总线的信息存储在多路CAN控制装置中的设定的地址上。 
如图3所示,多路CAN控制装置中进一步包括多个转换控制器件,本实施例中,将该转换控制器件称为总线转SPI控制模块,总线转SPI控制模块在硬件上可以通过可编程器件实现,例如,CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件)、FPGA(Field Programmable Gate Array,现场可编程门阵列)等器件,每一个总线转SPI控制模块分别与一个CAN控制器相连接,该总线转SPI控制模块,用于完成Local Bus总线向SPI接口的转换,实现对CAN控制器的收发数据的控制,并向处理器提供相关数据;如图3所示,多路CAN控制装置内设置的多个总线转SPI控制模块,一个总线转SPI控制模块对应一个CAN控制器,即一个总线转SPI控制模块控制一路CAN总线,那么,当多路CAN控制装置接收到多个总线转SPI控制模块传送的各路CAN总线数据时,要统一发送至处理器进行相关处理,而多路CAN控制装置接收到处理器针对某一CAN总线传送的发送数据时,要通过与该发送数据对应的CAN控制器,将该发送数据传送至相应的CAN总线。 
如图3所示,处理器与多路CAN控制装置之间通过Local BUS接口相连接,该Local Bus接口为处理器的并行数据接口,用于传输地址信号、数据信号、读信号、写信号、片选信号、中断信号等等。 
参阅图4所示,本发明实施例中,任意一个总线转SPI控制模块的结构具体如下: 
如图4所示,本实施例中,总线转SPI控制模块通过Local Bus接口与处理器相连接,Local Bus接口用于传输Local Bus信号和Local Bus CLK(Local Bus时钟),同时,总线转SPI控制模块通过控制接口中与各CAN控制器相连接,控制接口用于传输SPI_MOSI_PORT、SPI_MISO_PORT、SPI_CLK_PORT、SPI_SEL,其中, 
Local Bus信号,包括地址信号、数据信号、读信号、写信号、片选信号、 中断信号等等; 
Local Bus CLK:为Local Bus的时钟信号,用于给总线转SPI控制模块提供工作时钟。 
SPI_MOSI_PORT,为SPI输出信号端口,用于传输SPI接口主端数据输出信号; 
SPI_MISO_PORT,为SPI输入信号端口,用于传输SPI接口主端数据输入信号; 
SPI_CLK_PORT,为SPI时钟信号端口,用于传输SPI接口时钟信号; 
SPI_SEL,为SIP片选信号端口,用于传输SPI接口片选信号。 
在总线转SPI控制模块中,按照工作模式不同,将各功能模块分为两部分,一部分工作在配置模式下,一部分工作在自动模式下,如图4所示,总线转SPI控制模块中包括SPI Baud Rate Generator和Control,其中, 
SPI Baud Rate Generator:为SPI工作时钟波特率发生器,用于产生SPI的工作时钟, 
Control,为控制寄存器,用于控制总线转SPI控制模块的工作模式; 
如图4所示,总线转SPI控制模块中在配置模式下使用的功能模块包括TX_Reg、RX_Reg Shift_Reg、Status和Slave_Select,其中, 
Shift_Reg,在配置模式下使用的移位寄存器,用于对数据进行串并转换; 
TX_Reg,在配置模式下使用的发送数据寄存器,用于从处理器接收数据,并经过Shift_Reg做串并转换后从SPI_MOSI_PORT发出; 
RX_Reg,为在配置模式下使用的接收数据寄存器,用于从Shift_Reg接收来自于SPI_MISO_PORT并经过串并转换的数据,以及将该数据提供给处理器读取; 
Status,状态提示器,用于提供接收数据寄存器和发送数据寄存器的工作状态,例如,通知是否收到有效数据,数据是否发送完毕等信息。 
Slave_Select,从(设备)选择器,用于在配置模式控制SPI_SEL管脚的 动作。 
如图4所示,总线转SPI控制模块中在自动模式下使用的功能模块包括TX_FIFO、RX_FIFO和Shift_Control,其中, 
TX_FIFO,为发送FIFO(先入先出)缓存区,用于在自动模式下存储处理器的发送数据; 
RX_FIFO,为接收FIFO(先入先出)缓存区,用于在自动模式下存储从CAN控制器接收到的数据; 
Shift_Control:为移位控制器,用于判断CAN控制器的状态,并根据判断结果读取TX_FIFO内的数据发送给CAN控制器,或者,读取CAN控制器发送的数据并存储至到RX_FIFO。 
从上述实施例可以看出,本发明实施例中,CAN控制模块的工作方式分为配置模式和自动模式,其中, 
在配置模式下,CAN控制模块仅用于对接收数据和发送数据进行串并转换,此时,处理器可通过CAN控制模块访问每一路CAN总线的CAN控制器,在配置模式下,CAN控制模块可以协助处理器完成对每一个CAN控制器的芯片初始化工作。 
例如,处理器将CAN控制模块中的各总线转SPI控制模块设置为配置模式,通过每一个总线转SPI控制模块对相应的CAN控制器进行芯片配置,设置CAN控制器的芯片的工作时钟、CAN总线的速率、数据帧的类型以及配置接收屏蔽与滤波寄存器等等。在配置完毕后,处理器将CAN控制模块中的各总线转SPI控制模块设置为自动模式,这样,CAN控制模块便可以接管处理器的功能,对CAN控制器实施有效控制了。 
在自动模式下,CAN控制模块接管了处理器的功能,处理器发送数据时只需要将数据写入CAN控制模块中的总线转SPI控制模块的TX_FIFO,由该总线转SPI控制模块判断CAN控制器的状态后将数据写入CAN控制器,接收数据时,CAN控制模块中的总线转SPI控制模块自动判断CAN控制器的状态 并将数据读取到RX_FIFO中,供处理器读取,整个访问过程的中间步骤不再需要处理器参与,从而大大减轻了处理器运行负荷。 
参阅图5所示,本发明实施例中,以一个总线转SPI控制模块和一个CAN控制器为例,介绍CAN控制装置针对CAN总线进行数据传输控制的详细流程如下: 
步骤500:CAN控制模块中的一个总线转SPI控制模块判断相应的CAN控制器中是否存在已接收的CAN总线数据,若是,则执行步骤510;否则,执行步骤520。 
本发明实施例中,总线转SPI控制模块判断相应的CAN控制器中是否存在已接收的CAN总线数据时,需要根据该CAN控制器的接收缓冲区的状态进行判断,即判断该CAN控制器的接收缓冲区是否存在未读取的CAN总线数据,若存在,则说明CAN控制器已从CAN总线接收了最新的数据,需要读取并传送至处理器,否则,说明不存在已接收的CAN总线数据。 
步骤510:总线转SPI控制模块从相应的CAN控制器中读取已接收的CAN总线数据,并向处理器发送中断信号,通知处理器接收上述CAN总线数据。 
本实施例中,总线转SPI控制模块中的Shift_Control通过判断CAN控制器的状态,确定CAN控制器中的接收缓冲区内存在未读取的CAN总线数据时,读取该CAN总线数据,并保存至本地的RX_FIFO,以及通过Local BUS接口向处理器发送中断信号,通知处理器已接收了最新的CAN总线数据,需要处理。 
处理器接收到总线转SPI控制模块的中断信号后,会从该总线转SPI控制模块的RX_FIFO读取最新接收的CAN总线数据,并进行相应处理。 
步骤520:总线转SPI控制模块判断是否存在处理器的发送数据,若是,则进行步骤530;否则,返回步骤500。其中,处理器的发送数据可以是处理器针对已读取的CAN总线数据进行处理后返回的应答数据,也可以是处理器主动向CAN总线发送的数据。 
本实施例中,总线转SPI控制在判断是否存在处理器的发送数据时,需要判断本地的TX_FIFO内是否存在未读取的处理器数据,若是,则说明存在处理器向CAN控制器传送的发送数据;否则,说明不存在处理器需要发送的数据,可以继续读取CAN控制器的状态判断CAN控制器的接收缓冲区是否存在最新的CAN总线数据。 
步骤530:总线转SPI控制模块判断对应的CAN控制器当前是否可以接收发送数据,若是,则进行步骤540;否则,返回步骤500。 
本发明实施例中,总线转SPI控制模块判断相应的CAN控制器当前是否可以接收发送数据,需要根据该CAN控制器的发送缓冲区的状态进行判断,即判断该CAN控制器的发送缓冲区是否空闲,若是,则说明CAN控制器可以将处理器传送的发送数据发往相应的CAN总线,否则,说明CAN控制器当前处于繁忙状态,正在向CAN总线发送,则需要等待一段时间再作处理,此时,总线转SPI控制模块可以继续读取CAN控制器的状态判断CAN控制器的接收缓冲区是否存在最新的CAN总线数据。 
步骤540:总线转SPI控制模块将处理器的发送数据传送至对应的CAN控制器。 
具体为:总线转SPI控制模块从本地的TX_FIFO中读取出处理器的发送数据,并将该发送数据写入与本总线转SPI控制模块相连接的CAN控制器的发送缓冲区。 
步骤550:总线转SPI控制模块指示对应的CAN控制器将获得的处理器的发送数据传送至相应的CAN总线,接着,返回步骤500,继续下一轮接收和发送数据的操作。 
在步骤550中,总线转SPI控制模块在将发送数据写入CAN控制器的发送缓冲区后,向CAN控制器发送启动命令,令CAN控制器将接收的发送数据传送至相应的CAN总线。 
在上述实施例中,多路CAN控制装置通过内部设置的至少两个总线转SPI 控制模块实现了对多路CAN总线的控制,具体为:每一个总线转SPI控制模块与一路CAN总线的CAN控制器相连接,任意一个总线转SPI控制模块确定相应的CAN控制器中存在已接收的CAN总线数据时,读取已接收的CAN总线数据,并向处理器发送中断信号,通知处理器获取CAN总线数据,以及在接收到处理器的发送数据时,将该发送数据通过对应的CAN控制器传送至相应的CAN总线;较佳的,总线转SPI控制模块可以是CPLD,或者,FPGA。 
为了实现上述功能,总线转SPI控制模块至少包需要设置以下功能模块: 
RX_FIFO,用于接收从CAN控制器读取的CAN总线数据; 
TX_FIFO,用于保存处理器写入的发送数据; 
Shift_Control:用于判断与本总线转SPI控制模相连接的CAN控制器的状态,确定该CAN控制器中存在已接收的CAN总线数据时,读取已接收的CAN总线数据保存至RX_FIFO,并向处理器发送中断信号,通知处理器获取所述CAN总线数据,以及在确定TX_FIFO中已接收到所述处理器的发送数据时,将该发送数据通过上述CAN控制器传送至相应的CAN总线。 
其中,Shift_Control判断与本转换控制器件相连接的CAN控制器的状态时,若确认该CAN控制器的接收数据缓冲区中存在未读取的CAN总线数据时,则确定该CAN控制器中存在已接收的CAN总线数据;以及Shift_Control确定TX_FIFO中已接收到处理器的发送数据后,在确认该发送数据对应的CAN控制器的发送数据缓冲区处于空闲状态时,将该发送数据写入发送数据缓冲区,并向CAN控制器发送启动命令,令该CAN控制器将获得的发送数据传送至相应的CAN总线。 
上述实施例仅以一个总线转SPI控制模块和一个CAN控制器为例进行说明,但同样适应于多个总线转SPI控制模块和多个CAN控制器的应用场景,每一对总线转SPI控制模块和CAN控制器均可以按照步骤500-步骤550所记载的流程实现对相应的CAN总线上数据传输的控制,这样,多路CAN控制装置便可以采用上述流程完成针对多路CAN总线的数据传输控制,从而接替了 处理器的部分数据处理功能,减少了处理器的数据处理量,缓解了处理器的运行负荷,从而有效提高了处理器的运行效率,提升了处理器的运行稳定性。采用本实施例提供的技术方案,可以令CAN总线工作在很高的带宽下,并且处理器在针对CAN总线进行数据传输控制时简单方便,只占用很少的资源。该技术方案可以为各类通信系统提供CAN总线控制方案,当然也可以应用在其他相关领域,在此不再赘述。 
进一步地,本发明实施例中,多路CAN控制器的实现采用了可编程逻辑器件,这样可以实现多种组合方式,令设计方式灵活多变,适应性强。 
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。 

Claims (9)

1.一种针对多路控制器局域网络CAN总线进行数据传输控制的装置,其特征在于,所述装置分别与处理器和至少两个CAN控制器相连接,所述装置确定任意一个CAN控制器中存在已接收的CAN总线数据时,读取所述已接收的CAN总线数据,并向处理器发送中断信号,通知处理器获取所述CAN总线数据,以及在接收到所述处理器的发送数据时,将该发送数据通过对应的CAN控制器传送至相应的CAN总线;
其中,所述装置中设置有至少两个转换控制器件,每一个转换控制器件与一路CAN总线的CAN控制器相连接,用于完成Local Bus总线向SPI接口的转换,转换控制器件通过SPI信号直接对CAN控制器进行操作,读取CAN总线的信息状态,该过程不需要处理器进行干预,其中,任意一个转换控制器件确定相应的CAN控制器中存在已接收的CAN总线数据时,读取所述已接收的CAN总线数据,并向处理器发送中断信号,通知处理器获取所述CAN总线数据,以及在接收到所述处理器的发送数据时,将该发送数据通过对应的CAN控制器传送至相应的CAN总线;所述装置的工作方式分为配置模式和自动模式,在配置模式下,用于对接收数据和发送数据进行串并转换,协助处理器完成对每一个CAN控制器的芯片初始化工作;在自动模式下,所述装置接管处理器的功能,处理器发送数据时将数据写入所述装置中的转换控制器件的发送先入先出FIFO缓存区TX_FIFO,由该转换控制器件判断CAN控制器的状态后将数据写入CAN控制器,接收数据时,所述装置中的转换控制器件判断CAN控制器的状态并将数据读取到接收FIFO缓存区RX_FIFO中,供处理器读取。
2.如权利要求1所述的装置,其特征在于,所述转换控制器为复杂可编程逻辑器件CPLD,或者,现场可编程门阵列FPGA。
3.如权利要求1或2所述的装置,其特征在于,所述转换控制器件中至少包括:
接收先入先出FIFO缓存区RX_FIFO,用于接收从CAN控制器读取的CAN总线数据;
发送FIFO缓存区TX_FIFO,用于保存处理器写入的发送数据;
移位控制器Shift_Control:用于判断与本转换控制器件相连接的CAN控制器的状态,确定该CAN控制器中存在已接收的CAN总线数据时,读取所述已接收的CAN总线数据保存至所述RX_FIFO,并向处理器发送中断信号,通知处理器获取所述CAN总线数据,以及在确定所述TX_FIFO中已接收到所述处理器的发送数据时,将该发送数据通过对应的CAN控制器传送至相应的CAN总线。
4.如权利要求3所述的装置,其特征在于,所述Shift_Control判断与本转换控制器件相连接的CAN控制器的状态时,若确认该CAN控制器的接收数据缓冲区中存在未读取的CAN总线数据时,则确定该CAN控制器中存在已接收的CAN总线数据。
5.如权利要求3所述的装置,其特征在于,所述Shift_Control确定所述TX_FIFO中接收到所述处理器的发送数据后,在确认所述发送数据对应的CAN控制器的发送数据缓冲区处于空闲状态时,将所述发送数据写入所述发送数据缓冲区,并向CAN控制器发送启动命令,令所述CAN控制器将所述发送数据传送至相应的CAN总线。
6.一种针对多路控制器局域网络CAN总线进行数据传输控制的装置,其特征在于,包括处理器、至少两个CAN控制器,以及如权利要求1所述的装置。
7.一种针对多路控制器局域网络CAN总线进行数据传输控制的方法,其特征在于,包括:
针对至少两个CAN控制器,确定任意一个CAN控制器中存在已接收的CAN总线数据时,读取所述已接收的CAN总线数据,并向处理器发送中断信号,通知处理器获取所述CAN总线数据;
在接收到所述处理器的发送数据时,将该发送数据通过对应的CAN控制器传送至相应的CAN总线;
其中,通过内部设置的至少两个转换控制器件完成Local Bus总线向SPI接口的转换,每一个转换控制器件与一路CAN总线的CAN控制器相连接,基于转换控制器件通过SPI信号直接对CAN控制器进行操作,读取CAN总线的信息状态,该过程不需要处理器进行干预,其中,通过任意一个转换控制器件确定相应的CAN控制器中存在已接收的CAN总线数据时,读取所述已接收的CAN总线数据,并向处理器发送中断信号,通知处理器获取所述CAN总线数据,以及在接收到所述处理器的发送数据时,将该发送数据通过对应的CAN控制器传送至相应的CAN总线;工作方式分为配置模式和自动模式,在配置模式下,对接收数据和发送数据进行串并转换,协助处理器完成对每一个CAN控制器的芯片初始化工作;在自动模式下,接管处理器的功能,处理器发送数据时将数据写入内部的转换控制器件的发送先入先出FIFO缓存区TX_FIFO,由该转换控制器件判断CAN控制器的状态后将数据写入CAN控制器,接收数据时,内部的转换控制器件判断CAN控制器的状态并将数据读取到接收FIFO缓存区RX_FIFO中,供处理器读取。
8.如权利要求7所述的方法,其特征在于,在确认所述任意一个CAN控制器的接收数据缓冲区中存在未读取的CAN总线数据时,确定该CAN控制器中存在已接收的CAN总线数据。
9.如权利要求7所述的方法,其特征在于,在接收到所述处理器的发送数据后,在确认所述发送数据对应的CAN控制器的发送数据缓冲区处于空闲状态时,将所述发送数据写入所述发送数据缓冲区,并向CAN控制器发送启动命令,令所述CAN控制器将所述发送数据传送至相应的CAN总线。
CN201110205969.9A 2011-07-21 2011-07-21 针对多路can总线进行数据传输控制的方法及装置 Active CN102355394B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110205969.9A CN102355394B (zh) 2011-07-21 2011-07-21 针对多路can总线进行数据传输控制的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110205969.9A CN102355394B (zh) 2011-07-21 2011-07-21 针对多路can总线进行数据传输控制的方法及装置

Publications (2)

Publication Number Publication Date
CN102355394A CN102355394A (zh) 2012-02-15
CN102355394B true CN102355394B (zh) 2014-12-10

Family

ID=45578891

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110205969.9A Active CN102355394B (zh) 2011-07-21 2011-07-21 针对多路can总线进行数据传输控制的方法及装置

Country Status (1)

Country Link
CN (1) CN102355394B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102664779B (zh) * 2012-03-31 2015-07-08 航天东方红卫星有限公司 一种can总线数据传送方法
CN104483911A (zh) * 2014-10-27 2015-04-01 四川蓝讯宝迩电子科技有限公司 基于can总线的电力监控传输系统
US9934185B2 (en) * 2015-01-12 2018-04-03 Xilinx, Inc. Processing system network controller with interface to programmable logic
CN107153412B (zh) * 2017-06-16 2019-09-03 北方电子研究院安徽有限公司 一种具有发送fifo的can总线控制器电路
CN110034987A (zh) * 2019-03-21 2019-07-19 中国船舶重工集团公司第七0七研究所 一种基于fpga的can通信控制器

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101087235A (zh) * 2007-07-17 2007-12-12 中南大学 一种基于fpga的多功能通信接口转换设备和方法
CN101493698A (zh) * 2009-02-27 2009-07-29 株洲南车时代电气股份有限公司 一种基于can总线的频率信号产生方法及电路
CN102123068A (zh) * 2011-03-15 2011-07-13 网拓(上海)通信技术有限公司 一种交调仪多总线通信系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101087235A (zh) * 2007-07-17 2007-12-12 中南大学 一种基于fpga的多功能通信接口转换设备和方法
CN101493698A (zh) * 2009-02-27 2009-07-29 株洲南车时代电气股份有限公司 一种基于can总线的频率信号产生方法及电路
CN102123068A (zh) * 2011-03-15 2011-07-13 网拓(上海)通信技术有限公司 一种交调仪多总线通信系统

Also Published As

Publication number Publication date
CN102355394A (zh) 2012-02-15

Similar Documents

Publication Publication Date Title
CN101719110B (zh) 光通信器件中多路i2c器件的实时监控方法
CN102355394B (zh) 针对多路can总线进行数据传输控制的方法及装置
CN102036430B (zh) 无线通信收发器及其模式开关装置
CN103049414A (zh) Fc总线与can总线间数据的转换及传输方法
CN102667649A (zh) 基于多处理器的可编程逻辑控制器及其操作方法
CN105117319A (zh) 基于fpga实现对多路mdio设备实时监控的方法
CN102760111A (zh) 一种基于fpga的扩展多串口装置及其数据收发方法
CN103067059B (zh) 基于延迟分集和cpci总线的短波收发信道处理设备
CN102318267A (zh) 数据通信方法、通信设备及通信系统
CN108052473A (zh) 串行通信装置
CN103260198A (zh) 分布式基站传输速率的动态配置、匹配方法及装置
KR101630599B1 (ko) 시스템 성능 향상을 위한 제어 로직을 구비한 직렬 주변기기 인터페이스 및 그 구동 방법
CN103019990A (zh) 一种采集端启动pci-e总线dma上传数据的方法
US20130132634A1 (en) Routing switch apparatus, network switch system, and routing switching method
CN108920339A (zh) 一种系统异常上报方法及装置
CN101106504A (zh) 基于can总线的智能自主机器人分布式通信系统
CN101894086A (zh) 串口集线器及多串口高速通讯方法
CN114257245A (zh) 一种基于dsp-fpga的多通道ad采集系统
CN101847135A (zh) 串接通信系统及其通信方法
CN103679249A (zh) 一种射频芯片接口电路
CN103414487B (zh) 基于cpci总线的短波信道机管控装置
CN210780847U (zh) 一种EtherCAT总线时钟分布系统
CN209215901U (zh) 伺服驱动器
CN101888715A (zh) 具有usb通信和自定位功能的无线电基站及通信方法
EP2282268B1 (en) Interfacing device and method, for example for systems-on-chip

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant