Department of Electrical and Computer Engineering Facebook page


  • DEPARTMENT
    • Overview
    • Computing
    • Facilities
    • Organizations
    • Educational Objectives
    • Student Outcomes
    • Scholarship Awards
    • Employment
    • Advisory Committee
    • Contact
  • ACADEMICS
    • Undergraduate
      • Computer Eng.
      • Electrical Eng.
      • Ambassadors
    • Graduate
      • Information for Prospective Students
      • ECE Graduate Handbook
      • Graduate Forms
      • Ph.D. Qualifying Exam
      • Distance Education
      • Frequently Asked Questions (FAQ)
    • Courses
    • Student Survival kit
    • Distance Learning
  • PEOPLE
    • Faculty
    • Staff
  • PROSPECTIVE STUDENTS
    • Overview
    • FAQ
    • Considering ECE
    • Scholarships
    • PC Requirements
    • Office of Admissions
  • RESEARCH
    • Overview
    • Signal Processing & Communications
    • Digital Systems & Microelectronics
    • Power & High Voltage
    • Research Centers
      • Emerging Materials Research Laboratory
      • High Voltage Laboratory
      • Robotics
    • HPCC
  • ALUMNI
Team MCR - Ece
Personal tools
  • Log in
Views
  • Page
  • Discussion
  • View source
  • History

Team MCR

From Ece

Jump to: navigation, search

Our goal is to create a functional visual output of a Magnetic Card Reading system. A user will be able to scan his or her magnetic card and receive the encoded data on a display screen.

Contents

  • 1 Team Members
  • 2 Phase 1
    • 2.1 Introduction
    • 2.2 Concept
    • 2.3 Proposed Work
    • 2.4 Required Parts
    • 2.5 Expected Deliverables
  • 3 Phase 2
    • 3.1 Introduction
    • 3.2 Concept
    • 3.3 Proposed Work
    • 3.4 Modules
  • 4 Phase 3
    • 4.1 Review of Proposed Work
    • 4.2 Module Descriptions
    • 4.3 Expected Deliverables

Team Members

Scott Wilson - Recorder

Josh Lasseigne - Checker

Brandon Leatherwood - Coordinator

Phase 1

Introduction

Magnetic card readers are used in many applications from credit card machines and automated teller machines (ATM) to the security scanners posted throughout Simrall building. The readers pull data from special cards. The cards contain a magnetic strip that stores binary data. Magnetic card readers are an important tool for the communication between people and digital systems. This project involves interfacing a magnetic card reader with the Digilent, Inc. Spartan 3 development board to display the card information on a VGA monitor.

Concept

So that the the Magnetic endcoded information can be read by a user, it must be properly converted from the format in which it is sent from the magnetic card reader to an ASCII format readible by the user and understood by the VGA monitor. A decoder module will properly receive the input from the card reader and prepare it to be converted to the user readible format. A converter module will convert the raw data input by the card reader and and prepare it to be displayed in the proper output format. Finally, a display module will prepare the properly formatted data and will output the data to the VGA monitor.

Proposed Work

  1. The FPGA will run a module that recieves the magnetic card reader data from the magnetic card reader.
  2. The FPGA will run a module that converts the magnetic card reader data to the appropriate ascii value.
  3. The FPGA will run a module that displays the current ascii value on a VGA monitor.

Required Parts

  • Kaneswipe 2 Track magnetic card reader with a PS2 keywedge
  • Pegasus Spartan III FPGA board
  • Standard VGA monitor

Expected Deliverables

With the above parts, the Spartan III board with be able to properly decode the information stored on a 2 track magnetic card and properly output the information to a VGA monitor for the user to read.

Phase 2

Introduction

Magnetic card readers are used in many applications from credit card machines and automated teller machines (ATM) to the security scanners posted throughout Simrall building. The readers pull data from special cards. The cards contain a magnetic strip that stores binary data. Magnetic card readers are an important tool for the communication between people and digital systems. This project involves interfacing a magnetic card reader with the Digilent, Inc. Spartan 3 development board to display the card information on a VGA monitor.

Concept

So that the the Magnetic endcoded information can be read by a user, it must be properly converted from the format in which it is sent from the magnetic card reader to an ASCII format readible by the user and understood by the VGA monitor. A decoder module will properly receive the input from the card reader and prepare it to be converted to the user readible format. A converter module will convert the raw data input by the card reader and and prepare it to be displayed in the proper output format. Finally, a display module will prepare the properly formatted data and will output the data to the VGA monitor.

Proposed Work

  1. The FPGA will run a module that recieves the magnetic card reader data from the magnetic card reader.
  2. The FPGA will run a module that converts the magnetic card reader data to the appropriate ascii value.
  3. The FPGA will run a module that displays the current ascii value on a VGA monitor.

Modules

  • PS2 Core Module
    • This module will receive the input from the magnetic card reader and convert it into a 16 bit hexcode derived from a user created table so that each letter, number, and symbol can be referenced quickly.
    • Inputs
      • ps2clk - clock from ps/2 port
      • ps2data - Data from magnetic card reader
    • Outputs
      • hexcode(15:0)
  • PS2 Decode Module
    • This module will receive the input from the PS2 Core Module. It will break the 16 bit hexcode down into an 8 bit value for the memory module to story as well as pass on a 10 bit address location.
    • Inputs
      • hexcode(15:0)
    • Outputs
      • address(9:0)
      • char_val(7:0)
  • Magnetic Card Decodde Module
    • This module will take the data from the PS2 Decode Module and convert it to an opcode for the Character Memory Module.
    • The format for the magnetic card reader is "Track ID + Data + ES + ENTER". Where the information is in AsCII.
      • Track ID: Tells which track the data is on.
        • Track I : '%' (25H)
        • Track II : ';' (3BH)
        • Track III : '+' (2BH)
      • Data: Information stored on the card. ASCII characters.
        • '^' seperates different data fields.
        • '$' seperates data within a field.
      • ES: '?' . Tells the FPGA that all the data has been sent for that track.
      • ENTER: 0D, End of input from the card.
      • Here are sample two sample reads from the magnetic card reader.
        • Typical Credit card read;
          •  %12345678912345678^DOE/JOHN C^1234567891234567891234?(return key function)
          •  ;1234567891234567=123456789123456?(return key function)
        • California Drivers License read;
          •  %CARIVERSIDE^DOE$JOHN$CARL^1234 ANYROAD APT 12^?(return key function)
          •  ;123456789123456=123456789123?(return key function)
          • +!!92519 C 01 M600200BRNBRN D55491990151M1O%+).[8)?=0?(return key function)
Table 1: PS2ToOpcode
Character Function Opcode
'%' Track 1 000000
';' Track 2 000001
'+' Track 3 000010
'^' Seperates data fields 000011
'$' Seperates data within fields 000100
'?' Escape Sequence 000101
'Enter' Return key 000110
'/' Data 000111
'!' Data 001000
'0-9' Data 001001 - 010010
'A-Z' Data 010011 - 101010
    • Inputs
      • clk - The circuit clock signal.
      • data_in - Data from the PS2 module.
    • Outputs
      • Opcode - Signal that instructs the VGA Display Module what character to display.
  • VGA Display Module
    • This module will display contents from the character memory module to a computer monitor.
    • Inputs
      • clk - The circuit clock signal.
    • Outputs
      • hsync - Signal that instructs monitor to re-align electron gun to the next row.
      • vsync - Signal that instructs monitor to re-align electron gun to the top of the screen.
      • pixel_column - A bus that indicates the column of the current pixel.
      • pixel_row - A bus that indicates the row of the current_pixel.
      • video_on - A signal that indicates whether or not anything is currently being drawn to the screen.
  • Character Map
    • This memory module contains pixel information about the supported characters contained in the character set.
    • Inputs
      • char_addr - The address bus that specifies a specific character.
      • char_row - The bus that specifies a particular row inside a specific character.
      • char_col - The bus that specifies a particular column inside a specific character.
    • Outputs
      • fill_pixel - A signal that specifies the whether or not the pixel designated by char_row and char_col is filled.
  • Character Memory
    • This module is written to by the decoder module. It contains all characters that should be displayed on the screen. The output from this module is used for display by the VGA display module.
    • Inputs
      • clk - The circuit clock signal.
      • addr - The address to which a read or write occurs.
      • din - The input bus.
      • we - A signal specifying when to write data from the input bus to a specified address.
    • Outputs
      • dout - The output bus.

Phase 3

Review of Proposed Work

  1. A module to store character data obtained from the card reader. Developer: Brandon Leatherwood
  2. A module to store character tiles. Developer: Brandon Leatherwood
  3. A module to create vertical and horizontal sync signals for the VGA output. Developer: Brandon Leatherwood
  4. A module to write pixel color information to the VGA output. Developer: Brandon Leatherwood
  5. A module to read in the data from the magnetic card reader and convert it to a user-defined hexcode. Developer: Scott Wilson
  6. A module to read in the user-defined hexcode and retrieve the corresponding 8 bit character value as well as passing on an address reference value for the memory module. Developer: Scott Wilson

The following image illustrates the specific modules and their integration with one another.


dsd_project_schem.jpg

Module Descriptions

  • PS2 Core Module (ps2core.v)
    • This module receives input from the magnetic card reader. It outptus the corresponding hexcode value for each incoming character read from the MCR.
    • Inputs
      • ps2_data - The input from the magnetic card reader.
      • ps2_clock - The clock input from the ps/2 port.
    • Outputs
      • hexcode(15:0) - Per a hexcode table we create, a specified value depending on which alphanumeric value or symbol is received from the card reader.
      • ready - A value letting the ps2decode module know that it should be ready to accept an incoming hexvalue.
  • PS2 Decode Module (ps2decode.v)
    • This module receives input from the ps2core module and outputs an 8-bit character reference value and the specific memory address that char_mem.v will use to read or write.
    • Inputs
      • ps2_hexcode(15:0) - The hexcode from ps2core that corresponds to a certain alphanumeric value or symbol.
      • ps2_ready - The enable for the module to be able to decode.
    • Outputs
      • addr(9:0) - The address in which char_mem.v should read from or write to
      • char_out(7:0) - 8-bit bus carrying the actual data to be displayed
      • mem_write - A value used to enable the memory module
      • complete - A value used to signify when all the characters sent by the card reader have been read, decoded, and passed along.
  • Memory module (char_mem.v)
    • This module is written to by the decoder module. It contains all characters that should be displayed on the screen. The output from this module is read by the vga_buffer module to draw stored characters on the VGA monitor.
    • Inputs
      • clk - The circuit clock signal.
      • addr(10) - The address to which a read or write occurs.
      • din(8) - The input bus.
      • we - A signal specifying when to write data from the input bus to a specified address.
    • Outputs
      • dout(8) - The output bus.
  • Charater tile module (char_rom.v)
    • This memory module contains pixel information about the supported characters contained in the character set.
    • Inputs
      • char_addr(8) - The address bus that specifies a specific character.
      • char_row(3) - The bus that specifies a particular row inside a specific character tile.
      • char_col(3) - The bus that specifies a particular column inside a specific character tile.
    • Outputs
      • out_pixel - A signal that specifies the whether or not the pixel designated by char_row and char_col is filled.
  • Video sync module (vga_sync.v)
    • This module will generate the h-sync and v-sync signals for the monitor. It also outputs the row and column information for the pixel that is currently being drawn.
    • Inputs
      • clk - The circuit clock signal.
    • Outputs
      • hsync - Signal that instructs monitor to re-align electron gun to the next row.
      • vsync - Signal that instructs monitor to re-align electron gun to the top of the screen.
      • pixel_col(10) - A bus that indicates the column of the current pixel.
      • pixel_row(10) - A bus that indicates the row of the current_pixel.
      • video_on - A signal that indicates whether or not anything is currently being drawn to the screen.
  • Video buffer module (vga_buffer.v)
    • This module is new for phase three. The purpose of this module is to use pixel_row and pixel_col information from the vga_sync module to calculate which character in memory (char_mem) is currently being drawn by the monitor. This causes the char_rom module to ouput a signal describing whether or not the current pixel in the current character should be displayed. This module will then output a RGB color on the red, green, and blue output lines (black if no pixel).
    • Inputs
      • pixel_row(10) - A bus that indicates the row of the current_pixel.
      • pixel_col(10) - A bus that indicates the column of the current pixel.
      • mem_ready - A signal that indicates that it is safe to read from memory.
      • out_pixel - A signal that specifies the whether or not the pixel designated by char_row and char_col (in char_rom) is filled.
      • video_on - A signal that indicates whether or not anything is currently being drawn to the screen.
    • Outputs
      • addr(10) - The address to which a read should occur.
      • red_out - A signal that specifies that the current pixel should contain red.
      • green_out - A signal that specifies that the current pixel should contain green.
      • blue_out - A signal that specifies that the current pixel should contain blue.
      • char_row(3) - The bus that specifies a particular row inside a specific character tile.
      • char_col(3) - The bus that specifies a particular row inside a specific character tile.

Expected Deliverables

The expected deliverables have not changed since Phase II.

Retrieved from "http://www.ece.msstate.edu/wiki/index.php/Team_MCR"
Category: Digital Systems Design
Navigation
  • Main Page
  • Community portal
  • Current events
  • Recent changes
  • Random page
  • Help
SEARCH
TOOLBOX
LANGUAGES
 
Toolbox
  • What links here
  • Related changes
  • Upload file
  • Special pages
  • Printable version
  • Permanent link
Powered by MediaWiki
  • This page was last modified on 12 January 2007, at 19:44.
  • This page has been accessed 4,464 times.
  • Privacy policy
  • About Ece
  • Disclaimers

Mississippi State University Home| PO Box 9571, Mississippi State, MS 39762 | Main Office: 1.662.325.3912

Bagley College of Engineering | Mississippi State University| Legal| Webmaster| Intranet

Page modified: Tue, 23 Sep 2008 15:18:39 CDT