33
USB BASED OSCILLOSCOPE A REPORT SUBMITTED TO COMSATS INSTITUTE OF INFORMATION TECHNOLOGY FOR THE DEGREE OF B.S COMPUTER ENGINEERING PROJECT ID: EE-11-029 June 2012 By Muhammad Junaid Khalid Muhammad Abbas Haider Asad Mehboob Awan Ammad Aslam Electrical Engineering Department

Final Year Project Report Finalized

Embed Size (px)

Citation preview

Page 1: Final Year Project Report Finalized

USB BASED OSCILLOSCOPE

A REPORT SUBMITTED TO

COMSATS INSTITUTE OF INFORMATION TECHNOLOGY

FOR THE DEGREE OF

B.S COMPUTER ENGINEERING

PROJECT ID: EE-11-029

June 2012

By

Muhammad Junaid Khalid

Muhammad Abbas Haider

Asad Mehboob Awan

Ammad Aslam

Electrical Engineering Department

Page 2: Final Year Project Report Finalized

Submission Form for Final-Year

PROJECT REPORT CIIT-WAH-EE-02-F8

PROJECT ID EE-11-029 NUMBER OF

MEMBERS O04

TITLE USB Based Oscilloscope

SUPERVISOR NAME Muhammad Kamran Faiz

Ammad Aslam Fa08-bs(ce)-167 [email protected]

CHECKLIST:

Number of pages attached with this form

I/We have attached a complete Project Timeline

using the form CE-DP-35A YES / NO

I/We have enclosed the soft-copy of this document along-with the codes and scripts created by myself/ourselves

YES / NO

My/Our supervisor has attested the attached document YES / NO

I/We confirm to state that this project is free from any type of plagiarism and misuse of copyrighted material

YES / NO

MEMBERS’ SIGNATURES

Supervisor’s Signature

MEMBER NAME REG. NO. EMAIL ADDRESS

Muhammad Junaid Khalid Fa08-bs(ce)-191 [email protected]

Muhammad Abbas Haider Fa08-bs(ce)-155 [email protected]

Asad Mahboob Awan Fa08-bs(ce)-126 [email protected]

F8

Page 3: Final Year Project Report Finalized

Declaration

“No portion of the work referred to in the dissertation has been submitted in support of an

application for another degree or qualification of this or any other university/institute or other

institution of learning”.

MEMBERS’ SIGNATURES

Page 4: Final Year Project Report Finalized

Table of Contents 1 Introduction .......................................................................................................................................... 8

1.1 Motivations ................................................................................................................................... 8

1.2 Aims and objectives ...................................................................................................................... 8

1.3 About Oscilloscope ....................................................................................................................... 8

1.3.1 Oscilloscope Display .............................................................................................................. 8

1.3.2 Analyzing ............................................................................................................................... 8

1.3.3 Dual Channels ....................................................................................................................... 9

1.3.4 Reset Function ...................................................................................................................... 9

1.4 Description of Milestone............................................................................................................... 9

2 Background ......................................................................................................................................... 10

2.1 Signal .......................................................................................................................................... 10

2.2 Hand-drawn oscillograms ........................................................................................................... 10

2.3 Automatically paper-drawn oscillograph .................................................................................... 11

2.4 Photographic oscillograph .......................................................................................................... 11

2.5 Cathode ray tube ........................................................................................................................ 11

2.6 Digital Oscilloscope ..................................................................................................................... 11

2.7 Literature review ......................................................................................................................... 12

2.8 Overview of USB ......................................................................................................................... 13

2.9 Layer ............................................................................................................................................ 13

2.10 Frames ......................................................................................................................................... 14

2.11 Modes of data transmission ....................................................................................................... 14

2.11.1 Isochronous ......................................................................................................................... 14

2.11.2 Bulk...................................................................................................................................... 14

2.11.3 Structure of Bulk Transfer ................................................................................................... 14

2.11.4 Bulk Transfer Ends in Two Ways ......................................................................................... 15

2.11.5 Data Size in Bulk Transfers .................................................................................................. 15

2.11.6 Speed of Transfers .............................................................................................................. 15

2.11.7 Detecting and Handling errors ............................................................................................ 15

2.11.8 Interrupt .............................................................................................................................. 15

Page 5: Final Year Project Report Finalized

5

2.11.9 Control ................................................................................................................................ 15

2.12 Enumeration ............................................................................................................................... 15

2.13 Universal Asynchronous Receiver/Transmitter .......................................................................... 16

2.13.1 Synchronous Communication Mode .................................................................................. 16

2.13.2 Asynchronous Communication Mode ................................................................................ 16

2.14 How fast Data can send .............................................................................................................. 16

3 Design Specification and Platform Selection ...................................................................................... 18

3.1 Design overviews ........................................................................................................................ 18

3.1.1 USB Communicate With PC ................................................................................................. 18

3.2 Design Specifications .................................................................................................................. 19

3.2.1 Inputs .................................................................................................................................. 19

3.2.2 PC Software ......................................................................................................................... 19

3.2.3 Mechanical Construction .................................................................................................... 19

3.3 Platform Selection ....................................................................................................................... 19

3.3.1 Microcontroller Specifications ............................................................................................ 19

3.4 Software platform ....................................................................................................................... 20

4 Implementation and Testing ............................................................................................................... 21

4.1 Analysis of Electronic circuit for signal Acquisition ..................................................................... 21

4.2 Microcontroller interfacing ......................................................................................................... 22

4.3 Development of window application .......................................................................................... 23

4.3.1 Opening Serial port ............................................................................................................. 24

4.3.2 Timeouts in Serial Communication ..................................................................................... 24

5 Results ................................................................................................................................................. 27

6 Observation ......................................................................................................................................... 29

7 Conclusion and Future Work .............................................................................................................. 30

7.1 Conclusion ................................................................................................................................... 30

7.2 Future work ................................................................................................................................. 30

8 Appendix A: Schematic Diagrams ....................................................................................................... 31

References .................................................................................................................................................. 33

Page 6: Final Year Project Report Finalized

6

Acknowledgement

In the name of ALLAH almighty who is the creator of everything in the universe and

helps us in every step of life and help us to do this project. We are also thankful to our parents

for their support and prayers. We are especially grateful to Mr. Muhammad Kamran Fiaz for his

valuable support and guidance during the entire work. We express our sincere thanks to Dr.

Sajid Siraj for project concealing and outrageous ideas as a project coordinator who helped us

to complete our team work. Last but not least we would to express our deep gratitude to all our

fellows and friends especially Mr. Asif Rizwan whose valuable suggestions and support helped

us to complete our project.

Page 7: Final Year Project Report Finalized

7

Abstract

Nowadays more and more experiments are now personal computer (PC) assisted. The

data acquisition systems we are using today are very expensive like digital oscilloscope so to

provide portability and to reduce the cost we are designing the Universal serial Bus (USB) based

oscilloscope. To interface with the device and for graph display a Graphical User Interface (GUI)

is designed that is Oscilloscope window application.

Page 8: Final Year Project Report Finalized

8

Chapter 1

1 Introduction This chapter provides an introduction about an oscilloscope (Oscilloscope) and research

carried out how to develop an USB based oscilloscope.

1.1 Motivations

Scientist and Engineers used oscilloscope to analyze behavior of signals, while using

oscilloscope they feel comfortable to check their electronics circuits response easily.

Oscilloscope is a device which plot graph of signal over time, it’s become useful for measuring

modulated signals, frequencies, propagation delays, and signal rise and fall time. In analog or

digital oscilloscopes the graph display is form when electron beam strikes the fluorescent

display screen same as television screen displays.

So to provide portability and to reduce the cost of oscilloscope we are designing an USB based

oscilloscope

1.2 Aims and objectives

Our objective is to provides technology to student of universities for testing of their

circuits they have their have oscilloscope instead of searching labs apparatus due to low in cost

each student can buy his own. Traditional oscilloscope needs maintenance every year, our

product doesn’t need maintenance like that.

1.3 About Oscilloscope

1.3.1 Oscilloscope Display

After the initial introduction we are going to presents how oscilloscope displays graphs which

are the settings behind it. After the power given to oscilloscope a horizontal line display if it is

not at zero coordinates try to adjust it by varying knob position, if after these settings still you

are unable to see the line increase brightness and sharp the line with the help of buttons. You

can also change the vertical display settings.

1.3.2 Analyzing

After the display setting finally you are able to test your circuits, so build your circuit first give

input signal with the help of function generator, select channel if function generator have more

than one channel. Adjust amplitude and type of signal whether it’s sinusoidal, square or any

other format and attach probes of oscilloscope around any component of circuit around which

you want to check the behavior.

Page 9: Final Year Project Report Finalized

CHAPTER 1: INTRODUCTION 9

Press acquire button of oscilloscope that acquire samples automatically and set best

display setting according to the waveform, if you want to still display a signal press the stop

button it stop to acquire samples and continuously displays the same signal until the run button

press. Oscilloscope displays straight line for DC and sinusoidal for AC1.

By varying voltage per division (V/div) you can take the sensitive readings at several levels which provide accuracy this button provides variable gain, also by varying time division (time/div) you can vary the frequency of signal. In 1ms/div have period of AC is 1000 HZ, while change it to 1 us/div AC signal have 1000000 HZ oscillations2.

Normal graph displays in time domain voltage signal plot against time voltage is an

electrical force presents in the circuit that produce current when electron flow, it also displays

in frequency domain you can check your signal behavior in frequency domain, recent digital

oscilloscope contains Fast Fourier transform (FFT) and Discrete Cosine Transform (DCT)

function, signal FFT or DCT is taken and signal display in that form but these are very expensive.

Constant voltage also measured by digital multi meter (DMM) but in mostly cases

circuits checked by varying voltages so oscilloscope shows these changing on screen.

1.3.3 Dual Channels

Oscilloscope has two or more input channel that’s select by channel select button due to this

fact an opportunity to analyze two or more signal behavior at same time or by select display

channel button.

1.3.4 Reset Function

Reset function is used to reset acquire and display setting of oscilloscope. Reset function turns

off the display of signal after it single line came on zero axes.

After a brief intro of oscilloscope functions moving to our project, the basic motive for doing this project is to develop a product that become familiar in market in future and reduce the cost of oscilloscope make it flexible and portable. Oscilloscope is one of the most helpful instruments available for testing electronic circuits having ability to show the signals at different nodes or points in the circuits. This USB based oscilloscope meets the functionality of traditional oscilloscope. In this Programmable Intelligent Computer (PIC) microcontroller is used for converting input analog signal into digital then transfer these digital values towards COM port then a window application will display the signal waveform on GUI application.

1.4 Description of Milestone

Analysis of Electronic circuit for signal Acquisition

Microcontroller (USB/Serial port) interfacing

USB interfacing by using firmware

Windows application development

Page 10: Final Year Project Report Finalized

10

Chapter 2

2 Background

2.1 Signal

Signals as referred in signal processing, communication systems, speech processing etc. It conveys information, shows behavior of functions or attributes of phenomenon. In real world any quantity exhibiting variation in time domain or space variation like in image, it provides information on the status of system. IEEE transactions on signal processing define the term of signal.

‘The term signal includes audio, video, speech, image, communication, geophysical, sonar, radar, medical and musical signals’

Signals are very much used so it can be say that signals are building block of oscilloscope, coz oscilloscope used to analyze the signals.

An oscilloscope called oscillograph previously, another version of oscilloscope is CRO and DSO used for viewing signals of variable voltages that plots time on X-axis and voltage on Y-axis. Sound signals converted into voltages and displayed on oscilloscope. Periodic signal repeat constantly after specific interval of time so multiples samples of signal acquires and displayed in steady form. Oscilloscope is usually calibrated so voltages over time can be read as is possible to view by human eye; this allows measuring of peak to peak voltages, frequency of periodic signals etc3.

Oscilloscopes are used in different fields like medicine, engineering and science. These types of instruments are used for maintenance of electronic equipment’s. Specific purpose oscilloscopes are used in medicine field for analyzing heartbeat and to analyze behavior of automotive systems. In past CRO used for displaying the waveforms, as technology arrive CRT used in storage oscilloscope to store the waveform with fast analog to digital converters and signal processing.

Here different types of previous oscilloscope are shown

2.2 Hand-drawn oscillograms

The earliest method of waveform for measuring voltage or current of spinning rotor was at specific points around axis of rotor was hectic and laborious with galvanometer no reading is taken out. After enhancement in the rotor, the waveform drawn on graph paper by noting angle of rotation and strength of meter at every position shown in figure 2-2.

Figure 2-2 Hand-Drawn Oscillogram

Page 11: Final Year Project Report Finalized

CHAPTER 2: BACKGROUND 11

Jules francois joubert was the first who introduced step by step method of wave measurement4.

2.3 Automatically paper-drawn oscillograph

An automated oscillograph used galvanometer for capturing waveforms, due to high frequency and speed of waveform when compared to slow reaction time the waveforms is not drawn correctly shown in figure 2-3.

The device named Hospitalier ondograph

was used for waveform measurement. This

device charged capacitor automatically at

hundredth wave; galvanometer uses the stored

energy of capacitor during decaying process5.

Figure 2-3 Paper Drawn Oscillograph

2.4 Photographic oscillograph

It was necessary for the device photographic oscillograph to measure, direct

measurement at enough speed and to use a very less mass

measurement of system to compete the motion of concerned waves

which are being measured. William Duddell had done this with the

help of moving coil oscillograph, Figure 2-4 shows prototype of

photographic oscillograph.

This method give more accurate results than paper recorders

but still improvement was there of images before they could be

examined. Figure 2-4 Photographic

Oscillograph

2.5 Cathode ray tube

Cathode ray tube developed in late 19th century; at this stage CRT explore electrons.

Karl Ferdinand Braun was inventor of the CRT oscilloscope in 1897, by oscillating signal towards

electrically charged deflector plates in a phosphor-coated CRT6.

2.6 Digital Oscilloscope

Walter LeCroy was invented Digital Storage Oscilloscope (DSO), after producing

digitizers with high-speed for the research center CERN in Switzerland, LeCroy remains one of

the three largest manufacturers of oscilloscopes in the world. This type of oscilloscope has

Page 12: Final Year Project Report Finalized

CHAPTER 2: BACKGROUND 12

many functions like FFT, frequency domain measurement, triangular form, square waveforms

etc.

2.7 Literature review

Before doing anything you have to study its history, present and what future work can be done on it. As more and more achievement, publications and research work has been done in science and technology. Our task is to build a USB Based Oscilloscope for this purpose, we study some publications related to our project.

To know about USB basics, inside USB, enumeration process, data transformation mode, how to host learn about devices, descriptors and the toolkits used for making general and custom drivers after doing many search at last but not least Mr. Ammad Aslam found USB complete 3rd edition by JAN AXELSON it’s a very interesting book to learn about USB, like its name USB complete.

After studying about USB, next task is to select a microcontroller that’s done everything we need our first search is stop to microchip DSPIC30F2020 it made for signal processing purpose but is does not contain built in USB port that’s y we drop it. Our project coordinator Dr. Sajid Siraj suggest us to use a PIC18F4550 because it contains built in analog to digital converter (adc) and USB port so we decided to use it. To know about embedded systems a book studied named PIC microcontroller and embedded system by Mazidi and Real time embedded system course is studied. For sending data towards COM port by using USB, we studied many libraries made by CCS C compiler but the useful libraries for our desired work is CDC.H and USB.H, by using function of these libraries data is send towards COM port.

For serial communication the material studied is rs232 and UART protocol7, also studied about level conversion process which is done by using max232 from the text book “PIC microcontroller and Embedded system” by Muhammad Ali Mazidi8 and introduction to serial communication9.

For designing GUI first decided to make it in visual c# but our project supervisor Mr. Kamran Fiaz suggested us to make it in visual C++ because it’s currently used in the market. For learning visual C++ we took some books10 of visual C++ from library and also start searching it on internet, we also studied some publish papers related to USB oscilloscope. In 2007 a Publication named “Virtual Oscilloscope Based on USB” has already been done and it’s published at eight international conferences on electric measurement and instruments. After this we move forward to study some embedded application based on PIC microcontroller. For data transferring purpose we use USB as host to communicating with PC1. Another IEEE publication studied named “A low cost PC Based Virtual Oscilloscope” the purpose of studying this research paper is to convert RS232 emulate over USB bus. This research paper includes parallel port use for the transfer of data.

Page 13: Final Year Project Report Finalized

CHAPTER 2: BACKGROUND 13

Another research paper of IEEE publication on 13th July 2008 namely “A PC Based Real

time Oscilloscope” was also helpful for our project. This includes data transfer method PC to

MC and a GUI interface for display of data.

2.8 Overview of USB

Because we are designing USB Oscilloscope firstly we study about PIC18F4550 USB.

PIC18f4550 have compatibility of both low and full speed USB serial interface engine (SIE) which

gives fast data rate between PIC microcontroller and USB host using built in transceiver which is

connected with external transceiver to give power to the internal transceiver an internal 3.3v

regulator available in 5v application. PIC184550 have dual port memory access to SIE and

microcontroller11.

2.9 Layer

An USB specification is structured into layered frame work shown in Figure 2-9

endpoints, data moved to this level. Endpoint 0 must be control endpoint, when device

connected to bus endpoint 0 configure the device12.

Figure 3-4 USB layer

Device

Configuration

Interface Interface

Endpoint Endpoint Endpoint Endpoint Endpoint

Page 14: Final Year Project Report Finalized

CHAPTER 2: BACKGROUND 14

2.10 Frames

Communication on the bus is framed into 1 ms time slots. A frame contains transactions

towards different devices and endpoints Figure 2-10 shows the example of transaction in frame

(fig 17.9 data sheet 17.10.2).

Figure 3-5 USB Frames

2.11 Modes of data transmission

There are four modes of transmission of data

Isochronous

Bulk

Interrupt

Control

2.11.1 Isochronous

This type of transfer used for large amounts of data with time delivery sure and data

integrity not ensured. This mode used in streaming applications where data loss in small

amount is not critical such as audio video streaming13.

2.11.2 Bulk

This type of transfer used for large amounts of data. The main difference between

isochronous and bulk transmission is, it ensured data integrity and timeliness is not ensured14.

We are using bulk transfer mode because in this data integrity is ensured.

2.11.3 Structure of Bulk Transfer

Bulk transfer consists of one or more in or out transactions, bulk tractions is like half

duplex either all IN transactions or all OUT transactions. If transferring data in both directions

so for this a separate pipe is used.

Page 15: Final Year Project Report Finalized

CHAPTER 2: BACKGROUND 15

2.11.4 Bulk Transfer Ends in Two Ways

When the expected amount of data has transferred

When a transaction contains either zero data bytes or another number of bytes that is

less than the endpoint’s maximum packet size

USB protocol doesn’t define the amount of data in bulk transformation mode, to specify this

host can use class specific or vendor specific protocol. Transmission begins with a header file

this header file specifies number of bytes that transferred or device or host specify amount of

data. For bus time conserve the host use PING protocol in high speed bulk transfers. In bulk

transfer when high speed device communicate with low speed or high speed device host use

split transactions for transferring data15.

2.11.5 Data Size in Bulk Transfers

In bulk transfer maximum packet size of 8, 16, 32 or 64 bytes when operating in full

speed mode it may be 512 bytes in high speed mode. In enumeration process host read

maximum packet size for each bulk endpoint from device descriptor. Amount of data transfer

may be less than, equal to or also may be greater than maximum packet. The data transactions

are done in multiple transactions if data not fit in single packet16.

2.11.6 Speed of Transfers

There is not any dedicated bandwidth for bulk transfer but bulk transfers are completely

eventually. When bus is idle bulk transfer use most of bandwidth so due to this specification

bulk transfer is fastest17.

2.11.7 Detecting and Handling errors

Error detecting done in bulk transfers, if a device does not doing handshaking or

receives NAK handshake so host sends data twice time. To ensure no data is lost data toggles

are used. Full speed device support all transfer types and low speed device limited to interrupt

and control.

2.11.8 Interrupt

This type of transfer ensured timeliness for small blocks of data also data integrity ensured.

2.11.9 Control

This type provides for device setup control18

2.12 Enumeration

When device attach to the bus after it host start enumeration process to start identify

the device. Firstly host interrogates the device gathering information like power consumption,

data size, descriptor and protocol19.

Page 16: Final Year Project Report Finalized

CHAPTER 2: BACKGROUND 16

2.13 Universal Asynchronous Receiver/Transmitter

A universal Asynchronous receiver/transmitter (UART) is the component of

systems that’s used for serial and parallel communication. A UART takes data from serial port

and converted into sequential form; at receiving end another UART converts this sequential

form to serial. In previous decades serial transmission is commonly used with help of modems

for communication between computers without establishing networks. In UART both

Asynchronous and synchronous transmission used but in our case Asynchronous transmission is

used. A UART usually in form of integrated circuit used for serial communication over a PC or

any other device contains serial port, now UART is commonly used in microcontroller to

communicate with computer20 different protocols are used for the transmission of data and

mostly are compatible with each other in this case RS-232 used21.

2.13.1 Synchronous Communication Mode

Synchronous communication require after each transformation an end bit is required that

shows from one end data transfer complete other one should start conversation. In

synchronous mode from both ends data can’t send simultaneously from both ends22.

2.13.2 Asynchronous Communication Mode

Asynchronous term used where data can be intermittently transmitted instead of steady

stream data transfer mode, like a telephonic conversation is asynchronous because both people

can talk simultaneously and interrupted each other. In asynchronous communication no clock

signal is transmitted with data, receiving end has its own way to time itself for able to receive

incoming data. In rs232 these parameters are set before starting the transmission, transmitter

end keep sending 1 when transmission line idle that’s show link is up, sends 0 starting bit

before each byte transmitted and stop it 1. In asynchronous data transfer mode receiver must

distinguish between valid data and noise for this start bit and stop bit used. In rs232

asynchronous mode is used.

2.14 How fast Data can send

Speed of data transfer can be set in baud rate higher the baud rate higher the data sending rate that sets how many bits per second send.

For example 1200 baud rate means 1200 bits sends per second

In rs232 some standard speed of transmission

1200

2400

9600

38400

115200

Page 17: Final Year Project Report Finalized

CHAPTER 2: BACKGROUND 17

115200 is the highest baud rate for serial communication

9600 baud rate is used that means

1/9600= 0.104 ms if you transmit 8 bits of data the last one 8*0.104ms=0.832 ms, each byte requires starting and stop bit so actual speed is 10*0.104 ms= 1.04 ms

So data rate is 1/time that is 1/1.04 ms = 0.96 Kbytes per second

On physical layer

‘1’ is sent using -10v between -5V to -15V

‘0’ is sent using 10v between 5V to 15V

Page 18: Final Year Project Report Finalized

18

Chapter 3

3 Design Specification and Platform Selection

3.1 Design overviews

3.1.1 USB Communicate With PC

Analog Input

Hardware Portion

Software Portion

PIC18F4550 Microcontroller

USB port

(D+ /D- pins)

Personal Computer

Window Application

Graphical User Interface

Controls

Store

Show

Graph

Display

Controls

Visual C++

Communication

Class

USB Port

Device Driver

Virtual COM Port

Analog to Digital

Converter

Page 19: Final Year Project Report Finalized

CHAPTER 3: DESIGN SPECIFICATION AND PLATFORM SELECTION 19

3.2 Design Specifications

3.2.1 Inputs

Number of channels: 1

Probe Connection: BNC

Usable Probe type: Standard 1:1 probes

3.2.2 PC Software

PC connection: USB 1.1 and 2.0

PC software: Windows 2000, XP (SP3)

3.2.3 Mechanical Construction

Power supply: Trough USB (5V / 250mA) (No external Power source is required)

Approx. size (in enclosure): 4.5” x 2.5” x 1.2” (114 mm x 66 mm x 31mm)

Approx. Components used: 18

3.3 Platform Selection

3.3.1 Microcontroller Specifications

PIC is a family of Harvard architecture microcontrollers made by microchip technology

derived from the PIC1640 originally developed by General instruments microelectronics

division23. PIC stands for Programmable intelligent computer. PICs are popular due to its low

cost, wide availability, extensive collection of application notes, free development tool, serial

programming and built in USB. We chose PIC 18F4550 microcontroller by microchip technology

because it contain 13 ADC channels, 32 Kbytes of flash memory and is compactable with C

compiler optimized architecture. The Pin description of PIC18F4550 shown in Figure 2-1. It

contains 10 bits built in ADC module with positive and negative voltage references. It also has a

well-built USB 2.0 available for low speed (1.5Mb/s) and full speed (12Mb/s) and requires a low

voltage supply24. To program the PIC microcontroller we are using MPLAB integrated

Development Environment (IDE), it is a tool for the development of embedded applications25.

For doing this project we are using MPLAB IDE as a microcontroller programming apparatus for

built execution file with extension of hex with the help of communicating driver class (CDC) and

after it the hex file is loaded in PIC18F4550 with the help of USB boot loader26.

First we take two analog input signals at channel 1 (AN0) & channel 2 (AN1) then

convert it to digital using PIC18F4550 ADC, after it digital value are stored in a integer type then

Page 20: Final Year Project Report Finalized

CHAPTER 3: DESIGN SPECIFICATION AND PLATFORM SELECTION 20

transmit these towards PC using USB, This process running continuously until next input signal

detected.

3.4 Software platform

For designing GUI first decided to make it in visual C# but our project supervisor Mr. Kamran Fiaz suggested us to make it in visual C++ because it’s currently used in the market. For learning visual C++ we took some books27 of visual C++ from library and also start searching it on internet, we also studied some publish papers related to USB oscilloscope.

Page 21: Final Year Project Report Finalized

21

Chapter 4

4 Implementation and Testing

4.1 Analysis of Electronic circuit for signal Acquisition

Before doing analysis of signal acquisition firstly we make signal calibration circuit in

which several operational amplifiers used to attenuate the signal and phase shift. The

microcontroller Analog to digital converter (ADC) has fixed input voltage range from 0 – 5v.

Signals smaller than this range having reduced resolutions and higher voltage signal get clipped.

We need a circuitry that attenuate and amplify the input signal suitable for ADC (Figure 4-1)

Figure 4-1: Input Stage of Channel 1

Page 22: Final Year Project Report Finalized

CHAPTER 4: IMPLEMENTATION AND TESTING 22

After doing voltage divider then we applies superposition principle we calculate voltage or

current across any resistor by adding all voltages and current source acting alone then all other

independent source replace by short circuit and the entire individual currents source replaced

by open circuit28. After it attenuated the input signal and biased to some extend DC level (0 –

5V) as requirement of ADC input.

4.2 Microcontroller interfacing

The Microcontroller built in ADC ranges from input range of 0 to 5v. This range is fixed

or constant. Since the input signal that the scope is supposed to measure can span a wide range

from quite small to quite large, input stage is used that can attenuate or amplify the input

signal to make it useful for the ADC. The circuit first tested shown in figure 4-2 first circuitry get

input signal then convert this analog signal to digital by using microcontroller built in ADC..

After ADC digital data send towards com port by using built in USB of PIC18F4550.

Figure 4-2: Microcontroller Interfacing

Page 23: Final Year Project Report Finalized

CHAPTER 4: IMPLEMENTATION AND TESTING 23

In case of measuring signal having negative voltage, so shift them up with the help of offset amplifier.

4.3 Development of window application

Next move in making of our project is designing of window application that contains

oscilloscope function in GUI form. Starting of our work is learning of visual C++ and installation

of visual studio, after taking some tutorials of visual C++ from MSDN we start working on visual

studio. First thing that’s done is reading of data from COM port and saving of data. Figure 4-2

shows the flow chart of Window application.

Figure 4-2: Flow chart

Page 24: Final Year Project Report Finalized

CHAPTER 4: IMPLEMENTATION AND TESTING 24

4.3.1 Opening Serial port

Serial port opening can be done by using Win32 file by using CreateFile function that’s open a handle to a communication resource, like specify ‘COM3’ opens a handle for serial port 3. If COM 3 is used by another resource so CreateFile fails, after it any thread of the process can use handle returned by CreateFile. The CreateFile calling process uses the handle in the DeviceIoControl function to send control codes towards device29.

CreateFile function sets the following attributes

Read/write access for specified resource

Handle can inherit by child process

Handle can uses asynchronous I/O operations

Win32 supports both synchronous and Asynchronous file I/O operations on serial link, while

using rs232 asynchronous I/O operations is used. ReadFile function reads data from

communication resource and WriteFile function writes data on communication resource like

COM port.

4.3.2 Timeouts in Serial Communication

Timeouts define handle for communication that sets time-out parameters for the

behavior of read and write operations, after the specific timer elapse ReadFile or WriteFile

operatios conclude. Each timer specifies interval for a timer elapses; the system notifies the

window associated with the timer. Accuracy of a timer depends on the system clock rate and on

application how it retrieves messages from message queue.

Two types of time-outs are enabled

An internal time out occur when

timer of reception of character

exceeds from defined time

A total time out occur when read

operations exceeds from a

defined time

To change the time outs

SetCommTimeouts function and to

determine time out values

GetCommTimeouts function used30.

Page 25: Final Year Project Report Finalized

CHAPTER 4: IMPLEMENTATION AND TESTING 25

After it configuration of communication port is done by using. Baud rate, parity bit and stop bit

settings a timer wait in an infinite loop until data is available at specified COM port. After

receiving data on COM port our next task is to save this data by using serial communication in

visual c++. For serial communication a library is used named SerialCom.h, to access the Serial

ports WriteComPort is used this function have two parameters first one is COM port and

second one is character to send by using serial communication, if necessary com port baud rate

is changed by CBR_baudrate otherwise its default value is 9600. Data written on COM port can

be handled by CreateFile structure and WriteFile function used to send data at COM ports.

While data receiving on COM port is little more complex by using of ReadByte function reads

data from COM port if not data available on COM port so it will hand because it will wait in an

infinite loop. First thing for doing serial communication is open the COM port of computer from

which data is read or sends. In our case we only want to read data from COM port so by

opening port we are able to read data from port after it timer used that’s wait in an infinite

loop until data is available at COM port31.

Next step is designing of GUI and call functions of serial communication in pushbuttons, in

designing of GUI MFC class is used, design of GUI given below in figure 4-3.

Figure 4-3: GUI of oscilloscope

Page 26: Final Year Project Report Finalized

CHAPTER 4: IMPLEMENTATION AND TESTING 26

1st in run button port opening is done that wait in an infinite loop until data is available at COM

port, stop key close the port and stop taking from COM port and clear function exit the

application, channel setting, time division and frequency division is also done by channel select,

time divisions and frequency divisions buttons.

For displaying input signal on oscilloscope a library of oscilloscope.h used, by implementing

control of oscilloscope it shows last N points of user data. It contains up to eight channels for

displaying signal in different domains, channels are defined in header file in

OSC_MAX_CHANNELS parameter. Oscilloscope having zoom ability in X and Y both axis, zoom

out is done by right key of mouse hold CTRL key for full zoom out. First open port is done that

enables COM port for serial communication, Sampling rate increase by pressing tab of last point

button it will increase frequency division.

Page 27: Final Year Project Report Finalized

27

Chapter 5

5 Results

After testing of signal acquisition circuit and serial interfacing the results are given below:

Figure 5-1 shows ADC results

Page 28: Final Year Project Report Finalized

CHAPTER 5: RESULTS 28

Figure 5-2 shows Digital Data at COM Port

Figure 5-3: shows Signal on Oscilloscope

Page 29: Final Year Project Report Finalized

29

Chapter 6

6 Observation During start of this project we face some problems in our country DSPIC30F2020 is not available

so we leave it because it does not contain USB port but it’s designed for signal processing

applications, we move towards PIC18F4550. It contains built in ADC and USB port but

unfortunately it’s also not available in Rawalpindi and Islamabad so we finally buy it from Hall

road Lahore.

After installation of MP LAB IDE we start learning of programming of PIC18F4550 but in market

different types of compilers are available, after long discussion on these with our project

supervisor and coordinator we decided to work on CCS C compiler because in this C language is

used that’s easy to understand and we have smart grip on it. After compilation of ADC coding

we burn it on microcontroller using MP LAB ICD toolkit, Mr. Muhammad Abbas gave

unfortunately 12v input instead of 5v because he can’t recognize power supply knob so like a

small cracker blast occur and microcontroller burn.

While working on hardware designing Mr. Asad test different types of circuits that are work

quite efficient in simulation but in bread board form they don’t work properly so be patient

during hardware designing. Finally after solving the complication in hardware Mr. Asad

designed the PCB, Mr. Asif Rizwan helps us in the designing of PCB.

During PIC18F4550 USB coding Mr. Junaid found many problems sometimes program is

compiled successfully but sometime in same program errors come in header file of PIC18F4550

that’s occurred due to CCS C compiler PWD installation fault. Another problem we are facing

that is searching of firmware for USB to communicate with operating system, for this we post it

at different forums but no one tell the exact one that is suitable for CCS C compiler. During PIC

C compiler help exploring we found lot of helpful data, finally we found communication driver

class (CDC) that used to interact USB with operating system. While using CDC we used

usb_cdc_puts(*str) but this function does not work properly, after it we used

usb_put_packet(endpoint,data,len,timeout) in this we can’t set a specific endpoint.

After a two to three weeks troubleshoot to these problems can’t solved by anyone, so it has

been decided to use printf(usb_cdc_putc()) by using this function and trouble shooting of circuit

interfacing task is completed and got data on COM port.

Page 30: Final Year Project Report Finalized

30

Chapter 7

7 Conclusion and Future Work

7.1 Conclusion

Oscilloscope involves many applications in electronic signal acquisition circuits, it’s constructed

on the basis of electronic circuit, programming of microcontroller and an application. A PC

based portable and having in low cost an oscilloscope that contains many features is designed

for educational purpose due to its limited input range, it’s a stunned breakthrough in making of

traditional intelligent instruments. In comparison with traditional oscilloscope USB oscilloscope

provides better portability and cheap in cost, display oscilloscope waveform and having ability

to save it to put in documentation.

7.2 Future work

Oscilloscope tested with sinusoidal waveform, for plotting of square, triangular and ramp

function future work can be done on it. Window application is restraint for displaying signal

having high frequency due to low sampling rate in hardware. To add constant gain in signal

programmable gain amplifier (PGA) can be used to increase gain of signals, serial peripheral

interface (SPI) is used for this work. The application display signal in time domain, for displaying

in form of frequency domain and FFT domain work can also be done on it in future. Hardware

design unable to differentiate between AC and DC while displaying, further modification can

done on potting of AC and DC signals separately. More consequently by using of various types

of microcontrollers like DSPIC it is possible to increase sampling rate for higher frequency

reading. To make it auto set like digital oscilloscope a circuitry is made that converts any input

range to suitable microcontroller range for doing PGA may be used.

To provide more portability further modification can be done on it by designing a similar

application for smart phones for example Android, make hardware compatible with Android

after designing of driver. Jango toolkit may be used for driver development but it is little bit

costly. Another way to send data on android phone using of Xbee, by using of this data easily

sends towards android phone after receiving of data similar waveform plots in smart phone.

Page 31: Final Year Project Report Finalized

31

Chapter8

8 Appendix A: Schematic Diagrams

8.1 Input Stage and USB Interfacing

Page 32: Final Year Project Report Finalized

CHAPTER 8: APPENDIX 32

8.2 Input stage

Page 33: Final Year Project Report Finalized

33

References 1 http://www.physics.nus.edu.sg/pc2193/Manual_files/PC2193%20Basic%20Electronics-Oscilloscope.pdf

2www.physics.mun.ca/~cdeacon/labs/2055/oscilloscope.pdf

3 Kularatna, Nihal (2003), "Fundamentals of Oscilloscopes", Digital and Analogue Instrumentation: Testing and

Measurement, Institution of Engineering and Technology, pp. 165–208, ISBN 978-0-85296-999-1 4 Hawkins (1917, pp. 1841–1846)

5 http://en.wikipedia.org/wiki/Oscilloscope_history#cite_note-4

6 http://en.wikipedia.org/wiki/Oscilloscope_history#cite_note-9

7 europe.lutron.com/techInfo/InstallGuides/040134b200210.pdf

8PIC microcontroller and Embedded system by Muhammad Ali Mazidi Chapter 7, page 255 and chapter 13, page

483 9 www.sena.com/download/tutorial/tech_Serial_v1r0c0.pdf

10 Visual C++ by Mickey Willims and David Bennett part 2, page 119 and page 233

11 PIC18f4550 Datasheet, 17.10 Overview of USB

12 PIC18F4550 datasheet, 17.10.1 LAYERED FRAMEWORK

13PIC18F4550 datasheet, 17.10.3 TRANSFERS

USB Complete: Everything You Need to Develop USB Peripherals, Third Edition by Jan Axelson, chapter 3, Page 69 14

PIC18F4550 datasheet, 17.10.3 TRANSFERS 15

USB Complete: Everything You Need to Develop USB Peripherals, Third Edition by Jan Axelson, chapter 3, Page 69 16

USB Complete: Everything You Need to Develop USB Peripherals, Third Edition by Jan Axelson, chapter 3, Page 69 17

USB Complete: Everything You Need to Develop USB Peripherals, Third Edition by Jan Axelson, chapter 3, Page 71 18

PIC18F4550 datasheet, 17.10.3 TRANSFERS 19

PIC18F4550 datasheet, 17.10.5 ENUMERATION 20

http://en.wikipedia.org/wiki/Universal_asynchronous_receiver/transmitter

21 http://www.freebsd.org/doc/en_US.ISO8859-1/articles/serial-uart/index.html

22 www.sena.com/download/tutorial/tech_Serial_v1r0c0.pdf

23 http://www.datasheetarchive.com/dl/Databooks-1/Book241-407.pdf

24 iqi Tew; Bok-Min Goi; , "Oscilloscope: A PC-based Real Time Oscilloscope," Innovative Technologies in Intelligent

Systems and Industrial Applications, 2008. CITISIA 2008. IEEE Conference on , vol., no., pp.92-97, 12-13 July 2008 doi: 10.1109/CITISIA.2008.4607341 http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=4607341&isnumber=4607323 25 MPLAB Integrated Development Environment.[Online].Microchip Technology Inc.

http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en019469&part=SW00 7002. 26

Microchip Bootloader. [Online]. 2008 Microchip Technology Inc. http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2124&param=en022627 27

Visual C++ by Mickey Willims and David Bennett part 2, page 119 and page 233 28

Ng Wee Lee, Tan Meng Tong. (2006, February 17). Home. [Online]. The University of Newcastle, Australia 29

http://msdn.microsoft.com/en-us/library/windows/desktop/aa363858%28v=vs.85%29.aspx 30

http://msdn.microsoft.com/en-us/library/windows/desktop/aa363261%28v=vs.85%29.aspx 31

http://msdn.microsoft.com/en-us/library/windows/desktop/aa365467%28v=vs.85%29.aspx