基于嵌入式Linux的便携式RFID信息采集与处理系统
来源: 作者: 发布时间:2014-12-15 21:56:34 浏览量:1.4 SDRAM和Flash及自定义键盘
系统采用32位的同步动态随机存储器(SDRAM)作为系统内存,16位的Flash作为不可丢失数据存储器。用户可以通过8键的键盘进行各种操作,如读卡、写卡等。
2 系统软件设计
系统软件是整个系统的灵魂,其设计的好坏直接影响系统的稳定性和可扩功率电感器展性等性能。系统设计将软件分为两层结构,如图5所示。最下面一层为操作系统层,主要实现对Linux操作系统的移植和各种设备驱动程序的编写,包括OLED模块、USB Device、红外、键盘等设备驱动程塑封电感序。上一层为应用程序层,主要实现卡信息显示、键盘扫描、电子标签卡读写、文件传输、时钟以及电池电量检测等功能。
2.1 嵌入式Linux
Linux是一种公开源码的多任务操作系统,具有开放度高、安全性好、稳定性强、可移植性好等特点,在嵌入式操作系统中被大量采用。
本设计采用的Linux内核是在ARM-Linux的基础上,编写了OLED显示模块、USB 设备、红外收发器及键盘的设备驱动程序。在Linux系统中,设备驱动程序占有很重要的位置,它提供了在用户空间操作硬件设备的接口。Linux系统将设备分为字符设备、块设备及网络设备三种,并给出针对不同设备的数据结构及注册函数。当用户开发设备驱动程序时,只需按硬件操作的方法填充设备数据结构,并将它注册到内核中即可。
为了方便用户应用程序的编写,把USB设备实现为CDC(Communication Device Class)类设备,其驱动程序分为两层,最底层操作AT91RM9200上的USB设备控制器,如处理硬件中断、读写寄存器及操作I/O口来检测设备的插拔;上层实现了底层与TCP/IP协议层的连接,主要是模拟物理网卡,并注册到内核。这样,在应用程序的USB设备就是一个标准的网络设备,用户不需要了解驱动程序的接口,而直接使用Linux提供的套接字进行网络通信程序的开发。当用户进行二次开发时,可以不加修改地将上位机开发好的网络通信程序直接移植到本系统中,而且可以通过上位机的Telnet等工具对嵌入式系统进行一定的操作。
其他驱动程序(如OLED显示模块、键盘、红外收发器)都作为Linux下的标准字符设备编写,使用register_chrdev( )函数进行注册,提供了读、写和控制操作。在Linux系统中,应用程序对字符设备的操作与文件的操作相同。
Linux中设备驱动程序可以通过模块方式动态地加载和卸载,也可以直接编译到内核中。前者使用灵活,可以减小内核,但因嵌入式系统要求所有设备在初始化后全部就绪,不能在使用时加载设备的驱动模块。所以,本系统中所有的设备共模电感驱动程序都直接编译进内核。
每个设备驱动程序在用户空间对应一个设备文件,由文件系统管理。本系统使用ext2作为根文件系统。为了开发和升级方便,首先将根文件系统做成RAMDISK格式,所谓RAMDISK就是系统启动后将压缩的文件解压到内存,形成一个虚拟硬盘;然后,将引导程序、内核映像及根文件系统烧写到Flash中。
系统加电后,引导程序将内核映像从Flash中调入内存,然后从核入口开始执行:首先初始化CPU,然后加载各个设备驱动程序,最后挂载文件系统,执行应用程序。
2.2 应用程共模电感器序设计
Linux是多任务系统,支持多线程及多进程。多线程的优点是线程比进程小,可以使应用更轻便,线程间通信方便;缺点是所有线程使用同一个地址空间,如果一个线程出现问题,整个系统将受影响;而进程各自占有一份内存空间,可以增强系统的稳定性,但是多进程增加了系统开销,进程间通信复杂。为此,根据实际情况,考虑到系统稳定性,本系统采取两者相结合的方式分别完成数据采集处理及文件传输功能。
2.2.1 数据采集处理
数据采集处理是一个进程,它包括主线程和辅线程。主线程完成电子标签卡信息的读取、写入、实时显示及查询;辅线程实现一个时钟以提供用户当前时间,并定时对电池的电量进行检测和动态显示,在电量过低时发出警告。
应用程序用MAIL命令方式完成电子标签卡的读写。该进程首先初始化屏幕,然后等待按键中断,当有键按下时,根据键值执行相应的工作;当指定时间内没有键按下,系统则进入休眠状态,从而达到省电的目的。程序流程图如图6。
电源管理芯片应用推动技术创新提速在电子产品中,电源管理芯片扮演着非常重要的角色。除了对功耗要求十分严格的便携式产品之外,平板显示器驱动 IC、背光LED驱动IC、充电装置等也都成为模拟IC企业关注的领域,如何
高速信号布线的技巧高速信号布线的时候,需要用到传输线理论,布线过程中,有些方法和传统的一般信号布线也有所不同,下面大致给出了一些高频信号线的布线技巧。
1.多层布线
高速信号布线电路
POS机方案
方案概述
方案描述:
1. 嵌入式操作系统,多任务支持,C语言SDK支持。
2. 内置磁卡阅读器,接触式IC卡阅读器,非接触式RFID卡阅读器。
3. 内置热敏打印机。
4. 支持多种