200 likes | 415 Views
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.
E N D
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 המעבדה למערכות ספרתיות מהירות Abstract 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 2-D Barcode scanner Digital Processing + Transforming To Voice data Output Speakers
System operation diagram scanning Scan button pushed Transferring scanned Data into buffer in memory Translating data into voice syllables Transferring voice files from flash And processing them Out buffering voice files thru codec
Receiving data from scanner BAR-CODE SCANNER BUFFER UART 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 • 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: Length Opcode Message source Status Data Checksum * The command format is similar excluding data field
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 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 Main memory buffer1 Flash DMA buffer2 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 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 • multiplying data by gain (user define) in the data buffers • 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 for(i=0;i<100;i++){ add1[(int)i]=(add1[(int)i]*((99-i)/99)+add2[(int)i]*(i/99) Gain 2
Data flow –main memory to codec file2 file1 DMA CODEC speaker
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)
interrupts • 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 initialization Identify syllable Transfer voice file from flash Merge two syllables Send to codec EOS Wait state
functions • 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) • 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 • Incomplete and inaccurate documentation • Processor switch during work • Dma send just 53 bytes • Interrupts collusion • Problems cant be solved in “logical” way