2968|0

1

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

使用可视化编程方式设计CAN速率转换器 [复制链接]

  CAN速率变换是一种常见的应用。比如,要将250Kpbs的CAN总线连接到500Kbps的总线上,让其数据互通,就需要进行速率变换。如下图两个独立的网络:

 
1 网络构成设计  要完成速率变换,就需要将CAN速率转换器置于两个总线之间,并且设置两个CAN通道的速率分别为250Kbps和500Kbps。如下图:

 
  这里使用了如越CAN分析仪来完成这个转换工作。


2 程序设计 
 网络构成确定后,就是程序设计了。
 首先在新建一个工程,并设置CAN1和CAN2的通信速度分别为250K和500K。如下图是设置CAN1的截图:

 


 然后新建一个仿真文件,命名为Adapter,在其中放入三个模块,其中两个是"事件触发"模块,一个是"触发系统"模块。并设置"事件触发"模块的参数,当两个CAN通道有任意CAN数据收到时,就激活调用"触发系统"执行。如下图:
  
特别注意两个"事件模块"的参数,分别设置为通道1和通道2的CAN接收触发,而且是收到任何CAN ID都将触发,否则就完不成数据转发的任务:

 

 然后进入"触发系统",设计转发逻辑。如下图:



   上图有两个主要的模块,分别是CAN接收模块和CAN发送模块。它们之间的细线表示输入输出关系。
   可以看见,这个CAN接收模块取得任何最近收到的数据,包括CAN ID、ID类型和数据都原封不动的传入给CAN发送模块,让其转发出去。唯一有变化的是CAN通道。
   CAN硬件有两个独立CAN控制器通道,编号分别为1和2。我们程序设计的任务就是将两个通道分别和两个独立CAN总线相连,然后从通道1接收数据,让通道2转发出去,同时也从通道2接收数据,让通道1转发出去。所以数据和CAN ID是原封不动的,但通道就要改变了。
   通道的地方,作了一个判定逻辑:当接收通道是1的时候,发送通道是2;当接收通道不是1的时候(肯定就是2),发送通道就是1。这样就实现了数据转发,完成了CAN速率转换任务(我们这里专注于逻辑设计,不考虑CAN总线负荷这样的问题)。
   要实现单方向转发也很方便,比如只让通道1的数据转发到通道2,那么去掉"触发源2"这个模块就可以了。之后通道2收到任何数据都不会激活"触发系统"执行,那也就不会有通道2任何数据被转发了。
   打开附件的工程,须要如越CAN分析仪。请在下面地址下载:http://www.ruyual.com/download/RuyualCANinstall_1.53_enp_sae_iso.exe
   

top.png (78.31 KB, 下载次数: 0)

top.png

CANAdapter.rar

6.3 KB, 下载次数: 14

设计工程

此帖出自汽车电子论坛
点赞 关注

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表