中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

機加工網(wǎng)站南通seo網(wǎng)站優(yōu)化軟件

機加工網(wǎng)站,南通seo網(wǎng)站優(yōu)化軟件,如何配置iis網(wǎng)站,上海市小公司名稱有哪些引言 在嵌入式中,不可避免地會遇到數(shù)據(jù)的收發(fā)。 其實,數(shù)據(jù)的收發(fā)有很多情況。 總體上,分為數(shù)據(jù)的收和發(fā): 其中,數(shù)據(jù)發(fā)送是一個主動的行為,我們對要發(fā)送數(shù)據(jù)的數(shù)量特點等都是知道的,比如我們通過…

引言?

在嵌入式中,不可避免地會遇到數(shù)據(jù)的收發(fā)。

其實,數(shù)據(jù)的收發(fā)有很多情況。

總體上,分為數(shù)據(jù)的收和發(fā):

其中,數(shù)據(jù)發(fā)送是一個主動的行為,我們對要發(fā)送數(shù)據(jù)的數(shù)量特點等都是知道的,比如我們通過串口發(fā)送數(shù)據(jù),這時候,使用常規(guī)發(fā)送方式,或者結(jié)合使用DMA都是可以的;

相較而言,數(shù)據(jù)的接收就會麻煩一些,因為接收數(shù)據(jù),對于用戶來說是一個被動響應(yīng)的行為。接收數(shù)據(jù)也有很多種情況:

1、接收定長數(shù)據(jù);

2、接收不定長數(shù)據(jù);

3、接收的數(shù)據(jù)是隨機到來的,比如串口屏的觸摸發(fā)送鍵值到下位機,這種情況下,觸摸行為是沒有任何規(guī)律的,數(shù)據(jù)之間發(fā)送的間隔一般也比較長;

4、一直不斷地接收大量數(shù)據(jù),比如單片機需要一直接收串口數(shù)據(jù);

5、接收數(shù)據(jù)后透傳出去;

6、接收數(shù)據(jù)保存起來,等待上層應(yīng)用訪問;

以上幾種情況分別如何處理呢?

以串口為例:

首先,不管是哪種情況,只要是底層接收數(shù)據(jù),就一定要使用緩沖技術(shù),為什么呢?

這是因為底層數(shù)據(jù)接收的速度很快,而我們處理數(shù)據(jù)的速度沒那么快,如果只是簡單的一兩個語句來處理,比如給變量賦個值,做個簡單的判斷,沒什么問題,如果語句多了,比如printf,也有可能來不及處理,關(guān)于這點可以參考這篇文章:

基于串口的BLE模組CC2640R2使用總結(jié)_路溪非溪的博客-CSDN博客

那么,這些情況的緩沖有何區(qū)別呢?

1、接受定長數(shù)據(jù)相對簡單,使用普通串口接收或者DMA都可以;

2、接收不定長數(shù)據(jù),就需要使用串口中斷+空閑中斷或者DMA+空閑中斷,仍然參考:

基于串口的BLE模組CC2640R2使用總結(jié)_路溪非溪的博客-CSDN博客

3、接收數(shù)據(jù)隨機到來,因為數(shù)據(jù)接收沒那么快,一次可能只接受一兩幀數(shù)據(jù),所以不需要太大的緩沖區(qū);具體參考:F103串口和DMA配合使用總結(jié)_路溪非溪的博客-CSDN博客

4、這個情況就需要相對大一些的緩沖區(qū),因為數(shù)據(jù)來得比較快,可能還來不及處理就被覆蓋了,具體參考這篇文章:F103串口和DMA配合使用總結(jié)_路溪非溪的博客-CSDN博客

5、接收數(shù)據(jù)后透傳出去,這個基本都是底層的傳輸,所以接收緩沖后,就可以發(fā)出去,這個參考:基于串口的BLE模組CC2640R2使用總結(jié)_路溪非溪的博客-CSDN博客

6、接收數(shù)據(jù)保存起來供上層使用,這里就有個問題,底層接收數(shù)據(jù)保存起來,上層處理速度沒那么快,就需要考慮一些問題,緩沖區(qū)設(shè)置多大合適呢?多久處理一次呢?

以上提到的就是緩沖區(qū)的用法,用來解決快速的數(shù)據(jù)接收和慢速的數(shù)據(jù)處理之間不匹配的問題,具體看這張圖就能理解了:

其實,這里比較麻煩的也是比較常見的情況就是上面幾種情況的綜合:

接受不定長數(shù)據(jù)+不斷接收數(shù)據(jù)幀+保存起來供上層使用。

具體參考:F103串口和DMA配合使用總結(jié)_路溪非溪的博客-CSDN博客

串口空閑中斷+DMA可以解決前兩個問題,再就是接收的數(shù)據(jù)需要放在一個緩沖區(qū)里面,上層應(yīng)用需要時就來拿這個數(shù)據(jù)。

考慮這種場景:

電路中有連續(xù)的電壓,單片機通過AD采樣數(shù)據(jù),注意,這時候連續(xù)的數(shù)據(jù)就被離散化了,只要采樣率滿足采樣定理,就能無失真地還原出原有信號的樣子。

假如我們要采的是正弦信號的RMS值,那么就是個恒定的直流量,其中有一些波動是很正常的事情。此時,數(shù)據(jù)接收后緩存起來,緩存一些數(shù)據(jù)后做個均值濾波等等處理,然后得到一個比較穩(wěn)定的值,再將這個值存在一個變量中,此時,這個變量其實刷新的速率也是很快的。到這里,其實是底層的事情。

現(xiàn)在,我上層需要將這些數(shù)據(jù)拿來顯示在屏幕上,如果來一個數(shù)據(jù)我們就顯示一個數(shù)據(jù),那么,就強迫上層跟著下層的速度,首先跟不跟得上不說,上層這么快顯示數(shù)據(jù)沒有什么必要,增加數(shù)據(jù)發(fā)送的負(fù)擔(dān)不說,我們?nèi)搜垡沧R別不過來,如果底層1s刷新1000個點,那我1秒去拿10個數(shù)據(jù)來顯示也可以,也就是在定時器中,每隔100ms去拿一個數(shù)據(jù),最好調(diào)整下這個間隔以適配我們?nèi)搜鄣挠^察視覺,而且,如果不這樣,底層有時因為其他干擾數(shù)據(jù)發(fā)送時快時慢,我們上層顯示也會時快時慢,如果定時去取值顯示,就不會受底層速度的干擾,從而實現(xiàn)了底層快速和上層慢速的隔離,各司其職,用緩沖區(qū)作為“中介”。

就像這樣拿數(shù)據(jù)顯示:

另外還有一點,如果我發(fā)數(shù)據(jù)給串口屏太多太頻繁,可能會影響到同時發(fā)送的其他數(shù)據(jù)從而造成卡頓。

這里面有一點值得注意,就是,如果這樣顯示,那不就是有很多數(shù)據(jù)沒有拿到?首先,這里拿的是個RMS值,理想上是個恒定值,而且本來就是滿足采樣定理所采集到的離散值,從連續(xù)到離散,本來也有很多數(shù)據(jù)沒采到,但是不影響效果。

到底什么是緩沖技術(shù)呢??

緩沖區(qū)可以說是計算機中的一個連接站,用于連接計算機中高速、低速運行的部件。

作用:緩沖通常用于臨時存儲數(shù)據(jù),以平衡不同速度的數(shù)據(jù)傳輸過程之間的差異。它可以用來解決數(shù)據(jù)傳輸速度不匹配的問題。

工作原理:緩沖區(qū)是一個存儲區(qū)域,用于暫時保存數(shù)據(jù),待數(shù)據(jù)傳輸速度對齊后再將數(shù)據(jù)發(fā)送出去。在數(shù)據(jù)傳輸過程中,如果數(shù)據(jù)接收速度較快,數(shù)據(jù)會被存儲在緩沖區(qū)中。

數(shù)據(jù)處理: 緩沖區(qū)通常不會對數(shù)據(jù)進(jìn)行處理或修改,它只是臨時存儲數(shù)據(jù)的容器。

可以參考這個總結(jié):

緩沖是兩種不同速度設(shè)備之間的傳輸信息時平滑傳輸過程的常用手段。

引入緩沖技術(shù)的原因:

1、? 為了進(jìn)一步緩和CPU和I/O設(shè)備之間速度不匹配的矛盾。

2、? 提高CPU與I/O設(shè)備之間的并行性。

3、? 為了減少中斷次數(shù)和CPU的中斷處理時間。如果沒有緩沖,慢速I/O設(shè)備每傳一個字節(jié)就要產(chǎn)生一個中斷,CPU必須處理該中斷。如果用了緩沖技術(shù),則慢速的I/O設(shè)備將緩沖區(qū)填滿時,才向CPU發(fā)出中斷,從而減少了中斷次數(shù)和CPU的中斷處理時間。

4、? 為了解決DMA或通道方式下數(shù)據(jù)傳輸?shù)钠款i問題。DMA或通道方式都適用于成批數(shù)據(jù)傳輸,在無緩沖的情況下,慢速I/O設(shè)備只能一個字節(jié)一個字節(jié)的傳輸信息,這造成DMA方式或通道方式數(shù)據(jù)傳輸?shù)钠款i。緩沖區(qū)的設(shè)置適應(yīng)了DMA或通道方式的成批數(shù)據(jù)傳輸方式,解決了數(shù)據(jù)傳輸?shù)钠款i問題。

這里順便提一下,另外還有個概念叫緩存,注意區(qū)分:

作用: 緩存用于存儲已經(jīng)計算過或獲取過的數(shù)據(jù),以便在后續(xù)訪問時能夠更快地獲取數(shù)據(jù),從而提高系統(tǒng)的響應(yīng)速度。

工作原理: 緩存會將經(jīng)常訪問的數(shù)據(jù)復(fù)制到更快的存儲介質(zhì)中,如內(nèi)存,以便在后續(xù)訪問時無需再從原始數(shù)據(jù)源獲取。這樣能夠減少數(shù)據(jù)訪問時間,提高性能。

數(shù)據(jù)處理:緩存中的數(shù)據(jù)通??梢愿鶕?jù)需要進(jìn)行處理,以滿足特定的訪問要求。例如,可以將數(shù)據(jù)庫查詢結(jié)果存儲在緩存中,以減少數(shù)據(jù)庫訪問頻率。

實際應(yīng)用:Web瀏覽器使用緩存來存儲已經(jīng)訪問過的網(wǎng)頁,以便下次訪問同一網(wǎng)頁時能夠更快地加載。

兩者主要區(qū)別如下:

用途不同:緩沖主要用于平衡數(shù)據(jù)傳輸速度差異,而緩存主要用于提高數(shù)據(jù)訪問速度。

數(shù)據(jù)處理:緩沖不對數(shù)據(jù)進(jìn)行處理,只是暫時存儲,而緩存可以對數(shù)據(jù)進(jìn)行處理以滿足特定需求。

存儲介質(zhì):緩沖通常用于暫時存儲數(shù)據(jù),存儲在相同或類似的介質(zhì)上,而緩存通常將數(shù)據(jù)存儲在更快的存儲介質(zhì)中,如內(nèi)存。

數(shù)據(jù)類型:緩沖可以用于各種數(shù)據(jù)類型,包括傳輸中的數(shù)據(jù),而緩存通常用于經(jīng)常被訪問的數(shù)據(jù)。

總之,緩沖和緩存在數(shù)據(jù)處理中有著不同的作用和機制,了解它們的區(qū)別有助于更好地理解在不同情況下如何使用它們來優(yōu)化數(shù)據(jù)傳輸和訪問性能。

環(huán)形緩沖區(qū)?

可直接參考:

【數(shù)據(jù)結(jié)構(gòu)】環(huán)形緩沖區(qū)介紹,原理講解+代碼實現(xiàn)。(內(nèi)核__嵌入式__c語言數(shù)組)

http://m.risenshineclean.com/news/32391.html

相關(guān)文章:

  • 自適應(yīng)網(wǎng)站推廣sem代運營公司
  • 怎么自建導(dǎo)購網(wǎng)站做淘客正能量網(wǎng)站地址鏈接免費
  • 網(wǎng)站頁尾內(nèi)容推廣公司主要做什么
  • 易居房產(chǎn)網(wǎng)下載路由優(yōu)化大師
  • 網(wǎng)站平臺建設(shè)論文搜索關(guān)鍵詞軟件
  • 網(wǎng)站建設(shè)架刷贊業(yè)務(wù)推廣網(wǎng)站
  • 做網(wǎng)站所需要的項aso優(yōu)化是什么意思
  • 東莞網(wǎng)頁設(shè)計百度seo排名優(yōu)化
  • 沈陽網(wǎng)站建設(shè)報價搜索引擎優(yōu)化策略有哪些
  • 怎么做網(wǎng)站推廣知乎百度資源平臺鏈接提交
  • 太原市網(wǎng)站網(wǎng)絡(luò)廣告有哪些形式
  • wordpress cms下載滄州網(wǎng)站優(yōu)化公司
  • 怎么樣給公司做網(wǎng)站蘭州網(wǎng)絡(luò)推廣新手
  • 技術(shù)先進(jìn)的網(wǎng)站建設(shè)百度一下馬上知道
  • 武漢手機網(wǎng)站公司簡介電商網(wǎng)
  • 自建服務(wù)器網(wǎng)站備案營銷廣告文案
  • 漳州網(wǎng)站建設(shè)去博大a優(yōu)整合網(wǎng)絡(luò)營銷是什么
  • 長沙多少例新型冠狀病毒seo外包資訊
  • 網(wǎng)站建設(shè)圖片怎么做阿里云建站費用
  • 漳州市網(wǎng)站建設(shè)費用電商平臺怎么加入
  • 安徽省建設(shè)工程八大員報名網(wǎng)站營口seo
  • python做網(wǎng)站快嗎關(guān)鍵詞智能調(diào)詞工具
  • 做外貿(mào)雨傘到什么網(wǎng)站合肥網(wǎng)絡(luò)seo推廣服務(wù)
  • 網(wǎng)站在線客服系統(tǒng)搭建seo實戰(zhàn)培訓(xùn)視頻
  • php做電商網(wǎng)站app推廣接單平臺
  • 河南平臺網(wǎng)站建設(shè)找哪家怎樣進(jìn)行seo推廣
  • 網(wǎng)站開發(fā)公司云鯨互創(chuàng)怎么聯(lián)系百度搜索廣告投放
  • 免費品牌網(wǎng)站制作百度網(wǎng)絡(luò)營銷
  • 溫州網(wǎng)站建設(shè)首選龍誠互聯(lián)網(wǎng)絡(luò)營銷策略主要包括
  • 青島紀(jì)委網(wǎng)站廉政建設(shè)準(zhǔn)考證他達(dá)拉非片正確服用方法