魚缸溫度控制系統(tǒng)_第1頁(yè)
魚缸溫度控制系統(tǒng)_第2頁(yè)
魚缸溫度控制系統(tǒng)_第3頁(yè)
魚缸溫度控制系統(tǒng)_第4頁(yè)
魚缸溫度控制系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩118頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

魚缸溫度控制系統(tǒng)實(shí)驗(yàn)一:溫度采集與顯示1實(shí)驗(yàn)?zāi)康恼莆諟囟葌鞲衅鞯脑?、工作方式和使用方法?fù)習(xí)使用數(shù)碼管進(jìn)行字符的顯示2實(shí)驗(yàn)要求使用溫度傳感器進(jìn)行溫度的采集使用數(shù)碼管進(jìn)行溫度的顯示,要求保留小數(shù)點(diǎn)后兩位有效數(shù)字3實(shí)驗(yàn)需求與設(shè)計(jì)分析硬件需求溫度傳感器數(shù)碼管溫度傳感器選型4溫度傳感器簡(jiǎn)述發(fā)展階段分立式溫度傳感器模擬集成溫度傳感器智能溫度傳感器數(shù)字化、集成化、網(wǎng)絡(luò)化5溫度傳感器原理(一)塞貝克——熱電效應(yīng)兩種不同電導(dǎo)體或半導(dǎo)體的溫度差異而引起兩種物質(zhì)間的電壓差的熱電現(xiàn)象6熱電效應(yīng)示意圖7溫度傳感器原理(二)熱電阻導(dǎo)體的電阻隨溫度變化而改變,通過(guò)測(cè)量其阻值推算出被測(cè)量物體的溫度8制造的材料:純金屬一般工作溫度:-200℃~+500℃9其他紅外測(cè)溫輻射測(cè)溫表面波測(cè)溫......10集成溫度傳感器的分類模擬式溫度傳感器邏輯輸出溫度傳感器數(shù)字式溫度傳感器溫度傳感器的供應(yīng)商11模擬式溫度傳感器傳統(tǒng)的模擬溫度傳感器,如熱電偶、熱敏電阻和電阻溫度檢測(cè)器(RTDS)對(duì)溫度的監(jiān)控,在一些溫度范圍內(nèi)線性不好,需要進(jìn)行冷端補(bǔ)償或引線補(bǔ)償;熱慣性打,相應(yīng)時(shí)間慢。集成模擬溫度傳感器與之相比,具有靈敏度高、線性度好、響應(yīng)速度快等優(yōu)點(diǎn),而且它還將驅(qū)動(dòng)電路、信號(hào)處理電路以及必要的邏輯控制電路集成在單片IC上,有實(shí)際尺寸小、使用方便等優(yōu)點(diǎn)。常見的模擬溫度傳感器電壓輸出型和電流輸出型兩種,電壓輸出型有LM3911、LM335、LM45、AD22103、電流輸出型有AD590。12模擬溫度傳感器MAX6605(電壓輸出型)13邏輯輸出溫度傳感器在許多應(yīng)用中,我們并不需要嚴(yán)格測(cè)量溫度值,只關(guān)心溫度是否超出一個(gè)設(shè)定范圍,一旦超出所規(guī)定的范圍,則發(fā)出報(bào)警信號(hào),啟動(dòng)或關(guān)閉風(fēng)扇、空調(diào)、加熱器或其他控制設(shè)備,此時(shí)可選用邏輯輸出式溫度傳感器。LM56、MAX6501-MAX6504、MAX6509/6510是其中的典型代表。14LM56功能和引腳15數(shù)字式溫度傳感器最大特點(diǎn),直接輸出溫度的數(shù)值內(nèi)含不揮發(fā)型存儲(chǔ)器,可以設(shè)定溫度值的上限或者下限可以直接通過(guò)寄存器進(jìn)行設(shè)置工作方式常見數(shù)字溫度傳感器的數(shù)字接口:I2C、SPI、1-Wire常見代表:AD7416、DS1620、DS182016DS1620SPI接口(DQ、CLK、RST#)17溫度傳感器的比較模擬式數(shù)字式優(yōu)點(diǎn)價(jià)格便宜輸出數(shù)字信號(hào)抗干擾能力強(qiáng)多個(gè)設(shè)備同時(shí)工作缺點(diǎn)需要AD轉(zhuǎn)換電路模擬信號(hào)易被干擾價(jià)格較高18溫度傳感器的供應(yīng)商ADI公司AD74xx、AD78xx系列、ADM102x系列(數(shù)字輸出型)TM35/6/7(電壓輸出型)MAXIM&DALLASDS16XXDS18X2XMAX6509/10NS國(guó)家半導(dǎo)體公司LM76/77/83/9219溫度傳感器選型數(shù)字型價(jià)格精度要求工作范圍關(guān)鍵字“溫度傳感器”20硬件電路設(shè)計(jì)系統(tǒng)結(jié)構(gòu)框圖21DS18B20的引腳定義pin1: GNDpin2: DQ(數(shù)據(jù)通道)pin3: Vdd22引腳定義NO.PINNAME功能1GND電源接地2DQ數(shù)據(jù)的I/O口;也可以為DS18B20提供電源3Vdd電源正極,在使用DQ引腳進(jìn)行供電時(shí)(寄生電源供電時(shí)),Vdd必須接到地23DS18B20寄生電源電路24DS18B20的供電方式方式一:使用DQ引腳進(jìn)行供電——寄生電源供電25方式二:使用Vdd進(jìn)行供電——外部電源供電26開發(fā)板原理圖設(shè)計(jì)27上拉電阻R43(容易引起誤會(huì)的地方)28上拉電阻的作用:提高驅(qū)動(dòng)能力寄生電源供電時(shí)供電(當(dāng)DQ高電平時(shí))29MCU上引腳連接30P3.x內(nèi)部結(jié)構(gòu)31P3口的每一位除了普通的I/O口外,都有第二功能,功能如下圖所示通道位第二功能注釋P3.0RXD串行輸入口P3.1TXD串行輸出口P3.2INT0#外部中斷0輸入P3.3INTT1#外部中斷1輸入P3.4T0計(jì)數(shù)器0計(jì)數(shù)輸入P3.5T1計(jì)數(shù)器1計(jì)數(shù)輸入P3.6WR#外部數(shù)據(jù)RAM寫選通信號(hào)P3.7RD#外部數(shù)據(jù)RAM讀選通信號(hào)323334程序設(shè)計(jì)流程35DS18B20驅(qū)動(dòng)分析1-Wire接口讀、寫操作36DS18B20的操作過(guò)程DS18B20resetROM操作命令功能操作命令每次使用ROM命令之前都需要進(jìn)行reset操作,兩個(gè)ROM命令除外:SEARCHROM[F0h]ALARMSEARCH[ECh]37ROM命令集指令代碼READROM(讀ROM)33HMATCHROM(匹配ROM)55HSKIPROM(跳過(guò)ROM)CCHSEARCHROM(搜索ROM)F0HALARMSEARCH(警告搜索)ECH38功能命令集指令指令WRITESCRATCHPAD(寫暫存器)4EHREADSCRATCHPAD(讀暫存器)BEHCOPYSCRATCHPAD(復(fù)制暫存器)48HCONVERTTEMPERATURE(溫度轉(zhuǎn)換)44HREACALLEPROM(重新調(diào)出)B8HREADPOWERSUPPLY(讀電源)B4H39DS18B20通信流程圖40DS18B20RESET操作操作過(guò)程主設(shè)備發(fā)送reset脈沖DS18B20發(fā)送一個(gè)應(yīng)答信號(hào)presence脈沖應(yīng)答信號(hào)的作用通知主設(shè)備,有從設(shè)備掛載在1-Wire總線上表明從設(shè)備已經(jīng)準(zhǔn)備好接受數(shù)據(jù)411-Wire信號(hào)信號(hào)的分類reset信號(hào)presence信號(hào)寫'0'信號(hào)讀'0'信號(hào)寫'1'信號(hào)讀'1'信號(hào)42Reset信號(hào)&&Presence信號(hào)43unsignedcharow_reset(void){unsignedcharpresence; DQ=1; ; ; DQ=0;//pullDQlinelow ; ; delay(250);//leaveitlowfor600us delay(100); DQ=1;//allowlinetoreturnhigh delay(30);//waitforpresence40us presence=DQ;//getpresencesignal delay(100);//waitforendoftimeslot200us returnpresence;//presencesignalreturned}44寫'0'信號(hào)&&寫'1'信號(hào)45voidwrite_bit(charbitval){ DQ=1; ; ; DQ=0;//pullDQlowtostarttimeslot delay(2); if(bitval==1)DQ=1;//returnDQhighifwrite1 delay(30);//holdvalueforremainderoftimeslot65us DQ=1;}//Delayprovides16usperloop,plus24us.Thereforedelay(5)=104us46讀'0'信號(hào)&&讀'1'信號(hào)47unsignedcharread_bit(void){ unsignedchari; DQ=1; ; ; DQ=0;//pullDQlowtostarttimeslot ; ; DQ=1;//thenreturnhigh delay(1);//delay7us i=DQ; return(i);//returnvalueofDQline}48voidwrite_byte(charval){ unsignedchari; unsignedchartemp; for(i=0;i<8;i++)//writesbyte,onebitatatime { temp=val>>i;//shiftsvalright'i'spaces temp&=0x01;//copythatbittotemp write_bit(temp);//writebitintempinto } delay(30);}49unsignedcharread_byte(void){ unsignedchari; unsignedcharvalue=0; for(i=0;i<8;i++) { if(read_bit())value|=0x01<<i; delay(20);//waitforrestoftimeslotdelay45us } return(value);}50作業(yè)對(duì)驅(qū)動(dòng)程序unsignedcharread_bit(void)和voidwrite_bit(charbitval)進(jìn)行分析嘗試自己寫voidwrite_byte(charval)和unsignedcharread_byte(void)這兩個(gè)驅(qū)動(dòng)51驅(qū)動(dòng)程序unsignedcharow_reset(void);unsignedcharread_bit(void);unsignedcharread_byte(void);voidwrite_bit(charbitval);voidwrite_byte(charval);52主函數(shù)設(shè)計(jì)程序設(shè)計(jì)流程53程序初始化數(shù)碼管顯示的初始化設(shè)置工作方式設(shè)置譯碼方式溫度傳感器的初始化主設(shè)備reset脈沖18B20presence脈沖54初始化代碼數(shù)碼管的初始化 CH452_Write(CH452_SYSON2);//兩線制方式 CH452_Write(CH452_BCD); //BCD譯碼 Write_Disp(); //數(shù)碼管顯示DS18B20初始化 ow_reset();55voidWrite_Disp(){ CH452_Write(CH452_DIG0|time[0]); CH452_Write(CH452_DIG1|time[1]); CH452_Write(CH452_DIG2|time[2]); CH452_Write(CH452_DIG3|time[3]); }time[]數(shù)組的初值都是0x88,所以一開始的時(shí)候,在顯示溫度之前,最后4個(gè)數(shù)碼管是全部點(diǎn)亮的56DS18B20reset時(shí)序要求主設(shè)備拉低DQ信號(hào)至少480us;主設(shè)備釋放DQ信號(hào),并進(jìn)入接收模式;內(nèi)部上拉電阻將DQ信號(hào)拉高;DS18B20檢測(cè)到上升沿,然后等待15~60us,緊接著應(yīng)答一個(gè)60~240us的低電平57unsignedcharow_reset(void){ unsignedcharpresence; DQ=1; ; ; DQ=0; ; ; delay(250); delay(100); DQ=1; delay(30); presence=DQ; delay(100); returnpresence;}58延遲函數(shù)1voiddelays(unsignedchartimes)voiddelays(unsignedchartimes){ unsignedcharonescd=5; for(;times>0;times--) //Delay'times'second. { for(onescd=5;onescd>0;onescd--) //Delayone second. { delayms(200); } }}59延遲函數(shù)2voiddelayms(unsignedchartimes)voiddelayms(unsignedchartimes){ unsignedcharonems=CLK; unsignedcharms=200; for(;times>0;times--) { for(onems=CLK;onems>0;onems--) { ms=200; while(ms--); } }}60溫度采集1-Wire總線工作方式61溫度采集分為兩個(gè)步驟發(fā)指令,要求DS18B20采集溫度進(jìn)行轉(zhuǎn)化主設(shè)備讀取溫度寄存器(2byte)中的數(shù)據(jù)62控制DS18B20進(jìn)行溫度轉(zhuǎn)換 ow_reset();//reset write_byte(0xcc);//ROM命令write_byte(0x44);//功能命令讀取溫度 ow_reset(); write_byte(0xcc);write_byte(0xbe);

temp_lsb=read_byte();

temp_msb=read_byte();63write_byte(0xbe); //使能讀數(shù)據(jù)發(fā)送完上面這個(gè)命令之后,主設(shè)備就可以從Byte0開始連續(xù)讀取數(shù)據(jù),byte0和byte1中存放的是經(jīng)過(guò)轉(zhuǎn)換后的溫度值18B20內(nèi)存地址6418B20溫度寄存器數(shù)據(jù)格式如下圖所示其中:BIT11是符號(hào)位,用來(lái)區(qū)分零下或者零度以上溫度BIT10~BIT0存放的是轉(zhuǎn)換后的溫度數(shù)值65數(shù)據(jù)處理輸入的數(shù)據(jù)是2byte的二進(jìn)制數(shù)輸出的數(shù)據(jù)是十進(jìn)制數(shù),小數(shù)點(diǎn)后保留兩位有效數(shù)字,小數(shù)點(diǎn)前也是兩位處理過(guò)程小數(shù)部分?jǐn)?shù)據(jù)處理整數(shù)部分?jǐn)?shù)據(jù)處理66原碼、補(bǔ)碼和反碼機(jī)器數(shù)的表示原碼:將數(shù)的真值形式中“+”號(hào)用“0”表示,“-”號(hào)用“1”表示時(shí),叫做數(shù)的原碼形式,簡(jiǎn)稱原碼。反碼:對(duì)正數(shù)來(lái)說(shuō),其反碼和原碼的形式相同;對(duì)負(fù)數(shù)來(lái)說(shuō),反碼為其原碼的數(shù)值部分各位變反。補(bǔ)碼:對(duì)正數(shù)來(lái)說(shuō),其補(bǔ)碼和原碼的形式相同;對(duì)于負(fù)數(shù),補(bǔ)碼為其反碼的末位加1。67舉例68如何根據(jù)補(bǔ)碼求原碼?求解步驟:將補(bǔ)碼減去一,得到反碼將反碼各位取反,得到原碼69求原碼舉例測(cè)量到的溫度是0.5℃,求發(fā)送的2byte的數(shù)據(jù)測(cè)量到的溫度是-55℃,求發(fā)送的2byte的數(shù)據(jù)2byte的數(shù)據(jù)為0xFF5E,求現(xiàn)在的溫度2byte的數(shù)據(jù)為0x0191,求現(xiàn)在的溫度70數(shù)據(jù)處理步驟先判斷數(shù)據(jù)的符號(hào)計(jì)算小數(shù)部分計(jì)算整數(shù)部分71數(shù)據(jù)處理代碼先判斷數(shù)據(jù)的符號(hào)if(temp_msb>0x7f){ temp_lsb=~(temp_lsb-1); temp_msb=~temp_msb; Temp_Flag=1;}72計(jì)算小數(shù)部分

Temp_Decimal=(temp_lsb&0x0f)*6;計(jì)算整數(shù)部分temp_lsb=temp_lsb>>4;temp_msb=temp_msb<<4;

Temp_Integer=temp_msb|temp_lsb;73溫度的顯示通過(guò)補(bǔ)碼到原碼的轉(zhuǎn)換得到的是要顯示數(shù)據(jù)整數(shù)部分和小數(shù)部分,還要先計(jì)算要顯示的每一位,然后進(jìn)行顯示計(jì)算每一位數(shù)值 time[0]=Temp_Decimal%10; time[1]=Temp_Decimal/10; time[2]=Temp_Integer%10|0x80; time[3]=Temp_Integer/10;數(shù)碼管顯示W(wǎng)rite_Disp();74回顧程序設(shè)計(jì)流程75溫度傳感器DS18B20DS18B20是DALLAS公司生產(chǎn)的一線式數(shù)字溫度傳感器,具有3引腳TO-92小體積封裝形式;溫度測(cè)量范圍為-55℃~+125℃,可編程為9位~12位A/D轉(zhuǎn)換精度,測(cè)溫分辨率可達(dá)0.0625℃。76其他封裝形式77開發(fā)板硬件設(shè)計(jì)78DS18B20的主要技術(shù)參數(shù)供電電壓:3.0V~5.5V測(cè)量溫度范圍:-55℃~+125℃測(cè)量精度:±0.5℃(-10℃~+85℃)9~12bit存儲(chǔ)溫度數(shù)據(jù)轉(zhuǎn)換時(shí)間750ms(max)接口:1-Wirebus軟件與DS1822兼容79DS1822的主要技術(shù)參數(shù)供電電壓:3.0V~5.5V測(cè)量溫度范圍:-55℃~+125℃測(cè)量精度:±2℃(-10℃~+85℃)9~12bit存儲(chǔ)溫度數(shù)據(jù)轉(zhuǎn)換時(shí)間750ms(max)接口:1-Wirebus軟件與DS18B20兼容80DS18B20常見應(yīng)用恒溫控制消費(fèi)類電子產(chǎn)品熱傳感系統(tǒng)通風(fēng)和空調(diào)系統(tǒng)控制溫度檢測(cè)系統(tǒng)81引腳定義NO.PINNAME功能1GND電源接地2DQ數(shù)據(jù)的I/O口;也可以為DS18B20提供電源3Vdd電源正極,在使用DQ引腳進(jìn)行供電時(shí)(寄生電源供電時(shí)),Vdd必須接到地82內(nèi)部結(jié)構(gòu)框圖8364bitROMcode獨(dú)一無(wú)二的設(shè)備號(hào)總線可以掛載多個(gè)設(shè)備64-bit編碼的組成84多設(shè)備電路設(shè)計(jì)85多個(gè)設(shè)備識(shí)別SEARCHROMCommand流程圖分析SEARCHROM[F0h]8687算法過(guò)程描述1、DS18B20reset2、主設(shè)備發(fā)送ROMSEARCH[F0h]命令3、所有從設(shè)備接受到這個(gè)命令之后,都對(duì)主設(shè)備進(jìn)行響應(yīng):先發(fā)送BIT0的數(shù)據(jù)到總線上,然后再發(fā)送BIT0的反碼(取反后的數(shù)據(jù))到總線上所有設(shè)備都向總線發(fā)送數(shù)據(jù)時(shí),這些數(shù)據(jù)相當(dāng)于是一個(gè)線與的操作(也就是說(shuō),如果同時(shí)發(fā)送0和1,那么線與的結(jié)果是0,主設(shè)備接收到的數(shù)據(jù)也是0)88主設(shè)備連續(xù)接受到兩位數(shù)據(jù)后,這兩個(gè)數(shù)據(jù)可能四種情況,并分別代表不同的意義:情況一00:連接到總線上的設(shè)備的這個(gè)bit的數(shù)據(jù)不一樣,有的是‘1’,有的是‘0’,也就是說(shuō)至少有兩個(gè)設(shè)備掛載在總線上;情況二01:連接到總線上的設(shè)備的這個(gè)bit的數(shù)據(jù)相同,都是‘0’情況三10:連接到總線上的設(shè)備的這個(gè)bit的數(shù)據(jù)相同,都是‘1’情況四11:沒(méi)有設(shè)備連接到總線上894、主設(shè)備根據(jù)接收到的數(shù)據(jù)進(jìn)行響應(yīng)操作:如果是情況四,則直接退出;如果是情況三,則主設(shè)備發(fā)送1到總線上;如果是情況二,則主設(shè)備發(fā)送0到總線上;如果是情況一,則主設(shè)備發(fā)送0到總線上;(注意這種情況下實(shí)際上是發(fā)生一次選擇,我們稱之為分支)5、從設(shè)備將接收到的數(shù)據(jù)和現(xiàn)在的bit位上的數(shù)據(jù)進(jìn)行比較,如果相同,則不作處理,如果不同,則不再響應(yīng)主設(shè)備6、從設(shè)備繼續(xù)響應(yīng)主設(shè)備:發(fā)送BIT1的數(shù)據(jù)到總線上,然后再發(fā)送BIT1的反碼到總線上......90從設(shè)備一直響應(yīng)到BIT63,這樣就識(shí)別出了一個(gè)ROMcode下面開始識(shí)別第二個(gè)ROMcode:從第1步開始重新執(zhí)行,執(zhí)行到倒數(shù)最后一次分支處時(shí),這時(shí)主設(shè)備同樣面臨一次分支選擇,這次主設(shè)備選擇向總線上發(fā)送‘1’9192算法舉例:ROM1 00110101...ROM2 10101010...ROM3 11110101...ROM4 00010001...93作業(yè)1:?jiǎn)我辉O(shè)備時(shí),讀取設(shè)備號(hào),并進(jìn)行數(shù)據(jù)格式的分析作業(yè)2:簡(jiǎn)述多設(shè)備時(shí),如何進(jìn)行設(shè)備的識(shí)別94內(nèi)容回顧硬件設(shè)計(jì)部分 供電 DQ程序設(shè)計(jì)部分 程序設(shè)計(jì)流程 DS18B20操作流程 ROM命令 funtion命令 1-Wire信號(hào)時(shí)序 DS18B20驅(qū)動(dòng) 溫度的讀取過(guò)程(數(shù)據(jù)的存儲(chǔ)) 數(shù)值的處理(原碼、補(bǔ)碼、反碼) 64-bitromcode95ScratchpadMemory96Memorymap97溫度寄存器數(shù)據(jù)格式98TH和TL寄存器數(shù)據(jù)格式99警報(bào)信號(hào)的操作在DS18B20進(jìn)行一次溫度轉(zhuǎn)換之后,這個(gè)得到的溫度值將會(huì)和用戶所設(shè)置的兩個(gè)臨界值進(jìn)行比較,這兩個(gè)臨界值分別存放在1個(gè)byte的TH和TL這兩個(gè)寄存器中,最高位S用來(lái)代表這個(gè)值是正值還是負(fù)值TH和TL這兩個(gè)寄存器一個(gè)存放的是觸發(fā)警報(bào)信號(hào)的溫度上限值,一個(gè)存放的下限值,只要實(shí)際得到的溫度超過(guò)了這兩個(gè)值,就會(huì)發(fā)出警報(bào)信號(hào)(這里指修改一個(gè)警報(bào)的標(biāo)志位)如果下次轉(zhuǎn)換的溫度在設(shè)定的界限之間,則會(huì)關(guān)閉這個(gè)警報(bào)的標(biāo)志位100配置寄存器數(shù)據(jù)格式和使用方法默認(rèn)情況下R1=1;R0=1

101循環(huán)冗余校驗(yàn)字CRC循環(huán)冗余校驗(yàn)字(CRC,cyclicredundancycheck)通過(guò)計(jì)算64bitROM中的其他56bit數(shù)據(jù)得到64bitROMcode中的CRC的數(shù)值通過(guò)計(jì)算暫存器里面的Byte0~Byte7(8字節(jié))的數(shù)據(jù),得到暫存器里面CRC的數(shù)值可以用來(lái)檢驗(yàn)得到的數(shù)據(jù)是否正確,方法就是重新計(jì)算CRC的值,然后分別與ROM中的CRC或者與寄存器中CRC的值進(jìn)行比較,如果一致,說(shuō)明收到的數(shù)據(jù)沒(méi)有錯(cuò)誤,如果不一致,說(shuō)明數(shù)據(jù)有誤102為什么要數(shù)據(jù)校驗(yàn)通俗的說(shuō),就是為保證數(shù)據(jù)的完整性用一種指定的算法對(duì)原始數(shù)據(jù)計(jì)算出的一個(gè)校驗(yàn)值。接收方用同樣的算法計(jì)算一次校驗(yàn)值,如果和隨數(shù)據(jù)提供的校驗(yàn)值一樣,就說(shuō)明數(shù)據(jù)是完整的。103奇偶校驗(yàn)奇校驗(yàn):實(shí)際要發(fā)送的數(shù)據(jù)等于校驗(yàn)位(1位)+等待發(fā)送的數(shù)據(jù),實(shí)際發(fā)送的數(shù)據(jù)要滿足1的個(gè)數(shù)為基數(shù)這個(gè)性質(zhì)偶校驗(yàn):實(shí)際要發(fā)送的數(shù)據(jù)等于校驗(yàn)位(1位)+等待發(fā)送的數(shù)據(jù),實(shí)際發(fā)送的數(shù)據(jù)要滿足1的個(gè)數(shù)為偶數(shù)這個(gè)性質(zhì)104舉例105奇偶校驗(yàn)的問(wèn)題奇偶校驗(yàn):只能檢測(cè)誤碼數(shù)為奇數(shù)個(gè)的情況,如果誤碼數(shù)為偶數(shù)個(gè),則無(wú)法檢驗(yàn)106bcc異或校驗(yàn)法把所有數(shù)據(jù)都和一個(gè)指定的初始值(通常是0)異或一次,最后的結(jié)果就是校驗(yàn)值,通常把她附在通訊數(shù)據(jù)的最后一起發(fā)送出去。接收方收到數(shù)據(jù)后自己也計(jì)算一次異或和校驗(yàn)值,如果和收到的校驗(yàn)值一致就說(shuō)明收到的數(shù)據(jù)是完整的。107算法實(shí)現(xiàn)unsigneduCRC=0;for(inti=0;i<DataLenth;i++)uCRC^=Data[i];108其他校驗(yàn)方法MD5校驗(yàn)數(shù)字簽名海明校驗(yàn)109CRC的計(jì)算等式表示:?jiǎn)栴}:如何實(shí)現(xiàn)?110CRC的硬件實(shí)現(xiàn)移位寄存器+異或門111112CRC特性一如果寄存器中存放的8bit數(shù)據(jù)和即將輸入的8bit數(shù)據(jù)相同,則當(dāng)這8bit輸入結(jié)束后,寄存器中所有位都是0113CRC特性二如寄存器中的數(shù)據(jù)和即將輸入的數(shù)據(jù)(8bit)的每一位都不相同,則數(shù)據(jù)輸入結(jié)束后,寄存器里面的值一定是35h114CRC的軟件實(shí)現(xiàn)硬件實(shí)現(xiàn)CRC只是一種方法使用軟件編程也能實(shí)現(xiàn)CRC查找表(LookupTable)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論