车载以太网

车载以太网

车载以太网(2023.3.17)

总说

《面向车载以太网的安全通信技术的研究与实现》张玲慧

  1. 出现的原因:随着高级驾驶辅助系统(ADAS)、混合动力汽车和电动汽车以及主动安全系统甚至是自动驾驶等新技术的出现,CAN的网络带宽及传输速度不能满足于汽车内部的庞大数据量的传输。

    现代社会对用车需求的变化,促使我们对车载通信网络的性能、安全性和舒 适性的要求不断提高,从而使现代汽车中集成了越来越多的 ECU,大大增加了其 结构复杂性和生产成本。

    以太网比CAN或FlexRay等传统汽车网络更适合新的技术。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3FmFZ1bY-1682521345030)(…/typro_photo/v2-346a5044933a6259200fe9735e395a16_720w.webp)]

  2. 汽车和非汽车行业的整合趋势是由博通(Broadcom)这样的公司主导的。

  3. ()从物联网的角度看,就是把汽车作为一个设备连接入网络。可以理解为是一个连通汽车与互联网的桥梁。

  4. ()要以车载以太网为媒介进行攻击,要了解两方面的特性:

    ​ 传统的网络攻击、汽车的电子结构。

汽车的电气结构

总线协议介绍(vector)

CAN总线传输系统

ECU点对点的连接,ECU的增加,成本与重量

CAN,节点与节点的连接,总线的开端,方便增加ECU,但是带宽受限

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PbCjqFkQ-1682521345031)(…/typro_photo/430BABFF750B5748B76F8B1CCDECB207.png)]

每个节点都有

Microcontroller(微处理器)与应用层的交互

CAN-Controller(CAN处理器)报文的分装,转化为二进制码,然后把二进制码传送给收发器

CAN-Transceiver(收发器)把二进制码转化为物理信号,can协议物理层定义的逻辑把信号转化为CAN-H和CAN-L两个电频

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EUqErDly-1682521345031)(…/typro_photo/CFD148CE0E3E16E7D17C4E33B6236BB5.png)]

数据链路层:数据的寻址:Broadcast Addressing广播式寻址(一对多)所有的节点都可以接收到发送的信息(不安全吧)

发的时候不做选择,都发;接受的时候就要做选择:CAN-controller中有Fliter可以对信息进行过滤

  • 总线访问机制(仲裁arbitration)
    1. 解决访问冲突:非破坏性的访问机制,先处理优先的,但不会丢失不优先的。(优先级的运算:

      访问冲突时,会逐位将每个bit进行&运算后,输送到总线,即0优先。)

    2. 优先级低的数据在检测到总线的数据和自己的数据不同时,会收到仲裁失败的回信,然后停止发送,stop transmission and changes to receive mode,其他相同的继续读取。

    3. 在输送完优先级高的数据后,上一轮没有发送出去的数据开始新一轮的仲裁。

    因此高位上的0越多,优先级越高。即数值越小

  • CAN Framing(报文结构)

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zXqlREXZ-1682521345032)(…/typro_photo/C02B156F554B2B3C64244A61E0EFDD08.png)]

    一个frame可以分为很多field

    1. SOF(start of frame) 1 bit

      (标志位)

      如果总线空闲就为1,否则为0;

      暗示一条信息的开始;

    2. ID(identifier) 11 bit

      用于判断优先级

    3. RTR(remote transmission request) 1 bit

      (标志位)

      区分data frame(0)和remote frame(1)

      remote frame中没有data field

    4. IDE(identifier extension)1bit

      (标志位)

      区分data frame in standard format(0)和data frame in extended format(1)

      扩展id在IDE位后增加了18位的extension id

      ID+IDE+RTR+(IDE)=arbitration

    5. r(在CAN里面是一个单纯的保留位)1 bit

    6. DLC(data length code and data field)4 bit

      数据段的长度;

      • 四个bit可以表示0~15的数字,但是标准CAN总线只有8位数据段,所以0-7正常表示data的大小,8-15都表示8个bit
      • CAN FD 的data字节长度扩展
    7. Data Field 8 bit

    8. CRC(cyclic redundancy check数据校验场)15 bit

      原理是

      1. 把从SOF到DATA的编码通过一个特定的计算得到一个十五位的校验码,发送的时候存储到CRC中。
      2. 接收数据时会再次进行计算,比对看数据是否被改变。
    9. DEL 1 bit

      固定为1,无特殊含义

    10. ACK(acknowledgment)

      • 对CRC的校验结果的反馈

      校验没问题返回(0)

      有问题返回(1)

      • 对于发送方而言,如果回流的ACK为一则表明数据异常,则终止数据的发送。
    11. DEL 1 bit

      固定为1,无特殊含义

    12. EOF 7 bit

    13. ITM 3 bit

      DEL+EOF+ITM=11bit,若有十一位的连续的1,则顺利发送数据,且表明数据的结尾

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1JN7uCgc-1682521345032)(…/typro_photo/A500B094CFAFA1A4D6EF915645950B75.png)]

    问:那么如果在数据段填满1是不是也有可能构成全1捏?这样不就提前结尾了吗

    bit stuffing

    只有从SOF场到CRC场进行位填充,所以进行位填充时有一个机制是只要有五位连续的0或1是便会插入一位插入位,避免这种现象的出现

    (在计算下一次五位时,先前的符号位也计算在其中)

  • data protection(数据安全)
    1. 检错机制
    • sender

      1. Bit monitoring(位监控)

        通过回流验证传输的01是否一致,不检查仲裁场与ACK场。

        仲裁场发1读0,是正常的,因为要靠这个来判断优先级,而0为显性。

        ACK场,读到1,则有问题,检测失败。

      2. ACK check

        读到一就错误

    • receiver

      1. stuff check

        在SOF到CRC场之间出现六个连续的1就报错,

      2. form check

        DEL与EOF一般都为1

      3. CRC check

        进行运算,检查CRC

      4. ACK-bit monitoring

        接收方回复ACK位时有必要再检查一次回流的01是否一致

        [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CjwuF9Gy-1682521345032)(…/typro_photo/4C1CCF90FD33746EE15CA63D1375A728.png)]

    1. 错误信号

      • 只要检测到错误,除了CRC之外都会,马上发送错误帧

      • 错误帧包括主动错误帧(active)和被动错误帧(passive)

      主动错误帧会发送六个0,和八个1到总线(**1.**六个连续相同的会报错 2.八个1 加ITM的三个1,凑11个1,开启下一次的发送 3.0为显性,先处理)

      被动错误帧大差不差,就是连续发六个1,可能被覆盖。

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dQvbsPTZ-1682521345033)(…/typro_photo/E6ABF9893FE83F2EEA5C14D0F83268F4.png)]

    2. 错误的界定

      • TEC(发送错误计数器)与REC(接受错误计数器)的大小来判断错误状态。
      • 计数器的加减原则:成功接收或发送一次报文,就减一。如果首次检测出错误帧加8,重复检测出错误帧加一。有一些特殊情况下不发生变化,得参考标准看
      • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZJ2TRZ3X-1682521345034)(…/typro_photo/FB002144427CC40EDF3B7B02F0CEE846.png)]
      • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vSPSo8Br-1682521345037)(…/typro_photo/A6AFA08506296766119F3EA6A0FF2871.png)]
CAN FD
  • 出现原因:can能支持的报文传输效率太低

  • 传输速率提高,可变速率传输(最大能支持八兆的通讯速率),仲裁段慢,数据段快。

  • 数据场的扩充,ECU的物理层硬件变化较小,方便推广。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NIKLwnDx-1682521345039)(…/typro_photo/QQ%E5%9B%BE%E7%89%8720230320200103.jpg)]

  • frame的类型

    1. 标准帧和扩展帧。

    2. FDF(FD format)

      判断是不是CAN FD报文(1)。

    3. BRS(Bit Rate Switch)

      决定是否进行传输速度切换,当(0)时,数据传输速度不变(相对于仲裁段),当(1)时,数据传输速度加快,知道ACK应答结束。

    4. ESI(Error State Indicator)错误标志指示位

      (1)被动错误,(0)主动错误

    5. DLC(915表示1264之间离散取值)

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0KpuF1xh-1682521345040)(…/typro_photo/QQ%E5%9B%BE%E7%89%8720230320200114.jpg)]

    6. CRC

      17位校验——小于等于16字节

      21位校验——大于16字节

      会将动态填充计算在内

    7. 位填充

      • 在CRC的前四位添加Stuff bit Counter(位填充计数)

        [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3IrDYgDA-1682521345041)(…/typro_photo/QQ%E5%9B%BE%E7%89%8720230320200109.jpg)]

      • CRC中增加固定位置的填充位

子总线系统
LIN(local Interconnect Network)
  • 是can总线上的有益补充(CAN的小弟)

  • LIN总线的应用

    1. 结构简单,是一个便宜的可以用于一些不重要的场合来节约成本的。
    2. 主要用于自动空调系统,后视镜控制,转向灯,车门,顶窗,刮水器,洗涤器的控制传输。
  • LIN总线的特点

    1. 单线式总线,由于车辆搭铁也当成数据传输接地连接,不需要屏蔽线(汽车电气系统采用单线制式,蓄电池的一个电极接到车体上,俗称“搭铁”)。
    2. 线束一般是紫白色
    3. 传输速率低(20kbit/s)
    4. 价格实惠,好实现
  • LIN总线的结构特点

    1. 分为三部分:LIN上级控制单元、LIN从属控制单元、单根导线

    2. 主控制单元:

      • 1. 功能主控制单元连接到CAN总线上
      • 监控数据传输过程和数据传输速率,发送信息标题。
      • LIN主控制单元的软件内已经设置了一个周期,信息发送到LIN总线上多少次
      • 起到了LIN总线与CAN总线的翻译官的角色
      • 对其连接的LIN从控制单元进行自诊断
      • 2. 信号主控制单元:每条信息的开始处都通过LIN总线的信息主控制单元发送一个信息标题。(信息标题包括同步间隔、同步区域、标识符)
    3. LIN从控制单元

      • 单个的控制元件、传感器、执行元件都是从控制元件。
      • 接收,传递或者忽略主控制单元发送的信息标题相关的数据
      • 可以通过叫醒信号,来唤醒主控制系统
      • 只能按照主控制系统的要求来和其他子系统进行交流
  • LIN总线的数据传输

    1. LIN总线的数据格式

      信息标题:

      • 同步暂停区
      • 同步分界区
      • 同步区
      • 识别区

      信息内容:

      • 从控制单元回应信息
      • 主控制单元命令信息
    2. LIN总线信息的顺序

      LIN主控制单元的软件内已经设置了一个顺序,

    3. LIN总线防盗功能

      • 主控制单元对所有信息进行全面监控
      • 从控制单元只能回应
      • 因此不能通过LIN总线从车外打开车门
  • LIN总线的自诊断

    1. 利用故障检测仪VAS5051
    2. 故障分析
网关与诊断系统
  • 网关

    1. 主要作用就是作为网络之间的翻译官

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rmz5De3L-1682521345042)(C:/Users/24388/AppData/Local/Temp/WeChat%20Files/e34239487aa6f269f2a98f5b8d2969e.jpg)]

      可以将网关比喻成车站,而其他总线为速度不同的车,要传输的数据就像是乘客,在网关处实现换乘。

  • 诊断总线

光学总线系统
  • 光学传输的简介

    1. 信号的光学传输
    2. 光学传输的优点
  • 光学传输的系统的结构

    1. 光学传输控制单元的内部结构
    2. 光敏二极管
    3. 光导纤维
  • 光导纤维的结构以及光波传输

    1. 光导纤维的结构

    2. 光波在纤维里的传播

    3. 专用插头

    4. 光纤端面

    5. 光信号的发送过程

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YLOKITQc-1682521345043)(C:/Users/24388/AppData/Local/Temp/WeChat%20Files/ec4413243fb47cca1805e439ffc0300.jpg)]

  • MOST总线系统

    MOST 总线生来就是为车载多媒体数据服务的,而以太网则不同,以太网则是先制定相关的传输协议,不针对特定应用。

    作为汽车四大总线之二的 CAN 和 LIN 由于传输带宽的原因,也不便用于多媒体数据的传输。

    MOST 就诞生了并广泛应用于车载多媒体数据的传输。

    MOST总线 参考

以太网与Flexray总线

FlexRay 介绍 参考

传统的LIN、CAN总线已不堪重负且无法满足未来高带宽的要求,CAN FD只是对传统CAN总线的一种扩展和过渡

如果对带宽的要求不大,则使用CANFD足矣,但是如果要迁移到对带宽要求很高的场景时,则需要Flexray出场了。

FlexRay通讯特点及拓扑

FlexRay是专为车内局域网设计的一种具备故障容错的高速可确定性车载总线系统,采用了基于时间触发的机制且具有高带宽、容错性好等特点,在实时性、可靠性及灵活性方面都有很大的优势,非常适用于安全性要求较高的线控场合及带宽要去高的场合。

1、高速率和容错性

FlexRay支持两通道,可通过一个或两个通道进行数据传输,单个通道的数据传输速率可达10Mbps,通过两通道平行传输数据时可达20Mbps。也可通过双通道传输相同的数据(真实情况大多应用的方式),当其中某个通道出现故障或信息有误时,另一通道可继续正常传输,并影响整个网络的数据通讯,通过这种冗余备份实现很好的容错性。

2、确定性

FalexRay是一种时间触发式的总线系统,符合TDMA(Time Division Multiple Access)的原则,因此在时间控制区域内,时隙会分配给确定的消息,即会将规定好的时间段分配给特定的消息,时隙是经固定周期重复,也就是说信息在总线上的时间可以被预测出来,因此保证了其确定性。这就意味着控制信号是根据预定义的时间进度传输的,无论系统外部发生什么情况,都不会产生计划外事件。在确定性算法中,始终会预先定义正确的输出结果,这些结果是基于特定输入的。

img

img

3、灵活性
FlexRay除了支持时间触发式通讯外,还可通过事件触发来进行数据的传输,例如对于时间要求不高的信息,可配置在事件控制区域内传输,可形成以时间触发为主,兼顾事件触发的灵活特性。

img

此外,FlexRay的拓扑是多样的,有线型、星型和混合型三大类,再结合单通道和双通道的使用(FlexRay的两个通道可相互独立实现,所以两个通道可采用不同的拓扑结构,如一个通道为主动星型拓扑,另一个为总线拓扑结构),所以最终组合的结果可形成很多种。再例如既有点对点的线行结构和多节点的线性结构,还有增加冗余性的双通道星型拓扑结构等等。

img

img

FlexRay数据传输

FlexRay规范定义了OSI参考模型中的物理层和数据链路层,每个FlexRay节点通过一个FlexRay Controller和两个FlexRay Transceivers(用于通道冗余)与总线相连,FlexRay Controller负责Flexray协议中的数据链路层,FlexRay Transceivers则负责总线物理信号接收发送。

img

FlexRay可采用屏蔽或不屏蔽的双绞线,每个通道有两根导线,即总线正(Bus-Plus,BP)和总线负(Bus-Minus,BM)组成。采用不归零法(NRZ,Non-Return to Zero)进行编码。

可通过测量BP和BM之间的电压差识别总线状态,这样可减少外部干扰对总线信息的影响,因这些干扰同时作用在两根导线上可相互抵消。每一通道需使用80~110欧的终端电阻。将不同的电压加载在一个通道的两根导线上,可使总线有四种状态:Idle_Lp(Low power)、Idle、Data_0和Data_1。

显性:差分电压不为0V(Data_0和Data_1)

隐性:差分电压为0V(Idle_Lp、Idle)

img

FlexRay帧格式

FlexRay帧由起始段、有效负载段和结束段三大部分构成。

img

1、起始段:由40个bits构成(5 bytes),包括

-Status Bits-5bits

-Frame ID-11bits

-Payload Length-7 bits

-Hedaer CRC-11bits

-Cycle count -6 bits

其中5bits的Status Bits包含四类指示符:净荷指示位(Payload Preamble Indicator)、空帧指示位(Null Frame Indicator-指明该帧是否为无效帧)、同步帧指示位(Sync Frame Indicator-指明该帧是否为一个同步帧)和起始帧指示位(Startup Frame Indicator-指明该帧是否为起始帧)。

Frame ID:数据标志符,定义了在时间窗口(Slot)中发送的号码,每个通道数据标志符需唯一。

Payload Length:工作区长度,指示该帧含有的有效数据长度,在每个Cycle下的静态区中,每帧的数据长度是相同的,在动态区的长度则是不同的。

Hedaer CRC:用于起始段冗余校验,检查传输中的错误。

Cycle count:循环计数器。

2、有效负载段

包含要传输的有效数据,有效数据长度最大254个Bytes(0~127个Words),

3、结束段

包含24 Bits的检验域,由起始段和有效负载段计算得出的CRC校验码,计算CRC时,根据网络传输顺序从保留位到有效负载段的最后一位放到CRC生成器中进行计算。

FlexRay编码

编码的过程实际就是对要发送的数据进行一定的打包处理,即在节点可传输带有主计算机数据的数据前需将其转换为“比特流(Bitstream)”。

img

img

RxD为接收信号,TxD为发送信号,TxEN为通讯控制器请求数据,对于静态帧和动态帧分别按照如下方式进行编码。

img

其中TSS(传输启动序列):用于初始化节点和网络通讯的对接(5~15位的低电平);FSS(帧启动序列):用于补偿TSS后第一个字节可能出现的量化误差(一位高电平);BSS(字节启动序列):给接收节点提供数据定时信息(一位高电平并紧随一位低电平);FES(帧结束序列):用于标识数据帧最后一个字节序列结束(一位低电平紧随一位高电平)。

对于动态区数据还额外需要DST(动态段尾部序列):仅用于动态帧传输,用于表明动态段中传输时动作点的精确时间防止接收段过早检测到网络空闲状态(一位长度可变的低电平和高电平)。

将这些序列和有效位(MSB到LSB)组装起来完成了编码过程,最终构成在网络传播的比特流。

FlexRay通讯

FlexRay总线的通讯由通讯周期(Communication Cycle)构成,从总线启动到停止都在不断重复该通讯周期。每个通讯周期具有相同的可配置时间间隔,且每个通讯周期由静态段(Static Segment)、动态段(Dynamic Segment)、特征窗(Symblo Window)和网络空闲时间(Network Idle Time)四部分构成。

img

1、静态段(Static Segment)

静态段采用TDMA(Time Division Multiple Access)方式由固定的时隙(Slot)组成,不可更改且所有时隙大小一致。

img

img

img

img

因此每个节点可拥有一个或多个Slots,这样每个节点在每个通讯周期内都可在其所占有的Slot内发送,两个节点也可在不同的通道上共享同一Slot,单个Slot也可为空(即不被任何节点占用),所有的帧和Slots在静态段都具有相同的长度。单个Slot的长度由总线中最长的FlexRay Message决定,其包括四部分:Action Point Offset、FlexRay Frame、Channel Idle Delimiter(11个隐性位)和Channel Idle。

2、动态段(Dynamic Segment)

动态段采用FTDMA(Flexible Time Division Multiple Access)方式,由较小的时隙(Minislot)组成,可根据需要拓展变动,一般用于传输事件控制型消息。

img

img

img

img

在动态段每帧可能有不同的长度,动态时隙(Dynamic Slot)的长度依赖于帧的长度,只有空的Slot才是实际的一个Minislot的大小。

3、特征窗(Symblo Window)

用于传输特征符号,FlexRay的符号有三种:

-冲突避免符号:用于冷启动节点的通讯启动

-测试符号:用于总线的测试

-唤醒符号:用于唤醒过程的初始化

img

4、网络空闲时间(NIT-Network Idle Time)
用于时钟同步处理

如下是一个通讯示例:

img

FlexRay总结

从上面可看出,FlexRay相比传统LIN、 CAN和CAN FD要更复杂一些,因此不管对OEM还是供应商的能力要求势必提高不少,其次从传统总线技术向FlexRay迁移在成本及Effort上都要增加很多,普遍应用仍需要时间。

img

车联网

使用(socket CAN)与车辆通信

要攻击一辆车,就要先连上它的网

对socket CAN 的理解

CAN报文

img

数据帧

img

远程帧

img

错误帧

错误帧用于在接收和发送消息时检测出错误,通知错误的帧。错误帧由错误标志和错误界定符构成。
错误标志包括主动错误标志和被动错误标志两种。
主动错误标志:6个位的显性位,处于主动错误状态的单元检测出错误时输出的错误标志。
被动错误标志:6个位的隐性位,处于被动错误状态的单元检测出错误时输出的错误标志。
错误界定符由8个位的隐性位构成。
错误帧格式如下表示:
引用自:
原文链接:https://blog.csdn.net/Righthek/article/details/17515465

img

过载帧是用于接收单元通知其尚未完成接收准备的帧。过载帧由过载标志和过载界定符构成。过载帧格式如下表示:

img

位填充

位填充是为了防止突发错误而设定的功能。位填充的规则如下:

(1)5位连续相同电平之后,必须填充一位反向位,即不允许有6个连续相同位;

(2)SOF之前为总线空闲状态,不需要同步,因此不需要位填充;

(3)CRC之后为固定格式,不允许填充;

(4)由CAN控制器自动实现;

错误处理

(1)位填充错误;

在使用位填充的帧场内,结点如果检测到6个连续相同的位值,则产生位填充错误,在下一位开始时,该结点将发送一个错误帧。

(2)位错误;

在发送期间,结点检测到总线的位值与自身发送的位值不一致时,则产生位错误,在下一位开始时,该结点将发送一个错误帧。

(3)CRC错误;

接收结点计算的CRC码与数据帧本身自带的CRC码不一致,接收结点将丢弃该帧,并在ACK界定符之后发送一个错误帧。

(4)应答错误;

发送结点在ACK Slot位会发送隐性位,同时监听总线是否为显性位,如果是显性位,则表明至少一个节点正确收到该帧;如果是隐性位,将产生ACK错误,发送结点发送一个错误帧。

(5)格式错误;

发送结节在(CRC界定符、ACK界定符、帧结束EOF)固定格式的位置检测到显性位时,将发生格式错误,并发送一个错误帧。

Socket 机制

can-utils

can-utils是一套Linux专用的工具,使Linux能够与汽车上的CAN网络进行通信。通过这种方式,我们可以嗅探、欺骗和创建我们自己的CAN数据包,从而骗过车辆!

can-utils使用

配置can-utils

can-utils中的工具
  • 配置can口

     ip link set can0 type can bitrate 250000
     
     ip link set can0 up
    
  • 查询配置是否正确

    ip -details link show can0 (查询命令)
     
    以下是查询结果
    4: can0: <NOARP,UP,LOWER_UP,ECHO> mtu 16 qdisc pfifo_fast state UP mode DEFAULT group default qlen 10
        link/can  promiscuity 0 minmtu 0 maxmtu 0
        can state ERROR-ACTIVE (berr-counter tx 0 rx 0) restart-ms 0
              bitrate 250000 sample-point 0.875
    
    1. 显示、记录、生成和回放CAN流量的基本工具
    • candump:显示、过滤和记录CAN数据到文件中
    • canplayer:重放CAN日志文件
    • cansend:发送一个单帧
    • cangen:生成(随机)CAN流量
    • cansniffer:显示CAN数据内容的差异(只是11位CAN ID)。
    1. 通过IP套接字访问CAN
    • canlogserver:记录来自远程/本地主机的CAN帧
    • bcmserver:交互式BCM配置(远程/本地)。
    • socketcand:通过TCP/IP套接字使用RAW/BCM/ISO-TP套接字。
    1. CAN内核网关配置
    • cangw : 用于网络链接配置的CAN网关用户空间工具
    1. CAN总线测量和测试
    • canbusload : 计算和显示CAN总线负载
    • can-calc-bit-timing : 内核比特率计算的用户空间版本
    • canfdtest:全双工测试程序(DUT和主机部分)。
    1. 用于Linux的ISO-TP工具ISO15765-2:2016
    • isotpsend : 发送一个单一的ISO-TP PDU
    • isotprecv:接收ISO-TP PDU(s)。
    • isotpsniffer : "窃听 "ISO-TP PDU(s)
    • isotpdump:"窃听 "和解释CAN消息(CAN_RAW)。
    • isotpserver:用于简单的TCP/IP <-> ISO 15765-2桥接的IP服务器(ASCII HEX)。
    • isotpperf : ISO15765-2协议性能可视化
    • isotptun : 通过ISO-TP在CAN上创建一个双向的IP隧道
    1. 日志文件转换器 asc2log : 将ASC日志文件转换为紧凑的CAN框架日志文件
      log2asc : 将紧凑的CAN框架日志文件转换为ASC日志文件
      log2long : 将紧凑的CAN帧表示法转换为用户可读的。
    2. 串行线路纪律配置(用于slcan驱动)。 slcan_attach : 用于串行线CAN接口配置的用户空间工具
      slcand : 用于串行线CAN接口配置的守护程序
      slcanpty:为使用slcan ASCII协议的应用程序创建一个pty。
创建虚拟CAN

在linux上创建虚拟CAN,并简单执行一个CAN的读写程序_linux can_梅尔文.古的博客-CSDN博客

otpsend : 发送一个单一的ISO-TP PDU

  • isotprecv:接收ISO-TP PDU(s)。
  • isotpsniffer : "窃听 "ISO-TP PDU(s)
  • isotpdump:"窃听 "和解释CAN消息(CAN_RAW)。
  • isotpserver:用于简单的TCP/IP <-> ISO 15765-2桥接的IP服务器(ASCII HEX)。
  • isotpperf : ISO15765-2协议性能可视化
  • isotptun : 通过ISO-TP在CAN上创建一个双向的IP隧道
  1. 日志文件转换器 asc2log : 将ASC日志文件转换为紧凑的CAN框架日志文件
    log2asc : 将紧凑的CAN框架日志文件转换为ASC日志文件
    log2long : 将紧凑的CAN帧表示法转换为用户可读的。
  2. 串行线路纪律配置(用于slcan驱动)。 slcan_attach : 用于串行线CAN接口配置的用户空间工具
    slcand : 用于串行线CAN接口配置的守护程序
    slcanpty:为使用slcan ASCII协议的应用程序创建一个pty。
创建虚拟CAN

在linux上创建虚拟CAN,并简单执行一个CAN的读写程序_linux can_梅尔文.古的博客-CSDN博客

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>