版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
CANoe入门Stepbystep系列(一)基本应用
CANoe是Vector公司针对汽车电子行业总线分析工具,当前我用CANoe7.6版本进行简介,其她版本功能
基本差不多。
硬件我使用是CANcaseXL.
1,CANcu软件安装很简朴.先装驱动,再装软件八安装完毕,插卜IJSB,连接硬件,这样在捽制面板中,Vector
Hardware进行杳看
VectorHardvareConfig
FileEditToolsWindowHelp
d圣HardwareDetails
图上
1ytual8NBu$1^DeviceCANcaseXL1
B语图醒曜SHU
TypeUSB2.0
由・CANpiggy251mag(Highspeed)
Serialnumber
+■LINpiggy7269mag
Driverversion7.3.18
|+£2Application
Firmwareversion7.3.18
£iGeneralinformation
E囹LicenseCapabilitiesCAN,LIN,J1708
⑷MultipledevicemodeNO
畲ReceivelatencyFast
vectio?
通过查看信息可知,CANcaseXL中两个piggy,一种是251(高速CAN),一种是7269(LIN),此外惯
用尚有1054(低速CAN,或称容错CAN),由于CANcaseXL中只能支持两路通讯,这样piggy可以自由
组合
2,硬件连接正常,打开CANoe软件
File->NewConfiguration可以选取新建工程模版,咱们这里选取CAN_500kBaud.tcn,这样新建了波特率
为500KCAN工程,可以File->SaveConfiguration,进行保存
3,接下来就要使用CANdb++Editor工具对总线网络节点,消息,信号,进行定义了。
点击工具栏这个图标1,或开始菜单中找这个工具启动
启动后,File->CreateDatabase,选取CANTemplate.dbc,选取R录及文献名,进行保存
VectorCANdb++Editor-C:\DocusentsandSettings\Adainistrator\^®\CA...[,|fn-|fX~|
刊Fil®EditViewOptionsWindowHelp日X
;Q金囿因耳X国画国卮]司段%Bm
SW」
NetworksProtocolCommentBusType
里
ECUSWCANoeTestOl
《CANCANt
Environmentvariables
J-Networknodes
冈
?Messages
Signals
<>
1Network(s)
Ready
右键Networknodes->New,进行网络节点定义,这里只需要填写Name即可,例如:Node_A
然后添力UNode_B,完毕后如下图,这样在Networknodes目录下面添加出来两个节点
VectorCAHdb++Editor-C:\DocuaentsandSettings\Adainistrator\^®\CA...[,|fD~||3^|
节点添加完毕后,卜一步添加CAN消息“右键Messages->New,这是需要定义名称,ID,DLC等信息、,如
下:
lessage*lessage_A(0x10)
然后在Transmitters页面,点击Add按钮,添加Node_A为发送节点,意思就是说,此消息,是从Node_A
节点发送出来
其实尚有•种办法就是,此时暂时不定义发送节点,然后直接以拖曳方式拖曳到发送节点上,功能上是同样
有了消息,消息里携带东西自然是信号咯,那么咱们开始创立一种信号
右键Signals->New,填写如下信息
7<——07<——07<——0
BOBOBOCRC
74——015^—823—16Intel
23—1615^-8X——0Motorola
用0和1来表达开关信号状态似乎还不是很直观,咱们可以使用on和off来表达就好了,干是View->Vdlue
Tables,右键空白处->New,犍入如下信息:
定义好了之后,还需要跟信号进行关联。右键需要关联信号->EditSignal,ValueTable中关联刚才建立那个
ValueTalbe项
Signal'S,itch_lA'
帮助
这择一种信号就完毕了,此外还需要加一种类似信号.可以点击Signal根目录,在右边选取Signal复制,及
粘贴,然后双击复制好Signal后,进行某些编辑,然后用上面办法关联Message即可迅速建立第二个信号了,
是不是很以便
继续添加第三个信号,IndicatojA,跟上面同样,但是我这个信号想放在Message第二个字节位置,怎么办?
其实很简朴,有两种办法:第一种,右键已经关联好,即在Message目录下信号,Editmappedsignal,在
弹出对话框中Startbit中填8,这样就这个信号就跑到该消息第二个字节中了。第二种办法,右键该消息->Edit
Message,在Layout页面中,拖动信号色块进行移动
■essage*Bessage_A(OxAA)
应用回|帮助
以上Message_A消息及消息下所定义已经定义完毕
如法炮制此夕【、一种消息Message_B,完毕后如下图。
VectorCANdb++Editor-C:\Docu»entsandSettings\AdBinistrator\^®\CANoeTest\CANoeTestO—13回区)
下面创立环境变埴,右键Environmentvariables
陆续把其她环境变量加好,Indicato「Access属性为Write哦,加完如下:
VectorCANdb++Editor-C:\Docu»entsandSettings\Ad>inistrator\^|Bj\CANoeTest\CAiroeTestO—13回区)
数据库定义这款基本上就0K了。保存后关闭CANdb++Editor,回到CANoe主程序中。
请在Configuration->Opt:ions->ConfigijrationSettings->ChannelUsage设立使用通讯通道,由于这
个只需要1路CAN,其她都设立为。就可以。
'Trace入Conficuration^Analysis/
点这个选项页面可浮现SimulateSetup界面
BSimulationSetup13回区I
x|
I-钞Networks
awCAYVetvorks
BWCn
星Nod”
♦Generators
mInteractiveGenerators
QReplayblocks
「:Databases
B*Channels
gCAK1
Network
CAB
CAB1
>\CAN[
右健Databases->Add,把刚刚创立好dbc给加载进来,之后再连线上右键->InsertNetworkNode
Nodes
Generators
Inter&ctiv«C«n«r^tors
Replayblocks
Databases
国CANoeTestOl
fej«Chaxmels
NetworkyCAN1
CAB
InsertNttvorkKode
InsertCAP二TestModule
Insert.NETTtstModule
InsertXMLTestModule
InsertGeneratorBlockCAN
InsertInteractiveGeneratorBlock
M<>>[\CAN/
SwitchAllBlockstoReal-Ti®eUode
成果如下:
SiaulationSetup
A
QNetworks
日播CANNetworks
SWC"
s星Nodes
qECUi
Generators
rInteractiveGenerators
aReplayblocks
Databases
&CANoeTestOl
臼MChannels
夕CAN1
EEE\CAN[
右键这个ECU模块・>Configuration,在NetworkNode选取Node_A,完毕,然后添力口Node_B
NodeConfiguration
CommonComponentsBuses
NodeSpecification
Compile
c:.]^administrator\^®\canoetest
OK
完毕后如卜图,这样dbc与CANoe关联就好了。
墓
SxAulati.onSetup-ll_a|p<
S钟M«tvorks
fcWCABNetworks
EWCi»
Q星Md”
旦Node.A
t星Node_B
iGenerators
iInteractiv«Generators
Replayblocks
DaUbas«s
NetworkB--
®CAMoeTestOl
CAB
■ChArm«ls
CAV19CAN1
4,界面设计
网络及相应关系设立好之后,应当设计界而了,一种良好界面可以直观显示及控制各种信号。
界面设计工具备两种:一种是PanelDesigner,新界面设计工具,此外一种是PanelEditor是老界面设计工具,
无仑采用何种工具设计界面,都可以和CANoe较好兼容,没有问题。下面咱们先用第一种界面设计工具来完
毕界面设计
点击工具栏这个图标或File->OpenPanelDesigner,打开界面编辑器,界面如下:
保存一下该界面,起名为PaneLA,一种空界面上可以放置右上边若干组件。放置好之后,选中界面上组件时候,
右下侧回显示当前选中组件属性,可以更改相应大小位置等,但最重要是Symbol属性,这里要说一下,每个
界面组件也都需要与CANoe关联,否则单纯界面是没有任何意义,关联重要是信号和环境变量,在Symbol
属性SymbolFilter属性中可以进行选取,咱们这里关联是环境变量,因此选取EnvironmentVariable,然
后再点击上面Symbol属性,然后在弹出页面中选取相应关联变量
完毕后可以按同样办法设ilPaneLB,111^^SaveAs办法迅速建立同样Panel但是与环境变量关联和界面文
字需要进行微调。这样两个Panel都已完毕。也已经建立了与CANoe之间关联。
5,CAPL编程
所有前期准备工作和组装工作都已完毕,当前需要编写程序使整个系统有机运营起来。回到CANoeSimulation
Setup界面,然后•点击Node_A模块,像铅笔同样图标£],填写程序名称,这里Node_A,然后打开编程界面,
完毕如下程序。然后完毕Node_B程序。小技巧:如果背不出详细消息名称,信号名称或环境变量,可以右键
程序空白处,你会得到意外惊喜,试试看。
OK大功告成
6,运营
当前点击工具栏一口,运营程序。注意:这里表达实际网络,所有消息是发送到物理网络上,如果
只是验证程序,设立成这样就可以了同*"2」,完整运营成果如下:
JVectorCABoc.LIB-CAXocTcst01.cf<-JB
(Lil.V>e*W1«rtV»de£onficsr»t>onlind«*S«lp
I。。。口,三0a-9•
r.Panel.A_X
SaitehIA
|BuU“》|Switch2A
IcvdicatorA
“Trace-」口D
oi£电国为U厚H监810A200x•一苞〔」・田A的,
二T•
1(CUIDDirM£D«t<
0FilttrGrgp08一
0j
0OStopfilttr
Drc<plintstofilt«s
□©P«»filt«r
Drc>plintstofilt«s
0Write
icey^CoAfinnfion/
0:0001:53OMUKISUXIIIKB
就是这样,一步一步,咱们完毕了第一种完整CANoe应用工程,虽然这只是入门第一步,但整个CANoe开发
流程基本涵盖,如果能跑出上面运营成果,依然可以给咱们诸多惊喜。咱们需要这样惊喜,由于这是咱们继续
前行动力。
CANoe入门Stepbvstep系列(一)CAPL编程
CAPLCommunicationApplicationProgrammingLaguageCAPL类似丁C语言语法,因而所
有语法请参照C语言教程,这里不在这里进行详述,关于C语言,亳无疑问,一方面推荐人们看谭浩强教师书,
典型中典型,看完这本C语言应当没问题了。CAPL在CANoe中起到重要作用,她将所有某些联系起来(请
看下图)当前咱们予以上一节基本上,来着重简介CAPL编程。
CAPL语法是C语言,又有某些C++特性,this指针,事件等,对于事件理解可以学习任意一种面对对象语言,
首准C#.NET,可以参照我博客学习,固然这个似乎比CAPL自身更加难,事件也更加多,但这并不妨碍对事件
理解,其中事件类型如下图:
CAPLEvents
EventClassEventNameProcedureexecuted
oapl0006
SystemPreStartDuringinitializationofCANalyzerorCANoe
SystemStartOnpressofStartbuttonforCANalyzerorCANoe
SystemStopMeasurementOnpressofStopbuttonforCANalyzerorCANoe
CANControllerBusOffOndetectionofBusOffconditionintoolhardware
CANControllerErrorActiveOndetectionofErrorActiveconditionintoolhardware
CANControllerErrorPassiveOndetectionofErrorPassiveconditionintoolhardware
CANControllerWarningLimitOndetectionofWarningLimitconditionintoolhardware
CAN-MessageuserdefinedOnreceptionofdestgnatedmessage
TimeruserdefinedOntimeoutofdesignatedtimer
KeyboarduserdefinedkeyOnkeyboardpressofdesignatedkey
ErrorFrameErrorFrameOndetectionofeachErrorFrameintoolhardware
FunctionuserdefinedOninvocationoftheuser'sdesignatedprocedure
EnvironmentuserdefinedOnchangeindesignatedenvironmentalvariable(CANoeonly)
卜面来几种小例子协助理解
来个CANoe版本helloworld!来兴奋一小下吧。开整〜
在打开CANoe,新建个工程,在SimulationSetup中力□个Networknode,点铅笔,忘了吗,上一节刚讲过,
右健Start->New,键入如下代码
gjCAPLBrowser[ECUI.can♦
-gdit£gpi】@rOptionsVindov
幺Includefileszariables
2Variables
F.2Systen
PreStart
5Start
二PreStop
.StopMeasurenent
*,二CABController
CANNessgcs
ZSignalChange
〜SignalUpdate
%SysvarChange
)
SysvarUpdatenstart
Tmervrit©(rhollovorld!*);|
Keyboard
ErrorFrajne
、Environment
/.CallbackFunction
/.Function
R,禽dy
编年后,关闭CAPLB「owe「。运营CANoe工程,成果如下,哇塞成功咯,好有成就感啊。
VectorCAHoe.LIN-CAPL_Test.cfg•13回区)
|lEileVie”StartBodeConfigurationlindovHelp
p用卜—?6
时fritc
SourceMessage
OCAPL/•METMake:C:\DocunentsandSettings\Adttini3ti:atx)t\*AXr\CAJToeTe3t.ForVer7.6\StepByStep_2\ECUL.can
BSystemSsxxofaeasureaent04:03:12pu
■System01-0003CAN1sixiulatedbuswith500000BPS.
■System01-0003CAN2smulacedbuswith500000BPS.
■Syotcaaandaniuaciontaocor-1•
OCAFL/•METhelloworld!
\AII\System*\CAPL/.NET*\inspectWlrt«kATest/
G■要日赛把T厚W«欧扇会口•且才给口3H・
irDLC
^ConfionAnal/
000:0014OJLIMESIHNUWHT:
这个例子似乎跟CAN通讯没啥太大关系啊,好,咱们接下来再做一种例子
EICAPLBrovscr-[ECU1.car]均回又|
'Fil«Ed&UCvMipalvxOpI&VM»ffmdvwHvlp
口信Q目电)密悌3®M育博国甜
&Includefilesvariables
2Variables
message0x555msg[={dlc=l}:
E3Syrten
□,PreStart
2Start
骂PreStop
、StopMeasurement
由-jCANController
㈡CANMessages
〜SignalChange
〜SignalUpdate
,SywarChange
'SysvarUpdate
…•&Timermsel.byte(O)=OxAA.
t滴KeyboardMoutput(msgl);
遍I'IT
WErrorFrajie
:、Environment
/«CallbackFunction
/.Function
EnpiyTeviplate
运苗成果如卜,按键盘b键,将发这种CAN消息,连die是啥都不懂得同窗,推荐先学习卜CAN基本知I
识,推荐瑞萨公司《CAN入门书》,讲非常好。
VectorCAHoe.LIN-CAPL_Test.cfg•目回区)
IEileJfievStart"odeConfiscationSindov於Ip
IuHH
SourceMessage
0CAPL/.METMake:C:\DocunentsandSettingsXAdttinistratxjrX*AAr\CAWoeTestForVer7.CXStepByStep^XECUL.can
■3yocckioftiiCQOULciBcnc04;10;09pit
BSystem01-0003CAN1slxiulacedbuswith500000BPS.
■System01-0003CAN2smulacedbuswith500000BPS.
■Systenandanimationfactor=1.
■CAPL/.METhelloworld?
■SystemEndofneasurenent04:IS:48pn
■SystcaiScareofmeasurement04:15:49pn
■System01-0003CAN1sinuiatedbuswith500000BPS.
BSystea01-0003CAR2simulatedbuswith500000BPS.
11System5danimationfactor=1・
-:CAPL/・MFThellowocld1
AllASystem*XCAPL/.NET*AinspectXC«ilrt«kATest/
3M篁星赛始」,&厚«z■扇,心电口,电CJ•仪•CBlnidal•
\TXACC人Confi—sotion入Analyxii/
000:00090JUMESIHNVWHF::
运管刚刚那个例子你会发现,按一下b,只发送一条消息,但在实际应用中CAN消息都是循环持续发送,咱们
要对刚刚程序进行某些修改。完毕这样功能。程序如下:
variables
message0x400msgA={dlc=l);
mstimertimerA;
intconditionA=0;
)
onkey'a'
{
conditionA=IconditionA;
if(conditionA==1)
<
setTimer(timerAz200);
}
}
ontimertimerA
{
if(conditionA==l)
{
setTimer(timerA,200);
}
msgA.byte(O)=msgA.byte(O)-l;
output(msgA);
)
运营成果如下:按A健,Timer启动,发送消息
VectorCAloe.LIM-CAPL_Te»t.efe度回区I
•YieCode£onficur,S。nKelp
I□Q84—国Is?。/囱网・"回|$z"“bw画?电
SoucceMessage
Startofaeasuteienc09:15:02ax
01・0003CAW13iDLUlai2dt»U3W15500000BPS.
01・0003CAW23iMUlasdbU3W15500000BFS,
andanimation:acwr-1・
hellovorld!
Endo£nea?urexeac09:16:50ak
\/UI£System入CAHJ.慨丫卜1rspcek3如&入X/
,TZQOC
u・汇它潺的,*住・4卧图•・・,•;,寿.口him,
►\r—s人Connm3ion入AMIEM/
R«<4y0KUHHSIMmWHEX
接下来咱们一起来看总结一下CAPL编程要点:
CAPL编程梅[述
■CAPL是CAN总线访问编程
语言(CANAccess
启动/停止][入]
ProgrammingLanguage)
■类C语言1CAN总线5
■应用于VectorCAN工具节CAPL程序
点编程1CAN总线:
■基于事件建模的语言串口井口
IiiHHHi
。总线事件
。属性事件
。时间事件
CAPL的事件类型
事件类型事件名程序执行条件事件过程语法结构*
PreStartCANoe初始彳匕时执行•onpreStart{...}
系统事件Start测量开始时执行onstart{...}
StopMeasuremet测量结束时执行onstopMeasurentent{…}
BusOff硬件检测到BusOff时执行onhusOff{.../
CAN控制器ErrorActive硬件检测i'JErrorActive时执行onerrorActive{…}
事件ErrorPassive硬件检测到ErrorPassive时执行onerrorPassive{...}
WamingLimit硬件检测到WamingLimit时执行onwaniingLinutf...}
CAN消息事件自定义接收到指定的消息时执行onmessageMessage{…}
时间事件自定义定时时间朝过时执行ontimerTimerf...}
键盘事件自定义键值指定的键被下时执行onkeyKey{…}
错误帧事件ErrorFrame硬件每次检测到错误帧时执行onerrori'rame!.../
环境变量事件自定义指定的环境变量值改变时执行onenvVarEnvVar{…}
事件过程语法结构''列中兰色字体表示该程序的关键字:深红色字体表示用户自定义的名称:
内是
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年五指山市毛阳中心卫生院什益、牙合村卫生室公开考核招聘编外乡村医生备考题库及参考答案详解
- 2025年广西艺术学院公开招聘外籍青年人才备考题库完整参考答案详解
- 2025年广西西林县句町咖啡发展贸易有限公司冬季公开招聘工作人员的备考题库及参考答案详解1套
- 2025年丽江晟迪幼儿园招聘备考题库及参考答案详解一套
- 2025年福建透堡镇人民调解委员会专职人民调解员选聘备考题库及1套参考答案详解
- 2025年资阳益福康养产业有限公司招聘医生备考题库及完整答案详解一套
- 2025年天津滨海新区建设投资集团面向社会公开招聘27人备考题库及答案详解一套
- 2025年楚雄云植药业有限公司招聘备考题库参考答案详解
- 2025年山西老区职业技术学院经管学院教师招聘8人备考题库及答案详解一套
- 2025年上海外国语大学海外合作学院派遣制日语教师招聘备考题库及参考答案详解1套
- 地雷战课件教学课件
- 2025年汽车后市场服务连锁经营可行性研究报告
- 甲醛治理合同范本
- 基于国家智慧教育云平台的农村小学科学实验课创新教学模式实践与反思教学研究课题报告
- 2026年电商活动策划实战培训课件
- 防范非计划性拔管
- 2025年考研政治《马克思主义基本原理》模拟卷
- (新教材)部编人教版三年级上册语文 第25课 手术台就是阵地 教学课件
- 2026天津农商银行校园招聘考试历年真题汇编附答案解析
- 2025重庆市环卫集团有限公司招聘27人笔试历年参考题库附带答案详解
- 钻井安全操作规程
评论
0/150
提交评论