一种基于can总线的信号实时性处理方法

文档序号:7647840阅读:230来源:国知局
专利名称:一种基于can总线的信号实时性处理方法
技术领域
本发明属于计算机应用技术领域,特别是涉及一种采用嵌入式计算 机技术和计算机信号处理技术的基于CAN总线信号实时性处理方法。
技术背景控制器局部网(Controller Area Network,简称CAN总线)是BOSCH公 司为现代工业应用推出的一种多主机局部网,属于现场总线的范畴。它 是一种有效支持分布式控制或实时控制的串行通信网络。由于其卓越性 能现已广泛应用于工业自动化、多种控制设备、交通工具、医疗仪器以 及建筑、环境控制等众多行业。1991年9月PHILIPS SEMICONDUCTORS制订 并发布了CAN协议(VERSION 2.0)。该协议包括2.0A和2. OB两部分。 2. OA给出了曾在CAN协议版本l. 2中定义的CAN报文格式,而2. 0B给出了标 准的和扩展的两种报文格式。此后,1993年IS0正式颁布了道路交通运载 工具一数字信息交换一高速通信控制器局部网(CAN)国际标准 (IS011898),为控制器局部网标准化、规范化推广铺平了道路。CAN总线是一种多主总线,通信介质可以是双绞线、同轴电缆或光导 纤维。通信速率可达1MBPS。 CAN总线通信接口中集成了CAN协议的物理层 和数据链路层功能,可完成对通信数据的成帧处理,包括位填充、数据 块编码、循环冗余检验、优先级判别等项工作。CAN协议的一个最大特点是废除了传统的站地址编码,而代之以对通信数据块进行编码。采用这种方法的优点可使网络内的节点个数在理论 上不受限制,数据块的标识码可由11位或29位二进制数组成,因此可以 定义211或229个不同的数据块。这种按数据块编码的方式,还可使不同 的节点同时接收到相同的数据,这一点在分布式控制系统中非常有用。 数据段长度最多为8个字节,可满足通常工业领域中控制命令、工作状态 及测试数据的一般要求。同时,8个字节不会占用总线时间过长,从而保
证了通信的实时性。CAN协议采用CRC (循环冗余校验)并可提供相应的 错误处理功能,保证了数据通信的可靠性。CAN卓越的特性、极高的可靠 性和独特的设计,特别适合工业过程监控设备的互连。因此,越来越受 到工业界的重视,并已公认为最有前途的现场总线之一。另外,CAN总线采用了多主竞争式总线结构,具有多主站运行和分散 仲裁的串行总线以及广播通信的特点。CAN总线上任意节点可在任意时刻 主动地向网络上其它节点发送信息而不分主次,因此可在各节点之间实 现自由通信,CAN总线通信接口中集成了CAN协议的物理层和数据链路 层功能,可完成对通信数据的成帧处理。CAN总线协议已被国际标准化组 织认证,技术比较成熟,控制的芯片已经商品化,性价比高,特别适用 于分布式测控系统之间的数通讯。CAN总线插卡可以任意插在PC AT/XT兼 容机上,方便地构成分布式监控系统。近年来,国内工业现场测试技术与现代动力工程技术的发展相适 应,产生了飞速发展。随着电子技术、传感器技术、计算机技术和控制 技术的推广与应用,以前采用人工采集处理测试数据和人工操作等测试 技术手段正被计算机自动测控系统所代替,数据采集在精度、可靠性、 稳定性和灵活性都有了很大提高。但是,目前国内在数据采集,特别是 高速采集、信号实时性处理方面存在不少问题,主要包括(1) 传统的数据采集方法不适用于远程数据采集,如在串行通信 中,RS-232通信标准数据传送距离短, 一般电缆长度为15m,不适于用作远程数据釆集;(2) 传统的数据采集速率低,实时性差,如RS-232通信标准数据传 输速率慢,通常异歩通信速率限制在19.2kbps以下;RS-449、 RS-422 及RS- 423等通信标准,实时性不强;RS-485只能构成主从式结构系统,通 信方式也只能以主站轮询的方式进行,系统的实时性差。(3) 传统的数据采集方法,由于测试工作现场大多环境较差,而被测 信号基本都是弱电信号,噪声信号较多,目前一般的测试系统的数据处 此所测数据的可靠性、真实性不高,需用先进的数据处 理方法进行数据处理;且当系统出现多节点同时向总线发送数据时,会导 致总线数据传输出现丢失某些数据帧的现象。 发明内容本发明的目的在于针对现有技术的不足,提供一种实时性更强、可靠性和真实性更高的基于CAN总线的信号实时性处理方法。本发明方法内容包括(1) 根据信号各信息帧的标识符的大小标定信息帧的优先级,标识 符越小,信息帧的优先级越高。处理时,按照优先级由高到低的顺序将各信息帧发送到CAN总线上,优先级相同的信息帧采用FIFO (First In First 0ut,先进先出)的机制发送。(2) 通过CAN总线从节点的状态转换优化各信息帧发送顺序,CAN总 线从节点的状态转换的流程包括CAN总线从节点在系统上电后进行初始 化,初始化完成后,发送一个启动报文,进入预操作状态;在预操作状 态下,调用CAN应用层协议中的接收消息功能模块检测接收到的对象,并 对接收到的对象进行相应处理;在预操作状态中,从结点通过服务数据 对象(Service Data Object, SD0)配置和设置参数,但是禁止发送实时 数据对象(Process Data Object, PD0),在收到的是进入操作状态的网 络管理对象(Network Management Object,丽T)报文后进入操作状态, 如果收到的是进入停止状态的NMT报文则进入停止状态;在操作状态下, 进行正常的通讯,发送实时数据对象PD0,在收到进入预操作状态的NMT 报文后进入预操作状态,如果收到的是进入停止状态的丽T报文则进入停 止状态;在停止状态下,从节点停止实时数据对象PDO和服务数据对象 SDO的通讯。本发明通过在CAN总线应用层协议上增加发送信息调度算法来提高 CAN网络通讯实时性。发送信息调度算法的前提是要保证CAN网络中优先 级高的信息帧可以先占用CAN总线,但由于CAN网络中大多数C認节点驱动 程序设计都采用FIFO机制,即先进入缓冲区的信息帧先被发送到总线上。这种设计使CAN节点内高优先级的信息帧需要等待缓冲区内未发送的信息帧发送完后才能参与总线占用权的竞争,剥夺了高优先级信息帧的权利。该实时性优化方法在设计节点控制器的CAN驱动程序时采取如下一 些措施放弃FIF0机制,发送时由中断子程序在发送缓冲区中搜索优先 级最高的信息帧,S口CAN标识符最小的信息帧进行发送;对相同的优先 级,建立FIFO缓冲区,不同优先级的信息帧放入各自的缓冲区,中断子 程序从高优先级的FIFO缓冲区中读取信息帧发送到总线上。本发明通过 调整C認网络中信息帧优先级的优化方法,达到提高基于CAN总线的高速 数据采集和信号处理速度的目的。CAN通讯应用层具有开放性,不同应用场合和需求出现了多种不同应 用层协议标准,常用的有CAN0pen、 DeviceNet、 SAE J1939和M0ST等,本 发明主要通过基于CAN智能节点硬件的软件编程实现自定义应用层协议。 本发明的基于CAN应用层协议的CAN智能从节点软件设计主要包括以下工 作CAN从节点数据帧标识符分配和优先级划分,从节点状态转换,PD0 通讯实现和CAN发送中断子流程等。其中,CAN标识符确定C認总线信息帧 的优先级,标识符数值较小的优先级较大,CAN应用层协议中,信息帧的 前四位标识符表示信息帧的类型,其值的大小代表了信息帧的优先级。相对于现有技术,本发明具有以下优点(1) 采用发送信息调度算法提高CAN网络通讯实时性;(2) 在设计节点控制器的CAN驱动程序时,放弃CAN总线的FIFO机制, 发送时由中断子程序在发送缓冲区中搜索优先级最高的信息帧,提高优 先级高的信息帧发送的实时性;(3) 通过调整CAN网络中信息帧优先级的优化方法,达到提高基于CAN总线的高速数据采集和信号处理的目的;(4) 本发明通过基于CAN智能节点硬件的软件编程实现自定义应用层 协议,实现实时CAN应用层协议设计方法;
(5)本发明适用工业自动化各个领域,易于扩展,提高数据采集速 度,使信号处理具有更高的实时性,同时降低了系统成本。


图1为本发明方法中CAN总线从节点状态转换流程图;图2为本发明一实施例的CAN总线结构示意图。
具体实施方式
本发明的基于CAN总线的信号实时性处理方法具体内容是(1) 通过在CAN总线应用层协议上增加发送信息调度算法来提高CAN 网络通讯实时性。首先通过自适应算法,即对不同优先级信息帧设置不 同缓冲区,相同优先级信息帧建立FIFO缓冲区,发送时由中断子程序在 发送缓冲区中搜索优先级最高的信息帧,即CAN标识符最小的信息帧进行 发送,动态调整CAN信息帧的优先级,保证CAN网络中优先级高的信息帧 可以先占用CAN总线;本发明通过调整CAN网络中信息帧优先级的优化方 法,达到提高基于CAN总线的高速数据采集和信号优化的目的。(2) 实时CAN应用层协议设计方法。g卩CAN从节点数据帧标识符分配 和优先级划分,从节点状态转换,PDO通讯实现和CAN发送中断子流程 等。其中,CAN标识符确定CAN总线信息帧的优先级,标识符数值较小的 优先级较大,CAN应用层协议中,信息帧的前四位标识符表示信息帧的类 型,其值的大小代表了信息帧的优先级。CAN应用层协议从节点状态转换流程图如图1所示。从节点上电 后,首先从节点自动初始化CAN通讯接口、节点ID、波特率等参数, 即通讯初始化;然后自动进入节点初始化,调用初始化功能模块,初始 化一些特定的用户;完成后,发送一个启动报文,自动进入预操作状 态,调用预操作功能模块,用户的程序循环执行着,在每个循环中,调 用一次接收消息功能模块,用来检査接收到的对象,并做相应的处理。 在NMT报文来之前一直持续在预操作状态,从结点可以通过SDO配置和 设置参数,但是不允许发送PD0。收到相应的进入操作状态的丽T报文
后,进入操作状态,可以进行正常的通讯,发送PD0,每个周期依然调 用一次接收消息功能模块。收到相应的进入停止状态的丽T报文后,从节点进入了停止状态,从而停止PD0和SD0通讯,但是依然每个周期调用一次接收消息功能模块。在CAN发送中断子流程中,对于不同优先级的信息帧,通过在发送 缓冲区中找出最高优先级的信息帧进行发送,对于相同优先级的信息 帧,则采用FIFO机制进行信息帧的发送。采用本发明方法实现对纺织机的基于CAN总线分布式控制系统信号实 时优化处理(CAN总线结构如图2所示)。控制系统主要包括电机控制模 块7、巻取控制模块8、光电编码器模块9、电子选纬控制模块IO、传感器 模块11和人机接口模块12,分别通过CAN节点1、 CAN节点2、 CAN节点3、 CAN节点4、 CAN节点5、 CAN节点6,连接到CAN总线13、 14上,通过13、 14 进行相互之间的通讯。通过对CAN网络实时性的优化设计,具有通讯实时 性好,网络连接可靠的优点,通过己实现的部分织机控制模块的实际运 行情况看,本发明方法能达到较好的通讯实时性、稳定性和可靠性。
权利要求
1、一种基于CAN总线的信号实时性处理方法,其特征在于该方法具体内容包括(1)根据信号各信息帧的标识符的大小标定信息帧的优先级,标识符越小,信息帧的优先级越高;处理时,按照优先级由高到低的顺序将各信息帧发送到CAN总线上,优先级相同的信息帧采用FIFO(First In FirstOut,先进先出)的机制发送;(2)通过CAN总线从节点的状态转换优化各信息帧发送顺序,CAN总线从节点的状态转换的流程包括CAN总线从节点在系统上电后进行初始化,初始化完成后,发送一个启动报文,进入预操作状态;在预操作状态下,调用CAN应用层协议中的接收消息功能模块检测接收到的对象,并对接收到的对象进行相应处理;在预操作状态中,从结点通过服务数据对象(Service Data Object,SDO)配置和设置参数,但是禁止发送实时数据对象(Process Data Object,PDO),在收到的是进入操作状态的网络管理对象(Network Management Object,NMT)报文后进入操作状态,如果收到的是进入停止状态的NMT报文则进入停止状态;在操作状态下,进行正常的通讯,发送实时数据对象PDO,在收到进入预操作状态的NMT报文后进入预操作状态,如果收到的是进入停止状态的NMT报文则进入停止状态;在停止状态下,从节点停止实时数据对象PDO和服务数据对象SDO的通讯。
全文摘要
本发明涉及一种采用嵌入式计算机技术和计算机信号处理技术的基于CAN总线信号实时性处理方法。目前的数据处理方法简单,可靠性和真实性不高。本发明方法包括1.根据信号各信息帧的标识符的大小标定信息帧的优先级,标识符越小信息帧的优先级越高,处理时按照优先级由高到低的顺序将各信息帧发送到CAN总线上;2.通过CAN总线从节点的状态转换优化各信息帧发送顺序。本发明的处理方法实时性更强,可靠性和真实性均得到有效提高。
文档编号H04L1/00GK101119267SQ20071007056
公开日2008年2月6日 申请日期2007年8月28日 优先权日2007年8月28日
发明者鹏 刘, 翔 张, 张怀相, 戴国骏, 虹 曾, 李二涛, 申兴发, 高志刚, 高申勇 申请人:杭州电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1