Designed by Qtchen001&lcy

E-mail:qtchen001@qq.com

技术交流群 184564382

考勤机作为终端,主动向服务器发送连接请求,服务器可以使用VPN的方式。作为VPN服务器的计算机有两个网卡,一个连接在局域网中,一个连接在广域网中。考勤机采用主动方式连接网络,这样在一个局域网中可以安装多台考勤机。

1、考勤机终端:

终端具有的功能除基本的考勤功能外,还需要留足扩展接口,以便日后扩展。考勤机的扩展主要是这样的扩展:

人脸识别,采用摄像头拍摄照片来进行识别

指纹识别,使用专门的指纹识别模块

2、门禁考勤机主要功能需求:

考勤卡识别功能,读取考勤卡信息,检验考勤卡合格性,如果合格则记录考勤、语音提示成功并显示姓名;如果失败则语音提示不成功。

对于待考勤人员的识别,需要两方面做保证:一方面本地记录了待考勤人员的信息,姓名和卡号对应,在刷卡时查询数据库,验证;另一方面,在本地验证失败时,需要通过网络向服务器验证,验证成功时将验证信息下载到本地考勤机并提示成功,失败时则考勤机提示验证失败。

考勤记录可以存放在本地终端上,也可以通过网络上传到VPN服务器上,可以即时上传或者定时上传。考勤记录和卡号-人员对应表等信息存储在本地SD卡中。

语音提示,真人发声提示

通过U盘上传用户姓名列表,下载门禁考勤记录以及照片(当考勤机支持人脸识别时)

考勤机可以独立使用,无需连接电脑即可以设置考勤机参数,包括人员登记、人脸考勤、存储记录等。

支持考勤机本地信息和服务器信息的同步,同步协议需详细制定。

3、 考勤机软件总体方案:

(1)按键设计

图1按键设计

(2)液晶显示

图2 上班界面

图3下班界面

图4设置界面

(3)设置主机IP

如图4中所示设置服务器IP和端口(PORT)

该流程对应的软件流程为

图5设置IP软件流程图

(4)导入批量信息到终端

新的考勤机结构

图6考勤机结构

图7上位机批量导入信息

(5)终端机输入卡号

通过按键设置开始输入新的卡号

图8终端输入卡号信息

(6)网线供电(POE,Power Over Ethernet)

这部分与软件无关主要是硬件方面的设计

图9 POE

(7)上班/下班刷卡

我们假设公司设定的上班刷卡时间为7:00—9:00,则在这个时间段内刷卡时不需要按“上班”按钮,系统默认为将刷卡的员工开始上班,在此时间段之外要刷卡上班时需要先按“上班”按钮。下班时也是同理。

图10刷卡上班/下班流程图

4、底层开发方案:

基于linux的嵌入式系统开发是一个层次化的结构。Linux操作系统负责嵌入式系统硬件资源的管理,而应用层软件则负责实现具体功能。Linux系统本身就是一个层次化的系统结构,它由硬件层、设备驱动层、虚拟文件系统VFS层和应用层组成。虚拟文件系统层和设备驱动层完成底层硬件的抽象。Linux将所有的设备都当作文件处理,被称为设备文件。设备又可以细分为网络设备、字符设备和块设备。

设备驱动层需求:

根据应用的需要,系统需要的模块包括如下部分:

USB接口模块

Ethernet模块

SD卡模块

UART模块

MFRC500模块

RTC模块

NandFlash模块

SDRAM接口模块

LCD接口模块

上述这些模块在freesacale提供的支持中很多驱动已经完成,开发需要做的重点是相应模块对应于具体电路板的裁剪、UART接口模块的驱动程序和MFRC500模块的驱动程序。

图11整体软硬件框架图

(1)USB扩展接口

Linux的USB具有热插拔功能,在检测到有设备接入USB设备时,linux的hub驱动就会为插入的设备查找驱动;如果在系统中有符合的驱动,则正确配置;否则需要将相应的驱动以模块的形式加载到系统中,使用insmod命令即可加载模块

(2)UART接口

I.mx289有6个UART接口,5个高速接口和1个低速接口,低速接口可以用于调试;采用宿主机-终端机的模式,终端机linux系统的调试是用串口连接到宿主机进行的。

另外有些指纹识别模块的扩展接口也是uart接口的,所以需要预留uart接口以备扩展。

(3)Ethernet接口

Ethernet接口用于考勤终端机和远程服务器进行通信,i.mx系列芯片有1~2个10/100M的Ethernet接口,以太网接口驱动程序可以移植官方驱动,稍作修改。使用linux的网络协议栈可以实现网络通信任务。系统采用C/S结构,终端机作为客户,需要向服务器发送请求,进行连接、数据交互等

(4)IIS接口

基于扩展的功能,考勤机需要扩展音频调试接口。I.mx系列芯片包含IIS音频解码接口,其驱动程序只需稍作修改即可。

(5)LCD接口

LCD可以作为地址设备接在系统的数据和地址总线上,这样系统可以统一寻址。LCD接口驱动需要移植linux的带framebuffer的platform类型的驱动程序。

(6)RTC

RTC集成在芯片内部,直接移植官方驱动即可

(7)NandFlash

移植官方驱动

(8)SD/MMC

i.mx有3个SD/MMC/SDIO接口,demo板包含linux驱动程序。

(9)MFRC500接口

MFRC500是并行接口,建议将其连接在数据和地址总线内,使处理器能够直接寻址。它属于字符设备,只要实现其字符设备驱动程序就可以了,基本的操作是open,close,read,write,ioctl,此外还有中断处理程序。它的编解码协议运行在用户权限下。

找项目、找人才、买卖软件/方案,请到同城软件外包网 www.58witkey.com

基于Linux的考勤机设计方案V1.1(终端软件部分)相关推荐

  1. linux命令行sip电话,基于Linux和MiniGUI的SIP电话终端设计

    0 引言 随着VoIP的迅猛发展,越来越多的个人用户正在使用软件电话.IP电话通过VoIP系统拨打国内和国际长途,IP电话的需求量越来越大,同时,人们对IP电话的要求也越来越高,例如要求IP电话体积小 ...

  2. 基于Linux平台上的外文文献阅读软件—需求分析

    1 项目背景 Windows/MacOS平台上,可以借助知云文献阅读器等软件实现英文文献的翻译.阅读和批注,Linux平台却缺乏该类软件,因此通过Qt框架,调用百度翻译接口,实现一个围绕翻译功能展开的 ...

  3. ansole终端链接linux,基于Linux系统的智能家居远程控制系统设计论文.doc

    基于Linux系统的智能家居远程控制系统设计论文 学科分类号 0801 北京邮电大学毕业论文 题目 (中文):基于Linux系统的智能家居远程控制系统设计 (英文):The smart home re ...

  4. 基于Linux命令行终端的ftp客户端程序

    深入理解FTP(File Transfer Protocol)协议的有关知识,完成一个基于Linux命令行终端的ftp客户端程序专业程序代写大学生程序代写 转载于:https://www.cnblog ...

  5. 【正点原子MP157连载】第二十四章 设备树下的LED驱动实验-摘自【正点原子】STM32MP1嵌入式Linux驱动开发指南V1.7

    1)实验平台:正点原子STM32MP157开发板 2)购买链接:https://item.taobao.com/item.htm?&id=629270721801 3)全套实验源码+手册+视频 ...

  6. 基于linux的 设计,基于Linux的智能家居的设计(一)

    本课题主要目的是设计和实现一个基于Linux开发平台的智能家居系统.本系统主要使用PVC板做成的家居模型.本系统硬件使用基于ARM架构的samsung S3C6410芯片做成的OK6410开发板为手持 ...

  7. 【正点原子MP157连载】第二十五章 pinctrl和gpio子系统实验-摘自【正点原子】STM32MP1嵌入式Linux驱动开发指南V1.7

    1)实验平台:正点原子STM32MP157开发板 2)购买链接:https://item.taobao.com/item.htm?&id=629270721801 3)全套实验源码+手册+视频 ...

  8. emui10是基于linux的么,华为EMUI10在意义上还能称作安卓吗?谷歌以后的安卓版本,华为是否有必要去更新?...

    严格意义上来说还是安卓,有必要继续跟随安卓系统更新而更新. 这里我们要弄清鸿蒙系统,安卓系统和EMUI10这三者之间的关系,相信我们就能清晰的获得问题的答案.鸿蒙系统是什么 英文名叫Harmony O ...

  9. 向基于Linux的Oracle RAC 10g集群添加新节点

    在多数业务中,Oracle真正应用集群 (RAC) 配置的主要业务要求是整个系统中数据库层的可伸缩性 - 这样,当用户数增加时,可将额外实例添加到该集群来分发该负载.     在Oracle RAC ...

最新文章

  1. C语言/C++ 中除法得到结果的精度问题(有浮点数参与除法,结果就是浮点数,除数和被除数都是整数,结果默认是整数)
  2. 【使用递归玩通关汉诺塔游戏】算法01-递归(斐波那契数列、汉罗塔问题)-java实现
  3. 易语言服务器不在一个网段,设置二级路由器保持局域网在同一个网段
  4. cp命令的编写——浅谈系统调用
  5. delphi 函数内创建对象 释放_JavaScript 的函数底层运行机制
  6. 支持向量机——深度AI科普团队
  7. Labview子VI的创建与调用
  8. ascll编码表图片_ASCLL编码表
  9. 惠普打印机驱动程序安装失败解决
  10. 谈谈两个互联网大佬的「认知革命」
  11. 关于Android Studio单元测试中“Method d in android.util.Log not mocked.”问题的解决。
  12. UPC 小澳的葫芦 (最短路+01分数规划 )
  13. 我的世界服务器核心文件,minecraft1.9服务端核心Paper
  14. 【库房】DateTime.Now.Date和DateTime.Now.TimeOfDay的用法
  15. Photon教程——Photon的获取
  16. 【matlab】spm数据处理
  17. 使用Python的turtle模块绘制爱心图案
  18. 国内云服务器怎么选配置?如何低价购买国内云主机?
  19. 实变函数第一章思维导图知识点总结
  20. 制作android视频播放器,自制android视频播放器

热门文章

  1. 免费资源-成语答题小程序源码+教程
  2. 在Windows程序中打开控制台的程序
  3. matlab/simulink中代数环的问题及解决措施
  4. 编译器之语法分析器(syntax analyzer)
  5. 2021年煤矿安全检查考试总结及煤矿安全检查在线考试
  6. 华为无线设备Mesh配置命令
  7. 免费开源JAVA报表工具对比 BIRT报表VS润乾报表之初体验
  8. MySQL数据库教程天花板,mysql安装到mysql高级,强|硬 宋红康版
  9. scrapy splash模拟点击
  10. 从0开始学Logisim,计算机硬件系统设计(1)