让嵌入式Linux变身为低价计算机(上)

来源 :电子与电脑 | 被引量 : 0次 | 上传用户:atta2002
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  前言
  
  嵌入式系统发展至今,已逐渐成为明星级的产业了。它之所以成为众所瞩目的焦点,必然有其技术的特殊性与需求性。以目前家庭最常见的宽带网关器为例,若没有嵌入式系统这项技术,则使用者将必须以一台PC系统,来完成原本宽带网关器要完成的功能。我们会发现,PC系统有很强的运算能力,但通常只用到一小部分,而为了这一小部分的运算功能,却要耗费每小时可能几百瓦的电力。扣除买的成本与电费不算,要让一台PC系统可以固定执行IP分享的功能,将会耗费掉使用者许多的心力去学习与设定,甚至可以说,那不是一般使用者做得到的事。总而言之,个人计算机绝对可以执行嵌入式系统所要完成的工作,但却无法让人接受。因此嵌入系统逐渐展露头角,它有着低功耗、低成本、适当的CPU运算效能与友善的软件接口……等优点。
  然而嵌入式系统虽然有上述优点,却有着高门坎的软硬件开发技术需要建立。若所用的CPU是ARM或MIPS等RISC架构,则软件还需要非常大的开发或移植成本。要完成一项嵌入式系统的产品研发,往往需要投入大量的人力,而产品的成功机率,更因此增添了许多不确定性。
  


  图1:PC in Box系统方块图
  
  本文所要介绍的嵌入式系统是使用金丽科技的x86 SOC,它有着低温、低功耗和低成本等优点。低温使整个系统无需使用风扇,而低于0.9瓦的功耗,则非常适合长时间待机使用。x86 SOC还能让开发技术的门坎降低,使开发平台与目标平台的差距缩到最小,甚至目标平台可以看成是PC on a Chip。目前科技产品有许多创新的应用,皆是先由PC系统常用的软件功能开始,进而独立成为产品。例如MP3随身听,就是从计算机里的MP3播放软件独立出来。因此,若想把PC系统里独具特色的软件功能变为一项大众化且易用的产品,也就是PC in Box的概念,使用金丽科技的x86 SOC将是最佳选择。
  目前最热门的低价即是一项PC in Box的应用,它有着嵌入式系统的优点,但仍然保有PC系统具有的软件功能,可说是集两者的优点于一身。而使用Linux操作系统,不但操作系统稳定且免费,更立即拥有充足的驱动程序支持,还有着极为丰富的自由软件可应用。因此本文将从嵌入式Linux系统开始,进而分析Linux低价计算机的整个开发过程。
  
  系统硬件架构
  
  自从SOC(System On a Chip)的技术逐渐成熟后,嵌入式系统皆使用高整合的SOC为主要芯片。也就是在一块开发板里,都尽量做到IC芯片越少越好。一颗高整合的SOC可以简化生产流程,并且大幅降低成本。本文所使用的金丽科技x86 SOC,里面包含一个333 MHz x86兼容的CPU、南北桥芯片组和Ethernet MAC,也有PCI BUS可外接VGA显示卡和USB 2.0 Host。图1是采用RDC x86 SOC的PC in Box系统方块图。
  在系统方块图里,DDR2共有64 Mbytes,是系统执行时的主存储器。另外SPI-Flash共有4 MBytes,它可以储存BIOS的Firmware,使其成为像一般个人计算机一样的启动方式;也可以储存Boot-Loader、Linux核心和档案系统等等,也就是使用一般常见的嵌入式Linux系统架构。另外在VGA显示卡的部分,使用的是XGI Z9s PCI显示卡。一张VGA显示卡通常都有一段VGA BIOS烧录在显示卡的EEPROM里面,由于VGA BIOS是使用x86指令集,因此要使用这种VGA显示卡,系统必须要有能力可以执行x86指令。目前SOC只有像金丽科技这种使用x86兼容的CPU才有办法执行。
  在开发板外部,透过USB 2.0 Host,分别接USB Keyboard、USB Mouse、USB Audio和USB Flash。其中USB Flash就是目前最经济实用的随身碟。本文系统将以这个外接的随身碟当成根目录档案系统,也就是相当于原本计算机硬盘的角色。另外由Ethernet PHY向外,将有一个RJ-45的LAN Port可接局域网络;以及一个VGA Port可外接LCD屏幕。结合上述几项外围,一部计算机的基本输出入系统皆已备齐。从系统中也可看出,这样的PC-in-Box系统架构与一般计算机比较起来,是极为低成本的设计。
  
  嵌入式Linux系统分析
  
  目前Linux在服务器、PC系统以及嵌入式系统等领域,皆获得广大的采用。在嵌入式系统领域里,若使用ARM或MIPS等RISC,则Linux核心将有别于PC系统,也就是Linux的核心将需要切换成特定的CPU架构,并且需要开发BSP;若使用x86 SOC,则Linux核心与PC系统所使用的相同。差别只在于嵌入式系统不像PC系统有硬盘等大型储存装置,因此启动和储存方式需要使用不同方法。
  通常在开发嵌入式Linux时,一定会有3个主要部分需要开发,分别是Boot-Loader、Linux核心以及根目录档案系统(Root-Filesystem)。这3个部分通常会制作成镜像档(Image File),并且储存在Flash里面,也就是Flash里将会有3个镜像档分别存放在不同的区段。本文系统所用的地址区段如图2所示,其中redboot.bin是Boot-Loader的镜像档,它是整个系统最先执行的程序,相当于一般PC主机板里的BIOS。图2下方的bzImage是Linux核心的镜像文件所在位置,为了节省空间,它是以压缩的方式储存在Flash里。图2中间的initrd.gz则是Ramdisk的镜像档,它解开后会放到内存里,并且由Linux核心挂载成为根目录档案系统。
  


  图2:映像文件在Flash里的位置
  
  目前Boot-Loader有许多选择,常用的有uboot 或Redboot,有些SOC原厂甚至会提供自行开发的Boot-Loader。其主要功能是用来初始化CPU、Flash、SDRAM、UART和Ethernet MAC等等。嵌入式系统一般都是固定的硬件规格,也就是能够做初始化的硬件通常都是固定不变的。因此若更换任何硬件组件,则Boot-Loader可能需要一些修改。另外Boot-Loader也负责把Linux核心和Ramdisk这两个镜像档从Flash里读取出来,并且解压缩放到SDRAM的定位上。当Linux核心和Ramdisk都已放到SDRAM后,Boot-Loader会把CPU控制权移转给Linux核心,亦即结束Boot-Loader的工作,并开始Linux操作系统的执行。图3是Boot-Loader执行时,Flash与SDRAM的使用过程。
  Linux核心就是整个系统的操作系统,主要功能有内存管理、应用程序行程管理、档案系统管理、硬件资源管理、驱动程序挂载以及提供网络通信协议等等。Linux在上述的功能皆非常稳定,而且在档案系统、网络通信协议与驱动程序等等,皆有丰富的支持。当Linux核心执行时,它会先初使化操作系统的软硬件部分,并挂载所需的驱动程序,最后才会挂载根目录档案系统。当根目录档案系统挂载完成,Linux核心会通过执行档名为init的档案,来转移系统执行的控制权到使用者空间,因此只要善加利用init这个档案,就可使系统充分地客制化。图4是Linux核心的主要功能方块图。
  


  图3: Boot-Loader的执行过程
  
  在一般情况下,Linux核心所执行的init,将会是整个系统的第一个行程(Process)。init执行时会去检查inittab这个设定档,并从档案里面的叙述,继续寻找shell script来执行,通常那个shell script都设为/etc/rc.d/rc.sysinit。当系统执行到rc.sysinit时,也就代表Linux核心已完成初始化的工作,剩余的工作要开始交由使用者来决定了。一个嵌入式Linux通常都有其特定的任务需要执行,因此通过rc.sysinit这一script file,就可以设定许多的环境变量,并带起系统真正要执行的应用程序。图五是嵌入式Linux从Boot-Loader到rc.sysinit的执行过程。
  
  转变为低价计算机的关键点
  
  嵌入式系统除了具有低功耗和低成本等优点外,还有系统稳定以及永续执行等软件上的特质。因此嵌入式Linux皆把几个主要的软件制作成镜像文件,除了可缩减储存容量的成本,也可达到系统稳定与永续执行的需求。利用镜像档的方式,则不管日后系统开机几次,都将和出厂时一样;若是一般PC系统,开机数次之后,系统可能就和出厂时的状态有些许不同,也可能从而增加软件技术支持的需求。本文所设计的低价,主要是由嵌入式Linux系统架构所衍生而来,因此除了有PC系统的使用接口外,还继续保有嵌入式系统的稳定特质。
  要从嵌入式系统架构扩充成为低价,主要在于储存系统与VGA显示卡这两部分。目前USB随身碟算是最经济实惠的选择,也是最省电的储存装置。因此本文系统将会制作另一根目录档案系统的镜像文件,大约250Mbytes的大小放在USB随身碟里,也就是整个系统将增加到4个镜像档,其中3个如前文所述放在Flash里,第四个则放在USB随身碟。若单就USB随身碟来看,它仍然是出厂时的FAT16档案系统,只是里面放了一个文件名为rimg的根目录档案系统镜像文件。这样的架构在日后大量生产时,将会非常方便,只要复制rimg到不同的USB随身碟即可。另外也可在同一随身碟储存两份rimg,这样当系统出问题时,可以很容易地恢复成出厂时的状态。在VGA显示卡的部分,由于本文系统使用的是x86 SOC,因此PCI的VGA卡将是便宜又方便的选择。透过此一VGA卡,外部显示器可任意选择尺寸。另外在建构X-window时,只要以VESA模式即可轻易让X-Server启动,这是其它RISC所无法达到的便利性。
  


  图4: Linux核心的系统方块图
  


  图5:嵌入式Linux的执行过程
  
  系统整合
  
  低价是一新兴的产品,在设计系统时有许多考虑与PC系统不同。其中最主要的是低成本与强韧性,因此本文从x86 SOC开始,进而介绍系统硬件,再到嵌入式Linux的许多特性分析,最后以USB随身碟与PCI的VGA显示卡来达到PC系统的基本功能。在下一篇文章里,将剖析这些系统素材该如何整合在一起,继续分享低价计算机的实作过程。
其他文献
史上最高效率与合理价格的光源,来到关键时刻。白光LED与有机EL,连手打造照明的新空间。照明与IT的融合带来控制技术的战国时代。光的质感与多样性,打开人类的新世代照明史诗。  早期照明着重于光量,随着与IT技术的融合,开始重视光质的表现。不难判断由于各种不同产业的涌入,启动了照明产业的大变革。  “照明与IT技术的融合”激起业界的变化。因感应器连动实现自律或自动的LED调光系统之实现,需要联系LE
期刊
摘 要:高压直流电流互感器目前已成为国内外的研究热点,高压侧大多采用了激光供电来提高系统可靠性,利用了MSP430F149和MSP430F1611的ADC和DAC模块完成系统调制解调过程,详细分析不同信号调制解调方法,最终给出了基于ADC转换原理的高压侧调制、在低压侧解调的方案,经仿真及实验测量,线性度在工频时有良好的情况。  关键词:电子互感器;调制解调;MSP430;线性度;低功耗  Abst
期刊
摘要:文章以京东商城为例,从网络营销的定价概述出发,剖析了网络营销定价策略的基本依据,探析了网络团购定价、免费定价、秒杀定价、预售定价等网络营销的定价策略。关键词:定价策略;免费定价;预售定价  1、网络营销的定价概述  网络营销定价是指企业在互联网和大数据背景下,对其提供的产品或服务进行数字化精准定价,从而使企业的产品或服务具有更强的市场竞争力。京东商城就是利用大数据、云计算等先进的科学技术对其
期刊
COMPUTEX 2011宣告移动终端年已然降临,拓璞产业研究所预测,移动终端风潮来袭,2011年全球半导体业产值将达3,150亿美元,年增长率5.6%。    移动终端领域 全面布局抢先机    综观现今智能手机相机模块主流为300-500像素,已接近FSICIS最小像素尺寸(1.75μm)所能提供之画素极限,因此,2011年下半年智能手机相机模块主流将往800万画素甚至千万画素推进,势必全面采
期刊
摘要:  ---- 本文针对当前配电网的现状及存在的问题,综述了基于信息技术的配电网自动化的基本功能和意义。包括馈线自动化、自动制图/设备管理/地理信息系统及网络化配电载波技术。  关键词:配电网自动化 地理信息系统 网络化配电载波 FTU  引言  --- -随着社会经济和人民生活质量的提高,对供电可靠性、电能质量和服务质量提出了越来越高的要求。配电网的薄弱环节越来越突出,形成电力需求与电网设施
期刊
集团财务管理软件现在正在成为中国软件产业中的一大热点,有预计认为,到2005年,中国集团财务管理软件的市场规模将达到10.8亿元人民币,年增长率保持在30%以上。显而易见,集团财务管理软件的热潮已经到来。7月20日,金蝶软件举办的“2004’中国CFO集团战略财务管理论坛”热烈探讨的,正是当前集团企业财务管理方面的话题。  金蝶软件自上个世纪90年代开始,已经在为中国企业提供集团财务解决方案,在理
期刊
根据专注于太阳能材、设备和制造的全球性太阳光电产业组织SEMI PV Group和德国机械和设备制造商协会(VDMA,Verband Deutscher Maschinen-und Anlagenbau)共同发表的最新研究报告指出,2010年第四季全球PV设备订单出货比(Book-to-Bill)为1.13,显见全球太阳光电市场仍持续扩张。这是太阳光电产业第一份根据全球设备制造商提供的销售数据而推
期刊
长久以来,飞思卡尔基于ARM的i.MX多媒体应用处理器以其出色的性能、超低的功耗和丰富的多媒体内容的支持,受到全球开发者的青睐。早在2009年,飞思卡尔就凭借i.MX51产品系列,在当时极大地推动了智能本(smartbook)的发展:今天,i.MX系列应用处理器在平板电脑市场上取得了更加骄人的成绩——根据2011年第一季度的统计数据,i.MX处理器在中国市场上稳居高性能Cortex A8/A9平板
期刊
LTC6101 是一个非常好的单向高压侧电流检测放大器。但是“单向”有时也是个问题。单向意味着两件事:不能检测负电流;不能一直准确地检测下去,直到电流为零。本文介绍一种设计方法,可以用一个 MOSFET 和一个电阻解决上述两个问题。    图 1:LTC6101 单向电流检测放大器。输出以地为基准,不能检测反向电流。VOUT = ISENSE x RSENSE x R2/R1。    图 1 所示
期刊
这个时代是网络的时代,网络的应用无所不在,因而网络的安全性也就成为网络应用最关键的课题。麦子成熟了,总要有稻草人去守护。网络的成熟发展,也需要有很多网络安全的守护神。于是,神州数码的3D-SMP(动态分布式防御安全管理策略,Dynamic Distributed Defense Security Management Policy)的网络架构应运而生。      今天,离开了网络,人们可能就无所事
期刊