以全球導航衛星定位系統(GNSS)接收器為主之戶外定位技術發展已漸趨成熟,之前所追求的增強技術如首次開機時間(TTFF)的降低、靈敏度的增加及位置精確度的改善等,在接收器本身和其他輔助技術配合下已達到相當成熟的地步。
目前較受注目的是位置感知(Location-aware)服務,其背後關鍵技術則稱為地理柵欄(Geofence)。Geofence是虛擬外圍感知(Virtual Perimeter Awareness)的突破,能為創新應用和定位感知服務開啟大門,如社群網路、在地化行動商務及本地商家廣告等。
美國專利商標局(USPTO)在2012年中公布一項蘋果專利「在無線設備上執行策略的裝置和方法」(細節詳見US Patent No 8,254,902),這個專利即應用Geofence等技術,讓行動裝置能聰明「感受」場合,並因應不同場合而彈性調整設置。
其中,Geofence功能可讓使用者進入或退出虛擬外圍時收到通知,例如讓用戶在電影院中不會響鈴或打亮螢幕;在會議或教室中自動切換成震動或進入睡眠模式;進入敏感區域時迫使電子設備進入睡眠模式等。
但此功能需應用處理器不斷運行,所以會造成裝置的電池迅速耗盡。針對功耗的問題,蘋果在2013年也申請另一項專利,利用位置感知的功能來允許或關閉無線聯網設定例如無線區域網路(Wi-Fi)和藍牙(BT),強化智慧型聯網裝置的電源管理。
針對此問題高通(Gen8a和Gen8b)和博通(BCM47521)都提出相對應的解決方案,利用獨特架構來支援Geofence功能,能在極低電量消耗的情況下持續監控Geofence區域,達成維持電池壽命的目標。
智慧型聯網裝置Geofence的管理,依照發送端的不同可區分為行動發送(Mobile Originated, MO)和行動接收(Mobile Terminated, MT)。行動發送主要是利用Location API、Android AddProsimityAlert(),以及Java API三種方式來實現Geofence的管理;而行動接收主要是利用開放行動通訊聯盟(OMA)SUPL 2.0區域事件觸發服務來管理Geofence。
SUPL 2.0技術簡介
到目前為止,SUPL 1.0/1.1已經被證實是建置定址服務(LBS)的最有效的技術之一。在提供A-GPS的服務方面,SUPL 1.0已相當成熟,但缺乏支援下世代的無線網路、混合定位(Hybrid Positioning)技術和產生實際營收的定位服務(Revenue-Generation Location Service)。
為滿足這些需求,開放行動通訊聯盟就制定SUPL 2.0做為無線通訊系統位置相關的通訊協定。圖1為SUPL 2.0系統架構。新架構支援SIP/IP和UDP/IP做為SUPL INIT的傳送,在介面方面,SUPL 2.0支援開放式的Lip介面。SUPL 2.0仍然採用用戶平面(UP)在手持裝置和網路位置伺服器之間進行位置資訊的交換。推動SUPL 2.0成為下一世代位置服務共同的通訊協定主要來自長程演進計畫(LTE)、混合定位及商用服務等三種力量。
|
圖1 SUPL 2.0的系統架構 |
‧ |
|
|
SUPL 2.0支援LTE的定位服務或建置在LTE網路上面的緊急服務(例如E-911)。現有的SUPL 1.1只支援傳統的無線網路如寬頻分碼多重存取(WCDMA)或CDMA2000。SUPL 2.0所支援的無線網路包含全球行動通訊系統(GSM)/整體封包無線電服務(GPRS)、WCDMA、CDMA、無線區域網路(WLAN)、LTE和全球微波存取互通介面(WiMAX)。 |
‧ |
|
|
SUPL 2.0支援混合定位技術,如A-GNSS、Wi-Fi和無線網路定位。利用SUPL 2.0支援的混合定位技術可提供更快、更準確和涵蓋面積更廣的定位服務。 |
‧ |
|
|
藉由SUPL 2.0所提供的先進的服務項目可以製造更多營收增加的機會,例如觸發式的服務(Triggered Service)、第三方的定位(3rd Party Positioning)、改善的告知和驗證(Improved Notification & Verification)、回報(一次回報、準即時的回報和立即的回報)。 |
接下來,將針對SUPL 2.0所增加的服務項目,提供較為完整的描述。
LTE A-GNSS
SUPL 2.0的單一位置通訊協定,使得SUPL 2.0可以橫跨多重的無線網路的空中介面(Air Interface)。SUPL 2.0所支援的無線網路有LTE、WiMAX、I-WLAN(IEEE 802.11i)和演進的高速封包數據(eHRPD)。
另外,SUPL 2.0也納入新的GNSS,例如俄羅斯的GLONASS系統、歐盟的伽利略(Galileo)系統、美國的現代化GPS系統(Modernized GPS)、日本的準天頂系統(QZSS)和基於衛星的增強系統(SBAS)。
緊急服務
為增強緊急服務,SUPL 2.0在傳統的SUPL位置平台之外加入了緊急的SUPL位置平台(Emergency SUPL Location Platform, ESLP)。而為了改善SUPL在緊急服務的可靠度,SUPL 2.0要求支援SUPL的終端裝置(SUPL Enabled Terminal, SET)必須接受從任何的E-SLP所傳送的緊急SUPL初始訊息(Emergency SUPL Initiation Message, SUPL INIT)。在緊急模式時,SET必須忽略任何非緊急的SUPL INIT訊息。
SUPL 2.0在緊急模式時的通話流程,與第三代行動通訊夥伴合作計畫(3GPP)的TS23.167 IMS緊急會話(Session)相容。
觸發式服務
行動接收的地理柵欄管理主要是利用SUPL 2.0所定義的觸發式服務。依照SET初始或是網路初始的定位服務,又可分類為SET初始的定位服務及網路初始的定位服務等不同的型式。
SET初始的定位服務包括週期性的定位(由定位的數目、每次定位的時間間隔和起始時間來決定)、週期性的定位並傳送到第三方、區域事件的定位;而網路初始的定位服務,包含週期性的定位與區域事件的定位。
|
圖2 Area ID的觀念 |
SUPL 2.0提供週期性或區域事件的觸發,這意味著位置的量測是基於用戶的位置可以由SET或網路來發起。一個地區可被細分為數個區域,每個區域或一群區域所構成的區域皆可以給予一個特定的區域碼(Area ID),如圖2所示。
地理區域的形狀可以是圓形、橢圓形和多邊形。區域ID是利用國碼(Mobile Country Code, MCC)、行動網路碼(Mobile Network Code, MNC)、位置區碼(Location Area Code, LAC)和細胞識別碼(Cell ID, CI)。只要用戶離開或進入所指定的地區時,定位事件就可以被連續或週期性的觸發。
SUPL 2.0所提供的觸發式服務,被視為是有機會增加新營收的位置服務。SUPL 2.0共定義了四種觸發方式:進入(Entering)、停留(Within)、離開(Leaving)和外面(Outside)。從圖2中可定義所謂的進入是表示區域ID完全涵蓋目標地區,只要SET在這些區域ID之外,則不會有任何的定位產生。所謂的離開是指目標地區完全的覆蓋區域ID,只要SET在這些區域ID內則不會有任何的定位發生。
第三方的定位
SUPL 2.0允許SET安全的將位置傳送至第三方,跟SUPL 1.0比較起來SUPL 2.0提供較多私密性的控制,也允許對安全性設定做更細膩的調整和管理。
例如一個家庭所有成員可設為群組,群組內的每個成員都可以隨時知道你的位置,其他群組的成員(例如自己的朋友)則只能在特定的時間知道你的位置。第三方的定位是一個相當具有商業發展價值的應用,例如Friend Finder和追蹤的服務。
告知和認證
SUPL 2.0可藉由目標SET用戶的告知和認證的強制設定(不論是網路或SET初始的服務)來確保SET用戶的隱私能夠被充分尊重。除了原來SUPL 1.0的OMA Push和SMS外,SUPL 2.0導入兩個新的SUPL INIT傳遞機制來改善告知。新的SUPL INIT傳遞機制如下所述:
‧ |
|
|
利用既有的安全連結到SET使得SUPL 2.0較容易整合在IMS網路。SIP/IP Push適用於GSM/GPRS/WCDMA、CDMA/UMB和WLAN/WiMAX。 |
‧ |
|
|
UDP(User Datagram Protocol)的數據可以傳送到SET的IP位址上(SET的IP位址必須是已知的),利用UDP/IP的Push也可以實現群組的告知。UDP/IP Push適用於GSM/GPRS/WCDMA/LTE、CDMA/UMB和WLAN/WiMAX。 |
回報
SUPL 2.0支援各種不同的回報(Reporting)模式,利用這種方式可以將位置資料先存放在手機內的記憶體內,並稍後再回報給網路。利用此種方式可降低網路訊令資料的負擔(Signalling Overhead)及降低手機電池電力的消耗。SUPL 2.0共支援一次回報(Batch Reporting)、準即時回報(Quasi Real-Time Reporting)、立即回報(Immediate Reporting)等三種不同的回報模式。
‧ |
|
|
在一個固定的時間間隔內,將存放在手機記憶體內的一組位置資訊回報給網路。 |
‧ |
|
|
如果位置資訊無法在期待的時間回報給網路,可以先將位置存放在手機記憶體內,等網路允許時再將位置回報給網路。 |
‧ |
|
|
當SET的記憶體不足時,立即將位置資料回報給網路。 |
一次回報和準即時回報的內容,則包含位置及增強的細胞/小區(Sector)的量測。所謂的位置包括所在位置及定位的方法,而增強的細胞/小區的量測,則涵蓋多重位置識別、返回訊息(Result Code)與時間戳記(Timestamp)。
SUPL 1.0和2.0的比較
SUPL 2.0導入很多新的項目使它可以在全IP的LTE網路上提供位置服務,它同時也開啟較高的位置服務品質和較可靠的緊急服務,但這些新增項目也使SUPL 2.0的系統複雜度大為增加。截至目前為止,所有的智慧型手機只會支援某些項目,而不會完全支援全部的規範。圖3所示為SUPL 1.0和2.0在系統複雜度的比較。
|
圖3 SUPL 1.0和2.0在系統複雜度的比較 |
行動發送之地理柵欄管理
Google在2013年5月的Google I/O開發者年會上發表三種支援Android作業系統與地理位置相關的應用程式介面(API),包括Fuse Location Provider、Geofencing和Active Recognition。Fuse Location Provider主要是利用目前所有的定位技術,依照使用者的需求(QoS)在低功耗模式下提供一個較快速和更精確的位置資訊。在Geofence方面,Google一次最高支持一百個地理柵欄。Active Recognition主要利用微機電系統(MEMS)元件偵測使用者狀態。
Google Geofence API可讓開發者預設地理柵欄,並利用簡單但功能強大的API來管理地理柵欄的增加或移除。目前僅提供圓形地理柵欄,而多邊型的地理柵欄在未來也會被納入。以往的地理柵欄應用經常須依賴應用處理器,導致功耗過高而限制地理柵欄在手持裝置的應用,新的API可以將功耗降至最低,主要可透過偵測使用者接近預設地理柵欄的程度(例如500公尺或50公里)來調整位置的更新率,也可以利用Active Recogniton API依照使用者的型態(靜止、步行或開車)來主動調整位置更新率。較低的位置更新率也意味著較低的功耗。
圖4所示為Android傳統的Geofence管理架構,其並未使用到新的Fuse Location Provider。圖5所示則是利用新的Fuse Location Provider來實現較低功耗的Geofence管理。
|
圖4 Android傳統的Geofence管理的架構 |
|
圖5 利用新的Fuse Location Provider來實現低功耗的Geofence |
利用addProximityAlert管理 Geofence
利用Android addProximityAlert API來管理Geofence被視為最便利的方式,第三方地理柵欄應用程式開發者和底層位置提供者利用GNSS晶片、Wi-Fi或基地台定位,都可支援addProximityAlert簡化開發程序和降低功耗。addProximityAlert定義五個參數可以讓地理柵欄應用程式開發者更容易的開發地理柵欄應用:
‧ |
|
|
單位是毫秒(ms)。當Expiration所設定的時間超過時,Location Manager將會刪除這個鄰近的提醒(Proximity Alert)並且不再監視這個地理柵欄。當Expiration參數設為-1時,就表示Location Manager將不會刪除這個鄰近提醒。 |
‧ |
|
|
當元件偵測到使用者已經進入或離開地理柵欄時,PendingIntent將產生一個Intent,這個Intent會額外加上一個KEY_PROXIMITY_ENTERING布林(Boolean)邏輯。當KEY_PROXIMITY_ENTERING值為真時就表示進入,反之則表示離開。 |
利用Geofence API來管理Geofence
|
圖6 利用Galaxy Nexus來比較addProsimityAlert()和addGeofences()的功耗 |
另一種Geofence管理方法則利用Android全新addGeofences()內的Geofence.builder(),建構Geofence物件和管理Geofence。相較於既有addProximityAlert,可降低三分之二功耗(圖6)。Geofence.builder()包含:
‧ |
|
|
功能同addProximityAlert中的Expiration參數 |
‧ |
|
|
設定一個Geofence的requestID。requestID是用來區別地理柵欄,當兩個地理柵欄被設為同一個requestID時,新的地理柵欄將會覆蓋原先的地理柵欄。 |
‧ |
|
|
設定有興趣的TransitionType,例如進入或離開地理柵欄。鄰近提醒只會依照TransitionType所設定的形式來發送。 |
低功耗的Geofence
利用Android所提供的Geofence API來管理Geofence,往往需要過度的喚醒應用處理器,頻繁地喚醒應用處理器,會造成過高的功率消耗,因而限制Geofence在手持裝置的應用。
支援Geofence的晶片業者(如高通和博通)大部分都是採用低功耗的地理柵欄解決方案來大幅度的降低應用處理器被喚醒的次數。低功耗的地理柵欄主要是利用純硬體的方式透過行動定位(WWAN Positioning)、Wi-Fi定位、衛星定位和MEMS感測元件的交互使用來降低應用處理器的負擔。
Android的Geofence是運作在應用處理器上,因此會大幅增加功耗,低功耗Geofence主要是將Geofence演算法運行在通訊處理器上面(Modem的核心),只有在Geofence事件發生的時候才會喚醒應用處理器。圖7所示為低功耗Geofence的系統架構。
|
圖7 低功耗Geofence的系統架構 |
低功耗Geofence是透下列的方式來實現,包括利用Area ID、利用其他輔助的工具來降低使用GNSS接收器的時間、利用距離的遠近來調整位置的更新率、透過遲滯(Hysteresis)來處理。
|
圖8 TransitionTypes設為進入提醒的Area ID列表 |
利用Area ID,是因為Area ID只有在SUPL 2.0區域事件觸發才能夠使用,如此一來,可以大幅度地降低高功耗的GNSS接收器使用時間。GNSS接收器只有在靠近Geofence區域或需要精確位置資訊時才會被打開。依照TransitionTypes的不同,利用Area ID來實現低功耗的Geofence有兩種不同的方式:TransitionTypes設定為進入提醒時必須找出所有涵蓋Geofence邊架的Area ID列表(圖8);以及TransitionTypes設定為離開提醒時必須找出位在Geofence內所有的Area ID(圖9)。
從圖8可發現,要進入Geofence request ID,GF1就須經過Cell ID為CI1到CI9的任何一個小區。只要手機不是位於CI1到CI9中的任何一個小區,就可將高功耗的GNSS接收器處於休眠的狀態。而只要偵測到使用者進入CI1到CI9中的任一個小區時,就必須利用更精確的定位方法來計算距離GF1的邊界還有多少公尺。
利用Area ID來實現低功耗的Geofence,必須將地理柵欄的邊界利用一組Cell ID來描述,當Geofence範圍很小時有可能整個Geofence是落在一個或數個Cell ID的涵蓋範圍之內。
|
圖9 當TransitionTypes設定為離開提醒時的Area ID列表 |
從圖9中可以發現,只要用戶位於CI1到CI6的小區時,就表示用戶還在Geofence的範圍內;只要位置回報用戶還在Area ID列表中,就可以將高功耗的GNSS接收器進入休眠模式。而當位置回報用戶離開Area ID列表時,就必須依賴GNSS接收器來提供精確的位置,以確保不會有延遲鄰近提醒產生。
利用Area ID列表是一個相當簡單且容易實現的低功耗Geofence,但要特別注意的是,有些小區有可能非常的靠近Geofence邊界,因此小區呼吸(Cell Breathing)也是另一項值得探討的議題,例如有些小區本來是跨過Geofence邊界,但是在某些時候因為小區呼吸的緣故,該小區反而會落在Geofence的邊界之外。
第二個方法為利用其他輔助的工具來降低使用GNSS接收器的時間。例如,使用行動網路定位或MEMS感測元件來偵測使用者的運動狀態。當用戶距離預設的地理柵欄的邊界很近時,就必須仰賴精確度較高的GNSS接收器,此時即可利用MEMS感測器來偵測用戶的運動狀態。當用戶的狀態為靜止模式時,即便用戶離地理柵欄邊界很近,還是可以將高功耗的GNSS接收器設於低功耗模式,甚至休眠狀態。
利用MEMS感測元件來偵測用戶的運動模式,亦可動態調整GNSS接收器的工作模式,例如當用戶距離地理柵欄只有300公尺時,在沒有MEMS感測器的協助下,就必須將GNSS接收器開啟,並且以1Hz的更新率來確保鄰近提醒的可靠度。
1Hz的位置更新率對GNSS接收器而言是最耗電的模式。此時便可利用MEMS來偵測用戶的運動狀態,如果用戶是步行模式,則300公尺大約還需要150秒的時間才會走進地理柵欄,因此GNSS接收器就可以設定為0.1Hz的更新率來大幅降低功耗。
反之,當MEMS偵測到用戶在駕駛模式時,GNSS接收器須設為高性能模式來確保地理柵欄事件偵測的反應性和信心度。
第三個方法是利用距離的遠近來調整位置的更新率。當距離地理柵欄很遠時(例如50公里)就不需要頻繁的位置更新,因此大部分的時間GNSS接收器都可以處於休眠的狀態。
當SUPL 2.0的Area ID無法取得時,行動發送式的Geofence利用距離緩衝調整位置的更新率也是一個降低功耗的解決方案。所謂的距離是指使用者目前的位置到圓形地理柵欄的最短幾何距離。當用戶距離地理柵欄邊界只有幾公里時就必須利用精準度較高的定位技術,例如WLAN或GNSS定位來確保不會錯過鄰近提醒。
第四個辦法是所謂遲滯的處理。當使用者頻繁的跨越Geofence邊界時,會導致應用處理器永遠處在高功耗的模式。在時間和地理上加入緩衝區(也就是遲滯)來降低Geofence臨近提醒的次數。當Geofence所制定的區域是在GNSS艱困區時,利用時間和空間的遲滯可以有效降低臨近提醒的錯誤預警。
(本文作者任職於衛星定位系統公司)