基于嵌入式Linux的二维码识别系统

合集下载

基于嵌入式ARM9的Linux系统移植的研究和实现

基于嵌入式ARM9的Linux系统移植的研究和实现

2020年第8期信息与电脑China Computer & Communication软件开发与应用基于嵌入式ARM9的Linux 系统移植的研究和实现冯宁波 周 剑(苏州长风航空电子有限公司,江苏 苏州 215151)摘 要:笔者以ARM9处理器为硬件,对嵌入式系统展开分析,并对安装到嵌入式ARM9芯片开发板上的Linux 系统移植进行研究。

Linux 系统移植步骤如下:首先初始化随机存取存储器,设置堆栈,引导加载程序移植;然后下载Linux 内核,修改Makefile 文件,设计交叉编译环境;最后依据内核启动过程,指定启动初始值,控制后台,并执行制作菜单配置命令。

关键词:嵌入式ARM9;Linux 系统;移植;内核中图分类号:TP311.54;TP316.81 文献标识码:A 文章编号:1003-9767(2020)08-078-02Research and Implementation of Linux System Migration Based on EmbeddedARM9Feng Ningbo, Zhou Jian(Suzhou Changfeng Avionics Co., Ltd., Suzhou Jiangsu 215151, China)Abstract: The author takes ARM9 processor as hardware, analyzes the embedded system, and studies the Linux systemporting installed on the embedded ARM9 chip development board. The steps of Linux system porting are as follows: first, initialize random access memory, set stack, boot loader porting; then download Linux kernel, modify makefile file, and design cross compiling environment; finally, according to the kernel startup process, specify the initial startup value, control the background, and execute thecommand of making menu configuration.Key words: embedded ARM9; Linux system; transplantation; kernel0 引言微电子技术快速发展使计算机技术支持下的嵌入式系统得到广泛应用,该系统因软硬件可裁剪、使用性能良好,受到人们青睐[1]。

基于ARM的语音识别系统设计

基于ARM的语音识别系统设计

基于ARM的语音识别系统设计苏征远;易燕;解永刚;戴祖诚【摘要】本文基于当前嵌入式设备广泛应用的环境下,在语音识别技术的基础之上,设计了以ARM处理器为核心,Linux为操作系统的嵌入式语音识别设备.语音识别采用了流行的DHMM模型,并使用系统开销较小的Viterbi算法实现.总体来说,本文所设计的语音识别设备具有价格低、性能强、通用性好以及扩展能力强等优点.%This paper designs the embedded speech recognition equipment which have the ARM processor as the kernel and Linux as operating system based on speech recognition technology, in the environment where embedded equipments are widely used. Speech recognition selects popular DHMM model, and uses Viterbi algorithm which has a very small system costs. All in all, the system owns advantages of low price, strong performance, high universality and good extensibility.【期刊名称】《价值工程》【年(卷),期】2012(031)004【总页数】2页(P126-127)【关键词】语音识别;DHMM;Viterbi;嵌入式系统;ARM【作者】苏征远;易燕;解永刚;戴祖诚【作者单位】昆明学院,昆明650214;昆明学院,昆明650214;昆明学院,昆明650214;昆明学院,昆明650214【正文语种】中文【中图分类】TP3990 引言随着计算机技术的飞速发展,各种各样的应用层出不穷,其中使用语音与计算机程序进行交互成为了最近热门的研究方向。

嵌入式Linux中常见的文件系统及特点

嵌入式Linux中常见的文件系统及特点

嵌⼊式Linux中常见的⽂件系统及特点1、Linux可⽀持的⽂件系统有多种,但是这么多种的⽂件系统都是基于Linux内核所提供的⽂件系统VFS的接⼝API。

因此对于Linux内核级别实现的⽂件系统只有VFS虚拟⽂件系统; 其余实现的⽂件系统都是调⽤VFS⽂件系统的API更上⼀层实现的;2、Linux⽂件系统的组成结构: 1、⽤户层:⽤户层向外提供Linux内核所⽀持⽂件系统的VFS的API接⼝ 内核层:内核实现了所说的各种⽂件系统 驱动层:驱动层是块设备的驱动程序 硬件层:硬件层是不同⽂件系统⽀持的存储器;3、Linux启动时的⽂件系统: 硬件上电启动,各项硬件初始化后,第⼀个启动的⽂件系统时RootFS根⽂件系统,如果说根⽂件系统没有起来,系统出现异常、将重启;4、常⽤的⽂件系统运⾏、存储设备有: DRAM、SDRAM以及ROM其中常使⽤flash;5、根据不同的存储介质,常见的⽂件系统有: 基于Flash(Nor、Nand)的⽂件系统有: jffs2:可读写,数据压缩、⽀持哈希表的⽂件系统,掉电保护;缺点:不适合使⽤在⼤容量的Nand Flash中,内存使⽤量太⼤极⼤降低数据操作速度; yaffs:读写速度快,占⽤内存⼩,实现内存访问异常处理;混合的垃圾回收算法;特别适合嵌⼊式设备使⽤;跨平台、⾃带Nand 芯⽚驱动 cramfs:只读的⽂件系统,执⾏速度快,内容⽆法扩充;⽂件系统健壮; romfs:简单紧凑、只读、不⽀持动态擦写;较多使⽤在uclinux系统上; 基于RAM存储介质的⽂件系统: ramdisk:将⼀部分固定⼤⼩的内存当做分区使⽤,不能真正算的上实际的⽂件系统,更像是⼀种机制,将实际的⽂件系统加载到内存中;将⼀些经常被访问的⽽⼜不会更改的⽂件放⼊到内存中,达到提⾼系统效率的⽬的;同时还负责将内核镜像与⽂件系统⼀块加载到内存中; ramfs/tmpfs :基于内存的⽂件系统,⼯作于虚拟⽂件系统层,可以创建多个⽂件系统,可以指定每个⽂件系统最⼤使⽤内存;这种⽂件系统将所有的⽂件都放在RAM中,既可以提⾼读写速度,也可以避免对flash⼤量的读写操作;⽂件系统不可以格式化,占⽤内存⼤⼩可以指定; ⽹络⽂件系统: NFS:是⼀种基于⽹络共享技术,可以在不同平台、不同机器、不同操作系统上实现⽂件共享、⽂件传输;在嵌⼊式Linux系统初始开发阶段可以⾮常⽅便⽂件传输、⽂件修改;地址异常进⼊模式描述0x0000,0000复位管理模式电平复位0x0000,0004未定义指令异常未定义模式遇到不能处理的指令,⽆法识别的指令0x0000,000c 软件中断管理模式异常发⽣时CPU处理的步骤:R13(sp),R15(PC)1、保存当前执⾏位置:LR寄存器(R14)2、保存当前执⾏状态:CPSR3、寻找中断⼊⼝,中断向量表:PC寄存器找向量地址4、执⾏中断处理完成:5、中断返回,继续执⾏:R14 <exception_mode> = return linkSPSR<exception_mode>=CPSRCPSR[4:0] =exception mode number;/* 处理器⼯作模式控制位 */CPSR[5]=0; /* 使⽤ARM指令集 */If<exception_mode> == reset or FIQ thenCPSR[6]= 1;/* 屏蔽快速中断FIQ */CPSR[7]=1; /* 屏蔽外部中断IRQ */PC=exception vector address;复位异常中断处理程序的主要功能:1、设置异常中断向量表:2、初始化数据栈和寄存器:3、初始化存储系统MMU:4、初始化关键IO设备:5、使能中断:6、处理器切换到合适的模式:7、初始化C变量跳转到应⽤程序执⾏:R14<SVC> = 设置相应的值;SPSR<SVC> = 设置相应的值;CPSR[4:0]=0b10011;/* 进⼊特权模式 */CPSR[5]=0; /* 使⽤ARM指令集 */CPSR[6] =1; /* 禁⽌相关关闭FIQ */CPSR[7] =1; /* 禁⽌IRQ */If high vectors configured thenPC=0xffff,0000;ElsePC= 0x0000,0000;其余的异常以此类推;异常的优先级:1、Reset: 优先级1(最⾼)2、Data abort:23、FIQ:34、IRQ:45、Prefetch abort:56、SWI或者undefined instruction:6(最低),软件中断异常或者未定义指令异常ARM硬件接⼝:1、程序的链接地址和程序地址:ld程序链接地址程序链接地址:是程序运⾏的起始地址;程序地址:是程序保存在硬盘中的地址;2、呵呵呵。

基于嵌入式Linux的指纹识别系统设计

基于嵌入式Linux的指纹识别系统设计
作界 面。 并 且 实现 了一 个 用 户 可 以在 数 据 库 中 同 时 注册 多个 指 纹 的功 能 。 经过 仿 真 和 验 证 , 系统 能 够 满 足 应 用 的要 求 。
关键词 : 嵌入式 L i n u x , 指纹识 别, Q t , R 3 0 5 , A R M9 , ¥ 3 C 2 4 4 0

Ab s t r a c t
I n o r de r t o s ol v e t h e e x i s t i n g de f i ci en c y o f em b edd ed f i n ger pr i n t i de n t i f i ca t i on s y s t em , t h i s pa per pu t s f o r war d a k i nd o f f i n ge r pr i nt i den t i f i c a t i on s y s t em r ea l i za t i o n m e t h od wh i c h i s b as e d on e m be dde d L i n ux ope r a t i n g s y s t em, an d i t co n cr et el y i n t r o duc e s t h e s y s t em s o f t wa r e de s i gn i de a, wh i ch m a i n l y i n c l u des t h e s of t war e pl a t f o r m bui l di n g pr oc e s s an d t h e f i n ge r — pr i n t r e co gni t i o n s y s t em appl i c a t i on s o f t war e dev e l o pm e n t Th e c on t en t i n v ol v es t h e f u n c t i on al f u nc t i on s of f i n ger pr i n t m o d— u l e, s er i al p or t s c om mun i c a t i on pr o ce du r e s, f i n ge r pr i n t BM P i mage gen er a t or , u s er da t aba s e m a n age me n t pr oc ed ur e, s y s t em o per at i o n i n t er f a c e pr o c edu r e s, an d S O o n. Th e s y s t e m ba se d on t h e em b edd ed Li nu x, n o t r e l y on a par t i cu l a r pr o c es s or , S O i t h a s t h e v e r y s t r o n g p or t a bi l i t y.

基于嵌入式Linux系统的网络编程技术

基于嵌入式Linux系统的网络编程技术

我们将介绍建立面向连接 的 sc e 网络 ok t 编程 常用函数1[的用法。详细阐述一下容易出 一 3】 1 错的 b n i d函数 。其余可以参考文献【 】 2。 12 1 . . 、服务器和客户机首先要调用 s c e ok t ( )函数 ,建立 套按 字并 指 明应 用何种 通讯 协

i l i s r ts t s l ta e a o l u
te ua e o cm n ok t ucin n h iu oea i s se a d civs te ehoo y f po rmmn wt te h s g f o mo sc e fnt s i o te Lnx prt g y tm, n n ahee h tcnl o rga i g g i h h moe f Ci t evr n h nt r dl ln/S re i o e te ewok.
维普资讯
科 技! 论 坛
中国科技信息 2 0 年第 5 06 期
N OR F MATI a 0 6 ON M r 2 0
基于嵌入式 L n x系统的网络编程技术 iu
N t r P o rm m ig e h oo y n m b d e iu e wo k r g a n T c n lg i E e d d L n x
Ky e wo d : Lnx ok t m e d d ln/S re rs i ;Sc e ;E bd e ;C et e v r u i
引 言
源代码开放的嵌入式 L n x操作系统具备稳 iu 定、高效 、易定制 、易裁减 、硬件支持广泛等特 点, 逐渐成为嵌入式操作系统的研究重点 嵌入式 系统中的设备与 P C之间经常需 要交换大量可靠 的数据 ,而且必须达到一定的传输速率 。在本系 统 中 PC 和 ARM 控制板 之间传输 的数据量有 IB G ,而且要求传输速率大干 I ye/。由于 M bt s s 网1较之串 F、并 F 3 I I 有数据传输速率快 、准确性 高等特性 ,因此,网络编程在实际中得到 了大量 的应用。利用网 F I 进行数据交换还可以进行远程 控制 。在本系统 中用的 ARM 板是傅立叶公司的 A g M90 评估板… Tl R 20 。其 C U为 A M90 P R 2T, 系统应用内存为 3M,f s 2 l h为 1M,外旷网口一 a 6 个 ,适应 lM/ 0M 以太网 串口两个 ,通讯速 0 10

嵌入式Linux指纹识别门禁系统

嵌入式Linux指纹识别门禁系统

基金 项 目: 湖 南 省 教 育 厅 科 学研 究项 目( No . 1 1 Cl 0 9 6 )

3 0・ 福 建 电脑 l 2 0 1 3 年第7 期
。 一



… 一
3 ) 配 置 并移植 嵌 入式 L i n u x内核
般用 户和 系 统管 理员 。系统 管 理员 的功 能 有 : 添加 用
对 性 能及 接 口扩展 的 需要 。 T F — MD — M1指纹 识别模 块 正 确 的 运 行 环 境 。 常 见 的 B o o t L o a d e有 U— B O O T 、
采 集分辨 率达 到 5 0 0 D P I , 识别 率高 , 稳定性 好 ; 采用 1 : G R U B 、V I V I 、 L I L O等 , 将修 改 后 的 U B O O T编译 得 到 N或 1 : l比对 ( 两种 可选 ) , 算法 速 度快 , 5 0 0人指 纹 只 二进 制 文件 ,通 过 J T A G 口将 U B O O T的 二进 制 文件 要0 . 4 3秒 ; 用户 可分 多级权 限管 理及 多级 的安 全级 别 烧 写到 N A N D F L A S H中。


嵌入式 L i n u x 指 纹识别 门禁 系统
李 悛 ,何丽芳
( 1南华 大学计算机 科 学与技 术 学院 , 湖南 衡阳 4 2 1 0 0 1 ;
2 衡 阳财经 工业职 业技 术 学院 , 湖南 衡 阳 4 2 1 0 0 1 )
【 摘 要】 : 本文介绍 了- - ̄ e &q - A R Mv 5 E及嵌入式 L i n u x 的指纹识别 门禁 系统的设计方案, 相比 4 4, ¥ . q - P C 的识 别 系统 , 本 方案 具 有轻便 、 易于安 装 、 成本低 廉 、 可扩展 性 好 、 可 移植 性 强等优 点 ; 设 计

立功科技嵌入式平台“软”实力——二维码算法篇

立功科技嵌入式平台“软”实力——二维码算法篇

立功科技嵌入式平台“软”实力——二维码算法篇摘要:二维码不仅给人们生活带来便捷,在工业领域也被广泛应用。

如何在嵌入式硬件中开发二维码功能?本文将为大家介绍ZLG二维码识别算法,教大家在ZLG硬件平台中快速搭建具备良好识别效果的二维码。

二维码的本质就是根据某种约定的编码方式,将一段文本信息转换为一个能够被解码识别的图片。

因为二维码只是一种编码方式,是一种信息的载体,可见二维码用途的关键不在于二维码,而在于如何定义这段文本信息,约定好文本信息的用途。

当前,二维码支付功能已经改变了我们的生活方式,出行不再需要带上现金,就能够通过二维码乘公交、搭地铁、打出租车、付停车费和超市购物付款等等。

由于QR码具有信息容量大、可靠性高和保密防伪性强等特点,常见的二维码支付均采用QR码。

接下来将对ZLG二维码算法进行介绍,分别阐述ZLG二维码算法特点、接口调用方法、可实现平台与性能及效果展示。

一、二维码算法特点由于二维码支付相关领域的迅速发展,ZLG针对性的进行了二维码识别算法的研发和优化,目前ZLG二维码算法库仅提供QR码接口的调用。

QR码识别算法特点如下:●以算法库的形式提供,支持多平台移植,可在现有硬件上使用,大大节省成本;●算法调用简单,方便开发人员快速实现QR码识别功能;●同时支持手机屏幕条码和纸质条码,适用范围广;●识别速度快,针对手机支付场景的优化,可实现闪付;●支持手机碎屏QR码识别,贴合实际使用的场景。

二、二维码接口调用ZLG二维码算法库目前提供文件列表为: aw_qrcode.h、libqr.a或libqr.so。

算法调用方式简单,仅需要算法初始化、解码和内存释放三个步骤,QR码算法头文件“aw_qrcode.h”接口如下:我们以基于AWorks系统的M7系列平台为例,成功调用ZLG二维码算法之前,需要准备的工作如下:保证能够获取到摄像头的视频帧数据(不同平台可以有不同的实现方式,linux系统可以通过opencv获取图像帧数据),并且转为单通道的灰度图。

《基于ARM9的嵌入式Linux系统开发原理与实践》课件第6章

《基于ARM9的嵌入式Linux系统开发原理与实践》课件第6章
第6章 创建嵌入式Linux交叉开发工具链
6.1 下载源文件 6.2 建立工作目录 6.3 输出环境变量 6.4 建立内核头文件 6.5 建立二进制工具 6.6 建立初始编译器 6.7 建立c库 6.8 建立全套编译器 6.9 完成工具链的设置 6.10 测试和验证交叉编译工具 本章小结
6.1 下 载 源 文 件
转移文件: [root@localhost bin] #mv as ar gcc ld nm ranlib strip $PREFIX/lib/gcc-lib/arm- linux/2.95.3 [root@localhost bin] #for file in as ar gcc ld nm ranlib
图6-1 Linux 2.4.21内核配置界面
6.5 建立二进制工具
binutils是GNU工具之一,它包括连接器、汇编器和其他 用于目标文件和档案的工具,它是二进制代码的处理维护工 具。安装binutils工具包含的程序有addr2line、aபைடு நூலகம்、as、c++filt、 gprof、ld、nm、objcopy、objdump、ranlib、readelf、size、 strings、strip、libiberty、libbfd和libopcodes。
给Linux内核打补丁: [root@localhost linux-2.4.21] #patch -p1 < ../../setup-
dir/patch-2.4.21-rmk1
配置: [root@localhost linux-2.4.21] #make ARCH=arm
CROSS_COMPILE=arm-linux- menuconfig
图6-4 编译初始编译器错误示例
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于嵌入式Linux的二维码识别系统摘要:设计了一种基于嵌入式linux的二维码自动识别系统。

对系统的软硬件结构进行了详细分析,提出了一种包含图像二值化、信息定位和译码的二维码识别算法。

实验证明了该系统设计的可行性和二维码识别算法的有效性。

关键词:二维码识别;嵌入式linux系统;qr码;计算机视觉中图分类号:tp391.4 文献标识码:a 文章编号:1007-9599 (2012) 17-0000-02
1 引言
随着移动互联网技术的发展,二维码作为一种新的信息技术在人们生活中的应用越来越广泛,例如票据识别、网上购物、手机支付、储存运输、食品追溯、设备管理、图书借阅、身份识别等。

二维码信息量大、容易进行快速自动数据采集,在国内外已经成为人们生活中快捷便利的信息交流方式,能在不同应用环境下对二维码进行快速可靠地识别也是目前研究的热点。

二维码未来在移动互联网和物联网中也将承担重要作用,腾讯董事会主席马化腾在2012
中国互联网大会上指出“二维码将在线上线下结合的过程中发挥巨大作用,并将成为线上线下的关键入口,通过摄像头拍摄二维码就可以把现实世界和网络世界连接起来。


2 嵌入式linux系统的优势
嵌入式linux是将日益流行的linux操作系统进行裁剪修改,使之能在嵌入式计算机系统上运行的一种操作系统,采用linux做
嵌入式系统具有如下优势。

第一,linux是开源的,继承了internet 上无限的开放源代码资源,可以根据具体应用进行修改;第二,linux内核小、效率高,性能优异;第三,linux是免费的操作系统,在价格上极具竞争力;第四,linux适应于多种cpu和多种硬件平台,是一个跨平台的系统,软件移植性好;第五,便于模块化设计,应用产品开发周期短,易于处理实时信号、安全性和稳定性好。

3 二维码识别系统
3.1 系统结构
在系统硬件层包括典型输入输出设备的usb摄像头和触摸屏,借助linux内核提供usb摄像头驱动和触摸屏驱动,方便上层程序控制摄像头和触摸屏。

在系统用户层,借助v4l(video for linux)接口实现视频采集系统,利用opencv库实现图像处理的基本操作,借助qt来实现系统界面。

二维码识别核心模块则是用c++编写,为了系统的可扩展性把二维码识别部分编译成了库文件,提供给上层调用接口。

3.2 输入和输出模块设计
图像采集和显示是二维码识别系统的基本输入输出模块。

嵌入式linux图像采集用的最多的是v4l,该内核为应用程序提供了大量的图像采集api,这些api对下层的采集设备是透明的,不用关心采集设备是usb摄像头或者专业的coms摄像头。

嵌入式linux
图像采集采用v4l2(video for linux two)接口,图像采集过程
主要包括:(1)打开设备文件,查询设备功能;(2)选择视频,并设置视频格式;(3)申请帧缓冲空间、帧缓冲入队列;(4)开始视频采集;(5)停止视频采集,关闭设备。

为了实时地在触摸屏上显示图像,重写了跨平台图形用户界面应用程序框架qt 的paintevent事件,实现图像获取、格式转化、显示区域重绘等。

3.3 二维码识别算法
二维码识别模块是整个识别系统的核心,为了更好的复用,我们把他编译成了库文件。

在对二维码图像进行预处理之后,从qr 码符号到输出数据字符的译码步骤是编码程序的逆过程。

由于qr 码在国内使用的广泛性,下面以qr码的识别为例介绍二维码的识别过程。

二维码识别过程如下:(1)对图像进行二值化处理,为了提高不同光照和对比度下的识别率,采用自适应阀值算法进行二值化处理。

(2)使用轮廓查找方法来找到3个寻像图形,利用寻像图形的坐标计算出编码区,获取二维码的版本信息和格式信息。

(3)用掩模图形对编码区的位图进行异或处理消除掩模。

(4)根据有关标准设定的模块排列规则,识读符号字符,恢复信息的数据与纠错码字[7]。

(5)按照使用的模式译码得出数据字符并输出结果。

4 系统实现与验证
开发的嵌入式二维码识别系统如图1所示。

采用的硬件系统包括:arm处理器s3c2440,内存容量256m,外存容量512m,开发板“友善之臂mini2440”,200万像素usb摄像头和3.5寸触摸屏。

系统实现的软件环境:操作系统linux-2.6.24,图像处理库
opencv-1.0.0,图形用户界面qt-embeded-4.6.7,编译器
arm-linux-gcc-4.4.3,调试器gdb-6.8。

预留对外数据接口:rj45网口和232串口。

测试用图可以根据编码算法自己生成,也可以使用互联网上现有的二维码图像。

如图2所示,(a)为摄像头采集到的二维码图像;(b)为二维码识别结果“http://”,这是河南工业大学的主页地址。

在图像有噪声、旋转、光照变化等条件进行多次实验,均能得到不错的识别效果,总体识别率达到96%。

5 结论
本文设计了一种嵌入式二维码识别系统,对系统硬件结构和软件移植进行了深入分析,重点对二维码识别算法进行了分析,该系统具有通用性强、扩展性好、方便用户使用等特点。

经过硬件设计和软件移植,实验验证了该系统设计的可行性和二维码译码算法的有效性。

参考文献:
[1]王文豪,张亚红,朱全银,单劲松.qr code二维条形码的图像识别[j].计算机技术与发展,2009,19(10):123-126.
[2]刘志海,曾庆良.条形码技术与程序设计[m].北京:清华大学出版社,2009.
[3]hallinan c. 嵌入式linux开发(英文版)[m].北京:人民邮电出版社,2008.
[作者简介]
于俊伟(1980-),男,博士,讲师,主要研究领域为模式识别、计算机视觉。

相关文档
最新文档