2960|0

1148

帖子

0

TA的资源

纯净的硅(高级)

楼主
 

将高速CAN传输与数据采集测量同步 [复制链接]

对于需要为基于CAN总线的电子模块和系统创建设计验证、生产制造和性能测试系统的工程师而言,National Instruments(NI)公司的PXI平台是测试和测量解决方案的理想选择,因为它可以将在多种总线接口之间传输的CAN信息与模拟及数字定时测量同步起来,而这一点是其它任何平台都办不到的。与其它测试方案不同,PXI提供了一个用于CAN通信和数据采集的一体化解决方案。
目录:
· 背景
· 实时系统集成总线
· 系统定时配置
· LabVIEW例程
· 结论


背景

在过去的几十年里,汽车行业从重大的技术进步中获益,从而减少了废气排放,提高了燃料效率,实现了制动系统的防锁控制,并在其它许多方面也取得了进步。在环保性、安全性和驾驶便利性方面进行的创新使得汽车设计中增添了许多新的电子器件。
20世纪80年代,Bosch公司开发出了CAN(Controller Area Network,控制器区域网)总线,以满足市场对于汽车电子模块之间的通信设备的不断增长的需求。现在CAN还被用于航空电子数据通信嵌入式系统、航海和其它应用领域中。
CAN是双线、多点串行总线,它使连网的设备可以互相通信。有关CAN总线以及NI CAN接口产品的详细信息,请访问NI Developer Zone 网站(zone.ni.com)并输入搜索关键词CAN 来获取。
随着CAN设备测试应用的发展,有关将测试系统组件(如电压和传感器测量设备、传动装置、离散输入和输出)集成于一体的需求日益增长。要想系统可以获得重复的测量结果,能将CAN传输与这些组件同步的功能显得尤为重要。
本文描述了如何配置一个可以通过NI-CAN帧API将多条CAN总线上的信息传输与同时进行着的测量工作同步进行。你可使用类似的方法使CAN与其它类型的系统输入/输出同步。


实时系统集成总线

PXI机箱中纳入了实时系统集成(RTSI)定时总线,还包括七根触发线,用于创建NI的测量、图像采集和运动控制设备以及CAN接口板卡之间的灵活的同步关系。触发总线可以将系统中的一个或多个设备将定时信号置于底板上,因为系统中的每块板卡都可以在底板上获取这些定时信号,以便进行输入/输出同步。由于定时是在硬件中进行,因此在系统初始化之后就无需使用应用软件对输入/输出同步进行干涉。



系统定时配置

此例中定时基准为一块产生1 kHz脉冲串的NI-6030E 数据采集板,如图1所示。该定时信号经由PXI触发总线到达两块NI-8461双端口CAN板卡上。此信号使得四个CAN端口上的信息传输分别在1 kHz, 500 Hz, 250 Hz和100 Hz的帧速率下同步。
一块NI-5102双通道数字化仪板卡测量并显示CAN传输之间的定时关系以及定时脉冲串波形。


图1: 数据采集系统框图。NI-6030E产生1 kHz的脉冲串。脉冲路由至CAN板。CAN接口将帧发送至一个示波器或一个同步采样板卡(如NI-611x)。

在此例中, CAN接口被配制成如同连接到了高速CAN网络。要进行高速传输,ISO 11898要求在传输线每一端的CAN+和CAN-信号之间使用120 Ohm终端电阻。



LabVIEW 例程

图2所示的CAN配置代码是利用帧API对LabVIEW 中的CAN对象进行初始化的关键步骤。本文对我们的应用案例中的配置设定进行了说明。如要获取其它信息或了解用API通道进行同步的案例,请参阅NI-CAN 2.0 程序员参考手册。


图2:先配置CAN网络接口,然后再正确配置每个CAN对象。CAN端口被添加到网络接口群集(Cluster)中,以简化用户接口。

第一帧将网络的配置属性初始化。现在让我们来了解CAN配置的要素,如下图所示。


图3:网络接口群集器。Standard Comparator为0,这样网络接口就能够接收标准帧。此处不涉及Standard Mask。采用Extended comparator会发生相同情况,它允许网络接收扩展帧。

Start On Open 用于确定传输是自动开始(True)还是通过ncAction.vi 调用(False)开始。
Baud Rate 用于确定数据传输速率。此例中波特率设置为1Mbit/s 。
Read Queue Length 和 Write Queue Length 表示传送到接口的帧的数量。
Standard Comparator和Standard Mask被一起用来确定CAN网络是传输数据还是从网络接收数据。由于CAN接口只能发送数据,Standard Comparator应设为0x0。在我们的例子中,Standard Mask不起作用。
CAN配置的帧定时要素在CAN RTSI Config群集器(位于图4中所示的CAN对象的底部)中指定。


图4:CAN对象数组。除了针对CAN0::STD5的配置之外,数组还有三个用于CAN0::STD8, CAN0::STD7和CAN0::STD6的类似元素。

RTSI Mode 规定RTSI提供CAN传输定时信号。
RTSI Signal 规定由哪根RTSI线提供定时信号。
RTSI Behavior 在此例中不相关。
RTSI Skip 确定相对于定时信号频率的帧传输速率。跳跃值为1表示CAN每隔一个定时信号周期传输一帧。
在我们的例子中, 四个CAN对象按以下方式在网络上传输数据。

表 1
CAN 对象 ID 帧速率 跳跃值
CAN0::STD8 1000 Hz 0
CAN0::STD7 500 Hz 1
CAN0::STD6 250 Hz 3
CAN0::STD5 100 Hz 9
注:此例中的CAN传输基于外触发,因此读队列长度(Read Queue Length)可以为零。所有元素的通信形式(Communication Type)都应为周期性传输数据(Transmit Data Periodically)。
示例代码的下一帧利用Generate Pulse Train.VI 对DAQ板进行配置,使其以所期望的频率产生脉冲串。该信号通过Route Signal.VI发送至一根PXI触发线。


图5:从MIO板产生1 kHz脉冲并发送至RTSI线。

下一帧从示波器模拟输入读取数据并将帧从每一队列传送至CAN对象。每一CAN对象的运行和示波器测量同时进行,直到用户按下停止按钮或出错。

图6:四个并行回路从每一队列读取数据并写入特定的CAN对象。该程序还获取脉冲,以在PXI触发总线中产生触发信号。

从以下的框图中可以看出,Write CAN Frames VI从串队列读取数据并将其转换为数据帧,然后将其写入CAN对象中。您可以使用Delay(毫秒)终端迫使与最慢队列相关的进程进入休眠状态。



图7:写CAN帧VI及其框图

最后两帧结束每一CAN对象的句柄并将每个接口复位。



图8:帧3关闭网络,帧4复位两个端口。ncReset 将整块插卡复位。这样我们就将两块板都复位。

在此例中,LabVIEW queue(队列) VI用于在接口准备好进行传输之前对CAN数据进行缓冲。数据由磁盘文件提供。为此例开发的脉冲串发生器– RTSI VI读取文件数据并将其转换为queue VI可以接受的字符串。与CAN数据输出代码一样, 数据排队代码也包括四个同时运行的程序回路。


图9:VI 的此部分从四个不同的文件读取CAN数据并写入队列中。

所产生的示波器显示如下所示。红色迹线代表的信号是NI-6030E 产生的定时脉冲串。蓝色迹线为CAN数据传输波形。


图10:获取触发脉冲和CAN数据帧。



图11:多个CAN对象传输定时(图10中显示的一部分时标序列被着重显示)。

如图11所示,较长的时基可每四个脉冲显示三个数据帧,每二十个脉冲显示四个数据帧。
注: 触发脉冲和每一帧到达之间的延迟是由于与低级CAN驱动相关的中断等待时间所引起。实际结果是每一CAN对象的数据以基本恒定的延迟或相对于产生定时信号的插槽位置的时间延迟进行传输。

结论

本文表明可以用触发脉冲在不同频率下传输CAN数据,原因是具有灵活性的PXI触发总线和RTSI总线可分别用于PXI和PCI。虽然在此例中我们对所有对象使用了相同的触发信号,我们也可对每一对象使用不同的触发信号。此处使用的示例位于后面的附件中。
此帖出自汽车电子论坛
点赞 关注

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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