基于DSP56F826芯片的二维条码扫描器系统

发布者:科技创新实践者最新更新时间:2010-09-18 关键字:DSP56F826  二维条码扫描器  CMOS图像传感芯片  SRAM 手机看文章 扫描二维码
随时随地手机看文章

系统框图

    系统以DSP56F826芯片为核心控制模块, 使用CMOS数字图像传感芯片,图像采集分辨率可达640×480像素。当需要进行高分辨率的图象采集时,可改用1024×1024像素的芯片(成本将随之增加)。译码可靠性高。目前得到的误码率不超过6万分之一,并且还在不断改进,期望误码率不超过2000万分之一。采用RS-232通讯接口,将获取的二维条码信息实时上传给计算机显示处理。纠错等级达到8级,纠错能力强。

    二维条码扫描器系统框图如图(1)所示。CMOS图像传感芯片为光电转换元件,用与采集二维条码图像,直接输出为数字信号。由外部扩展SRAM存储该数据,再送到DSP,进行图像处理、码字分割、码字识别、信号纠错等,当一组二维条码信息的识别完成以后,服务程序控制I/O接口给出中断申请信号,DSP响应此中断申请,进入中断服务程序。译码后的二维条码数据从I/O口经SCI RS-232传送至计算机,并在屏幕上显示。软件程序和PDF417码本都储存在DSP芯片中的FLASH内,而动态采集到的二维条码图象数据则储存在SRAM内。

图1 二维条码扫描器框图

系统硬件设计

    系统硬件电路主要包括以下七个部分:条码图象采集电路、DSP主控电路、存储器扩展电路、输出接口电路、复位与时钟电路、电源控制电路、照明控制电路。

条码图象采集电路

     该电路以OV7120黑白图像传感芯片为核心,该芯片分辨率达到640×480像素,成像速度为30帧/秒,采取逐行扫描方式,输出为数字信号。此芯片功耗低,价格便宜,虽然CCD芯片在信噪比、灵敏度、成像质量等方面优于CMOS芯片,但在本系统设计中,采用CMOS芯片较为合适。

    条码图像采集电路(图2)中,Y0-Y7为总线数字输出,HREF为水平参考信号,即行扫描信号;VSYN为垂直同步信号,即场同步信号。PCLK为像素时钟输出。该电路使用5V直流电,由电源控制电路提供。虽然该芯片使用5V工作电压,但它提供3.3V的I/O口,所以它可以与I/O电压为3.3V的DSP直接相连接,不需要电平转换。当DSP接收到VSYN信号时,表示芯片开始采集第一帧条码图像数据,随后接收到HREF信号,芯片开始进行第一行的数据采集,每来一个PCLK信号,芯片就采集一个像素点的信号,当DSP接收到下一个HREF信号,芯片就进行第二行的数据采集,直到采集完640行的数据,芯片停止采集。当DSP收到下一个VSYN信号时,表示芯片采集下一帧的数据。

图2 条码图象采集电路框图

DSP主控电路

    如图1所示,该电路以DSP56F826为核心。当OV7120图像传感芯片准备采集条码图像数据时,DSP发出一个初始信号,控制SRAM重新分配地址块,同时图像传感芯片开始采集条码图象数据。采集完数据并送到SRAM中储存后,DSP开始调用处理程序对数据进行译码,译码完成后,通过SCI RS-232将数据传输到计算机。

存储器扩展电路

    由于DSP56F826片内提供的RAM只有4.5K字,而RAM中需存放大量动态采集到的条码图象数据,从条码采集电路传送过来的数据按如下计算:

640×480×4-bit = 1228800 bits

    所以我们选用128K×16-bit 的IS61LV12816作为外部扩展,来满足系统需要。

    DSP56F826为外部地址总线和外部数据总线分别提供了16个引脚,为总线控制提供了4个引脚,给扩展外围电路提供了方便。我们采用分开程序区和数据区的接口方法,采用程序选通线(/PS)接SRAM的A0地址线来实现。因此,数据区为SRAM的前64K(0000H_FFFFH),程序区为SRAM的后64K(10000H_1FFFFH)。对DSP而言,数据区和程序区的地址均为0000H_FFFFH。

输出接口电路

    该电路使用异步串口RS-232,选用MAX202E芯片作为电平转换收发器。该芯片最高数据处理速率可达120Kbps,满足传送二维条码数据的要求。经过DSP译码后的数据信号TXD0通过T1IN引脚进入MAX202E,信号的电平被提高后,经T1OUT引脚输出,再通过SCI RS-232接口中的TXD口,将译码后数据传送给计算机。R1IN为接收输入信号,R1OUT为接收输出信号。

复位与时钟电路

    虽然DSP内置了COP模块,可以完成watchdog功能,当DSP内核电压VDD低于2.2V或者I/O口电压VDDIO低于2.7V,系统自动复位。我们还专门加了外部RESET,防止系统受到外界干扰或电源波动时出现死机现象。

    DSP56F826的系统时钟由晶振提供。我们用DSP芯片内部提供的晶振电路,在EXTAL和XTAL之间接一外部晶体(4MHz)。

电源控制电路

    输入5V的直流电作为整个系统的电源。由于图像传感芯片OV7120使用5V电源,MAX202E用5V电源,外部SRAM用3.3V电源,DSP56F826 Core用2.5V电源,而DSP56F826 的I/O口用3.3V电源,所以电源分三路输出。

照明控制电路

    采用主动光源,用三个发光二极管给条码采集提供照明,便于二维条码图象的定标。当开始采集图象数据时,DSP输出一控制信号,驱动发光二极管工作。采集结束后,在DSP控制下停止工作。

    系统部分电路图示于图3。

图3 部分硬件电路图

系统软件设计

    二维条码扫描器开始工作时,首先采集二维条码图象数据,由于实际工作中条码图象会出现污损等情况,对码字的正确译出造成影响,所以必须对采集到的图象进行降噪、校正等处理。条码图象为灰度图象,对其进行二值化才能进行码字识别。在将PDF417码的所有码字正确分割后,以查表方式在码本中查找与码字相对应的值,将编码数据译出。为确认扫描的有效性,必须进行前向错误校验。如出错,则进行纠错。最后,将译码的正确数据传输到上位计算机或直接进行处理显示。软件框图如图4所示。

降噪处理

   图象采集芯片OV7120成像速度为30帧/秒,但是在实际操作过程中,会有人手抖动、条码图象移动等情况产生,采集时间过长,就会导致每帧图象之间的差别相当大,进而造成很大的识别误差,所以在每一次扫描时,我们只取三帧图象,所用时间为 :(1 / 30 ) × 3 = 0.1 s ,可以忽略人手抖动等影响。设采集到的三帧图象为I1 (x , y) 、I2 (x , y) 、I3 (x , y) , 每帧的噪声方差为σ2,取平均可得到:

I (x , y) = I (x , y)的噪声方差为σ2/3 。

    可见此方法可以有效降噪。我们不采用常见的中值滤波、Butterworth滤波等方法,是因为一个码字占有3、4个像素点,用中值或Butterworth滤波处理污损的图象,将对图象造成结构性的破坏。

图象二值化

    首先统计出图象的直方图,然后用Bayesian最佳分类器,确定最佳二值化门限电平,实现对图象的二值化处理。此二值化门限电平必须是动态调整的,因为每次的光照等外界条件是不同的,每扫描一次条码,就必须确定一个新的二值化门限电平。动态采集到的条码图象有300K像素点,但只需要取图象中间区域进行统计直方图,取中间的64×64个像素点,平均每统计一个像素点需要2个指令周期,可算得统计直方图总共需要64×64×2=8192个指令周期。确定二值化门限电平需要约2000个指令周期,由此可计算所用时间约为:(8192+2000)/ 40000000 = 0.00025 s。

码字识别与信号纠错

    在码字分割完成之后,采用模板匹配方式,在固定的码本中查找与码字相对应的值,将码字译出。这里不需要用到神经网络,因为PDF417码字模式非常标准,用简单的模板匹配即可完成,不需复杂化。对一个码字进行模板匹配需要8000个指令周期,平均每个二维条码包含500个码字,则进行模板匹配总共需要时间为:8000×500 / 40000000 = 0.1 s 。为确保译码的有效性,使用R-S错误控制码对码字进行检错和纠错,每个码字的检错和纠错需要用100个指令周期,所以总共需要100×500 / 40000000 = 0.00125 s的时间来完成二维条码数据纠错。

结语

    所设计的二维条码扫描器用DSP56F826芯片为系统核心,采用优化算法,可以快速高效地对二维条码进行识别处理。

关键字:DSP56F826  二维条码扫描器  CMOS图像传感芯片  SRAM 引用地址:基于DSP56F826芯片的二维条码扫描器系统

上一篇:一种软硬结合的嵌入式系统远程调试方法
下一篇:点对点通信协议PPPoE模块的设计

推荐阅读最新更新时间:2024-05-02 21:09

三星超车台积电、英特尔,抢头香推10纳米SRAM
    三星周三宣布,独立领先业界运用10奈米鳍式场效电晶体(FinFET)制程生产SRAM(静态随机存取记忆体),意谓着三星10奈米制程技术或许已经超越台积电(2330),甚至连晶片龙头英特尔(Intel)都被三星超车。 SRAM速度比DRAM快,常被当作中央处理器(CPU)的快取记忆体,藉以提高CPU存取效率。台积电与英特尔在SRAM制程技术上目前还分别停留在16与14奈米。 三星成功开发新世代SRAM,也代表其处理器制程工艺进阶至10奈米的过程相当顺利,估计有望在2017年初进入全面量产,将使三星争抢处理器代工订单占得有利位置。(ETnews.com) 与14奈米SRAM相比,10奈米可将128MB记忆体单位储存面
[手机便携]
STM32堆和栈(Heap & Stack)及SRAM存储使用
编译一个程序,出现下面的信息: 明明程序没有什么内容,为什么变量大小就有RW+ZI=52+1836=1888字节大小了呢,就已经使用了1888字节的SRAM空间。让我们打开map文件: 可以看到每个文件所使用的SRAM大小,比如delay文件使用了4个字节,地址从0x20000014到0x20000017。其中可以看到HEAP和STACK占了大头,分别占了0x00000200和0x00000400的空间。STACK的起始地址是0x20000360,大小是0x00000400,那么最后的地址是0x20000760,刚好等于1888=0x760字节。于是我们就知道SRAM空间用来存放了什么东西了:1、各个文件中
[单片机]
STM32堆和栈(Heap & Stack)及<font color='red'>SRAM</font>存储使用
SiliconBlue iCE65超低功耗FPGA量产出货
      SiliconBlue®日前宣布,针对手持式超低功耗应用的65纳米SRAM技术FPGA量产出货。本次发表的产品包括iCE65L02、iCE65L04以及iCE65L08,其它同系列的产品也会于几个月内跟进。iCE系列是世界上第一个专为电池供电手持式消费性市场而优化的非易失性FPGA产品。“我们的iCE65 FPGA提供最低功耗、最低价格以及最小空间,同时改善了设计和生产中所需的成本,iCE65 FPGA满足了所有手持式消费性电子产品的严格要求。”SiliconBlue总裁 Kapil Shankar表示。       SiliconBlue选择与专业半导体代工厂台积电(TSMC)合作,因为该公司能够为Silicon
[嵌入式]
DRAM SRAM SDRAM内存精华问题汇总
问题1:什么是DRAM、SRAM、SDRAM?   答:名词解释如下   DRAM--------动态随即存取器,需要不断的刷新,才能保存数据,而且是行列地址复用的,许多都有页模式   SRAM--------静态的随机存储器,加电情况下,不需要刷新,数据不会丢失,而且一般不是行列地址复用的   SDRAM-------同步的DRAM,即数据的读写需要时钟来同步   问题2:为什么DRAM要刷新,SRAM则不需要?   答:这是由RAM的设计类型决定的,DRAM用了一个T和一个RC电路,导致电容会漏电和缓慢放电,所以需要经常刷新来保存数据   问题3:我们通常所说的内存用的是什么呢?这三个产品跟我们实际使用有什么关系?
[电源管理]
STM32 DMA 应用之(一)SRAM 与flash 间数据传输
一、为什么要用DMA? DMA 全称:Direct MemoryAccess 就是可以直接内存存取; 正是它可以直接操作内存所以具备以下优点: 而无需经过CPU去操作内存的存取,这样可以解放CPU出来干其他的事情; 因为他可以进行存储器时间的数据传输,而不需经过cpu,所以大大加快了数据传输速度—是一种高速的数据传输; 二.DMA有几种传输数据方式: (1)内存到 内存之间的;即:SRAM?à SRAM (2)内存到 外设之间的; (例如:串口收到的数据 从数据寄存器 à 内存) (3) 外设到内存之间的; 三.传输的数据宽度是怎样的,数据是什么样的形式传输?DMA 能传输多大的数据量? A. 数据源地址到数据目的地址 传
[单片机]
stm32 FSMC-外扩SRAM IS62WV51216
引脚定义 FSMC配置步骤 1.使能对应引脚GPIO时钟 2.配置GPIO引脚模式 3.使能FSMC时钟 4.FSMC初始化 5.存储器块使能 举例 #define Bank1_SRAM3_ADDR ((u32)(0x68000000)) //首地址0x60000000,每块0x40000000 void SRAM_gpio_init() { GPIO_InitTypeDef gpiof = { GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_12 | GPI
[单片机]
基于SRAM/DRAM的大容量FIFO的设计与实现
引言   CMMB(China Mobile Multimedia BroADCasting)即中国移动多媒体广播,是中国第一套具有自主知识产权面向移动端的移动广播电视标准,也是由中国移动通信公司和中广传播公司共同推出的便携式移动多媒体广播电视产品,主要面向手机、PDA等小屏幕便携手持终端以及车载电视等终端提供广播电视服务。手机作为基本的通信设备,要求能够完成基本的通信功能甚至多媒体处理功能,所以在手机上集成CMMB成为一种必然趋势。该系统采用卫星与地面增补转发相结合的技术体系,广播频段为U波段 (1.55~3.4 GHz和S波段(470~860 MHz)。由于该系统采用无线广播电视网的广播式传输方式,所以不会产生任何流量费,与
[单片机]
基于<font color='red'>SRAM</font>/DRAM的大容量FIFO的设计与实现
用单片机实现SRAM工艺FPGA的加密应用
摘要:首先对采用SRAM工艺的FPGA的保密性和加密方法进行原理分析,然后提出一种实用的采用单片机产生长伪随机码实现加密的方法,并详细介绍具体的电路和程序。 关键词:静态随机存储器(SRAM) 现场可编程门阵列(FPGA) 加密 在现代电子系统设计中,由于可编程逻辑器件的卓越性能、灵活方便的可升级特性,而得到了广泛的应用。由于大规模高密度可编程逻辑器件多采用SRAM工艺,要求每次上电,对FPGA器件进行重配置,这就使得可以通过监视配置的位数据流,进行克隆设计。因此,在关键、核心设备中,必须采用加密技术保护设计者的知识产权。 1 基于SRAM工艺FPGA的保密性问题 通常,采用SRAM工艺的FPGA芯片的的配置方法主要
[应用]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved