版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于2440开发板的BS架构门禁系统目录目录1作品简介:1功能和指标:1硬件及系统方案:2相关必备知识和技术阐述4移植6测试方案11测试设备11测试截图12作品简介:门禁系统,在智能建筑领域,意为Access Control System,简称ACS,指“门”的禁止权限。在一些涉密单位,为了能够更加智能化的管理,门禁系统应运而生,当然他的打卡功能在实际工作中作为员工考勤的计量工具,也在日常工作中发挥了其重要作用,为此我们通过网页进入管理界面,并通过接受器接收刷卡的信息,更新相关的数据库,保存相应的信息,以实现智能门禁系统的功能。功能和指标:1. 管理员登录2. 注册新卡3. 注销旧卡4. 查询
2、打卡信息5. 新管理员注册6. 打卡语音提示7. 服务器界面显示硬件及系统方案:(1)主要是用开发板实现了一个门禁系统的服务器。详见下图: 系统结构框图(2)实现B/S架构的方法如下:(3)开发板的界面是通过qt编程实现的,本程序分为服务器进程和界面进程,两个进程通过命名管道来通信。而各种数据是用sqlite存储到数据库中的,还用到了xml技术来传递查询信息。相关必备知识和技术阐述RFID射频识别(RFID)是一种无线通信技术,可以通过无线电讯号识别特定目标并读写相关数据,而无需识别系统与特定目标之间建立机械或者光学接触。无线电的信号是通过调成无线电频率的电磁场, 把数据从附着在物品上的标签上
3、传送出去,以自动辨识与追踪该物品。某些标签在识别时从识别器发出的电磁场中就可以得到能量,并不需要电池;也有标签本身拥 有电源,并可以主动发出无线电波(调成无线电频率的电磁场)。标签包含了电子存储的信息,数米之内都可以识别。与条形码不同的是,射频标签不需要处在识别 器视线之内,也可以嵌入被追踪物体之内。许多行业都运用了射频识别技术。将标签附着在一辆正在生产中的汽车,厂方便可以追踪此车在生产线上的进度。仓库可以追踪药品的所在。射频标签也可以附于牲畜与宠物上,方便对牲畜与宠物的积极识别 (积极识别意思是防止数只牲畜使用同一个身份)。射频识别的身份识别卡可以使员工得以进入锁住的建筑部分,汽车上的射频应
4、答器也可以用来征收收费路段与停 车场的费用。某些射频标签附在衣物、个人财物上,甚至于植入人体之内。由于这项技术可能会在未经本人许可的情况下读取个人信息,这项技术也会有侵犯个人隐私忧患。BOABOA 服务器是一个小巧高效的web服务器,是一个运行于unix或linux下的,支持CGI的、适合于嵌入式系统的单任务的http服务器,源代码开放、性能高。CGICGI在物理上是一段程序,运行在服务器上,提供同客户端HTML页面的接口。即客户端与服务器的接口。比如留言本的工作流程:先由用户在客户端输入一些信息,如名字之类的东西。接着用户按一下“留言”(到目前为止工作 都在客户端),浏览器把这些信息传送到服
5、务器的CGI目录下特定的cgi程序中,于是cgi程序在服务器上按照预定的方法进行处理。在本例中就是把用户提 交的信息存入指定的文件中。然后cgi程序给客户端发送一个信息,表示请求的任务已经结束。此时用户在浏览器里将看到“留言结束”的字样。整个过程结束。SecureCRTSecureCRT是一款支持SSH(SSH1和SSH2)的终端仿真程序,简单地说是Windows下登录UNIX或Linux服务器主机的软件。SecureCRT支持SSH,同时支持Telnet和rlogin协议。SecureCRT是一款用于连接运行包括Windows、UNIX和VMS的理想工具。通过使用内含的VCP命令行程序可以进
6、行加密文 件的传输。有流行CRTTelnet客户机的所有特点,包括:自动注册、对不同主机保持不同的特性、打印功能、颜色设置、可变屏幕尺寸、用户定义的键位图 和优良的VT100,VT102,VT220和ANSI竞争.能从命令行中运行或从浏览器中运行.其它特点包括文本手稿、易于使用的工具条、用户的键位图 编辑器、可定制的ANSI颜色等.SecureCRT的SSH协议支持DES,3DES和RC4密码和密码与RSA鉴别。超级终端超级终端的原理是将用户输入随时发向串口(采用TCP协议时是发往网口,这里只说串口的情况),但并不显示输入。它显示的是从串口接收到的字符。所以,嵌入式系统的相应程序应该完成的任务
7、便是:1.将自己的启动信息、过程信息主动发到运行有超级终端的主机;2.将接收到的字符返回到主机,同时发送需要显示的字符(如命令的响应等)到主机;3.在单片机开发时使用。串口通信串行接口是一种可以将接受来自CPU的并行数据字符转换为连续的串行数据流发送出去,同时可将接受的串行数据流转换为并行的数据字符供给CPU的器件。一般完成这种功能的电路,我们称为串行接口电路。AJAXAJAX即“Asynchronous,Javascript+XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。 AJAX=异步JavaScript和XML(标准通用标记语言的子集)。AJAX
8、是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交 换,AJAX可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。传统的网页(不使用AJAX)如果需要更新内 容,必须重载整个网页面。消息队列“消息”是在两台计算机间传送的数据单位。消息可以非常简单,例如只包含文本字符串;也可以更复杂,可能包含嵌入对象。消息被发送到队列中。“消息队列”是在消息的传输过程中保存消息的容器。消息队列管理器在将消息从它的源中继到它的目标时充当中间人。队列的主要目的是提供路由并保证消息的传递;如果发送消息时接收者不可用,消息队列会保留消息,直到可以成功地传递它。消息
9、队列(也叫做报文队列)能够克服早期unix通信机制的一些缺点。作 为早期unix通信机制之一的信号能够传送的信息量有限,后来虽然POSIX 1003.1b在信号的实时性方面作了拓广,使得信号在传递信息量方面有了相当程度的改进,但是信号这种通信方式更像即时的通信方式,它要求接受信号 的进程在某个时间范围内对信号做出反应,因此该信号最多在接受信号进程的生命周期内才有意义,信号所传递的信息是接近于随进程持续的概念 (process-persistent);管道及有名管道则是典型的随进程持续IPC,并且,只能传送无格式的字节流无疑会给应用程序开发带来不便,另外,它的缓冲区大小也受到限制。消息队列就是一
10、个消息的链表。可以把消息看作一个记录,具有特定的格式以及特定的优先级。对消息队列有写权限的进程可以向消息队列中按照一定的规则添加新消息;对消息队列有读权限的进程则可以从消息队列中读走消息。消息队列是随内核持续的。命名管道“命名管道”又名“命名管线”(Named Pipes),是一种简单的进程间通信(IPC)机制,Microsoft Windows大都提供了对它的支持(但不包括Windows CE)。命名管道可在同一台计算机的不同进程之间或在跨越一个网络的不同计算机的不同进程之间,支持可靠的、单向或双向的数据通信。推荐用命名管道作为进程通信方案的一项重要的原因是它们充分利用了Windows内建的
11、安全特性(ACL等)。用命名管道来设计跨计算机应用程序实际非常简单,并不需要事先深入掌握底层网络传送协议(如TCP、UDP、IP、IPX)的知识。这是由于命名管道利用了微软网络提供者(MSNP)重定向器通过同一个网络在各进程间建立通信,这样一来,应用程序便不必关心网络协议的细节。多线程编程线程在进程的基础上作进一步抽象,也就是说一个进程分为两个部分:线程集合和资源集合。线程是进程中的动态对象,它是一个独立的控制流,进程中的所有线程将共享进程拥有的资源。在Linux中,可把线程分为内核线程、内核支持的用户线程和线程库支持的用户线程等3种类型。其中,内核编程负责实现一个指定系统功能;内核支持的用户
12、线程实质上是特殊的进程,能被单独调度和运行;用户进程是通过线程库实现的,内核不参与调度,线程库提供同步和调度方法。我们做实验所用到的正是多线程编程里的用户线程。每个用户线程都可以有自己的用户栈,即用来保存用户级寄存器上下文以及信号屏蔽等状态信息的主存区。线程库支持的用户线程不是真正的调度实体,内核对他们一无所知,而只是调度用户线程所属的线程,这些进程再通过线程库函数来调度进程内的用户线程。移植XML的移植ARM移植1、下载源文件 下载地址:/p/m2sc/downloads/detail?name=libxml2-2.7.2.tar.gz&can=2&
13、q2、安装mkdir /usr/local/libxmltar -zxvf libxml-*.*.*.tar.gzcd libxml-*.*.*.tar.gz./configure -host=arm-linux -build=i386-linux -target=arm -prefix=/usr/local/libxml_arm CC=/usr/local/arm/4.3.2/bin/arm-linux-gcc -without-zlibmakemake install注:CC=/usr/local/arm/4.3.2/bin/arm-linux-gcc 编译工具链可有可无,编译的时候指定即
14、可 -without-zlib 必须得有,如是没有的话,make 时候肯能出错执行make install时,加了sudo前缀,还是有问题一定要先sudo -s进入root再make install这样就不会有问题了,主要是环境变量不同导致的3、编译指定环境变量:export C_INCLUDE_PATH=/usr/local/libxml_arm/include/libxml2/:$C_INCLUDE_PATHexport LD_LIBRARY_PATH=/usr/local/libxml_arm/lib:$LD_LIBRARY_PATH编译:arm-linux-gcc xml_test.c
15、 -o xml_test -L/usr/local/libxml_arm/lib -lxml2编译时会出现提示 库文件不安全,这个可以忽略。4、运行 在开发板上运行时需要将相关库文件拷贝到开发板中 /lib 目录下Libxml2.so libxml2.so.2 libxml2.so.2.7.8 libxml2.la(这个可能不需要) 注:库文件在/xmlib中,拷贝时记得加上参数 a 将整个目录中的内容拷贝到/lib中sqlite的移植说明:在arm平台下1、下载sqlite-autoconf-.tar.gz(/)2、解压到某个文件夹下 mkdir sq
16、lite3tar zxvf sqlite-autoconf-.tar.gz -C sqlite33、配置,这里安装到当前文件夹下的sqlite下cd sqlite3mkdir install./configure -prefix=/home/edu/sqlite3/install -host=arm-linux 4 、make 这时候却出现错误:/-sqlite3make/bin/bash ./libtool -tag=CC -mode=compile arm-linux-gcc -DPACKAGE_NAME=sqlite -DPACKAGE_TARNAME=sqlite -DPACKAGE_
17、VERSION= -DPACKAGE_STRING=sqlite -DPACKAGE_BUGREPORT= -DPACKAGE_URL= -DPACKAGE=sqlite -DVERSION= -D_FILE_OFFSET_BITS=64 -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_
18、INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=.libs/ -DHAVE_FDATASYNC=1 -DHAVE_USLEEP=1 -DHAVE_LOCALTIME_R=1 -DHAVE_GMTIME_R=1 -DHAVE_DECL_STRERROR_R=1 -DHAVE_STRERROR_R=1 -DHAVE_POSIX_FALLOCATE=1 -I. -D_REENTRANT=1 -DSQLITE_THREADSAFE=1 -DSQLITE_ENABLE_FTS3 -DSQLITE_
19、ENABLE_RTREE -g -O2 -MT sqlite3.lo -MD -MP -MF .deps/sqlite3.Tpo -c -o sqlite3.lo sqlite3.clibtool: compile: arm-linux-gcc -DPACKAGE_NAME=sqlite -DPACKAGE_TARNAME=sqlite -DPACKAGE_VERSION= -DPACKAGE_STRING=sqlite -DPACKAGE_BUGREPORT= -DPACKAGE_URL= -DPACKAGE=sqlite
20、 -DVERSION= -D_FILE_OFFSET_BITS=64 -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=.libs/ -DHAVE_FDATASYNC=1 -DHAVE_USLEEP=1
21、-DHAVE_LOCALTIME_R=1 -DHAVE_GMTIME_R=1 -DHAVE_DECL_STRERROR_R=1 -DHAVE_STRERROR_R=1 -DHAVE_POSIX_FALLOCATE=1 -I. -D_REENTRANT=1 -DSQLITE_THREADSAFE=1 -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_RTREE -g -O2 -MT sqlite3.lo -MD -MP -MF .deps/sqlite3.Tpo -c sqlite3.c -fPIC -DPIC -o .libs/sqlite3.oarm-none-lin
22、ux-gnueabi-gcc: : No such file or directory: warning: missing terminating charactermake: * sqlite3.lo Error 1/-解决方法:修改Makefile中的 -DPACKAGE_STRING=sqlite 把sqlite和中间的空格去掉再次make通过!5、 然后make install,在当前目录install目录中生成 bin include lib share 文件目录6、进入bin文件,执行arm-linux-strip sqlite3(去掉调
23、试信息)install/binls -ltotal 164-rwxr-xr-x 1 delong delong 3月 6 23:16 sqlite3-rwxr-xr-x 1 delong delong 54108 3月 6 23:11 sqlite3_bsqlite3没有用arm-linux-strip处理过,sqlite3_b用arm-linux-strip处理过。7、将bin文件下的sqlite3执行文件拷至开发板bin文件下,lib文件夹下的所有文件拷至开发板的/lib文件夹下8、sqlite3 打印如下QT移植3.3 修改、编译QT 嵌入式Linux应用开发完全手册上的QT不支持触摸屏
24、,JZ2440提供的QT支持触摸屏。 3.3.1 编译依赖的软件 编译、安装jpeg库 源码为/work/GUI/qtopia/deps/jpegsrc.v6b.tar.gz,解开后得到目录jpeg-6b。 先使用以下命令进行配置: $ ./configure -enable-shared -enable-static -prefix=/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux -build=i386 -host=arm 然后修改生成的Makefile,如下: CC= gcc 改为:CC= arm-linux-gcc AR= ar rc 改为:AR=
25、 arm-linux-ar rc AR2= ranlib 改为:AR2= arm-linux-ranlib 最后是编译和安装,执行如下命令: $ make $ make install-lib 这将在/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux中的include目录中生成一些头文件,在lib目录中生成一些jpeg库文件。 编译、安装uuid库 源码为/wok/GUI/qtopia/deps目录下的e2fsprogs-1.40.2.tar.gz。 解压缩后参照它的INSTALL文件即可编译。对于交叉编译,在执行“./configure”时需要指定交叉编译
26、工具链和目标板。执行的命令如下: $ tar xzf e2fsprogs-1.40.2.tar.gz $ cd e2fsprogs-1.40.2/ $ mkdir build; cd build $ ./configure -with-cc=arm-linux-gcc -with-linker=arm-linux-ld -enable-elf-shlibs -host=arm -prefix=/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux $ make $ make install-libs 最后一条命令在/work/tools/gcc-3.4.5-gl
27、ibc-2.3.6/arm-linux/下的include、lib目录中安装一些头文件和库,比如uuid/uuid.h、libuuid.a、libuuid.so等 编译、安装zlib库 源码为/wok/GUI/qtopia/deps目录下的zlib-1.2.3.tar.gz。解压之后使用以下命令进行配置: ./configure -shared -prefix=/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux 然后修改生成的Makefile,以下是修改后的结果,都加上了“arm-linux-”前缀: CC=arm-linux-gcc LDSHARED=ar
28、m-linux-gcc -shared -Wl,-soname,libz.so.1 CPP=arm-linux-gcc -E AR=arm-linux-ar rc RANLIB=arm-linux-ranlib 最后执行以下命令编译、安装: $ make $ make install 编译、安装png库 源码为/wok/GUI/qtopia/deps目录下的libpng-1.2.23.tar.bz2。 解压后进入它的目录,复制Makefile: $ cp scripts/makefile.linux ./Makefile 修改Makefile,以下是修改后的结果,都加上了“arm-linux-
29、”前缀: AR_RC=arm-linux-ar rc CC=arm-linux-gcc RANLIB=arm-linux-ranlib prefix=/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux 最后执行以下命令编译、安装: $ make $ make install 编译、安装触摸屏ts库 源码为/wok/GUI/qtopia/deps目录下的tslib-1.3.tar.bz2。 解压后进入它的目录,执行以下命令: $ ./autogen.sh $ echo ac_cv_func_malloc_0_nonnull=yes arm-linux.cach
30、e $ ./configure -host=arm-linux -cache-file=arm-linux.cache -enable-inputapi=no -prefix=/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux 在make之前,为了支持触摸屏修改src/ts_read_raw.c文件,如下修改代码: char *defaulttseventtype=UCB1x00; 改为: char *defaulttseventtype=H3600; 为了防止出现“libtool:link: only absolute run-paths are allo
31、wed“的错误,在plugins/Makefile里面找rpath,找到将其注释并加上绝对路径: #LDFLAGS :=$(LDFLAGS) -rpath $(PLUGIN_DIR) LDFLAGS :=$(LDFLAGS) -rpath cd $(PLUGIN_DIR) & pwd 最后执行以下命令编译安装: $ make $ make install 3.3.2 使用补丁修改、编译QT /wok/GUI/qtopia目录下,qtopia-free-src-2.2.0.tar.gz是未经修改的内核源码,qtopia-free-2.2.0_jz2440.patch是针对JZ2440开发板的补丁文件。 $ tar xzf qtopia-free-src-2.2.0.tar.gz $ cd qtopia-free-2.2.0 $ patch -p1 ./qtopia-free-2.2.0_jz2440.patch $ ./configure -qte -embedded -xplatform linux-arm-g+ -qconfig qpe -depths 16,24 -no-qvfb -system-jpeg -system-libpng -system-zlib -tslib -gif -thread -
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 异常子宫出血规范化诊疗专家共识(2026版)
- 2026流感防治培训测试试题及答案
- 2026年《艺术概论》试题及答案
- 样品申请、寄送与效果跟踪方案
- 2026年煤矿安全生产知识培训考试必答题库及答案
- 2026年法律法规培训试题及答案
- 熬得住出众,熬不住出局-成功需要坚持
- 中医药健康宣教活动实施方案
- 群众文化活动中心运营与维护管理方案
- 装配式建筑基地工程勘察方案
- 油品取样化验管理制度
- 农民培训教师管理制度
- 供电营销安全课件
- 简单的机械加工合同
- 油漆工用工合同协议书范文
- 汽车加油加气加氢站技术标准知识培训
- 人教版四年级上册数学《速度、时间和路程》获奖说课稿
- GB/T 15597.2-2024塑料聚甲基丙烯酸甲酯(PMMA)模塑和挤出材料第2部分:试样制备和性能测定
- 环保培训大气污染防治培训课件
- 幼儿园烫伤应急处理培训
- 《镜片制造工艺》课件
评论
0/150
提交评论