搜档网
当前位置:搜档网 › J 协议

J 协议

S A E J1939

简介

S A E J1939协议是由汽车工程协会(S A E)定义的,主要用于商用车辆,但也用于舰船、轨道机车、农业机械和大型发动机。另外,S A E J1939用作国际标准N M E A2000(海事)和 I S O11783(农业机械)的基础,因而此协议栈也能用于这些应用。

在商用车辆方面,由S A E制定的标准化串行协议长期以来一直用于单个电子控制单元和传动装置上元件之间的通信。基于通常可从单片机串行端获得的J1708/J1587协议可以被视作前驱。

由于需要与J1708/1587协议兼容,对于J1939来说,必须要求C A N报文标识符从11-b i t s扩展到29-b i t s (扩展格式),并且C A N模块的开发或协议实现应支持这种报文格式。

因为有扩展的C A N标识符,这就能够象用于J1708那样,将通信关系的定义规则映射到C A N。部分标识符被用于指定一个8-b i t源和一个8-b i t目标地址(节点数)。

所以通过S A E J1939能够传输测量值和控制数据并配置元件。另外,还能够读或删除单个元件诊断数据,并对单个控制进行校准。

为了使这些成为可能,对于商用车方面的所有相关变量都要在S A E J1939中定义值域、分辨率、识别数等等。这些对基于J1587技术规格的大都实现。

因此,在J1939协议中,不仅仅指定了传输类型、报文结构及其分段、流量检查等,而且报文内容本身也做了精确的定义。S A E J1939在I S O/O S I层模型中的分布根据O S I层模型,

S A E J1939被分成几个层,每一层都分别有相应的文档说明。类似于所有实际上的现场总线协议,在S A E J 1939上第5和6层是不需要的,因此没有定义。

S A E J1939的功能被分为如下几层:

第一层(物理层)描述在其它事物中与物理媒介的电子接口;

第二层(数据链路层)描述通过基于C A N2.0B技术规格的C A N的数据通信;

第三层(网络层)主要描述两个网络部分间针对报文传输的网桥的功能,并且只与 J1939网桥实现相关; 第四层(传输层)基本上描述的是针对报文申请模式、确认传输和大数据块的分段传输的各种网络服务; 第七层(应用层)描述实际的数据(参数或带有值域的网络变量、分辨率、物理单元和传输类型)。每个报文无歧义地对应一个数(参数组数);

由于网络管理可以被当作一个分离的单元,能直达硬件(第一层),因此在这个层模型中,该模块是作为右手边的一个独立的功能块。网络管理基本上包括自动分配或决定节点地址(即插即用原则)。在S A E J1939中没有定义节点监视,因而必须在应用时通过循环报文实现。

现代汽车的核心技术-SAE J1939

一、技术背景

在当今的中高档汽车中都采用了汽车总线技术。汽车总线为汽车内部各种复杂的电子设备、控制器、测量仪器等提供了统一数据交换渠道。一些汽车专家认为,就像在20世纪70年代引入集成电路、80年代引入微处理器一样,近10年来数据总线技术的引入也将是汽车电子技术发展的一个里程碑。

20世纪90年代以来,汽车上由电子控制单元(ECU)控制的部件数量越来越多,例如电子燃油喷射装置、防抱死制动装置、安全气囊装置、电控门窗装置、主动悬架等等。随着集成电路和单片机在汽车上的广泛应用,车上的ECU数量越来越多。因此,一种新的概念--车上控制器局域网络CAN(Controller Area Network)的概念也就应运而生了。CAN最早是由德国BOSCH公司为解决现代汽车中的控制与测试仪器之间的数据交换而开发的一种数据通信协议,按照ISO有关标准,CAN的拓扑结构为总线式,因此也称为CAN总线。

CAN协议中每一帧的数据量都不超过8个字节,以短帧多发的方式实现数据的高实时性;CAN总线的纠错能力非常强,从而提高数据的准确性;同时CAN总线的速率可达到1M bit/s,是一个真正的高速网络。总之,将CAN总线应用在汽车中使用有很多优点: (1)用低成本的双绞线电缆代替了车身内昂贵的导线,并大幅度减少了用线数量;提高可*性,安全性、降低成本。 (2)具有快速响应时间和高可*性,并适合对实时性要求较高的应用如刹车装置和气囊;控制平台、信息平台、驾驶平台的互连基础。 (3)CAN芯片可以抗高温和高噪声,并且具有较低的价格,开放的工业标准。

在现代轿车的设计中,CAN已经成为必须采用的装置,奔驰、宝马、大众、沃尔沃、雷诺等汽车都采用了CAN作为控制器联网的手段。据报道,中国首辆CAN网络系统混合动力轿车已在奇瑞公司试装成功,并进行了初步试运行。在上海大众的帕萨特和POLO汽车上也开始引入了CAN总线技术。但总的来说,目前CAN 总线技术在我国汽车工业中的应用尚处于试验和起步阶段,绝大部分的汽车还没有采用汽车总线的设计,因而存在着不少弊端。

比如,众所周知汽车的核心设备就是发动机,发动机的运行参数,例如发动机转速、机油压力、冷却剂温度等等是和汽车驾驶是紧密相关的。传统汽车仪表的设计方法是:通过放置在汽车部件(如发动机)内部的传感器,将机械信号转换成电信号,如电压、电流、脉冲信号,再经过D/A转换或计数器等,将电信号转换成可视的指针信号显示在模拟仪表盘上。随着汽车总线技术的发展,不少进口的发动机已经不再直接向外提供传感器信号,而改用CAN总线通信接口。一旦发动机出现故障时,由于缺乏基于CAN总线的测试维修设备,目前我们的维修人员使用的方法只能是在发动机上钻孔,将传感器直接放进发动机内部进行测量,操作繁琐、设备复杂,且不利于保护发动机的整体结构。

又比如,现有的部分汽车仪表使用了专用的总线设计,由于硬件标准不统一,通信协议也不兼容,为甲公司汽车生产的仪表完全不能在乙公司的汽车上使用,生产成本难以降低、故障维修很不方便。如果能将各种专用总线统一到CAN总线标准上来,就可以解决问题。

再比如,在手动挡汽车中,驾驶员的换挡是依照经验进行的,有可能发生应该加高挡位而没能及时加挡的情况,即低档高速行驶,既不利于降低油耗,又容易造成汽车传动部件磨损。如果能实现自动换挡提示,车辆就能始终保持在经济时速行驶。

根据ISO(国际标准化组织)定义的OSI模型,CAN协议定义了物理层及数据链路层规范,这为不同的汽车厂商制定符合自身需要的应用层协议提供了很大的便利。如果需要建立更加完善的系统,还需要在CAN的基础上选择合适的应用层协议。如CANopen、SAE J1939等。

J1939协议是目前在大型汽车中应用最广泛的应用层协议,可达到250Kbps的通讯速率。J1939协议由美国SAE( Society of Automotive Engineer)组织维护和推广。J1939协议具有如下特点:

(1)以CAN2.0B协议为基础,物理层标准与ISO11898规范兼容并采用符合该规范的CAN控制器及收发器。通讯速率最高可达到250Kbps。 (2)采用PDU( Protocol Data Unit 协议数据单元)传送信息,每个PDU相当于CAN协议中的一帧。由于每个CAN帧最多可传输8个字节数据,因此PDU的传输具有很高的实时性。 (3)利用CAN2.0B扩展帧格式的29位标志符定义每一个PDU的含义以及该PDU的优先级。 (4)J1939协议主要作为汽车中应用的通讯协议,对汽车中应用到的各类参数都进行了规定。参数的规定符合ISO11992标准。

二、J1939在国内的发展情况

中国单片机公共实验室联合北京英贝多嵌入式网络技术有限公司,辽宁能发伟业汽车仪表有限公司、美国卡特皮勒公司,以及国内著名的汽车设计厂商,经过两年多的设计开发,实现了基于单芯片的J1939 网关芯片em2003系列产品。

em2003可用于汽车数字化仪表,汽车J1939网关,汽车多功能电控的核心单元,并通过了严格的可*性测试和实际产品化验证,已投入批量生产。

em2003的各项指标已达到了国际先进水平,除支持SAE J1939固件外,还可支持SAE 1587,ISO9141标准,实现对汽车仪表的控制驱动。在国内是唯一实现了对汽车全液晶数字仪表的控制,步进马达指针仪表的控制及多功能车载传感器信息运行参数的网络计算信息平台。通过了与美国、德国、意大利 J1939 发动机的互连测试,取得了国际化的通行证。

目前,SAE J1939的技术规范及软硬件开发测试平台已由中国单片机公共实验室完成引进消化和部分技术的国产化工作,并对国内数十家汽车厂商的控制计算平台提供技术支持和解决方案及顾问服务。

汽车内部网络 SAE J1939

CAN规范只包括了物理层和数据链路层,是一个可以封装在通信控制器集成电路芯片内部的规范。

SAE J1939以CAN为基础,其物理层和数据链路层基本上沿用了CAN规范,并增加了网络层、应用层和网络管理规范。

SAE J1939目前已经发布的规范如下:

J1939/01 卡车、公共汽车控制与通信网络

J1939/12 物理层,250Kbps, 四线双绞线

J1939/13 物理层,诊断连接器

J1939/31 网络层

J1939/71 车辆应用层

J1939/72 虚拟终端应用层

J1939/73 应用层-诊断

J1939/81 J1939网络管理协议

通信参考模型比较

J1939的物理连接与网络拓扑

总线由CAN-H、CAN-L、 CAN-SHLD导线组成;CAN-H为黄色、CAN-L为绿色。

网段由屏蔽双绞线对组成,允许用分枝短线将每个ECU连接到总线上,不要求每个ECU直接接近总线。网段上的ECU数量

SAE J1939汽车内部网络是将许多电控单元ECU连接成的网络的物理实现。ECU的数量受到总线上负荷的限制。根据现有规范对电气参数的规定,在一个给定的网段上,ECU的最大数量被限制为30。网段以250 Kbps 的数据传输速率运行,为防止信号反射,使网段运行对电子信号的影响最小,在总线的每个终端都应连接终端电阻。

每个部件均有终端电阻(120 ),终端电阻采用支架安装,以便调整。同时,终端电阻同网络线之间通过跳线相连,以便灵活搭配。

J1939网络可以由一个或多个网段组成,网段间由网络互连ECU(如网桥)连接。

J1939报文帧的格式与定义

J1939为采用CAN 2.0B扩展帧格式。

J1939 29位ID的位定义图

SAE J1993进一步定义了CAN数据帧仲裁域的标识位

SAE J1993报文帧包含一个单一的协议数据单元PDU

PDU包括7个预定的域

优先级、保留位、数据页、PDU格式、PDU细节(可以是目标地址、组扩展或专有)、源地址和数据域。 CAN数据帧中的SOF、SRR、IDE、RTR、部分控制域、CRC、ACK和EOF没有包括在PDU内。因为这些部分完全由CAN规范控制,未被SAE J1939修改。

优先级(P):这三位用于总线仲裁时优选发送到总线上的报文。它们被接收器完全屏蔽。报文的优先级设置从最高的0(0002)到最低的7(1112)。

所有面向控制的报文其缺省优先级为3(011)。其它报文、专有报文、请求以及AKC报文的缺省优先级为6(110)。随着参数组号PGN的分配情况和总线通信的变化,允许提高或降低优先级。

保留位(R):该保留位供SAE将来使用。不能与CAN的保留位混淆。传输时所有的报文应该将SAE保留位设为0。

数据页(DP):数据页位选择了参数组描述的一个辅助页。在第0页上可获得的所有参数组号的分配完成后,再作对第1页的分配。

PDU格式(PF):PDU格式域是一个8位域。J1939规定了PDU1和PDU2两种格式。

其值低于240为PDU1格式,其值为240~255为PDU2格式。

PDU1格式允许将参数组发送给一个指定目标或全局目标。

不能选用PDU2格式将PGN传送给特定目标。

PDU细节(PS)--这也是一个8位的域,它的定义取决于PDU格式(PF)域的内容。当PDU格式(PF)域的值低于240,则PDU细节域表示的是一个目的地址;当PF域的值是240~255时,则PDU细节域表示的是一个组扩展(GE)值

源地址SA域,共8位。网络中仅容许一个设备对应给定的源地址,应防止地址重复

数据域为 0~8字节的数据。当某参数组的数据字节等于或小于8时,数据域的所有8个字节都可用。推荐使所有参数组号都保留8个数据字节

当需要9~1785个字节来表达某个参数组时,数据通信将由多个CAN数据帧完成。

在某一时刻需要传输的数据字节数小于9时,将在一个单一的将DLC设定为8的CAN数据帧中被发送。

当某一参数组有9个或多于9个数据字节要传输时,则使用"传输协议功能",以启动和关闭多包参数

组的通信

J1939 允许在同一网络中使用11位ID的设备

ECU的设计说明

J1939规范将工作在网络上的ECU分为标准ECU、网络互连ECU、诊断/开发工具几种类型。

标准ECU指用于发动机﹑变速器﹑ABS系统﹑虚拟终端﹑仪表盘等的电控单元。标准ECU不具备修改其他ECU源地址的能力

网络互联ECU---网络互联ECU用于网段互连.它们主要由中继器﹑网桥﹑路由器﹑网关组成

诊断/开发工具用于分析﹑调试﹑开发、监视在网段上的ECU。

ECU的名称

SAE J1939规定,每个 ECU将至少有一个名称和一个与之关联的地址。

一个电控单元ECU中可能有多个名称与多个地址共存。容许多个作相同工作的ECU在同一网络上共存,但要为每个ECU命名独特的名称。

名称可以用ECU的功能来表示,例如,1#发动机号﹑2#发动机号﹑1#变速器﹑ABS系统等。通过名称指明在网络上可以找到的任何功能 ]

ECU的首选地址

为了方便于网络初始化过程,通常使用的设备都有一个由委员会指派的首选地址。采用首选地址可以避免多个设备企图在网络上宣称相同的地址

运用一个在上电之后分配地址的专门程序来解决可能发生的冲突。

每个ECU都必须有能力宣布它想要采用的地址,这是地址宣称特征。

在J1939网络上运行的ECU都应该有一个可用的首选地址。

首选地址的分配从0开始, 0 to 127 分配给在工业组0中最常用的ECU;128 to 247 留给行业特定分配;248 to 253 留给特殊的ECUs;

ECU的地址号不能超过254。 254 为空地址;255 为全局地址。ECU不能宣称空地址和全局地址。

一个ECU可以要求有多个地址,以区别要发生的作用

ECU的能力类型

1)自组态ECU (Self-Configurable ECUs)。自组态ECU有能力动态地计算并宣称一个网络上未用过的地址。大多数的服务工具和网桥都应该有这个能力。

2)命令组态ECU(Command Configurable ECUs)。命令组态ECU可以命令另一个ECU采用一个给定的地址。网络互连ECU,如桥,或服务工具可以是命令组态ECU。接收该地址的ECU则应发布一个地址宣称报文来确认收到了这个新命令的地址。即使在一个节点已经宣称了一个合法的地址的情况下,也可以命令ECU接受一个新地址

ECU的能力类型(续)

3)维护性可组态ECU( Service Configurable ECUs)。可由维护者修改其地址的ECU,通常指采用DIP 开关方式或服务工具可改变其地址的ECU。当采用 "commanded address" 报文时,它的选项不同于命令组态。 4)不可组态ECU( Non-Configurable ECUs)。这些ECUs既不能自组态,也不能接受其它节点对它的命令组态。如果它们在宣称地址中失败,将不得不终止通信。

ECU的通信方式

ECU作为J1939网段上节点,有三种通信方式

有明确目的地址(包括采用全局目的地址255)的通信方式

采用PDU2格式的广播通信方式。其PF值为240-255,报文从单一或多个源节点传到多个目的地。

既采用PDU1也采用PDU2格式的专有通信方式

ECU的处理能力

250 Kbps 的数据传输速率意味着每个数据位占400 S, 一个包含有8个字节数据域的典型报文,其长度是128位(不包括填充位),大约占0.5 ms。而数据域为0个字节的最短的报文有64位长。这意味着网段上每250微秒可能会出现一个新的报文。

作为接收节点的ECU,其处理器应该一直能处理(或缓存)多个紧接着的报文。这就要求ECU有一定的RAM空间以及存储转换的处理时间。要求不能因ECU硬件或软件的设计限制而导致报文丢失

应用数据的格式约定

为了使应用数据的收发双方能正确理解数据意义,应该对数据域内应用数据的格式、排列顺序等作出相应规定。

对测量数据,如发动机转速、扭矩、踏板位置、电压、电流、温度值等,需要分别设置其数据长度、有效范围、分辨率、量程范围、运行范围、所属参数组号、在数据域中的排列位置、出错指示、故障参数号SPN等

对各种开关量,应统一规定表明其正处于正向、反向、闭合、断开、不起作用等状态的状态代码,以及命令开关量处于上述某一状态的控制命令代码。

对发动机、变速器等车辆中常用的ECU,J1939规范中已经对它们的应用数据的格式约定、参数等作出了详细规定,以便不同厂商生产的ECU在同一网络条件下工作时能相互理解数据意义。

由于牵引车要挂接一个或多个拖车,并需要频繁地卸掉和加挂拖车,因而应在牵引车、拖车和拖斗内各自采用单独的网段,由多网段组成的网络来支持系统工作。当暴露在牵引车和拖车之间的总线发生故障时,牵引车上的J1939主子网段将继续发挥作用,维持系统的正常工作。在车辆内部网络节点ECU的数量较多时,也需要组成多网段的网络系统。各网段之间采用网桥等网络互连ECU连接。当网络系统中存在着多个网段时,需要网络管理来协调系统工作。

Ns2.34上leach协议的完美移植

Ns2.34上leach协议的完美移植 经过几天的不断实验,以及网上各位前辈的帮助,终于成功将leach协议完美移植到ns2.34上,下面是我的安装笔记。 Step1 在ns-2.34的目录下新建一个leach文件夹,将leach.tar.gz放入这个文件夹 Step2 在终端中进入这个目录下,键入tar zxf leach.tar.gz Step3 ①将leach/mit整个目录复制到ns-allinone-2.34/ns-2.34中 ②将leach/mac目录下的https://www.sodocs.net/doc/9c10470266.html,, mac-sensor.h, https://www.sodocs.net/doc/9c10470266.html,, mac-sensor-timers.h四个文件复制到ns-allinone-2.34/ns-2.34/mac中 ③将leach/tcl/mobility目录下的四个文件复制到ns-allinone-2.34/ns-2.34/tcl/mobility中 ④将ns-allinone-2.34/ns-2.34/tcl/ex目录下的wireless.tcl重命名为wireless_1.tcl,再将leach/tcl/ex目录下的wireless.tcl复制到ns-allinone-2.34/ns-2.34/tcl/ex中⑤将leach目录下的test,leach_test,package_up三个文件复制到ns-allinone-2.34/ ns-2.34中 Step3 修改文件 ①需要修改的文件有: ns-allinone-2.34/ns-2.34/apps/https://www.sodocs.net/doc/9c10470266.html,,app.h ns-allinone-2.34/ns-2.34/trace/https://www.sodocs.net/doc/9c10470266.html,,cmu-trace.h ns-allinone-2.34/ns-2.34/common/https://www.sodocs.net/doc/9c10470266.html,,https://www.sodocs.net/doc/9c10470266.html,,packet.h ns-allinone-2.34/ns-2.34/mac/https://www.sodocs.net/doc/9c10470266.html,,ll.h,https://www.sodocs.net/doc/9c10470266.html,,https://www.sodocs.net/doc/9c10470266.html,,phy.h,wireless-phy.c c,wireless-phy.h ②修改方法: 对于leach目录下相应的文件(即刚才未复制的文件),将代码中以“#ifdef MIT_uAMPS”开始,并以“#endif”结束的部分复制到以上文件对应的位置 这个过此要小心核对修改,否则前功尽弃 ③特殊情况 <1> ns-allinone-2.34/ns-2.34/common/packet.h中大约185行,根据其他变量的格式将代码更改为 #ifdef MIT_uAMPS static const packet_t PT_RCA = 61; #endif 并将最后一个枚举值改为62 这个过程可以随情况改变,还要注意的是packet.h文件并不是只改这一部分,前面的修改依然要。 <2> ns-allinone-2.34/ns-2.34/mac/wireless-phy.h,给类WirelessPhy添加public变量,大约105行 #ifdef MIT_uAMPS MobileNode * node_;

LEACH协议的算法结构及最新研究进展

LEACH协议的算法结构及最新研究进展 1 LEACH协议算法结构 LEACH这个协议的解释是:低功耗自适应集簇分层型协议。通过名字,我们就能想到这个协议的大概作用了。那么在这之中,我们先来研究一下它的算法。 该算法基本思想是:以循环的方式随机选择蔟首节点,将整个网络的能量负载平均分配到每个传感器节点中,从而达到降低网络能源消耗、提高网络整体生存时间的目的。仿真表明,与一般的平面多跳路由协议和静态分层算法相比,LEACH协议可以将网络生命周期延长15%。LEACH在运行过程中不断的循环执行蔟的重构过程,每个蔟重构过程可以用回合的概念来描述。每个回合可以分成两个阶段:蔟的建立阶段和传输数据的稳定阶段。为了节省资源开销,稳定阶段的持续时间要大于建立阶段的持续时间。蔟的建立过程可分成4个阶段:蔟首节点的选择、蔟首节点的广播、蔟首节点的建立和调度机制的生成。 蔟首节点的选择依据网络中所需要的蔟首节点总数和迄今为止每个节点已成为蔟首节点的次数来决定。具体的选择办法是:每个传感器节点随机选择0-1之间的一个值。如果选定的值小于某一个阀值,那么这个节点成为蔟首节点。 选定蔟首节点后,通过广播告知整个网络。网络中的其他节点根据接收信息的信号强度决定从属的蔟,并通知相应的蔟首节点,完成蔟的建立。最后,蔟首节点采用TDMA方式为蔟中每个节点分配向其传递数据的时间点。 稳定阶段中,传感器节点将采集的数据传送到蔟首节点。蔟首节点对蔟中所有节点所采集的数据进行信息融合后再传送给汇聚节点,这是一种叫少通信业务量的合理工作模型。稳定阶段持续一段时间后,网络重新进入蔟的建立阶段,进行下一回合的蔟重构,不断循环,每个蔟采用不同的CDMA代码进行通信来减少其他蔟内节点的干扰。 LEACH协议主要分为两个阶段:即簇建立阶段(setup phase)和稳定运行阶段(ready phase)。簇建立阶段和稳定运行阶段所持续的时间总和为一轮(round)。为减少协议开销,稳定运行阶段的持续时间要长于簇建立阶段。 在簇建立阶段,传感器节点随机生成一个0,1之间的随机数,并且与阈值T(n)做比较,如果小于该阈值,则该节点就会当选为簇头。在稳定阶段,传感器节点将采集的数据传送到簇首节点。簇首节点对采集的数据进行数据融合后再将信息传送给汇聚中心,汇聚中心将数据传送给监控中心来进行数据的处理。稳定阶段持续一段时间后,网络重新进行簇的建立阶段,进行下一轮的簇重建,不断循环。 2 LEACH协议的特点 1 为了减少传送到汇聚节点的信息数量,蔟首节点负责融合来自蔟内不同源节点所产生的数据,并将融合后的数据发送到汇聚点。 2 LEACH采用基于TDMA/CDMA的MAC层机制来减少蔟内和蔟间的冲突。 3 由于数据采集是集中的和周期性的,因此该协议非常适合于要求连续监控的应用系统。 4 对于终端使用者来说,由于它并不需要立即得到所有的数据,因此协议不需要周期性的传输数据,这样可以达到限制传感器节点能量消耗的目的。 5 在给定的时间间隔后,协议重新选举蔟首节点,以保证无线传感器网络获取同意的能量分布。

WSN中LEACH协议源码分析报告

WSN中LEACH协议源码分析 分析(一) 首先对wireless.tcl进行分析,先对默认的脚本选项进行初始化: set opt(chan)Channel/\VirelessChannel set opt(prop) Propagatioii/TwoRayGround set opt(netif)PhyAVirelessPhy set opt(mac) Mac/802_l 1 set opt(ifq) Qucuc/DropTail/PriQueue set opt(ll) LL set opt(ant) Antenna/OmniAntenna set opt(x) 0 。# X dimension of the topography set opt(y) 0。# Y dimension of the topography set opt(cp),H, set opt(sc) N../mobility/scene/scen-670x670-50-600-20-2u。# scenario file set opt(ifqlen)50o # max packet in if set opt(nn) 51。# number of nodes set opt(secd) 0.0 set opt(stop) 10.0 o # simulation time set opt(tr) out.tr。# trace file set opt(rp) dsdv 。 # routing protocol script set opt(lm) M on H。# log movement 在这个wireless.tcl中设置了一些全局变呈:: # #Initialize Global Variables # set ns_ [new Simulator] set chan [new $opt(chan)] set prop [new $opt(prop)] set topo [newTopography] set tracefd [open Sopt(tr) w] Stopo Ioad_flatgrid $opt(x) $opt(y) Sprop topography Stopo 这些初始化将在后而的使用中用到,该文件最重要的是创建leach 17点:创建方法如下: } elseif { [string compare Sopt(rp) M leach,,]==0} { for {set i 0} {$i < $opt(nn) } {incr i} { leach-create-mobile-node $i } 如果路由协议是leach协议,则在Uamps.tcl中调用leach-create-mobile-node方法创建leach节点。将在第二小节讲如何创建leach节点。 for {set i 0} {$i < $opt(nn) } {incr i} { $ns_ at $opt(stop).000000001 M Snode_($i) reset”。〃完成后,重宜右点的应用

无线传感器网络LEACH协议研究

无线传感器网络LEACH协议的研究 摘要:无线传感器网络因其在军事、经济、民生等方面广阔的应用前景成为21世纪的前沿热点研究领域[1]。在传感器节点能量有限的情况下,提高路由效率,延长网络寿命成为无线传感器网络需考虑的问题。由于采取分簇,数据融合的思想,LEACH协议有着较高的路由效率,但在实际应用,尤其是大规模网络中,仍存在负载不均衡等问题。本文主要分析了LEACH协议的基本思想及优缺点,随后针对大规模的网络环境对其分簇算法进行改进。前人提出一种有效的方法计算最优簇首个数,本文推算出适合本文中网络环境的公式并加以应用。本文用NS2进行仿真,仿真后的结果表明,改进后的分簇算法更为有效,延长了网络寿命,增大了网络传送数据量。 关键词:无线传感器网络;路由协议;LEACH;分簇思想 Research on Routing Protocol of LEACH in WSN Shen Y uanyi Dept. of Information and Telecommunication,NUPT ABSTRACT:Nowadays, wireless sensor network has become a hot spot of 21st century because of its wide application on military, economy and human life. On the condition that the energy of a sensor node is limited, how to improve the routing efficiency and expand the network’s lifespan has been an important issue to consider. LEACH maintains quite high routing efficiency for its idea of clustering and data gathering. But in practical, it still has problems such as load unbalance especially in large scale network. The article mainly analyses the basic idea of LEACH, the benefits and drawbacks of it and later introduce an improvement on clustering algorithm according to large scale network. Key words:WSN;routing protocol; LEACH; clustering 1LEACH协议介绍与分析 1.1 LEACH算法思想 算法基本思想[2]是:以循环的方式随机选择簇头节点,将整个网络的能量负载平均分配到每个传感器节点中,从而达到降低网络能源消耗、提高网络整体生存时间的目的。LEACH在运行过程中不断的循环执行簇的重构过程,每个簇重构过程可以用回合的概念来描述[3]。每个回合可以分成两个阶段:簇的建立阶段和传输数据的稳定阶段。 1.2 LEACH算法的分析 LEACH协议的优点[4]有: (1)LEACH 通过减少参与路由计算的节点数目,减少了路由表尺寸。(2)LEACH协议是一种分簇路由协议,降低了非簇首节点的任务复杂度,不必对通信路由进行维护。(3)协议不需要周期性的传输数据。(4)在给定的时间间隔后,协议重新选举簇首节点,以保证无线传感器网络获取同意的能量分布。 由于LEACH算法是建立在一些假设上,所以在实际应用中LEACH协议存在一些问题:(1)在LEACH协议中,簇头的选举是随机产生的,这样的随机性可能会导致簇头

LEACH协议簇头

《单片机原理与接口技术》期中论文 论文题目 LEACH协议簇头 选择算法的改进 姓名 学号 学院电气工程学院 专业班级 2008级通信工程

目录 引言................................. 错误!未定义书签。 1 LEACH协议 .......................... 错误!未定义书签。 LEACH 协议介绍.................... 错误!未定义书签。 LEACH 协议的能量损耗模型.......... 错误!未定义书签。 LEACH 的不足在于:................ 错误!未定义书签。 LEACH 协议的优化.................. 错误!未定义书签。 基本思想....................... 错误!未定义书签。 改进细节........................ 错误!未定义书签。 2 簇头选择算法的改进LEACH-H ........... 错误!未定义书签。 簇头初选........................... 错误!未定义书签。 簇头调整过程....................... 错误!未定义书签。 3仿真结果 ............................ 错误!未定义书签。 4仿真分析 ............................ 错误!未定义书签。 5结束语 .............................. 错误!未定义书签。参考文献 ............................. 错误!未定义书签。

Ubuntu安装ns-2.35及leach协议安装

Ubuntu 13.10下安装ns-2.35及leach协议安装 powered by Hong Sheng , Jiangsu university ,Zhenjiang 583301743@https://www.sodocs.net/doc/9c10470266.html, Tue Nov 25 , 2013 之所以选择基于linux的操作系统ubuntu来安装ns2,是因为我个人特别讨厌Microsoft 开发的基于windows的cygwin软件,此软件安装的时候不仅有各种错误,UI也不够友好。而,有关ubuntu的安装,大家可以自行baidu或google之。下面只讲解ns-2.35和leach协议的安装过程。 1. Ubuntu 13.10下ns- 2.35安装 step 1:下载ns2.35,https://www.sodocs.net/doc/9c10470266.html,/s/1h8rj0#dir/path=%2FNS解压,放在home/xx下,xx是你的用户名 step 2:更新源包,终端输入:sudo apt-get update step 3:安装依赖包 sudo apt-get install tcl8.5-dev tk8.5-dev sudo apt-get install build-essential autoconf automake sudo apt-get install perl xgraph libxt-dev libx11-dev libxmu-dev step 4:修改ns-allinone-2.35中ls.h文件的代码 将void eraseAll() { erase(baseMap::begin(), baseMap::end()); } 改为: void eraseAll() { this->erase(baseMap::begin(), baseMap::end()); } step 5:sudo ls /usr/bin/gcc* //查看系统已经安装的gcc版本。Ubuntu 13.10默认安装了gcc-4.8 //和gcc-4.8版本的,如果是其他版本的linux操作系统且没有安装 //高于4.0版本的gcc/g++。则需要手动安装gcc/g++-4.8 sudo apt-get install gcc-4.8 g++-4.8 // 对于Ubuntu 13.10,此项是非必须的 sudo export CC=gcc-4.8 sudo export CXX=g++-4.8 //CC和CXX是全局变量,用来指定make将会用哪个版本的gcc/g++编译器生成 //makefile文件。如果没有这一步,保证你会makefile失败!!!因为,在ns-2.35文件夹//下的makefile.in 中要求配置全局变量。 echo $CC echo $CXX //查看全局变量导入成功了没有,如果成功,则执行 sudo ./install //开始进行安装,大概等5分钟左右。 ....... 出现以下的内容,每个人的/home/xx/不同,我的用户名是nan,所以,显示了以下信息。 Ns-allinone package has been installed successfully. Here are the installation places: tcl8.5.10: /home/nan/ns-allinone-2.35/{bin,include,lib} tk8.5.10: /home/nan/ns-allinone-2.35/{bin,include,lib} otcl: /home/nan/ns-allinone-2.35/otcl-1.14 tclcl: /home/nan/ns-allinone-2.35/tclcl-1.20 ns: /home/nan/ns-allinone-2.35/ns-2.35/ns nam:/home/nan/ns-allinone-2.35/nam-1.15/nam xgraph: /home/nan/ns-allinone-2.35/xgraph-12.2 gt-itm: /home/nan/ns-allinone-2.35/itm, edriver, sgb2alt, sgb2ns, sgb2comns, sgb2hierns

LEACH协议的MATLAIB仿真代码

Matlab Code for LEACH NodeNums = 100; % the num of node AreaR = 100 ; % the area of simulate NodeTranR=10; % the transit Radius Elec=50 * 10^(-9); % Eamp=100*10^(-12); Bx=50; % The Postion of Baseation By=175; MaxInteral =700; % the leach simulate time Pch=0.05; % the desired percentage of cluster heads InitEn=0.5; % the init energy of all node Tr=30; TDMA=100; Kbit=2000; % the bits of a node transmiting a packet every time BandWitch = 1*10.^(6); % Channel Bandwitch TOS_LOCAL_ADDRESS = 0; for i=1:(MaxInteral) AliveNode(i)=NodeNums; AmountData(i)=0; end sym alldata; alldata=0; LAECH = zeros(1,MaxInteral); LAENO = zeros(1,MaxInteral); for i=1:1:NodeNums EnNode(i)=InitEn; % the init energy of all node StateNode(i)=1; % the State of all node 1: alive 0:dead ClusterHeads(i)=0; % the Set of Cluster Head ,1: cluster head 0 :node Rounds=0; % the round end Threshold=0; % the threshold of node becoming a cluster-head Node.x=AreaR*rand(1,NodeNums); % the position of node Node.y=AreaR*rand(1,NodeNums); Node.c=zeros(1,NodeNums); Node.d=zeros(1,NodeNums); Node.l=zeros(1,NodeNums); Node.csize=zeros(1,NodeNums); Node.initclEn=zeros(1,NodeNums); % for i=1:NodeNums % Node.c(i)=0; % the Cluster head of node

SEP协议

1 SEP:A Stable Election Protocol for clustered heterogeneous wireless sensor networks G EORGIOS S MARAGDAKIS I BRAHIM M ATTA A ZER B ESTAVROS Computer Science Department Boston University gsmaragd,matta,best@https://www.sodocs.net/doc/9c10470266.html, Abstract—We study the impact of heterogeneity of nodes, in terms of their energy,in wireless sensor networks that are hierarchically clustered.In these networks some of the nodes become cluster heads,aggregate the data of their cluster members and transmit it to the sink.We assume that a percentage of the population of sensor nodes is equipped with additional energy resources—this is a source of heterogeneity which may result from the initial setting or as the operation of the network evolves. We also assume that the sensors are randomly(uniformly) distributed and are not mobile,the coordinates of the sink and the dimensions of the sensor?eld are known.We show that the behavior of such sensor networks becomes very unstable once the?rst node dies,especially in the presence of node heterogeneity.Classical clustering protocols assume that all the nodes are equipped with the same amount of energy and as a result,they can not take full advantage of the presence of node heterogeneity.We propose SEP,a heterogeneous-aware protocol to prolong the time interval before the death of the?rst node(we refer to as stability period),which is crucial for many applications where the feedback from the sensor network must be reliable. SEP is based on weighted election probabilities of each node to become cluster head according to the remaining energy in each node.We show by simulation that SEP always prolongs the stability period compared to(and that the average throughput is greater than)the one obtained using current clustering protocols. We conclude by studying the sensitivity of our SEP protocol to heterogeneity parameters capturing energy imbalance in the network.We found that SEP yields longer stability region for higher values of extra energy brought by more powerful nodes. I.I NTRODUCTION Motivation:Wireless Sensor Networks are networks of tiny, battery powered sensor nodes with limited on-board process-ing,storage and radio capabilities[1].Nodes sense and send their reports toward a processing center which is called“sink.”The design of protocols and applications for such networks has to be energy aware in order to prolong the lifetime of the network,because the replacement of the embedded batteries is a very dif?cult process once these nodes have been deployed.Classical approaches like Direct Transmission and Minimum Transmission Energy[2]do not guarantee well balanced distribution of the energy load among nodes of the sensor https://www.sodocs.net/doc/9c10470266.html,ing Direct Transmission(DT),sensor nodes transmit directly to the sink,as a result nodes that are far away from the sink would die?rst[3].On the other hand, using Minimum Transmission Energy(MTE),data is routed This work was supported in part by NSF grants ITR ANI-0205294,EIA-0202067,ANI-0095988,and ANI-9986397.over minimum-cost routes,where cost re?ects the transmission power expended.Under MTE,nodes that are near the sink act as relays with higher probability than nodes that are far from the sink.Thus nodes near the sink tend to die fast.Under both DT and MTE,a part of the?eld will not be monitored for a signi?cant part of the lifetime of the network,and as a result the sensing process of the?eld will be biased.A solution proposed in[4],called LEACH,guarantees that the energy load is well distributed by dynamically created clusters,using cluster heads dynamically elected according to a priori optimal probability.Cluster heads aggregate reports from their cluster members before forwarding them to the sink.By rotating the cluster-head role uniformly among all nodes,each node tends to expend the same energy over time. Most of the analytical results for LEACH-type schemes are obtained assuming that the nodes of the sensor network are equipped with the same amount of energy—this is the case of homogeneous sensor networks.In this paper we study the impact of heterogeneity in terms of node energy.We assume that a percentage of the node population is equipped with more energy than the rest of the nodes in the same network—this is the case of heterogeneous sensor networks.We are motivated by the fact that there are a lot of applications that would highly bene?t from understanding the impact of such heterogeneity.One of these applications could be the re-energization of sensor networks.As the lifetime of sensor networks is limited there is a need to re-energize the sensor network by adding more nodes.These nodes will be equipped with more energy than the nodes that are already in use,which creates heterogeneity in terms of node energy.Note that due to practical/cost constraints it is not always possible to satisfy the constraints for optimal distribution between different types of nodes as proposed in[5]. There are also applications where the spatial density of sen-sors is a constraint.Assuming that with the current technology the cost of a sensor is tens of times greater than the cost of embedded batteries,it will be valuable to examine whether the lifetime of the network could be increased by simply distribut-ing extra energy to some existing nodes without introducing new nodes.1 1We also study the case of uniformly distributing such extra energy over all nodes.In practice,however,it maybe dif?cult to achieve such uniform distribution because extra energy could be expressed only in terms of discrete battery units.Even if this is possible,we show in this paper that such fair distribution of extra energy is not always bene?cial.

Leach协议

目录 一、Leach协议与NS的关系 (2) 二、算法设计思想 (3) 三、簇头建立算法流程图 (4) 四、难点解决 (6) 五、算法运行结果分析 (9) 参考文献 (9)

一、Leach协议与NS的关系 为了实现leach 协议,对ns进行扩展。在ns中增加了一个事件驱动模拟器支持模拟无线传感器网络协议。这些扩展包括MAC协议,用于计算和交互的能量分配模型和leach协议的体系结构。 网络拓扑结构可以通过简单的Nodes, Links, Agents和Applications 描述。Nodes相当于网络中的终端主机, Links 是用于Nodes交互的连接器, Agent用来实现不同网络协议,是支持分组产生和丢弃的节点。Applications 用来产生数据和实现不同的应用函数。一旦网络拓扑结构建立起来后,模拟通过启动节点上的Applications运行。 为了在ns中支持无线传感器网络,在ns中增加了 mobile nodes, MAC 协议和信道传播模型Channel 。 Applications类的头文件用Tcl语言写的,节点中的其他函数功能用C++语言写成的。 数据包的发送过程: Applications创建数据包(data packets),然后发送给Agent. Agent执行协议栈中运输层和网络层的功能,将数据包发送给CMUTrace,。 CMUTrace将packets的统计数据写到trace 文件,然后将packets发至Connector。Connector将数据包传送给用于数据链路处理的链路层(LL).经过一小段时间的延迟后,数据包由LL发送给Queue缓冲队列。如果是还没有传送过的数据包,Queue将以队列进行存储。然后Queue将数据包出队列,发送到MAC层。然后开始运行MAC(媒体访问控制)协议。最终,packets被发送到网络接口层(Network Interface),网络接口层将packets加上正确的传输能量,然后将packets发送到Channel. Channel将packets进行拷贝,并发往连接信道的每一个节点。 发送过程可参考如下图1 数据包的接收过程: 数据包被节点的网络接口接收,并被向上传送至MAC层,Link-Layer, Connector, CMUTrace, 和Agent 函数. Agent 对数据包进行判定,并将数据包到达的信息通知给Application. 接收过程与发送过程传输的路径相反。

相关主题