新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 藍牙接口系統(tǒng)軟件設計

藍牙接口系統(tǒng)軟件設計

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

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

  圖1 系統(tǒng)軟件結構圖

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

  設計藍牙設備收發(fā)器的軟仵關鍵是基于藍牙模塊的軟件驅動技術。軟件驅動包括硬件鏈路管理器驅動程序 、主機控制接口(HOI)驅動程序、電源模式管理和電源控制以及其他高層驅動程序。

  其中硬件鏈路管理器驅動程序與物理固件直接相連,提供USB/RS232或其他接口的驅動功能。鏈路管理器 驅動程序實現(xiàn)了鏈路管理協(xié)議(LMP),負責處理底層鏈路控制與藍牙基帶接口,該固件支持點對點和點對 多點的通信。

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

  (1)Hal命令包。從主機發(fā)向藍牙的HOI。

  (2)Hal事件包。從藍牙的HOI發(fā)向主機。

 ?。?)HOI數(shù)據(jù)包??梢詮乃{牙的HOI發(fā)向主機,也可以從主機發(fā)向藍牙的Hal。包括擴展同步連接導向數(shù)據(jù) 和非實時的異步無連接數(shù)據(jù)。

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

  高層驅動程序則實現(xiàn)嵌入藍牙模塊的外設的驅動功能。

  DSP和藍牙接口的軟件結構分為3個層次。

  (1)系統(tǒng)的應用程序。

 ?。?)為藍牙設備開發(fā)的設備驅動程序,包括藍牙的高層協(xié)議(RFCOMM和L2CAP等)。

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

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

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

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

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

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

  (2)事務調度模塊。根據(jù)藍牙芯片返回的事件狀態(tài)參數(shù)對系統(tǒng)的事務進行調度,跳轉到返回事件處理模塊中。

 ?。?)返回事件處理模塊;各個事件處理子程序分別對應不同事件的處理。

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



關鍵詞: 藍牙接口

評論


技術專區(qū)

關閉