疤痕增生是什么原因| 膝盖痛吃什么| 8月7日什么星座| 血压高呕吐是什么征兆| 路征和景甜什么关系| 羊宝是什么东西| 脑萎缩挂什么科| 打日本电话前面加什么| 女朋友过生日送什么最好| 酒店尾房是什么意思| 孕酮代表什么| 什么泡水喝杀幽门螺杆菌| 脾不统血吃什么中成药| 尿床去医院挂什么科| 锦纶氨纶是什么面料| 前胸后背出汗多是什么原因| 豺狼虎豹为什么豺第一| 酸菜是什么菜做的| 现在最火的歌是什么| 11月14号是什么星座| 苯醚甲环唑防治什么病| 枸杞什么时候吃最好| 小苏打是什么| 梦见参加葬礼是什么意思| 头孢主要治什么病| 高梁长什么样子| 派大星是什么动物| 支气管炎哮喘吃什么药| 灰指甲用什么药效果好| 赞什么不已| 艾灸是什么东西| 肺结节吃什么食物散结节最快| 眉心跳动代表什么预兆| 什么山不能爬脑筋急转弯| 杨梅什么时候成熟| 什么品牌的奶粉最好| 什么雪糕最好吃| 大姨妈吃什么| 好饭不怕晚什么意思| 妈妈的爱是什么| 下嘴唇发麻什么病兆| 清朝什么时候灭亡的| 1103是什么星座| 山东吃什么主食| 血糖高有什么症状| 耳鸣脑鸣是什么原因引起的| MR医学上是什么意思| pop是什么意思| 槟榔为什么会上瘾| 内心的os是什么意思| 脑供血不足吃什么中成药好| 尿素氮偏低是什么原因| 6541是什么药| 为什么眼睛会有红血丝| 胃疼吃什么食物对胃好| 羊肉和什么一起炖最好| 财政部部长什么级别| 嘴唇有黑斑是什么原因| 包装饮用水是什么水| 手麻是什么病| 小确幸什么意思| uu是什么意思| 有鳞状细胞是什么意思| 什么是低密度脂蛋白| 麻古是什么| 什么是原发性高血压和继发性高血压| 避孕套什么牌子好用又安全| 湿疹是什么| 天后是什么意思| 潜血试验阳性什么意思| 甲状腺在人体什么位置| 三维和四维有什么区别| 油腔滑调指什么生肖| 什么是火象星座| 海藻酸钠是什么| 痛经喝什么可以缓解| 属蛇的是什么星座| 梦见自己的衣服丢了是什么意思| 为什么故宫龙椅坐不得| 梦见捡手机是什么意思| 走路对身体有什么好处| 鹦鹉鱼吃什么| 等代表什么生肖| 落叶像什么飘落下来| 做些什么| 刘邦和刘备什么关系| 疱疹长什么样子图片| 什么通便效果最快最好| 内分泌紊乱有什么症状表现| dodo是什么意思| 张信哲为什么不结婚| 天蝎座和什么星座最配| 财鱼是什么鱼| 烫伤擦什么药膏| 食管反流吃什么药最好| 比利时说什么语言| hpv51阳性是什么意思| 多西他赛是什么药| 谷胱甘肽是什么| 战区司令员是什么级别| 财神叫什么名字| 12月24是什么星座| 海肠是什么东西| 波涛澎湃是什么意思| 白带拉丝是什么原因| 为什么会有蚊子| 时迁的绰号是什么| 2022年五行属什么| 平顶山为什么叫平顶山| 世界第一大运动是什么| 病毒感染发烧吃什么药| 绮丽的什么| 山东简称为什么是鲁不是齐| 脸上长白斑是什么原因引起的| 圈层是什么意思| 老鸨什么意思| 化疗是什么| 枫叶是什么颜色的| 边字是什么结构| 女人小腹痛什么原因| 三生有幸是什么意思| 什么是淋巴肿瘤| 为什么伴娘要未婚| 喊麦什么意思| 返点是什么意思| 什么颜色属木| 血管炎吃什么药| 九天揽月是什么意思| 出生日期查五行缺什么| 性侵是什么意思| 印度的全称是什么| 嘴唇起皮是什么原因| 猫为什么不怕蛇| 苟同什么意思| 小孩突然抽搐失去意识是什么原因| 自戕是什么意思| 安宫牛黄丸有什么作用| 什么时候征兵| 消化不良吃什么药| 秋黄瓜什么时候种| 阳历九月份是什么星座| 经常头疼挂什么科| 什么是孤独| 梦见包丢了是什么意思| 大力出奇迹什么意思| 一日无书下一句是什么| 天然气主要成分是什么| 唇珠在面相中代表什么| 忽然流鼻血是什么原因引起的| 吃什么容易长胖| 驰字五行属什么| 眼睛红红的是什么原因| 一纸空文是什么意思| 厚颜无耻是什么生肖| 耳朵堵塞感是什么原因| 后背中心疼是什么原因| 白细胞低是什么原因| vibe什么意思| 甲亢与甲减有什么区别| 护士资格证有什么用| 猫传腹是什么病| 脑ct都能查出什么病| 低血钾吃什么药| 蚊子不咬什么体质的人| 日语一库一库是什么意思| 带状疱疹一般长在什么地方| 肾火旺吃什么药| hold住是什么意思| 祭日和忌日是什么意思| 火鸡面为什么那么辣| 木薯是什么东西图片| 梦到生孩子是什么意思| 成人男性尿床是什么原因造成的| 河东狮吼什么意思| 速度是70迈心情是自由自在什么歌| 用盐水洗脸有什么效果| 化疗前要做什么检查| 柬埔寨有什么特产| 滚刀肉是什么意思| 磕头虫吃什么| 女人右下巴有痣代表什么| 血压压差小是什么原因| 女性胆囊炎有什么症状| 吃什么补胰腺最好| 一个白一个本是什么字| 深是什么生肖| 什么带不能系| 长白班什么意思| 六子是什么意思| ml是什么意思| 电脑一体机什么牌子好| 照见五蕴皆空什么意思| 胎先露是什么意思| pb是什么单位| 柯基为什么要断尾巴| 鹿五行属什么| 海参不能和什么一起吃| 灰指甲是什么原因引起| 960万平方千米是指我国的什么| 一什么树| 骨质密度不均匀是什么意思| md是什么职位| 梦见牙齿掉光了是什么征兆| 头晕有点恶心是什么原因| 平片是什么| 金钱能买来什么但买不来什么| 头痒用什么洗头可以止痒| 扩词是什么| 苯甲酸钠是什么东西| 状况是什么意思| 二十七岁属什么生肖| 斗拱是什么意思| 发烧吃什么水果| 财鱼是什么鱼| 吃蜂蜜不能吃什么食物| 吃白萝卜有什么好处| 碧玺是什么| 不着相是什么意思| 腿走路没劲发软是什么原因| 霜降穿什么衣服| 夏令时什么时候开始和结束| 什么人容易得肺结核| c反应蛋白偏高是什么原因| 怀孕为什么不能吃韭菜| 花团锦簇是什么意思| 尿道口灼热感吃什么药最快| 梅毒查血查什么项目| 魁罡贵人是什么意思| 雌二醇低是什么原因造成的| 洋红色是什么颜色| 冰淇淋是什么做的| 无事不登三宝殿什么意思| 葡萄什么时候成熟| 着数是什么意思| 哨兵是什么意思| 肝脂肪沉积是什么意思| 白细胞酯酶阳性是什么意思| 懦弱的近义词是什么| 肾阴虚火旺有什么症状| 生理性厌恶是什么意思| 刘邦是汉什么帝| 藏头诗什么意思| 两个子是什么字| 农历12月18日是什么星座| 寻常疣用什么药膏除根| 柠檬有什么功效和作用| 佛跳墙是什么意思| 怀孕后的分泌物是什么样的| 20年属什么生肖| 二椅子什么意思| 焦虑吃什么药好| 鸡飞狗跳是指什么生肖| 社保缴费基数和工资有什么关系| 扁桃体发炎发烧吃什么药| 外人是什么意思| 观音坐莲是什么姿势| 四两拨千斤是什么意思| 霸屏是什么意思| 喉咙干吃什么药| 家里什么东西止血最快| 蛇缠腰是什么病怎么治| 梦到好多蛇是什么意思| 头晕恶心什么原因| 丙磺舒是什么药| 百度

新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 使用图形化的开发环境——LabView开发嵌入式系统

МИД Узбекистана Мир в Афганистане -- залог стабильности и процветания ЦА

——
作者:NI中国分公司市场工程师 汤敏 时间:2025-08-04 来源:电子产品世界 收藏
百度 15时06分,在消防官兵持续不断的保护下,圆满完成了整个救援工作,液化天燃气槽车在2辆消防车的保护下安全驶离高速路。

传统设计模式所应对的挑战

正在渗入现代社会的各个方面,广泛地应用于航空航天、通信设备、消费电子、工业控制、汽车、船舶等领域,据统计,在美国平均每个中产阶级家庭要使用40~50个。巨大的市场需求推动了向更高的技术水平发展。设计师们一方面采用性能更强大的嵌入式处理器如32位、64位RISC芯片取代传统的8位、16位微处理器;另一方面嵌入式系统也由单处理器单操作系统的传统结构向混合型Multi-core系统发展,通过采用多个处理器和OS提高系统并行度来提高系统运行效能,并且设计师们往往同时采用MPU、DSP和FPGA等多种可编程器件来增强处理能力,满足应用功能的升级。

嵌入式系统复杂性的不断增加给设计师们带来了很大的挑战,代码长度呈指数级增加,根据十年前的估计,嵌入式系统的平均代码量为10万行,到2001年实际已经超过了100万,而现在估计为500万。第三方独立市场预测机构EMF在对900多名嵌入式系统开发人员进行调研后指出,超过50%的嵌入式设计比预期时间晚上市,而平均延迟高达4个月;在已发布的产品中,有近30%的设计未达到预期的功能和指标。由此可见,随着嵌入式系统复杂性的不断增加,软件工程的重要性毋庸置疑,而大部分的嵌入式系统开发人员都缺乏这方面的专业训练。与此同时,随着嵌入式系统的广泛应用,越来越多领域的专家比如机器人设计师、控制工程师、测试工程师需要使用嵌入式技术来构建他们的系统,他们既缺乏嵌入式系统的专业知识,也不一定经过软件工程的专业训练。因此,无论是嵌入式系统本身的发展,还是开发人员的专业限制,都需要一种新的设计模式和解决问题的途径来应对目前的挑战。

嵌入式系统开发工具的发展趋势

随着嵌入式系统的快速发展和复杂性的不断增加,基于文本的编程方式所面临的挑战愈发严峻,这种编程模式在将来不可能彻底解决问题。加州大学伯克利分校嵌入式研究专家Edward Lee博士指出,现有的嵌入式系统的开发手段如基于文本编程和面向对象的工具都难以用来构建嵌入式实时系统,因为面向对象很难直观地表达时间和平行性(parallelism),而时间和平行性或并行(concurrency)在现在的嵌入式系统中是必不可少的。面向角色(actor-oriented)的图形化方法是更适合嵌入式软件设计的工具。

应对嵌入式系统所面临的挑战,工程师们已经有了一些解决的方向,比如采用实时多任务编程技术和交叉开发工具技术来控制功能复杂性、简化应用程序设计、保障软件质量和缩短开发周期。但是现有的嵌入式系统开发工具非常多,全世界嵌入式处理器的品种总量已经超过1000种,流行体系结构有30多个系列,在其上运行的操作系统环境也非常多样化,包括VxWorks、QNX、Linux、 Nuclears、WinCE等等。不仅各种操作系统有各自的开发工具,在同一系统下开发的不同阶段也有不同的开发工具。如在用户的目标板开发初期,需要硬件仿真器来调试硬件系统和基本的驱动程序,在调试应用程序阶段可以使用交互式的开发环境进行软件调试,在测试阶段需要一些专门的测试工具软件进行功能和性能的测试等等。最合理的解决方案是向基于平台的工具转移,它能够更好地表达整个系统,减少与特定硬件以及操作系统的相关性,使更多的软件设计和算法容易理解并被重复使用;而从基于文本的工具向图形化工具的转移则可以直观地表达系统,图形化系统设计(Graphical System Design)的理念就是源于这两大趋势。通过简化嵌入式编程的复杂性,降低了对工程师在嵌入式设计流程中各个步骤的要求;同时提供了从设计、原型到部署,从软件调试、功能测试到生产检测的统一环境,使得工程师们可以更快速地进行重复设计。

在嵌入式系统中实现图形化已经成为大势所趋,现在市场上的工具都在向图形化的方向转变,但往往仅限于基于嵌入式操作系统的图形界面开发;而且由于它们是针对特定硬件或操作系统的工具,与硬件和操作系统平台有很大的相关性,这不足以彻底解决行业将要面临的挑战的。现在市场需要的是一种完全的图形化编程语言,提供足够的灵活性和功能,以满足更广泛应用的需求。因此,图形化系统设计的关键因素是图形化编程。

对于时间和平行性的支持

20年来,科学家和工程师一直在使用LabVIEW为他们的设计实验室、验证实验室和生产现场构建自动化数据采集和仪器控制解决方案,并在这些应用领域成为业界的事实标准。其核心在于,LabVIEW图形化编程语言使没有太多软件背景的技术专家能够快速搭建高级自动化测量和控制系统。和传统的文本编程相比,LabVIEW天生是一种并行结构的编程语言,而时间和并行性在现在的嵌入式系统中是必不可少的。比如,LabVIEW在已有的定时循环结构上新加了硬件定时功能,它是一种表示时间和并行的语义,可以设置操作系统优先级、延时、循环速率等等,如图1所示。如果我们将图1所示的两个并行任务的执行目标扩展到嵌入式对象,比如FPGA或微处理器,就可以发现通过编程环境的一致性和可升级性,LabVIEW能够容易地实现和管理嵌入式系统的并行性。回想在文章前面所提到的向多处理器转移的趋势,现在我们可以憧憬使用可扩展的直观图形化编程来开发应用,并将处理过程分配到不同的处理器上。

图1 对两个并行任务的编程

支持多种算法设计

谈到嵌入式系统设计,人们所指的其实包括两部分工作:算法设计和固件设计。对于嵌入式系统设计来说,另一个关键要求是软件平台必须能够兼顾实时嵌入式设计中常见的多种算法设计,即计算模型。这些计算模型符合系统设计师们筹划系统时的方式,从而降低从“系统要求”转换到“软件设计”的复杂性。近年来LabVIEW已经包含了多种计算模型以更好地满足不同专业背景的嵌入式系统开发者的需求。LabVIEW现在可以通过连续时间仿真、状态图、图形化数据流模型和基于文本的数学语言mathscript等多种方式来表达各种算法,同时它提供了很多交互式的工具用来帮助数字滤波器、控制模型、通信系统的设计以及数字信号处理算法的开发,从而在这些顶层应用中进一步简化设计师的工作。

快速构建原型—沟通虚拟世界与物理世界的桥梁

如前所述,很多设计比预期时间晚上市,并且有一些在投入市场以后发现未达到预定的功能和指标,因此必须采取一定的措施来加快设计流程、提高设计质量。一种解决方案就是更早地将真实世界的信号和硬件引入到设计流程之中,进行更好的系统原型化,从而在早期就发现并修正潜在的问题。

但是在任何设计和开发流程中,基于软件设计和仿真工具的虚拟世界与电子或机械测量的物理世界之间有一个很大的鸿沟,而LabVIEW平台最明显的价值就是在虚拟和物理世界的鸿沟上建一座桥梁。物理测量是与设计和仿真完全不同的挑战,要求与广泛的测量和控制硬件紧密集成,并以优化的性能处理大量的通道数或超高速吞吐量。LabVIEW平台经过不断演进,在物理测量领域具有很高的性能和灵活性。更重要的是,LabVIEW平台是开放的,设计人员可以将测量数据与仿真结果相映射,甚至互换仿真和物理数据,以用于设计中的行为建模或者以仿真激励驱动物理测试,从而更有效快速地进行系统原型构建。

嵌入式系统开发人员如果要定制硬件用于最终的发布,很难同时并行地开发软件和硬件。而如果直到系统集成测试的时候才引入I/O用真实世界的信号检验设计,一旦发现存在问题,那就意味着很难在预期时间完成设计任务了。大多数设计师当前用评估板来进行系统的原型化,但是,原型板往往只具备少量的模拟和数字I/O通道,也很少支持视觉、运动或同步的功能。此外,设计师经常因为需要传感器或特殊I/O的支持而花费大量时间来开发定制的原型板,而这些仅仅是为了设计概念的验证。使用灵活的、商业化的原型平台可以大大简化这个过程,消除其中硬件验证和板级设计的大量工作。对于大多数系统,原型化平台必须包括最终发布系统的同样部件,比如用于执行算法的实时处理器、用于高速处理的可编程逻辑器件,或者将实时处理器接口到其他部件。因此,如果这个商业化的系统不能满足所有的要求,那么这个平台必须是可扩展的,并且支持自定义。NI提供了各种硬件平台与LabVIEW集成,完成从设计、原型到部署的全过程。例如使用LabVIEW和NI 可重复配置I/O(RIO)设备或NI CompactRIO平台,可以快速而便捷地创建嵌入式系统的原型。

例如Boston Engineering公司要开发一种牵力控制机用于数码照片打印系统。其中,彩色墨盒通过驱动马达馈送到打印头,由卷带电机和推进电机来控制牵力。切割机底盘的振动、每次打印的照片数目和每个电机的速度变化都会影响到底层的牵力。控制系统通过两个电机的位置来保证卷带和推进的牵力处于设定范围之内,否则就会有色差。设计的牵力控制硬件需要两个脉宽调制输出来控制电机,两个编码器将转速反馈给电机,两个模拟输入通道连接霍尔传感器用来测量位置,两根数字线用于信令。传统的原型板无法满足这些要求,需要使用可以自定义I/O的原型平台,因此他们使用CompactRIO平台来进行原型化工作。他们在嵌入式控制器中运行管理程序,在FPGA中运行电机控制算法,这种资源配置使得原型化构建和最终系统发布在编程模式上是非常相似的。为了在FPGA中运行控制算法,他们将ZPK(zero-pole-gain)模型转化为LabVIEW数字滤波器设计工具包中提供的一种滤波器,由于这个工具包支持LabVIEW FPGA代码的自动生成和优化,所以原先的ZPK模型就可以直接转化成能够在FPGA上运行的代码。另外,他们还使用这个工具包对原先的浮点算法进行了定点转换,以节约FPGA 资源,并对量化后的模型进行测试、验证、修正从而得到预期的结果。通过这种原型化方式,他们节约了大量的开发时间。

发布到任何32位处理器

LabVIEW包括一个广泛的工具集,该工具集构成了一个用于设计、控制和测试的图形化开发平台。新的NI LabVIEW嵌入式开发模块是LabVIEW图形化编程环境的一款全新附加模块,是一个开放的框架,它可以集成任意的第三方工具链,将生成的C代码与LabVIEW运行库函数和板卡支持程序包,编译成为针对某一目标并能在之上运行的二进制代码。通过LabVIEW嵌入式开发模块和工具链,可以发布到运行任何操作系统的任何的32位处理器。该模块包含了近千个内建的库函数,涵盖了高等算法、文件I/O、逻辑和信号处理各个方面。原先无法利用到嵌入式编程的工程师们都可以进入32位微处理器的领域之中,通过LabVIEW中附加的状态图、控制图表、信号处理库函数等这一完整的工具来设计他们的应用,解决各种问题。此外,通过LabVIEW嵌入式方式 ,工程师和科学家可以使用一种叫做内联C节点(Inline C Node)的新特性,整合现有的嵌入式代码,来保持LabVIEW的开放架构。另外,在LabVIEW嵌入式项目环境中,还可以直接添加用C或者汇编开发的源代码,或者库文件,帮助开发人员充分利用以前的工作成果。

图2 内联C节点

LabVIEW嵌入式环境的调试功能非常强大。除了用于快速调试的图形化用户接口显示件、探针、断点和函数单点调试之外,LabVIEW嵌入式开发模块为代码调试提供了另外两种无缝的接口。在嵌入式目标平台上,工程师可以使用“仪器调试”通过TCP/IP、RS232或CAN进行调试。使用内建的片上调试接口,工程师可在不影响程序性能基础上通过工业标准协议如JTAG、BDI和Nexus等进行调试。

减少与特定硬件以及操作系统的相关性

基于平台的工具,需要能够表达整个系统,而减少与特定硬件以及操作系统的相关性。在传统的开发模式中,嵌入式目标本身要求程序员在编写代码之前对目标有深入的了解。程序需要知道板卡上各种关于内存映射和寄存器的信息,才能在板卡上执行他们的代码。另外,大部分代码是专为某一特定目标编写的。这样,在一块板卡上使用不同的微处理器或是不同的外围设备,可能就需要重新编写大部分已有的代码,或是完全从头开始。这意味着最终产品的扩展性方面是有缺陷的。使用LabVIEW嵌入式开发模块,工程师和科学家们不需要了解最终的目标就可以进行代码开发,因为软件生成的是LabVIEW应用的ANSI C代码,而不是针对某个特定目标的二进制代码。如图3所示,灰色区域的部分对于开发员来说是透明的,他们在开发过程中不需要了解目标硬件上内存映射和寄存器的情况。同时,LabVIEW嵌入式方式是一个开放的框架,它可以整合任意的第三方工具链,将生成的C代码、LabVIEW运行库函数和板卡支持程序包(BSP)编译成为针对某一目标并能在这个目标上运行的二进制代码。BSP是一种作为C代码与板上外围硬件接口的底层代码。因此,如果板卡需要升级,工程师可以简单地将不同的BSP链接到LabVIEW中,在现有的图形化代码上作一小部分改动就可以完成。

图3 嵌入式模块的开发流程

与目标无关的代码开发意味着工程师和科学家不再需要等待硬件确定之后再开始设计算法。这样并行的工作和效率的提升,使开发周期和产品上市时间大大缩短。最后,所生成的LabVIEW代码不是针对某个特定平台的,所以您很容易升级到新的硬件。

结语

LabVIEW为嵌入式系统开发提供了一个跨越多种、多代产品的连贯性的平台,使设计人员能够多年重复并改进其设计,而不必替换其整个工具集或者重新学习不同的设计方法,从而使设计的速度和质量得到提高。同时,其图形化的编程模式使得更多的工程师和科学家可以使用他们的专业知识开发嵌入式应用,而不需要再依赖嵌入式方面的专家。使用统一的环境进行设计、原型到部署,LabVIEW为嵌入式系统开发提供了前所未有的革新方式。

霍尔传感器相关文章:霍尔传感器工作原理


霍尔传感器相关文章:霍尔传感器原理
脉宽调制相关文章:脉宽调制原理
色差仪相关文章:色差仪原理
数字滤波器相关文章:数字滤波器原理


评论


相关推荐

技术专区

关闭
岳飞为什么必须死 拿的起放的下是什么意思 间接胆红素偏高是什么意思 睡眠不好挂什么科门诊 头皮痒掉发严重是什么原因
才高八斗什么意思 吃什么可以护肝养肝 突然全身抽搐是什么病 土豆可以做什么美食 家里为什么有跳蚤
七什么八什么 赡养是什么意思 做梦梦见生孩子是什么意思 什么东西清肺最好 三鹿奶粉现在叫什么
太子是什么意思 1972年属鼠五行属什么 躯体是什么意思 肺痨是什么病 古驰属于什么档次
眉毛里有痣代表什么hcv7jop9ns6r.cn 肌酐低是什么原因hcv9jop6ns7r.cn 熠熠生辉是什么意思hcv8jop2ns5r.cn 郭五行属什么hcv9jop0ns0r.cn 猴子是什么颜色hcv9jop2ns8r.cn
什么牌子的冰箱最好cj623037.com 清炖排骨都放什么调料wuhaiwuya.com 又是什么意思hcv9jop8ns2r.cn 门神是什么意思hcv9jop7ns5r.cn 情商是什么意思hcv9jop4ns2r.cn
上什么下什么hcv7jop9ns4r.cn 严肃的什么hcv9jop2ns5r.cn 顺理成章是什么意思hcv8jop4ns0r.cn 常山现在叫什么hcv8jop1ns5r.cn 伤口为什么会痒0297y7.com
肺门不大是什么意思hcv9jop2ns1r.cn c2m模式是什么意思hcv9jop7ns4r.cn 县级以上医院是指什么hcv9jop7ns0r.cn 睡觉磨牙是什么情况hcv7jop6ns3r.cn 嘱托是什么意思hcv9jop6ns1r.cn
百度