AOSP
ultra geniş bant (UWB) yığını
,
FiRa tanımlı UCI arayüzü
olarak belirleyin. HAL arayüzünde opak bir boru kullanılır.
Gönderilecek (IUwbChip::sendUciMessage()
ve IUwbClientCallback::onUciMessage()
)
UWB komut arayüzü (UCI) komutlarını, yanıtlarını ve bildirimlerini alabilir.
Tüm Android ultra geniş bant tedarikçileri, tanımlanan tüm FiRa spesifikasyonunu desteklemelidir
mesaj. Ultra Geniş Bant çerçevesi geriye dönük uyumludur ve tüm UCI’larla çalışır.
cihazda ultra geniş bant tedarikçisi tarafından uygulanan sürüm. AOSP ultra geniş bant
çerçeve bir modül,
onaylanmış değişiklik istekleri (CR'ler) için seçmeli olarak
başlıca FiRa standartları sürümlerine yönelik taslak UCI spesifikasyonları. Bu tür herhangi bir
Uygulanan taslak hazır yanıtlar değiştirilebilir.
Arayüz tanımı
Ultra Geniş Bant HAL arayüzü
kararlı AIDL.
Ana arayüz android.hardware.uwb
paketini kullanır.
Aşağıda, android.hardware.uwb
uygulamasındaki iki ana arayüz verilmiştir:
paketinden yararlanın.
IUwbChip.aidl
package android.hardware.uwb;
interface IUwbChip {
String getName();
void open(in android.hardware.uwb.IUwbClientCallback clientCallback);
void close();
void coreInit();
void sessionInit(int sessionId);
int getSupportedAndroidUciVersion();
int sendUciMessage(in byte[] data);
}
iuwbClientCallback.aidl
package android.hardware.uwb;
interface IUwbClientCallback {
oneway void onUciMessage(in byte[] data);
oneway void onHalEvent(in android.hardware.uwb.UwbEvent event, in android.hardware.uwb.UwbStatus status);
}
ultra geniş bant çerçevesinden HAL çağrı akışı
Aşağıdaki resimlerde, ultra geniş bant çerçevesinden gelen Ultra geniş bant yığını başlatma, ultra geniş bant yığını başlatma ve ultra geniş bant oturumu başlatma ve çok önemli bir parçasıdır.
Şekil 1. Ultra geniş bant yığını başlatma çağrı akışı (UWB açma/kapatma düğmesi açık)
Şekil 2. Ultra Geniş Bant yığınını devre dışı bırakma çağrı akışı (UWB açma/kapatma düğmesi kapalı)
Şekil 3. Ultra geniş bant oturumu başlatma/durdurma akışı
Ultra Geniş Bant ülke kodu yapılandırması
Şekil 1'de gösterildiği gibi ultra geniş bant çerçevesi, ultra geniş bant ülke kodunu yapılandırır
tedarikçi-alan UCI komutunu kullanarak ultra geniş bant yığını başlatma sırasında
ANDROID_SET_COUNTRY_CODE
(GID=0xC
, OID=0x1
). Ultra geniş bant çerçevesi
aşağıdaki kaynakları kullanarak ultra geniş bant ülke kodunu belirleyin (öncelikli olarak listelenir)
sipariş). Ultra Geniş Bant çerçevesi, ülke kodunun geçerli olduğu ilk kaynakta durur.
belirler.
- Ülke kodunu geçersiz kıl: Ülke kodu, adb kabuk komutu aracılığıyla zorunlu kılındı (yerel veya otomatik test).
- Telefon ülke kodu: Hücresel ağ üzerinden alınan ülke kodu. Eğer farklı kodlar, ülke kodu döndüren birden fazla SIM var belirsizdir.
- Kablosuz ağ ülke kodu: Kablosuz ağ (80211.ad) üzerinden alınan ülke kodu.
- Telefonda bilinen son ülke kodu: Alınan bilinen son ülke kodu cep telefonu üzerinden. Farklı döndüren birden fazla SIM varsa kodlardan yararlandıysanız, seçilen ülke kodu deterministik değildir.
- Konum ülke kodu:
LocationManager
adresinden alınan ülke kodu çok yönlü bir konum sağlayıcıdır. - OEM varsayılan ülke kodu: Cihaz üreticisi tarafından belirlenen ülke kodu.
Ultra Geniş Bant çerçevesi bir ultra geniş bant ülke kodu belirleyemezse
Değeri şu olan ANDROID_SET_COUNTRY_CODE
UCI komutu:
DEFAULT_COUNTRY_CODE ("00")
ve ultra geniş bant uygulamalarına şu bilgileri gönderir:
ultra geniş bant yığınının durumu DISABLED
olur. Daha sonra ultra geniş bant çerçevesi
bir
geçerli ülke kodunu kullanarak yeni ülke kodunu yapılandırır.
ANDROID_SET_COUNTRY_CODE
komutu çalıştırarak ultra geniş bant uygulamalarına UWB yığınının
READY
.
Ultra Geniş Bant kullanılamıyorsa
Bir ülkedeki yerel düzenlemeler nedeniyle, ultra geniş bant kumanda,
STATUS_CODE_ANDROID_REGULATION_UWB_OFF
durum kodu. Ultra Geniş Bant çerçevesi ise
ultra geniş bant uygulamalara, ultra geniş bant yığın durumunun DISABLED
olduğunu bildirir.
Bir kullanıcı farklı bir ülkeye seyahat ettiğinde, ultra geniş bant çerçevesi yeni bir
ülke kodu için ANDROID_SET_COUNTRY_CODE
UCI komutunu kullanın. Seçtiğiniz düzenleme moduna
ultra geniş bant denetleyicisi tarafından döndürülen durum kodu (
yeni bir ülke) bu durum, ultra geniş bant yığınının durumunda değişikliğe neden olabilir.
FIRA UCI spesifikasyonu tanımlı komut biçimi
UCI denetim paketlerinin biçimi için bkz. UCI'nın 4.4.2 numaralı bölümü spesifikasyonlarına göz atın.
Arayüz sürümü oluşturma
UCI spesifikasyonu, ultra geniş bant tedarikçilerinin UCI yığınının sürümünü açığa çıkarmasını sağlar
cihaz tarafından UCI_GET_DEVICE_INFO_RSP
ve
UCI_GET_CAPS_INFO_RSP
komutları. Çerçeve, aynı tablodaki etiketleri indirmek için
ve davranışını buna göre değiştirin.
Ultra Geniş Bant modülü tarafından desteklenen taslak CR'lerin listesi
FiRa 2.0 için aşağıdaki taslak hazır yanıtlar, UWB modülü sürümü #330810000:
Android UCI arayüzü (FiRa satıcı kısmı)
UCI spesifikasyonu bir dizi grup tanımlayıcısını (GID) ve işlem kodunu tanımlar. tanımlayıcılar (OID'ler) kullanır. Spesifikasyon ayrıca, yalnızca satıcı kullanımı için ayrılmış bir grup GID'yi de ayırır. AOSP ultra geniş bant yığın, Android'e özgü komutlar için bu tedarikçi firma GID'lerinden ve OID'lerinden bazılarını özelliklerde tanımlanmamıştır. Ayrıntılar için bkz. UCI'nın 8.4 numaralı bölümü spesifikasyonlarına göz atın.
Android tarafından kullanılan tedarikçi firma mesajları
android.hardware.uwb.fira_android
HAL paketi.
Tedarikçi firma arayüzü sürümü oluşturma
Ultra geniş bant tedarikçileri android.hardware.uwb.fira_android
sürümünü göstermelidir.
HAL paketi, cihazda desteklenen
IUwbChip.getSupportedAndroidUciVersion()
. Çerçeve, bu çerçeveyi
sürüm oluşturma bilgilerini kullanabilirsiniz.
Android GID'lerin ve OID'lerin listesi
Aşağıdaki tabloda, Android için GID'ler ve OID'ler listelenmiştir. 0xE
ve 0xF
GID'leri
Android OEM'lerin kullanması için ayrılmıştır.
GID | OID | Tanım |
---|---|---|
ANDROID = 0xC |
ANDROID_GET_POWER_STATS = 0x0 |
Ultra geniş bant gücüyle ilgili istatistikleri almak için komut ve yanıt tarafından kullanılır.
Yalnızca şu durumlarda desteklenir:
UwbVendorCapabilityTlvTypes.SUPPORTED_POWER_STATS_QUERY .
1 olarak ayarlandı. |
ANDROID_SET_COUNTRY_CODE = 0x1 |
Geçerli düzenleyici ülke kodunu ayarlamak için kullanılır (
SIM veya kablosuz ağ ya da OEM tarafından sabit kodlu) Ülke kodu gönderildi
olarak 2 baytlık bir değer olarak ekleyebilirsiniz. CEVAP
|
|
ANDROID_RANGE_DIAGNOSTICS = 0x2 |
Ultra Geniş Bant aralığı teşhis istatistiklerini almak için bildirim tarafından kullanılır.
Yalnızca şu durumlarda desteklenir:
UwbVendorCapabilityTlvTypes.SUPPORTED_DIAGNOSTICS ayarlandı
Hedef: 1 .
|
|
OEM = 0xE,0xF |
0x00 - 0x3F |
OEM kullanımı için ayrılmıştır. |
UCI spesifikasyonu tarafından tanımlanan mesajlar için tedarikçi firma uzantıları
Bu bölümde UCI'ya yapılan tedarikçi firma uzantılarının ayrıntıları açıklanmaktadır. tanımlanmış iletilerdir.
SESSION_SET_APP_CONFIG_[CMD|RSP] ve SESSION_GET_APP_CONFIG_[CMD|RSP]
Aşağıda,
tedarikçinin APP_CONFIG
bölgesindeki TLV'lerin ayırdığı kısmı:
- GID: 0001b (UWB oturumu yapılandırma grubu)
- OID: 000011b (
SESSION_SET_APP_CONFIG_CMD
) - OID: 000100b (
SESSION_GET_APP_CONFIG_CMD
)
Aşağıdaki tabloda, ultra geniş bant oturum yapılandırma mesajlarının parametreleri listelenmektedir.
Parametre adı | Uzunluk (sekizli) |
Etiket (kimlikler) |
Tedarikçi firma arayüzü sürümü | Açıklama |
---|---|---|---|---|
NB_OF_RANGE_MEASUREMENTS |
1 | 0xE3 |
1 | AOA_RESULT_REQ ayarlanmışsa boşluk oranı
Hedef: 0xF0 . Yalnızca
UwbVendorCapabilityTlvTypes.SUPPORTED_AOA_RESULT_REQ_ANTENNA_INTERLEAVING .
1 olarak ayarlandı. |
NB_OF_AZIMUTH_MEASUREMENTS |
1 | 0xE4 |
1 | |
NB_OF_ELEVATION_MEASUREMENTS |
1 | 0xE5 |
1 | |
ENABLE_DIAGNOSTICS |
1 | 0xE8 |
2 | Teşhis raporlamasını etkinleştirmek veya devre dışı bırakmak için 1 baytlık değer.
Bu parametreyi yalnızca Değerler:
|
DIAGRAMS_FRAME_REPORTS_FIELDS |
1 veya 4 | 0xE9 |
2 | Teşhis raporlamasını yapılandırmak için 1 baytlık veya 4 baytlık bit maskesi. Bu bit maskesi, Android 14 veya sonraki sürümlerde 1 bayttır. Android 13 veya önceki sürümlerde 4 bayt. Bu parametreyi yalnızca
Bit tanımları:
|
CORE_GET_CAPS_INFO_RSP
Aşağıda, ayrılmış tedarikçi firmadaki AOSP yığını tarafından tanımlanan TLV'ler verilmiştir.
CAPS_INFO
bölgesindeki TLV'lerin oranı:
- GID: 0000b (UWB çekirdek grubu)
- OID: 000011b (
CORE_GET_CAPS_INFO_RSP
)
Aşağıdaki tabloda, ultra geniş bant özellikli mesajlarla ilgili parametreler listelenmiştir.
Parametre adı | Uzunluk (sekizli) |
Etiket (kimlikler) |
Tedarikçi firma arayüzü sürümü | Açıklama |
---|---|---|---|---|
SUPPORTED_POWER_STATS_QUERY |
1 | 0xC0 |
1 | Güç istatistikleri sorgusu desteğini gösteren 1 bayt değeri. Değerler:
|
SUPPORTED_AOA_RESULT_REQ_ANTENNA_INTERLEAVING |
1 | 0xE3 |
1 | Antenin boşluk ekleme desteğini gösteren 1 baytlık değer özelliğini kullanabilirsiniz. Değerler:
|
SUPPORTED_MIN_RANGING_INTERVAL_MS |
4 | 0xE4 |
2 | Desteklenen minimum aralık aralığını gösteren 4 baytlık değer: milisaniye cinsinden ayarlanır. |
SUPPORTED_RANGE_DATA_NTF_CONFIG |
4 | 0xE5 |
2 | Desteklenen
RANGE_DATA_NTF_CONFIG değerleri.
Her bitin,
SET_APP_CFG_CMD içinde RANGE_DATA_NTF_CONFIG . |
SUPPORTED_RSSI_REPORTING |
1 | 0xE6 |
2 | RSSI raporlamasının desteğini gösteren 1 baytlık değer. Değerler:
|
SUPPORTED_DIAGNOSTICS |
1 | 0xE7 |
2 | Teşhis raporlaması desteğini gösteren 1 bayt değeri. Değerler:
|
SUPPORTED_MIN_SLOT_DURATION_RSTU |
4 | 0xE8 |
2 | RSTU'da desteklenen minimum slot süresini gösteren 4 baytlık değer. |
SUPPORTED_MAX_RANGING_SESSION_NUMBER |
4 | 0xE9 |
2 | Desteklenen maksimum FiRa aralığı sayısını gösteren 4 baytlık değer anlamına gelir. |
SUPPORTED_CHANNELS_AOA |
2 | 0xEA |
2 | AoA'yı destekleyen kanalları belirtmek için 2 baytlık bit maskesi. Her biri
Bit maskesindeki Değerler:
|
Durum kodları
Tedarikçi firma alanındaki durum kodları aşağıda verilmiştir. Bu öğelerin döndürüleceği zaman
Ultra Geniş Bant alt sistemi (UWBS) tarafından verilen UCI yanıtları (SESSION_START_RSP
gibi).
Durum kodu | Değer | Açıklama |
---|---|---|
STATUS_ERROR_STOPPED_DUE_TO_OTHER_SESSION_CONFLICT |
0x52 |
Mevcut aralık oturumu şu anda gerçekleştirilemediğinde durum kodu döndürülür diğer CCC veya FiRa aralığı oturumlarıyla çakışma nedeniyle başlatılmış olmalıdır. |
STATUS_REGULATION_UWB_OFF |
0x53 |
Mevcut aralık oturumu şu anda gerçekleştirilemediğinde durum kodu döndürülür mevzuat kaynaklı nedenlerden dolayı kullanılmaya başlanmıştır. |
SESSION_STATUS_NTF içindeki durum değişikliği nedeni kodu
Aşağıda, tedarikçi firma alanında tanımlanan durum değişikliği nedeni kodları
SESSION_STATUS_NTF
bölgesindeki bir ultra geniş bant tarafından döndürülen durum alanı. Bu bildirim
bir aralık oturumun durumu değiştiğinde UWBS tarafından gönderilir (örneğin,
ACTIVE
ile IDLE
arasında).
Durum değişikliği nedeni kodu | Değer | Açıklama |
---|---|---|
REASON_ERROR_INVALID_CHANNEL_WITH_AOA |
0x80 |
Yapılandırılmış kanal şunları yapmadığı için oturum durumu değişti: AoA aralığını destekler. |
REASON_ERROR_STOPPED_DUE_TO_OTHER_SESSION_CONFLICT |
0x81 |
Diğer CCC veya FiRa ile çakışma nedeniyle oturum durumu değişti ele alacağız. |
REASON_REGULATION_UWB_OFF |
0x82 |
Ultra Geniş Bant'ın yasal gerekçelerle |