

作为典型的嵌入式开发,物联网应用的开发与互联网应用从硬件配置到运行环境有巨大的不同。本文介绍了当前物联网开发者面临的挑战,并分析IoT时代完整的开发平台至少需要具备的特征。
1969年10月29日晚上10点30分,克兰罗克在洛杉矶向在斯坦福的比尔·杜瓦利的计算机发送了两个字符“Lo”,它们是单词“Login”的一部分,只发送了“Lo”,传输系统就崩溃了。这是一个伟大的事件,标志着世界上第一次计算机网络互连的开始,也标志计算机编程由单机向网络发展。
物联网(IoT)是个新名词,顾名思义,就是把物体用网络连接在一起。却是一个新瓶装旧酒的新名词,它不是一个新事物。看官你说,当年雷纳德•克兰罗克(Leonard Kleinrock)和比尔.杜瓦利手中的互相连接的两台计算机,算不算物联网设备,他们的确是用通信介质连接在一起的“物体”啊,谁说计算机不算物体的?
今天的物联网通信,与40多年前传输的两个字节,并没有本质的不同,说来也就是通信速度、通信成本、设备体积和功耗方面,逐步进化而已。然而,量变引起质变,上世纪末计算机网络通信的发展,引发了互联网革命,现在,随着通信成本的降低,功耗的减小、无线通信的普及,又引发了物联网革命。
互联网时代,承载网络应用的是通用计算机或者个人终端数字助理,例如手机、iPad等。通信主要关注的是数据流量,也就是带宽,应用主要关注的是界面的友好性、丰富性、个性化。同时,CPU功能比较强大,内存配置等也比较丰富,并不强调实时性,也不特别强调可靠性,开发平台也很一致,功能丰富。
物联网应用开发的挑战
物联网应用,与互联网应用有着巨大的不同,物联网应用开发是典型的嵌入式开发,从硬件配置到运行环境等等,都千差万别。
谈到开发平台,很多人第一反应就是编程语言,从汇编、C、C++、Pascal、VB、VC等编译型语言,到Java、JS、Python、Lua等脚本语言,说得上名字的、说不上名字的,可以罗列出成百上千种,著名的TIOBE,每年都要为各种编程语言排座次。其实要谈物联网开发平台的发展,还得从早期嵌入式系统说起。曾几何时,嵌入式MCU很多只有几十字节的内存,几百自己就算多的了,那时候,汇编语言是嵌入式编程不二的选择。那时候,也没有编程平台的说法的,也没有Shell之类的调试工具,更没有标准IO系统,总之,程序员就像在一堆沙土上盖房子,没有地基,也没有房梁,更没有混凝土,就是用泥浆砖头石块慢慢糊。及后来,出现了单片机前后台C语言(俗称裸机C)开发工具,典型的是keil,同时,也出现了RTOS,例如vrtx、pSOS、VxWorks等,但裸机C语言开发长期占主导地位。早期的C语言开发平台,从平台角度,其实没比汇编年代进步多少,同样的没有Shell、没有标准IO系统,没有异常处理系统,除了编码语言外,差不了太多。虽然代码的可移植性比汇编强,但仍然是跟硬件平台紧耦合的,它要求软件工程师了解硬件的每一个细节,了解CPU每一个寄存器的含义,硬件平台稍有变动,软件就懵逼了。
传真:0755 - 2799 6625
投诉:133-2299-1235
邮箱:sale@inmiga.com