打印
[应用相关]

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

[复制链接]
1515|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Can总线,搞汽车电子的应该都很熟悉了,在汽车上的应用比较多,艺名叫做控制局域网。(具体协议内容请自行百度)。
在LPC2378里can控制器主要分为了两个部分:控制器和验收滤波。
刚开始以为和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,先初始化两个can1,can2,同时开始,接着can1往总线上写字符串“87654321”,can2则将字符串读取回来,并通过在线仿真在labview面板上显示。因为只有两个can间的通信,不涉及总线的优先级等,所以一个write和read的VI就可以解决问题,但是存在多个can同时工作的话,就要用到set receive ID的那个vi了。
结果如图:
感兴趣的  可以加我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版块没啥关系;

使用特权

评论回复
5
18260624903|  楼主 | 2015-5-24 14:31 | 只看该作者
用labview编程开发单片机 第一弹 AD采集+串口传输
https://bbs.21ic.com/forum.php?mo ... &fromuid=860131
(出处: 21ic电子技术论坛)


这是上一贴。。。。

使用特权

评论回复
6
18260624903|  楼主 | 2015-5-24 14:33 | 只看该作者
flyxiaopei 发表于 2015-5-24 10:04
终于见到后续的帖子了。。。。坐等楼主发完七贴,再去召唤只板卡。 ...

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

先看上一贴。。。。

使用特权

评论回复
7
憨八龟| | 2015-5-27 13:01 | 只看该作者
持续关注

使用特权

评论回复
8
luofeng2g| | 2015-5-27 13:19 | 只看该作者
赞一个!关注

使用特权

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

本版积分规则

6

主题

43

帖子

2

粉丝