当前位置:首页 > 嵌入式 > 嵌入式硬件

摘 要: 介绍了通过在ARM+μClinux+Web+SQLite平台下扩展CAN总线,并以RFID读卡器作为控制节点而实现的电子门票系统。一方面可以方便持卡者查询门票使用情况、场所路线以及馆内人流量,帮助其更好地选择相关路线;另一方面有助于举办方实时了解各片区的人流情况及追踪目标,以便做出调度和提高安防工作效率。
关键词: RFID;CAN总线;ARM;Web Server;SQLite

 由于RFID电子门票具有防伪性能好、可靠性高、适应性强、成本低等特点,已被普遍应用于各种大型公共活动中。本文提出一种经济型、基于嵌入式技术的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语句,语句间必须用“;”号隔开,以结尾。第三个参数是回调,当这条SQL语句执行之后,SQLite3会调用该回调函数。第四个参数void*是传递给回调函数的参数,如果不需要传递指针给回调函数,可以赋NULL给该参数。第五个参数char**errmsg用来保存错误信息。
 (3)关闭数据库
 int sqlite3_close(sqlite3*db);
 参数db就是打开时的结构体,即数据库句柄。
4.3 SQLite应用程序交叉编译
 要将嵌有SQLite的CGI程序应用到S3C44b0+μClinux开发平台上,必须对CGI程序进行交叉编译。由于交叉编译要用到romfs格式的libsqlite.a库文件,因此必须先对SQLite源代码进行修改,以便生成静态库文件libsqlite3.a。然后交叉编译生成cgi格式文件,与内核一起编译后下载到开发板。
5 电子门票系统的设计
 在S3C44B0+μClinux+Web+SQLite嵌入式平台下,通过CAN总线与RFID读卡器进行通信。整体构架如图1所示。该系统可以分为两个模块:第一部分为各个场所的刷卡点,包括CAN总线和RFID读卡器的设计,该模块的功能是采集数据。第二部分为ARM嵌入式远程控制功能,实现数据的读取、储存以及处理,数据包括CAN总线数据和Web内建表单数据。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭