新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 藍(lán)牙接口系統(tǒng)軟件設(shè)計(jì)

藍(lán)牙接口系統(tǒng)軟件設(shè)計(jì)

作者: 時(shí)間:2011-12-08 來(lái)源:網(wǎng)絡(luò) 收藏
  整個(gè)系統(tǒng)的軟件有3種設(shè)計(jì)方法,根據(jù)不同的應(yīng)用場(chǎng)合和系統(tǒng)的復(fù)雜程序采用不同的設(shè)計(jì)方法。一般情況 下,簡(jiǎn)單的系統(tǒng)可以采用常規(guī)的軟件設(shè)計(jì)方法;較為復(fù)雜的系統(tǒng)可以采用DSP仿真軟件COS提供的DSP/BIOS 設(shè)計(jì)方法,DSPiBIOS是TI公司專門為DSP設(shè)計(jì)的嵌人式軟件設(shè)計(jì)方法;最為復(fù)雜的系統(tǒng)需要采用嵌人式操作 系統(tǒng)進(jìn)行軟件設(shè)計(jì),目前0MAP5912支持的操作系統(tǒng)包括WinCe、Linux、Nucleus以及VxWorks等,可以根據(jù) 需要選擇不同的操作系統(tǒng)。本文系統(tǒng)著重于介紹系統(tǒng)的實(shí)現(xiàn),可以采用常規(guī)的軟件設(shè)計(jì)方法,其 實(shí)現(xiàn)最為簡(jiǎn)單方便。

  系統(tǒng)的軟件結(jié)構(gòu)如圖1所示。軟件結(jié)構(gòu)中的初始化模塊包括0MAP59l0系統(tǒng)、鍵盤液晶、數(shù)據(jù)和語(yǔ)音通信、 FLASH和PC讀寫(xiě)以及藍(lán)牙模塊的初始化。在初始化過(guò)程中設(shè)置鍵盤掃描時(shí)間、語(yǔ)音采樣頻率、顯示狀態(tài)等各 種參數(shù)。整個(gè)系統(tǒng)初始化之后,程序進(jìn)人監(jiān)控模塊,監(jiān)控模塊隨時(shí)判斷各個(gè)模塊的狀態(tài),并進(jìn)人相應(yīng)的處理程序。數(shù)據(jù)通信模塊控制OMAP5910和藍(lán)牙模塊的數(shù) 據(jù)接口;語(yǔ)音通信模塊控制0MAP5910和音頻AD/DA的接口;收發(fā)控制OMAP5910和藍(lán)牙模塊的信號(hào)收 發(fā);FLASH讀寫(xiě)模塊控制OMAP5910對(duì)其片外FLASH的讀寫(xiě),必要時(shí)可以將某些重要數(shù)據(jù)存儲(chǔ)到FLASH中,此外 OMAP591 0的上電引導(dǎo)程序也存儲(chǔ)在FLASH中;鍵盤和顯示模塊控制系統(tǒng)的人機(jī)接口;PC通信模塊控制系統(tǒng) 和PC機(jī)的連接。

  圖1 系統(tǒng)軟件結(jié)構(gòu)圖

  由于0MAP5910具有C55系列DSP核,一些數(shù)字信號(hào)處理算法可以很容易地實(shí)現(xiàn)。對(duì)于語(yǔ)音信號(hào),可以進(jìn)行濾 波以提高語(yǔ)音質(zhì)量;如果傳輸音樂(lè)信號(hào),可以加人音樂(lè)處理算法,例如混響、鑲邊、削峰等多種處理;可 以將語(yǔ)音壓縮后傳輸?shù)絇C機(jī),或者解壓后播放各種格式的語(yǔ)音信號(hào)。使得系統(tǒng)的應(yīng)用范圍更加廣泛和實(shí)用 。

  設(shè)計(jì)藍(lán)牙設(shè)備收發(fā)器的軟仵關(guān)鍵是基于藍(lán)牙模塊的軟件驅(qū)動(dòng)技術(shù)。軟件驅(qū)動(dòng)包括硬件鏈路管理器驅(qū)動(dòng)程序 、主機(jī)控制接口(HOI)驅(qū)動(dòng)程序、電源模式管理和電源控制以及其他高層驅(qū)動(dòng)程序。

  其中硬件鏈路管理器驅(qū)動(dòng)程序與物理固件直接相連,提供USB/RS232或其他接口的驅(qū)動(dòng)功能。鏈路管理器 驅(qū)動(dòng)程序?qū)崿F(xiàn)了鏈路管理協(xié)議(LMP),負(fù)責(zé)處理底層鏈路控制與藍(lán)牙基帶接口,該固件支持點(diǎn)對(duì)點(diǎn)和點(diǎn)對(duì) 多點(diǎn)的通信。

  HOI驅(qū)動(dòng)程序根據(jù)HOI命令的各種數(shù)據(jù)及參數(shù)格式,對(duì)HOI事件數(shù)據(jù)包進(jìn)行處理。HOI為主機(jī)提供了訪問(wèn)微處 理器、鏈路管理器以及硬件狀態(tài)和控制寄存器的各種命令接口。主機(jī)通過(guò)HOI驅(qū)動(dòng)程序提供一系列命令控制 ,藍(lán)牙固件的HOI收到命令后,會(huì)產(chǎn)生事件返回給主機(jī),用來(lái)指示接口的當(dāng)前狀態(tài)變化。主機(jī)和 HCI之間共有以下3種類型數(shù)據(jù)。

 ?。?)Hal命令包。從主機(jī)發(fā)向藍(lán)牙的HOI。

 ?。?)Hal事件包。從藍(lán)牙的HOI發(fā)向主機(jī)。

 ?。?)HOI數(shù)據(jù)包??梢詮乃{(lán)牙的HOI發(fā)向主機(jī),也可以從主機(jī)發(fā)向藍(lán)牙的Hal。包括擴(kuò)展同步連接導(dǎo)向數(shù)據(jù) 和非實(shí)時(shí)的異步無(wú)連接數(shù)據(jù)。

  電源模式管理可以對(duì)電源設(shè)定3種模式,分別為Hold(保持)、Sniff(喚醒)和Park(休息)模式。電源 控制提供了將電源設(shè)定為休眠狀態(tài)的方法,以便最大程度地降低系統(tǒng)功耗。

  高層驅(qū)動(dòng)程序則實(shí)現(xiàn)嵌入藍(lán)牙模塊的外設(shè)的驅(qū)動(dòng)功能。

  DSP和藍(lán)牙接口的軟件結(jié)構(gòu)分為3個(gè)層次。

 ?。?)系統(tǒng)的應(yīng)用程序。

  (2)為藍(lán)牙設(shè)備開(kāi)發(fā)的設(shè)備驅(qū)動(dòng)程序,包括藍(lán)牙的高層協(xié)議(RFCOMM和L2CAP等)。

 ?。?)藍(lán)牙基帶部分協(xié)議:這部分協(xié)議已經(jīng)固化在藍(lán)牙模塊中。

  在本系統(tǒng)中,由于采用藍(lán)牙接口模塊,其中基帶和鏈接管理協(xié)議(Link Manager Protocol,LMP)部分由藍(lán)牙模塊實(shí)現(xiàn)。用戶只需要在DSP即可。

  藍(lán)牙軟件使用BlueStack編程,完成初始化、連接等功能。藍(lán)牙軟件程序流程如圖1所示。

  初始化設(shè)備包括對(duì)指示燈、調(diào)試信息以及系統(tǒng)內(nèi)定時(shí)器的初始化。藍(lán)牙內(nèi)部有一小塊稱為PS的存儲(chǔ)區(qū),是掉電不丟失數(shù)據(jù)的,藍(lán)牙程序就是將對(duì)方地址記錄在這一存儲(chǔ)區(qū)里,每次啟動(dòng)時(shí)都對(duì)該存儲(chǔ)區(qū)的藍(lán)牙地址對(duì)應(yīng)的設(shè)備建立連接。在初始化完成之后,程序還需要向底層發(fā)送消以便使藍(lán)牙程序進(jìn)入消息循環(huán)。消息處理函數(shù)是整個(gè)程序的核心,所有功能的打開(kāi)、連接等都由此來(lái)完成,其操作均嚴(yán)格依照藍(lán)牙協(xié)議的RFCOMM層進(jìn)行。在整個(gè)系統(tǒng)中要重點(diǎn)考慮的是數(shù)據(jù)傳輸?shù)乃俾蕟?wèn)題。由于當(dāng)藍(lán)牙工作在1類發(fā)射功率(100mW)時(shí),通信距離可擴(kuò)展到100m,速率限制了藍(lán)牙在寬帶網(wǎng)絡(luò)中的應(yīng)用。藍(lán)牙點(diǎn)對(duì)點(diǎn)傳輸時(shí)對(duì)稱的最大有效速率為42316Kbit/s,不對(duì)稱最大有效速率為721Kbit/s,反向?yàn)?716Kbit/s。

  OMAP5912通過(guò)異步串口向BRF6100發(fā)送HCI命令,BRF6100收到命令后,由固化在其ROM的藍(lán)牙協(xié)議固件處理,并將向下傳遞到LM層,LM層負(fù)責(zé)鏈路的建立、加密和設(shè)置權(quán)限。OMAP5912收到BRF6100發(fā)來(lái)的數(shù)據(jù)包,根據(jù)具體的事件采取相應(yīng)的處理。整個(gè)異步串口的通信由以下4個(gè)功能模塊組成。

 ?。?)初始化模塊。初始化藍(lán)牙芯片以及各狀態(tài)變量,包括ΠFO、中斷寄存器和傳輸波特率等。

 ?。?)事務(wù)調(diào)度模塊。根據(jù)藍(lán)牙芯片返回的事件狀態(tài)參數(shù)對(duì)系統(tǒng)的事務(wù)進(jìn)行調(diào)度,跳轉(zhuǎn)到返回事件處理模塊中。

  (3)返回事件處理模塊;各個(gè)事件處理子程序分別對(duì)應(yīng)不同事件的處理。

  (4)中斷模塊;負(fù)責(zé)數(shù)據(jù)包和事件包的接收和發(fā)送。



關(guān)鍵詞: 藍(lán)牙接口

評(píng)論


技術(shù)專區(qū)

關(guān)閉