基于CAN一卡通系统总线调度策略建模与仿真
文章出处:http://www.nexussmartsolutions.com 作者: 人气: 发表时间:2011年09月13日
摘要:基于控制器局域网(CAN)的测控系统需要采用恰当的总线调度策略以满足数据传输的实时性要求,其建模与仿真能对网络设计进行评估和优化。在设计一卡通系统线性混合总线调度算法的基础上,运用网络仿真系统OPNET设计了一种改进的CAN CSMA/CA模型。应用该模型对所设计的总线调度算法的效率和稳定性进行了仿真分析和比较。结果表明,该算法能够有效地满足一卡通系统数据传输的实时性要求。
关键词:一卡通系统;CAN;总线调度;建模与仿真;OPNET
控制器局域网(CAN,control area network)是基于事件触发机制的多主系统,需要根据实际系统的要求采用恰当的总线调度策略以满足数据传输的实时性要求[10]。
在CAN总线调度策略的建模与仿真研究方面,Tindell和Wellings将固定优先级排队理论拓展到CAN上,建立了CAN数学模型[3],并逐步改善了CAN响应时间模型[4、5]。目前国内在该领域的研究集中于模型的理论分析,且多基于CSMA协议,未能反映CAN CSMA/CA总线调度策略本质。笔者运用OPNET设计了一种改进的CSMA/CA模型,该模型能够有效支持CAN总线调度策略仿真分析和比较。在此基础上,对一卡通系统线性混合总线调度算法进行了仿真分析。结果表明该算法能够很好地满足一卡通系统数据传输的实时性要求。
1基于CAN的一卡通系统
1.1 CAN总线调度策略
CAN总线的介质访问控制方式为带冲突避免的载波侦听多址访问(CSMA/CA)。在非破坏性总线逐位仲裁规则下,帧ID值越小,优先级越高。因此,总线调度策略的实现依赖于帧ID的设计。
1.2 CAN帧ID设计
系统采用扩展帧,ID长度为29位。各域分配如图1所示。
D28一D24为优先级动态(PD,priority dynamic)域。PD域占5位,根据CAN协议高速标准IS011898,一条CAN总线最多挂接30个节点,因此至少需要30个优先级。
图1 CAN帧ID
D23~D16为POS机号域,系统中每个节点都有一个唯一的地址号,使用8位二进制数表示,最多容纳256个终端POS机。优先级最高的地址(全0)作为广播地址,其他地址依次分配给各POS机。机号可以在POS机上设定,初始值为0,是系统中的唯一编号。
D15~Dl为帧号域。一条应用层命令必须拆分成多个帧进行传输,第一帧的帧号为命令流水号,其后帧的帧号是前一帧的帧号加1。
帧号域占15位,在联机情况下,POS机在发送一帧后,会在其后的1024个帧间隔内得到数据中心响应。根据系统应用层协议,一条应用层命令最多被拆分成23帧,为了避免属于不同命令的两个帧的帧号相同,规定每一命令流水号是前一命令流水号加32。
D0为第1帧信息域,标识该帧是否为第l帧。若为第1帧,帧数据段第1字节为应用层命令字。D0为1表示第l帧;为0表示不是第l帧。
1.3混合总线调度算法
在1.2节描述的帧ID中,对于每一个帧,D23~DO是固定不变的,D28~D24根据帧已等待发送时间动态变化。据此设计了一种动态和静态相结合的混合总线调度算法。
根据实时性要求的不同,系统中不同POS机分配不同的初始发送优先级PRI_INITi,i为节点编号。为不失一般性,设PD域占用的位数为n,则必须满足PRI_INITi≤2n-1.分配PRI_INITi时,考虑POS机所属的不同类型。系统由充值机和消费机构成,充值机实时性要求高于消费机,其PRI_INITi取较小值。
节点开始发送帧时,把数值PRI_INITi复制到PD域,此时总线的状态存在下面3种情况:
①若此时只有该节点侦听到总线空闲,则成功发送;
②若此时有多个节点同时侦听到总线空闲,根据仲裁规则,仲裁获胜的节点继续发送,仲裁失利的节点调整自身的发送优先级,将欲发送的帧置入其发送等待队列,同时转入接收状态;
③若此时该节点侦听到总线忙,则直接将欲发送的帧置人发送等待队列,同时转入接收状态。
情况②中节点在仲裁失利后,采用下述策略调整发送优先级。i为节点编号;M为在成功发送一帧过程中节点参与总线竞争总次数;m为次数编号;J为所发送帧类型对应的调节比。帧类型与优先级调节比的对应关系如表1所示。
表1 帧类型与优先级调节比对应表
式(3)为一种抽象表达式,可选择如下具体函数形式
式(4)为线性混合总线调度算法,式(5)为常量混合总线调度算法。为比较混合调度策略与静态调度策略,式(6)为静态总线调度算法。
2 CAN网络建模
2.1 CAN子网模型
CAN子网有2个充值机节点,编号为1和2;28个消费机节点,编号从3到30;各节点编号用i表示,其初始发送优先级为i-1。为了统计总线流量和吞吐率,增加一个统计节点,它只接收不发送帧。CAN子网拓扑结构如图2所示。
图2 CAN子网拓扑结构模型
基于总线调度策略,图2中充值机节点和消费机节点模型只考虑发送部分,如图3所示。
图3 CAN子网节点模型
图3中,gen为节点信源模块,根据扩展帧格式,帧最长128 b。因此packet size设置成constant(128)。
2.2处理机模型
在CSMA基础上,引入总线调度策略,设计如图4所示的改进的CSMA/CA处理机模型。
第1页第2页 |