Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Programming the parallel port
Gadre D., R & D Publications, Inc., Lawrence, KS, 1998. Type: Book (9780879305130)
Date Reviewed: Sep 1 1998

In teaching computing (mostly C++ programming) to electrical engineering undergraduates, I often come across the following scenario. A former student of mine is carrying out his or her final-year electrical engineering project. The project involves interfacing to a piece of data acquisition equipment. The data processing required should ideally be done on a PC using a high-level language. The hardware side of the interface is fairly clear to the student, who has by then spent quite a lot of time in the analog and digital circuit lab. What is much less clear is how to program all this in a language like C++ and how to make both software and hardware work together. The student quite naturally expects the programming tutor to provide him or her with an answer. Indeed, I do not normally teach my students low-level aspects of programming in high-level languages (I wonder if anybody would do so in a 24-hour introductory programming course!), so they would not know how to solve that problem, even though they would have done some programming in an assembly language (which they are much less motivated to use again than C++). Often, my answer to the student in question would be to give him or her a list of newsgroups or Web pages to go to for help. Or I would tell how a student who graduated two years ago sorted out having to interface to an analog-to-digital converter (ADC) and kindly sent me some of his (or maybe not his!) C code for that purpose. I have always felt a bit unhappy about giving such answers.

What has always been difficult in that scenario is the absence of a good text on C or C++ with some notion of low-level programming experience. Indeed, even if you pick up a book on something like “C++ programming for electrical engineers,” you will sooner find a comprehensive chapter on how to write classes to deal with Boolean vectors or complex numbers than on how to program an interface to ADCs. That is quite frustrating. The usual answer you will get from the programming language experts is that this problem is so implementation-dependent that the student must resolve it in each concrete case by referring to the documentation on ports and adapters.

When I received Gadre’s book for review, I immediately thought that it would be a great help, at least to me, in the above situation. The book seems to be a good practical guide on interfacing various input/output equipment to PCs and programming those interfaces in a high-level language.

It can be easily understood by undergraduates in either computing or electrical engineering. In fact, it is quite accessible to anyone interested in experimenting with a PC’s parallel port (for instance, to hobbyists). The examples and solutions provided are definitely low-cost.

Besides giving technical details and source code for solving such problems as interfacing a charge-coupled device (CCD) camera, the book contains a lot of introductory material on digital circuit components; signal and timing diagrams; parallel ports; typical parallel printer adapters; ADCs and digital-to-analog converters (DACs); enhanced parallel and extended capability ports; and the measurement of time and  frequency. 

The book would have more fully served my purpose if it had given a more thorough explanation of how one actually writes C code for such applications (rather than simply referring to the code examples). An appendix with a session on how to compile and execute such programs in a particular C programming environment (that of Microsoft or Borland) would also have been helpful. I should mention, however, that Gadre warns in the introduction that the book is written primarily from a DOS perspective and that he has not sought out the nuances of Windows programming.

On the downside, the book would, in some places, benefit from more illustrations and diagrams. I also found a few minor typos (of which I am sure that the word processing program is the cause), such as a reference to the year 19980 in the acknowledgments section.

Overall, this is an interesting and useful computer application guide, and I would certainly recommend it to my colleagues from both the computer science and electrical engineering communities. I just wish there were more texts bridging the two disciplines.

Reviewer:  A. Yakovlev Review #: CR121691 (9809-0643)
Bookmark and Share
 
Parallel I/ O (B.4.3 ... )
 
 
C (D.3.2 ... )
 
 
Data Terminals And Printers (B.4.2 ... )
 
 
Image Display (B.4.2 ... )
 
Would you recommend this review?
yes
no
Other reviews under "Parallel I/O": Date
Parallel I/O
Thakur R., Gropp W. In Sourcebook of parallel computing. San Francisco, CA: Morgan Kaufmann Publishers Inc., 2003. Type: Book Chapter
Nov 5 2003
Optimization of a kinetic laser-plasma interaction code for large parallel systems
Coulaud O., Dussere M., Hénon P., Lefebvre E., Roman J. Parallel Computing 29(9): 1175-1189, 2003. Type: Article
Jan 13 2004

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy