UIM驅動程式

2021-10-08 18:32:38 字數 3101 閱讀 3086

uim分為uim驅動程式和uim伺服器。 uim用作物理sim卡和ue之間的唯一介面。 uim驅動程式負責與元件(例如通用非同步接收器/傳送器(uart),clk reg,pmic,中斷控制器和rpm)進行軟體互動。

下圖是sim卡中的電氣觸點,如下圖所示:

■ vcc power enable

■ ground

■ reset

■ clock

■ i/o

uim伺服器是uim驅動程式與更高階別客戶端(例如多模式通用sim驅動程式介面(mmgsdi),通用sim應用程式工具包(gstk)和非易失性可移動使用者標識模組(nvruim))之間的邏輯。

卡後檢視

在裝置上檢視

uim支援:帶觸點的卡-電子介面和傳輸協議(iso 7816-3:2006)規範和3gpp規範的sim卡。 這些sim卡包括電氣特性,物理和邏輯特性,傳輸協議,檔案系統,sim應用程式工具包以及某些網路特性和網路服務。 uim功能包括sim,usim,ruim,wim,utk和stk。

uim軟體介面由uim應用程式伺服器和uim低階驅動程式(lld)組成。 uim介面連線物理卡和ue。

下圖顯示了選擇操作條件類別的一般工作流程:

uim驅動程式體系結構規範如下:

ue以直接約定開始,然後根據卡的響應切換為反向約定。

uim驅動程式層執行以下功能:

uim伺服器層執行以下功能:

uim驅動程式提供以下服務層:

熱插拔允許使用者從插槽中交換uicc,而無需重新啟動裝置。 (僅當無需卸下電池即可訪問uicc時,此用例才有效。)從msm8974開始,可以使用nv 70210啟用或禁用熱插拔。術語熱插拔表示可以從中插入或取出sim卡。 移動裝置,從而無需重新啟動裝置即可丟失並重新獲得服務。

uim熱插拔sim卡

efs 70210控制熱插拔啟用,並且卡檢測gpio配置。 uim初始化軟體配置卡檢測gpio(請參閱表2-1和表2-2)。 這些可在執行時配置的專案是efs專案70210的一部分。

表2-1卡檢測插槽1的gpio配置

啟用uim1熱插拔

true

uim1熱插拔極性

active_high

uim 1卡檢測gpio編號

100uim1卡檢測gpio功能選擇

0uim1卡檢測gpio驅動程式強度

2 ma

uim1卡檢測拉動設定

no pull

表2-2卡檢測插槽2的gpio配置

啟用uim2熱插拔

true

uim2熱插拔極性

active_high

uim2卡檢測gpio編號

52uim2卡檢測gpio功能選擇

0uim2卡檢測gpio驅動程式強度

2 ma

uim2卡檢測拉動設定

no pull

uim控制器硬體對卡檢測線進行反抖動。 防反跳時間值設定為三個睡眠時鐘(睡眠時鐘頻率= 32.768 khz)。 該硬體去抖動時間值不可配置。

該軟體還會對卡檢測線進行反跳動,以防止由於錯誤開關引起的多次中斷而導致軟體進入錯誤狀態。 nv 66050控制去抖動值。

觸發熱插拔isr後,防反跳過程開始,uim以大約0.1 ms的固定時間間隔反覆向該插槽傳送卡狀態查詢。 客戶端可以通過nv 66050配置該數量的樣本。預設值是20個樣本以檢測卡是否插入,乙個樣本以檢測卡的移除,以及10個樣本以用於不穩定情況下的最大反跳重試計數器。

當uim對該熱插拔中斷的所有取樣計數連續收到相同狀態時,防抖動成功結束。 去抖過程中的任何不匹配都會從以下位置重新開始取樣計數

1.此過程以成功的結果或uim達到其最大的反跳重試計數為結束。 卡檢測所需的時間取決於樣本數量和固定的時間間隔,對於大多數目標而言,大約為0.1 ms。

取樣邏輯基於用於卡檢測的允許樣本數以及此防反跳的重試計數數。 對於插入的卡和檢測到的卡,允許的樣本計數有乙個不同的數字,但是兩個查詢的最大防反跳重試次數相同。

恢復是uim模組中定義的qti專有功能,用於在發生意外故障時在內部重置卡。 支援恢復的目的是為卡提供另一種使其可操作的機會,而不是將卡宣告為有故障且**無法使用。 由於卡無響應,奇偶校驗錯誤,rx_break錯誤,uart over_run錯誤和超時將觸發恢復過程。

uicc關機涉及呼叫pmic公開的api,該api會在卸下電池時根據電池警報線上的訊號執行vcc的關機過程。 pmic通過batt_alarm通用輸入/輸出暫存器(gpio)接收訊號以執行vcc關斷,並停用uim ldo。 當您實際卸下卡或電池或電池完全耗盡時,將執行此步驟。

linux 驅動程式 高階字元驅動程式

ioctl方法 驅動程式的原型實現 int ioctl struct inode inode,struct file filp,unsigned int cmd,unsigned long arg ioctl 命令選擇 位段結構 number direction ioc read ioc write...

linux裝置驅動程式 字元裝置驅動程式

先留個 有一起學習驅動程式的加qq295699450 字元裝置驅動 這篇比較惱火。載入成功,但是讀不出來資料,有知道怎麼回事的,留個言,一起討論下 資料結構 struct scull mem struct scull dev dev 整個驅動程式 如下 include include include...

Linux裝置驅動程式 字元裝置驅動程式

1.檢視主裝置號,次裝置號 進入 dev目錄執行ls l,第四,五列分別為主次裝置號,10,180,1,5,這些是主裝置號,而60,63這些就是次裝置號 130 shell android dev ls l crw rw r system radio 10,60 1969 12 31 21 00 a...