jjzjj

CAN-TP 网络层参数解析(N_Ar,N_As,STmin,BS等)

汪汪队睡大覚 2023-05-16 原文

CAN-TP 网络层参数有N_As/N_Ar/N_Bs/N_Br/N_Cs/N_Cr/STmin/BS/,各个参数的含义下记两张图可以完整的体现,可以先试着理解下,下面将会分段进行解析。

 

首先需要明确几个概念

N_USData : 网络层数据

L_Data : 数据链路层数据

               ※数据链路层和网络层的层级关系可参照下记文档

                CAN-TP(15765-2协议)网络层协议解析

.req : 帧发送开始请求

.con : 帧发送完成确认

.ind : 帧接收完成指示

         ※  Send 侧的 .con 和Receiver侧的  .ind是一个时间点。

下面介绍每个参数的定义 

■N_As/N_Ar

N_As : Sender.req->Sender.con ,Sender 任意帧类型 从请求发送到发送完成 的时间间隔。

N_Ar : Receiver.Req->Receiver.con , Receiver 任意帧类型 从请求发送到发送完成 的时间间隔。

■N_Bs/N_Br

N_Bs 可理解为 Sender 从XXX 收到流控帧 的时间,XXX分为三种情况

1. Sender 从 发送完首帧(FF)到 收到流控帧 的时间

2. Sender 从 发送完连续帧(CF)到 收到流控帧 的时间

 3. Sender 从 收到流控帧(FC)(状态为Wait)到 收到下一个流控帧 的时间

 N_Br 可理解为 Receiver 从XXX 请求发送流控帧 的时间,XXX分为三种情况

1.Receiver 从 收到首帧(FF)到 请求发送流控帧 的时间

 2.Receiver 从 收到连续帧(CF)到 请求发送流控帧 的时间

  3.Receiver 从 发送完流控帧(FC)(状态为Wait) 到 请求发送下一个流控帧 的时间

■N_Cs/N_Cr

N_Cs 可理解为 Sender 从XXX 请求发送连续帧(CF) 的时间,XXX分为两种情况

1.Sender 从 收到流控帧(FC)到 请求发送连续帧(CF) 的时间

 2.Sender从 发送完连续帧(CF)到 请求发送下一包连续帧(CF) 的时间

 N_Cr 可理解为 Receiver 从XXX 收到下一个连续帧(CF) 的时间,XXX分为两种情况

1.Receiver 从 发送完流控帧(FC)收到连续帧(CF) 的时间

 2.Receiver 从 收到连续帧(CF)收到下一包连续帧(CF) 的时间

 

STmin

STmin 是Sender发送两包连续帧之间的最小间隔,单位为ms。

BS

Block Size 是 Sender 收到一包流控帧后,发送连续帧的个数,

0代表无限制,收到流控帧后可以一直发连续帧,知道数据发送完毕。

 

有关CAN-TP 网络层参数解析(N_Ar,N_As,STmin,BS等)的更多相关文章

  1. ruby-on-rails - 结合 meta_search 与 acts_as_taggable_on - 2

    我在开发的Rails3网站的一些搜索功能上遇到了一个小问题。我有一个简单的Post模型,如下所示:classPost我正在使用acts_as_taggable_on来更轻松地向我的帖子添加标签。当我有一个标记为“rails”的帖子并执行以下操作时,一切正常:@posts=Post.tagged_with("rails")问题是,我还想搜索帖子的标题。当我有一篇标题为“Helloworld”并标记为“rails”的帖子时,我希望能够通过搜索“hello”或“rails”来找到这篇帖子。因此,我希望标题列的LIKE语句与acts_as_taggable_on提供的tagged_with方法

  2. ruby-on-rails - 新 Rails 项目 : 'bundle install' can't install rails in gemfile - 2

    我已经像这样安装了一个新的Rails项目:$railsnewsite它执行并到达:bundleinstall但是当它似乎尝试安装依赖项时我得到了这个错误Gem::Ext::BuildError:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcheckingforlibkern/OSAtomic.h...yescreatingMakefilemake"DESTDIR="cleanmake"DESTDIR="

  3. ruby CSV : How can I read a tab-delimited file? - 2

    CSV.open(name,"r").eachdo|row|putsrowend我得到以下错误:CSV::MalformedCSVErrorUnquotedfieldsdonotallow\ror\n文件名是一个.txt制表符分隔文件。我是专门做的。我有一个.csv文件,我转到excel,并将文件保存为.txt制表符分隔的文件。所以它是制表符分隔的。CSV.open不应该能够读取制表符分隔的文件吗? 最佳答案 尝试像这样指定字段分隔符:CSV.open("name","r",{:col_sep=>"\t"}).eachdo|row|

  4. CAN协议的学习与理解 - 2

    最近在学习CAN,记录一下,也供大家参考交流。推荐几个我觉得很好的CAN学习,本文也是在看了他们的好文之后做的笔记首先是瑞萨的CAN入门,真的通透;秀!靠这篇我竟然2天理解了CAN协议!实战STM32F4CAN!原文链接:https://blog.csdn.net/XiaoXiaoPengBo/article/details/116206252CAN详解(小白教程)原文链接:https://blog.csdn.net/xwwwj/article/details/105372234一篇易懂的CAN通讯协议指南1一篇易懂的CAN通讯协议指南1-知乎(zhihu.com)视频推荐CAN总线个人知识总

  5. ruby - 如何通过 Rubocop 指示打开 & :read as argument to File. - 2

    我有这个代码File.open(file_name,'r'){|file|file.read}但是Rubocop发出警告:Offenses:Style/SymbolProc:Pass&:readasargumenttoopeninsteadofablock.你是怎么做到的? 最佳答案 我刚刚创建了一个名为“t.txt”的文件,其中包含“Hello,World\n”。我们可以按如下方式阅读。File.open('t.txt','r',&:read)#=>"Hello,World\n"顺便说一下,由于第二个参数的默认值是'r',所以这样

  6. ruby - 混帐 & ruby : How can I unset the GIT_DIR variable from inside a ruby script? - 2

    我编写了一个非常简单的“部署”脚本,作为我的裸git存储库中的post-updateHook运行。变量如下livedomain=~/mydomain.comstagingdomain=~/stage.mydomain.comgitrepolocation=~/git.mydomain.com/thisrepo.git(bare)core=~/git.mydomain.com/thisrepo.gitcore==addedremoteintoeachlive&stagegitslive和stage都初始化了gitrepos(非裸),我已经将我的裸仓库作为远程添加到它们中的每一个(名为co

  7. ruby-on-rails - 在 Ruby 或 Rails 中,hash.merge({ :order => 'asc' }) can return a new hash with a new key. 什么可以返回带有已删除键的新散列? - 2

    在Ruby(或Rails)中,我们可以做到new_params=params.merge({:order=>'asc'})现在new_params是一个带有添加键:order的散列。但是是否有一行可以返回带有已删除key的散列?线路new_params=params.delete(:order)不会工作,因为delete方法返回值,仅此而已。我们必须分3步完成吗?tmp_params=paramstmp_params.delete(:order)returntmp_params有没有更好的方法?因为我想做一个new_params=(params[:order].blank?||para

  8. ruby - Formtastic,拥有 :as input type - 2

    如何将自己的字段类型添加到formtastic中?例如,我需要一个自定义的日期时间输入,我想要这样的东西::my_date%>这显然是行不通的,因为formtastic不知道:my_date(只有:boolean、:string、:datetime等等...)但是我怎样才能添加额外的输入类型呢? 最佳答案 您需要添加自定义输入法:classMyCustomFormtasticFormBuilder这非常适合新的HTML5输入类型。你可以这样使用它:MyCustomFormtasticFormBuilderdo|f|%>:my_dat

  9. ruby-on-rails - 将 acts_as_list 与 has_many 一起使用 :through in rails - 2

    我有一个Rails应用程序,我正在尝试使用acts_as_list插件设置可排序列表。数据库中的位置字段正在更新,但是在呈现页面时,不考虑顺序。我想我是在寻求帮助。这是我的模型...classQuestionMembership:question_membershipsendclassQuestion:question_membershipsacts_as_listend还有给我列表的草率View代码...>true)%>拖放用于重新排序。数据库中QuestionMembership对象的位置值更新,页面实际上正确显示重新排序。问题是在页面重新加载时,它默认返回到它感觉的任何顺序。我认

  10. ruby - 类型错误 : can't convert String into Integer - 2

    我有代码:classScenedefinitialize(number)@number=numberendattr_reader:numberendscenes=[Scene.new("one"),Scene.new("one"),Scene.new("two"),Scene.new("one")]groups=scenes.inject({})do|new_hash,scene|new_hash[scene.number]=[]ifnew_hash[scene.number].nil?new_hash[scene.number]当我启动它时出现错误:freq.rb:11:in`[]'

随机推荐