物聯(lián)網(wǎng)10感知和網(wǎng)絡(luò)傳輸技能實訓(xùn)_第1頁
物聯(lián)網(wǎng)10感知和網(wǎng)絡(luò)傳輸技能實訓(xùn)_第2頁
物聯(lián)網(wǎng)10感知和網(wǎng)絡(luò)傳輸技能實訓(xùn)_第3頁
物聯(lián)網(wǎng)10感知和網(wǎng)絡(luò)傳輸技能實訓(xùn)_第4頁
物聯(lián)網(wǎng)10感知和網(wǎng)絡(luò)傳輸技能實訓(xùn)_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

班級:物聯(lián)網(wǎng)技術(shù)10-01 姓名:王博 學(xué)號:541013150141物聯(lián)網(wǎng)感知和網(wǎng)絡(luò)傳輸技能實訓(xùn)頁鄭州輕工業(yè)學(xué)院實訓(xùn)報告實訓(xùn)名稱:物聯(lián)網(wǎng)感知和網(wǎng)絡(luò)傳輸技能實訓(xùn)姓名:王博院(系):計算機(jī)與通信工程學(xué)院專業(yè)班級:物聯(lián)網(wǎng)技術(shù)10-01學(xué)號:541013150141指導(dǎo)教師:陳燕蘇日建李娜娜張濤成績:時間:2012年6月25日至2012年9月14日目錄1主要內(nèi)容 21.1讀卡器的介紹 21.1.1特性 21.2M1卡的學(xué)習(xí)與操作 21.2.1RF接口 31.2.2M1卡工作及通訊原理 31.3上位機(jī)管理軟件的開發(fā) 31.4個人信息的錄入與整體系統(tǒng)的測試 52實訓(xùn)心得 83附錄 83.1連接讀卡器代碼 83.2尋卡代碼 93.3數(shù)字按鍵賦值代碼 113.4充值代碼 113.5消費代碼 123.6寫入數(shù)據(jù)代碼 133.7清空數(shù)據(jù)代碼 153.8斷開連接代碼 151主要內(nèi)容1.1讀卡器的介紹MIFAREMF1是符合ISO/IEC14443A的非接觸智能卡。其通訊層(MIFARERF接口)符合ISO/IEC14443A標(biāo)準(zhǔn)的第2和第3部分。其安全層支持域檢驗的CRYPTO1數(shù)據(jù)流加密。1.1.1特性1.MIFARERF接口(ISO/IEC14443A)? 工作距離:可達(dá)100mm(取決于天線尺寸結(jié)構(gòu))? 工作頻率:13.56MHz? 快速數(shù)據(jù)傳輸:106kbit/s? 高度數(shù)據(jù)完整性保護(hù):16BitCRC,奇偶校驗,位編碼,位計數(shù)? 真正的防沖突2.EEPROM? 1Kbyte,分為16個區(qū),每區(qū)4個塊,每塊16字節(jié)。? 用戶可定義內(nèi)存塊的讀寫條件? 數(shù)據(jù)耐久性10年? 寫入耐久性10萬次以上3.安全性? 三層認(rèn)證(ISO/IECDIS9798-2)? 帶射頻通道數(shù)據(jù)加密? 每區(qū)兩個密鑰,支持密鑰分級的多應(yīng)用場合? 每卡一個全球唯一序列號? 在運輸過程中以傳輸密鑰保護(hù)對EEPROM的訪問權(quán)1.2M1卡的學(xué)習(xí)與操作MF1S50集成電路芯片內(nèi)含1KbyteEEPROM、RF接口和數(shù)字控制單元。能量和數(shù)據(jù)通過天線傳輸,卡中天線為幾匝線圈,直接連接到芯片上。.不再需要額外的組件。1.2.1RF接口–調(diào)制解調(diào)器–檢波器–時鐘發(fā)生器–上電復(fù)位–穩(wěn)壓器1.2.2M1卡工作及通訊原理命令由讀寫器發(fā)出,根據(jù)相應(yīng)區(qū)讀寫條件受數(shù)字控制單元的控制。1.呼叫(REQUESTSTANDARD/ALL)卡上電復(fù)位后,通過發(fā)送request應(yīng)答碼(ATQA符合ISO/IEC14443A),能夠回應(yīng)讀寫器向天線范圍內(nèi)所有卡發(fā)出的request命令。2.防沖突循環(huán)(ANTICOLLISIONLOOP)在防沖突循環(huán)中,讀回一張卡的序列號。如果在讀寫器的工作范圍內(nèi)有幾張卡,它們可以通過唯一序列號區(qū)分開來,并可選定以進(jìn)行下一步交易。未被選定的卡轉(zhuǎn)入待命狀態(tài),等候新的request命令。3.選卡(SELECTCARD)讀寫器通過selectcard命令選定一張卡以進(jìn)行認(rèn)證和存儲器相關(guān)操作。該卡返回選定應(yīng)答碼(ATS=08h),明確所選卡的卡型。4.三輪認(rèn)證(3PASSAUTHENTICATION)選卡后,讀寫器指定后續(xù)讀寫的存儲器位置,并用相應(yīng)密鑰進(jìn)行三輪認(rèn)證。認(rèn)證成功后,所有的存儲器操作都是加密的。5.存儲器操作認(rèn)證后可執(zhí)行下列操作:? 讀數(shù)據(jù)塊? 寫數(shù)據(jù)塊? 減值:減少數(shù)據(jù)塊內(nèi)的數(shù)值,并將結(jié)果保存在臨時內(nèi)部數(shù)據(jù)寄存器中。? 加值:增加數(shù)據(jù)塊內(nèi)的數(shù)值,并將結(jié)果保存在數(shù)據(jù)寄存器中。? 恢復(fù):將數(shù)據(jù)塊內(nèi)容移入數(shù)據(jù)寄存器。? 轉(zhuǎn)存:將臨時內(nèi)部數(shù)據(jù)寄存器的內(nèi)容寫入數(shù)值塊1.3上位機(jī)管理軟件的開發(fā)用vs或vc制作設(shè)計操作界面,圖1-1圖1-1在相應(yīng)按鈕和編輯框后加入對應(yīng)程序代碼連接設(shè)備按鈕對應(yīng)代碼,圖1-2圖1-2數(shù)字按鈕“1”對應(yīng)代碼,圖1-3圖1-3按鈕太多不再一一截圖展示另因為編輯框和列表框不需要程序代碼只需在屬性中設(shè)置屬性,在此不再截圖展示1.4個人信息的錄入與整體系統(tǒng)的測試程序開始運行界面,圖1-4圖1-4連接設(shè)備成功界面,圖1-5圖1-5連接M1卡并讀取數(shù)據(jù)成功界面,圖1-6圖1-6寫入數(shù)據(jù)成功界面,圖1-7圖1-7充值和消費成功界面,圖1-8圖1-8再次連接讀取數(shù)據(jù)成功界面,圖1-9圖1-92實訓(xùn)心得此次實訓(xùn)為期四周,但在機(jī)房實訓(xùn)總時間只有十四天,實訓(xùn)剛開始兩天老師講了些M1卡的知識就開始讓我們自己做,后來老師又講了些實用的知識,自己又在網(wǎng)上找些資料還有問老師,還有和同學(xué)討論,共同進(jìn)步,才慢慢懂得了怎么做??傮w來說實訓(xùn)期間也學(xué)到了許多知識,但由于C語言學(xué)的不好,很多代碼不會寫都是粘貼網(wǎng)上或者老師給的例子里面的代碼段,讓自己寫代碼的話還是不會。以后還是要多學(xué)學(xué)C語言。同時也讓我認(rèn)識到了團(tuán)體的力量,每人解決一個問題,放在一起就能完成一個項目。3附錄3.1連接讀卡器代碼 icdev=rf_usbinit(); if(icdev>0) {m_list.AddString("設(shè)備連接成功!"); unsignedcharstatus[19]; st=rf_get_status(icdev,status); if(st==0) {m_list.AddString((char*)status); } else {m_list.AddString("獲取版本號失敗!"); } unsignedcharkey[6]={0xff,0xff,0xff,0xff,0xff,0xff}; st=rf_load_key(icdev,0,sector,key); if(st==0) {m_list.AddString("loadkeyright!"); } else {m_list.AddString("loadkeyfail!"); } rf_beep(icdev,50); } else { m_list.AddString("連接失敗!"); }}3.2尋卡代碼 unsignedlongsnr; st=rf_card(icdev,0,&snr); if(st==0) {CStringstr; str.Format("%x",snr); m_list.AddString("rf_cardok!"); m_list.AddString(str); } else m_list.AddString("rf_carderror"); st=rf_authentication(icdev,0,sector); if(st!=0) { m_list.AddString("驗證密碼失敗!"); } if(st==0) { m_list.AddString("讀數(shù)據(jù)成功!"); } else m_list.AddString("讀數(shù)據(jù)失敗!");unsignedchardatabuff[17],databuff1[17],databuff2[17]; ZeroMemory(databuff,17); ZeroMemory(databuff1,17); //ZeroMemory(databuff2,17); st=rf_read(icdev,sector*4,databuff); st=rf_read(icdev,sector*4+1,databuff1); st=rf_read(icdev,sector*4+2,databuff2); if(st==0) { SetDlgItemText(IDC_EDIT1,(char*)databuff); SetDlgItemText(IDC_EDIT2,(char*)databuff1); SetDlgItemText(IDC_EDIT4,(char*)databuff2); //m_list.AddString((char*)databuff); m_list.AddString((char*)databuff); } else m_list.AddString("讀數(shù)據(jù)失敗!");}3.3數(shù)字按鍵賦值代碼CStringmmstr1;mmstr1=m_v;mmstr1+="1";m_v=mmstr1;UpdateData(false);3.4充值代碼{ unsignedM,N;CStringmmt,mmr; mmt=m_v.GetBuffer(16) mmr=m_n.GetBuffer(16);N=atoi(mmt); M=atoi(mmr); M+=N; SetDlgItemInt(IDC_EDIT4,M); UpdateData(); CStringrsing3=m_n.GetBuffer(16); m_list.SetCurSel(m_list.GetCount()-1); char*data3=rsing3.GetBuffer(rsing3.GetLength()); m_list.AddString(data3); m_list.SetCurSel(m_list.GetCount()-1); st=rf_write(icdev,sector*4+2,(unsignedchar*)data3); //char*data3=data.GetBuffer(data.GetLength()); if(st==0) { m_list.AddString("金額改寫成功!"); m_list.SetCurSel(m_list.GetCount()-1); } else { m_list.AddString("金額改寫失敗!"); m_list.SetCurSel(m_list.GetCount()-1); } UpdateData(false);UpdateData();m_v=""; UpdateData(false); //TODO:Addyourcontrolnotificationhandlercodehere }3.5消費代碼{unsignedM,N; CStringmmt,mmr; mmr=m_n.GetBuffer(16); mmt=m_v.GetBuffer(16);M=atoi(mmr); N=atoi(mmt); M-=N; SetDlgItemInt(IDC_EDIT4,M); UpdateData(); CStringrsing3=m_n.GetBuffer(16); m_list.SetCurSel(m_list.GetCount()-1); char*data3=rsing3.GetBuffer(rsing3.GetLength()); m_list.AddString(data3); m_list.SetCurSel(m_list.GetCount()-1); st=rf_write(icdev,sector*4+2,(unsignedchar*)data3); //char*data3=data.GetBuffer(data.GetLength()); if(st==0) { m_list.AddString("金額改寫成功!"); m_list.SetCurSel(m_list.GetCount()-1); } else { m_list.AddString("金額改寫失敗!"); m_list.SetCurSel(m_list.GetCount()-1); } UpdateData(false);UpdateData(); m_v=""; UpdateData(false); //TODO:Addyourcontrolnotificationhandlercodehere}3.6寫入數(shù)據(jù)代碼{UpdateData(); CStringrsing=m_name.GetBuffer(16); m_list.SetCurSel(m_list.GetCount()-1); char*data1=rsing.GetBuffer(rsing.GetLength()); m_list.SetCurSel(m_list.GetCount()-1); //char*data1=data.GetBuffer(data.GetLength()); st=rf_write(icdev,sector*4,(unsignedchar*)data1); UpdateData(); m_list.SetCurSel(m_list.GetCount()-1); char*data3=rsing.GetBuffer(rsing.GetLength()); m_list.SetCurSel(m_list.GetCount()-1); //char*data1=data.GetBuffer(data.GetLength()); st=rf_write(icdev,sector*4,(unsigned

溫馨提示

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

評論

0/150

提交評論