摘 要:ROK101 007藍牙通信芯片是愛立信(Ericsson)公司推出的一款適合于短距離藍牙通信的無線基帶模塊。它集成度高、功耗小、完全兼容藍牙協(xié)議V1.1,可嵌入任何需要藍牙功能的設備中,文中介紹了ROK101 007的結構、功能、各接口管腳以及常用HCI指令的用法。
關鍵詞:藍牙(bluetooth);無線通信;ROK101 007
1藍牙技術及芯片簡介
藍牙技術是一種用于替代在便攜或固定電子設備上使用的電纜或連線的短距離無線連接技術。其設備使用全球通行的、無需申請許可的2.45GHz頻段,可實時進行數據和語音傳輸,傳輸速率可達到10Mbps,在支持3個話音頻道的同時還支持高達723.2kbps的數據傳輸速率。也就是說,在辦公室、家庭和旅途中,無需在任何電子設備間布設專用線纜和連接器,而通過藍牙遙控裝置即可形成一點到多 點的無線連接,即在該裝置周圍組成一個“微網”,網內任何藍牙設備都可與該裝置互通信號。藍牙設備的一般有效通信范圍為10米,強的可以達到100米左右。
愛立信(Ericsson)公司是藍牙技術的發(fā)起人,該公司出品的藍牙芯片ROK101 007是一款適合于短距離通信的無線/基帶模塊,該藍牙模塊集成度高,功耗小,完全兼容藍牙協(xié)議V1.1,可嵌入任何需要藍牙功能的設備中。該模塊包括基帶控制器,無線收發(fā)器,閃存等部件,可提供高至HCI(主機控制接口)層的功能。此外,該模塊還提供有USB、UART和PCM接口,因而能方便地與主機(host)進行通信,另外,該模塊還同時支持藍牙語音和數據傳輸,且其輸出功率能滿足藍牙2級操作的要求。
2內部結構及各功能塊介紹
ROK101 007是一款完全依據藍牙協(xié)議V1.1開發(fā)的藍牙芯片,它包含無線收發(fā)器(PBA313 01/2)、基帶控制器、閃存、電源管理模塊和時鐘五個功能模塊。圖1所示是其內部結構框圖。

2.1無線收發(fā)器
無線收發(fā)和信號調制功能是通過PBA31301/2完成的。該芯片是一個工作在2.4~2.5GHz的ISM頻段的近距離微波射頻收發(fā)器。其最大TX&RX數據傳輸率為1Mbit/s,可以最大限度地利用無需認證的ISM頻段,可在79個信道(2.402~2.480GHz)之間快速地跳頻(1600個信道/秒),使用GFSK調制方式,通道帶寬為1MHz,頻率偏差在140kHz~175kHz之間,能滿足藍牙二級操作,其最大輸出功率為4dBm,且不需要功率控制。安裝天線之后,其傳輸距離可達10米,符合ISM頻段的FCC和ETSI標準。該模式中的PBA31301/2以Radio ASIC為基礎,且內含環(huán)路濾波器(Loop Filter)、壓控振蕩器(VCO)、天線過濾器(Antenna Filter)、RX和TX變換器等六個操作模塊。利用Radio ASIC可完成信號的調制和解調;而在環(huán)路濾波器(Loop Filter)、壓控振蕩器(VCO)和RadioASIC構成的鎖相環(huán)中,可以濾除Radio ASIC輸出中誤差電壓的高頻成分和噪聲,從而保證環(huán)路所要求的性能,增加系統(tǒng)的穩(wěn)定性;交換控制器(switch)的作用是協(xié)調接收器(RX)和發(fā)送器(TX)的工作,以保證藍牙的全雙工傳輸。天線濾波器(Antenna Filter)的作用是對射頻信號進行帶通濾波。
2.2基帶控制器
通常使用一個基于ARM7-Thumb的芯片并通過串行口(UART)或USB接口來控制無線收發(fā)器。基帶則負責處理底層的鏈路層功能。其功能包括:
●CVSD語音編碼;
●頭錯誤校驗(HEC)生成及校驗;
●前向糾錯(FEC)生成及校驗;
●循環(huán)冗余校驗碼(CRC)生成及校驗;
●數據擾碼;
●有效數據加密和解密;
●跳頻序列的選擇。
2.3閃存
ROK101 007中的閃存以二進制碼的格式存放在藍牙固件(Firmware)之中,它可與基帶控制器交換數據、地址和控制信號。藍牙固件包括鏈路管理器(Link Manager)和主機控制接口(HCI)。
a.鏈路管理器(Link Manager)
通過鏈路管理器可實現(xiàn)鏈路管理協(xié)議(LMP),以負責處理底層鏈路控制方面的功能,圖2所示是藍牙鏈路管理層以下協(xié)議棧的示意圖。它的主要功能包括:
●設備間鏈路的建立;
●生成、交換并檢查加密密鑰;
●協(xié)調基帶分組大;
●功率模式的切換;
●一個微微網(piconet)中設備的連接狀態(tài)。
每個藍牙設備都可以通過LMP與另一個藍牙設備的鏈路管理器進行點對點的通信。LM和LM的通信不必通過主機干涉。

b.主機控制接口(HCI)
ROK101 007中的主機控制接口提供有一個調用和訪問基帶控制器和鏈路控制器以及硬件狀態(tài)和控制寄存器的命令接口,也就是說,它提供了一個訪問藍牙基帶功能的統(tǒng)一方法。藍牙主機通過HCI驅動程序提供的一系列命令來控制藍牙接口。除這些命令外,藍牙的HCI固件接到命令后,還會產生一個事件返回給主機以用來指示接口的狀態(tài)變化。藍牙主機和HCI之間的傳輸共有三類數據:HCI命令包、HCI事件包和HCI數據包。
HCI命令包是從主機發(fā)往藍牙的HCI。HCI事件包則從藍牙的HCI發(fā)往主機。HCI數據包既可從主機發(fā)往HCI,也可從HCI發(fā)往主機,它包括無連接的(ACL)數據和同步連接的(SCO)數據。
上述三類數據通過HCI傳輸層可在藍牙主機和HCI之間進行傳輸。HCI傳輸層定義了每一類數據如何封裝和通過接口硬件進行復用的規(guī)則。ROK101007支持UART和USB傳輸層。
2.4時鐘和電源模塊
ROK101 007模塊的內置時鐘頻率為13MHz。該時鐘應由一個晶體振蕩器產生,以保證定時的精確度在20ppm之內。另外,ROK101 007的VCC電源典型值為3.3V。
3芯片接口和主要管腳介紹
ROK101 007與主機或其它設備互聯(lián)時,有USB、RART和PCM語音接口等三種接口方式。
3.1 USB接口
ROK101 007的USB接口符合USB1.1規(guī)范,通過雙向端口D+和D-的數據傳輸率可達到12Mbps。當使用USB接口與主機通信時,ROK101 007是一個USB從設備(slave)。與該接口有關的管腳有:
●D+(B1),D-(B2):用于數據傳輸,其中括號內的字母和數字表示其管腳號(下同)。
●Wake up(B4),Detach(C1):專用于與筆記本電腦的互聯(lián),主要用來控制筆記本電腦的狀態(tài)。當主機處于掉電模式時,如果藍牙系統(tǒng)收到建立連接的請求,Wake up信號就會“喚醒”主機。主機的“掛起(suspend)”可通過Detach信號來指示。
3.2 UART接口
ROK101
007的UART接口標準符合工業(yè)規(guī)范16C450,它支持的波速率有(單位:bits/s):300,600,900,1200,1800,2400,4800,9600,19200,38400,57600,115200,230400和460800。使用愛立信自定義的一條HCI命令HCI Ericsson Set Uart Baud Rate可改變UART接口的波速率。該接口中還有128字節(jié)的先入先出(FIFO)緩沖器。與該接口有關的有四個管腳,具體如下:
●TxD(B5),RxD(A5):用于收發(fā)數據;
●RTS(A6),CTS(B6):用于數據流控制。
3.3 PCM語音接口
標準的PCM語音接口的采樣速率為8kHz。PCM時鐘頻率在200kHz和2.0MHz之間可調。語音編碼可采用CVSD(連續(xù)可變斜率增量調制)、u律(8bit)或A律(8bit)三種調制方式?紤]到編碼的健壯性,應首先選擇CVSD。與PCM語音接口有關的管腳信號有:
●PCM SYNC(A3):用于設置PCM數據的采樣速率。
●PCM OUT(A2),PCM IN(A1):用于接收或發(fā)送語音編碼信號。這兩個管腳信號的運行方向可在編程進行時調整。
另外,管腳ANT(T2)是天線接口,應連接阻抗為50Ω的天線。
4 HCI指令及應用
ROK101 007芯片可提供高至HCI層的功能,支持藍牙協(xié)議v1.1的大多數HCI指令。另外,該芯片還支持愛立信公司自定義的一些指令,指令的操作組段(OGF)均為0x3F,其中說明指令是廠商為了測試、調試而自定義的指令。
圖3給出了主機如何利用HCI指令建立兩個藍牙設備的點對點連接示意圖,圖中主機和藍牙芯片是通過串口(UART)相連的。其中Host A被置于呼叫(Page)模式,它可主動與其它藍牙設備建立鏈接,因而稱為主設備(Master)。而Host B則被置于呼叫掃描(Page Scan)模式,用于響應其它藍牙設備建立鏈接的要求,稱為從設備(Slave)。

下面具體介紹建立連接過程中需用的主要HCI指令。
4.1芯片復位Reset
該命令用于復位藍牙主控制器、鏈路管理器和無線設備。在復位完成后,藍牙設備進入待機模式。
圖3利用HCI指令建立兩個藍牙設備的點對點連接示意圖
該命令完成后,主機將收到指令完成事件(Command Complete Event),如果參數Status=0x00,說明復位命令成功。
另外,主機還需要設置藍牙主控制器的一些參數,所用到的HCI命令如下:
●Read Buffer Size:該命令用來讀出從主機到主控制器發(fā)送HCIACI和SCO數據分組的數據部分的最大值。
●Set Event Filter:該命令用來通過主機指定不同的事件過濾器,以便使主控制器只發(fā)送與主機有關的事件。
●Write Scan Enable:(只用于從設備)該命令通過設置參數Scan Enable,可將藍牙設備置于查詢掃描(Inquiry Scan)或(和)呼叫掃描(Page Scan)模式。
●Write Voice Setting:用于寫入語音連接的各種參數設置值。
●Write Authentication Enable:用于寫入WriteAuthentication的參數值,該參數可用于控制是否有本地設備在建立連接時鑒權遠程設備。
上述HCI指令可用來建立主機與主機控制器之間的連接,但它們不涉及兩個藍牙設備鏈路管理器(LM)之間LMP消息包的交換。
4.2查詢設備(Inquiry)
該指令可使藍牙設備進入查詢模式,以用于搜索鄰近的藍牙設備。
每一個應答查詢消息的藍牙設備都返回一個查詢結果事件(Inquiry Result Event),以報告該設備的藍牙地址(BD ADDR)、呼叫掃描模式(Page ScanMode)等參數。查詢結束后,主控制器將發(fā)送查詢完成事件(Inquiry Complete Event)信號,事件中的狀態(tài)參數可用于表示查詢是否成功。
4.3建立ACL(異步不鏈接)鏈路(Create_Connection)
該指令可使發(fā)起鏈接設備的鏈路管理器創(chuàng)建與指令參數BD ADDR指定的藍牙設備之間的相互鏈接。發(fā)起鏈接的設備開始呼叫進程,以建立與處于呼叫掃描模式的其它藍牙設備的鏈接。當LM確定鏈接已經建立起來時,建立鏈接的兩個藍牙設備的主控制器將分別向各自的主機發(fā)送鏈接完成事件指令(ConnectionComplete Event)。如果該指令執(zhí)行成功,鏈接完成事件將包含連接句柄的標識符(唯一標示該鏈接的12位標識符)。
在ACL鏈接建立后,藍牙設備之間即可傳送A-CL數據包。
4.4建立SCO(同步面向鏈接)鏈路(Add SCO Con-nection)
由于SCO鏈接一般采用預留的時隙來傳輸數據分組,因此該鏈接方式類似于電路交換連接。它主要用于語音等實時信號的傳輸。該指令雖然能夠使藍牙設備創(chuàng)建SCO鏈接,但是,其前提是設備之間的ACL鏈接已經存在。
同樣,當鏈接建立后,主機會收到鏈接完成事件的指示信息(Connection Complete Event)。這樣,在該指令執(zhí)行成功以后,系統(tǒng)即可通過芯片的PCM接口傳送語音信號。
4.5斷開連接(Disconnect)
該指令主要用于終止現(xiàn)有鏈接,其指令參數Connection_Handle主要用于決定要斷開哪個連接。斷開連接后,主機會收到鏈接斷開完成事件(Disconnection_Complete_Event)指令,其狀態(tài)參數可用于指示鏈接斷開是否成功。
參考文獻
1.Bluetooth Specifications Version1.1
2.ROK101 007 Data Sheet.Ericssion Microelectronics, 2000
摘自《國外電子元器件》