劉 品 楊潤生 王永磊 石彥召
【摘要】文章系統(tǒng)地闡述了基于DSP的藍(lán)牙無線傳輸系統(tǒng)的硬件和軟件設(shè)計原理,并著重闡述了藍(lán)牙接口的實現(xiàn),給出了DSP與藍(lán)牙模塊UART和USB兩種接口設(shè)計方案。該系統(tǒng)采用BF533與藍(lán)牙模塊UART口通信,數(shù)據(jù)傳輸速率高,傳輸穩(wěn)定。
【關(guān)鍵詞】DSPUART藍(lán)牙接口
藍(lán)牙技術(shù)作為一種低成本、低功耗、近距離的無線通信技術(shù),正廣泛應(yīng)用于固定與移動設(shè)備通信環(huán)境中的個人網(wǎng)絡(luò),數(shù)據(jù)速率可高達(dá)1Mb/s;它采用跳頻/時分復(fù)用技術(shù),能進(jìn)行點(diǎn)對點(diǎn)和點(diǎn)對多點(diǎn)的通信[1]。ADSP-BF533是ADI公司Blackfin系列的高速數(shù)字信號處理器芯片,基于DSP的藍(lán)牙無線傳輸系統(tǒng)設(shè)計,利用DSP簡單算法實現(xiàn)對復(fù)雜信號的處理,大大提高了系統(tǒng)的數(shù)據(jù)處理能力;同時信號傳輸用無線代替有線電纜,解決了電纜傳輸存在的弊端,拓寬了系統(tǒng)在較為惡劣的環(huán)境或特殊場所的應(yīng)用。
1 系統(tǒng)總體硬件設(shè)計
整個系統(tǒng)硬件主要由ADSP-BF533、ADC模塊、CPLD邏輯控制電路、ROK101 007藍(lán)牙模塊以及存儲器組成,其硬件連接如圖1所示:
圖1 系統(tǒng)硬件結(jié)構(gòu)總框圖
如圖1所示,DSP是核心控制器件,它擴(kuò)展了Flash程序存儲器和SDRAM數(shù)據(jù)存儲器,FLASH保存DSP所需要的程序,供DSP上電調(diào)用;JTAG是DSP的仿真接口;時鐘復(fù)位電路提供DSP模塊正常工作所需的時鐘頻率和復(fù)位信號;由CPLD組成的邏輯控制模塊接收DSP傳送過來的動作命令,控制A/D轉(zhuǎn)換模塊進(jìn)行數(shù)據(jù)采集,并提供對FIFO的接口時序,實現(xiàn)轉(zhuǎn)換數(shù)據(jù)的存儲。這里采用Altera公司的復(fù)雜可編程邏輯器EPM3128ATC100-5,其內(nèi)部電路采用Verilog HDL語言編寫,即可生成相應(yīng)的操作電路,實現(xiàn)對各種輸入信號的鎖存、判斷和處理,以及對各種命令信號的執(zhí)行和輸出信號的控制。
ADSP-BF533和藍(lán)牙模塊ROK101 007的連接是本系統(tǒng)硬件連接的重點(diǎn),兩者之間可以采用UART和USB接口兩種方式進(jìn)行通信,下面將對這兩種通信設(shè)計方案進(jìn)行比較。
2 DSP與藍(lán)牙模塊接口電路
2.1 ROK101 007藍(lán)牙模塊
ROK101 007是愛立信公司出品的一款適用于短距離通信的無線/基帶模塊。該藍(lán)牙模塊集成度高、功耗小,完全兼容藍(lán)牙協(xié)議v1.1,可嵌入任何需要藍(lán)牙功能的設(shè)備中。該模塊包含無線收發(fā)器(PBA 31301/2)、基帶控制器、閃存、電源管理和時鐘5個功能模塊,可提供高至HCI層的功能。圖2為其內(nèi)部結(jié)構(gòu)框圖[2]:
圖2ROK101 007內(nèi)部結(jié)構(gòu)框圖
該模塊還提供有USB、UART和PCM接口,同時支持藍(lán)牙語音和數(shù)據(jù)傳輸,因而能方便地與主機(jī)或其他設(shè)備進(jìn)行互連通信。ROK101 007的USB接口符合USB1.1規(guī)范,通過雙向端口D+和D-的數(shù)據(jù)傳輸速率可達(dá)到12Mb/s。當(dāng)使用USB接口與主機(jī)通信時,ROK101 007是一個USB從設(shè)備。與該接口有關(guān)的管腳有:
(1)D+(B1)、D-(B2):用于數(shù)據(jù)傳輸,其中括號內(nèi)的字母和數(shù)字表示其管腳號(下同);
(2)Wake up(B4)、Detach(C1):專用于與筆記本電腦的互聯(lián),主要用來控制筆記本電腦的狀態(tài)。
當(dāng)主機(jī)處于掉電模式時,如果藍(lán)牙系統(tǒng)收到建立連接的請求,Wake up信號就會“喚醒”主機(jī)。主機(jī)的“掛起(suspend)”可通過Detach信號來實現(xiàn)。UART接口ROK101 007的UART接口標(biāo)準(zhǔn)符合工業(yè)規(guī)范16C450,支持的波特率有(單位:b/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)緩沖器。
與該接口有關(guān)的有4個管腳,具體如下:
(1)TXD(B5)、RXD(A5):用于收發(fā)數(shù)據(jù);
(2)RTS(A6)、CTS(B6):用于數(shù)據(jù)流控制。
2.2 DSP與藍(lán)牙模塊UART口通信設(shè)計
串行通信接口通常采用三線制接法,即地、接收數(shù)據(jù)(RXD)和發(fā)送數(shù)據(jù)(TXD)。DSP與藍(lán)牙模塊使用UART口進(jìn)行通信時,藍(lán)牙模塊作為一個DCE,異步串口通信參數(shù)可以通過設(shè)置ADSP-BF533的內(nèi)部寄存器來改變,如串口通信速率、有無奇偶校驗、停止位等。由于ADSP-BF533具備異步串行通信端口,而且其工作電壓為3.3V和1.3V,藍(lán)牙模塊工作電壓為3.3V,因此,當(dāng)DSP使用異步串口與藍(lán)牙芯片通信時,兩者之間可直接連接,無需電平轉(zhuǎn)換。其接口電路設(shè)計如圖3所示:
圖3 DSP與藍(lán)牙模塊UART接口設(shè)計
使ADSP-BF533的TX引腳接藍(lán)牙模塊的RXD,RX引腳接藍(lán)牙模塊的TXD。此外,考慮到系統(tǒng)的通信波特率比較高,數(shù)據(jù)流量比較大,為了保證傳輸數(shù)據(jù)的穩(wěn)定可靠性,系統(tǒng)設(shè)計時采用了硬件流控制方式。意即使藍(lán)牙模塊的RTS引腳與BF533的I/O端口相連,系統(tǒng)發(fā)送數(shù)據(jù)時首先判斷BF533的I/O端口狀態(tài),從而監(jiān)視RTS是否“忙”。當(dāng)接收端數(shù)據(jù)緩沖區(qū)滿,接收端將RTS置為高電平,通知發(fā)送端“忙”,請求暫停發(fā)送數(shù)據(jù),發(fā)送端檢測到RTS“忙”則立即暫停發(fā)送;相反,當(dāng)發(fā)送端檢測RTS空閑,表明接收端數(shù)據(jù)緩沖區(qū)不滿,發(fā)送端繼續(xù)發(fā)送數(shù)據(jù)。
2.3 DSP與藍(lán)牙模塊USB口通信設(shè)計
DSP與藍(lán)牙模塊使用USB接口方式進(jìn)行通信時,要通過USB口轉(zhuǎn)換電路,然后再與藍(lán)牙模塊的USB雙向端口D+和D-相連;當(dāng)采用藍(lán)牙模塊USB口低速連接方式,速率也可達(dá)到1.5Mb/s。
DSP模塊USB口轉(zhuǎn)換電路采用FTDI公司推出的USB芯片F(xiàn)T245BL[3]。該芯片內(nèi)部固化了實現(xiàn)USB通訊協(xié)議的固件程序,對外向用戶提供了相應(yīng)設(shè)備的驅(qū)動程序,在與藍(lán)牙模塊ROK101 007的USB接口設(shè)計中,只需進(jìn)行必要的硬件設(shè)計和簡單的軟件編程就可以實現(xiàn),這樣就大大降低了開發(fā)難度,縮短了開發(fā)周期。藍(lán)牙模塊與實現(xiàn)USB接口通信相關(guān)的引腳主要是D+(B1)和D-(B2),在上節(jié)中已有所描述。BF533通過USB芯片F(xiàn)T245BL實現(xiàn)與藍(lán)牙模塊的USB接口通信,其詳細(xì)的電路設(shè)計如圖4所示:
圖4DSP與藍(lán)牙模塊USB接口設(shè)計原理圖
由圖4可見,FT245BL的8位數(shù)據(jù)線D7~D0通過終端匹配電阻連接在DSP的低8位數(shù)據(jù)總線上;RXF用于判斷接收FIFO是否有數(shù)據(jù),設(shè)計時RXF引腳接DSP的PF3引腳,只要數(shù)據(jù)大于或等于1個,RXF就為低,通知DSP可以讀取數(shù)據(jù);TXE用于判斷發(fā)送FIFO是否滿,0為不滿,1為滿,當(dāng)TXE為0時,外部DSP向發(fā)送FIFO緩沖區(qū)寫數(shù)據(jù),直到發(fā)送數(shù)據(jù)全部寫入;讀RD、寫WR、發(fā)送使能TXE信號原本也可以直接與BF533的讀、寫線直接對連,但由于FT245BL芯片沒有片選線,所以RD、WR以及TXE都是經(jīng)過CPLD內(nèi)部的USB邏輯電路處理后才連接的。
FT245BL時鐘由外部6MHz晶體振蕩器提供,晶體振蕩器兩端分別通過1個27pF電容接地,組成振蕩網(wǎng)絡(luò)。EEPROM接口不連接配置芯片。設(shè)計時考慮到FT245BL芯片始終處于正常工作狀態(tài),所以TEST引腳直接接地;同時,SI/WU引腳接3.3V電源,喚醒功能不使用。另外,電源電路增加了旁路和去耦電容,以提高電源的穩(wěn)定性和抗干擾性能。FT245BL與藍(lán)牙模塊連接時,FT245BL的USBDM經(jīng)33歐姆電阻接ROK101 007的D+,USBPM經(jīng)33歐姆電阻后接ROK101 007的D-,采用低速通信連接方式;若采用全速通信時,需將FT245BL的USBDP(D+)引腳配置一個1.5K的上拉電阻后連到RSTOUT引腳,使得芯片以全速狀態(tài)進(jìn)行通信。
與UART口進(jìn)行通信相比,DSP與藍(lán)牙模塊采用USB口通信具有數(shù)據(jù)傳輸速率高、串口通信軟件編程簡單等優(yōu)點(diǎn)。不過DSP與藍(lán)牙模塊USB接口驅(qū)動程序的開發(fā)比較困難,另外針對不同的DSP和藍(lán)牙模塊都需要開發(fā)相應(yīng)的高層驅(qū)動程序,工作量很大,通用性也比較差,除特殊需要外,一般不采用這種方式進(jìn)行數(shù)據(jù)傳輸。所以本系統(tǒng)中BF533擬與藍(lán)牙模塊使用UART口進(jìn)行通信,下面就其UART口通信軟件設(shè)計進(jìn)行闡述。
3 軟件設(shè)計
DSP和藍(lán)牙接口的軟件結(jié)構(gòu)分為三個層次[4]:
(1)系統(tǒng)的應(yīng)用程序;
(2)為藍(lán)牙設(shè)備開發(fā)的設(shè)備驅(qū)動程序,包括藍(lán)牙的高層協(xié)議(RFCOMM和L2CAP等);
(3)藍(lán)牙基帶部分協(xié)議:這部分協(xié)議已經(jīng)固化在藍(lán)牙模塊中。
本系統(tǒng)中,由于采用藍(lán)牙接口模塊,其中基帶和鏈路管路協(xié)議部分由藍(lán)牙模塊實現(xiàn)。用戶只需在DSP中編寫數(shù)據(jù)收發(fā)程序即可。
DSP編程的主要任務(wù)是初始化并管理板上的資源和實現(xiàn)前端數(shù)字信號處理的算法。Visual DSP++是ADI公司提供的用于DSP程序開發(fā)的可視化集成開發(fā)環(huán)境,支持Blackfin系列DSP芯片的編程、調(diào)試和開發(fā)。DSP中實現(xiàn)下位機(jī)藍(lán)牙無線傳輸軟件設(shè)計流程圖如圖5所示。
系統(tǒng)上電復(fù)位后,首先完成系統(tǒng)初始化操作,包括ADSP-BF533的初始化和藍(lán)牙模塊的初始化。ADSP-BF533自身的初始化包括配置RAM塊,設(shè)置I/O模式、定時器模式、中斷等;然后等待接受上位機(jī)藍(lán)牙模塊發(fā)送的控制命令,完成與上位機(jī)的建立連接、數(shù)據(jù)傳輸、斷開連接等操作。ADSP-BF533的程序存儲器中存有常用的數(shù)字信號處理算法,它在收到上位機(jī)通過藍(lán)牙發(fā)送的控制信息后,在中斷函數(shù)中選擇某種處理算法,同時向CPLD發(fā)出動作命令,控制A/D轉(zhuǎn)換模塊完成信號的采集并將采集到的數(shù)據(jù)存入FIFO中。當(dāng)FIFO中數(shù)據(jù)達(dá)到半滿時,向ADSP-BF533提出中斷申請,ADSP-BF533響應(yīng)此中斷,在中斷函數(shù)中實現(xiàn)對部分采樣數(shù)據(jù)的讀取,在主循環(huán)程序中根據(jù)上位機(jī)選定的處理算法完成數(shù)據(jù)的前端處理,然后將數(shù)據(jù)打包,通過藍(lán)牙傳輸給上位機(jī)。
4 結(jié)語
與傳統(tǒng)的數(shù)據(jù)采集傳輸系統(tǒng)相比,基于DSP的藍(lán)牙無線傳輸系統(tǒng),核心處理器的選型上采用數(shù)字處理能力強(qiáng)大的DSP芯片,無線傳輸技術(shù)上采用目前技術(shù)比較成熟、應(yīng)用領(lǐng)域比較廣泛的藍(lán)牙技術(shù)來實現(xiàn)。通過比較,該系統(tǒng)中BF533擬與藍(lán)牙模塊使用UART口進(jìn)行通信。不過,系統(tǒng)要在工業(yè)現(xiàn)場,特別是在裝備檢測領(lǐng)域得到推廣應(yīng)用,還需要根據(jù)實際測試需求做大量的工作。
參考文獻(xiàn)
[1]金純,等. 藍(lán)牙技術(shù)[M]. 北京: 電子工業(yè)出版社, 2001.
[2]錢志鴻,等. 藍(lán)牙技術(shù)原理、開發(fā)與應(yīng)用[M]. 北京: 北京航空航天大學(xué)出版社,2006.
[3]FT245BL USB FIFO (USB - Parallel) I.C[P]. Future Technology Devices Intl.Ltd, 2005.
[4]汪安民,等. DSP嵌入式系統(tǒng)開發(fā)典型案例[M]. 北京: 人民郵電出版社,2007.★
【作者簡介】
劉 品:軍械工程學(xué)院火控教研室碩士研究生,研究方向:控制理論與控制工程。
楊潤生:教授,軍械工程學(xué)院火控教研室碩士研究生導(dǎo)師,研究方向:武器系統(tǒng)仿真與應(yīng)用。
王永磊:軍械工程學(xué)院雷達(dá)教研室碩士研究生,研究方向:信號與信息處理。