一种RFID与以太网透传前端的农产品溯源终端机设计

2020-05-09 09:56龙顺宇林元乖杨伟许禄枝邝国旺
物联网技术 2020年4期

龙顺宇 林元乖 杨伟 许禄枝 邝国旺

摘 要:为实现农产品信息标识与溯源,结合RFID及以太网透传技术构造了一款溯源终端机,该设备遵循ISO 14443A/MIFARE协议,使用MFRC522射频芯片及STC8主控单片机实现了HF频段下的RFID读写,通过读取预置在农产品中的Mifare1电子标签得到唯一标识码,再将其传送至由CH9121芯片构成的以太网透传单元中,标识码通过TCP传送至溯源后台数据库,经信息检索后,向前端溯源机或用户手机APP端返回农产品名称、种类、产地、仓储、货运/冷链及保质期等信息,以实现产品溯源。

关键词:MFRC522;CH9121;RFID;以太网透传;农产品溯源;非接触

中图分类号:TP393文献标识码:A文章编号:2095-1302(2020)04-00-04

0 引 言

在现代农业高速发展的今天,农产品种类及市场需求急剧增加,如何提升农产品的供需信息化水平成为了研究热

点[1-2],在农产品供应链的种植、收购、仓储、加工、包装、运输、物流、检验及销售环节构筑一条完整、透明、畅通并可追溯其源头的“信息链条”十分必要[3-4]。在整个溯源链条中必不可少的就是农产品销售网点的溯源终端机[5-6]。不同的终端设备在系统结构上存在较大差异,共性的部分一般为自动识别前端、主控制器和相关通信接口[7-8],本文结合相关IoT主流技术方案构建了一款溯源终端机以实现农产品溯源。

1 农产品溯源终端机前/后端硬件设计

溯源终端机主要由四个部分组成,分别为前端RFID单元、主控制器单元、人机交互单元及后端以太网通信单元:RFID前端负责识别农产品上附着的电子标签数据,读取序列号或特定扇区数据;主控单元控制RFID读写操作、人机交互和通信,采用多串口、高性价比的STC8A8K64S4A12单片机作为主控芯片;人机交互单元主要为显示屏和矩阵键盘,显示屏用于显示农产品的溯源信息,矩阵键盘用于手动输入商品编号或者调整终端机功能;后端以太网通信单元负责将单片机串口发出的相关数据转换为TCP/IP数据帧,进行串口/以太网数据透传。

在终端机的组成单元中,人机交互和主控可以根据实际选型进行变更,最为重要的就是前/后端硬件设计,故而在本文硬件设计中将着重介绍该部分。

1.1 构造HF频段RFID前端单元

在终端机的RFID前端将恩智浦半导体生产的MFRC522芯片作为射频核心,该芯片是一款非接触式HF频段RFID读写卡芯片[9-10],其典型工作频率为13.56 MHz,双向数据传输速率可达424 Kb/s,完全可以满足常规农产品电子标签快速识别的要求[11],通过构造图1所示的外围电路,实现了终端机的“读头”设计。图1中的U1为MFRC522芯片,通信接口为三线SPI接口,R2,R3,C11和C13构成了接收电路,L1,L2,C6和C7构成了EMC滤波电路,C3,C4,C5,C8,C9和C10构成了射频前端匹配电路,X1,C12和C14为时钟电路,虚线框内为射频天线。

在硬件实物设计中,天线部分采用PCB板上矩形走线方案,天线的性能直接关系到通信距离及读写稳定性。设计PCB天线时考虑了共轭匹配、阻抗匹配、辐射效率和极化方向等参数,根据外形和PCB基板参数反向修正了图1中EMC滤波电路和射频前端匹配电路的器件参数,以获得较好的发射/接收效果。

1.2 构造串口-以太网透传单元

在终端机的以太网通信部分采用南京沁恒微电子股份有限公司生产的CH9121芯片作为转换核心,该芯片内置TCP/IP协议栈,轻松实现了串口到网络数据包的双向透传,其具有TCP Client,TCP Server,UDP Client和UDP Server四种工作模式,串口通信波特率可达921 600 b/s,可以满足双向信息透传需求[12-13]。通过构造图2所示的外围电路,实现了单片机串口到以太网数据双向透传的功能。

图2中的U1为CH9121芯片,其供电为3.3 V和1.8 V,电源引脚附近可按需添加退耦电容,該芯片大部分引脚为电源引脚或无功能引脚,其余引脚中包含有控制引脚、时钟引脚及通信引脚,终端机主控单片机将RFID前端识别到的电子标签序列号由TXD1和RXD1引脚传送至CH9121核心,经过其片内数据处理及协议转换后成为以太网数据包,再经过P1器件的RJ 45接口连接到交换机、路由器等网络设备。此处的P1网络接口内置网络变压器,简化了器件连接。在制作该单元PCB文件时,还需合理布放RXN和RXP,TXN和TXP这两对以太网差分信号线,以减少高频时钟对外界的干扰,构造完成后的透传单元经过软件配置后即可建立通信链路。

2 农产品溯源终端机软件系统设计

2.1 MFRC522通信单元

为了节省主控单片机UART资源并实现高速通信,MFRC522通过SPI接口与主控单片机通信,通信过程中MFRC522作为从机,SCK时钟信号由主控产生,MOSI和MISO线路传输的每个字节都按照特定帧结构进行封装,高位在前低位在后,MOSI线路上的数据在SCK时钟的上升沿保持,下降沿改变。软件操作MFRC522的本质就是读写该芯片内部寄存器以获取数据和配置功能。利用C51语言编写WriteRawRC()函数用于读写MFRC522寄存器,该函数具备形参Address[IN]用于指定寄存器地址,形参value用于指定写入的数据,具体的函数实现如下:

void WriteRawRC(unsigned char Address, unsigned char value)

{

unsigned char i, ucAddr;

MF522_SCK= MF522_NSS=0;//拉低时钟线和片选线

ucAddr = ((Address<<1)&0x7E);

for(i=8;i>0;i--)//循环逐一送出地址

{

MF522_SI = ((ucAddr&0x80)==0x80);//发送地址

MF522_SCK = 1;ucAddr <<= 1;MF522_SCK = 0;

//拉高時钟后写入地址位再拉低时钟

}

for(i=8;i>0;i--)//循环逐一送出数据

{

MF522_SI = ((value&0x80)==0x80);//发送数据

MF522_SCK = 1;value <<= 1;MF522_SCK = 0;

//拉高时钟后写入数据位再拉低时钟

}

MF522_NSS = MF522_SCK=1;//拉高时钟线和片选线

}

2.2 Mifare1电子标签读写单元

在农产品中使用的HF频段RFID电子标签为Mifare1卡片,卡片内置了射频芯片及天线,射频芯片内具备存储单元,共划分为16个扇区,每个扇区由4个块组成,因此整个扇区有64个块地址。第0扇区的块0固定存放厂商代码,该区域无法进行读写操作。每个扇区的块3为控制块,包括密码A、存取控制和密码B,该区域的控制块包含16 B数据,扇区中每个块(包括数据块和控制块)的存取条件由密码和存取控制共同决定。每个扇区的块0、块1和块2为数据块,可用作一般的数据保存,可与阅读器进行读、写操作。也可用作数据值,进行初始化值、加值、减值或读值等操作。实际溯源需求中也可以将农产品生产商的信息及农产品的名称、产地属性、采摘日期、入库日期、入库批次、所属分类和运输方式写入数据区中。

在RFID前端读取Mifare1卡片时需要进行复位应答,确定该卡是否存在和判断卡型。然后经过防冲撞算法处理后,选定场内卡片进行识别,经过三次验证后确定要访问的扇区号,并对该扇区密码进行校验,最后通信。利用C51语言编写MF_RC522_init()函数用于读写标签内容,具体的函数实现如下:

void MF_RC522_init(void)

{

PcdReset();//复位应答

PcdAntennaOff();//关闭天线

PcdAntennaOn();//开启天线

status = PcdRequest(PICC_REQALL, g_ucTempbuf);

//寻卡

if (status != MI_OK)//无卡

continue;//继续寻卡

status = PcdAnticoll(g_ucTempbuf);

//防冲撞,尝试选择卡片

if (status != MI_OK)//操作失败

continue;//继续寻卡

status = PcdSelect(g_ucTempbuf);//选择卡片

if (status != MI_OK)//错误

continue;//继续寻卡

status = PcdAuthState(PICC_AUTHENT1A,1, DefaultKey, g_ucTempbuf);//验证卡密码(A)

if (status != MI_OK)//验证错误

continue;//继续寻卡

status = PcdRead(2, g_ucTempbuf);

//读取M1卡的块数据

if (status != MI_OK)

continue;//继续寻卡

PcdHalt();//命令卡片进入休眠状态

}

2.3 CH9121配置与透传单元

搭建完成的CH9121单元需要用程序或者上位机进行参数配置,其流程如图3所示,先要让主控单片机通过串口向CH9121发送“0x55,0xAA,0x5A”数据帧,然后进入串口配置模式。通过串口数据帧依次对CH9121的设置模式、源IP、子网掩码、网关、本地端口号、目的IP地址、目的端口号、串口波特率等参数进行配置,使其存入CH9121内部的E2PROM中保存,然后进行软件复位,使配置生效,最后退出CH9121配置模式,完成配置。

利用C51语言编写CH9121_init()函数用于初始化参数配置,具体的函数实现如下:

void CH9121_init(void)

{

NET_MODULE_TYPE_TCP_C=1;

//使能标志位进入TCP客户端模式

CH9121SetData(*Source_IP);//配置源IP地址

CH9121SetData(*Subnet_mask);//配置子网掩码

CH9121SetData(*Gateway);//配置网关

CH9121SetData(*Local_port_number);

//配置本地端口号

CH9121SetData(*Destination_IP);//配置目的IP地址

CH9121SetData(*Destination_port_number);

//配置目的端口号

CH9121SetData(*Baud_rate);//配置串口波特率

Write_EEPROM();//更新存入CH9121的E2PROM中

ResetCH9121();//执行配置参数并重置CH9121

}

3 研制样机与通信测试

制作樣机后开始检查RFID射频前端电路参数,尝试读取电子标签数据,进行CH9121芯片参数设定,合理配置终端机的网络环境和中间设备,将终端机配置为TCP方式连接服务端。当系统读取到RFID卡片序列后,会将序列号通过串口透传单元发送到服务器端,然后由服务器端返回序列号对应的商品信息,在调试阶段可以用SSCOM串口/网络工具进行返回值查验,若通信正常则返回图4所示数据。在实际测试中,设备选取了两种水果作为测试对象,分别对其RFID卡号、商品名称、产地属性、产地溯源、采摘日期、入库日期、入库批次、所属分类、运输方式等数据进行了打印和查看。

4 结 语

基于农产品溯源需求,本文设计并实现了一款HF频段RFID前端与串口/以太网透传后端的溯源终端机,设备可实现农产品相关信息的获取及溯源信息的回传等功能,可以将其应用在农产品的销售环节和场景中,基于现有研究,还可以在此基础上添加更多的信息获取功能和交互渠道,如二维码、NFC标签读写等获取方式,又如手机APP或网页端交互渠道等,结合更多的“互联网+”相关技术以实现农产品的精细化管理、便捷化销售和信息化溯源。

参考文献

[1]鲍宜帆,谷敏.略谈物联网技术在现代农业中的应用[J].计算机产品与流通,2019(5):71.

[2]王学伟,辛伟彬.基于物联网背景下的食品安全溯源体系研究[J].食品安全导刊,2019(9):56.

[3]王晓静,钟正阳,盘道兴,等.动物源性食品安全溯源系统研究进展[J].中国畜牧业,2019(8):54-56.

[4]王道丽,王辉.农业信息化建设在现代农业中的重要作用[J].河南农业,2019(10):9-10.

[5]庄诚.农业物联网及其在农产品生产与溯源环节中的技术应用[J].农民科技培训,2018(8):28-30.

[6]张苏嘉.基于移动终端设备的农家食品溯源系统设计[D].泉州:华侨大学,2018.

[7]赵文娟.农产品质量安全追溯平台的设计与实现[D].西安:西安电子科技大学,2018.

[8]杨建强,张成龙.基于RFID技术的生鲜产品供应安全溯源研究

[J].食品工业,2018,39(5):165-168.

[9]恩智浦半导体公司.AN11340 MIFARE Ultralight and MIFARE Ultralight EV1 Features and Hints[EB/OL]. [2018-06-26]. https://www.nxp.com.cn/.

[10]恩智浦半导体公司.NFC无所不在:新一代NFC应用的控制器、前端及互联标签解决方案[EB/OL]. [2015-07-16]. https://www.nxp.com.cn/.

[11]恩智浦半导体公司.AN1445 Antenna design guide for MFRC52x, PN51x, PN53x; AN1444 RF Design Guide including Excel Calculation sheet[EB/OL].[2018-06-09].https://www.nxp.com.cn/.

[12]南京沁恒微电子股份有限公司.CH9121技术手册[EB/OL].[2017-03-14]. http://www.wch.cn/.

[13]南京沁恒微电子股份有限公司.沁恒芯云物联平台说明[EB/OL]. [2018-09-29]. http://www.wch.cn/.

作者简介:龙顺宇(1989—),男,重庆人,硕士,实验师,主要研究方向为嵌入式应用、单片机智能、物联网技术应用。