账号:
密码:
最新动态
产业快讯
CTIMES / 文章 /
从软件转型韧体工程师之路
 

【作者: 誠君】2003年11月01日 星期六

浏览人次:【16068】

系统级单芯片(SoC)以数百万逻辑闸来取代传统面板上的大部份组件,这是由于超集成电路(VLSI)的微米或奈米技术已经足够实现一般SoC的功能,同时能节省电能和成本,这也促使信息家电、消费性电子、网络通讯市场的不断蓬勃发展。


在过去十年前的商业思维里,计算平台非UNIX工作站,就是个人计算机,鲜少人会想到计算平台可以缩小到只有手掌一样大。不过,这里所说的计算平台至少包含软件操作系统、储存装置、中央处理器、输出入通讯端口、显示设备、人机接口,传统的袖珍型计算器是使用8051 CPU,没有软件操作系统,所以其功能是无法和SoC比拟的。


硬件变软件

这么多的功能全由SoC负责管控,所以面板体积可以缩小、电能和成本可以降低。不过,这其中的关键是硬件的工作都转化成软件的工作了。为何会如此?因为为了保持设计上的弹性(这一点是SoC与ASIC最大的不同),SoC里面有许多缓存器(registers),这些缓存器所储存的数据实际上就是硬件线路的描述,程序设计者透过这些缓存器就可以设定(configure)SoC的功能。


这些缓存器提供的设定项目包罗万象,譬如:有支持以太网络的SoC内部缓存器组中会有设定MAC接收和传送控制器的缓存器、纪录MAC接收和传送状态的缓存器、决定讯框(frame)地址和大小的缓存器、设定默认地址过滤封包的缓存器......等。这种转变,对硬件厂商而言似乎是一大福音,不过,SoC所带来的软件开发成本却是硬件厂商始料未及的。


孰是韧体?孰是软件?

就技术面而言,使用SoC所开发出来的新产品一般都统称为嵌入式系统,因为这些新产品都需要嵌入式操作系统(embedded system)。在传统的观念里,所谓软件是指含ISO第三层(网络层)以上的软件堆栈(stack),而韧体是指ISO第二层(数据链结层)。


过去的硬件工程师大多数会自己设计简单的汇编语言和C语言,用来验证电路设计的正确性。在那个时代里,软件操作系统是很昂贵的、很神秘的。他们最常使用的CPU是8051、8088......等之类的8-bit微控制器,他们直接使用微控制器的指令集来写程序,这些程序叫韧体(firmware),其所设计出来的功能都很简单。迄今,虽然16-bit、32-bit的微控制器或微处理器已经很流行,但是因为成本考虑,8-bit微控制器仍然是体温计、玩具、袖珍型计算器、家电....等产品的控制核心。


多年之后,仍然有人沿习传统,将嵌入式操作系统称作韧体,而单独将ISO第七层(应用层)叫作软件。这是因为Windows操作系统的关系,用户只能藉用VC++、VB或其它应用软件开发用户的应用程序,由于微软至今仍然不公开他的Windows源代码,所以用户只能触及应用层。就因为Windows操作系统的魅力无法挡,许多人只懂得要学VC++、VB或其它应用软件来开发应用程序,结果大多数人都成为「软件工程师」。


但是遇到目前的经济萧条,很多企业纷纷削减了信息设备的采购与投资,首当其冲的就是中高阶计算机设备和应用软件的需求量锐减,而嵌入式系统却起而代之。大多数软件工程师现在都陷入必须转型的困境,但是要向何处转型呢?除了放弃程序设计的生涯以外,转往嵌入式系统成为「韧体工程师」,似乎成为唯一的一条路。


韧体的重要性

俗称的软件和韧体最大的不同在于:韧体与硬件关系密切(hardware dependent),但是软件与硬件无关(hardware independent)。软件之所以与硬件无关是因为韧体是它们两者之间的桥梁,所以韧体工程师是很珍贵的,他必须既懂硬件还要懂各种低阶程序语言,包含C、C++、汇编语言、Java......等。甚至他还要协助硬件工程师侦测电路,所以他也要懂得如何使用示波器、逻辑分析仪、电表来测量讯号。有时,当利用FPGA开发SoC时,韧体工程师甚至要了解如何利用IC设计软件在缓存器转换层(RTL)去整合C语言、汇编语言、Verilog语言。除此之外,为了找出通讯协议堆栈(protocol stack)程序的错误,他还必须熟悉各种通讯协议标准。但是这种万能的人才目前实在很稀少。


如何转型成韧体工程师?

许多软件工程师出身自数据库应用、网页设计、商用应用、工业控制、人机接口......等,他们已经专精于某些特定应用技术或软件,有些人懂FoxPro、VB,有些人懂PHP、.NET,有些人懂8051汇编语言,可是他们大多数都不精通C语言。要知道目前大多数的嵌入式系统是采用SoC的汇编语言、C语言设计的。所以,他们必须重新温习C语言,并学习SoC的汇编语言才行。


因为大多数软件工程师都具有一定程度的程序设计的经验,所以要重新温习C语言并不是难事。不过,温习的重点应该放在与硬件、韧体相关的部份:


1. Volatile修饰词与SoC的缓存器息息相关,所以必须了解。


2. 一般软件工程师对队列(queue)和链结串行(linked lists)的设计很陌生,因为他们所使用的应用软件已经帮他们设计好了,他们只要懂得如何使用应用函式(API)就行了。但是,嵌入式操作系统里面的队列和链结串行是以C程序的原始码呈现的,所以必须了解它们的逻辑,才能应用得当。


3. 指针(pointer)、结构(structure)、数组(array)是C语言里面最常使用的工具,一般软件工程师虽然了解但都不够熟练,所以必须加强。


目前SoC的IP核心有许多品牌,例如:ARM、MIPS、x86、PowerPC、SH、M-Core.........等,所以要视目标产品是选用何种SoC和IP核心,再来决定要学习哪一种SoC汇编语言。而SoC缓存器的设定大都是透过C语言完成的,所以也要研读SoC的技术手册和它的样版程序。


结语

在人力银行的网站上,有成千上万的软件工程师在找工作,想转换跑道。但是,同时在人力银行网站上,有经验的韧体工程师在谋职者却不超过一百人。联发科和威盛的DVD芯片专利之诉讼,争执点就在韧体上。物以稀为贵,韧体工程师的身价势必会不断攀高的。目前的一般软件工程师只要有勇气、信心、热情,想要转换成韧体工程师不应该是难事才对。


(作者为电子产业资深研发工程师,现为诚君工作室负责人:su2b08@saturn.seed.net.tw)


相关文章
轻松有趣地提高安全性:SoC元件协助人们保持健康
仿真和原型难度遽增 Xilinx催生世界最大FPGA
SmartBond元件增加蓝牙网状网路支援能力
我们能否为异质整合而感谢亚里士多德?
关注次世代嵌入式记忆体技术的时候到了
comments powered by Disqus
相关讨论
  相关新闻
» Fortinet资安报告:96%企业??心云端安全 单一云地整合管理平台成解方
» 宜鼎推出 iCAP Air 智慧物联空气品质管理解决方案 透过即时空品数据自主驱动决策
» 达梭系统携手CDR-Life 加速癌症治疗科学创新
» 宜鼎独创MIPI over Type-C解决方案突破技术局限,改写嵌入式相机模组市场样貌
» 鼎新电脑串连生态系夥伴 数智驱动智慧低碳未来制造


刊登廣告 新聞信箱 读者信箱 著作權聲明 隱私權聲明 本站介紹

Copyright ©1999-2024 远播信息股份有限公司版权所有 Powered by O3  v3.20.1.HK85E3W0B6SSTACUKV
地址:台北数位产业园区(digiBlock Taipei) 103台北市大同区承德路三段287-2号A栋204室
电话 (02)2585-5526 #0 转接至总机 /  E-Mail: webmaster@ctimes.com.tw