一種基于單片機串口通信的數(shù)據(jù)緩存處理方法
發(fā)布時間:2021-11-19 07:09
文章介紹了一種基于單片機串口通信的數(shù)據(jù)緩存處理方法。規(guī)定了一種靈活、高效、兼容的串口通信協(xié)議,并采用循環(huán)存儲的緩存處理方法。按照該方法,定義一個固定長度的數(shù)組,用來緩存串口接收到的數(shù)據(jù)。當緩存數(shù)組空間已滿,新的串口數(shù)據(jù)將從數(shù)組首地址進行覆蓋存儲。單片機MCU按照規(guī)定的通信協(xié)議對緩存數(shù)據(jù)進行解析,當解析到緩存數(shù)組的最后一個數(shù)據(jù),將返回到數(shù)組首地址繼續(xù)解析。這種通信協(xié)議,支持加密和兼容處理,循環(huán)緩存方式保證了緩存空間利用率百分之百,避免了串口數(shù)據(jù)處理紊亂和丟包的情況,能夠滿足當前越來越復雜的單片機串口功能的需求。
【文章來源】:信息通信. 2020,(04)
【文章頁數(shù)】:2 頁
【部分圖文】:
通信協(xié)議格式
首先,定義一個固定長度的數(shù)組,該數(shù)組的長度應能保證可存儲多條通信協(xié)議。以本文為例,設(shè)置緩存數(shù)組長度為256個字節(jié)。定義讀指針rd和寫指針rw,其中,讀指針rd指向MCU正在解析的字節(jié)在數(shù)組中的地址,寫指針rw指向串口UART最新接收的數(shù)據(jù)在數(shù)組中的地址。當MCU解析完當前數(shù)據(jù)后,解析下一個字節(jié)時,rd遞增;當UART接收到新的數(shù)據(jù)時,rw遞增。當指針地址偏移量達到256個字節(jié),將相應指針重新指向數(shù)組首地址。示意圖如圖2所示。指針rd和rw在本文方法中用來表示串口數(shù)據(jù)存儲和解析的進度,一般rd不大于rw,當發(fā)生rd或rw遞增時,需要實時判斷指針是否溢出,并及時清零。指針rw溢出未清零會導致接收數(shù)據(jù)丟包,而指針rd溢出未清零會導致協(xié)議數(shù)據(jù)解析不完整。指針rw溢出判斷相對簡單,當rw遞增時,和數(shù)組長度比對即可;指針rd溢出判斷需要結(jié)合通信協(xié)議格式、解析過程及數(shù)組長度來判斷。
【參考文獻】:
期刊論文
[1]計算機單片機通信系統(tǒng)軟硬件結(jié)構(gòu)設(shè)計[J]. 董國鋼. 遼寧經(jīng)濟職業(yè)技術(shù)學院.遼寧經(jīng)濟管理干部學院學報. 2020(01)
[2]51單片機串口應用[J]. 張幼麟. 內(nèi)江科技. 2019(10)
[3]一種高可靠性串口通信協(xié)議的設(shè)計[J]. 李林. 現(xiàn)代導航. 2019(04)
[4]基于C#的串口通信系統(tǒng)的設(shè)計和實現(xiàn)[J]. 劉馬飛. 物聯(lián)網(wǎng)技術(shù). 2019(06)
[5]基于通信協(xié)議的數(shù)據(jù)解析研究與實現(xiàn)[J]. 閆超. 軟件. 2019(06)
[6]異步串行通信協(xié)議的設(shè)計與實現(xiàn)[J]. 賈昊,張燁,崔忠政,徐曌,楊揚,徐佳. 電子制作. 2018(20)
[7]單片機的數(shù)據(jù)串口通信研究[J]. 李劉丹. 信息通信. 2015(10)
[8]一種基于串口通信的高可靠性應用協(xié)議設(shè)計[J]. 王建敏,崔俊鋒,牛道恒. 鐵路通信信號工程技術(shù). 2015(01)
[9]單片機實現(xiàn)數(shù)據(jù)的串口發(fā)送與接收[J]. 程陽. 電子技術(shù)與軟件工程. 2014(09)
[10]一種基于狀態(tài)機的串口通信協(xié)議的設(shè)計與實現(xiàn)[J]. 李瑩,賈彬. 電子設(shè)計工程. 2012(07)
本文編號:3504538
【文章來源】:信息通信. 2020,(04)
【文章頁數(shù)】:2 頁
【部分圖文】:
通信協(xié)議格式
首先,定義一個固定長度的數(shù)組,該數(shù)組的長度應能保證可存儲多條通信協(xié)議。以本文為例,設(shè)置緩存數(shù)組長度為256個字節(jié)。定義讀指針rd和寫指針rw,其中,讀指針rd指向MCU正在解析的字節(jié)在數(shù)組中的地址,寫指針rw指向串口UART最新接收的數(shù)據(jù)在數(shù)組中的地址。當MCU解析完當前數(shù)據(jù)后,解析下一個字節(jié)時,rd遞增;當UART接收到新的數(shù)據(jù)時,rw遞增。當指針地址偏移量達到256個字節(jié),將相應指針重新指向數(shù)組首地址。示意圖如圖2所示。指針rd和rw在本文方法中用來表示串口數(shù)據(jù)存儲和解析的進度,一般rd不大于rw,當發(fā)生rd或rw遞增時,需要實時判斷指針是否溢出,并及時清零。指針rw溢出未清零會導致接收數(shù)據(jù)丟包,而指針rd溢出未清零會導致協(xié)議數(shù)據(jù)解析不完整。指針rw溢出判斷相對簡單,當rw遞增時,和數(shù)組長度比對即可;指針rd溢出判斷需要結(jié)合通信協(xié)議格式、解析過程及數(shù)組長度來判斷。
【參考文獻】:
期刊論文
[1]計算機單片機通信系統(tǒng)軟硬件結(jié)構(gòu)設(shè)計[J]. 董國鋼. 遼寧經(jīng)濟職業(yè)技術(shù)學院.遼寧經(jīng)濟管理干部學院學報. 2020(01)
[2]51單片機串口應用[J]. 張幼麟. 內(nèi)江科技. 2019(10)
[3]一種高可靠性串口通信協(xié)議的設(shè)計[J]. 李林. 現(xiàn)代導航. 2019(04)
[4]基于C#的串口通信系統(tǒng)的設(shè)計和實現(xiàn)[J]. 劉馬飛. 物聯(lián)網(wǎng)技術(shù). 2019(06)
[5]基于通信協(xié)議的數(shù)據(jù)解析研究與實現(xiàn)[J]. 閆超. 軟件. 2019(06)
[6]異步串行通信協(xié)議的設(shè)計與實現(xiàn)[J]. 賈昊,張燁,崔忠政,徐曌,楊揚,徐佳. 電子制作. 2018(20)
[7]單片機的數(shù)據(jù)串口通信研究[J]. 李劉丹. 信息通信. 2015(10)
[8]一種基于串口通信的高可靠性應用協(xié)議設(shè)計[J]. 王建敏,崔俊鋒,牛道恒. 鐵路通信信號工程技術(shù). 2015(01)
[9]單片機實現(xiàn)數(shù)據(jù)的串口發(fā)送與接收[J]. 程陽. 電子技術(shù)與軟件工程. 2014(09)
[10]一種基于狀態(tài)機的串口通信協(xié)議的設(shè)計與實現(xiàn)[J]. 李瑩,賈彬. 電子設(shè)計工程. 2012(07)
本文編號:3504538
本文鏈接:http://sikaile.net/kejilunwen/jisuanjikexuelunwen/3504538.html
最近更新
教材專著