在pcDuino上使用LinkSprite Cottonwood远距离RFID读卡器

微微的薄雾 发布于 2013/11/30 01:32
阅读 349
收藏 3

远程超高频RFID阅读器是一个来读取信息和输入信息的重要的方式。自动识别技术是近年来发展起来的,现在它是一个新的高技术, 其中包括条码技术、磁条(卡)技术、射频技术、光学字符识别技术, 生物识别,距离读卡器等。

在正常情况下,超高频RFID标签需要更少的能量比读取器, 而且具有较高的接收灵敏度。在某些系统中, 传输路径和接收路径是彼此独立的,尤其是当读取器上行和下行有不同的工作频率时。

从技术上讲,一个不同的应用程序可以选择不同的传输功率。然而,有规则,需要被满足。通常功率100 mw ~ 500 mw适合各种RFID系统。在不同的地区和领域,读取器必须遵循不同的规则。

Cottonwood UHF RFID  有很多优点距离如:兼容不同的协议, 高速的阅读更多的标签阅读、线性极化天线, 防水设计等。可以广泛应用于RFID系统,非常友好的基础上,进一步发展。Cottonwood

  •  模块描述

标签协议:支持ISO18000-6C(EPC GEN2)、ISO18000-6A/B协议

工作频率:920.625—924.375MHz,

符合国家RFID标准902.75—927.25MHz,

美国RFID标准865.7—867.5MHz,

欧洲RFID标准可设置840—960MHz之间的可用

工作频段跳频方式:FHSS自动跳频

发射机功率:可由用户软件设置,最大20dBm,100mW

工作电压:5V

天线接口:1个

天线匹配电阻:50 ohm

与主机接口:TTL/USB(本实验用TTL)

通信波特率:115200bps

  • 调试工具

pcDuino; T-board; Base shield; Cuttonwood UHF RFID Reader; 天线; 标签。

接线图如下:

整体图:

20131121005_副本

串口线的连接:

pcDuino上的接线 

IMG_20131121_144225_副本

Cuttonwood上的接线

IMG_20131121_144301_副本

注意接线的颜色

  • 调试代码

#include <core.h>
#include <Serial.h>
#include <pthread.h>
char commend[][6] = {
{0×10, 0×03, 0×01},//获取硬件版本
{0×10, 0×03, 0×00},//获取固件版本
{0×31, 0×03, 0×01},//开始论寻标签
{0×31, 0×03, 0×02},//收寻下一个标签
{0×43, 0×03, 0×01},//开始论寻标签(RSSI)
{0×43, 0×03, 0×02}//收寻下一个标签(RSSI)
};
char commend_name[][40] = {
{“硬件版本:”},
{“固件版本:”},
{“论寻标签:”},
{“下一个标签”},
{“论寻标签(RSSI)”},
{“下一个标签(RSSI)”}
};
unsigned char cmd_select = 0;
void fram()
{
printf(“+++++++++++++++++++++++++++++++++++++++++++++++\n”);
int i = 0;
for(i = 0; i < 6; i ++)
{
printf(“%d.”, i);
printf(“%s\t”, commend_name[i]);
if(i == 2)
{
printf(“\n”);
}
}
printf(“\n+++++++++++++++++++++++++++++++++++++++++++++++\n”);
}
void * sou_fun(void *p)
{
while(1){
if(Serial.available()){
printf(“+++++++++++++++++\n”);
printf(“%s:”, commend_name[cmd_select]);
unsigned char read_data = 0;
while(Serial.available())
{
read_data = Serial.read();
printf(“0x%x “, read_data);
}
printf(“\n++++++++++++++++\n”);
}
}
return (void *)NULL;
}
void sou_error()
{
unsigned char read_data;
while(Serial.available())
{
read_data = Serial.read();
printf(“%d “, read_data);
}
printf(“please hold on …\n”);

}
void setup()
{
pthread_t pid;
pthread_create(&pid, NULL, sou_fun, NULL);
Serial.begin(115200);
while(!Serial)
{
;
}
Serial.println(commend[0]);
delay(500);
printf(“UHF RFLD_READER test!\n”);
}
void loop()
{
fram();
scanf(“%c”, &cmd_select);
cmd_select -= ’0′;
getchar();
Serial.println(commend[cmd_select]);
delay(1000);
}

注:编译与运行

$gcc XXX.cpp -o XXX  -lpthread -larduino

$./XXX

  • 运行截图

20131121009_副本

相关命令请参考:

https://s3.amazonaws.com/linksprite/cuttonwood/datasheet.pdf

帖子出自:http://cnlearn.linksprite.com/?p=1332





加载中
返回顶部
顶部