一種節省內存的方法及裝置製造方法
2023-07-30 08:44:21 2
一種節省內存的方法及裝置製造方法
【專利摘要】本發明適用於藍牙【技術領域】,提供了一種節省內存的方法及裝置,所述方法包括下述步驟:當傳輸層收到數據包且能夠發送時,傳輸層將數據包讀取至電梯式緩衝包中,然後上傳;當數據包上傳至Profile層時,產生響應包並將相應包直接寫入到電梯式緩衝包;電梯式緩衝包下降,並下傳至傳輸層進行發送。本發明通過將多個緩衝塊精簡到一個緩衝塊,對一個緩衝塊採用升降式電梯式緩衝的方式進行數據的發送,從而節省內存降低功耗和成本。
【專利說明】一種節省內存的方法及裝置
【技術領域】
[0001]本發明屬於藍牙【技術領域】,尤其涉及一種節省內存的方法及裝置。
【背景技術】
[0002]藍牙技術已有十多年的歷史,本身就以綠色節能、低成本為設計理念,大量用於手機、無線耳機等領域。近來藍牙協議4.0的發布,其中低功耗規範試圖將藍牙推廣至更廣泛的低成本應用領域,如儀表監控等。藍牙設備的產品在其它質量不變的情況下,減小內存的佔用無疑可降低產品成本,以及降低產品的功耗。同時藍牙4.0規範中低功耗的出現,給內存佔用更少的藍牙庫帶來更多商機。為了降低藍牙協議棧的內存,從頭對藍牙協議棧進行全新的實現的人並不多,通常只是在原有的協議上進行修改,這樣可降低開發風險。然而對協議的修改並不能有效的降低藍牙產品的成本和功耗。
【發明內容】
[0003]本發明實施例的目的在於提供一種節省內存的方法及裝置,旨在提供一種節省內存的方法,通過將多個緩衝塊精簡到一個緩衝塊,對一個緩衝塊採用升降式電梯式緩衝的方式進行數據的發送,從而節省內存降低功耗和成本。
[0004]本發明實施例是這樣實現的,一種節省內存的方法,所述方法包括下述步驟:
[0005]當傳輸層收到數據包且能夠發送時,傳輸層將數據包讀取至電梯式緩衝包中,然後上傳;
[0006]當數據包上傳至Profile層時,產生響應包並將相應包直接寫入到電梯式緩衝包;
[0007]電梯式緩衝包下降,並下傳至傳輸層進行發送。
[0008]進一步的,所述當傳輸層收到數據包且能夠發送時,傳輸層將數據包讀取至電梯式緩衝包中,然後上傳的步驟包括:
[0009]當傳輸層收到數據包時,判斷是否能夠發送數據;
[0010]當傳輸層收到數據包且能夠發送時,傳輸層將數據包讀取至電梯式緩衝包中,然後上傳。
[0011]進一步的,所述當數據包上傳至Profile層時,產生響應包並將相應包直接寫入到電梯式緩衝包的具體步驟包括:
[0012]當數據包上傳至Profile層時,Profile層取出數據並進行分析;
[0013]Profile層產生響應包並將相應包直接寫入到電梯式緩衝包中。
[0014]進一步的,所述電梯式緩衝包下降,並下傳至傳輸層進行發送的具體步驟包括:
[0015]電梯式緩衝包下降,並在下降過程中為緩衝包加上包頭;
[0016]緩衝包下傳至傳輸層並進行發送。
[0017]本發明實施例的另一目的在於提供一種節省內存的裝置,所述裝置包括:
[0018]數據接收單元,用於當傳輸層收到數據包且能夠發送時,傳輸層將數據包讀取至電梯式緩衝包中,然後上傳;
[0019]數據響應單元,用於當數據包上傳至Profile層時,產生響應包並將相應包直接寫入到電梯式緩衝包;
[0020]數據發送單元,用於電梯式緩衝包下降,並下傳至傳輸層進行發送。
[0021]進一步的,所述數據接收單元包括:
[0022]判斷單元,用於當傳輸層收到數據包時,判斷是否能夠發送數據;
[0023]上傳單元,用於當傳輸層收到數據包且能夠發送時,傳輸層將數據包讀取至電梯式緩衝包中,然後上傳。
[0024]進一步的,所述數據響應單元包括:
[0025]分析單元,用於當數據包上傳至Profile層時,Profile層取出數據並進行分析;
[0026]寫入單元,用於Profile層產生響應包並將相應包直接寫入到電梯式緩衝包中。
[0027]進一步的,所述數據發送單元包括:
[0028]下降單元,用於電梯式緩衝包下降,並在下降過程中為緩衝包加上包頭;
[0029]發送單元,用於緩衝包下傳至傳輸層並進行發送。
[0030]本發明實施例通過一種節省內存的方法及裝置,採用升降式電梯緩衝,通過升降式電梯緩衝的方式實現只採用一個緩衝塊來進行數據的發送,在升降式電梯上升時,各層取得所需的信息最後到達Profile層,Profile層取得數據並寫入響應數據後下降至傳輸層進行發送,通過採用升降式電梯緩衝的方式只需一個緩衝塊即可進行數據的發送,顯著地節省了內存,同時由於採用一個緩衝塊,在各層進行處理時可以有效的降低各層的函數調用,最終實現降低功耗提升整體性能。
【專利附圖】
【附圖說明】
[0031]圖1是本發明第一實施例提供的一種節省內存的方法的實現流程圖;
[0032]圖2是本發明第二實施例提供的一種節省內存的方法的實現流程圖;
[0033]圖3是本發明第三實施例提供的一種節省內存的裝置的結構圖;
[0034]圖4是本發明第四實施例提供的一種節省內存的裝置的結構圖;
[0035]圖5是本發明第四實施例提供的數據上傳示意圖;以及
[0036]圖6是本發明第四實施例提供的數據下傳示意圖。
【具體實施方式】
[0037]為了使本發明的目的、技術方案及優點更加清楚明白,以下結合附圖及實施例,對本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發明,並不用於限定本發明。
[0038]以下結合具體實施例對本發明的具體實現進行詳細描述:
[0039]實施例一:
[0040]圖1示出了本發明第一實施例提供的一種節省內存的方法的實現流程,詳述如下:
[0041]S101,當傳輸層收到數據包且能夠發送時,傳輸層將數據包讀取至電梯式緩衝包中,然後上傳。
[0042]傳輸層接收到一個數據包,當傳輸層能夠進行發送時,傳輸層將接收到的數據包讀取至升降式電梯的電梯緩衝包中,然後升降式電梯開始上升,上傳至藍牙傳輸協議的頂層。
[0043]S102,當數據包上傳至Profile層時,產生響應包並將相應包直接寫入到電梯式緩衝包。
[0044]當數據包上傳至Profile層時,Profile層是藍牙協議的頂層,此時Profile層讀取數據包中的信息,Profile層產生響應並在電梯式緩衝包數據中寫入要發送的數據。
[0045]S103,電梯式緩衝包下降,並下傳至傳輸層進行發送。
[0046]電梯式緩衝包開始下降,並最終下降至傳輸層進行發送。
[0047]本發明實施例通過上述方式,一種節省內存的方法,對一個緩衝塊採用升降式電梯式緩衝的方式接收數據,當接收到數據以後能夠發送時將數據傳輸至頂層,頂層產生響應並寫入要發送的數據,再下降至傳輸層進行發送,實現只通過一個緩衝塊發送數據,從而節省內存降低功耗和成本。
[0048]實施例二:
[0049]圖2示出了本發明第二實施例提供的一種節省內存的方法的實現流程,詳述如下:
[0050]S201,當傳輸層收到數據包時,判斷是否能夠發送數據。
[0051]當傳輸層接收到一個數據包以後,判斷此時傳輸層是否能夠發送數據,由於在採用電梯式緩衝的方式進行數據發送時,升降式電梯只有一個緩衝塊,還需考慮升降式電梯的運行時機,如收到數據時不能立即上升,要判斷是否可以發送,如果不能發送則升降式電梯搬運的數據就沒有了意義,同時對於流控和分片還需判斷是否可以進行不間斷的發送,最終判斷得出是否能夠進行發送數據。
[0052]S202,當傳輸層收到數據包且能夠發送時,傳輸層將數據包讀取至電梯式緩衝包中,然後上傳。
[0053]當傳輸層收到的數據包判斷結果為能夠進行發送時,傳輸層將數據包讀取只電梯式緩衝包中,升降式電梯開始上升。
[0054]S203,當數據包上傳至Profile層時,Profile層取出數據並進行分析。
[0055]數據包開始上傳,數據包首先到達HCI (Host Contoroller Interface)主機控制器接口層,數據包在上傳過程中需要在各層讀取出數據包的包頭,其中在HCI層取出電梯式緩衝數據包中數據包的H頭,根據H頭得出發送到哪一個L2CAP (Logical Link Controland Adaptat1n Protocol)邏輯鏈路控制及適配協議層,之後發送到L2CAP, L2CAP取出數據包的L頭再得出放到哪一個Profile, Profile為藍牙的頂層,當數據包上傳至Profile層時,P1fiIe層取出數據包中的相關數據,這裡以AVDTP信令與相應為例進行說明,AVDTP取出相關數據,分析得到是遠端設備發來的一個信令。
[0056]S204, Profile層產生響應包並將相應包直接寫入到電梯式緩衝包中。
[0057]當Profile層根據分析得出是遠端發送來的一個信令,此時產生一個響應包,Profile層將相應包寫入到電梯式緩衝數據包中。
[0058]S205,電梯式緩衝包下降,並在下降過程中為緩衝包加上包頭。
[0059]當電梯式緩衝數據包中寫入相應數據,AVDTP子函數退出,此時電梯開始下降,首先下傳至L2CAP層,L2CAP為數據包加上頭L,再下傳至HCI層,HCI為數據包加上頭H,電梯繼續下降進行下傳。
[0060]S206,緩衝包下傳至傳輸層並進行發送。
[0061]緩衝數據包下傳至傳輸層以後,自動進行發送,具體的可以通過UART (UniversalAsynchronous Receiver/Transmitter)即通用異步收發傳輸器進行發送。
[0062]其中需要說明的是,當未接收數據卻需要發送數據時,由發送層向下層發送請求,下層最終將請求傳輸至傳輸層,傳輸層可以直接執行時即按照普通收發的方式進行發送,當傳輸層不能立即進行發送時,將請求標記起來,直至請求結束後解除請求的未決狀態。
[0063]本發明實施例通過上述方式,一種節省內存的方法,採用升降式電梯緩衝,通過升降式電梯緩衝的方式實現只採用一個緩衝塊來進行數據的發送,在升降式電梯上升時,各層取得所需的信息最後到達Profile層,Profile層取得數據並寫入響應數據後下降至傳輸層進行發送,通過採用升降式電梯緩衝的方式只需一個緩衝塊即可進行數據的發送,顯著地節省了內存,同時由於採用一個緩衝塊,在各層進行處理時可以有效的降低各層的函數調用,最終實現降低功耗提升整體性能。
[0064]實施例三:
[0065]圖3示出了本發明第三實施例提供的一種節省內存的裝置的結構圖,為了便於說明,僅不出了與本發明實施例相關的部分。
[0066]數據接收單元31,用於當傳輸層收到數據包且能夠發送時,傳輸層將數據包讀取至電梯式緩衝包中,然後上傳。
[0067]數據接收單元用於當傳輸層接收到一個數據包,當傳輸層能夠進行發送時,傳輸層將接收到的數據包讀取至升降式電梯的電梯緩衝包中,然後升降式電梯開始上升,上傳至藍牙傳輸協議的頂層。
[0068]數據響應單元32,用於當數據包上傳至Profile層時,產生響應包並將相應包直接寫入到電梯式緩衝包。
[0069]數據響應單元用於當數據包上傳至Profile層時,Profile層是藍牙協議的頂層,此時Profile層讀取數據包中的信息,Profile層產生響應並在電梯式緩衝包數據中寫入要發送的數據。
[0070]數據發送單元33,用於電梯式緩衝包下降,並下傳至傳輸層進行發送。
[0071]數據發送單元用於當電梯式緩衝包開始下降,並最終下降至傳輸層進行發送。
[0072]本發明實施例通過上述方式,一種節省內存的裝置,對一個緩衝塊採用升降式電梯式緩衝的方式接收數據,當接收到數據以後能夠發送時將數據傳輸至頂層,頂層產生響應並寫入要發送的數據,再下降至傳輸層進行發送,實現只通過一個緩衝塊發送數據,從而節省內存降低功耗和成本。
[0073]實施例四:
[0074]圖4示出了本發明第四實施例提供的一種節省內存的裝置的結構圖,為了便於說明,僅不出了與本發明實施例相關的部分。
[0075]判斷單元41,用於當傳輸層收到數據包時,判斷是否能夠發送數據。
[0076]判斷單元判斷當傳輸層接收到一個數據包以後,此時傳輸層是否能夠發送數據,升降式電梯只有一個緩衝塊,還需考慮升降式電梯的運行時機,如收到數據時不能立即上升,要判斷是否可以發送,,同時對於流控和分片還需判斷是否可以進行不間斷的發送,最終判斷得出是否能夠進行發送數據。
[0077]上傳單元42,用於當傳輸層收到數據包且能夠發送時,傳輸層將數據包讀取至電梯式緩衝包中,然後上傳。
[0078]上傳單元用於當傳輸層收到的數據包判斷結果為能夠進行發送時,傳輸層將數據包讀取只電梯式緩衝包中,升降式電梯開始上升。
[0079]分析單元43,用於當數據包上傳至Profile層時,Profile層取出數據並進行分析。
[0080]分析單元用於對數據包中的數據進行分析,數據包開始上傳,數據包上傳的示意圖如圖5所述,數據包中的數據,具體可以為數據A首先到達HCI (Host ContorollerInterface)主機控制器接口層,在HCI層取出電梯式緩衝數據包中數據包的H頭,根據H頭得出發送到哪一個L2CAP(Logical Link Control and Adaptat1n Protocol)邏輯鏈路控制及適配協議層,之後發送到L2CAP,L2CAP取出數據包的L頭再得出放到哪一個Profile,Profile為藍牙的頂層,當數據包上傳至Profile層時,Profile層取出數據包中的相關數據,這裡以AVDTP信令與相應為例進行說明,AVDTP取出相關數據,分析得到是遠端設備發來的一個信令。
[0081]寫入單元44,用於Profile層產生響應包並將相應包直接寫入到電梯式緩衝包中。
[0082]寫入單元用於當Profile層根據分析得出是遠端發送來的一個信令,此時產生一個響應包,Profile層將相應包寫入到電梯式緩衝數據包中。
[0083]下降單元45,用於電梯式緩衝包下降,並在下降過程中為緩衝包加上包頭。
[0084]下降單元用於當電梯式緩衝數據包中寫入相應數據,AVDTP子函數退出,此時電梯開始下降,下降的示意圖如圖6所示,首先下傳至L2CAP層,L2CAP為數據包加上頭L,再下傳至HCI層,HCI為數據包加上頭H,電梯繼續下降進行下傳。
[0085]發送單元46,用於緩衝包下傳至傳輸層並進行發送。
[0086]緩衝數據包下傳至傳輸層以後,自動進行發送,具體的可以通過UART (UniversalAsynchronous Receiver/Transmitter)即通用異步收發傳輸器進行發送。
[0087]本發明實施例通過上述方式,一種節省內存的裝置,採用升降式電梯緩衝,通過升降式電梯緩衝的方式實現只採用一個緩衝塊來進行數據的發送,在升降式電梯上升時,各層取得所需的信息最後到達Profile層,Profile層取得數據並寫入響應數據後下降至傳輸層進行發送,通過採用升降式電梯緩衝的方式只需一個緩衝塊即可進行數據的發送,顯著地節省了內存,同時由於採用一個緩衝塊,在各層進行處理時分別是一層的子函數的調用,這樣可以有效的降低各層的函數調用,同時由於只在能夠發送的時候才接收數據,充分降低了暫存狀態的內存開銷,最終實現降低功耗提升整體性能。
[0088]本領域普通技術人員可以理解實現上述實施例方法中的全部或部分步驟是可以通過程序來指令相關的硬體來完成,所述的程序可以存儲於計算機可讀取存儲介質中,所述的存儲介質,如R0M/RAM、磁碟、光碟等。
[0089]以上所述僅為本發明的較佳實施例而已,並不用以限制本發明,凡在本發明的精神和原則之內所作的任何修改、等同替換和改進等,均應包含在本發明的保護範圍之內。
【權利要求】
1.一種節省內存的方法,其特徵在於,所述方法包括下述步驟: 當傳輸層收到數據包且能夠發送時,傳輸層將數據包讀取至電梯式緩衝包中,然後上傳; 當數據包上傳至Profile層時,產生響應包並將相應包直接寫入到電梯式緩衝包; 電梯式緩衝包下降,並下傳至傳輸層進行發送。
2.如權利要求1所述的方法,其特徵在於,所述當傳輸層收到數據包且能夠發送時,傳輸層將數據包讀取至電梯式緩衝包中,然後上傳的步驟包括: 當傳輸層收到數據包時,判斷是否能夠發送數據; 當傳輸層收到數據包且能夠發送時,傳輸層將數據包讀取至電梯式緩衝包中,然後上傳。
3.如權利要求1所述的方法,其特徵在於,所述當數據包上傳至Profile層時,產生響應包並將相應包直接寫入到電梯式緩衝包的具體步驟包括: 當數據包上傳至Profile層時,Profile層取出數據並進行分析; Profile層產生響應包並將相應包直接寫入到電梯式緩衝包中。
4.如權利要求1所述的方法,其特徵在於,所述電梯式緩衝包下降,並下傳至傳輸層進行發送的具體步驟包括: 電梯式緩衝包下降,並在下降過程中為緩衝包加上包頭; 緩衝包下傳至傳輸層並進行發送。
5.一種節省內存的裝置,其特徵在於,所述裝置包括: 數據接收單元,用於當傳輸層收到數據包且能夠發送時,傳輸層將數據包讀取至電梯式緩衝包中,然後上傳; 數據響應單元,用於當數據包上傳至Profile層時,產生響應包並將相應包直接寫入到電梯式緩衝包; 數據發送單元,用於電梯式緩衝包下降,並下傳至傳輸層進行發送。
6.如權利要求5所述的裝置,其特徵在於,所述數據接收單元包括: 判斷單元,用於當傳輸層收到數據包時,判斷是否能夠發送數據; 上傳單元,用於當傳輸層收到數據包且能夠發送時,傳輸層將數據包讀取至電梯式緩衝包中,然後上傳。
7.如權利要求5所述的裝置,其特徵在於,所述數據響應單元包括: 分析單元,用於當數據包上傳至Profile層時,Profile層取出數據並進行分析; 寫入單元,用於Profile層產生響應包並將相應包直接寫入到電梯式緩衝包中。
8.如權利要求5所述的裝置,其特徵在於,所述數據發送單元包括: 下降單元,用於電梯式緩衝包下降,並在下降過程中為緩衝包加上包頭; 發送單元,用於緩衝包下傳至傳輸層並進行發送。
【文檔編號】H04L29/08GK104519074SQ201310444949
【公開日】2015年4月15日 申請日期:2013年9月26日 優先權日:2013年9月26日
【發明者】李曉輝, 胡勝發 申請人:安凱(廣州)微電子技術有限公司