canoe入门教程_canoe编程

canoe入门教程_canoe编程转自:https://www.cnblogs.com/fengliu-/p/7844072.htmlCANOE入门(一)CANoe是Vector公司的针对汽车电子行业的总线分析工具,现在我用CANoe7.6版本进行介绍,其他版本功能基本差不多。硬件我使用的是CANcaseXL.1,CANoe软件的安装很简单,先装驱动,再装软件。安装完成,插上USB,连接硬件,这样在控制面板中,…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

转自:https://www.cnblogs.com/fengliu-/p/7844072.html

CANOE入门(一)

CANoe是Vector公司的针对汽车电子行业的总线分析工具,现在我用CANoe7.6版本进行介绍,其他版本功能基本差不多。

硬件我使用的是CAN case XL.

1,CANoe软件的安装很简单,先装驱动,再装软件。安装完成,插上USB,连接硬件,这样在控制面板中,Vector Hardware 进行查看

image

通过查看信息可知,CANcaseXL中的两个piggy,一个是251(高速CAN),一个是7269(LIN),另外常用的还有1054(低速CAN,或称容错CAN),因为CANcaseXL中只能支持两路通讯,这样piggy可以自由组合

2,硬件连接正常,打开CANoe软件

File->New Configuration 可以选择新建工程的模版,我们这里选择CAN_500kBaud.tcn,这样新建了波特率为500K CAN工程,可以File->Save Configuration,进行保存

3,接下来就要使用CAN db++ Editor工具对总线网络节点,消息,信号,进行定义了。

点击工具栏的这个图标 tmp5B ,或 开始菜单中找这个工具启动

启动后,File->Create Database,选择CANTemplate.dbc,选择目录及文件名,进行保存

tmp5F

 

 

 

 

右键 Network nodes->New ,进行网络节点的定义,这里只需要填写Name即可,例如:Node_A

然后添加Node_B,完成后如下图,这样在Network nodes目录下面添加出来两个节点

tmp66

 

节点添加完成后,下一步添加CAN消息,右键Messages->New,这是需要定义名称,ID,DLC等信息,如下:

tmp6F

然后在Transmitters页面,点击Add按钮,添加Node_A为发送节点,意思就是说,此消息是从Node_A节点发送出来的

tmp6A

 

其实还有一种方法就是,此时暂时不定义发送节点,然后直接以拖曳的方式拖曳到发送节点上,功能上是一样的

有了消息,消息里携带的东西自然是信号咯,那么我们开始创建一个信号

右键Signals->New,填写如下信息

tmp8C

信号当然要放到消息中咯,切换到Messages页面,Add 我们刚刚建立的Message_A,当然和上面一样,采用拖曳的方式从Signal到Message中建立关联也是可以的。

tmp88

上面信息中Intel模式和Motorola格式的区别如下:

tmp8A

 

 

 

 

 

用0和1来表示开关信号状态似乎还不是很直观,我们可以使用on和off来表示就好了,于是View->Value Tables,右键空白处->New,键入如下信息:

tmp8E tmp8F

 

 

 

定义好了之后,还需要跟信号进行关联。右键需要关联的信号->Edit Signal,Value Table 中关联刚才建立的那个Value Talbe项

tmp94

这样一个信号就完成了,另外还需要加一个类似的信号,可以点击Signal根目录,在右边选择Signal复制,及粘贴,然后双击复制好的Signal后,进行一些编辑,然后用上面方法关联Message即可快速建立第二个信号了,是不是很方便

继续添加第三个信号,Indicator_A,跟上面一样,但是我这个信号想放在Message的第二个字节的位置,怎么办?

其实很简单,有两种方法:第一种,右键已经关联好的,即在Message目录下的信号,Edit mapped signal,在弹出的对话框中的Startbit中填8,这样就这个信号就跑到该消息的第二个字节中了。第二种方法,右键该消息->Edit Message,在Layout页面中,拖动信号的色块进行移动

tmp99

tmp9A

tmp9C

 

 

 

以上Message_A消息及消息下所定义已经定义完成

tmp9E

如法炮制另外一个消息Message_B,完成后如下图。

tmpA1

下面创建环境变量,右键Environment variables

tmpAF tmpB7

 

陆续把其他环境变量加好,Indicator的Access属性为Write哦,加完如下:

tmpB8

数据库的定义这款基本上就OK了。保存后关闭CANdb++ Editor,回到CANoe主程序中。

请在Configuration->Options->Configuration Settings->Channel Usage 设置使用的通讯通道,因为这个只需要1路CAN,其他都设置为0就可以。

点这个选项页面tmpB9可出现Simulate Setup 界面

tmpBB

右键Databases->Add,把刚刚创建好的dbc给加载进来,之后再连线上右键->Insert Network Node

image

结果如下:

tmpBC

右键这个ECU模块->Configuration,在Network Node 选择Node_A,完成,然后添加Node_B

tmpBD

 

完成后如下图,这样dbc与CANoe的关联就好了。

tmpBE

4,界面设计

网络及相应的关系设置好之后,应该设计界面了,一个良好的界面可以直观的显示及控制各种信号。

界面设计工具有两种:一种是Panel Designer,新的界面设计工具,另外一种是Panel Editor是老的界面设计工具,无论采用何种工具设计的界面,都可以和CANoe很好的兼容,没有问题。下面我们先用第一种界面设计工具来完成界面的设计

点击工具栏的这个图标tmpE或File->Open Panel Designer,打开界面编辑器,界面如下:

tmp11

 

 

保存一下该界面,起名为Panel_A,一个空的界面上可以放置右上边若干组件。放置好之后,选中界面上的组件的时候,右下侧回显示当前选中的组件的属性,可以更改相应的大小位置等,但最重要的是Symbol属性,这里要说一下,每个界面组件也都需要与CANoe关联,否则单纯的界面是没有任何意义的,关联主要是信号和环境变量,在Symbol属性的Symbol Filter属性中可以进行选择,我们这里关联的是环境变量,所以选择Environment Variable,然后再点击上面的Symbol属性,然后在弹出的页面中选择相应关联的变量

tmp1F

完成后可以按同样的方法设计Panel_B,也可以Save As 的方法快速建立同样的Panel但是与环境变量的关联和界面的文字需要进行微调。这样两个Panel都已完成。也已经建立了与CANoe之间的关联。

5,CAPL编程

所有的前期准备工作和组装工作都已完成,现在需要编写程序使整个系统有机的运行起来。回到CANoe的Simulation Setup界面,然后点击Node_A模块的,像铅笔一样的图标tmp22,填写程序名称,这里Node_A,然后打开编程界面,完成以下程序。然后完成Node_B程序。小技巧:如果背不出具体的消息名称,信号名称或环境变量,可以右键程序空白处,你会得到意外的惊喜,试试看。

tmp3D

tmp3F

OK大功告成

6,运行

现在点击工具栏tmp40,运行程序。注意:tmp41这里表示实际的网络,所有的消息是发送到物理的网络上的,如果只是验证程序,设置成这样就可以了tmp43

完整运行结果如下:

tmp44

就是这样,一步一步的,我们完成了第一个完整的CANoe应用工程,虽然这只是入门第一步,但整个CANoe的开发流程基本涵盖,如果能跑出上面的运行结果,依然能够给我们很多的惊喜。我们需要这样的惊喜,因为这是我们继续前行的动力。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/222952.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 内网IP和公网IP的区别及作用

    内网IP和公网IP的区别及作用说明:本文仅是针对网络知识懵懂人事的一篇白话解说文,并非技术探讨及进阶文章,各位看官自行甄选;本文仅以ipv4为基础。使用网络的人必然会接触IP地址,ip地址又分内网(私有)ip和公网(外网)ip地址,那么他们之间的区别是什么?为什么要分为内网和外网ip?何时使用哪种ip今天我就用大白话的形式,给大家举一个例子,希望能对各位对于ip有一个初步的了解。拿一个家庭来举例,一般你的路由器以内,就是内网,并且路由器内连接的所有设备或终端都会被分配一个内网ip;反之,路由器及以外就是外网ip,这个外网ip通常

    2022年6月9日
    37
  • 浮点数 原理_浮点数存储原理

    浮点数 原理_浮点数存储原理1.什么是浮点数在计算机系统的发展过程中,曾经提出过多种方法表达实数。典型的比如相对于浮点数的定点数(FixedPointNumber)。在这种表达方式中,小数点固定的位于实数所有数字中间的某

    2022年8月4日
    7
  • vm虚拟机安装ubuntu_vmware安装虚拟机

    vm虚拟机安装ubuntu_vmware安装虚拟机所需环境:VMware12Fedora12镜像文件1、新建虚拟机 2、选择自定义下一步,其实典型也差不多读者有兴趣可以试一试 3、默认即可,这里可以改VM兼容性,比如建立vm8 4、选择稍后安装操作系统 5、操作系统选择linux,版本选择Fedora 6、默认即可,路径也可以自己设置 7、核心选两个 8、建议选择1G以上

    2022年9月16日
    1
  • Java是什么意思-给想要了解Java的朋友介绍Java

    Java是什么意思-给想要了解Java的朋友介绍Java许多人会比较好奇,Java是什么意思?或许听说过Java是一种编程语言,但也会不禁思考Java是干什么用的?今天我来给没有接触过计算机行业的同学们简单介绍一下Java。

    2022年7月7日
    27
  • phpstorm2021.5.1激活码[在线序列号]「建议收藏」

    phpstorm2021.5.1激活码[在线序列号],https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月19日
    44
  • WERTC-在Ubuntu中搭建ICE服务器

    WERTC-在Ubuntu中搭建ICE服务器1.ICE服务器介绍最近一段时间在做关于webrtc语音视频通话,网上免费的公开的STUN服务器可以用于测试,使用起来响应时间非常的慢,用起来不爽。作为一个有情怀的技术人员的我,就需要自己搭建了coturn服务器,现在分享给大家。前提先介绍一下ICE服务器,ICE服务器包含了STUN和TURN两部分,实际上我们就需要TURN服务器就可以进行P2P穿墙。coturn服务器是在turnserver上增加了部分高级特性(感谢项目作者,为我们提供了很好的环境)。coturn支持cp,udp,

    2022年4月30日
    45

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号