主要内容

comm.hdlcrcgenerator

crc符号ビット生成入力へへ付加付加

说明

このhdl最最巡回コード(CRC)発生器系统对象™はは冗长コード(CRC)ビットビットをします。フレームフレーム处理HDLCRCGENERATOR系统对象はストリーミング处理し。オブジェクト,入力と出力のののストリームストリーム用にフレーム同期制御制御信号信号が

巡回冗长ビット作成には,を行います。

  1. comm.hdlcrcgeneratorオブジェクトをしそ​​のプロパティ设定します。

  2. 关数とに引数指定してを呼び出します。

系统对象のののについて,,系统对象とはを参照しください。

作成

说明

Crcgen= comm.hdlcrcgeneratorは,hdl最最适化crc発生器系统对象,Crcgenを作成。オブジェクトは,指定た生成多项式ててててててててビットビットを生成し,それらそれらをを

Crcgen= comm.hdlcrcgenerator(名称,价值1つつのと値のペア使用てを设定设定しますます。。各各プロパティ名をを一重引用引用引用符符符でで

crcgen = comm.hdlcrcgenerator('多项式',[1 0 0 0 0 1 0 0 0 0 0],...'finalxorvalue',[1 1 1 0 0 0 0 0 0 0 0 0]);
crc8多项多项多项式式とととととををををををををに

Crcgen= comm.hdlcrcgenerator(poly,,,,名称,价值は,多项式プロパティをpolyに设定指定ののプロパティはのに设定しています。

プロパティ

すべて展开する

特に指定ない,はははは调整不可能可能です。オブジェクト呼び出し后に値ことはできません。オブジェクトオブジェクトは呼び出すととロックされれ,,,ロック发布を使用し。

プロパティが“调整”の场合そのをいつで変更できます。

プロパティ値変更の详细,,系统对象をmatlabでででシステム设计设计设计を参照しください。

を降べきにしたベクトルベクトルとしてされた项式。。ベクトルベクトルベクトルのののの长长ささはは多项式次数ににににににににをををををを

シフトレジスタ条件倍精度または単精スカラーまたはベクトルで指定しますます。このプロパティプロパティをベクトルとしてとして指定指定指定する多项式プロパティ指定多项式の次数ですこのプロパティスカラー指定する场合场合,,オブジェクトオブジェクトオブジェクトはは,そのそのを生成多多项式项式のの次数次数に

チェックサムの计算。スカラースカラー指定ます。このがが真的crcチェックサムチェックサムのに直接が使用されます。。

直接アルゴリズム非直接の详细は,巡回冗长検查符号を参照しください。

入力のバイト。スカラースカラー指定ます。このがが真的のときはレジスタをする前にデータバイト単位で反転し。。

チェックサムの顺。スカラースカラー指定ます。ががが真的CRCチェックサムををををををををを度度します。。。

チェックサム。または単精度型ののまたはまたはででますます。。オブジェクトオブジェクトははは入力入力にににチェックサムチェックサムをを追加追加するする前前,,このこのこの値のをベクトル指定场合,ベクトル长,,多项式プロパティ指定多项式の次数ですこのプロパティスカラー指定する场合场合,,オブジェクトオブジェクトオブジェクトはは,そのそのを生成多多项式项式のの次数次数に

使用法

说明

[[y,,,,开始,,,,结束,,,,有效] = crcn(X,,,,Startin,,,,终结,,,,验证は制御に基づいてメッセージメッセージXCRCチェックサムチェックサム生成,チェックサムをををXの末尾付加します。

入力引数

すべて展开する

入力。ベクトル,复数ビットをスカラー整数指定します。たとえばたとえば入力入力入力[0,0,0,1,0,0,1,1]は,UINT8入力19と等価です。

logical logical logical logicalにににににに。。入力がスカラーのの场合场合,,,データデータ型は符号符号符号なしなし整数整数整数整数あるいはあるいはあるいはあるいはあるいはあるいは小数小数小数ビットがががががががががががががががががががががががががががががががががががががががががfi([],0,n,0))になります。

Xは符号するの一部全体となります。

Xcrcのの长さ以下で,,,のの长ははXの长のでなけれなりません。

CRCの长は,多项式プロパティでする多项の次数です。

データ::双倍的|UINT8|UINT16|UINT32|逻辑|未签名的fi

入力メッセージの。スカラースカラー指定し。。。

入力メッセージの。スカラースカラー指定し。。。

入力データ有效性。スカラースカラー指定し。。。验证が1(1真的)の场合オブジェクトは入力XCRCチェックサムチェックサム计算し。。。

出力引数

すべて展开する

出力メッセージチェックサムが付加たたXで构成さ,入力Xと同じデータを持つスカラー整数列ベクトルとして返され。

入力メッセージの。スカラースカラー返され。。。

入力メッセージの。スカラースカラー返され。。。

入力データ有效性。スカラースカラー返され。。。有效が1(1真的)のとき,データyは有效です。

オブジェクト关数

系统对象ををににははををの引数として指定し。,,,OBJ系统对象ののシステムリソース解放するには次の构文をします。。

释放(OBJ)

すべて展开する

系统对象のアルゴリズムの実行
发布 リソースを解放,系统对象のプロパティ入力特性変更を可能し。。。
重置 系统对象の内部状态リセット

すべて折りたたむ

hdl最crc発生発生検出器器器器器をををて化化およびおよび复号复号化化します。この例,,,はは,コードコード

32ビットビットメッセージメッセージをををつつつののビット列でし。。。

msg = randi([0 1],16,2);

12 12のの调整调整ためためのステップ実行実行すべてすべてすべてのののステップステップステップにににに制御制御信号をを割り当て割り当てますますます。。最初ののののつのつのつのつの

numsteps = 12;startin =逻辑([1 0 0 0 0 0 0 0 0 0 0 0 0 0 0]);endin =逻辑([0 1 0 0 0 0 0 0 0 0 0 0 0 0 0]);valion =逻辑([1 1 0 0 0 0 0 0 0 0 0 0 0 0 0]);

入力メッセージ处理中に,HDLCRCGENERATORSystem Object™にランダムを渡します。ステップステップステップステップステップ10でで,な入力ははは0であるためランダムは符号されません。

randin = randi([0,1],16,numSteps-2);datain = [msg randin];

系统对象™ををて呼び出す关数を记述ます。これらからからからからからからからからからををををを生成できできますますます。。発生発生器器器器オブジェクトオブジェクトオブジェクトオブジェクトとととととと検出検出検出検出検出検出。

功能[dataOut,stint,endout,valifout] = hdlcrc16gen(datain,startin,endin,valion)%HDLCRC16GEN%使用Comm.hdlcrcgenerator系统对象(TM)生成CRC校验和%数据是二进制列向量。%startin,endin和varyin是逻辑标量值。%您可以从此功能生成HDL代码。执着的CRCG16;如果ISEMPTY(CRCG16)CRCG16 = Comm.hdlcrcgenerator()结尾[dataOut,startOut,endout,validout] = crcg16(datain,startin,endin,varicin);结尾
功能[dataOut,stint,endout,validout,err] = hdlcrc16det(datain,startin,endin,validin)%HDLCRC16DET%使用COMM.HDLCRCDETECTOR系统对象(TM)检查CRC校验和%数据是二进制列向量。%startin,endin和varyin是逻辑标量值。%您可以从此功能生成HDL代码。执着的CRCD16;如果ISEMPTY(CRCD16)CRCD16 = COMM.HDLCRCDETECTOR()结尾[dataOut,stint,endout,validout,err] = crcd16(datain,startin,endin,varicin);结尾

crc発生关数呼び出します符号化れたメッセージは,元元ののメッセージメッセージメッセージメッセージとととと

为了i = 1:numSteps [dataoutgen(:,i),stintoutgen(i),endoutgen(i),valifutgen(i)] =...hdlcrc16gen(逻辑(datain(:i)),startin(i),endin(i),varyin(i));结尾
crcg16 = comm.hdlcrcgenerator具有属性:多项式:[1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1] initialstate:0 directMethod:false Reflecthod:false Reflectust:false RefflectCheckSum:false RefflectCheckSum:false fensxorvalue:0

メッセージ内を反転てノイズをし。。。

dataoutnoise = dataoutgen;dataoutnoise(2,4)= 〜Dataoutnoise(2,4);

crc検出关数呼び出し。器出力,が削除された入力メッセージです。。チェックサムチェックサムがが,,フラグはのの単语设定されます。

为了i = 1:numSteps [dataout(:i),startout(i),endout(i),有效out(i),err(i)] =...hdlcrc16det(逻辑(dataoutnoise(:i)),strotoutgen(i),endoutgen(i),validoutgen(i));结尾
crcd16 = Comm.hdlcrcdetector具有属性:多项式:[1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1] initialstate:0 directMethod:false Reflecthod:false Reflectust:false RefflectCheckSum:false RefflectChecksum:false fensxorvalue:0

ロジックアナライザーを使用て入力と出力信号表示します。

频道= {“验证”,,,,'startin',,,,'endin',,,,...{“数据”,,,,“ radix”,,,,“十六进制”},,...'有效奥特根',,,,'Startoutgen',,,,'endoutgen',,,,...{'dataoutgen',,,,“ radix”,,,,“十六进制”},,...{“ dataoutnoise”,,,,“ radix”,,,,“十六进制”},,...“有效”,,,,'开始',,,,“结束”,,,,'呃',,,,...{“ dataout',,,,“ radix”,,,,“十六进制”}};la = dsp.logicanalyzer('姓名',,,,“ CRC编码和解码”,,,,'numInputports',长度(频道),...'背景颜色',,,,'黑色的',,,,'displayChannelHeight',8);为了II = 1:长度(通道)如果iscell(channels {ii})%显示数据信号作为十六进制整数c = channels {ii};ModifyDisplayChannel(LA,II,'姓名',c {1},c {2},c {3})%将二进制列矢量转换为整数cval = eval(c {1});dat2 = uint16(bit2int(cval,size(cval,1)))');chandata {ii} = squeeze(dat2);别的ModifyDisplayChannel(LA,II,'姓名',channels {ii})chandata {ii} = squeeze(estar(cannelels {ii})');结尾结尾la(chandata {:})

アルゴリズム

すべて展开する

拡张机能

バージョン履歴

R2012Aで导入

参考

オブジェクト

ブロック