基于2440开发板的BS架构门禁系统_第1页
基于2440开发板的BS架构门禁系统_第2页
基于2440开发板的BS架构门禁系统_第3页
基于2440开发板的BS架构门禁系统_第4页
基于2440开发板的BS架构门禁系统_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

-.z基于2440开发板的BS架构门禁系统目录3365目录110774作品简介:128479功能和指标:124930硬件及系统方案:221209相关必备知识和技术阐述415298移植619018测试方案1132597测试设备1118684测试截图12作品简介:门禁系统,在智能建筑领域,意为AccessControlSystem,简称ACS,指“门〞的制止权限。在一些涉密单位,为了能够更加智能化的管理,门禁系统应运而生,当然他的打卡功能在实际工作中作为员工考勤的计量工具,也在日常工作中发挥了其重要作用,为此我们通过网页进入管理界面,并通过承受器接收刷卡的信息,更新相关的数据库,保存相应的信息,以实现智能门禁系统的功能。功能和指标:1.管理员登录2.注册新卡3.注销旧卡4.查询打卡信息5.新管理员注册6.打卡语音提示7.效劳器界面显示硬件及系统方案:〔1〕主要是用开发板实现了一个门禁系统的效劳器。详见下列图:系统构造框图〔2〕实现B/S架构的方法如下:〔3〕开发板的界面是通过qt编程实现的,本程序分为效劳器进程和界面进程,两个进程通过命名管道来通信。而各种数据是用sqlite存储到数据库中的,还用到了*ml技术来传递查询信息。相关必备知识和技术阐述RFID射频识别〔RFID〕是一种无线通信技术,可以通过无线电讯号识别特定目标并读写相关数据,而无需识别系统与特定目标之间建立机械或者光学接触。无线电的信号是通过调成无线电频率的电磁场,把数据从附着在物品上的标签上传送出去,以自动辨识与追踪该物品。*些标签在识别时从识别器发出的电磁场中就可以得到能量,并不需要电池;也有标签本身拥有电源,并可以主动发出无线电波〔调成无线电频率的电磁场〕。标签包含了电子存储的信息,数米之内都可以识别。与条形码不同的是,射频标签不需要处在识别器视线之内,也可以嵌入被追踪物体之内。许多行业都运用了射频识别技术。将标签附着在一辆正在生产中的汽车,厂方便可以追踪此车在生产线上的进度。仓库可以追踪药品的所在。射频标签也可以附于牲畜与宠物上,方便对牲畜与宠物的积极识别〔积极识别意思是防止数只牲畜使用同一个身份〕。射频识别的身份识别卡可以使员工得以进入锁住的建筑局部,汽车上的射频应答器也可以用来征收收费路段与停车场的费用。*些射频标签附在衣物、个人财物上,甚至于植入人体之内。由于这项技术可能会在未经本人许可的情况下读取个人信息,这项技术也会有侵犯个人隐私忧患。BOABOA效劳器是一个小巧高效的web效劳器,是一个运行于uni*或linu*下的,支持CGI的、适合于嵌入式系统的单任务的效劳器,源代码开放、性能高。CGICGI在物理上是一段程序,运行在效劳器上,提供同客户端HTML页面的接口。即客户端与效劳器的接口。比方留言本的工作流程:先由用户在客户端输入一些信息,如名字之类的东西。接着用户按一下“留言〞〔到目前为止工作都在客户端〕,浏览器把这些信息传送到效劳器的CGI目录下特定的cgi程序中,于是cgi程序在效劳器上按照预定的方法进展处理。在本例中就是把用户提交的信息存入指定的文件中。然后cgi程序给客户端发送一个信息,表示请求的任务已经完毕。此时用户在浏览器里将看到“留言完毕〞的字样。整个过程完毕。SecureCRTSecureCRT是一款支持SSH〔SSH1和SSH2〕的终端仿真程序,简单地说是Windows下登录UNI*或Linu*效劳器主机的软件。SecureCRT支持SSH,同时支持Telnet和rlogin协议。SecureCRT是一款用于连接运行包括Windows、UNI*和VMS的理想工具。通过使用内含的VCP命令行程序可以进展加密文件的传输。有流行CRTTelnet客户机的所有特点,包括:自动注册、对不同主机保持不同的特性、打印功能、颜色设置、可变屏幕尺寸、用户定义的键位图和优良的VT100,VT102,VT220和ANSI竞争.能从命令行中运行或从浏览器中运行.其它特点包括文本手稿、易于使用的工具条、用户的键位图编辑器、可定制的ANSI颜色等.SecureCRT的SSH协议支持DES,3DES和RC4密码和密码与RSA鉴别。超级终端超级终端的原理是将用户输入随时发向串口〔采用TCP协议时是发往网口,这里只说串口的情况〕,但并不显示输入。它显示的是从串口接收到的字符。所以,嵌入式系统的相应程序应该完成的任务便是:1. 将自己的启动信息、过程信息主动发到运行有超级终端的主机;2. 将接收到的字符返回到主机,同时发送需要显示的字符〔如命令的响应等〕到主机;3. 在单片机开发时使用。串口通信串行接口是一种可以将承受来自CPU的并行数据字符转换为连续的串行数据流发送出去,同时可将承受的串行数据流转换为并行的数据字符供应CPU的器件。一般完成这种功能的电路,我们称为串行接口电路。AJA*AJA*即“Asynchronous,Javascript+*ML〞〔异步JavaScript和*ML〕,是指一种创立交互式网页应用的网页开发技术。AJA*=异步JavaScript和*ML〔标准通用标记语言的子集〕。AJA*是一种用于创立快速动态网页的技术。通过在后台与效劳器进展少量数据交换,AJA*可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的*局部进展更新。传统的网页〔不使用AJA*〕如果需要更新内容,必须重载整个网页面。消息队列“消息〞是在两台计算机间传送的数据单位。消息可以非常简单,例如只包含文本字符串;也可以更复杂,可能包含嵌入对象。消息被发送到队列中。“消息队列〞是在消息的传输过程中保存消息的容器。消息队列管理器在将消息从它的源中继到它的目标时充当中间人。队列的主要目的是提供路由并保证消息的传递;如果发送消息时接收者不可用,消息队列会保存消息,直到可以成功地传递它。消息队列〔也叫做报文队列〕能够克制早期uni*通信机制的一些缺点。作为早期uni*通信机制之一的信号能够传送的信息量有限,后来虽然POSI*1003.1b在信号的实时性方面作了拓广,使得信号在传递信息量方面有了相当程度的改良,但是信号这种通信方式更像"即时"的通信方式,它要求承受信号的进程在*个时间*围内对信号做出反响,因此该信号最多在承受信号进程的生命周期内才有意义,信号所传递的信息是接近于随进程持续的概念〔process-persistent〕;管道及有名管道则是典型的随进程持续IPC,并且,只能传送无格式的字节流无疑会给应用程序开发带来不便,另外,它的缓冲区大小也受到限制。消息队列就是一个消息的链表。可以把消息看作一个记录,具有特定的格式以及特定的优先级。对消息队列有写权限的进程可以向消息队列中按照一定的规则添加新消息;对消息队列有读权限的进程则可以从消息队列中读走消息。消息队列是随内核持续的。命名管道“命名管道〞又名“命名管线〞〔NamedPipes〕,是一种简单的进程间通信〔IPC〕机制,MicrosoftWindows大都提供了对它的支持〔但不包括WindowsCE〕。命名管道可在同一台计算机的不同进程之间或在跨越一个网络的不同计算机的不同进程之间,支持可靠的、单向或双向的数据通信。推荐用命名管道作为进程通信方案的一项重要的原因是它们充分利用了Windows内建的平安特性〔ACL等〕。用命名管道来设计跨计算机应用程序实际非常简单,并不需要事先深入掌握底层网络传送协议〔如TCP、UDP、IP、IP*〕的知识。这是由于命名管道利用了微软网络提供者〔MSNP〕重定向器通过同一个网络在各进程间建立通信,这样一来,应用程序便不必关心网络协议的细节。多线程编程线程在进程的根底上作进一步抽象,也就是说一个进程分为两个局部:线程集合和资源集合。线程是进程中的动态对象,它是一个独立的控制流,进程中的所有线程将共享进程拥有的资源。在Linu*中,可把线程分为内核线程、内核支持的用户线程和线程库支持的用户线程等3种类型。其中,内核编程负责实现一个指定系统功能;内核支持的用户线程实质上是特殊的进程,能被单独调度和运行;用户进程是通过线程库实现的,内核不参与调度,线程库提供同步和调度方法。我们做实验所用到的正是多线程编程里的用户线程。每个用户线程都可以有自己的用户栈,即用来保存用户级存放器上下文以及信号屏蔽等状态信息的主存区。线程库支持的用户线程不是真正的调度实体,内核对他们一无所知,而只是调度用户线程所属的线程,这些进程再通过线程库函数来调度进程内的用户线程。移植*ML的移植ARM移植1、下载源文件 下载地址:code.google./p/m2sc/downloads/detail?name=lib*ml2-2.7.2.tar.gz&can=2&q2、安装 mkdir/usr/local/lib*ml tar-z*vflib*ml-*.*.*.tar.gz cdlib*ml-*.*.*.tar.gz make makeinstall 注: CC=/usr/local/arm/4.3.2/bin/arm-linu*-gcc编译工具链可有可无,编译的时候指定即可 --without-zlib必须得有,如是没有的话,make时候肯能出错 执行makeinstall时,加了sudo前缀,还是有问题 一定要先sudo-s进入root再makeinstall这样就不会有问题了,主要是环境变量不同导致的3、编译 指定环境变量: e*portC_INCLUDE_PATH=/usr/local/lib*ml_arm/include/lib*ml2/:$C_INCLUDE_PATH e*portLD_LIBRARY_PATH=/usr/local/lib*ml_arm/lib:$LD_LIBRARY_PATH 编译:arm-linu*-gcc*ml_test.c-o*ml_test-L/usr/local/lib*ml_arm/lib-l*ml2 编译时会出现提示库文件不平安,这个可以忽略。4、运行在开发板上运行时需要将相关库文件拷贝到开发板中/lib目录下Lib*ml2.so lib*ml2.so.2 lib*ml2.so.2.7.8 lib*ml2.la(这个可能不需要)注:库文件在/*mlib中,拷贝时记得加上参数–a将整个目录中的内容拷贝到/lib中sqlite的移植说明:在arm平台下1、下载sqlite-autoconf-3080301.tar.gz(./)2、解压到*个文件夹下 mkdirsqlite3 tarz*vfsqlite-autoconf-3080301.tar.gz-Csqlite33、配置,这里安装到当前文件夹下的sqlite下 cdsqlite3 mkdirinstall ./configure--prefi*=/home/edu/sqlite3/install--host=arm-linu*4、make这时候却出现错误://[sqlite3]make/bin/bash./libtool--tag=CC--mode=pilearm-linu*-gcc-DPACKAGE_NAME=\"sqlite\"-DPACKAGE_TARNAME=\"sqlite\"-DPACKAGE_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_INTTYPES_H=1-DHAVE_STDINT_H=1-DHAVE_UNISTD_H=1-DHAVE_DLF_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_POSI*_FALLOCATE=1-I.-D_REENTRANT=1-DSQLITE_THREADSAFE=1-DSQLITE_ENABLE_FTS3-DSQLITE_ENABLE_RTREE-g-O2-MTsqlite3.lo-MD-MP-MF.deps/sqlite3.Tpo-c-osqlite3.losqlite3.clibtool:pile:arm-linu*-gcc-DPACKAGE_NAME=\"sqlite\"-DPACKAGE_TARNAME=\"sqlite\"-DPACKAGE_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_INTTYPES_H=1-DHAVE_STDINT_H=1-DHAVE_UNISTD_H=1-DHAVE_DLF_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_POSI*_FALLOCATE=1-I.-D_REENTRANT=1-DSQLITE_THREADSAFE=1-DSQLITE_ENABLE_FTS3-DSQLITE_ENABLE_RTREE-g-O2-MTsqlite3.lo-MD-MP-MF.deps/sqlite3.Tpo-csqlite3.c-fPIC-DPIC-o.libs/sqlite3.oarm-none-linu*-gnueabi-gcc:":Nosuchfileordirectory<mand-line>:warning:missingterminating"charactermake:***[sqlite3.lo]Error1//解决方法: 修改Makefile中的-DPACKAGE_STRING=\"sqlite\\"把sqlite和中间的空格去掉 再次 make 通过!5、然后makeinstall,在当前目录install目录中生成binincludelibshare文件目录6、进入bin文件,执行arm-linu*-stripsqlite3〔去掉调试信息〕 [install/bin]ls-l total164 -rw*r-*r-*1delongdelong1079193月623:16sqlite3 -rw*r-*r-*1delongdelong541083月623:11sqlite3_b sqlite3没有用arm-linu*-strip处理过,sqlite3_b用arm-linu*-strip处理过。7、将bin文件下的sqlite3执行文件拷至开发板bin文件下,lib文件夹下的所有文件拷至开发板的/lib文件夹下8、sqlite3打印如下QT移植3.3修改、编译QT?嵌入式Linu*应用开发完全手册?上的QT不支持触摸屏,JZ2440提供的QT支持触摸屏。3.3.1编译依赖的软件①编译、安装jpeg库源码为/work/GUI/qtopia/deps/jpegsrc.v6b.tar.gz,解开后得到目录jpeg-6b。先使用以下命令进展配置:$./configure--enable-shared--enable-static\--prefi*=/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linu*\--build=i386--host=arm然后修改生成的Makefile,如下:CC=gcc改为:CC=arm-linu*-gccAR=arrc改为:AR=arm-linu*-arrcAR2=ranlib改为:AR2=arm-linu*-ranlib最后是编译和安装,执行如下命令:$make$makeinstall-lib这将在/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linu*中的include目录中生成一些头文件,在lib目录中生成一些jpeg库文件。②编译、安装uuid库源码为/wok/GUI/qtopia/deps目录下的e2fsprogs-1.40.2.tar.gz。解压缩后参照它的INSTALL文件即可编译。对于穿插编译,在执行“../configure〞时需要指定穿插编译工具链和目标板。执行的命令如下:$tar*zfe2fsprogs-1.40.2.tar.gz$mkdirbuild;cdbuild$make$makeinstall-libs最后一条命令在/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linu*/下的include、lib目录中安装一些头文件和库,比方uuid/uuid.h、libuuid.a、libuuid.so等③编译、安装zlib库源码为/wok/GUI/qtopia/deps目录下的zlib-1.2.3.tar.gz。解压之后使用以下命令进展配置:然后修改生成的Makefile,以下是修改后的结果,都加上了“arm-linu*-〞前缀:CC=arm-linu*-gcc……LDSHARED=arm-linu*-gcc-shared-Wl,-soname,libz.so.1……CPP=arm-linu*-gcc-E……AR=arm-linu*-arrc……RANLIB=arm-linu*-ranlib最后执行以下命令编译、安装:$make$makeinstall④编译、安装png库源码为/wok//GUI/qtopia/deps目录下的libpng-1.2.23.tar.bz2。解压后进入它的目录,复制Makefile:$cpscripts/makefile.linu*./Makefile修改Makefile,以下是修改后的结果,都加上了“arm-linu*-〞前缀:AR_RC=arm-linu*-arrcCC=arm-linu*-gcc……RANLIB=arm-linu*-ranlib……最后执行以下命令编译、安装:$make$makeinstall⑤编译、安装触摸屏ts库源码为/wok/GUI/qtopia/deps目录下的tslib-1.3.tar.bz2。解压后进入它的目录,执行以下命令:$./autogen.sh$echo"ac_cv_func_malloc_0_nonnull=yes">arm-linu*.cache在make之前,为了支持触摸屏修改src/ts_read_raw.c文件,如下修改代码:char*defaulttseventtype="UCB1*00";改为:char*defaulttseventtype="H3600";为了防止出现“libtool:link:onlyabsoluterun-pathsareallowed“的错误,在plugins/Makefile里面找rpath,找到将其注释并加上绝对路径:*LDFLAGS:=$(LDFLAGS)-rpath$(PLUGIN_DIR)LDFLAGS:=$(LDFLAGS)-rpath`cd$(PLUGIN_DIR)&&pwd`最后执行以下命令编译安装:$make$makeinstall3.3.2使用补丁修改、编译QT/wok/GUI/qtopia目录下,qtopia-free-src-2.2.0.tar.gz是未经修改的内核源码,qtopia-free-2.2.0_jz2440.patch是针对JZ2440开发板的补丁文件。$tar*zfqtopia-free-src-2.2.0.tar.gz$cdqtopia-free-2.2.0$patch-p1<../qtopia-free-2.2.0_jz2440.patch$./configure-qte'-embedded-*platformlinu*-arm-g++-qconfigqpe-depths16,24-no-qvfb-system-jpeg-system-libpng-system-zlib-tslib-gif-thread-lts'-qpe'-*platformlinu*

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论