CN111158339A - Can总线模拟监控系统 - Google Patents
Can总线模拟监控系统 Download PDFInfo
- Publication number
- CN111158339A CN111158339A CN201911392669.9A CN201911392669A CN111158339A CN 111158339 A CN111158339 A CN 111158339A CN 201911392669 A CN201911392669 A CN 201911392669A CN 111158339 A CN111158339 A CN 111158339A
- Authority
- CN
- China
- Prior art keywords
- module
- data
- cache
- timer
- frame
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B23/00—Testing or monitoring of control systems or parts thereof
- G05B23/02—Electric testing or monitoring
- G05B23/0205—Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults
- G05B23/0208—Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults characterized by the configuration of the monitoring system
- G05B23/0213—Modular or universal configuration of the monitoring system, e.g. monitoring system having modules that may be combined to build monitoring program; monitoring system that can be applied to legacy systems; adaptable monitoring system; using different communication protocols
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/24—Pc safety
- G05B2219/24065—Real time diagnostics
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Small-Scale Networks (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明属于CAN总线通信工程技术领域,具体涉及一种CAN总线模拟监控系统。与现有技术相比,本发明设计的CAN总线模拟监控方案利用硬件方案和逻辑架构的优势,提高了数据传输的实时性;另外,增加了触发控制数据收发、设置定时时间完成数据发送和可设置的数据屏蔽接收等功能。提高了CAN总线在不同的行业应用中的适应性,满足各类使用需求。
Description
技术领域
本发明属于CAN总线通信工程技术领域,具体涉及一种CAN总线模拟监控系统。
背景技术
随着信息技术的快速发展,用户对基于CAN总线通信的实时性需求越来越高。与此同时,对定时收发数据、触发控制收发数据等功能也有了更多的使用要求,尤其是在可靠性和安全性要求较高的行业。但是当前大多数成熟的CAN通信模块或板卡实时性在ms级,不具备定时收发数据或通过触发控制数据收发等功能,对部分应用CAN总线通信行业的产品性能造成了限制。
市面上主流的CAN通信模块或板卡存在以下不足:
1)实时性差。CAN通信模块或CAN卡工作频率低,协议解析、数据处理步骤复杂,在收到发送指令后,无法在10us时间内将数据发送至CAN总线,容易造成同一CAN总线网络中各个CAN节点相应不同步,产生不确定的延时,影响整个网络中基于CAN总线的逻辑判断和控制。
2)触发控制数据收发功能不足。目前多数CAN通信模块或CAN卡触发源只有一个、触发条件单一,面向对象简单,通过外部中断触发,导致不具备触发发送功能,或通过触发控制数据发送的功能单一,只能通过触发信号决定数据是否发送,不能通过触发信号有选择的控制发送某一类或某几类数据。
3)不具备定时发送功能。目前多数CAN通信模块或CAN卡只有最基本的数据接收或数据发送功能,未考虑复杂工业控制场景,不具备定时发送功能,无法设定将来的某个时间点,即当时间点到时,无法完成数据自动发送。
4)数据屏蔽接收功能不足。现有的多数CAN通信模块或CAN卡的数据屏蔽接收功能不足,只能根据帧类型、帧ID进行屏蔽接收,对帧格式或帧内容不具备是否进行屏蔽接收的选择功能。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是:解决当前CAN通信模块或CAN卡实时性差、触发控制数据收发功能不足、不具备定时发送功能、数据屏蔽接收功能不足等问题,完善其功能,提高CAN总线在不同的行业应用中的适应性,满足各类使用需求。
(二)技术方案
为解决上述技术问题,本发明提供一种CAN总线模拟监控系统,所述CAN总线模拟监控系统包括:CAN总线收发器、复位计时器、复位模块、设置模块、校准时钟模块、计时器清零模块、缓存模块、提取模块、待发送数据存储模块、解析模块、时间点更新模块、监测模块;其中,所述待发送数据存储模块包括第一发送缓冲区、第二发送缓冲区、第三发送缓冲区;
具体而言,所述CAN总线模拟监控系统的工作过程如下:
步骤1:CAN总线模拟监控系统上电;
步骤2:复位模块进行复位;从第一个有效时钟开始,启动复位计时器,复位计时时间结束后,复位模块结束复位;此过程CAN总线模拟监控系统中各个模块恢复到初始状态;
步骤3:设置模块设置CAN总线收发器的工作模式、本地ID号、目的ID号、需屏蔽的ID号、波特率;
步骤4:校准时钟模块发出校准时钟脉冲,计时器清零模块以此脉冲为基准,脉冲到达时刻为零时刻,清零计时器1、清零计时器2、清零计时器3,三个计时器重新计时;
步骤5:CAN总线收发器接收上位机数据和指令,边接收边存储,将数据和指令分别存储到缓存模块指定地址的缓存中;
步骤6:提取模块从缓存模块缓存中取出第一帧数据,存储到待发送数据存储模块的第一发送缓冲区;
步骤7:提取模块从缓存模块缓存中读取第一帧指令;
步骤8:解析模块解析第一帧指令;
步骤9:时间点更新模块根据指令中含有数据的发送时间点,将解析出的时间点更新到步骤4的计时器1中;
步骤10:提取模块从缓存模块缓存中取出第二帧数据,存储到待发送数据存储模块的第二发送缓冲区;
步骤1:提取模块从缓存模块缓存中读取第二帧指令;
步骤12:解析模块解析第二帧指令;
步骤13:时间点更新模块根据指令中含有数据的发送时间点,将解析出的时间点更新到步骤4的计时器2中;
步骤14:提取模块从缓存模块缓存中取出第三帧数据,存储到待发送数据存储模块的第三发送缓冲区;
步骤15:提取模块从缓存模块缓存中读取第三帧指令;
步骤16:解析模块解析第三帧指令;
步骤17:时间点更新模块根据指令中含有数据的发送时间点,将解析出的时间点更新到步骤4的计时器3中;
步骤18:CAN总线收发器等待计时器1计时时间结束;
步骤19:CAN总线收发器等到计时器1时间到,按照设置好的工作模式、波特率,发送本地ID号、目的ID号、第一缓冲区数据;
步骤20:具体包括:
步骤201、CAN总线收发器等待计时器2计时时间结束;
步骤202、监测模块监测第一缓冲区数据发送是否完成;如果第一缓冲区数据发送完成,提取模块从缓存模块缓存读取第四帧数据,写入第一缓冲区,否则监测模块继续监测;
步骤21:具体包括:
步骤211、CAN总线收发器等到计时器2时间到,按照设置好的工作模式、波特率,发送本地ID号、目的ID号、发送第二缓冲区数据;
步骤212、提取模块从缓存模块缓存读取第四帧指令,解析模块解析指令,解析出第四帧数据发送时间点,时间点更新模块将时间点更新到计时器1中;
步骤22:具体包括:
步骤221、CAN总线收发器等待计时器3计时时间结束;
步骤222、监测模块监测第二缓冲区数据发送是否完成;如果第二缓冲区数据发送完成,提取模块从缓存模块缓存读取第五帧数据,写入第二缓冲区,否则监测模块继续监测;
步骤23:具体包括:
步骤231、CAN总线收发器等到计时器3时间到,按照设置好的工作模式、波特率,发送本地ID号、目的ID号、发送第三缓冲区数据;
步骤232、提取模块从缓存模块缓存读取第五帧指令,解析模块解析指令,解析出第五帧数据发送时间点,时间点更新模块将时间点更新到计时器2中;
步骤24:具体包括:
步骤241、监测模块监测第三缓冲区数据发送是否完成;如果第三缓冲区数据发送完成,提取模块从缓存模块缓存读取第六帧数据,写入第三缓冲区,否则监测模块继续监测;
步骤242、CAN总线收发器等待计时器2计时时间到;
步骤25:跳转至步骤18,直至数据全部发送完成。
(三)有益效果
本发明技术方案通过采取上述技术措施,可有效解决目前现有CAN通信模块或板卡功能单一、性能不足、适应性差等问题。
具体来说:
(1)该技术方案采用新的硬件方案和逻辑架构设计,提高了数据收发的实时性,保证在收到发送指令后的10us内将数据发送至CAN总线上,保证了当前CAN节点所在的整个网络的时间同步,降低了延时误差,提高了基于当前CAN总线控制的准确性。
(2)该技术方案增加了触发控制数据收发的功能,以满足各类测控行业通过触发信号发送各类指令,控制单系统或整个系统执行、完成某些动作。
(3)该技术方案增加了定时发送功能,通过设置定时时间,可以在将来某一时刻发送数据指令,控制执行器完成动作。
(4)该技术方案增加了数据屏蔽接收的功能,通过上位机对帧帧类型、帧ID、帧内容等进行设置,将此参数下发到CAN总线模拟监控系统,可以实现有选择的屏蔽接收CAN总线数据。
与现有技术相比,本发明设计的CAN总线模拟监控方案利用硬件方案和逻辑架构的优势,提高了数据传输的实时性;另外,增加了触发控制数据收发、设置定时时间完成数据发送和可设置的数据屏蔽接收等功能。提高了CAN总线在不同的行业应用中的适应性,满足各类使用需求。
附图说明
图1为本发明技术方案所提供的系统结构示意图;
图2为本发明技术方案所提供的核心硬件电路图;
图3为本发明技术方案所提供的顶层逻辑关系图;
图4为本发明技术方案原理示意图。
具体实施方式
为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
为解决现有技术问题,本发明提供一种CAN总线模拟监控系统,如图4所示,所述CAN总线模拟监控系统包括:CAN总线收发器、复位计时器、复位模块、设置模块、校准时钟模块、计时器清零模块、缓存模块、提取模块、待发送数据存储模块、解析模块、时间点更新模块、监测模块;其中,所述待发送数据存储模块包括第一发送缓冲区、第二发送缓冲区、第三发送缓冲区;
具体而言,所述CAN总线模拟监控系统的工作过程如下:
步骤1:CAN总线模拟监控系统上电;
步骤2:复位模块进行复位;从第一个有效时钟开始,启动复位计时器,复位计时时间结束后,复位模块结束复位;此过程CAN总线模拟监控系统中各个模块恢复到初始状态;
步骤3:设置模块设置CAN总线收发器的工作模式、本地ID号、目的ID号、需屏蔽的ID号、波特率;
步骤4:校准时钟模块发出校准时钟脉冲,计时器清零模块以此脉冲为基准,脉冲到达时刻为零时刻,清零计时器1、清零计时器2、清零计时器3,三个计时器重新计时;
步骤5:CAN总线收发器接收上位机数据和指令,边接收边存储,将数据和指令分别存储到缓存模块指定地址的缓存中;
步骤6:提取模块从缓存模块缓存中取出第一帧数据,存储到待发送数据存储模块的第一发送缓冲区;
步骤7:提取模块从缓存模块缓存中读取第一帧指令;
步骤8:解析模块解析第一帧指令;
步骤9:时间点更新模块根据指令中含有数据的发送时间点,将解析出的时间点更新到步骤4的计时器1中;
步骤10:提取模块从缓存模块缓存中取出第二帧数据,存储到待发送数据存储模块的第二发送缓冲区;
步骤1:提取模块从缓存模块缓存中读取第二帧指令;
步骤12:解析模块解析第二帧指令;
步骤13:时间点更新模块根据指令中含有数据的发送时间点,将解析出的时间点更新到步骤4的计时器2中;
步骤14:提取模块从缓存模块缓存中取出第三帧数据,存储到待发送数据存储模块的第三发送缓冲区;
步骤15:提取模块从缓存模块缓存中读取第三帧指令;
步骤16:解析模块解析第三帧指令;
步骤17:时间点更新模块根据指令中含有数据的发送时间点,将解析出的时间点更新到步骤4的计时器3中;
步骤18:CAN总线收发器等待计时器1计时时间结束;
步骤19:CAN总线收发器等到计时器1时间到,按照设置好的工作模式、波特率,发送本地ID号、目的ID号、第一缓冲区数据;
步骤20:具体包括:
步骤201、CAN总线收发器等待计时器2计时时间结束;
步骤202、监测模块监测第一缓冲区数据发送是否完成;如果第一缓冲区数据发送完成,提取模块从缓存模块缓存读取第四帧数据,写入第一缓冲区,否则监测模块继续监测;
步骤21:具体包括:
步骤211、CAN总线收发器等到计时器2时间到,按照设置好的工作模式、波特率,发送本地ID号、目的ID号、发送第二缓冲区数据;
步骤212、提取模块从缓存模块缓存读取第四帧指令,解析模块解析指令,解析出第四帧数据发送时间点,时间点更新模块将时间点更新到计时器1中;
步骤22:具体包括:
步骤221、CAN总线收发器等待计时器3计时时间结束;
步骤222、监测模块监测第二缓冲区数据发送是否完成;如果第二缓冲区数据发送完成,提取模块从缓存模块缓存读取第五帧数据,写入第二缓冲区,否则监测模块继续监测;
步骤23:具体包括:
步骤231、CAN总线收发器等到计时器3时间到,按照设置好的工作模式、波特率,发送本地ID号、目的ID号、发送第三缓冲区数据;
步骤232、提取模块从缓存模块缓存读取第五帧指令,解析模块解析指令,解析出第五帧数据发送时间点,时间点更新模块将时间点更新到计时器2中;
步骤24:具体包括:
步骤241、监测模块监测第三缓冲区数据发送是否完成;如果第三缓冲区数据发送完成,提取模块从缓存模块缓存读取第六帧数据,写入第三缓冲区,否则监测模块继续监测;
步骤242、CAN总线收发器等待计时器2计时时间到;
步骤25:跳转至步骤18,直至数据全部发送完成。
以上步骤全部是由主控器来完成,描述的全部是主控制器的逻辑。在实际应用,待发送缓冲模块(包括第一、第二、第三发送缓冲区)多数情况下处于CAN总线收发器内部。CAN总线控制器只是被动的被主控制器设置或者被主控制器写入、读走数据。主控制器建议采用FPGA,CAN总线控制器建议采用MCP2515。
实施例1
为了解决当前CAN通信模块或CAN卡实时性差、触发控制数据收发功能不足、不具备定时发送功能、数据屏蔽接收功能不足等问题,本实施例提供一套CAN总线数据收发的设计方案,如图1所示为FPGA逻辑设计:
创新点为:
1、利用MCP2515拥有三个数据缓冲区,在上电后初始化过程中,对三个缓冲区先写入待发送的数据;在发送过程中,一直监测三个缓冲区状态,发现任一缓冲区数据被读走后,立即向该缓冲区写入新的数据(在对此缓冲区写入数据的同时,其他两个缓冲区的任意一个处于数据正在发送的状态)。能够实现这一特点,取决于MCP2515具有三个相对独立个缓冲区和FPGA可以并行运算这两个特点。之所以成为创新点,是因为这样操作大大降低了CAN总线上帧与帧之间的发送间隔,对于时间精度要求苛刻的使用条件来说,该方法基本将CAN总线数据帧之间的间隔降到最低(基本无间隔,间隔处于纳秒级)。
2、利用FPGA高精度和MCP2515拥有三个相对独立的缓冲区,实现CAN总线数据高精度定时发送,首先,如果以CAN总线上数据帧的第一个bit开始测量,其精度在ns级。原理:整个系统首先与外部系统校时(FPAG时钟200MHz,时钟精度5ns;外部时钟精度不低于5ns,则整个系统时钟精度为5ns)。其次,设定好在起始时刻t0后第t0+t1时间发送第一帧数据,第t0+t2时间发送第二帧数据,第t0+t3时间发送第三帧数据......以此类推。且t1,t2,t3......等时间间隔提前存储在FPGA中并解析出来,在t0时刻启动计数器,当计时到t0+t1、t0+t2、t0+t3......等时刻时,立即发送MACP2515缓冲区数据,将FPGA延时和MCP2515执行数据发送的延时(硬件本省固有的延时)都考虑在内,时间精度也能够达到ns级别,低于1us。
所述FPGA逻辑主要分为以下几个单元模块:
复位单元(Reset)、仿真数据存储管理单元(Mem_simulation_ctl)、监控数据存储管理单元(Mem_monitor_ctl)、CAN总线控制器通信单元(MCP2515_ctl)、PCI总线通信管理单元(PCI_ctl)、命令解析单元(Analyze_cmd)。
设计顶层逻辑关系流程如图2所示。
PCI总线通信单元接收、解析上位机数据后,分别传递至发送仿真数据存储管理单元、命令解析单元;
仿真数据存储管理单元按照解析后的上位机命令发送数据;
监控数据存储管理单元监控、接收下位机反馈的数据,传递至接收数据缓冲区;
接收数据缓冲区将监控数据发送至上位机。
具体单元职责:
复位单元(Reset),完成FPGA逻辑中除复位单元之外的所有逻辑单元的复位。有以下四种情况之一便产生复位:1、板卡上电;2、复位键按下;3、锁相环配置未完成,locked_pll为低电平;4、监测到上位机复位指令。复位单元中有上电复位模块、按键复位模块、锁相环未完成复位模块和指令复位模块四个模块,分别对应上述四个条件。板卡上电后,上电复位模块开始计时,计时时间到之前该模块输出为低,指示逻辑需要一直保持复位。计时时间到,复位拉高,指示该条件下的复位结束。计时时间设为10ms,保证了FPGA经过此段时间后电路已处于稳定状态。FPGA上电后内部锁相环单元开始配置,配置时间小于10ms,因此,该模块的复位会在上电复位结束前完成。当板卡复位按钮按下时,按键复位模块开始工作,持续10ms后结束复位。当监测到上位机的复位指令后,指令复位模块开始工作,持续10ms后结束复位。
仿真数据存储管理单元接收并缓存上位机下发的仿真数据,PCI总线通信管理单元通过地址识别到上位机下发的数据为仿真数据后,将数据转发至仿真数据存储管理单元。仿真数据存储管理单元将所有数据缓存在DDR2中,等待来自CAN总线控制器通信单元的数据读取指令。监测到读取指令后,仿真数据存储管理单元从内存中读取一帧数据,发送至CAN总线控制器通信单元,将数据配置到CAN控制器发送缓冲器,等待数据的发送。仿真数据存储管理单元将仿真数据按照上述协议格式,将除帧头外的其他数据依次存储到DDR中。向DDR存储仿真数据的同时,实时监测帧计数,可以知道当前上位机向板卡总共下发了多少帧的数据。当上位机将所有仿真数据下发完毕后,上位机向板卡配置“发送使能”有效信号,表示所有仿真数据已下发完成,随时准备发送仿真数据(当监测到触发信号后,启动发送计时,计时到该帧的发送时间戳信息时,立即发送)。第一帧仿真数据存储完毕后,会向CAN总线控制器通信单元发送信息,告知已存储好第一帧数据。CAN总线控制器通信单元完成CAN控制器的基本配置(波特率、屏蔽寄存器、滤波寄存器、中断使能等)后,向仿真数据存储管理单元发送数据读取指令,读取第一帧数据,加载到CAN控制器的发送缓冲区。如果仿真数据大于3帧,则将前三帧加载到发送缓冲区。读取数据时,仿真数据存储管理单元按照协议格式依次读取数据,首先读取数据长度,然后依次读取通道号,帧计数,时间戳,帧结构,帧ID,帧类型,帧数据。根据数据长度(有效数据字节数)决定本次读取DDR的结束地址。
监控数据存储管理单元(Mem_monitor_ctl),在CAN控制器数据接收缓存区收到数据后,产生对应的中断(对应不同的数据接收缓存区),通知监控数据存储管理单元。监控数据存储管理单元依次读取帧ID、有效数据长度、帧结构、帧类型、帧数据,缓存到DDR中。为统一数据存储格式,方便存储管理。每次向DDR存储数据时写入的有效数据都是8字节,如果有效数据长度小于8字节,则高字节有效,低字节无效。为了与PCI总线的数据长度相统一,写入的数据以DWORD(32bit)为一个单元。数据缓存的同时进行帧计数,将计数值发送到PCI总线通信管理单元,待PCI总线空闲时,PCI总线通信管理单元监测到该技术值大于0,则向监控数据存储管理单元读取数据,同时更新帧计数(递减),将数据PCI总线发送至上位机。
CAN总线控制器通信单元(MCP2515_ctl)负责配置CAN控制器,包括设置波特率、验收屏蔽寄存器、验收滤波寄存器等。通过设置屏蔽寄存器和滤波寄存器,可以根据CAN总线上CAN数据的帧类型和帧ID决定是否接收当前数据。同时还要向CAN控制器的发送缓冲区加载数据和从接收数据缓冲区读取数据。当板卡处于总线模拟状态时,监测到发送缓冲区为空,则立即向发送缓冲区加载数据,当发送时间到,立即将数据发送至CAN总线。当板卡出总线监控状态时,当监测数据接收缓冲区有数据,则将数据读取出来并存至DDR中,待PCI总线空闲时,将数据上传至上位机。
PCI总线通信管理单元负责FPGA与PCI9054桥芯片的数据交互。板卡与上位机通过PCI总线进行通信,具体连接方式为:FPGA与PCI9054的Local端相连,PCI9054的PCI端通过PCI插槽与上位机相连。在FPGA逻辑中,所有命令、参数和数据都分配了不同的映射空间,这些空间的地址唯一,通过对这些地址的访问完成逻辑的参数配置、命令下发和数据的收发。PCI总线通信管理单元接收配置信息顺序如下:
(1)板卡复位(完成板卡复位);
(2)板卡选择(选通该板卡);
(3)触发源选择(背板硬触发或逻辑信号的软触发);
(4)触发方式选择(上升沿、下降沿、高电平、低电平);
(5)触发信号数据流向选择(只针对背板硬件触发,选择背板接口接收外部的触发信号或者产生触发信号发送至其他板卡);
(6)硬件触发通道选择(只针对触发源选择背板硬件触发,背板触发接口共有10个触发引脚,对这些引脚的某一个或几个进行分配选择);
(7)背板触发使能(使能后才接收到的触发信号才有效);
(8)硬件触发信号滤波使能(只针对触发源选择背板硬件触发,滤除触发引脚上的干扰信号);
(9)触发信号滤波时间设置(只针对触发源选择背板硬件触发,根据外界电磁环境设置滤波时间);
(10)CAN总线通道选择(对各路CAN总线通道进行选通,选通后才能进行总线模拟和数据监控);
(11)匹配电阻使能(选择是否配置终端匹配电阻);
(12)波特率设置(根据预设值,选择各路CAN总线波特率,暂时无法随意设置);
(13)发送使能(发送使能有效后,发送指令才有效);
(14)发送方式选择(选择单次发送或循环发送)。
命令解析单元接收上位机下发的指令并解析。根据解析的指令选择触发源、触发方式、CAN总线通信速率、CAN通信通道、终端电阻匹配、获取触发时间。上位机下发的配置信息首先发送至PCI总线通信管理单元,然后转发至命令解析单元。命令解析单元完成参数解析后,将参数发送至其他模块,其他模块根据这些参数完成对整个板卡的配置。
命令解析单元(Analyze_cmd)解析CAN总线波特率、CAN总线通信通道选择、终端匹配电阻选择、触发类型选择、获取触发时间以及发送计时等功能。当板卡设置为数据模拟模式时,FPGA从DDR2中获取模拟数据包。模拟数据包包含模拟数据及其属性参数等信息,其中包含发送时间信息。发送时刻信息是相对时间值,若发送事件信息为T,触发信号产生时刻为T0,则表示当前数据包的模拟数据要在T0+T时刻将数据发送至CAN总线。对任一通道的CAN总线由一片CAN控制器完成CAN总线数据收发,CAN控制器拥有三个发送缓冲区,因此在触发信号有效前,要首先读取三包模拟数据,将数据加载至CAN总线收发器,并解析出发送时间信息,将时间信息发送给发送计时模块。当触发信号有效,发送计时模块开始运行,计时时间到解析出的发送时刻时,产生发送指令,通知CAN控制器立即发送缓冲区的数据。同时计时模块清零重新计时,直到计时到下一帧数据的发送时间戳时刻,发送下一帧数据。在计时当前待发送帧的发送时间时,如果除了当前帧还有其他帧要发送,则CAN总线控制器通信单元继续读取加载数据,并向命令解析单元更新下一帧的待发送时间戳信息,保证在当前帧计时完成时可以立即计时下一帧的发送时间。考虑到相邻帧发送CAN总线都有先后顺序,无法同时并行发送多个帧数据。以及对CAN控制器下达发送指令(或通过拉低发送引脚)到所有数据完全从发送缓冲区发送到CAN总线需要一定时间Ttx(波特率为1Mhz时不高于30us),因此当某一帧的时间戳信息小于Ttx时(或希望相邻帧同时发送),命令解析单元会将这一帧的相对时间设置为Ttx。
CAN控制器工作流程状态流程如图3所示:
状态机1:
(1)初始态;
(2)复位;
(3)摄制工作模式;
(4)设置接收缓存寄存器;
(5)设置发送缓存寄存器;
(6)设置接收控制寄存器;
(7)设置发送控制寄存器;
(8)设置中断;
(9)设置波特率;
(10)读写判断:
如果收到CAN总线数据,且已完成将上一帧数据从CAN控制器到FPGA的加载,则接收新的数据。
数据准备好(即数据已加载到待发送缓冲区),且发送寄存器为空(即当前无未发送完的数据),且当前无正在接收的数据(即当前未占用SPI总线读取接收寄存器中的数据)
状态机2:
(1)初始态;
(2)解析时间指令;
(3)判断触发条件;
(4)执行数据发送。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
Claims (1)
1.一种CAN总线模拟监控系统,其特征在于,所述CAN总线模拟监控系统包括:CAN总线收发器、复位计时器、复位模块、设置模块、校准时钟模块、计时器清零模块、缓存模块、提取模块、待发送数据存储模块、解析模块、时间点更新模块、监测模块;其中,所述待发送数据存储模块包括第一发送缓冲区、第二发送缓冲区、第三发送缓冲区;
具体而言,所述CAN总线模拟监控系统的工作过程如下:
步骤1:CAN总线模拟监控系统上电;
步骤2:复位模块进行复位;从第一个有效时钟开始,启动复位计时器,复位计时时间结束后,复位模块结束复位;此过程CAN总线模拟监控系统中各个模块恢复到初始状态;
步骤3:设置模块设置CAN总线收发器的工作模式、本地ID号、目的ID号、需屏蔽的ID号、波特率;
步骤4:校准时钟模块发出校准时钟脉冲,计时器清零模块以此脉冲为基准,脉冲到达时刻为零时刻,清零计时器1、清零计时器2、清零计时器3,三个计时器重新计时;
步骤5:CAN总线收发器接收上位机数据和指令,边接收边存储,将数据和指令分别存储到缓存模块指定地址的缓存中;
步骤6:提取模块从缓存模块缓存中取出第一帧数据,存储到待发送数据存储模块的第一发送缓冲区;
步骤7:提取模块从缓存模块缓存中读取第一帧指令;
步骤8:解析模块解析第一帧指令;
步骤9:时间点更新模块根据指令中含有数据的发送时间点,将解析出的时间点更新到步骤4的计时器1中;
步骤10:提取模块从缓存模块缓存中取出第二帧数据,存储到待发送数据存储模块的第二发送缓冲区;
步骤1:提取模块从缓存模块缓存中读取第二帧指令;
步骤12:解析模块解析第二帧指令;
步骤13:时间点更新模块根据指令中含有数据的发送时间点,将解析出的时间点更新到步骤4的计时器2中;
步骤14:提取模块从缓存模块缓存中取出第三帧数据,存储到待发送数据存储模块的第三发送缓冲区;
步骤15:提取模块从缓存模块缓存中读取第三帧指令;
步骤16:解析模块解析第三帧指令;
步骤17:时间点更新模块根据指令中含有数据的发送时间点,将解析出的时间点更新到步骤4的计时器3中;
步骤18:CAN总线收发器等待计时器1计时时间结束;
步骤19:CAN总线收发器等到计时器1时间到,按照设置好的工作模式、波特率,发送本地ID号、目的ID号、第一缓冲区数据;
步骤20:具体包括:
步骤201、CAN总线收发器等待计时器2计时时间结束;
步骤202、监测模块监测第一缓冲区数据发送是否完成;如果第一缓冲区数据发送完成,提取模块从缓存模块缓存读取第四帧数据,写入第一缓冲区,否则监测模块继续监测;
步骤21:具体包括:
步骤211、CAN总线收发器等到计时器2时间到,按照设置好的工作模式、波特率,发送本地ID号、目的ID号、发送第二缓冲区数据;
步骤212、提取模块从缓存模块缓存读取第四帧指令,解析模块解析指令,解析出第四帧数据发送时间点,时间点更新模块将时间点更新到计时器1中;
步骤22:具体包括:
步骤221、CAN总线收发器等待计时器3计时时间结束;
步骤222、监测模块监测第二缓冲区数据发送是否完成;如果第二缓冲区数据发送完成,提取模块从缓存模块缓存读取第五帧数据,写入第二缓冲区,否则监测模块继续监测;
步骤23:具体包括:
步骤231、CAN总线收发器等到计时器3时间到,按照设置好的工作模式、波特率,发送本地ID号、目的ID号、发送第三缓冲区数据;
步骤232、提取模块从缓存模块缓存读取第五帧指令,解析模块解析指令,解析出第五帧数据发送时间点,时间点更新模块将时间点更新到计时器2中;
步骤24:具体包括:
步骤241、监测模块监测第三缓冲区数据发送是否完成;如果第三缓冲区数据发送完成,提取模块从缓存模块缓存读取第六帧数据,写入第三缓冲区,否则监测模块继续监测;
步骤242、CAN总线收发器等待计时器2计时时间到;
步骤25:跳转至步骤18,直至数据全部发送完成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911392669.9A CN111158339B (zh) | 2019-12-30 | 2019-12-30 | Can总线模拟监控系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911392669.9A CN111158339B (zh) | 2019-12-30 | 2019-12-30 | Can总线模拟监控系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111158339A true CN111158339A (zh) | 2020-05-15 |
CN111158339B CN111158339B (zh) | 2021-05-18 |
Family
ID=70559037
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911392669.9A Active CN111158339B (zh) | 2019-12-30 | 2019-12-30 | Can总线模拟监控系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111158339B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111782303A (zh) * | 2020-07-14 | 2020-10-16 | 江苏华鹏智能仪表科技股份有限公司 | 一种基于c#的can通讯模块控制监测系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007195040A (ja) * | 2006-01-20 | 2007-08-02 | Fujitsu Ten Ltd | ノードの異常判定方法 |
CN201039392Y (zh) * | 2007-04-25 | 2008-03-19 | 天津市詹佛斯科技发展有限公司 | 具有gprs通讯的智能控制器 |
CN105099945A (zh) * | 2014-04-24 | 2015-11-25 | 比亚迪股份有限公司 | Can网络系统及报文传输控制方法 |
CN105306323A (zh) * | 2015-09-22 | 2016-02-03 | 山东超越数控电子有限公司 | 一种can总线通信的方法及装置 |
EP3297208A1 (en) * | 2013-09-24 | 2018-03-21 | Innovasic, Inc. | Processing apparatus for bus data |
CN108919788A (zh) * | 2018-09-10 | 2018-11-30 | 汽-大众汽车有限公司 | 一种基于车载can总线的汽车台架试验的远程监控系统及方法 |
CN109962830A (zh) * | 2017-12-26 | 2019-07-02 | 中国船舶重工集团公司七五〇试验场 | 一种基于fpga的高效can总线接口 |
CN111108725A (zh) * | 2017-09-22 | 2020-05-05 | 大众汽车有限公司 | 用于监视通信总线上的通信的方法和用于连接到通信总线的电子设备 |
-
2019
- 2019-12-30 CN CN201911392669.9A patent/CN111158339B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007195040A (ja) * | 2006-01-20 | 2007-08-02 | Fujitsu Ten Ltd | ノードの異常判定方法 |
CN201039392Y (zh) * | 2007-04-25 | 2008-03-19 | 天津市詹佛斯科技发展有限公司 | 具有gprs通讯的智能控制器 |
EP3297208A1 (en) * | 2013-09-24 | 2018-03-21 | Innovasic, Inc. | Processing apparatus for bus data |
CN105099945A (zh) * | 2014-04-24 | 2015-11-25 | 比亚迪股份有限公司 | Can网络系统及报文传输控制方法 |
CN105306323A (zh) * | 2015-09-22 | 2016-02-03 | 山东超越数控电子有限公司 | 一种can总线通信的方法及装置 |
CN111108725A (zh) * | 2017-09-22 | 2020-05-05 | 大众汽车有限公司 | 用于监视通信总线上的通信的方法和用于连接到通信总线的电子设备 |
CN109962830A (zh) * | 2017-12-26 | 2019-07-02 | 中国船舶重工集团公司七五〇试验场 | 一种基于fpga的高效can总线接口 |
CN108919788A (zh) * | 2018-09-10 | 2018-11-30 | 汽-大众汽车有限公司 | 一种基于车载can总线的汽车台架试验的远程监控系统及方法 |
Non-Patent Citations (2)
Title |
---|
刘师良 等: "基于CAN 总线的煤矿监控系统工作站的研究", 《工况自动化》 * |
韩成浩等: "CAN 总线技术及其应用", 《制造业自动化》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111782303A (zh) * | 2020-07-14 | 2020-10-16 | 江苏华鹏智能仪表科技股份有限公司 | 一种基于c#的can通讯模块控制监测系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111158339B (zh) | 2021-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110213143B (zh) | 一种1553b总线ip核及监视系统 | |
Berner et al. | A 5 Meps $100 USB2. 0 address-event monitor-sequencer interface | |
CN103440216B (zh) | 一种通过i2c从设备调试mcu的芯片及方法 | |
CN111049718B (zh) | Can总线模拟监控方法 | |
CN104380266B (zh) | 具有复位条件跟踪能力的处理器装置 | |
WO2017084523A1 (zh) | 一种片上系统总线行为检测方法、装置和计算机存储介质 | |
KR20030075202A (ko) | 온 칩 백그라운드 디버그 시스템 및 그 방법을 갖는데이터 처리 시스템 | |
CN104272271B (zh) | 具有指令跟踪能力的处理器装置 | |
CN109150355A (zh) | 一种fpga下实现ptp网卡的系统 | |
CN112559267B (zh) | 集成电路间总线i2c从机以及i2c控制器测试方法 | |
CN111193573A (zh) | 一种速率可调的fpga异步串口通信装置及方法 | |
CN109117409A (zh) | 一种服务器及其基于bmc的串口重定向的装置 | |
CN111158339B (zh) | Can总线模拟监控系统 | |
CN108628784A (zh) | 串行通信器及串行通信系统 | |
CN114297124A (zh) | 一种基于fpga的srio高速总线的通讯系统 | |
CN112306146A (zh) | 一种多pxie机箱内awg板卡输出波形同步的装置及方法 | |
US7330921B2 (en) | Communication control circuit and communication control method | |
CN110032532B (zh) | 一种基于定时中断触发的主从式串口通讯方法 | |
CN113852533B (zh) | 一种多通道数据通信系统、方法及电子设备 | |
CN103107862B (zh) | 逻辑器件及其mdio数据发送方法 | |
CN109543811B (zh) | 一种计数电路、计数方法及芯片 | |
CN100470524C (zh) | 一种小容量fifo存储器的数据搬移触发装置和方法 | |
CN109815073A (zh) | 一种基于pxi平台的高速串口srio的测试方法 | |
CN109104312A (zh) | 一种可配置afdx总线数据帧延时设备和afdx数据帧延时方法 | |
CN106649184A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |