Bluetooth Profile Specification之2.1 SPP配置文件(2)

      網(wǎng)友投稿 842 2022-05-30

      7.應(yīng)用層

      Bluetooth Profile Specification之2.1 SPP配置文件(2)

      此配置文件建立在通用訪問(wèn)配置文件之上。

      當(dāng)讀取時(shí)甲方(連接發(fā)起者)相當(dāng)于DevA,而乙方則相當(dāng)于DevB。

      7.1?程序概述

      7.1.1建立鏈接和建立虛擬串行連接

      此過(guò)程是指執(zhí)行在遠(yuǎn)程設(shè)備中建立到模擬串口(或等效端口)的連接所需的步驟。本過(guò)程中的步驟包括:

      使用SDP提交一個(gè)查詢,以查找遠(yuǎn)程設(shè)備中所需應(yīng)用程序的RFCOMMServer通道號(hào)。這可能包括一種瀏覽功能,可以讓用戶在對(duì)等設(shè)備中的可用端口(或服務(wù))中進(jìn)行選擇?;蛘撸绻_切地知道要聯(lián)系哪個(gè)服務(wù),那么使用與所需服務(wù)關(guān)聯(lián)的服務(wù)類ID查找必要的參數(shù)就足夠了。

      或者,需要對(duì)要執(zhí)行的遠(yuǎn)程設(shè)備進(jìn)行身份驗(yàn)證。另外,也需要打開(kāi)加密功能。

      向遠(yuǎn)程RFCOMM實(shí)體請(qǐng)求一個(gè)新的L2CAP通道。

      在L2CAP通道上啟動(dòng)一個(gè)RFCOMM會(huì)話。

      使用上述的服務(wù)器通道號(hào),在RFCOMM會(huì)話上啟動(dòng)一個(gè)新的數(shù)據(jù)鏈路連接。

      在步驟5之后,虛擬串行電纜連接可以用于雙方應(yīng)用程序之間的通信。

      注意:如果在設(shè)置新的數(shù)據(jù)鏈路連接時(shí),兩個(gè)設(shè)備之間已經(jīng)存在一個(gè)RFCOMM會(huì)話,則必須在現(xiàn)有的RFCOMM會(huì)話上建立一個(gè)新的連接。(這相當(dāng)于跳過(guò)上面的步驟3和步驟4。)

      注意:步驟1和步驟2之間的順序并不重要(可能正好相反)。

      7.1.2接受鏈接并建立虛擬串行連接

      本程序是指參與以下步驟:

      如果遠(yuǎn)程設(shè)備請(qǐng)求,請(qǐng)參與身份驗(yàn)證過(guò)程,并根據(jù)進(jìn)一步請(qǐng)求啟用加密。

      接受來(lái)自L2CAP的新通道建立指示

      接受該通道上的RFCOMM會(huì)話設(shè)置。

      在RFCOMM會(huì)話上接受一個(gè)新的數(shù)據(jù)鏈接連接。如果用戶要求使用要連接到的模擬串行端口(并且尚未執(zhí)行身份驗(yàn)證/加密過(guò)程),這可能會(huì)觸發(fā)對(duì)遠(yuǎn)程設(shè)備進(jìn)行身份驗(yàn)證并打開(kāi)加密的本地請(qǐng)求。

      注意:當(dāng)已經(jīng)存在到遠(yuǎn)程設(shè)備的RFCOMM會(huì)話時(shí),步驟1和步驟4可能是隔離事件。

      7.1.3在本地SDP數(shù)據(jù)庫(kù)中的3.1.3注冊(cè)服務(wù)記錄

      此過(guò)程是指在SDP數(shù)據(jù)庫(kù)中注冊(cè)模擬串口(或等效端口)的服務(wù)記錄。這意味著存在一個(gè)服務(wù)數(shù)據(jù)庫(kù),以及響應(yīng)SDP查詢的能力。

      通過(guò)RFCOMM可訪問(wèn)的所有服務(wù)/應(yīng)用程序都需要提供一個(gè)SDP服務(wù)記錄,其中包括訪問(wèn)相應(yīng)服務(wù)/應(yīng)用程序所需的參數(shù)。為了支持在虛擬串行端口上運(yùn)行的遺留應(yīng)用程序,服務(wù)注冊(cè)必須由一些幫助器應(yīng)用程序來(lái)完成,該應(yīng)用程序可以幫助用戶設(shè)置該端口。

      7.2?電源模式和鏈路損耗處理

      由于在串口配置文件中活動(dòng)的單元的電源需求可能會(huì)有很大的不同,因此不需要使用任何節(jié)電模式。但是,如果可能,使用低功率模式的請(qǐng)求不應(yīng)被拒絕。

      如果使用嗅探、停車或保持模式,則不釋放RFCOMMdlc和L2CAP通道。

      如果機(jī)組檢測(cè)到鏈路丟失,則應(yīng)認(rèn)為RFCOMM已關(guān)閉。不得執(zhí)行第4節(jié)中所述的斷開(kāi)DLC和關(guān)閉RFCOMM程序。在恢復(fù)更高層上的通信之前,必須執(zhí)行初始化RFCOMM會(huì)話過(guò)程。

      如果使用嗅探、停車或保持模式,則不釋放RFCOMMdlc和L2CAP通道。

      如果機(jī)組檢測(cè)到鏈路丟失,則應(yīng)認(rèn)為RFCOMM已關(guān)閉。不得執(zhí)行第4節(jié)中所述的斷開(kāi)DLC和關(guān)閉RFCOMM程序。在恢復(fù)更高層上的通信之前,必須執(zhí)行初始化RFCOMM會(huì)話過(guò)程。

      8.RFCOMM可互操作性的要求

      本節(jié)描述了在符合串口配置文件的單元中對(duì)RFCOMM的要求。

      8.1RS232控制信號(hào)

      所有的設(shè)備都需要通過(guò)調(diào)制解調(diào)器狀態(tài)命令發(fā)送關(guān)于RS232控制信號(hào)中的所有變化的信息。然而,由于RFCOMM可以與實(shí)現(xiàn)任何類型API的自適應(yīng)層一起使用(不僅僅是虛擬串口),所以使用除了流量控制(TS07.10中的RTR信號(hào))之外的所有RS232控制信號(hào)是可選的。這個(gè)信號(hào)可以被映射到RTS/CTS或XON/XOFF或其他API機(jī)制上,這是一個(gè)實(shí)現(xiàn)問(wèn)題。

      注釋:為了提供實(shí)際使用所有RS232控制信號(hào)的設(shè)備和不使用它們的設(shè)備之間的互操作性,前一種實(shí)現(xiàn)必須將api/連接器中適當(dāng)信號(hào)的狀態(tài)取決于適當(dāng)?shù)哪J(rèn)值。該實(shí)現(xiàn)不能依賴于從對(duì)等設(shè)備接收任何RS232控制信息。對(duì)RFCOMMDLC狀態(tài)的依賴可能意味著當(dāng)RFCOMM? DLC建立時(shí),DSR/DTR和DCD被設(shè)置為高電平,如果相應(yīng)的DLC因任何原因關(guān)閉,相同的信號(hào)被設(shè)置為低電平。

      8.2遠(yuǎn)程線路狀態(tài)指示

      如果本地設(shè)備從物理串行(或等效)中繼信息,需要使用遠(yuǎn)程線路狀態(tài)指示命令通知其他設(shè)備RS232線路狀態(tài)的任何變化。

      8.3遠(yuǎn)程端口談判

      DevA可以在DLC建立之前直接通過(guò)遠(yuǎn)程端口協(xié)商命令通知DevBRS232端口設(shè)置。如果發(fā)送到RFCOMM自適應(yīng)層的API公開(kāi)了這些設(shè)置(例如,波特率、奇偶校驗(yàn)),則需要這樣做。

      允許DevB發(fā)送遠(yuǎn)程端口協(xié)商命令。

      信息說(shuō)明:遠(yuǎn)程端口協(xié)商過(guò)程中傳遞的信息預(yù)計(jì)僅在RFCOMM[4]中第1.2節(jié)規(guī)定的II型設(shè)備(具有物理串口端口)中有用,或者如果由于任何原因在模擬串口接口上進(jìn)行數(shù)據(jù)節(jié)奏。RFCOMM因此不會(huì)基于波特率設(shè)置人為地限制吞吐量。

      9.L2CAP的互操作性要求

      X1:在此配置文件的執(zhí)行過(guò)程中不使用無(wú)連接的通道,但不排除其他配置文件/應(yīng)用程序的并發(fā)使用。

      9.1通道類型

      在此配置文件中,只能使用面向連接的通道。這意味著在此配置文件中將不會(huì)使用廣播數(shù)據(jù)和單播無(wú)連接數(shù)據(jù)。

      在連接請(qǐng)求數(shù)據(jù)包的PSM字段中,必須使用在分配編號(hào)文檔RFCOMM的值。

      9.2信號(hào)

      只有DevA可以在執(zhí)行此配置文件中發(fā)出L2CAP連接請(qǐng)求。除此之外,串口配置文件對(duì)L2CAP信令沒(méi)有施加任何額外的限制或要求。

      9.3配置選項(xiàng)

      本節(jié)描述了在串行端口配置文件中的配置選項(xiàng)的使用情況。

      9.3.1最大傳輸單元

      對(duì)MTU尺寸沒(méi)有任何限制。

      9.3.2刷新超時(shí)

      串口數(shù)據(jù)通過(guò)一個(gè)可靠的L2CAP通道傳輸。沖洗超時(shí)值應(yīng)設(shè)置為其默認(rèn)值0xffff,除非為承載RFCOMM的L2CAP通道協(xié)商了L2CAP增強(qiáng)重傳模式。如果協(xié)商了L2CAP增強(qiáng)重傳模式,則可以根據(jù)在同一ACL邏輯傳輸上運(yùn)行的其他概要文件來(lái)設(shè)置刷新超時(shí)值。

      9.3.3服務(wù)質(zhì)量

      關(guān)于服務(wù)質(zhì)量的協(xié)商是可選的。

      9.3.4流量和錯(cuò)誤控制

      對(duì)于任何將傳輸大型數(shù)據(jù)文件和接收設(shè)備將受到無(wú)線電干擾而導(dǎo)致數(shù)據(jù)包丟失的產(chǎn)品,建議通過(guò)配置通道以使用增強(qiáng)的重傳模式來(lái)利用L2CAP(核心規(guī)范V3.0及更高版本)中的錯(cuò)誤控制功能。

      串口數(shù)據(jù)通過(guò)一個(gè)可靠的L2CAP通道傳輸。該通道的可靠性可以通過(guò)在ACL邏輯傳輸上的無(wú)限刷新超時(shí)來(lái)實(shí)現(xiàn)。但是,如果串行端口配置文件與同一物理鏈路上的其他配置文件共存,那么可能不能以這種方式配置ACL邏輯傳輸。因此,對(duì)于期望串口配置文件與物理鏈路上的其他配置文件共存的設(shè)備,應(yīng)該為通道承載RFCOMM協(xié)商L2CAP增強(qiáng)重傳模式(在核心規(guī)范版本3.0中引入)。以這種方式實(shí)現(xiàn)可靠的L2CAP通道,從而允許ACL邏輯傳輸具有適用于其他配置文件的有限刷新超時(shí)。

      對(duì)于使用串行端口配置文件的應(yīng)用程序,也可以協(xié)商L2CAP增強(qiáng)重傳模式,這需要比非刷新ACL邏輯傳輸提供的更高的可靠性。

      10.SDP的互操作性要求

      10.1串口配置文件的SDP服務(wù)記錄

      在DevA中沒(méi)有與串口配置文件相關(guān)的SDP服務(wù)記錄。

      下表描述了DevB的SDP數(shù)據(jù)庫(kù)中與串行端口相關(guān)的項(xiàng)。允許向此服務(wù)記錄添加其他屬性。

      在v1.2之前的串行端口配置文件版本并沒(méi)有強(qiáng)制使用BluetoothProfileDescriptorList屬性。新的DevA設(shè)備應(yīng)假定沒(méi)有此屬性的遠(yuǎn)程DevB不支持串口配置文件版本1.2或更高版本。

      10.2SDP程序

      為了檢索支持此配置文件的服務(wù)記錄,在DevA中的SDP客戶端實(shí)體通過(guò)SDP和SDAP的SDP上限程序與SDP服務(wù)器實(shí)體連接和交互。根據(jù)SDAP,DevA扮演LocDev的角色,而DevB扮演RemDev的角色。

      11.鏈接管理器(LM)互操作性要求

      11.1能力概述

      除了在鏈路管理器規(guī)范本身中規(guī)定的對(duì)受支持的過(guò)程的要求外,這個(gè)配置文件還需要支持DevA和DevB中的加密。

      11.2錯(cuò)誤行為

      如果一個(gè)單元試圖使用強(qiáng)制功能,而另一個(gè)單元回答不支持,啟動(dòng)單元應(yīng)發(fā)送一個(gè)具有分離原因的“不支持LMP特性”的LMP_detach。

      一個(gè)單元應(yīng)始終能夠處理拒絕對(duì)一個(gè)可選功能的請(qǐng)求。

      11.3鏈接策略

      在執(zhí)行此配置文件時(shí),沒(méi)有固定的主從角色。

      此配置文件不說(shuō)明是否使用了低功耗模式或何時(shí)使用它的任何要求。這是由每個(gè)設(shè)備的鏈接管理器延遲要求的限制范圍內(nèi),適當(dāng)?shù)貨Q定和請(qǐng)求的。

      12.鏈路控制(LC)的互操作性要求

      12.1查詢

      在DevA中使用查詢時(shí),應(yīng)使用一般查詢程序。

      只有DevA可以在執(zhí)行此配置文件時(shí)進(jìn)行查詢

      12.2查詢掃描

      對(duì)于查詢掃描,(至少)應(yīng)根據(jù)GAP[可發(fā)現(xiàn)模式之一,使用GIAC。也就是說(shuō),如果適合駐留在DevB中的應(yīng)用程序,它只允許使用有限的可發(fā)現(xiàn)模式。

      在DevB查詢響應(yīng)消息中,“設(shè)備類”字段不會(huì)包含任何提示DevB是否參與串行端口配置文件的執(zhí)行(由于此配置文件提供的遺留應(yīng)用程序的通用串口服務(wù)不適合“設(shè)備類”字段定義中的任何主要服務(wù)類位)。

      12.3分頁(yè)

      只有DevA才能在此配置文件的執(zhí)行中頁(yè)面。當(dāng)DevA和DevB之間已經(jīng)有一個(gè)基帶連接時(shí),當(dāng)開(kāi)始執(zhí)行此配置文件時(shí),將在DevA中跳過(guò)分頁(yè)步驟。(在這種情況下,連接可能是DevB以前分頁(yè)的結(jié)果。)

      12.4錯(cuò)誤行為

      由于LC級(jí)別上的大多數(shù)特性必須由LMP程序激活,因此錯(cuò)誤將主要在該層被捕獲。然而,有一些獨(dú)立于LMP層的LC程序;例如,查詢或?qū)ろ?yè)。濫用這些特征是很困難的,有時(shí)甚至不可能被檢測(cè)到。沒(méi)有定義的機(jī)制來(lái)檢測(cè)或防止這種不當(dāng)使用。

      嵌入式

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:Log4J配置文件
      下一篇:excel表格里利用Vlookup函數(shù)匹配數(shù)據(jù)的教程
      相關(guān)文章
      亚洲精品无码高潮喷水在线| 亚洲另类少妇17p| 亚洲国产精品一区二区成人片国内 | 日本亚洲免费无线码 | 亚洲AV无码专区在线播放中文 | 亚洲美女又黄又爽在线观看| 在线a亚洲v天堂网2019无码| 亚洲一区二区视频在线观看| 4338×亚洲全国最大色成网站| 亚洲AV日韩精品一区二区三区| 亚洲第一页日韩专区| 亚洲精品一级无码鲁丝片| 区三区激情福利综合中文字幕在线一区亚洲视频1 | 亚洲爆乳无码专区| 亚洲αv在线精品糸列| 亚洲成色在线影院| 亚洲视频一区二区在线观看| 亚洲白嫩在线观看| 亚洲av乱码一区二区三区香蕉| 亚洲avav天堂av在线网爱情| 亚洲人成电影网站久久| 亚洲av极品无码专区在线观看| 亚洲中文字幕久久精品无码VA| 亚洲中文字幕久久精品无码VA | 在线综合亚洲中文精品| 2020久久精品亚洲热综合一本 | 亚洲成AV人在线观看网址| 国产亚洲老熟女视频| 亚洲精品无码午夜福利中文字幕 | www国产亚洲精品久久久| 亚洲综合精品网站在线观看| 亚洲一区AV无码少妇电影☆| 亚洲成av人片在线观看无码不卡| 亚洲AV人无码综合在线观看| 亚洲美女中文字幕| 亚洲最大天堂无码精品区| 亚洲精品无码少妇30P| 国产精品亚洲片在线花蝴蝶| 亚洲综合亚洲综合网成人| 亚洲国产成人片在线观看无码| 久久久久久亚洲Av无码精品专口 |