EmbLogic's Blog

IEEE Std 1284 – 1994 : Standard Signalling Method for a bi-directional parallel peripheral interface for personal computers ( Byte Mode) and associated device driver

Writing a driver for 74LS244 parallel port and implementing read and write operations under compatability mode.
Following are the rcs files :
1. initialization :

RCS file: ./initialization.c,v
Working file: initialization.c
head: 1.4
branch:
locks: strict
root: 1.4
access list:
symbolic names:
keyword substitution: kv
total revisions: 4; selected revisions: 4
description:
Initialization file for Centronics port driver based on IEEE-1284 standard.
—————————-
revision 1.4 locked by: root;
date: 2014/11/01 04:44:07; author: root; state: Exp; lines: +0 -4
Successfully implemented the following operations :
1. Acquire the address 0×0378 – 0x037a for the device.
2. Create the device scull.
3. Initialise the cdev structure..
4. Add the device to the kernel tree.
—————————-
revision 1.3
date: 2014/10/31 15:19:12; author: root; state: Exp; lines: +0 -40
Successfully created the scull for the device.
—————————-
revision 1.2
date: 2014/10/31 15:16:36; author: root; state: Exp; lines: +1 -0
Released the region acquired by the default parallel port driver.
Acquired the same space for own driver.
Entry successfully created in /proc/ioports.
—————————-
revision 1.1
date: 2014/10/31 15:16:07; author: root; state: Exp;
Initial revision
=============================================================================

2. cleanup module for device :

RCS file: ./cleanup.c,v
Working file: cleanup.c
head: 1.4
branch:
locks: strict
root: 1.4
access list:
symbolic names:
keyword substitution: kv
total revisions: 4; selected revisions: 4
description:
Cleanup module for deriver
—————————-
revision 1.4 locked by: root;
date: 2014/11/01 04:59:28; author: root; state: Exp; lines: +0 -1
The module successfully performs the following functions :
1. Unregister the driver.
2. Release the address space acquired i.e. 0×378 – 0x37a
—————————-
revision 1.3
date: 2014/11/01 04:57:56; author: root; state: Exp; lines: +0 -1
Able to release the acquired range successfully.
The driver releases the 0×0378-0x037a address space on rmmod.
Entry removed from the /proc/ioports file.
—————————-
revision 1.2
date: 2014/11/01 04:56:34; author: root; state: Exp; lines: +0 -2
Successfully unregistered the driver on rmmod.
—————————-
revision 1.1
date: 2014/11/01 04:56:15; author: root; state: Exp;
Initial revision
=============================================================================

3. write module :

RCS file: ./dev_write.c,v
Working file: dev_write.c
head: 1.5
branch:
locks: strict
root: 1.5
access list:
symbolic names:
keyword substitution: kv
total revisions: 5; selected revisions: 5
description:
dev_write.c : runs when user space application writes the node.
module implements the protocol under Compatability mode.
—————————-
revision 1.5 locked by: root;
date: 2014/10/31 16:56:12; author: root; state: Exp; lines: +0 -1
The writer is able to perform the following :
1. Take the data from the user application.
2. Write the data to the port.
3. Check busy status of the device at the other end of the cable.
4. Send strobe.
—————————-
revision 1.4
date: 2014/10/31 16:53:29; author: root; state: Exp; lines: +1 -0
Implemented the protocol in 3 steps.
wddl : write data to data lines.
cbs : check busy status of the device, keep pollng until the device is found free.
sss : once the device is found free send the strobe signal to indicate that the data on data lines is valid content.
—————————-
revision 1.3
date: 2014/10/31 15:33:36; author: root; state: Exp; lines: +0 -59
Able to send a single byte of data.
Protocol successfully implemented.
Acknowledgement from device has not been used.
Some problem with the hardware.
—————————-
revision 1.2
date: 2014/10/31 15:32:12; author: root; state: Exp; lines: +2 -0
able to send the data successfully without any protocol.
—————————-
revision 1.1
date: 2014/10/31 15:31:39; author: root; state: Exp;
Initial revision
=============================================================================

4. read module :

RCS file: ./dev_read.c,v
Working file: dev_read.c
head: 1.2
branch:
locks: strict
root: 1.2
access list:
symbolic names:
keyword substitution: kv
total revisions: 2; selected revisions: 2
description:
dev_read : module runs when an application tries to read from the node.
Implements compatability mode for data transfer between two systems.
—————————-
revision 1.2 locked by: root;
date: 2014/10/31 16:44:09; author: root; state: Exp; lines: +1 -0
Successfully implemented the protocol.
The device sends the busy status.
Waits for strobe.
Once strobe arrives, reads data.
Sends the data to the user application by copy_to_user.
—————————-
revision 1.1
date: 2014/10/31 16:42:58; author: root; state: Exp;
Initial revision
=============================================================================

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>