日韩床上生活一级视频|能看毛片的操逼网站|色悠悠网站在线观看视频|国产免费观看A淫色免费|国产av久久久久久久|免费A级视频美女网站黄|国产毛片av日韩小黄片|热久久免费国产视频|中文字幕无码色色|成人在线视频99久久久

機(jī)電之家資源網(wǎng)
單片機(jī)首頁|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
藍(lán)牙HCI-UART與并口的FPGA控制接口設(shè)計
藍(lán)牙HCI-UART與并口的FPGA控制接口設(shè)計
 更新時間:2008-8-4 4:46:38  點擊數(shù):14
【字體: 字體顏色


    

摘要:某應(yīng)用藍(lán)牙技術(shù)的醫(yī)療監(jiān)控系統(tǒng)中,單片機(jī)是其數(shù)據(jù)傳輸瓶頸。本設(shè)計采用FPGA取代了原系統(tǒng)的單片機(jī)和8255芯片,使數(shù)據(jù)傳輸速率提高了近10倍。文中討論了設(shè)計的一些關(guān)鍵問題。
關(guān)鍵詞:控制接口;藍(lán)牙HCI-UART;并口;FPGA

1 引言

    在藍(lán)牙體系的實現(xiàn)方案中, HCI意義重大,它以一個統(tǒng)一的接口實現(xiàn)主機(jī)設(shè)備與藍(lán)牙模塊之間的互操作。藍(lán)牙HCI層定義了數(shù)據(jù)、命令、事件三類消息,規(guī)定了數(shù)據(jù)如何在藍(lán)牙模塊和藍(lán)牙主機(jī)間進(jìn)行傳輸,以及每一類消息數(shù)據(jù)如何封裝和通過接口硬件進(jìn)行復(fù)用。HCI傳輸層有四個協(xié)議: UART協(xié)議、RS232協(xié)議和USB協(xié)議和PC卡傳輸層協(xié)議。其中UART和RS232傳輸層都采用異步串行通信方式在藍(lán)牙模塊和藍(lán)牙主機(jī)間進(jìn)行數(shù)據(jù)傳輸。兩者間的區(qū)別在于它們所適用的環(huán)境,UART傳輸層適用于板級互連,沒有規(guī)定信號特殊的電氣特性,也沒有定義波特率協(xié)商機(jī)制。UART方式比較靈活,并且可以直接采用TTL、LV-CMOS等IC端電壓,應(yīng)用較多。
    某醫(yī)療監(jiān)控設(shè)備中,使用藍(lán)牙的HCI-UART接口實現(xiàn)監(jiān)控數(shù)據(jù)到計算機(jī)并口卡的無線傳輸,藍(lán)牙模塊ROK-101-008的數(shù)據(jù)傳輸由MCS51單片機(jī)控制。在實時監(jiān)控時,數(shù)據(jù)速率較低,單片機(jī)可以很好的完成傳輸控制任務(wù);但是在監(jiān)控結(jié)束需要一次性下載數(shù)據(jù)時,該單片機(jī)的56Kbps最高UART傳輸速率就成為數(shù)據(jù)傳輸?shù)钠款i,遠(yuǎn)遠(yuǎn)低于該藍(lán)牙模塊的UART數(shù)據(jù)傳輸上限460.8Kbps(藍(lán)牙1.1的單向最高傳輸速率為723.2Kbps)。我們使用FPGA代替單片機(jī)對該接口做了改進(jìn)設(shè)計,取得了較好效果。

ACL鏈路建立后,用戶通過應(yīng)用軟件向計算機(jī)并口卡發(fā)出實時監(jiān)控或者瞬時數(shù)據(jù)讀取命令,此命令經(jīng)過Slave端的單片機(jī)、8255和藍(lán)牙傳輸至Host端藍(lán)牙、8255、單片機(jī)和監(jiān)控儀,監(jiān)控儀返回應(yīng)答,隨后即為監(jiān)控數(shù)據(jù)。
對這個系統(tǒng)分析可知,單片機(jī)具有低成本、編程靈活的優(yōu)點,在ACL鏈路建立過程中很方便,但是ACL鏈路建立以后,所有的數(shù)據(jù)仍然通過單片機(jī)進(jìn)行中轉(zhuǎn)和串并轉(zhuǎn)換,而普通51單片機(jī)在11.0592M晶振頻率時執(zhí)行一條單周期指令就需要1微秒以上,由于在藍(lán)牙通信過程中,要加入許多事件、分支判斷,所以這種指令執(zhí)行方式固有的低速特性就使單片機(jī)成為系統(tǒng)的速度瓶頸。我們使用FPGA取代原系統(tǒng)中的單片機(jī)和8255,將藍(lán)牙ACL鏈路建立指令存入FPGA中的ROM,以狀態(tài)機(jī)控制ACL指令讀取、事件判斷和ACL數(shù)據(jù)接收,同樣在11.0592M的主時鐘頻率下,達(dá)到了該藍(lán)牙模塊的最高UART傳輸速度460.8Kbps。

3 FPGA控制接口設(shè)計

本接口模塊在Host和Slave端各有一個,除ROM內(nèi)容外,都采用相同的模塊和層次設(shè)計。這里以計算機(jī)端的接口設(shè)計為例敘述。
頂層模塊在狀態(tài)機(jī)里根據(jù)不同的狀態(tài)調(diào)用單字節(jié)并串轉(zhuǎn)換和單字節(jié)串并轉(zhuǎn)換模塊,ROM模塊部分僅在ACL鏈路建立時有用。各個模塊都使用11.0592MHz的主時鐘,24分頻后為460.8KHz,作為UART收發(fā)的位時鐘。這里單字節(jié)發(fā)送和接收模塊是關(guān)鍵的設(shè)計模塊,以下予以詳細(xì)介紹。

單字節(jié)并串模塊在ACK信號上升沿時讀入一個并行字節(jié),再轉(zhuǎn)換為串行數(shù)據(jù)輸出,OBF信號有效時表示接收端正在忙于處理數(shù)據(jù)。測得計算機(jī)上的8255并口卡輸出數(shù)據(jù)的時序如圖2:
該模塊的主要代碼中,data_flag為'1'表示FPGA正在處理讀入數(shù)據(jù)的標(biāo)志;obf_flag為'1'是表示并串轉(zhuǎn)換處理結(jié)束;bitcnt為對460.8KHz的位時鐘clk2計數(shù)的位計數(shù)器。另外,ACK信號的下降沿作為模塊的復(fù)位信號,上升沿作為讀數(shù)標(biāo)志。
  IF obf_flag='1' THEN
   data_flag<='0';  
  ELSIF ack'event and ack='1' THEN
   data_buff<='1'& data_p & '0'; --讀入并行字節(jié)數(shù)據(jù),拼裝起始位和停止位
   data_flag<='1'; 
  END IF;
……
  IF clk2='1' and clk2'event THEN  -- 并串轉(zhuǎn)換
   IF data_flag='1' THEN
    IF bitcnt=0 THEN
     obf_flag<='0';
    END IF;
    tx<=data_buff(bitcnt);
    bitcnt<=bitcnt+1;
    IF bitcnt=10 THEN
     tx<='1';       --空閑位
     obf_flag<='1';
     bitcnt<=0;
    END IF;
   END IF;
  END IF;
單字節(jié)串并模塊在IBF信號為'1'(表示計算機(jī)空閑,可以接收數(shù)據(jù))時接收一個串行字節(jié),再以并行方式在STB下降沿輸出到并口卡。測得計算機(jī)上的8255并口卡輸入數(shù)據(jù)的時序如圖3:

    串并接收過程中,要辨別Rx線上輸入的異步碼流的第一個下降沿去同步本地時鐘,并作為模塊的復(fù)位信號。主時鐘連續(xù)檢測到Rx的12次低表示收到可靠的起始位。同樣,串并模塊的主要代碼中,rcv_flag為'1'表示FPGA正在處理讀入數(shù)據(jù)的標(biāo)志;stop_flag下降沿表示串并轉(zhuǎn)換處理結(jié)束;cnt計數(shù)器的低5位對主時鐘計數(shù)產(chǎn)生460.8KHz,高4位為位計數(shù)器。
IF clk'event and clk='1' THEN
   IF rcv_flag='1' THEN
    IF conv_integer(cnt)<12 THEN
     temp<=(temp OR rx); -- Rx連續(xù)的12次低表示可靠的起始位
    END IF;
    IF conv_integer(cnt)>=12 and temp='0' THEN
     CASE cnt IS
      WHEN "000101011" => -- LSB
       data_buff(0)<=rx;
       ……            --讀取1~6位,略去
      WHEN "100001011" =>
       data_buff(7)<=rx;
       stb<='0';
       stop_flag<='1';
      WHEN "100001100" =>
       data_p<=data_buff;
      WHEN "100101011" =>  -- stop bit
       stb<='1';
       stop_flag<='0';
      WHEN OTHERS =>
     END CASE;
    END IF;
   END IF;
  END IF; 

4 結(jié)語

    本設(shè)計用FPGA替代了原系統(tǒng)的單片機(jī)和8255芯片,消除了數(shù)據(jù)傳輸瓶頸,使得藍(lán)牙ACL鏈路的數(shù)據(jù)傳輸速率由57.6Kbps輕松的提高到了該芯片的UART速度上限460.8Khz。從設(shè)計分析過程可以看出,即使11M主時鐘不變,F(xiàn)PGA的UART處理速度仍有較大的提升空間。以上設(shè)計在ALTERA公司的Maxplus2上編譯綜合,下載到EP1K10芯片,在系統(tǒng)中驗證通過。
    在較早的許多智能設(shè)備中,單片機(jī)被大量使用。單片機(jī)雖然擁有軟件靈活性,但是處理能力相當(dāng)有限,成為許多系統(tǒng)的性能瓶頸。以上面的設(shè)計為例子,在任務(wù)不復(fù)雜、但是數(shù)據(jù)量很大的場合,使用FPGA或者CPLD取代單片機(jī),是系統(tǒng)升級的好辦法。



[1] [2]  下一頁
  • 上一篇: 便攜式醫(yī)療監(jiān)護(hù)儀器網(wǎng)絡(luò)化接口的設(shè)計
  • 下一篇: 微機(jī)主從通訊系統(tǒng)多232口連接電路設(shè)計
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會員助手 | 免費鏈接

    點擊這里給我發(fā)消息66821730(技術(shù)支持)點擊這里給我發(fā)消息66821730(廣告投放) 點擊這里給我發(fā)消息41031197(編輯) 點擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實性、準(zhǔn)確性和合法性。
    機(jī)電之家對此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請聯(lián)系機(jī)電之家,機(jī)電之家將及時作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會
    中國行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1