物联网工程系实训报告

时间:2024.4.20

学生实训报告册

课程名称: 信息技术基础考证强化训练  

姓       名       ***      

学       号    **********                    

班       级    文秘111                      

指 导 教 师     *     *   

实 习 时 间 20##-2013第二学期第3-4周             

实 习 地 点      22418                         

物联网工程系

20##年   10 月


实训报告

实训报告


实训报告


第二篇:实训报告物联网技术11-1姓名


实 训 报 告

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

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

目 录

1 需求说明

食堂餐卡系统需求说明

2 功能描述

食堂餐卡系统功能描述

3 系统设计及实现

4 实训心得

5 附录(代码)

1 需求说明

食堂餐卡系统需求说明

(1) 完成售饭终端的软件设计。

(2) 实现M1卡的信息录入与修改。

(3) 整个系统运行稳定。

(4) 报告书写规范。

2 功能描述

食堂餐卡系统功能描述

(1) 读卡器芯片的学习与使用。

 Mifare1S50非接触式智能卡片有着16个Sector(扇区);每个Sector包含4个Block(块);每个Block具有16个byte的存储容量。Sector被定义为Sector0至Sector15;Block被分为Block0至Block3;整个Mifare1S50非接触式智能卡共有64个Block。

  Sector0中的Block0记录了该张智能卡的序列号(SerialNumber)以及生产厂商的标志信息等,这些信息已在卡片出厂时固化,不能更改。因此该Block不能再复用为应用数据块。

  每个Sector中的Block3被特别用来存放对该Sector中应用块Block0,1,2及其本身Block3进行数据存取的密码及存取权限。整个Mifare1S50非接触式智能卡共有16个Block3。根据绝对地址编址,他们可被编为Block3(在Sector0中),Block7(在Sector1中),Block11(在Sector2中),以及Block63(在Sector15中)等等。

  对于某一Sector中的Block3的绝对地址编址可以由下列公式计算得到:

  Block X=(N+1)*4-1

  其中:X:绝对地址编址的Block块号

     N:Sector扇号,0至15

  通常每个扇区的Block0,1,2都存放着非常保密的数据,例如坐公交车/出租车前在公交公司指定地点已购买的车资钱款,智能大厦/智能小区进出时所需的控制信息,股票交易时持有股票交易智能卡片者必须对已存放在智能卡中的交易密码数据(例如帐户、存款信息、已买进股票数量/品种等等)进行确认,才能得以股票交易,等等。

  由于每一个Block3中包含了该扇区的密码字节以及对该扇区中其余Block0,1,2进行数据处理的存取控制权限字节,因此如何操作处理Block3将是很重要的内容。以下将展开对每个扇区的Block3进行研究。

  Block3有16个byte组成。前6个字节是密码A(KEYA),KEYA的缺省值可能为“A0A1A2A3A4A5”;最后6个字节是密码B(KEYB),KEYB的缺省值可能为“B0B1B2B3B4B5”;中间4个字节是控制字节,缺省值可能为“FFH07H80H69H”;利用KEYA或KEYB并遵守早已定义在4个控制字节中的存取条件,我们便能对该密码(KEYA或KEYB)所对应的Sector内的应用块Block0,1,2进行数据读/写/更新等操作。

  由于非接触式智能卡的操作,包括数据流的传递等都是以“非接触”方式来完成的,因此在MCU与非接触式智能卡之间必须有一个传递密码(或数据流)的中间媒体,即ASIC模块。RC150/170就是这样一种ASIC模块。它担负着非接触式智能卡与MCU(微处理机)之间所有的密码/数据相互传递的重要任务。对非接触式智能卡进行密码操作,变成对RC150/170ASIC模块进行密码操作。RC150/170ASIC模块与非接触式智能卡之间的信息传递(包括密码等)对用户来说是透明的,会自动传递并完成。因此如何对非接触式智能卡进行“密码操作”(对Block3的操作)变成如何对RC150/170ASIC模块进行密码操作。Philips公司的MCM200模块,MCM500模块或SB201,SB601(Uni-VisionEngineeringLtd.的产品)模块中都包含有RC150/170ASIC模块,因此本文所讨论的内容,包括下面设计的程序等,也适用于这些模块。RC170是RC150的新一代ASIC模块,速度较快。

(2) M1卡的学习与操作。

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

非接触能源和数据传递

在MIFARE卡中,芯片连接到一个几匝的天线线圈上,并嵌入塑料中,形成了一个无源的非接触卡。不需要电池。当卡接近读写器天线时,高速的RF通讯接口将以106 kBit/s 的速率传输数据。

通讯原理

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

图(1)通信原理

存储器读写

必须如前所述,先选定卡并通过认证,才能执行存储器操作。

图(2)存储器读写

3 系统设计及实现

(1)打开VC,建立界面:

(2)编写程序:

图(4)编写的主面板

(3)个人信息的录入与整体系统的测试。

设备连接:

图(5)设备连接

写入数据:

图(6)数据写入

读取数据

图(7)数据读取

进行消费与充值

图(8)消费

图(9)充值

4 实训心得

通过实训中心老师的课堂讲解, 使我加深了对自己专业的认识。从而确定自己以后的努力方向。要想在短暂的实训时间内,尽可能多的学到东西,就需要我们跟老师或同学进行很好的沟通,加深彼此的了解。只有我们跟老师多沟通,让老师更了解我们,才能跟真切的对我们进行培训工作。由此,班级的文化“共享”就在生活中慢慢形成了。“纸上得来终觉浅,绝知此事要躬行!”在这短短的时间里,让我深深的感觉到自己在实际应用中所学专业知识的匮乏。让我真真领悟到“学无止境”这句话的涵义。而老师在专业认识周中所讲的,都是课本上没有而对我们又非常实用的东西,这又给我们的实训增加了浓墨淡采的光辉。我懂得了实际生活中,专业知识是怎样应用与实践的。在这些过程中,我不仅知道了职业生涯所需具备的专业知识,而且让我深深体会到一个团队中各成员合作的重要性,要善于团队合作,善于利用别人的智慧,这才是大智慧。靠单一的力量是很难完成一个大项目的,在进行团队合作的时候,还要耐心听取每个成员的意见,使我们的组合达到更加完美。这次实训带给我太多的感触,它让我知道工作上的辛苦,事业途中的艰辛。让我知道了实际的工作并不像在学校学习那样轻松。人非生而知之,虽然我现在的知识结构还很差,但是我知道要学的知识,一靠努力学习,二靠潜心实践。没有实践,学习就是无源之水,无本之木。这次实训让我在一瞬间长大:我们不可能永远呆在象牙塔中,过着一种无忧无虑的生活,我们总是要走上社会的,而社会,就是要靠我们这些年轻的一代来推动。这就是我们不远千里来实训的心得和感受,而不久后的我,面临是就业压力,还是继续深造,我想我都应该好好经营自己的时间,充实、完善自我,不要让自己的人生留下任何空白!

5 附录(代码)
几个重要程序代码:厂商自带代码HANDLE icdev;

int st;

int sector=1;

BOOL CMyDlg::OnInitDialog()

{

CDialog::OnInitDialog();

// Add "About..." menu item to system menu.

// IDM_ABOUTBOX must be in the system command range.

ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);

ASSERT(IDM_ABOUTBOX < 0xF000);

CMenu* pSysMenu = GetSystemMenu(FALSE);

if (pSysMenu != NULL)

{

CString strAboutMenu;

strAboutMenu.LoadString(IDS_ABOUTBOX);

if (!strAboutMenu.IsEmpty())

{

pSysMenu->AppendMenu(MF_SEPARATOR);

pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);

}

}

// Set the icon for this dialog. The framework does this automatically

// when the application's main window is not a dialog

SetIcon(m_hIcon, TRUE); // Set big icon

SetIcon(m_hIcon, FALSE); // Set small icon

icdev=rf_usbinit();

if (icdev>0)

{

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

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

unsigned char status[19];

st=rf_get_status(icdev,status);

if (st==0)

{

m_list.AddString((char*)status);

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

}

else

{

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

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

}

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!");

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

}

else

{

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

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

}

rf_beep(icdev,50);

}

else

{

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

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

}

// TODO: Add extra initialization here

return TRUE; // return TRUE unless you set the focus to a control

}

寻卡的代码是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.SetCurSel(m_list.GetCount()-1);

m_list.AddString(str);

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

}

else

m_list.AddString("rf_card error");

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

st=rf_authentication(icdev,0,sector);

if (st!=0)

{

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

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

}

软件盘上的button代码如1

CString mmstr1;

mmstr1=m_Yue;

mmstr1+="1";

m_Yue=mmstr1;

UpdateData(false);

充值与消费中刚开始遇到的麻烦是获取edit控件里的字符串,查完工具书后实现的代码是rsing=m_Yue.GetBuffer(16);获得m_Yue里的字符串,16为长度。后面的是转换为int,“Anothervalue=atoi(rsing);”,其余的都是数学运算了,获取与存储都是由厂商带的光盘里的代码,代码如下:

unsigned int Anothervalue,m_end,endva;

CString rsing;

unsigned char databuffn[17];

CString data5,y;

ZeroMemory(databuffn,17);

// UpdateData();

st=rf_read(icdev,sector*6,databuffn);

m_end=atoi((LPCTSTR)databuffn);

endva= m_end;

UpdateData();

rsing=m_Yue.GetBuffer(16);//获得编辑框里的字符串

Anothervalue=atoi(rsing);//转换成int

if((m_end=m_end-Anothervalue)<<0)

{ MessageBox("消费失败,请重新消费");

UpdateData();

SetDlgItemText(IDC_EDIT3,"");

UpdateData();

rsing=m_Yue.GetBuffer(16);//获得编辑框里的字符串

Anothervalue=atoi(rsing);//转换成int

m_end=endva-Anothervalue;

//rsing=itoa(456);

//y=atoi("456");

UpdateData();

SetDlgItemInt(IDC_EDIT4,m_end);

UpdateData();

SetDlgItemText(IDC_EDIT3,"");

data5=m_v.GetBuffer(16);

UpdateData();

char* data6=data5.GetBuffer(data5.GetLength());

st=rf_write(icdev,sector*6,(unsigned char*)data6);

UpdateData();

ZeroMemory(databuffn,17);

UpdateData();

st=rf_read(icdev,sector*6,databuffn);

if (st==0)

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

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

m_list.AddString("消费成功!");

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

}

else

m_list.AddString("消费失败!");

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

UpdateData(false);

}}

void CMyDlg::OnCE()

{

UpdateData();

SetDlgItemText(IDC_EDIT3,"");

m_Yue="";

// TODO: Add your control notification handler code here

}

充值与消费是相对应的。

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

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

物联网专业见习报告

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

物联网实习报告

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

物联网实验报告

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

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

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

物联网工程实训报告

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

物联网工程系实训报告

学生实训报告册课程名称信息技术基础考证强化训练姓名刘杰学号47班级软件143指导教师尤慧芳实训时间20xx12222620xx3913实训地点J4506物联网工程系20xx年9月实训报告123456789实训报...

物联网实验报告

物联网实验报告物联网实验报告学院班级学号姓名指导教师20xx128目录实验一RFID的读与写2一实验目的2二实验内容3三基本原理31物联网实验报告四所需仪器3五实验步骤3实验二RFID防撞系统实验5一实验目的5...

物联网实验报告

物联网实验实验一基础实验11串口调试组件实验111实验目的在程序开发过程中往往需要对编写的代码进行调试前面介绍了通过LED进行调试的方法该实验主要是介绍串口调试的方式本实验通过一个简单的例子让读者学会串口调试编...

物联网定位技术实验报告书

中南大学信息科学与工程学院物联网定位技术实验报告书实验名称网络定位算法研究成员董嘉伟指导老师张士庚完成时间20xx61目录实验目的实验设备实验要求实验背景实验原理实验实现部分实验结果展示及分析实现小结一实验目的...

物联网工程实验报告(2)

实验报告差异版实验一物联网智能实验开发平台使用说明实验名称GPRSGPS3G模块的使用实验目的1熟悉平台环境2了解GPRSGPS3G模块的测试与使用方法实验步骤1GPRS模块的使用断电后换上GPRS模块将手机卡...

20xx物联网综合实训任务书

物联网综合课程实训任务书一文献综述查阅资料了解物联网技术的发展了解物联网组网技术了解物联网的核心技术发展重点掌握ZigBee无线组网技术掌握协议内容组网过程撰写文献综述每人一篇二物联网综合课程实训分组完成课程设...

物联网实训报告(34篇)