📄 基于canopen协议的车载平台数据通讯系统.htm
字号:
<DIV align=center><FONT color=#0000ff
size=2>I800H</FONT></DIV></TD>
<TD width="17%">
<DIV align=center><FONT color=#0000ff
size=2>0x18A</FONT></DIV></TD>
<TD width="19%">
<DIV align=center><FONT color=#0000ff
size=2>255</FONT></DIV></TD>
<TD width="29%">
<DIV align=center><FONT color=#0000ff
size=2>0x20000110</FONT></DIV></TD></TR>
<TR bgColor=#cccccc>
<TD width="18%">
<DIV align=center><FONT color=#0000ff
size=2>Rx-PDO</FONT></DIV></TD>
<TD width="17%">
<DIV align=center><FONT color=#0000ff
size=2>I400H</FONT></DIV></TD>
<TD width="17%">
<DIV align=center><FONT color=#0000ff
size=2>0x20A</FONT></DIV></TD>
<TD width="19%">
<DIV align=center><FONT color=#0000ff
size=2>255</FONT></DIV></TD>
<TD width="29%">
<DIV align=center><FONT color=#0000ff
size=2>0x20000208</FONT></DIV></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
<P align=left><FONT color=#0000ff
size=2>在表2中传输类型255表示异步、事件触发传输,映射参数0x20000110按照从左至右的顺序分别表示将对象字典中主索引为2000H,子索引为01H的16位数值(10)映射到PDO中去。也就是说将保存在2000H处的位置信息映射到PDO中发送。</FONT></P>
<P align=left><FONT color=#0000ff
size=2>在对象字典建立完成之后要生成EDS(Electronic Data
Sheet)来描述这个设备的对象字典,主节点的EDS如图2所示。</FONT></P>
<P align=left><FONT color=#0000ff size=2>2.3 DLL模块的实现</FONT></P>
<P align=left><FONT color=#0000ff
size=2>MB90F543具有两个CAN控制器分别为CAN0和CAN1,我们只用CAN0,这样CAN1可以在系统扩展时使用。CAN控制器具有如下的特点:</FONT></P>
<UL>
<LI><FONT color=#0000ff size=2>符合规范CAN2.0A和CAN2.0B;</FONT>
<LI><FONT color=#0000ff size=2>支持通过接收远程帧发送数据;</FONT>
<LI><FONT color=#0000ff
size=2>16个收、发缓冲区,每个缓冲区都具有29比特ID和8字节数据,多级缓冲配置;</FONT>
<LI><FONT color=#0000ff size=2>每个缓冲区支持标准帧和扩展帧的多种过滤方式;</FONT>
<LI><FONT color=#0000ff size=2>波特率可从10Kbit/s到1Mbit/s。</FONT>
</LI></UL>
<P><FONT color=#0000ff
size=2>在我们系统中使用规范CAN2.0A,波特率为125k/s,并且为每类消息分配了一个独立的缓冲区,这样做可以减少中断程序的处理时间,从而提高了系统的实时性。</FONT></P>
<TABLE width="98%" border=0>
<TBODY>
<TR>
<TD rowSpan=2><IMG height=482
src="基于CANopen协议的车载平台数据通讯系统.files/fig3.jpg" width=256></TD>
<TD><IMG height=209
src="基于CANopen协议的车载平台数据通讯系统.files/fig2.jpg" width=193></TD></TR>
<TR>
<TD><IMG height=184
src="基于CANopen协议的车载平台数据通讯系统.files/fig4.jpg"
width=198></TD></TR></TBODY></TABLE>
<P><FONT color=#0000ff
size=2>DLL模块是对象字典和CAN控制器之间的通讯接口,它要完成的主要工作是:</FONT></P>
<UL>
<LI><FONT color=#0000ff
size=2>对CAN控制器进行初始化,其中包括波特率设置和CAN寄存器初始化等;</FONT>
<LI><FONT color=#0000ff size=2>对CAN引发的中断处理,其中包括:</FONT>
<LI><FONT color=#0000ff
size=2>1)在发送时通过访问对象字典将各种对象按照规定的帧格式发送到总线上;</FONT>
<LI><FONT color=#0000ff
size=2>2)在接收的时候把接收到的对象信息写到对象字典的相应位置中去。</FONT> </LI></UL>
<P><FONT color=#0000ff size=2>我们用两个函数-DLL_InitCAN
()和DLL_Interrupt()来实现CAN控制器的初始化和中断处理功能。</FONT></P>
<P><FONT color=#0000ff size=2>2.4 主控制器的应用程序流程</FONT></P>
<P><FONT color=#0000ff
size=2>在系统中各个从节点被配置成节点监测状态,主节点通过检测4个从节点发送的周期性心跳报文(Heartbeat)来判断各个从节点的工作状态。</FONT></P>
<P><FONT color=#0000ff
size=2>主控制器的应用程序流程为:在系统上电后主控制器首先判断各个从控制器是否发出Boot-Up消息,如果有Boot-up消息则让各个从节点进Operational状态并接着判断是否有心跳报文(Heartbeat)产生以判断各节点是否成功进Operational状态,否则通过指示灯报错,然后采集水平传感器输出的X、Y轴密位信息并判断是否在误差带内,接着通过调平策略解算出3个电机应该上移或下移的位置(3点即可解决一个平面),并且通过CAN总线将位置信息传送给电机控制器,电机控制器在运动了相应的位置后向主控制器发出确认消息,主控制器在接到确认消息后,再次采集水平传感器输出的位置信号,如果位置误差在误差带内则数据传输停止,否则循环上述过程。其流程图如图3所示。</FONT></P>
<P><FONT color=#0000ff size=2>3 实验结果</FONT></P>
<P><FONT color=#0000ff
size=2>整个平台在调平过程中达到了满意的效果,调平的时间在2min之内,调平精度能达到3',这从一方面验证了通讯系统的可靠性。为了更直观地观察数据传输过程,我们通过运行监视程序(miniMON)可以在上位机上实时地显示数据传输的全过程,这无论从系统调试方面还是从系统检验方面来讲都是很有意义的。系统运行时的数据通讯如图4所示。通过监视数据的传输,我们可以更加确认数据传输的可靠性。</FONT></P>
<P><FONT color=#0000ff size=2>4 结束语</FONT></P>
<P><FONT color=#0000ff
size=2>车载设备的网络化、标准化是组成车载监控系统的一个重要条件,同时也是车载设备发展的一个重要方向。CANopen协议作为CAN总线的应用层协议,在车辆领域有着广阔的应用前景。本文通过把车载平台做成符合CANopen协议的标准化装置,从而增强了设备的可扩展性同时也提高了数据传输的可靠性,可以满足现代化战争中军用车载设备的要求。</FONT></P>
<P align=left> </P>
<P align=center><FONT color=#0000ff
size=2>摘自《嵌入式与SOC》2005.7<BR></FONT></P>
<BLOCKQUOTE>
<P align=center><FONT color=#0000ff size=2><A
href="http://www.bol-system.com/CAN_NEW/canopenbrief.htm">基于CANopen的开发方案>>></A></FONT></P></BLOCKQUOTE></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></DIV>
<TABLE height=64 cellSpacing=0 cellPadding=0 width=760 border=0>
<TBODY>
<TR>
<TD width=300><IMG height=61 src="基于CANopen协议的车载平台数据通讯系统.files/Name0.jpg"
width=300></TD>
<TD width=460><IMG height=60 src="基于CANopen协议的车载平台数据通讯系统.files/Dd11.jpg"
width=458></TD></TR></TBODY></TABLE>
<TABLE borderColor=#000000 height=20 cellSpacing=0 cellPadding=0 width=714
align=left border=0>
<TBODY>
<TR vAlign=center align=middle>
<TD width=18 background=基于CANopen协议的车载平台数据通讯系统.files/bar_bg0.gif
height=20></TD>
<TD width=46 background=基于CANopen协议的车载平台数据通讯系统.files/bar_bg1.gif>
<DIV align=center><FONT color=#0000ff size=2><A
href="http://www.bol-system.com/Index.html" target=_self>首
页</A></FONT></DIV></TD>
<TD width=16 background=基于CANopen协议的车载平台数据通讯系统.files/bar_bg2.gif> </TD>
<TD width=63 background=基于CANopen协议的车载平台数据通讯系统.files/bar_bg1.gif><SPAN
lang=zh-cn style="FONT-SIZE: 9pt"><FONT color=#0066ff><A
href="http://www.bol-system.com/Aboutbol.htm">实验室简介</A></FONT></SPAN></TD>
<TD width=18 background=基于CANopen协议的车载平台数据通讯系统.files/bar_bg2.gif> </TD>
<TD width=68 background=基于CANopen协议的车载平台数据通讯系统.files/bar_bg1.gif><SPAN
lang=zh-cn style="FONT-SIZE: 9pt"><A
href="http://www.bol-system.com/products.HTM" target=_blank><FONT
color=#0066ff>产品与服务</FONT></A></SPAN></TD>
<TD width=17 background=基于CANopen协议的车载平台数据通讯系统.files/bar_bg2.gif> </TD>
<TD width=55 background=基于CANopen协议的车载平台数据通讯系统.files/bar_bg1.gif><SPAN
lang=zh-cn style="FONT-SIZE: 9pt"><FONT style="FONT-SIZE: 9pt"
color=#0066ff><SPAN lang=zh-cn style="FONT-SIZE: 9pt"><A
href="http://www.bol-system.com/Tools.HTM">开发平台</A></SPAN></FONT></SPAN></TD>
<TD width=17 background=基于CANopen协议的车载平台数据通讯系统.files/bar_bg2.gif> </TD>
<TD width=70 background=基于CANopen协议的车载平台数据通讯系统.files/bar_bg1.gif><FONT
style="FONT-SIZE: 9pt" color=#0066ff><SPAN lang=zh-cn
style="FONT-SIZE: 9pt"><FONT style="FONT-SIZE: 9pt" color=#0066ff><SPAN
lang=zh-cn><A
href="http://www.bol-system.com/Application.HTM">设计与应用</A></SPAN></FONT></SPAN>
</FONT></TD>
<TD width=21 background=基于CANopen协议的车载平台数据通讯系统.files/bar_bg2.gif></TD>
<TD width=58 background=基于CANopen协议的车载平台数据通讯系统.files/bar_bg1.gif><SPAN
lang=zh-cn style="FONT-SIZE: 9pt"><FONT color=#0066ff><A
href="http://www.bol-system.com/news.HTM">热点新闻</A></FONT></SPAN></TD>
<TD width=17 background=基于CANopen协议的车载平台数据通讯系统.files/bar_bg2.gif></TD>
<TD width=59 background=基于CANopen协议的车载平台数据通讯系统.files/bar_bg1.gif><SPAN
lang=zh-cn style="FONT-SIZE: 9pt"><FONT style="FONT-SIZE: 9pt"
color=#0066ff><SPAN lang=zh-cn style="FONT-SIZE: 9pt"><FONT
color=#0066ff><A
href="http://www.bol-system.com/support.HTM">技术支持</A></FONT></SPAN></FONT></SPAN></TD>
<TD width=18 background=基于CANopen协议的车载平台数据通讯系统.files/bar_bg2.gif></TD>
<TD width=58 background=基于CANopen协议的车载平台数据通讯系统.files/bar_bg1.gif><FONT
style="FONT-SIZE: 9pt" color=#0066ff><SPAN style="FONT-SIZE: 9pt"><FONT
style="FONT-SIZE: 9pt" color=#0066ff><SPAN
lang=zh-cn></SPAN></FONT></SPAN><SPAN lang=zh-cn
style="FONT-SIZE: 9pt"><FONT style="FONT-SIZE: 9pt" color=#0066ff><SPAN
lang=zh-cn style="FONT-SIZE: 9pt"><FONT color=#0066ff><A
href="http://www.bol-system.com/PARTNER.HTM"
target=_blank>合作伙伴</A></FONT></SPAN></FONT></SPAN></FONT></TD>
<TD width=18 background=基于CANopen协议的车载平台数据通讯系统.files/bar_bg2.gif></TD>
<TD width=58 background=基于CANopen协议的车载平台数据通讯系统.files/bar_bg1.gif><FONT
color=#0066ff size=2><A href="http://www.bol-system.com/CONTACT.HTM"
target=_blank>联系我们</A></FONT></TD>
<TD width=19 background=基于CANopen协议的车载平台数据通讯系统.files/bar_bg3.gif colSpan=3
height=20> </TD></TR></TBODY></TABLE>
<P> </P>
<P align=center> </P></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -