Labview for arm CAN总线自发自收

linpx_1993 2015-05-24 10:12:45

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了。
结果如图:

9:21:09
陈明明 2015/5/24 9:21:09
感兴趣的 可以加我Q切磋 644454732

也可以自己淘宝labview for arm 淘宝有卖这板卡的
...全文
411 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
wysheng740909 2019-06-30
  • 打赏
  • 举报
回复
感谢分析和分享
支持向量机源码,可在 www.csie.ntu.edu.tw/~cjlin/libsvm/ 下载到最新版本,该版本是 2013年4月更新的,3.17 版。压缩包里面有源代码和文档。以下摘自前述网站: Introduction LIBSVM is an integrated software for support vector classification, (C-SVC, nu-SVC), regression (epsilon-SVR, nu-SVR) and distribution estimation (one-class SVM). It supports multi-class classification. Since version 2.8, it implements an SMO-type algorithm proposed in this paper: R.-E. Fan, P.-H. Chen, and C.-J. Lin. Working set selection using second order information for training SVM. Journal of Machine Learning Research 6, 1889-1918, 2005. You can also find a pseudo code there. (how to cite LIBSVM) Our goal is to help users from other fields to easily use SVM as a tool. LIBSVM provides a simple interface where users can easily link it with their own programs. Main features of LIBSVM include Different SVM formulations Efficient multi-class classification Cross validation for model selection Probability estimates Various kernels (including precomputed kernel matrix) Weighted SVM for unbalanced data Both C++ and Java sources GUI demonstrating SVM classification and regression Python, R, MATLAB, Perl, Ruby, Weka, Common LISP, CLISP, Haskell, OCaml, LabVIEW, and PHP interfaces. C# .NET code and CUDA extension is available. It's also included in some data mining environments: RapidMiner, PCP, and LIONsolver. Automatic model selection which can generate contour of cross valiation accuracy.

27,383

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧