[应用相关] Labview for arm 第二弹 CAN总线自发自收

[复制链接]
 楼主| 18260624903 发表于 2015-5-24 09:36 | 显示全部楼层 |阅读模式
Can总线,搞汽车电子的应该都很熟悉了,在汽车上的应用比较多,艺名叫做控制局域网。(具体协议内容请自行百度)。
在LPC2378里can控制器主要分为了两个部分:控制器和验收滤波。
刚开始以为和UART差不多的两线传输协议。。。后来看到ISO七层协议就默默的翻过了,网络没学好的请自行绕道原理转应用。
虽然只是参考了传输层,数据链路层及物理层,总归来说就是在有效信息上添加了很多冗余后分帧传输,一方面是为了仲裁信息的优先级,另一方面就是为了提高信息的可靠性。
在手册上介绍了好些寄存器,就浏览了下,大概就地址,数据存储寄存器,还有些信息标志位。
下面主要介绍下labview 开发can总线实现自发自收的过程:
这是烧录到ARM里面的程序。。。
1.png
下面是在ARM上一些资源的VI,当然还有像TCP/IP,或者串口等协议,因为那些不是特指在ARM上使用,所以不在这个分类里面、

2.png

介绍下使用的几个VI,
3.png
打开一个can,输入的有效参数就两个,一个是片上的CAN控制器的选择,另外一个就是can传输的波特率了。
4.png


第二个就是开始can数据传输的VI,输入参数就只有can 控制器的选择。这个VI的使用是在初始化can的前提下。

5.png
下面就是can的读写操作了,下图是can的写VI,很多参数,本例程因为就设计两个can间的通信,所以很多的参数使用它的默认值就可以了,像ID因为就两个can通信,所以不存在总线上的优先级的问题,所以就忽略了,就给初始化了个can控制器和输入数据。
7.png


Can的读VI,用户接口上大致只是和写VI是输入输出的反向而已。
8.png


当有多个can设备时,需要从众多设备中分辨出你需要夺取的can设备的ID,接着再用读取VI将数据读出。

VI大概就介绍完了,下面看看实例
9.png
上述例子将can的发送波特率设置在了500000bps,先初始化两个can1,can2,同时开始,接着can1往总线上写字符串“87654321”,can2则将字符串读取回来,并通过在线仿真在labview面板上显示。因为只有两个can间的通信,不涉及总线的优先级等,所以一个write和read的VI就可以解决问题,但是存在多个can同时工作的话,就要用到set receive ID的那个vi了。
结果如图: 10.png
感兴趣的  可以加我Q切磋 644454732
也可以自己淘宝labview for arm  淘宝有卖这板卡的

flyxiaopei 发表于 2015-5-24 10:04 | 显示全部楼层
终于见到后续的帖子了。。。。坐等楼主发完七贴,再去召唤只板卡。
huzhiyang1988 发表于 2015-5-24 10:07 | 显示全部楼层
并不懂can, 不过这种编程开发单片机的方式倒是蛮新鲜。
mmuuss586 发表于 2015-5-24 10:11 | 显示全部楼层

这个和ST版块没啥关系;
 楼主| 18260624903 发表于 2015-5-24 14:31 | 显示全部楼层
用labview编程开发单片机 第一弹 AD采集+串口传输
https://bbs.21ic.com/forum.php?mo ... &fromuid=860131
(出处: 21ic电子技术论坛)


这是上一贴。。。。
 楼主| 18260624903 发表于 2015-5-24 14:33 | 显示全部楼层
flyxiaopei 发表于 2015-5-24 10:04
终于见到后续的帖子了。。。。坐等楼主发完七贴,再去召唤只板卡。 ...

用labview编程开发单片机 第一弹 AD采集+串口传输
https://bbs.21ic.com/forum.php?mo ... &fromuid=860131
(出处: 21ic电子技术论坛)

先看上一贴。。。。
憨八龟 发表于 2015-5-27 13:01 | 显示全部楼层
持续关注
luofeng2g 发表于 2015-5-27 13:19 | 显示全部楼层
赞一个!关注
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

43

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部