打印
[ARM7]

Labview for arm 第二弹 CAN总线自发自收

[复制链接]
1056|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Can总线,搞汽车电子的应该都很熟悉了,在汽车上的应用比较多,艺名叫做控制局域网。(具体协议内容请自行百度)。
LPC2378can控制器主要分为了两个部分:控制器和验收滤波。
刚开始以为和UART差不多的两线传输协议。。。后来看到ISO七层协议就默默的翻过了,网络没学好的请自行绕道原理转应用。
虽然只是参考了传输层,数据链路层及物理层,总归来说就是在有效信息上添加了很多冗余后分帧传输,一方面是为了仲裁信息的优先级,另一方面就是为了提高信息的可靠性。
在手册上介绍了好些寄存器,就浏览了下,大概就地址,数据存储寄存器,还有些信息标志位。
下面主要介绍下labview 开发can总线实现自发自收的过程:
这是烧录到ARM里面的程序。。。
下面是在ARM上一些资源的VI,当然还有像TCP/IP,或者串口等协议,因为那些不是特指在ARM上使用,所以不在这个分类里面、
介绍下使用的几个VI
打开一个can,输入的有效参数就两个,一个是片上的CAN控制器的选择,另外一个就是can传输的波特率了。
第二个就是开始can数据传输的VI,输入参数就只有can 控制器的选择。这个VI的使用是在初始化can的前提下。
下面就是can的读写操作了,下图是can的写VI,很多参数,本例程因为就设计两个can间的通信,所以很多的参数使用它的默认值就可以了,像ID因为就两个can通信,所以不存在总线上的优先级的问题,所以就忽略了,就给初始化了个can控制器和输入数据。
Can的读VI,用户接口上大致只是和写VI是输入输出的反向而已。
当有多个can设备时,需要从众多设备中分辨出你需要获取的can设备的ID,接着再用读取VI将数据读出。
VI大概就介绍完了,下面看看实例
上述例子将can的发送波特率设置在了500000bps,先初始化两个can1can2,同时开始,接着can1往总线上写字符串“87654321”,can2则将字符串读取回来,并通过在线仿真在labview面板上显示。因为只有两个can间的通信,不涉及总线的优先级等,所以一个writereadVI就可以解决问题,但是存在多个can同时工作的话,就要用到set receive ID的那个vi了。
结果如图:
感兴趣的  可以加我Q切磋 644454732
也可以自己淘宝labview for arm  淘宝有卖这板卡的

相关帖子

沙发
huzhiyang1988| | 2015-5-24 10:43 | 只看该作者
恩,已经玩起来了。。可以一起切磋一下。。。这个确实不错

使用特权

评论回复
板凳
18260624903|  楼主 | 2015-5-24 14:33 | 只看该作者
huzhiyang1988 发表于 2015-5-24 10:43
恩,已经玩起来了。。可以一起切磋一下。。。这个确实不错

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

可以先看上个贴。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

43

帖子

2

粉丝