网络物联网11实训报告

时间:2024.4.27

广州城市职业学院

学生实验(训)报告

(此表可从校园网下载)

注:此表适用于课内实验、实训;学生每完成一个完整的实验(训)内容,填写一份报告,交指导教师批改。课程结束后,实验(训)报告作为教学文件由教学单位保存。

广州城市职业学院

学生实验(训)报告

(此表可从校园网下载)

注:此表适用于课内实验、实训;学生每完成一个完整的实验(训)内容,填写一份报告,交指导教师批改。课程结束后,实验(训)报告作为教学文件由教学单位保存。


第二篇:物联网10感知和网络传输技能实训


郑州轻工业学院

实 训 报 告

实训名称:     物联网感知和网络传输技能实训         

姓    名:                               

院(系):     计算机与通信工程学院          

专业班级:     物联网技术10-01               

学    号:     541013150141                  

指导教师:    陈燕  苏日建  李娜娜   张涛    

成    绩:                                    

时间: 20##年6月25日至20##年9月 14日

目录

1  主要内容. 2

1.1  读卡器的介绍. 2

1.1.1  特性. 2

1.2   M1卡的学习与操作. 2

1.2.1  RF接口. 3

1.2.2  M1卡工作及通讯原理. 3

1.3 上位机管理软件的开发. 3

1.4  个人信息的录入与整体系统的测试. 5

2  实训心得. 8

3  附录. 8

3.1 连接读卡器代码. 8

3.2  寻卡代码. 9

3.3  数字按键赋值代码. 11

3.4 充值代码. 11

3.5 消费代码. 12

3.6 写入数据代码. 13

3.7 清空数据代码. 15

3.8 断开连接代码. 15

1  主要内容

1.1  读卡器的介绍

MIFARE MF1是符合ISO/IEC 14443A的非接触智能卡。其通讯层(MIFARE RF 接口)符合ISO/IEC 14443A标准的第2和第3部分。其安全层支持域检验的CRYPTO1数据流加密。

1.1.1  特性

1. MIFARE RF 接口 (ISO/IEC 14443 A)

?  工作距离:可达100mm (取决于天线尺寸结构)

?  工作频率:13.56 MHz

?  ?快速数据传输:106 kbit/s

?  高度数据完整性保护:16 Bit CRC,奇偶校验,位编码,位计数

?  真正的防冲突

2.EEPROM

?  1 Kbyte,分为16个区,每区4个块,每块16字节。

?  用户可定义内存块的读写条件

?  数据耐久性10年

?  写入耐久性10万次以上

3. 安全性

?  三层认证(ISO/IEC DIS9798-2)

?  带射频通道数据加密

?  每区两个密钥,支持密钥分级的多应用场合

?  每卡一个全球唯一序列号

?  在运输过程中以传输密钥保护对EEPROM的访问权

1.2   M1卡的学习与操作

MF1 S50集成电路芯片内含1 Kbyte EEPROM、RF接口和数字控制单元。能量和数据通过天线传输,卡中天线为几匝线圈,直接连接到芯片上。.不再需要额外的组件。

1.2.1  RF接口

– 调制解调器

– 检波器

– 时钟发生器

– 上电复位

– 稳压器

1.2.2  M1卡工作及通讯原理

命令由读写器发出,根据相应区读写条件受数字控制单元的控制。

1. 呼叫(REQUEST STANDARD / ALL)

卡上电复位后,通过发送request应答码(ATQA 符合ISO/IEC 14443A),能够回应读写器向天线范围内所有卡发出的request 命令。

2. 防冲突循环(ANTICOLLISION LOOP)

在防冲突循环中,读回一张卡的序列号。如果在读写器的工作范围内有几张卡,它们可以通过唯一序列号区分开来,并可选定以进行下一步交易。未被选定的卡转入待命状态,等候新的request命令。

3.选卡(SELECT CARD)

读写器通过select card命令选定一张卡以进行认证和存储器相关操作。该卡返回选定应答码(ATS= 08h),明确所选卡的卡型。

4. 三轮认证(3 PASS AUTHENTICATION)

选卡后,读写器指定后续读写的存储器位置,并用相应密钥进行三轮认证。认证成功后,所有的存储器操作都是加密的。

5. 存储器操作

认证后可执行下列操作:

?  读数据块

?  写数据块

?  减值:减少数据块内的数值,并将结果保存在临时内部数据寄存器中。

?  加值:增加数据块内的数值,并将结果保存在数据寄存器中。

?  恢复:将数据块内容移入数据寄存器。

?  转存:将临时内部数据寄存器的内容写入数值块

1.3 上位机管理软件的开发

用vs或vc制作设计操作界面,图1-1

图1-1

在相应按钮和编辑框后加入对应程序代码

连接设备按钮对应代码,图1-2

图1-2

数字按钮“1”对应代码,图1-3

图1-3

按钮太多不再一一截图展示

另因为编辑框和列表框不需要程序代码只需在属性中设置属性,在此不再截图展示

1.4  个人信息的录入与整体系统的测试

程序开始运行界面,图1-4

图1-4

连接设备成功界面,图1-5

图1-5

连接M1卡并读取数据成功界面,图1-6

图1-6

写入数据成功界面,图1-7

图1-7

充值和消费成功界面,图1-8

图1-8

再次连接读取数据成功界面,图1-9

图1-9

2  实训心得

此次实训为期四周,但在机房实训总时间只有十四天,实训刚开始两天老师讲了些M1卡的知识就开始让我们自己做,后来老师又讲了些实用的知识,自己又在网上找些资料还有问老师,还有和同学讨论,共同进步,才慢慢懂得了怎么做。

总体来说实训期间也学到了许多知识,但由于C语言学的不好,很多代码不会写都是粘贴网上或者老师给的例子里面的代码段,让自己写代码的话还是不会。以后还是要多学学C语言。同时也让我认识到了团体的力量,每人解决一个问题,放在一起就能完成一个项目。

3  附录

3.1 连接读卡器代码

    icdev=rf_usbinit();

       if (icdev>0)

       {  m_list.AddString("设备连接成功!");

              unsigned char status[19];

              st=rf_get_status(icdev,status);

              if (st==0)

              {   m_list.AddString((char*)status);

              }

              else

              {   m_list.AddString("获取版本号失败!");

              }

              unsigned char key[6]={0xff,0xff,0xff,0xff,0xff,0xff};

              st=rf_load_key(icdev,0,sector,key);

              if(st==0)

              {    m_list.AddString("load key right!");

                }

              else

              {    m_list.AddString("load key fail!");

              }

              rf_beep(icdev,50);

       }

       else

       {      m_list.AddString("连接失败!");

       }

}

3.2  寻卡代码

   unsigned long snr;     

       st=rf_card(icdev,0,&snr);

       if (st==0)

       {   CString str;

               str.Format("%x",snr);

               m_list.AddString("rf_card ok!");

               m_list.AddString(str);

       }

       else

              m_list.AddString("rf_card error");

       st=rf_authentication(icdev,0,sector);

       if (st!=0)

       {      m_list.AddString("验证密码失败!");

       }

       if (st==0)

       {      m_list.AddString("读数据成功!");

       }

       else

              m_list.AddString("读数据失败!");

   unsigned char databuff[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("读数据失败!");

}

3.3  数字按键赋值代码

CString mmstr1;

mmstr1=m_v;

mmstr1+="1";

m_v=mmstr1;

UpdateData(false);

3.4 充值代码

{   unsigned M,N;

CString mmt,mmr;

    mmt=m_v.GetBuffer(16)

    mmr=m_n.GetBuffer(16);

    N=atoi(mmt);

    M=atoi(mmr);

    M+=N;

    SetDlgItemInt(IDC_EDIT4,M);

    UpdateData();

      CString rsing3=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,(unsigned char*)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: Add your control notification handler code here

   

}

3.5 消费代码

{

unsigned M,N;

    CString mmt,mmr;

    mmr=m_n.GetBuffer(16);

    mmt=m_v.GetBuffer(16);

   M=atoi(mmr);

    N=atoi(mmt);

    M-=N;

    SetDlgItemInt(IDC_EDIT4,M);

    UpdateData();

      CString rsing3=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,(unsigned char*)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: Add your control notification handler code here

}

3.6 写入数据代码

{

    UpdateData();

    CString rsing=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,(unsigned char*)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 char*)data3);

    UpdateData(false);

      UpdateData();

      CString rsing2=m_number.GetBuffer(16);

      m_list.SetCurSel(m_list.GetCount()-1);

      char*data2=rsing2.GetBuffer(rsing2.GetLength());

      m_list.AddString(data2);

      m_list.SetCurSel(m_list.GetCount()-1);

      st=rf_write(icdev,sector*4+1,(unsigned char*)data2);

      //char* data2=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);

        // TODO: Add your control notification handler code here

}

3.7 清空数据代码

{

    m_list.ResetContent();

   m_name="";

   m_number="";

   UpdateData(false);

}

3.8 断开连接代码

{

       st=rf_exit(icdev);

    if (st==0)

    {

       m_list.AddString("断开连接!");

    }

}

更多相关推荐:
物联网技术实训报告

信息工程学院物联网技术实训报告专业班级物联网A1201学号0408120xx6姓名组号实验室成绩评定老师签名20xx年06月10日一实训目的0理解智能家居网络架构及综合应用1掌握无线传感器网络节点开发调试环境搭...

物联网专业见习报告

物联网专业见习报告1.物联中国大讲堂《物联中国大讲堂》是一个科普公益性节目,由中国物联网第一门户物联中国创建,联合各大专业物联网媒体、物联网产业会员单位等,该节目实现深化认识“物联网”丰富的产业内涵,旨在解读广…

物联网实习报告

河南科技大学认识实习报告学号141404050112姓名沈成龙专业班级物联网1414班学院20xx年3月实习报告诚信承诺书本人沈成龙保证本次认识实习报告是自己独立完成的认识实习报告不会有三分之一以上的内容与其他...

物联网实验报告

物联网课程设计实验成员指导教师日期20xx73实验一LED组件一实验内容LED组件绿灯一直处于熄灭的状态红灯不停闪烁二实验步骤1将基站同电脑用烧录线连接好打开基站的开关同时将基站的烧录开关拨上去2打开Cygwi...

物联网工程系实训报告

学生实训报告册课程名称信息技术基础考证强化训练姓名学号班级文秘111指导教师实习时间20xx20xx第二学期第34周实习地点22418物联网工程系20xx年10月实训报告12345678实训报告910实训报告1...

《物联网项目综合实训》-XXX-实训报告

学生实训报告册课程名称姓名袁冬虎学号1217073117班级物联网121指导教师许常青实习时间7月2日7月11日实习地点22208物联网工程系20xx年7月2日实训报告1实训报告2实训报告3实训报告4实训报告5...

物联网工程实训报告

yyzh信息工程学院物联网工程实训报告专业班级物联网A1201学号0408120xx6姓名王强组号实验室成绩评定老师签名20xx年06月10日yyzh实训一温湿度传感器调试实训一实训目的11学习和掌握工业温湿度...

物联网应用技术专业剖析报告

物联网应用技术专业自评报告二一二年十二月1目录一专业概况3二专业设置321专业设置与定位322专业建设目标5三专业建设与改革631立体化培养个性化拓展创新人才培养模式632项目主导模块递进重构课程体系推进课程建...

物联网专业调研报告(20xx)

20xx物联网产业发展与人才需求调研报告物联网被世界公认是继计算机互联网与移动通信网之后的世界信息产业第三次浪潮物联网技术和产业的发展将引发新一轮信息技术革命和产业革命是信息产业领域未来竞争的制高点和产业升级的...

物联网信息处理实训室-调研报告

物联网信息处理实训室调研报告二零一三年八月物联网信息处理调研报告目录一现场调研11基本情况12企业调研121公司简介122物联网信息处理技术123公司产品介绍4二非现场调研51调研方式52资料来源53资料分析5...

网络调查(物联网认知)报告

江苏经贸职业技术学院网络调查报告20xx20xx学年第二学期系部信息技术系课程名称岗位认知网络调查学生姓名邱红燕学号1006010214班级10电子商务2班指导教师冯宪伟二00九年二月制信息技术系实验报告1信息...

《物联网项目综合实训》项目任务书

物联网项目综合实训任务书一项目目标通过ZigBee和GPRS技术实现根据光照情况对照明系统和路灯的实时监控和管理确保高效稳定全天候运行监控不必要的全夜灯照明有效节约电能消耗实现能源节约减少资源浪费降低费用的目的...

物联网实训报告(34篇)