55以ARMLinux為基礎的嵌入式資訊網系統平台之設計與實作—家庭保全系統應用DesignandImplementationofARMLinuxPlatform-basedEmbeddedWebSystem—AHomeIntruderAlarmSystemApplication蕭榮修*R.S.Hsiao*張國基K.C.Chang史義男Y.N.Shi林玫MayLin國立台北科技大學電子工程系摘要嵌入式系統(EmbeddedSystems)不但充滿在我們的日常生活中,而且扮演著重要的角色。傳統的嵌入式系統為獨立作業平台的裝置,不具備網際網路連線及組態介面(configurationinterface)的設定功能,其應用範圍受到相當大的限制。隨著網際網路(Internet)應用的普及,具有可連上資訊網的(Web-enabled)的嵌入式系統之需求日漸殷切。本研究的主要目的即為設計一個可連上資訊網的ARMLinux嵌入式系統平台,以補足傳統嵌入式平台在網路上的不足,並提供系統晶片(System-on-Chip,SoC)整合內容之參考。藉由此平台所提供的網路設備,我們可以使嵌入式系統裝置連線上網,達到遠端資訊存取及組態設定功能。為驗證此嵌入式平台之可用性,我們以開放原始碼(opensource)的方式來實作一個低成本/高效能家庭保全系統。使用者可在任意計算平台之客戶端(client-side)執行瀏覽器(browser)後,與伺服器(server)取得連線,並藉由伺服器端所傳給的Javaapplet及其socket通訊機制,設定家中的保全系統狀態,並由遠端接收監控資訊。透過實作與效能評估,我們得到一個主要的結論,使用Java來實作非行動式(固定式)的嵌入式系統是一種浪費,因為虛擬機器(JavaVirtualMachine,JVM)會消耗很大的計算與記憶體資源,JVM的跨平台特性不具任何意義。以ARMLinux為基礎的嵌入式資訊網系統平台之設計與實作—家庭保全系統應用156關鍵詞:嵌入式系統、系統晶片。投稿受理時間:93年3月15日審查通過時間:93年6月30日ABSTRACTEmbeddedsystemsareomnipresentandplaysignificantrolesinourdailylives.Inthepast,embeddedsystemshavefunctionedinisolationwithoutanyfunctionsofnetworkingandconfigurationinterface.Therefore,theapplicationrangeisverylimited.SincetheInternetbecomesverypopular,theWeb-enabledembeddedsystemswillbemoreexpected.ThegoalofthisstudyistodevelopaWeb-enabledARMLinuxembeddedsystemdevelopmentplatformtoprovidethefunctionsofnetworkingandconfigurationinterfaceandtobeusedfortheconsiderationofSoCcontentsintegration.Tousethisfacility,whichthedevelopmentplatformprovides,theembeddeddevicecanbeconnectedtotheInternetachievingfunctionsofremoteinformationaccessandconfigurationsetup.Toverifythevalidationofdevelopmentplatform,weadoptopensourcemethodtoimplementalow-costandhigh-performancehomeintruderalarmsystem.UsercanrunabrowseratanycomputingplatformtoconnectwiththeserverfromwhichthebrowserreceivesaJavaappletfromtheserver.UserusestheJavaappletandthesocketmechanismtoconfigureandreceivetheinformationfromtheremotehomeintruderalarmsystem.Throughtheimplementationandevaluationofperformance,wegetaconclusionthattouseJavafortheimplementationofthenon-mobileembeddedsystemisawastebecausetheJavaVirtualMachine(JVM)consumesalargeofcomputationandmemoryresources.Thecross-platformfeatureofJVMismeaninglessforthenon-mobileembeddedsystem.Keywords:EmbeddedSystems,ARMLinux,Embedded-WebServer,System-on-Chip(SoC).壹、緣由與目的嵌入式計算系統具有特定的功能及嚴格的非功能需求:價格、體積、性能和功率消耗等限制。而SoC技術可以將複雜的電路整合在一個矽晶片上,具有輕巧、價廉、性能佳和低功率消耗等優點[8][9]。因此以嵌入式處理器為核心,開發一個實用的嵌入式計算系統原56臺北科技大學學報第三十七之二期57型(prototype),再以系統晶片技術製成一顆嵌入式積體電路是目前行動裝置、通訊及資訊家電等嵌入式產品最迫切的需求。為預防與降低家庭竊案的發生,大部份的家庭會選擇使用保全服務。但保全服務將增加家庭的經濟壓力,而且保全服務無法深入家中進行更細微的感測,這種只能對進入口(如窗和門)進行保護的限制,已經不足應付家庭保全的需求了。此外,大量的資訊家電進入家庭生活中,使用網路做遠端控制將是必然的趨勢,這點也是一般保全服務在考慮隱私及服務能力所難以實踐的。每個家庭的環境不盡相同,應有一個能配合改變的系統組態方案。組態方式如能利用網際網路無遠弗界的特性,進行隨時隨地的調整並監控家庭中的保全系統,甚至在行動設備上進行監控,都將使保全系統更具實用價值。綜觀市面上具有類似功能的產品,都以桌上型電腦作為實作平台。固然桌上型電腦的技術已經相當成熟,但對家庭而言,成本依然太高,並有高耗電、體積大等缺點。另一類的產品則搭配軟體的安裝,不必另購一部桌上型電腦,雖然減少了硬體成本,但卻把許多與系統無關的軟體與保全系統軟體置於同一計算平台之上,造成保全系統的可靠度大為降低。綜合上述,家庭保全系統是一個專用系統,一個特定系統,甚至是一個容錯系統,比起一般電腦系統或消費性電子產品需要有更多的非功能性需求。嵌入式系統的特性正能符合家庭保全系統的需求。貳、研究方法與成果一、文獻探討由於ARM的低耗電/高效能特性,以及Linux的開放原始碼、高移植性(portability)等優點,使用ARM-Linux做為系統平台者極為普遍。但是許多系統平台並沒有考慮到嵌入式系統的資源限制。成大研究生萬林明[12]選用的ARM-Linux其kernel及Ramdisk需2.5M位元組(Byte,簡稱B)以上,對一個要兼顧成本的嵌入式系統而言,將是一個沉重的負擔。以Web為基礎的嵌入式系統之實作以美國UCSCMontague等人[5][6]所研發的Javacam最具代表性,其平台選擇一個客製的OS-JavaNanokernel(JN),結合TCP/IP程式等,總共需要45KB的記憶體,而加上JavaVirtualMachine(JVM)共需2MB以上的龐大記憶體。再者,Java的執行速度慢,進行較為複雜的應用,性能將大為降低,同時Java執行所需的時間較長,功率消耗跟著大為增加。與一般多用途的行動式嵌入式系統不同,對固定式的嵌入式系統,為達到成本及效益的最佳化,系統的軟硬體平台在研發初期就已確定。因此,JVM的跨平台特性將不具任何意義。以ARMLinux為基礎的嵌入式資訊網系統平台之設計與實作—家庭保全系統應用358二、系統分析與設計(一)作業系統的選擇我們選用Linux作業系統,主要是因為Linux能符合我們下列的需求:(1)Linux可以免費或以低廉的價格取得;(2)Linux是以開放原始碼的形式釋出,我們可以調整Linux以完全符合本應用特殊的記憶體及通訊介面需求;(3)Linux支援的硬體元件相當多;(4)強健且完善的網路協定;(5)完整且價廉的發展工具[7]。Linux是一個符合POSIX標準的核心,應用程式都具備平行的移植性。在硬體系統還未建置完成前,先透過符合POSIX標準的桌上型(desktop)Linux進行應用程式的開發,之後再進行核心移植的工作。在此同時,可以尋找符合POSIX標準的程式來加速軟體的開發,以達到軟體/硬體同時開發的目的。雖然使用Linux需要付出rootfile-system約500KB的代價[11],但檔案系統有助於組態資料的儲存,提高系統存取資料的效率,以方便系統組態及設定的實現[7]。因此,Linux必須使用檔案系統才能運作的特性,反而使得上述的優點無需額外的軟體就得以實現,這是其他的嵌入式作業系統所缺少。減少系統軟體對記憶體的需求,將有效的降低硬體建置的複雜度與成本,有助於SoC的發展。為了達到這個目的,我們選定了uCLinux作為作業系統核心,uCLinux對記憶體的需求,僅需500KB[11],並且可以保有所有Linux的通訊能力。(二)處理器的選擇雖然家庭監控事務所需的計算量不高,但所監控的項目卻頗為繁雜。因此,一般8位元單晶片微控制器是無法勝任的,加上系統有可能進行一些智慧型的控制,需要一個32位元單晶片微控器才能達到較好的效果。此外,家庭監控事務項目繁多,硬體的介面自然相對增多,過多的額外電路,將在成本優勢上大打折扣,所以高度整合週邊電路的32位元SoC是本系統最佳的選擇,硬體平台的比較如表(一)。表(一)本系統與其他硬體平台的比較平台PC-based單晶片微控器本系統(SoC)成本US$30US$1US$4體積較大較小較小耗電2A/5V35mA/5V500mA/5V4臺北科技大學學報第三十七之二期59整合性難以整合難以整合整合度較高穩定性較低較高較高網際網路具備無具備32-bitRISC架構的CPU是最能符合體積小、高效能,與低耗電需求的最佳選擇。本系統選擇以ARM作為嵌入式處理器,ARM的核心是以矽智產(SiliconIntellectualProperty,SIP)方式授權給多家半導體廠商,我們可挑選以ARM為核心且符合系統需求的高度整合系統晶片。此外,ARM的SIP品質管控相當嚴謹,所以在進行核心移植時,遇到的問題會比較少,使得軟體硬體的開發工作可以同時進行,不必擔心將來把軟體移植到硬體時,會有軟硬體不相容的情形發生[3]。在這些考量下,ARM是在使用Linux核心下的最好選擇。(三)網路軟體的考量EmbeddedWebserver負責儲存網頁,並與client端的瀏覽器交談。選用現有的Webserver可節省大量開發時間,並可藉由使用者熟悉的GUI縮短學習曲線[10]。此外,選擇以標準化為存取方法—HTTP和HTML之產品,可排除嵌入式系統裝置及網路的異質性[2]。Javaapplet在網頁間具有優良的互動性,且具有跨平台、安全性高等優點。因此,以Javaapplet作為嵌入式系統的組態介面是極佳的選擇。嵌入式系統平台本身不需支援JVM,Javaapplet可以由Webserver透過網際網路傳遞給client端,藉由任意計算平台的瀏覽器即可執行。