NI Linux Real-​Time​深​层​解析

概览

NI LabVIEW Real-​Time​模​块​支持​NI Linux Real-​Time​操作​系统,​在​选定​的​NI​硬件​上​提供。​本文​介绍​了​具体​的​新​特性​和​高级​功能,​可​让​您​为​应用​充分利用​NI Linux Real-​Time。

内容

Linux Shell​支持

NI Linux Real-​Time​操作​系统​提供​了​全面​的​Linux shell​支持,​因此​您​可以​执行​复杂​的​管理​任务​来​更​轻松​地​管理​Real-​Time​终端。​访问​shell​需要​具有​终端​客户​端。​如果​您​使用​的是​Windows 7​或​更高​版本,​则​可​使用​免费​的​热门​客户​端​PuTTY,​具体​可​访问:PuTTY:​免费​的​Telnet/​SSH​客户端

除了​终端​客户​端,​您​还​必须​在​运行​NI Linux Real-​Time​操作​系统​的​Real-​Time​终端​上​选​中“启用​SSH​服务​器​(sshd)”(Enable Secure Shell Server (sshd))​选项。​您​可以​使用​NI Measurement & Automation Explorer (MAX)或基于​Web​的​配置​和​监测​界面(见​图​1​和​图​2)。​​为了​安全​起​见,​强烈​建议​更改​admin​帐户​的​默认​密码。​您​可​通过​基于​Web​的​配置​和​监测​界面​更改​密码。​如果​要​通过​SSH​登录​到​Linux shell,​您​可​使用admin用户​名​以及​配置​好的​密码​来​获得​根​访问​权限;​如果​没有​配置​密码,​则​默认​为​空。​您​可​通过​基于​Web​的​配置​和​监测​界面​创建​新​用户。​这些​用户​也可以​通过​SSH​登录,​但​没有​根​访问​权限。

图​1.您​可在​Measurement and Automation Explorer​上​Real-​Time​​终端​的“系统​设置”(System Settings)​选项​卡​内​找到“启用​SSH​服务​器​(sshd)”(Enable Secure Shell Server (sshd))​选项。​访问​运行​NI Linux Real-​Time​的​Real-​Time​​终端​之前​必须​选​中​该​选项。

 

图​2.您​还​可以​通过​Real-​Time​终端​基于​Web​的​配置​和​监测​界面​找到“启用​SSH​服务​器​(sshd)”(Enable Secure Shell Server (sshd))​选项。​访问​运行​NI Linux Real-​Time​的​Real-​Time​​终端​之前​必须​选​中​该​选项。

 

文件​传输​和​文件​路径

从​LabVIEW 2013​开始,​所有​NI Real-​Time​终端​均​支持​WebDAV​文件​传输。​WebDAV​是​一个​基于​HTTP​的​行业​标准​协议,​应用​于​Dropbox​等​热门​应用,​您​可用​它​轻松、​安全​地​传输​包含​敏感​信息​的​文件。​WebDAV​是​运行​NI Linux Real-​Time​的​Real-​Time​终端​的​默认​文件​传输​机制。​如需​了解​更多​信息,​请​参阅使用​WebDAV​传输​文件​至​RT​终端

与​基于​VxWorks​和​Phar Lap​的​较​旧​设备​不同,​NI Linux​ Real-​Time​终端​默认​状态​下​不​安装​FTP​服务​器。​如需​FTP​支持​以​保持​应用​程序​的​向后​兼容​性,​您​可以​通过​MAX​安装​传统​的​FTP​服务​器,​但​其​安全​性​较​低。​访问如何​利用​NI Linux Real-​Time​终端​使用​FTP,​详细​了解​NI Linux Real-​Time​的​FTP​支持。​如果​WebDAV​不适​用于​特定​应用,​NI Linux Real-​Time​终端​还​可​通过​SSH​支持​SFTP​功能。

此外,​NI Linux Real-​Time​的​文件​路径​与​现有​Real-​Time​终端​和​Windows​存在​几点​重要​的​区别。​如果​要​避免​在​迁移​代码​或​管理​支持​基于​Linux​的​全新​RTOS​的​终端​上​的​数据​日志​时​出现​文件​路径​错误,​请​参考此​文档

 

编​程​式​系统​访问

LabVIEW Real-​Time​模​块​可​支持​NI Linux Real-​Time​终端​上​的​System Exec VI。​NI Linux Real-​Time​终端​上​的​System Exec VI​提供​Linux​命令​行​的​访问​权限,​使​您​可以​通过​编​程​方式​管理​NI Linux Real-​Time​操作​系统,​并​直接​通过​LabVIEW Real-​Time​应用​程序​与​终端​上​运行​的​其他​程序​交互。

除了​System Exec VI,​NI Linux Real-​Time​终端​也​可​支持​调​用​库​函数​节点。​调​用​库​函数​节点​可​帮助​您​更​轻松​地​将​外部​C/​C​+​+代码​与​LabVIEW Real-​Time​应用​程序​集成,​并​为​在​NI Linux Real-​Time​终端​上​安装​并​运行​的​其他​程序​提供​的​C API​创建​LabVIEW​包装​器。

NI Linux Real-Time终端支持System Exec VI和调用库函数节点 NI Linux Real-Time终端支持System Exec VI和调用库函数节点

图​3.​NI Linux Real-​Time​终端​​支持​System Exec VI​和​调​用​库​函数​节点。​您​可以​通过​LabVIEW Real-​Time​应用​程序​与​NI Linux Real-​Time​操作​系统​和​其他​程序​无缝​交互。

 

访问​Linux​生态​系统

运行​NI Linux Real-​Time​的​终端​可​极大​受益​于​Linux​提供​的​庞大​IP​生态​系统。​​要​安装、​管理​和​利用​该​生态​系统,​需要​使用​NI Linux Real-​Time​上​提供​的​Package Manager:​opkg​。​如需​详细​了解​opkg,​请​访问OPKG Package Manager

NI Linux Real-​Time​终端​除了​可​帮助​您​更​轻松​地​将​C/​C​+​+代码​与​System Exec VI​和​调​用​库​函数​节点​相​集成​之外,​还​支持​您​使用​Linux​生态​系统​的​代码、​复​用​内部​代码,​以及​​使用​基于​Eclipse​的​工具​开发、​部署​和​调​试​C/​C​+​+代码。​如需​详细​了解​NI Linux Real-​Time​的​C/​C​+​+开发​工具​(Eclipse​版),​请​查阅构​建​NI Linux Real-​Time​的​C/​C​+​+应用​程序。

访问Linux Real-​Time​离​线​下载,​获取​Linux​系统​的​驱动​支持。

 详细​了解NI Linux Real-​Time​操作​系统​对​PXI​硬件​的​支持

高级​实​时​性能

全新​NI Linux Real-​Time​采用​与​当前​Real-​Time​终端​相似​的​实​时​调度​器​来​处理​时间​紧迫​的​代码​调度,​通过​完全​公平​调度​器​(CFS)​来​处理​所有​非​关键​代码​调度。​目前​的​Real-​Time​终端​配备​专用​的​RTOS,​仅​依赖​一个​实​时​调度​器​来​管理​​时间​关键​型​任务​和​优先​级​较​低​的​系统​任务。​NI Linux Real-​Time​的​CFS​可​更高​效率​地​调度​优先​级​较​低​的​任务,​从而​提高​性能。​如需​详细​了解​CFS,​请​访问Linux 2.6​完全​公平​调度​器​内部​解析。

除了​调度​器​改变​之外,​您​还​应当​注意到​NI Linux Real-​Time​在​支持​多核​方便​也​发生​了​变化,​因为​所有​支持​这个​新​RTOS​的​NI​嵌入式​硬件​设备​都是​多核​架构。​对于​多核​支持​来说,​遵循​最佳​编​程​实践,​​避免​以​100%​的​内​核​占用​率​在​处理​器​内​核​上​运行​时间​关键​型​循环​非常​重要。​这​是​因为​多核​NI Linux Real-​Time​系统​中的​每​个​内​核​均​需要​一定​的​时间​来​运行​操作​系统​维护/​开销​功能,​以免​严重​影响​系统​的​性能。​​为了​避免​这种​​性能​下降,​应​确保​时间​关键​型​循环​允许​CPU​每​运行​10​秒​钟​可​有​10​毫秒​的​休眠​时间​来​进行​开销​处理。

同样​值得​注意​的是,​如果​连续​关联​任务​可以​在​​处理​器​内​核​间​并行​运行,​那么​在​运行​NI Linux Real-​Time​的​多核​系统​上,​处理​时间​关键​​型​任务​和​系统​任务​都​可能​会​出现​性能​下降。​这​是​因为​在​不同​​处理​器​内​核​上​同时​运行​的​连续​关联​任务​之间,​信息​不能​有效​地​进行​​通信。​为了​避免​这样​的​性能​损失,​请​遵循​LabVIEW Real-​Time​编​程​最佳​实践,​将​时间​关键​型​代码​和​系统​任务​分配​给​不同​的​处理​器​内​核。​您​可以​通过​将​处理​器​内​核​设置​为​仅​处理​时间​关键​型​功能​来​实现​这种​分配,​也可以​指定​用于​定​时​循环​或​定​时​顺序​结构​的​处理​器​内​核,​如​图​4​所​示。​查看配置​定​时​结构​设置,​了解​更多​​使用​LabVIEW Real-​Time​优​化​多核​系统​的​最佳​实践。

图​4.在​LabVIEW Real-​Time​中​使用​定​时​循环​结构​分配​处理​器​亲和​度​的​方法​有​2​种:​(1)​双击​定​时​循环​结构,​在​弹出​的​配置​对话​框​中​设置​处理​器​或​(2)​将​一个​值​直接​连​线​到​结构​左侧​的​节点​上。

 

与​所有​系统​升级​一样,​建议​在​迁移​到​基于​的​NI Linux Real-​Time​终端​后​重新​验证​应用​程序,​因为​个别​功能​的​性能​可能​会​有所​提升​或​降低,​从而​影响​应用​程序​满足​所有​系统​需求​的​能力。​尤其是,​基于​Linux​的​Real-​Time​终端​的​内存​分配​可能​会对​抖动​产生​较大​的​影响。

 

依赖​熟悉​的​开发​环境​满足​新​需求

LabVIEW​​对​新​NI Linux Real-​Time​的​支持​为​您​提供​了​各种​优势,​让​您​可以​在​熟悉​的​LabVIEW​开发​环境​中​更​轻松、​更​快速​地​满足​当今​的​嵌入式​应用​需求。

加入​NI Linux Real-​Time​社区​讨论

Linux​是​Linus Torvalds​在​美国​和​其他​国家/​地区​的​注册​商标。