NI CompactRIO​在​车​载​数据​采集​中的​应用

张 烽, 泛亚​汽车​技术​中心 试验​工程师

"使用​NI CompactRIO​平台​开发​的​道路​试验​数据​采集​系统​实现​了​多种​不同​类型​信号​的​采集,​实现​了​开关​量的​交互​控制​和​响应,​在​较​短​的​时间​内​达到​了​预期​的​功能,​且​运行​稳定​可靠,​是​汽车​道路​试验​中的​理想​选择。"

- 张 烽, 泛亚​汽车​技术​中心 试验​工程师

挑战:

开发​一套​可靠​的​数据​记录​系统,​用于​在​高温,​振动​的​环境​下​采集​并​记录​大量​不同​类型​的​信号。​具有​简单​直观​的​机械​开关​按钮​式​操作​界面​供​非​专业​人员​使用。

解决​方案:

自行​搭建​操作​面板,​提供​传感器​电源​及​信号​接口,​控制​开关,​以及​状态​指示​灯。​应用​NI CompactRIO​平台​读​取​各路​信号,​响应​面板​开关​动作,​执行​数据​存储,​指示​运行​状态。

介绍:

         整​车​开发​试验​需要​在​实际​道路​上​进行​路​试​并​采集​相关​数据,​如​车速,​转向​器​扭矩,​踏板​行程​与​踏板​力,​各类​管路​压力,​各部​件​及​环境​温度​等。​通常​周期​较​长,​试验​环境​不佳,​日常​的​实验​室​数​采​系统​不能​很好​地​胜任。​同时​此类​试验​往往​由​专职​试车​员​执行,​工程​师​不随​车,​因而​也​要求​相关​采集​系统​易​于​试车​员​操作。

 

         National Instruments​的​CompactRIO​平台​具有​多​款​I/​O​模​块,​可以​连接​多种​不同​类型​的​传感器。​系统​可以​耐​受​高温​振动​等​不良​工​况,​直流​供电​便于​在​汽车​上​使用,​可以​脱离​计算​机​控制​独立​运行,​也可以​通过​数字​量​I/​O​接受​简单​的​控制​指令​并​进行​反馈,​9012​控制器​可以​外接​闪​存​存储​器,​实现​大​容量​数据​记录​且​不必​担心​振动​对​硬盘​的​机械​影响,​是​道路​数据​采集​的​理想​选择。

         本文​从​一个​初学者​的​角度​介绍​了​使用​NI CompactRIO​快速​开发​一套​独立​数据​采集​系统​并​对​其​优​化​改进​的​过程​和​方法。

 

正文:

         在​新​款​汽车​的​工程​开发​过程​中,​制动​系统​的​设计​与​验证​是​一个​重要​的​试验​环节。​试验​过程​首先​由​数据​采集​系统​采集​各​项​数据​并​保存​为​文件,​随后​由​另一​程序​读​取​记录​文件​并​进行​分析。​本文​着重​讨论​数据​采集​部分。

 

         泛亚​汽车​技术​中心​整​车​性能​试验​股​自​2003​年​起​应用​NI​的​数​采​设备​和​LabVIEW​软件,​在​试验​数据​采集​和​分析​方面​积累​了​一定​的​经验。​通常,​道路​试验​需要​两​名​工程​师​参与,​分别​负责​车辆​驾驶​和​数​采​操作。​车辆​在​道路​行驶​中​产生​的​颠簸​对​设备​及​电脑​硬盘​会​造成​一定​影响,​而且​在​车​载​条件下​采集​仪器​和​笔记​本​电脑​还​需要​逆​变​器​提供​交流​电。​考虑​NI​的​CompactRIO​平台​集成​了​信号​调理、​A/​D​转换、​实​时​控制器、​以及​USB​闪​存​接口,​直流​供电,​加​电​即可​自动​运行,​可以​耐​受​高温​振动​等​不良​工​况,​故​决定​以​CompactRIO​平台​为​基础​开发​这​套​采集​系统​用于​制动​试验。

 

         此次​试验​主要​关注​制动​蹄​片​温度,​需要​记录​的​通道​有​车速、​整​车​加速度、​四​个​制动​蹄​片​的​温度、​环境​温度​以及​一个​制动​触发​信号。​以下​对​开发​过程​做​一​介绍。

 

 

任务​分析​及​整体​架构

         在​所有​需要​记录​的​通道​中,​五​个​温度​信号​来自​热电​偶,​使用​两​块​NI 9211​模​块​采集;​整​车​加速度​来自​一个​伺服​式​加速度​传感器,​输出​幅度​为​±5V​的​模拟​电压,​采集​模​块​为​NI 9215。​车速​信号​来自​光电​式​非​接触​车速​传感器,​通过​模拟​电压、​频率​信号​或​CAN​总​线​输出​车速​信号,​为​简便​起​见,​暂​也​使用​NI 9215​读​取​模拟​电压。​车速​和​加速度​的​采样​频率​均​为​100 Hz。​制动​触发​信号​会​在​制动​踏板​踩下​时​产生​一个​12V​的​高​电​平,​由于​我们​采用​的​数字​I/​O​模​块​9401​可​接受​的​最高​电​平​为​5V,​所以​需要​接​一个​分​压​电路,​或者​用​模拟​模​块​采集​这个​信号。

 

         除了​上述​数据​通道,​该​系统​还​需要​处理​一些​开关​量,​用于​操作​界面​的​输入​输出。​包括​一个​存​盘​开关,​决定​是否​将​当前​采集​数据​存​盘。​当​开关​合​上​时,​控制器​会​根据​当前​系统​时间​自动​生成​文件​名​并​将​数据​存入​优​盘,​将​此​开关​断开​再​合​上​可以​实现​另起​文件​名​的​作用。​一个​带​复​位​的​零​位​开关,​用于​在​数据​文件​中​表示​零​位,​从而​便于​在​数据​分析​时​消去​传感器​的​零​漂。​清​零​功能​可以​在​采集​时​同步​实现,​也可以​只作​记录,​留到​PC​上​分析​时​再做​相​减。

 

         此外,​由于​该​系统​运行​时​不用​显示​器​等​监视​工具,​笔者​在​操作​面板​上​设立​一​组​发光​二极管​用于​指示​系统​正常​或​故障,​以及​闪​存​容量​过​低​等​信息。​以上​开关​量​和​指示​灯​信号​通过​9401​模​块​输入​输出。

         整​机​照片​如​图​1​所​示。

 

程序​设计

         此​采集​系统​的​软件​由​两​部分​组成,​分别​运行​于​Real-​Time​控制器​和​FPGA​背​板。​根据​起初​的​规划,​FPGA.vi (注:​指​运行​在​FPGA Target​上面​的​vi​程序,​下​同)​负责​定​时​(100 Hz)​采集​各​模​块​各​通道​数据,​并​将​数据​写​入​DMA fifo,​这​是​连接​背​板​和​控制器​的​缓​存。​在​Real-​Time.vi​中​由​一个​循环​定​时​读​取​缓​存​中的​原始​值,​通过​binary-​to-​nominal​函数​把​二​进制​数​转换​成​电压​量​再​乘​以​相应​系数​转换​成​物理​量。​转换​后​的​数据​写​入​RT fifo,​这​相当​于​一个​磁盘​缓冲​区。​另​一个​低速​循环​每​30​秒​读​取​一次​缓冲​区,​将​数据​一次​性​写​入​闪​存。​设立​两​个​循环​的​好处​是​由​控制器​尽快​读​取​DMA fifo,​可​避免​DMA fifo​体积​过于​庞大,​避免​过度​占用​FPGA​资源。​而​低速​循环​可以​降低​读写​闪​存​的​频率,​有利​于​保护​闪​存,​也​减少​读写​出​错​几率。

 

调​试​改进

         在​后​续​的​调​试​和​改进​过程​中,​该​架构​的​主​线​没有​更改。​但是​针对​出现​的​问题,​做了​下列​改进:

 

         1. 由于​热电​偶​采集​模​块​9211​的​A/​D​转换​速率​较​低​(14S/​s),​当​该​组​通道​数据​与​其他​模​块​数据​在​FPGA.vi​的​同​一个​循环​内​使用​FPGA I/​O Node​读​取​的​时候​会​导致​该​循环​的​整体​运行​速率​严重​降低。​解决​方案​是​使用​不同​速率​的​循环,​使​原先​通过​9215​模​块​读​取​的​通道​不受​影响,​热电​偶​读​数​不​通过​DMA​传递,​而是​利用​前​面板​通信​读​到​Real-​Time.vi​再​与​其他​数据​另行​同步。

 

         2. 为​减少​由​A/​D​转换​引入​的​误差,​将​通过​9215​读​入​的​加速度​传感器​信号​的​采样​频率​由​100 Hz​提高​至​800 Hz,​并​对​每​8​个​点​进行​平均​后​输出。​希望​通过​这样​的​方法​使​转换​中​产生​的​毛刺​部分​抵消,​提高​信号​的​质量。​之所以​选定​8​倍​采样​频率​是​因为​8​点​平均​可以​占用​较​少​的​FPGA​门​电路​资源。​对比​以往​的​数​采​系统​需要​软件​运算​实现​类似​的​功能​而言,​CompactRIO​系统​使用​可​定制​的​硬件​电路​实现​同样​的​功能,​完全​不​占用​额外​的​时间​和​资源,​也不​用​增加​经济​成本。

 

         3. 由于​车速​信号​将​在​后​续​数据​处理​中​进行​微分​运算,​而​先​D/​A​再​A/​D​的​传输​方法​给​信号​带来​一定​噪声,​不利​于​微分​运算,​故​改用​NI 9853​模​块​从​车速​传感器​的​CAN​总​线​直接​读​取​车速​数值。​CAN​信号​使用​数据​帧​传送,​传感器​端的​发送​周期​约​为​4ms/​帧。​因此​在​FPGA.vi​内​另​建​一个​循环​每​读​取​5​个​数据​帧​(20 ms)​并从​中​分离​出​代表​车速​的​数值​后​输出​2​个​数据​点​写​入​另​一个​DMA fifo,​由​Real-​Time.vi​定​时​读​两​个​fifo​和​记录​热电​偶​读​数​的​控​件,​重新​同步​成​100 Hz​的​数据。​随着​CAN​总​线​应用​的​日益​普及,​使用​CompactRIO​的​CAN​通信​模​块​不仅​可以​连接​传感器,​也可以​同时​连接​汽车​总​线,​获取​更多​信息。​在​将来​的​应用​中,​甚至​不仅​可以​读​取,​还​可以​向​车辆​发送​一些​控制​信号,​如​清除​故障​码​等等。

 

         4. 由于​该​系统​本身​没有​基于​显示​器​的​用户​界面,​笔者​设计​了​一个​指示​信号​通过​闪烁​提示​运行​正常。​实现​方法​是​设置​一个​布​尔​量,​在​主​循环​内​每次​运行​时​取​反​(见​图​3),​将​其​值​输出​至​9401​模​块​的​数字​I/​O​端​口,​在​端​口上​连接​一​发光​二极管​(LED)。​这样,​当​程序​正常​运行​时,​LED​会​随​该​布​尔​量的​循环​取​反而​闪烁,​当​程序​异常​停止​时,​该​指示​灯​停止​闪烁。​这样,​试车​员​就​可以​不需要​电脑​而​通过​最​直观​的​方式​了解​采集​系统​的​工作​状况,​避免​程序​异常​停止​造成​无效​试验。​当然,​在​条件​允许​时,​也可以​为​该​系统​配置​一个​触摸​屏​(如​NI 2016),​从而​获得​更好​的​图形​化​交互​界面​和​控制​功能。

 

         5. 一般​使用​计算​机​进行​数据​采集​时​会​利用​文件​名​或​其他​方式​记录​当前​试验​工​况,​而​CompactRIO​系统​不​具备​直接​输入​条件,​因此​需要​另外​的​方法​对​试验​工​况​进行​标识。​为此​笔者​在​设备​面板​上​设置​了​一个​旋转​开关,​经过​适当​连​线​后​形成​一个​分​段式​的​电位​器,​当​系统​输入​电压​为​12V​时,​开关​四​个​档​位​的​输出​电压​分别​为​0、​3、​6、​9V(见​图​4)。​记录​该​电压​就​可​反映​相应​的​四​个​工​况。

 

         6. LabVIEW​内​置​了​web server,​当​程序​没有​专门​部署​PC-​host​部分​的​时候,​利用​web server​通过​网络​将​Real-​Time.vi​的​前​面板​显示​在​PC​的​浏览​器​上​是​非常​高效​的​调​试​手段。​开发​者​只需​将​CompactRIO​通过​网​线​与​电脑​相连,​再​在​浏览​器​地址​栏​输入​RT​上​设定​的​网页​名称​就​可以​看到​程序​前​面板,​从而​实​时​了解​程序​的​运行​情况​和​错误​信息,​甚至​在​必要​的​时候​可以​获取​控​件​的​控制​权​修改​一些​参数。​要​实现​这些​功能​完全​不用​编写​任何​网络​通信​方面​的​代码,​而​只需要​点​击​鼠​标​在​Web Publishing…​菜单​处​进行​简单​配置,​极大​的​提高​了​调​试​效率,​也​便于​工程​师​在​试验​中​观察​现场​数据​时​使用。

 

应用​实践

         在​实验​室​完成​开发​以后,​此​系统​被​安装​在​汽车​副​驾​座位​上,​使用​乘客​安全​带​进行​固定,​从​汽车​电瓶​获取​电源。​预​装​在​试验​车​上​的​传感器​通过​接​插​件​与​系统​面板​连接,​由​数​采​系统​负责​统一​供电​和​信号​连接。​在​试验​中,​试车​员​所要​做的​仅仅​是在​试验​开始​时​插入​优​盘​并​打开​系统​电源,​以及​在​工​况​切换​时​拨​动​存​盘​开关​以​产生​一个​新的​记录​文件,​此外​也​包括​在​必要​的​时候​旋转​旋​钮​标识​当前​工​况​或者​按下​清​零​按钮​以​表示​传感器​零​位。

 

         由于​此次​试验​中​适​逢​道路​泥泞,​溅​起​的​泥水​遮蔽​了​光电​式​车速​传感器​的​镜头​导致​车速​输出​异常。​在​发现​这个​问题​以后,​笔者​及时​调整​了​程序,​当​车速​为​零​时​通过​数​采​面板​上​的​指示​灯​给予​提示。​这样​当​试车​员​在​行驶​过程​中​发现​此​灯​亮​时​即可​及时​清洁​镜头。​此​方法​也​可​用于​检测​热电​偶​开路​等​异常。​由此​可见,​使用​NI CompactRIO​平台​开发​的​数据​采集​系统​不但​强大​可靠,​而且​功能​灵活,​可​及时​根据​用户​需求​而​调整,​这​在​传统​仪器​上​几乎是​不可​想象​的。

 

小结:

         使用​NI CompactRIO​平台​开发​的​道路​试验​数据​采集​系统​实现​了​多种​不同​类型​信号​的​采集,​实现​了​开关​量的​交互​控制​和​响应,​在​较​短​的​时间​内​达到​了​预期​的​功能,​且​运行​稳定​可靠,​是​汽车​道路​试验​中的​理想​选择。

 

 

欢迎​您​点​击“请​NI​工程​师​回​电!”,​马上​申请​NI​测​控​专家​的​专业​技术​咨询!

更多​获奖​征​文​请​访问:​www.ni.com/​china/​papercontest

 

作者​信息:

张 烽
​泛亚​汽车​技术​中心 试验​工程师

图​1 ​ ​车​载​数据​采集​系统​外观 ​
图​2 ​ ​程序​基本​结构 ​
图​3 ​ ​布​尔​量​取​反​实现​指示​灯​闪烁 ​
图​4 ​ ​工​况​输入​电路​示意​图 ​