Technion - Israel institute of technology
1 / 20

Performed by: Lior Raviv & Zohar koritzki Instructor: Reuven Nisar - PowerPoint PPT Presentation

  • Uploaded on

Technion - Israel institute of technology department of Electrical Engineering. הטכניון - מכון טכנולוגי לישראל הפקולטה להנדסת חשמל. Final presentation. 2d barcode reader. Performed by: Lior Raviv & Zohar koritzki Instructor: Reuven Nisar. High speed digital systems laboratory.

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about ' Performed by: Lior Raviv & Zohar koritzki Instructor: Reuven Nisar' - bern

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

Technion - Israel institute of technology

department of Electrical Engineering

הטכניון - מכון טכנולוגי לישראלהפקולטה להנדסת חשמל

Final presentation

2d barcode reader

Performed by: Lior Raviv & Zohar koritzki

Instructor: Reuven Nisar

High speed digital systems laboratory

המעבדה למערכות ספרתיות מהירות


People with vision defects are using a brail script in order to get written information.

Due to technological developments, they will be able to use a mobile optical scanner and a barcode symbol in order to get that information.

The optical scanner will read a bar-code stamp that contains up to 3000 bytes of data on a small area.

This project’s aim is to add an interface to the optical scanner. This interface will transform the data read from the bar-code stamp to voice data in Hebrew.

High speed digital systems laboratory

המעבדה למערכות ספרתיות מהירות

System description

The system is consists of three parts: optical bar-code reader, DSP unit and the speakers.

Our project is dealing with the DSP unit that has a serial data input from the optical scanner and a data output port for voice data to the speakers.

The data transfer algorithm implemented on the DSP hardware and include voice data files that are saved on an external memory bank.

The voice data files are transferred to the speakers thru codec by a DMA controller.

High speed digital systems laboratory

המעבדה למערכות ספרתיות מהירות

System Block Diagram









Voice data



System operation diagram
System operation diagram


Scan button




Data into buffer

in memory

Translating data

into voice


Transferring voice

files from flash

And processing


Out buffering voice files

thru codec

Receiving data from scanner
Receiving data from scanner





Data is transformed throw RS232 to the uart.from the uart the data

is transformed to buffer in main memory (the string buffer).

Uart is controlled by changing uart registers values

Dsp scanner communication
Dsp-scanner communication

  • Both dsp and and scanner send data to each other thru the uart.the dsp send commands (scan) and ack\nck after receiving a package.while scanner send data and ack\nck after receiving scan command.a package can contain up to

    257 bytes (including headers)

    The package format:



Message source




* The command format is similar excluding data field

Translating data into voice syllables
Translating data into voice syllables

  • Detecting syllable in the scanned string.

  • A voice data file is kept in flash memory

    for each syllable.

  • File location (starting address) and length

    kept in searching table.

The searching table
The Searching table

  • The searching table is implemented by array of structures

    the structure format:

  • Syllable characters.

  • Syllable address (file in flash memory)

  • File length

Data flow flash into main memory
Data flow-flash into main memory

Main memory





Data is transferred to the buffers in ping pong method by the DMA,

to allow continues data out buffering (thru the codec)

and data processing in the buffer

Dma operation
Dma operation

each dma channel is operated by changing its registers.the dma triggers interrupt

after a block (file) was sent to synchronies

the data flow in the program

* opposite to the dsp 23 bit address length

(word access) the dma work with 24 bit

address (byte access)

Data processing
Data processing

  • multiplying data by gain (user define) in the data buffers

  • Syllables overlap

Syllables overlap
Syllables overlap

Disassemble each syllable to three parts

Reassemble two attached syllables by changing the relevant

parts (end of first,start of second) gain

Gain 1



Gain 2

Data flow main memory to codec
Data flow –main memory to codec






User interface
User interface

  • Scan button (new scan request)

  • Replay button (replay scanned data)

    The scanned data will be kept in an array

    Until new scan or instrument turned off

  • Volume buttons(up and down)


  • Each dma channel triggers interrupt

    all channels except uart channel triggers at

    end of block (file).the uart channel trigger a interrupt after each byte is received

Program flow
Program flow


Identify syllable

Transfer voice file from flash

Merge two syllables

Send to codec


Wait state


  • init-initialize all variables and devices the

    software use.

  • merge-merge between two syllables

  • gain_mul-multiply syllable by gain (user define)

  • wait-stay in wait state until scan\replay buttons pushed

  • find-performs search in the syllable search table and activate dma flash channel to transfer voice file

  • reply_uart-performs checksum and send ack\nck after receiving package from the scanner,replace headers with blanks (to allow correct data translation into syllables)

Functions 2
Functions (2)

  • skip_blanks-skip blanks in the scanned string (during

    data translation into syllables)

  • send_scan-send scan command to the scanner,receive ack\nck from the scanner (called from init function)

  • chk_dip-check dip switches

  • flip_buffer-flip source buffer for out buffering thru the codec (ping pong)

  • lsb-convert address to 24 bit (for the dma),and cut 16 lower bits (two version long int and pointers (lsbp))

  • msb-convert address to 24 bit (for the dma),and cut 8 higher bits (two version long int and pointers (msbp))

Problems during work
Problems during work

  • Incomplete and inaccurate documentation

  • Processor switch during work

  • Dma send just 53 bytes

  • Interrupts collusion

  • Problems cant be solved in “logical” way