1、 何為A系列ARM終端
在了解arm終端前,我們先來看看何為終端:
終端(Terminal)也稱終端設備,是計算機網絡中處于網絡最外圍的設備,主要用于用戶信息的輸入以及處理結果的輸出等。
在早期計算機系統中,由于計算機主機昂貴,因此一個主機(IBM大型計算機)一般會配置多個終端,這些終端本身不具備計算能力,僅僅承擔信息輸入輸出的工作,運算和處理均由主機來完成。
在個人計算機時代,個人計算機可以運行稱為終端仿真器的程序來模仿一個終端的工作。
隨著移動網絡的發展,移動終端(如手機、PAD)等得到了廣泛的應用。此時,終端不僅能承擔輸入輸出的工作,同時也能進行一定的運算和處理,實現部分系統功能。
A系列Arm終端:
使用ARM Cortex™-A 系列應用型處理器可向托管豐富OS平臺和用戶應用程序的設備提供全方位解決方案的終端,從超低成本手機、智能手機、移動計算平臺、數字電視和機頂盒到企業網絡、打印機和服務器。該類終端使用的高性能Cortex-A15、可伸縮的Cortex-A9、經過市場驗證的Cortex-A8處理器和高效的Cortex-A7和Cortex-A5處理器均共享同一架構,因此具有完全的應用兼容性,支持傳統的 ARM、Thumb指令集和新增的高性能緊湊型Thumb-2指令集。
2、 A系列ARM終端的特點
高性能
Cortex-A 設備可為其目標應用領域提供各種可伸縮的能效性能點。一些說明示例如下:
Cortex-A15 ,可為新一代移動基礎結構應用和要求苛刻的無線基礎結構應用提供性能最高的解決方案 Cortex-A7,可采用獨立、多核配置實現,提供 800 MHz - 1.2 GHz 的典型頻率,也可以與 Cortex-A15 結合用于 big.LITTLE 處理 Cortex-A9 實現,可提供 800 MHz - 2 GHz 的標準頻率,每個內核可提供 5000 DMIPS 的性能 Cortex-A8 單核解決方案,可提供經濟有效的高性能,在 600 MHz - 1 GHz 的頻率下,提供的性能超過 2000 DMIPS Cortex-A5 低成本實現,在 400- 800 MHz 的頻率下,提供的性能超過 1200 DMIPS。
多核技術
Cortex-A5、Cortex-A7、Cortex-A9 和 Cortex-A15 處理器都支持 ARM 的第二代多核技術
單核到四核實現,支持面向性能的應用領域 支持對稱和非對稱的操作系統實現 通過加速器一致性端口 (ACP) 在導出到系統的整個處理器中保持一致性 Cortex-A7 和 Cortex-A15 將多核一致性擴展至 AMBA4 ACE 的 1~4 核群集以上(AMBA 一致性擴展)
高級擴展
除了具有與上一代經典 ARM 和 Thumb® 體系結構的二進制兼容性外,Cortex-A 類處理器還通過以下技術擴展提供了更多優勢
Thumb-2,提供最佳代碼大小和性能 TrustZone 安全擴展,提供可信計算 Jazelle 技術,提高執行環境(如 Java、.Net、MSIL、Python 和 Perl)速度。
3、 云終端
A系列的arm處理器也在云終端中大量使用。
arm云終端采用arm架構,搭載Linux內核,沒有硬盤、CPU、內存,整機功耗低,運行安全可靠,維護管理簡單,價格低。
而相應的也存在兼容性和擴展性較差等缺點。
4、 相關案例
基于ARM處理器的家用遠程醫療監護終端:
系統結構與功能:
系統采用B/S(Browser/Server,瀏覽器/服務器)模式設計,使用該模式的最大好處是減少開發工作量、運行維護比較簡便。將B/S模式引入嵌入式網絡設計,改變了過去需要同時開發上位機和下位機軟硬件的做法,現在只需要在下位機(服務器端)的嵌入式設備中集成一個微型服務器,利用 HTML(超文本標記語言)設計網頁模塊,就可在上位機(瀏覽器端)使用IE等瀏覽器接收和解析此模板,從而為用戶提供一個視覺效果好、操作方便的工作界面。
首先基于ARM9處理器S3C2410A和嵌入式Linux操作系統,設計出支持嵌入式Web Server的開發平臺,再通過移植嵌入式Web Server-boa,配合數據采集和處理等模塊,構造一套適用于家庭的便攜式遠程醫療監護終端。在監護終端,利用生物電引導電極采用標準三導聯方式將人體心電信號拾取出,經導聯線傳輸到信號調理模塊,經該模塊的濾波、放大后得到初級的生物電信號,再經由S3C2410自帶的ADC引腳送入Web服務器模塊,心電信號在此模塊中經過各種運算分析后得到反映心臟特征的信號, LCD上實時的顯示心電波形和病人的個人信息,同時將心電信號存儲于片外Flash ROM中,終端通過以太網口接入以太網,以實現與監控中心的遠程交互。
系統軟件框圖:
Linux的移植
本設計采用linux-2.4.18內核。正確進行Linux移植的前提是具備一個與Linux配套、易于使用的BootLoader,它能夠正確完成硬件系統的初始化和Linux的引導。本系統中采用vivi,它是由韓國MIZI公司提供的一款針對S3C2410芯片的BootLoader。
Linux內核的目錄/arch中包含了所有與硬件體系結構相關的內核移植代碼,目錄/arch中的每個子目錄代表了一種Linux支持的處理器。移植Linux到S3C2410平臺主要是修改/arch/arm目錄及其子目錄下相關的makefile文件和配置文件。例如:修改內核根目錄下的 Makefile文件,指明要移植的硬件平臺為ARM:ARCH:=arm,指明使用的交叉編譯器CROSS_COMPILE=/opt/host /armv41/bin/armv41-unknown-linux-;修改arm/arm目錄下的config.in文件,配置S3C2410的相關信息;為初始化處理器,還需在arch/arm/boot/compressed目錄下添加head-s3c2410.s文件。內核修改完成后,用命令 make menuconfig配置Linux,再用make zImage命令編譯內核,編譯通過后則在目錄arch/arm/boot下生成zImage內核文件,還需利用工具軟件MKCRAMFS制作 cramfs文件系統。最后,在minicom終端的vivi命令行下利用load命令將內核和文件系統下載到目標系統,至此移植完成。
Boa的移植和CGI程序設計
由于嵌入式設備資源有限,并且不需要同時響應多用戶請求,因此一般使用一些專門的Web服務器用于嵌入式應用設計。Boa是單任務web服務器,源代碼開放,性能高,支持CGI,能為CGI程序fork出一個進程來執行,其設計目標是速度和安全,可執行代碼只有約60KB。移植Boa的過程如下:從 sourceforge.net上下載 boa-0.94.13,在其解壓目錄下生成并修改makefile文件,然后運行make得到可執行程序,利用命令armv4l-unknown- linux-strip將調試信息剝去,然后修改Boa的配置文件boa.conf,使其能支持CGI程序的運行。最后將生成的可執行程序Boa掛載到目標系統,若能成功訪問靜態HTML網頁和運行測試用的CGI程序,則表明配置成功。
通用網關接口CGI可將Web服務器連接到外部應用程序,它主要完成兩件事情:一是收集從Web瀏覽器發送給Web服務器的信息,并將這些信息提供給外部程序利用;二是對提出請求的Web瀏覽器發送程序的輸出。CGI具有平臺獨立性、語言獨立性和層次感等優點。利用CGI程序則可以實時執行并輸出動態信息,且其占用資源少。CGI程序的執行過程為:瀏覽器將表單數據以POST方法提交給Web服務器,服務器根據收到的數據設置環境變量,并新開一子進程來執行CGI程序,CGI程序從環境變量中讀取所需要的數據,通過調用用戶自定義的外部功能函數完成數據處理后,再讀取相應的HTML模板文件,根據注釋標記將對應的數據填充到HTML文件中,生成新的HTML頁面經Web服務器返回給瀏覽器。
為快速開發符合應用要求的CGI程序,在設計時添加了CGIC庫和gd庫。CGIC是一個功能強大的支持CGI開發的開放源碼的標準C庫。 Thomas Boutell編寫的gd庫是標準的C語言庫,具有基本的繪圖等功能。為實現在網頁上動態顯示心電波形,將每次采集的數據經過功能程序處理后存儲的同時送給CGI程序,利用gd庫提供的函數來創建圖像。通過在網頁模塊上設定刷新時間(使用HTML語言的META標記),從而實現在網頁上心電波形的動態顯示。
主程序設計:
主程序首先完成對系統的初始化,然后阻塞監聽網絡接口是否有連接請求,一旦客戶端發出連接請求,則在服務器端產生中斷;讀取網絡數據,然后對網絡數據進行解析,這一步主要是解析HTTP協議,需要判斷連接請求是否符合服務器規定的請求格式,判斷是連接請求的請求方法,判斷請求的文件是否存在服務器上,判斷認證信息是否正確等等;在處理A/D采集的數據這一過程中,首先要將采集后的心電信號進行濾波處理,主要是抑制心電信號中的50Hz工頻干擾,再完成濾波后,將數據送到本地的LCD上顯示,同時將當前的數據以網頁數據的格式發送到網口。