两个蓝牙模块是怎么建立连接实现数据交互的?

蓝牙的建立过程是一个复杂的过程,即使有过相当一段工作和使用经验的人,如果不仔细去了解还是理解不全。

平时我们用蓝牙耳机听音乐,和不同的设备共享文件,打电话等,都有一个配对--连接--传输数据的过程。

配对,其实就是一个认证的过程。

1.为什么不配对便无法建立连接?

任何无线通信技术都存在被监听和破解的可能,蓝牙SIG为了保证蓝牙通信的安全性,采用认证的方式进行数据交互。同时为了保证使用的方便性,以配对的形式完成两个蓝牙设备之间的首次通讯认证,经配对之后,随后的通讯连接就不必每次都要做确认。所以认证码的产生是从配对开始的,经过配对,设备之间以PIN码建立约定的linkkey用于产生初始认证码,以用于以后建立的连接。

所以不配对,两个设备之间便无法建立认证关系,无法进行连接及其之后的操作,所以配对在一定程度上保证了蓝牙通信的安全,当然这个安全保证机制是比较容易被破解的,因为现在很多个人设备没有人机接口,所以PIN码都是固定的而且大都设置为通用的0000或者1234之类的,所以很容易被猜到并进而建立配对和连接。

2.蓝牙的连接过程

现在的蓝牙芯片供应商提供的技术支持能力相当强大,有完整的硬件和软件解决方案。对于应用而言,提供了固件用于实现底层协议栈,提供了profile库及源代码规范了各种应用,开发人员只要专注于应用程序开发就可以了。对于蓝牙底层的一些东西往往不甚了了。以前我也是这样子的,最近在做一个自动搜索以实现自动连接的应用,发现还是需要了解一些底层的机制的。

我们可以很容易的进行操作在一个手机和免提设备之间建立连接,那么这个连接是怎么建立起来的呢?

首先,主设备(master,即发起连接的设备)会寻呼(page)从设备(slave,接收连接的设备),master会已跳频的方式去寻呼slave,slave会固定间隔地去扫描(scan)外部寻呼,即pagescan,当scan到外部page时便会响应response该page,这样两个设备之间便会建立link的连接,即ACL链路的连接。当ACL链路连接建立后,主设备会发起channel的连接请求,即L2CAP的连接,建立L2CAP的连接之后,主设备采用SDP去查询从设备的免提服务,从中得到rfcomm的通道号,然后主设备会发起rfcomm的连接请求建立rfcomm的连接。然后就建立了应用的连接。

即linkestablish->channelestablish->rfcommestablish->connection。



  • 涓や釜钃濈墮妯″潡鏄庝箞寤虹珛杩炴帴瀹炵幇鏁版嵁浜や簰鐨?
    绛旓細棣栧厛锛屼富璁惧锛坢aster,鍗冲彂璧疯繛鎺ョ殑璁惧锛変細瀵诲懠锛坧age锛変粠璁惧锛坰lave,鎺ユ敹杩炴帴鐨勮澶囷級锛宮aster浼氬凡璺抽鐨勬柟寮忓幓瀵诲懠slave,slave浼氬浐瀹氶棿闅斿湴鍘绘壂鎻忥紙scan锛夊閮ㄥ鍛硷紝鍗硃agescan锛屽綋scan鍒板閮╬age鏃朵究浼氬搷搴攔esponse璇age,杩欐牱涓や釜璁惧涔嬮棿渚夸細寤虹珛link鐨勮繛鎺ワ紝鍗矨CL閾捐矾鐨勮繛鎺ャ傚綋ACL閾捐矾杩炴帴寤虹珛鍚庯紝...
  • 钃濈墮涓插彛姒傝堪
    绛旓細渚嬪锛屽鏋滀綘鎷ユ湁涓や釜钃濈墮妯″潡锛屽BF10-A锛瀹冧滑涔嬮棿鍙互閫氳繃SPP鍗忚寤虹珛璧蜂覆鍙h繛鎺ワ紝瀹炵幇鏁版嵁鐨勪氦鎹銆傚悓鏍风殑锛岃摑鐗欐ā鍧椾笌钃濈墮閫傞厤鍣ㄤ箣闂达紝鎴栬呰摑鐗欐ā鍧椾笌PDA锛堜釜浜烘暟瀛楀姪鎵嬶級涔嬮棿鐨勯氫俊锛屼篃鑳戒緷璧朣PP鍗忚鏉ュ垱寤轰覆鍙i氶亾锛屼粠鑰屽疄鐜版暟鎹殑瀹炴椂浼犺緭鍜屼氦浜掋係PP鍗忚鐨勮璁″垵琛峰氨鏄负浜嗚钃濈墮璁惧涔嬮棿鑳藉鍍忎紶缁熺殑涓...
  • 钃濈墮宸ヤ綔鍘熺悊
    绛旓細1銆佽摑鐗欒澶囦娇鐢ㄦ棤绾跨數娉㈣繛鎺ユ墜鏈哄拰鐢佃剳銆傝摑鐗欎骇鍝佸寘鍚竴鍧楀皬灏忕殑钃濈墮妯″潡浠ュ強鏀寔杩炴帴鐨勮摑鐗欐棤绾跨數鍜岃蒋浠躲傚綋涓ゅ彴钃濈墮璁惧鎯宠鐩镐簰浜ゆ祦鏃讹紝瀹冧滑闇瑕佽繘琛岄厤瀵广傝摑鐗欒澶囦箣闂寸殑閫氫俊鍦ㄧ煭绋嬶紙琚О涓哄井寰綉锛屾寚璁惧浣跨敤钃濈墮鎶鏈繛鎺ヨ屾垚鐨勭綉缁滐級鐨勪复鏃剁綉缁滀腑杩涜銆備簩銆佽摑鐗欐妧鏈殑涓嶅悓鈥滅被鍒濊摑鐗欐妧鏈疄闄呮湁澶氫釜鈥...
  • 钃濈墮涓插彛閾捐矾
    绛旓細钃濈墮妯″潡BF10-A鐨勪富瑕佸姛鑳鏄缓绔鍜岀淮鎶涓や釜涓嶅悓璁惧闂寸殑閫氫俊杩炴帴锛岀‘淇濇暟鎹殑鍑嗙‘浼犺緭銆傝繖涓ā鍧楃殑鐩爣鏄敮鎸佸悇绉嶅簲鐢ㄩ棿鐨勯氫俊锛屽寘鎷粓绔敤鎴峰簲鐢ㄣ侀珮灞傚崗璁互鍙婁负鐢ㄦ埛鎻愪緵鏈嶅姟鐨勫叾浠栧簲鐢ㄣ傚畠鐨勮璁℃棬鍦ㄨ鐩栭氳繃璁惧涓插彛杩涜閫氫俊鐨勫満鏅紝鏃犺鏄洿鎺ヨ澶囬棿鐨勮繛鎺ワ紝杩樻槸閫氳繃钃濈墮杩炴帴鍒扮綉缁滄帴鍏ヨ澶囷紝濡侻odem銆傚湪...
  • 钃濈墮妯″潡鍏蜂綋浣跨敤鏂规硶
    绛旓細澶у鏁拌摑鐗欐ā鍧楀彲浠ラ氳繃AT鍛戒护杩涜閰嶇疆銆閫氳繃涓插彛缁堢杩炴帴鍒拌摑鐗欐ā鍧楋紝鐒跺悗杈撳叆AT鍛戒护鏉ラ厤缃弬鏁帮紝濡傝摑鐗欏悕绉般侀厤瀵圭爜銆侀氫俊閫熺巼绛銆傚缓绔嬭繛鎺ワ細浣跨敤钃濈墮鍗忚鏍堢殑API鎴栧簱锛岄氳繃缂栫▼鏂瑰紡鍦ㄤ富鎺ф澘涓婂疄鐜拌摑鐗欒繛鎺ャ傝繖閫氬父娑夊強鎵弿鍛ㄥ洿璁惧銆佸缓绔嬮厤瀵广佹墦寮RFCOMM閫氶亾绛夋楠わ紝鍏蜂綋鍙栧喅浜庝綘鐨勫簲鐢ㄥ満鏅傛暟鎹紶杈擄細涓鏃...
  • 钃濈墮妯″潡涓讳粠涓浣撴槸浠涔堟剰鎬?
    绛旓細涓讳粠涓浣撳氨鏄兘澶熷湪涓绘満鍜屼粠鏈烘ā寮忛棿鍒囨崲锛屽嵆鍙仛涓绘満涔熷彲浣滀粠鏈恒傚湪涓讳粠涓浣撴ā寮忎笅锛屾垜浠皢涓涓覆鍙钃濈墮妯″潡璁剧疆涓轰富璁惧锛屽彟涓涓缃负浠庤澶囷紝寤虹珛杩炴帴鍚庯紝灏卞彲浠ヨ繘琛屾棤闇浠讳綍鍗忚杩涜鏁版嵁閫忎紶銆備富浠庝竴浣撻澶栧鍔犱簡钃濈墮妯″潡鐨勫姛鑳斤紝鎴愭湰浼樺寲鍜屾槗鐢ㄦс 濡傛灉钃濈墮妯″潡浠ュ墠鍦ㄥ皝闂郴缁熶腑浣滀负涓昏澶囧伐浣滐紝閭...
  • 鎬ユ眰闂涓や釜钃濈墮妯″潡濡備綍鍙戦丄T鎸囦护
    绛旓細褰寤虹珛杩炴帴锛屼袱璁惧鍏卞悓浣跨敤涓閫氶亾涔熷氨鏄悓涓涓覆鍙o紝涓涓澶囧彂閫佹暟鎹埌閫氶亾涓紝鍙﹀涓涓澶囦究鍙互鎺ユ敹閫氶亾涓殑鏁版嵁銆傚綋鐒讹紝瀵逛簬寤虹珛杩欑閫氶亾杩炴帴鏄湁涓瀹氭潯浠讹紝閭e氨鏄瀵硅摑鐗璁剧疆濂借兘杩涜閰嶅杩炴帴鐨凙T妯″紡銆 涓鑸殑钃濈墮涓插彛妯″潡寮曡剼锛 RXD锛氭帴鏀剁 TXD锛氬彂閫佺 AT锛氳缃伐浣滄ā寮忥紙1銆佸伐浣滄ā寮 2銆...
  • 鐢ㄦ墜鏈鸿摑鐗欐帶鍒朵竾鐗:HC-06浠庢満钃濈墮妯″潡浠嬬粛鍜屼娇鐢
    绛旓細瀹夎APP鍚庯紝钃濈墮杩炴帴HC-06妯″潡锛涙垜浠夋嫨鎸夐挳鎺у埗妯″紡锛涘皢鍏朵腑鍥涗釜鎸夐敭鍚嶈瘝鏀逛负锛氬叧闂紝鎵撳紑锛 锛岀瑧鑴革紱骞跺皢鎸変笅鎸夐敭鐨勫彂閫佷唬鐮佸垎鍒敼涓猴細0,1,2,3銆傜幇鍦ㄥぇ鍔熷憡鎴愶紝鍒嗗埆鎸変笅锛氬叧闂佹墦寮銆 銆佺瑧鑴革紝鐐归樀灞忓氨浼氭寜鐓у搴旂殑鏂瑰紡鏄剧ず锛氬彧瑕佹垜浠湪鍔犱笂涓嶅悓鐨勬墽琛屽櫒锛屽氨鍙互鐢ㄦ墜鏈鸿摑鐗欐帶鍒舵杩涚數鏈猴紝鑸垫満锛...
  • 钃濈墮鎶鏈師鐞
    绛旓細1銆佸皠棰戜俊鍙妯″潡 钃濈墮璁惧闇瑕侀厤澶囦綆鍔熺巼娑堣楃殑2.4GHz灏勯鍙戝皠妯″潡锛岀敤浜庡彂閫佸拰鎺ユ敹灏勯淇″彿浠ュ強澶勭悊淇¢亾鐨勫垏鎹2銆佷俊鍙风鐞 钃濈墮鎶鏈娇鐢ㄤ簡澶氳烦銆佷富浠庡紡鐨勯氳鏂瑰紡锛岄氳繃淇″彿瀵诲潃瀹炵幇涓や釜涓嶅悓璁惧涔嬮棿鐨勮繛鎺ャ傚悓鏃讹紝钃濈墮璁惧杩橀渶瑕佸湪涓绯诲垪鍒嗘暎鐨勯娈典腑閫夋嫨涓嶅悓鐨勯氶亾锛屽苟鐩戞祴棰戣氨鐨勫崰鐢ㄦ儏鍐点3銆杩炴帴寤虹珛...
  • 鎵嬫満涓庡彟澶栦竴涓摑鐗欐ā鍧閰嶅瀹屽悗,鎬庨航鎶婃墜鏈轰笂鎸変笅鏁板瓧淇℃伅浼犵粰钃濈墮妯...
    绛旓細閰嶅銆傝繛鎺ャ備紶鏁版嵁銆 鍒嗕袱绉嶆儏鍐碉紝钃濈墮妯″潡姣斿鐢ㄨ摑鐗欐ā鍧桞F10,鍒欓渶瑕佽缃澶囩被鍨嬬爜锛岃嚜鍔ㄨ繛鎺ユ墜鏈猴紝鎵嬫満钃濈墮杩欒竟鏈涓缓绔嬭繛鎺涔嬪悗浼氬舰鎴愪竴涓
  • 扩展阅读:苹果手机连接2个蓝牙 ... 一部手机两个蓝牙耳机 ... 手机连接两个蓝牙方法 ... 一台手机连接2个蓝牙 ... 蓝牙模块多少钱一个 ... 同时输出两个蓝牙音箱 ... 怎么判断蓝牙模块坏了 ... 同时连接两个蓝牙设备 ... 蓝牙模块双节点 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网