基于DSP/BIOS的门禁系统设计与实现
引言
在数字化网络化飞速发展的今天,门禁技术也得到了迅猛的发展。生物认证技术由于其具有高可靠性、安全性、方便性等特点,逐渐受到社会的瞩目。传统的人脸图像识别系统依赖于较大型设备,速度较慢、实时性较差、价格昂贵。随着数字信号处理器DSP的飞速发展,以DSP为核心的硬件系统同样可以用来进行图像处理。随着DSP的运算速度和运算精度不断提高,片内的存储容量不断加大,系统功能、数据处理能力以及与外部设备的通信功能不断增强,人们完全可以脱离PC机开发出基于DSP的图像处理系统。
本文利用DSP和实时嵌入式操作系统DSP/BIOS开发了基于人脸识别技术的门禁系统。系统利用摄像头获取人脸图像,利用DSP完成人脸图像的处理和特征提取以及识别,利用液晶显示器完成识别信息的显示,并通过串口与外部通信。
1 DSP/BIOS简介
DSP/BIOS是一种简易的实时嵌入式操作系统,主要面向实时调度与同步、主机与目标系统通讯以及实时监测等应用,具有实时操作系统的诸多功能,如任务的调度管理、任务问的同步和通讯、内存管理、实时时钟管理、中断服务管理、外设驱动程序管理等。DSP/BIOS由三个部分组成:DSP/BIOS实时内核与API、DSP/BIOS分析工具以及DSP~IOS配置工具" 。
1.1 DSP/BIOS中的线程
DSP~IOS内核通过在单一处理器上允许高优先级线程抢先低优先级线程的方式支持不同优先级的多种线程,并负责处理各线程之间的各种相互作用,包括通讯、同步等。DSP/BIOS支持四种线程:硬件中断(HWI)、软件中断(SWI)、任务(TSK)、后台线程(IDL)。它们的优先级依次从高到低。DSP~IOS用HWI模块来管理硬件中断,为DSP中的每个硬件中断配置了中断服务程序(ISR)。硬件中断用来处理时间要求苛刻的关键任务,如系统时钟等。软件中断通过SWI模块管理,用于处理一些对实时性要求较低的任务。任务通过TSK模块管理,后台线程的优先级最低,用于没有时间限制的处理,只有在其它线程不运行时,它才运行。
任务管理与软件中断的区别是,每个任务都有自己的堆栈,任务问支持同步和通讯,一个任务可以挂起以等待某一资源的释放,因此,特别适用于门禁系统的应用。本文中用到了两个任务:tskvideocapture与tskloopback,其中tskvideocapture是视频获取任务,tskloopback是视频处理和显示任务。TASK任务级的通讯主要使用SCOM(Synchronized COMmunication module)消息队列。SCOM消息是用户定义的一个数据结构,用于task之间交换信息。
1.2 DSP/BIOS程序开发
DSP/BIOS支持交互式的应用程序开发模式,开发人员可以用DSP/BIOS先为应用程序生成一个框架,在使用实际的算法之前给程序加上一个仿真的运算负荷来测试程序,看是否满足时序要求。开发步骤如下:① 用配置工具建立应用程序要用到的对象;②保存配置文件,系统会生成编泽和链接应用程序时需的库文件;③为应用程序编写一个框架,可以使用C、c++、汇编语言;④在CCS环境下编译并链接程序;⑤使用仿真器和DSP/BIOS分析工具来测试应用程序;⑥ 重复步骤① 到⑤ 直到程序运行正确;⑦硬件开发好后,修改配置文件以支持硬件,并进行测试。
1.3 CDB配置文件
CDB文件包含了以下几个部分内容:系统部分(System)、实时分析部分(Instrumentation)、调度部分(Scheduling)、同步部分(Synchronization)、输入输出部分(Input/Output)、芯片支持库部分(CSL)。DSP/BIOS配置工具采用可视化界面,如图l所示。
图 l DSP~IOS配置界面
具体地说,CDB文件的主要配置内容有以下几部分。系统部分:Global Settings体现系统所用处理器型号及其各种参数特性;MEM体现系统的程序和代码的放置位置以及占用空间的大小。调度部分:TSK-Task Manager主要定义用户定义任务及系统后台线程所调用的子函数,任务的优先级以及其存放位置和堆栈大小的设置情况。输入输出部分:定义视频各个输入输出端口如何实现与片级支持库CSL的链接,从而实现微驱动和参数传递。
2 门禁系统的硬件结构
本系统基于TI公司的TMS320DM642设计硬件平台,因为DM642有丰富的外部设备接口,完全能够满足门禁系统的需要。DM642通过外部存储器接口(EMIF)访问片外存储器SDRAM和FLASH。SDRAM为4M x 64位的同步动态存储器接口,用于存储程序、数据和图像处理中间结果,配置在EMIF接口的CE0空间;FL ASH为4M x8位的异步静态存储器接口,用来存储人脸的模板特征、固化程序、导入装载和配置信息,配置在DM642的EMIF的CE1子空间。此外,CE1子空问还分配给状态/控制寄存器、UART等资源使用。因此,Flash的最大的可寻址范围为512K x 8位。为了访问到Flash的所有地址空间,本系统采用分页技术来实现对Flash的访问,即将整个4M x 8位的Flash分成8个512×8位的页,而页地址则由位于CPLD中的页地址寄存器提供。选用TVP5150视频解码芯片,通过I2C可编程总线进行控制,采用8位并行总线实现数据的传输。
- 基于嵌入式Linux平台的指纹门禁系统(01-20)
- 基于FM1702的非接触式读写模块设计(08-29)
- 浅谈门禁系统的485总线结构的布线规范及调试方法(12-14)
- 门禁系统项目驱动程序(11-30)
- 自己做的门禁系统3(11-29)
- 自己做的门禁系统1(11-29)