Innovation... driven by intelligence and logic

Parallel Port Device Driver Development


A parallel port is a type of interface found on computers (personal and otherwise) for connecting peripherals. In computing, a parallel port is a parallel communication physical interface. It is also known as a printer port or Centronics port. It was a de facto industry standard for many years, and was finally standardized as IEEE 1284 in the late 1990s, which defined a bi-directional version of the port. Today, the parallel port interface is seeing decreasing use because of the rise of Universal Serial Bus (USB) and FireWire (IEEE 1394) devices, along with network printing using Ethernet.

We use Parallel port Device Driver Development as a building block towards mastering Device Driver Development. We would implement Driver for 74LS24 chip and use ISSS1284 Standard.


Training Topics in brief:

  • IEEE 1284 Standard
  • Introduction to Parallel Port
  • Introduction to Parallel Port Device Driver
  • Interaction with Hardware
  • Parallel Port Device Operations
    • Compatiblity Mode
    • Nibble Mode
    • Byte Mode
    • EPP Mode
    • ECP Mode
  • Stepper motor interface or mmc card interfacing

Salient Features of Training Program


  • Design and Write a parallel port device driver for 25 pin parallel port and implement bacic operations through the driver.

  • This project is designed to ensure that students of Engineering College with academic capabilities will have the skill set needed to deal with the challenges involved in real-world projects involving device drivers developemnt and associated protocols / technologies to meet the needs of industries both today and in the future.

  • The course considers linux based system programming/device drivers/kernel programming, network programming and communication techniques which can help to ensure that such techniques are reliable and act as a stable platform for networking and communication.

  • The course is taught mainly using the Linux, C, gcc, gdb, kgdb and PC with parallel port emulated as an embedded device.


  • Education: ​BE, B Tech in ECE, EEE, CSE, IT or MCA.
  • The trainee must be comfertible in using Linux Operating System.
  • ​The trainee must have intermediate/advanced level knowledge of Linux, C programming, Shell Scripting using Bash, Linux System Programming and basic driver architecture..


  • The Duration of training would be 7 working days
  • There would be:
    • 5 Classroom Sessions of 2 hours each
    • 10 Lab Sessions of 4 hours each
    • 50 hours of Training

The parallel port interface was originally known as the Parallel Printer Adapter on IBM PC-compatible computers. It was primarily designed to operate a line printer that used IBM's 8-bit extended ASCII character set to print text, but could also be used to adapt other peripherals. Graphical printers, along with a host of other devices, have been designed to communicate with the system.


Parallel Port Device Driver

The communication to peripherals across the parallel port is limited because the interface is traditionally unidirectional and there is no standard specification for the interface. Additionally, although the performance of the PC has dramatically increased, the parallel port has remained the same. This situation has led to the development of a new parallel port standard – IEEE Standard 1284-1994. This standard is based on the original Centronics Standard Parallel Port (SPP) specification, and includes the Enhanced Parallel Port (EPP) and Extended Capabilities Port (ECP).

This Project aims at writing a device driver for 74LS244 parallel port and implementing read and write operations for 3 modes- Compatibility mode , nibble mode and byte mode. In compatibility mode , the data is sent character by character on a hardware which consists of 8 led. It is tested by sending data on LEDs connected on a hardware. In nibble mode, the data is transferred from one system to another system nibble by nibble by using blocking i/o and timers. A specific protocol (IEEE 1284 ) has to implement in which writer first waits for the reader to be ready and then writes the data. Reader waits for writer to write. In byte mode, the data is transferred byte by byte from one system to another. Kernel timers and Blocking i/o are used as polling method for transferring data between two systems to synchronise the data transfer. Same protocol is implemented here also.

Training and projects Resources   Click here...

EmbLogicTM is an ISO 9001:2008(QMS) (Quality Management System) Certified Company



Go to Top ^