chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

CRC-16公式是什么?如何利用單片機(jī)去驗(yàn)證呢

通信工程師專輯 ? 來(lái)源:通信工程師專輯 ? 作者:了凡三訓(xùn) ? 2022-11-09 10:14 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、實(shí)驗(yàn)?zāi)康?/p>

1、完成CRC-16的程序編寫(xiě)

2、根據(jù)模板整改,實(shí)現(xiàn)函數(shù)調(diào)用

3、在程序中不可以出現(xiàn)長(zhǎng)數(shù)組

4、利用單片機(jī)驗(yàn)證

二、CRC-16校驗(yàn)

CRC-16公式是什么?

94e074a0-5f59-11ed-8abf-dac502259ad0.png

上堂課提到了哦!

再來(lái)看看框圖是什么樣子?

94f535e8-5f59-11ed-8abf-dac502259ad0.png


每個(gè)小框都是一個(gè)寄存器

CRC即循環(huán)冗余校驗(yàn)碼(Cyclic Redundancy Check):是數(shù)據(jù)通信領(lǐng)域中最常用的一種差錯(cuò)校驗(yàn)碼,其特征是信息字段和校驗(yàn)字段的長(zhǎng)度可以任意選定。

生成步驟如下:

1、將x的最高次冪為R的生成多項(xiàng)式G(x)轉(zhuǎn)換成對(duì)應(yīng)的R+1位二進(jìn)制數(shù)。

2、將信息碼左移R位,相當(dāng)于對(duì)應(yīng)的信息多項(xiàng)式C(x)*x的R次方。

3、用生成多項(xiàng)式(二進(jìn)制數(shù))對(duì)信息碼做除,得到R位的余數(shù)。

4、將余數(shù)拼到信息碼左移后空出的位置,得到完整的CRC碼。

三、實(shí)驗(yàn)程序

1、調(diào)用函數(shù)

這里完成的是寄存器生成法,同樣的根據(jù)模板,主要的是調(diào)用函數(shù)的編寫(xiě)。

調(diào)用函數(shù)首先要進(jìn)行調(diào)用函數(shù)名的定義

function z = crc16(message)

接下來(lái)是寄存器的編寫(xiě),一開(kāi)始寄存器的初始值都為0,為了程序的簡(jiǎn)明,根據(jù)實(shí)驗(yàn)要求不可以出現(xiàn)長(zhǎng)數(shù)組,只能出現(xiàn)一個(gè)數(shù)組。

a=zeros(1,16)

zeros函數(shù)是全零矩陣,所以滿足要求。

根據(jù)公式和框圖就可直接寫(xiě)出每個(gè)寄存器的等式,這時(shí)候就要注意框圖中的箭頭方向,最重要的是要在最前面先定義第一個(gè)寄存器。

第一個(gè)寄存器里的數(shù)據(jù)是第十六個(gè)寄存器和輸入數(shù)據(jù)的第一個(gè)值的異或,尤為關(guān)鍵。后面的編寫(xiě)就比較簡(jiǎn)單,只要注意一一對(duì)應(yīng)就好。同時(shí)crc是一個(gè)循環(huán)碼,這里就要使用for循環(huán)。循環(huán)的次數(shù)由輸入比特?cái)?shù)決定。

函數(shù)的最后還要把完整的寄存器寫(xiě)上。

z=[a(16),a(15),a(14),a(13),a(12),a(11),a(10),a(9),a(8),a(7),a(6),a(5),a(4),a(3),a(2),a(1)];

2、主函數(shù)

在寫(xiě)主函數(shù)之前先要把調(diào)用的函數(shù)寫(xiě)上,后面的程序才能夠使用。

在這里應(yīng)用的是randi函數(shù)

randi是matlab中能產(chǎn)生均勻分布的偽隨機(jī)整數(shù)的新函數(shù)。

主要語(yǔ)法:

randi(iMax)在開(kāi)區(qū)間(0,iMax)生成均勻分布的偽隨機(jī)整數(shù)
randi(iMax,m,n)在開(kāi)區(qū)間(0,iMax)生成m*n型隨機(jī)矩陣
randi([iMin,iMax],m,n)在開(kāi)區(qū)間(iMin,iMax)生成m*n型隨機(jī)矩陣

相似的還有rand函數(shù)和randn。

rand 生成均勻分布的偽隨機(jī)數(shù)。分布在(0~1)之間

主要語(yǔ)法:

rand(m,n)生成m行n列的均勻分布的偽隨機(jī)數(shù)
rand(m,n,'double')生成指定精度的均勻分布的偽隨機(jī)數(shù),參數(shù)還可以是'single'
rand(RandStream,m,n)利用指定的RandStream(我理解為隨機(jī)種子)生成偽隨機(jī)數(shù)
randn 生成標(biāo)準(zhǔn)正態(tài)分布的偽隨機(jī)數(shù)(均值為0,方差為1)主要語(yǔ)法和rand函數(shù)一致。

dec2hex函數(shù)

功能:把一個(gè)十進(jìn)制數(shù)轉(zhuǎn)換成一個(gè)字符串形式表示的十六進(jìn)制數(shù)。

語(yǔ)法格式:

str = dec2hex(d)把十進(jìn)制整數(shù)d轉(zhuǎn)換成16進(jìn)制形式表示, 并存在一個(gè)字符串中。d必須是一個(gè)非負(fù)的比2^52次方小的整數(shù)。

str = dec2hex(d, n)指定十六進(jìn)制數(shù)的位數(shù),n就是指定的位數(shù)例如:dec2hex(255)ans =FF;dec2hex(255, 6)ans =0000FF

之后的程序就是將生成的數(shù)據(jù)寫(xiě)入指定的文件里面。

data_hex = dec2hex(data_16);

fid = fopen('data_hex.txt', 'wt');

fprintf(fid, '%s ', data_hex);

fclose(fid);

data_binary1=dec2bin(data_binary);

fid = fopen('data_bin.txt', 'wt');

fprintf(fid, '%s ', data_binary1);

fclose(fid);

result_hex = dec2hex(result_16);

fid = fopen('result_hex.txt', 'wt');

fprintf(fid, '%s ', result_hex);

fclose(fid);

3、單片機(jī)驗(yàn)證

單片機(jī)是利用串口接收數(shù)據(jù),處理后回傳給電腦

在MATLAB里直接寫(xiě)入1011001001011010,則有data_bin文件的1011001001011010,data_hex文件的B25A,result_hex文件的83D0。

傳入單片機(jī)的數(shù)據(jù)是data_bin文件中的,相關(guān)的數(shù)據(jù)在單片機(jī)里進(jìn)行運(yùn)算,得到的如下圖所示。

952c3070-5f59-11ed-8abf-dac502259ad0.jpg

MATLAB數(shù)據(jù)結(jié)果!

955426d4-5f59-11ed-8abf-dac502259ad0.png

兩者的數(shù)據(jù)相同,也就驗(yàn)證了CRC校驗(yàn)程序正確。

小結(jié):現(xiàn)在MATLAB程序已經(jīng)能夠熟練應(yīng)用了,就是要多做才能熟練。但是單片機(jī)這塊還是挺薄弱的,能夠讀懂程序但是不能完整的獨(dú)立編寫(xiě)。單片機(jī)比MATLAB復(fù)雜多了,這是現(xiàn)在最大的感觸。但是我想至少能讀懂,能寫(xiě)一些,然后每次多會(huì)一點(diǎn)知識(shí)就好。還是要加油。


審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6076

    文章

    45476

    瀏覽量

    669477
  • matlab
    +關(guān)注

    關(guān)注

    189

    文章

    3023

    瀏覽量

    238551
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5607

    瀏覽量

    129835
  • CRC-16
    +關(guān)注

    關(guān)注

    0

    文章

    5

    瀏覽量

    7756

原文標(biāo)題:計(jì)算機(jī)通信與網(wǎng)絡(luò)v2 實(shí)驗(yàn)課程(9)

文章出處:【微信號(hào):gh_30373fc74387,微信公眾號(hào):通信工程師專輯】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    如何入門單片機(jī)/嵌入?

    大一學(xué)的單片機(jī),本科玩了幾年嵌入,做過(guò)智能家居,智能小車,示波器,開(kāi)關(guān)電源等等,后來(lái)工作(本人芯片行業(yè))以后就沒(méi)搞了,但是這段時(shí)間積累的經(jīng)驗(yàn),可以讓整個(gè)職業(yè)生涯受益。 單片機(jī)相對(duì)來(lái)說(shuō)更容易了解
    發(fā)表于 02-02 06:57

    芯源循環(huán)冗余校驗(yàn)(CRC)功能

    ? 3 種輸入數(shù)據(jù)位寬:8bit、16bit、32bit ? 3 種多項(xiàng) CRC-16 多項(xiàng)1:x16 + x15 + x2 + 1
    發(fā)表于 01-12 06:07

    單片機(jī)位數(shù)的思考(8位、16位、32位)

    ~4294967295,即每次參與運(yùn)算的數(shù)據(jù)最大不能超過(guò)4294967295。 8位、16位、32位與單片機(jī)的性能密切相關(guān),通常32位機(jī)的性能要高于16
    發(fā)表于 11-21 08:31

    嵌入單片機(jī)定義及區(qū)別

    單片機(jī),即嵌入式微控制器MCU,是嵌入系統(tǒng)的核心組成部分。除此之外,嵌入處理器還包括嵌入DSP處理器、嵌入式微處理器MPU、嵌入片上
    發(fā)表于 11-17 08:11

    單片機(jī)和嵌入,到底是什么關(guān)系?

    很多人初次接觸嵌入開(kāi)發(fā)時(shí),都會(huì)聽(tīng)到一句話:“嵌入其實(shí)就是單片機(jī)?!笨僧?dāng)你真正開(kāi)始學(xué)習(xí)時(shí),會(huì)發(fā)現(xiàn)嵌入單片機(jī)雖然經(jīng)?!袄墶痹谝黄鹛?,但
    的頭像 發(fā)表于 11-14 10:28 ?1342次閱讀
    <b class='flag-5'>單片機(jī)</b>和嵌入<b class='flag-5'>式</b>,到底是什么關(guān)系?

    CRC校驗(yàn)的原理和應(yīng)用

    )。 計(jì)算復(fù)雜度較高:涉及二進(jìn)制多項(xiàng)除法,但可通過(guò)查表法(Lookup Table)優(yōu)化。 長(zhǎng)度靈活:常用 CRC-8、CRC-16CRC-32、
    發(fā)表于 11-14 06:48

    CRC校驗(yàn)的本質(zhì)和物理意義

    校驗(yàn)的數(shù)學(xué)本質(zhì) 1. 模2除法與多項(xiàng)表示 Modbus RTU采用的CRC-16算法基于多項(xiàng)除法運(yùn)算,其核心特征包括: 生成多項(xiàng):0x8005(標(biāo)準(zhǔn)表示)或0xA001(查表法優(yōu)
    發(fā)表于 11-13 07:58

    8種常用的CRC算法分享

    CRC 計(jì)算單元可按所選擇的算法和參數(shù)配置來(lái)生成數(shù)據(jù)流的 CRC 碼。有些應(yīng)用中,可利用 CRC 技術(shù)來(lái)驗(yàn)證數(shù)據(jù)的傳輸和存儲(chǔ)的完整性。 8
    發(fā)表于 11-13 07:25

    浮思特 | ABOV 32位單片機(jī)的技術(shù)演進(jìn)與行業(yè)應(yīng)用解析

    隨著科技的不斷進(jìn)步,單片機(jī)(MCU)已經(jīng)從最初的8位和16位時(shí)代,逐步邁向了32位的時(shí)代。32位單片機(jī)的高性能和廣泛適應(yīng)性,使其成為未來(lái)嵌入系統(tǒng)和智能硬件的核心驅(qū)動(dòng)力量。特別是在家電
    的頭像 發(fā)表于 09-01 09:56 ?836次閱讀
    浮思特 | ABOV 32位<b class='flag-5'>單片機(jī)</b>的技術(shù)演進(jìn)與行業(yè)應(yīng)用解析

    單片機(jī)用什么封裝

    。深圳市安凱星科技有限公司在為拓邦、朗科、安徽龍多等客戶開(kāi)發(fā)方案時(shí),會(huì)根據(jù)項(xiàng)目場(chǎng)景精準(zhǔn)選擇封裝類型,確保性能與實(shí)用性平衡。 常見(jiàn)單片機(jī)封裝類型及特點(diǎn) DIP 封裝:直插的經(jīng)典之選 DIP(雙列直插封裝)是最基礎(chǔ)的單片機(jī)封裝
    的頭像 發(fā)表于 08-01 13:47 ?1278次閱讀

    單片機(jī)的儲(chǔ)存優(yōu)點(diǎn)是什么

    單片機(jī)作為嵌入系統(tǒng)的核心,其儲(chǔ)存系統(tǒng)是實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)與程序運(yùn)行的關(guān)鍵部分。與獨(dú)立存儲(chǔ)芯片相比,單片機(jī)的儲(chǔ)存單元在集成度、功耗、可靠性等方面具備獨(dú)特優(yōu)勢(shì),這些優(yōu)點(diǎn)使其能適應(yīng)從消費(fèi)電子到工業(yè)控制的多樣化
    的頭像 發(fā)表于 07-31 10:09 ?670次閱讀

    怎么測(cè)單片機(jī)系統(tǒng)頻率

    單片機(jī)系統(tǒng)頻率是指單片機(jī)工作時(shí)的時(shí)鐘頻率,它直接影響單片機(jī)的運(yùn)行速度和處理能力,準(zhǔn)確測(cè)量系統(tǒng)頻率對(duì)單片機(jī)應(yīng)用開(kāi)發(fā)、程序調(diào)試和性能優(yōu)化具有重要意義。測(cè)量
    的頭像 發(fā)表于 07-25 11:39 ?744次閱讀

    單片機(jī)怎么驅(qū)動(dòng)電機(jī)?

    在各類自動(dòng)化設(shè)備和智能裝置中,電機(jī)是重要的執(zhí)行部件,而單片機(jī)作為控制核心,需要通過(guò)特定的方式驅(qū)動(dòng)電機(jī)運(yùn)轉(zhuǎn)。單片機(jī)驅(qū)動(dòng)電機(jī)并非直接連接即可,而是要根據(jù)電機(jī)類型和功率,搭配合適的驅(qū)動(dòng)電路,才能實(shí)現(xiàn)穩(wěn)定
    的頭像 發(fā)表于 07-25 09:31 ?856次閱讀

    單片機(jī)怎么燒程序

    單片機(jī)燒程序是將編寫(xiě)好的程序代碼寫(xiě)入單片機(jī)內(nèi)部存儲(chǔ)單元,讓單片機(jī)按照預(yù)設(shè)邏輯工作的過(guò)程,是單片機(jī)應(yīng)用開(kāi)發(fā)中不可或缺的環(huán)節(jié)。無(wú)論是簡(jiǎn)單的燈光控制程序,還是復(fù)雜的工業(yè)控制算法,都需要通過(guò)燒
    的頭像 發(fā)表于 07-23 11:47 ?1156次閱讀

    單片機(jī)科普總結(jié),建議收藏!

    單片機(jī)(MicrocontrollerUnit,MCU)作為嵌入系統(tǒng)的核心之一,在現(xiàn)代電子產(chǎn)品中無(wú)處不在。從智能家居、汽車電子,到工業(yè)控制、醫(yī)療設(shè)備,單片機(jī)支撐著無(wú)數(shù)智能化應(yīng)用的發(fā)展。對(duì)于初學(xué)者
    的頭像 發(fā)表于 04-07 11:58 ?5433次閱讀
    <b class='flag-5'>單片機(jī)</b>科普總結(jié),建議收藏!