本文提出一种经济型、基于嵌入式技术的RFID电子门票系统。
1 RFID的原理
射频识别(RFID)利用射频信号的空间耦合或反射的传输特性,对被识别物体自动识别,是一种非接触式自动识别技术。RFID主要由电子标签(Tag)和阅读器(Reader)两部分组成。电子标签由耦合元件和芯片组成,其工作能量来源于阅读器发出的射频脉冲,通过无线电波与读写设备进行数据交换。阅读器主要由无线收发模块、天线、控制模块和接口电路组成,其主要任务是控制射频模块向电子标签发射读取信号,并接收电子标签的应答,对电子标签的标识信息进行解码,将标识信息及其他相关信息传输到主机以便处理。该系统选用低频(125 kHz)RFID系统,性能不受环境影响,价格低廉,因此适合大规模生产使用。
2 CAN总线技术[1]
CAN是由ISO定义的串行通信总线,具有高位速率、高抗电磁干扰性、高可靠性等特点,而且能够检测到产生的任何错误。CAN在微控制器之间互相通信或微控制器与远程的外围器件互相通信的情况下是一个理想的解决方法。CAN相比于RS485采用了新技术及独特的设计,具有多主节点的网络特性,总线利用率高,数据传输速度快,可扩充性好,通信距离长,具有可靠的错误处理和检错机制,个别节点失效并不影响整个通信网络的运行,实时性好。因此在自动化各个行业,CAN取代RS485将是一种不可逆转的趋势。
3 ARM+μClinux平台下实现动态Web[2]
在μClinux环境下,httpd、thttpd和Boa是三个主要的Web服务器。这里选择非常适合嵌入式系统的Boa Web服务器,它支持认证、CGI等。Boa是一个单任务的http服务器,μClinux代码已经自带了Boa的源码,配置和修改源码后,在配置内核时把Boa选进内核实现入网,通过浏览器就可以访问嵌入式网页。
迄今,实现动态Web页面有CGI、ASP、PHP和JSP四种技术可供选择,由于目前μClinux还不支持ASP、PHP等动态Web页面技术,因此本设计选择CGI。CGI提供Web服务器一个执行外部程序的通道,这种服务端技术使得浏览器和服务器之间具有交互性。CGI程序接收Web浏览器发送给Web服务器的信息,进行处理后执行相应的任务。本系统选择与平台无关的C语言编写CGI程序。
4 嵌入式数据库SQLite及其在μClinux上的移植[3]
4.1 嵌入式数据库SQLite简介
嵌入式数据库SQLite较其他大型数据库的特点是程序直接调用相应的API实现对数据的存取 *** 作,无需独立运行的数据库引擎。SQLite不具有外部依赖性,完全独立,并且提供了对SQL92标准的大多数支持:支持多表和索引、事务、视图、触发和一系列的用户接口及驱动。在嵌入式系统中移植SQLite数据库成为一种很好的解决方案。
4.2 SQLite开发技术
SQLite本身提供了C语言的API接口,使得对数据库的 *** 作十分简单,主要是对3个API函数的调用。
(1)打开数据库
int sqlite3_open(const char*filename,sqlite3**ppDb);
sqlite3_open()用于打开指定的数据库,数据库文件名称由filename参数指定,并通过ppDb参数返回合法的数据库句柄。
(2)执行数据库
int sqlite3_exec(sqlite3*,const char *sql,sqlite_callback, void*,char**errmsg);
第一个参数sqlite3*是前面open函数得到的指针。第二个参数const char*sql是一条SQL语句或多条SQL语句,语句间必须用“;”号隔开,以\0结尾。第三个参数是回调,当这条SQL语句执行之后,SQLite3会调用该回调函数。第四个参数void*是传递给回调函数的参数,如果不需要传递指针给回调函数,可以赋NULL给该参数。第五个参数char**errmsg用来保存错误信息。
(3)关闭数据库
int sqlite3_close(sqlite3*db);
参数db就是打开时的结构体,即数据库句柄。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)