Date post: | 21-Apr-2015 |
Category: |
Documents |
Upload: | ainamansor |
View: | 260 times |
Download: | 2 times |
ABSTRACT
The purpose of this project is to design and build a system that mimic an
oscilloscope which displays a waveform at a personal computer from a triggering device
without using any wires. Currently, most existing oscilloscopes are created in wired,
thus creating a limited usage when triggering at a place that is difficult to trigger. Also,
most existing oscilloscopes are expensive and some of them have limited functionality.
So, the objective of this project is to make a monitoring measurement tool wirelessly in
which Bluetooth is chosen as a medium. The oscilloscope is self powered device that
transmit data to a personal computer and the result will show up instantly to the monitor
by using Bluetooth thus eliminates wires. An analogue signal is triggered and processed
through an Analogue to Digital converter circuit in which a PIC16F877 is used, and then
the data will be transported to a personal computer by using Bluetooth. A user friendly
program called Bluetooth Oscilloscope will process the data and shows the data in wave
form. This Bluetooth Oscilloscope program will be created by using Microsoft Visual
Basic. In this program also do have some features such as saving the data waveform and
printing the data waveforms. This project is capable to let user to trigger any analogue
signals and monitor the output at the personal computer at any points or area without
worrying the distance because the Bluetooth is capable to operate between 10 meters to
100 meters. This project can be commercialized because it is cheap to built, easy to use,
portable and also the program is easy to use.
ABSTRAK
Tujuan projek ini adalah untuk mencipta dan membina satu sistem yang
menyerupai fungsi sebuah osiloskop yang boleh memaparkan gambarajah gelombang di
komputer dari satu alat pengesan tanpa menggunakan wayar. Kebanyakan osiloskop
yang tercipta pada zaman sekarang masih menggunakan wayar , jadi ia menyebabkan
penggunaannya terhad. Seperkara lagi , kebanyakan osiloskop adalah mahal. Jadi ,
objektif projek ini adalah lntuk membina sebuah alat pengukur yang tidak menggunakan
wayar. Isyarat Analog akan diukur dan diproses melalui litar penukar analog ke digital
dimana PIC16F877 digunakan, selepas itu , data yang telah diproses tadi akan dihantar
ke komputer melalui Bluetooth. Satu program mesra pengguna yang dinamakan
Bluetooth Oscilloscope akan memproses data yang diterirna tadi dan memaparkan
keputusannya dalam bentuk gelombang pada skrin. Program Bluetooth Oscilloscope
dihasilkan dengan menggunakan Microsoft Visual Basic. Didalam program ini juga
mempunyai fungsi fungsi seperti menyimpan dan mencetak gelombang yang terhasil.
Projek ini sangat berguna kepada pengguna kerana ia berupaya untuk mengukur isyarat
analog ditempat tempat yang sukar diukur kerana Bluetooth berupaya untuk beroperasi
dari 10 meter hingga 100 meter . Projek ini juga boleh dikomersialkan kerana ia adalah
murah , mudah dibina, mudah dibawa kemana mana dan prograrnnya mudah digunakan.
CHAPTER 1
INTRODUCTION
1.1 BACKGROUND
The main objective in doing this project is to build an oscilloscope that can transmit
data to personal computer wirelessly. The following detail explains the development and
implementation of a Wireless Bluetooth Oscilloscope. This project attempts to achieve
the same functionality as a traditional oscilloscope, using a PIC microcontroller for data
acquisition which transfers the data to the personal computer (via Bluetooth). A
Windows based software application will then display the waveform as it would appear
on a traditional CRT oscilloscope. This software application will have additional
features not present on a traditional oscilloscope (e.g. printing / saving waveforms) with
greater flexibility as additional features can be added as their developed without the need
for new hardware.
The digital based oscilloscope should display very low frequency waveforms in real-
time. Digital storage oscilloscopes have two main advantages over traditional analogue
scopes:
1. The ability to observe slow and very slow signals as a solid presentation on the
screen. "Slow moving signals in the 10-100 Hz range are difficult to see and
measure on a normal analogue oscilloscope due to the flicker of the trace and the
short persistence of the spot on the screen. Very slow moving signals, less than
10 Hz, are impossible to view on an analogue scope. As fast as the spot traces
out the waveform, the image fades and disappears before a complete picture can
be formed.
2. The ability to hold or retain a signal in memory for long periods.
1.2 PROBLEM STATEMENTS
Oscilloscope is a measurement tool that is very usefbl to the users to measure
various kind of waveform. A lot can be done by using this tool but still here is not much
product that built today using wireless method. Oscilloscopes traditionally are hardware
based using a Cathode Ray Tube or Liquid Crystal Display designed to display voltage
variations as they are bulky, expensive and have difficultly displaying low frequency
waveforms. In this project with the implementation of Bluetooth as communication
medium, some problems stated below could be proven
1. . . 11. ... 111.
iv.
v.
vi.
vii. ...
v111.
Large high-resolution display (as display at personal computer)
Windows / GUI advantage such as cut & paste into documents.
Low-cost to build (expected to be under RM300)
Software Upgradeable.
Wireless
Large Display
Portable
Cheap to construct
Wireless Bluetooth Digital Oscilloscope could be applied to many possible
applications such as:
i. Monitoring of sound waves, which are difficult to monitor on a traditional
oscilloscope due to the low frequencies involved. . . 11. Monitoring of an ECG signal, again because this is such a low frequency
traditional oscilloscopes would have difficultly monitoring such a signal. ECG
data could be logged and emailed directly to the doctor for diagnosis, or perhaps
real-time TCPIIP internet communication so that the doctor could remotely
monitor the ECG signal in real-time. ... 111. The Wireless Bluetooth Oscilloscope is ideal for demonstration purposes, for
example using data projector a class of student could be introduced to the
oscilloscope, with real waveforms being monitored (signal generator, or even a
microphone for sound waves) and displayed on a large projector display. .
iv. Because of the low cost of the Wireless Bluetooth Digital Oscilloscope, it is
economical for a school 1 technical college to have large quantities available for
students. Unlike traditional analogue scopes which are expensive and students
are forced to share equipment, because it is not economical to purchase enough
scopes for every student
v. Wireless Bluetooth Digital Oscilloscope can be use in any place because it's a
handy tool. It can be pinpoint anywhere (in selected measurements) such as in a
narrow places or a place where traditional oscilloscope can't be reached or it can
be a monitoring device in a specific place
1.3 PROJECT OBJECTIVES
This project is consisted of three parts. The first part is the objective of this work
to familiarize with the radio frequency signal, the circuit, the data obtained and the
transmission signal. The second part is the primary technical objective of the proposed
project is to design the Digital Oscilloscope trigger and implement a microcontroller
using the PIC16F877 to process and transmit the data by Bluetooth.
For the third part, the objective is to write the program using the Microsoft
Visual Basic 6.0 as a programming tool in order to show the output waveform that
obtained from the trigger module. The study of microprocessors and electronic circuits
will be used to interface the Bluetooth with the Microcontroller. For this project; the
scopes of works are:
i. PIC C to compile the Assembler language for the PIC 16F877
ii. ICPROG 1.5 (to download the HEX file to the PIC Microcontroller)
iii. Microsoft Visual Basic (Bluetooth Oscilloscope software)
iv. Assembly to interface the Microcontroller with Bluetooth and establish the
transmission between Digital Oscilloscope trigger and computer
CHAPTER 2
LITERATURE REVIEW
Oscilloscopes traditionally are hardware based using a CRT (Cathode Ray Tube)
designed to display voltage variations (periodic or otherwise); they are bulky, expensive
and have difficultly displaying low frequency waveforms.
@a 1 Types of Analog Oscilloscope
The word 'Oscilloscope' is an etymological hybrid. The first part derives from
the Latin 'oscillare', to swing backwards and forwards; this in turn is from, 'oscillum', a
little mask of Bacchus hung from the trees, especially in vineyards, and thus easily
moved by the wind. The second part comes from the Classical Greek 'skopein', to
observe, aim at, examine, from which developed the Latin ending 'scopium', which has
been used to form names for instruments that enable the eye or ear to make observations.
[I] The heart of the traditionally CRT oscilloscope is the display screen itself, the CRT.
The CRT is a glass bulb which has had the air removed and then been sealed with a
vacuum inside. At the front is a flat glass screen which is coated inside with a phosphor
material. This phosphor will glow when struck by the fast moving electronics and
produce light, emitted from the front and forming the spot and hence the trace. The rear
of the CRT contains the electron 'gun' assembly. A small heater element is contained
within a cylinder of metal called the cathode. When the heater is activated by applying a
voltage across it, the cathode temperature rises and it then emits a stream of electrons.[l]
Figure 2.2: Types of Analog Oscilloscope [I]
2.1.1 The Basic CRT Oscilloscope
An oscilloscope draws its trace with a spot of light (produced by a deflectable
beam of electrons) moving across the screen of its CRT (see Figure 2.3). Basically an
oscilloscope consists of the CRT, a 'time base' circuit to move the spot steadily from left
to right across the screen at the appropriate time and speed, and some means (usually a
'Y' deflection amplifier) of enabling the signal to deflect the spot in the vertical or Y
direction. [ I ]
Figure 2.3: Block diagram of a basic CRT oscilloscope
This type of oscilloscope is known as a 'real-time' oscilloscope. This means that
the vertical deflection of the spot on the screen at any instant is determined by the Y
input voltage at that instant. Not all CRT oscilloscopes are real-time instruments.
oo
w
-3
%
n
0
8 $7
55
%
>
0
co
t2
o
gc
a
U
- *2
z
.z e
r.: .2' , 3
-? .s
2 0 -
Y a22
&E
X
%a
,
0
2
$ %,2%2
9 2
w
d
0.2 $
2
Qz
mo
<
- Y
d
5 W
0
g 2 2
2 2
2
3 2.--
V)
o E
d%
C
4 2
cm
0
-4
2c
.3
~
2
- 4- 0
%m
3
V)
(d
E z22
.z a
o $3
- - (d
a
4-
r: 2.2
. d
ma
%
.- a
5 0
E
This project attempts to achieve the same functionality as a traditional
oscilloscope, using a PIC Microcontroller for data acquisition which transfers the data to
the Personal Computer via Bluetooth. A Microsoft Windows based software application
will then display the waveform at screen. This software application will have additional
features not present on a traditional oscilloscope (e.g. printing / saving waveforms) with
greater flexibly as additional features can be added as their developed without the need
for new hardware.
2.2 Background of Wireless Bluetooth Digital Oscilloscope
Figure 2.5, shows a simplified block diagram of the overall system. It is clear the
PIC is connected to the Bluetooth remote. Notice that the clock is specified as 20MHz,
as a slower clock speed would reduce power consumption (critical if using battery power
supply) and less noise would have been generate; hence ADC readings would be more
accurate, allow it is possible to put the PIC to sleep while taking the ADC reading, the
ADC will send an interrupt waking the PIC once the acquisition is complete. This is not
an option for this application because it takes a long time for the PICs oscillator to return
to fill speed, after a sleep operation; hence this would severely affect the maximum
sampling rate.
The main reason for using a 20MHz clock was because at slower clock speeds it
was not possible to obtain a good 115kbps baud rate. The C compiler used to write the
PIC program. The reason why 1 15kbps is important is because the serial communication
is the bottleneck when operating in real-time mode; hence it makes sense to use the
maximum baud rate possible. Note the PIC is capable at 20MHz of generating baud rates
higher than 1 1 Skbps, but most PIC'S have a maximum baud rate of 1 1 Skbps.
It is possible to use four PICs (one for each channel) hence each channel can be
sampled simultaneously, using a masterlslave communication protocol. For example
each PIC has its own address (say 1 to 4) all four wait until the master (PC) calls them
before transmitting there data. But for this project, only 1 channel is used because the
main objective of this project is to prove that Bluetooth can be used for data
transmission.
POWER CxRcurr MC7805CT
SVdc
cL w
$2 CLrb
52 0-
32 dQ U u
n x o / m + TxD/RC6 Re(3 ..RE2
RX-1 BLUETOOTH m-0 BLUESmiRF
Figure 2.5: Block Diagram of Hardware Design
While the data is processed from analogue to digital form, it will be transported
to the serial output where the Bluetooth will do the transmission. A Bluetooth remote
module will transmit the data to PC that equipped with Bluetooth module. To power-up
the whole system can be powered from a battery source such as 9Vdc.
2.2.1 The PIC Microcontroller
Figure 2.6: Microchip logo
A PIC (Peripheral Interface Controller) microcontroller is an IC manufactured by
Microchip. These ICs are complete computers in a single package. The only external
components necessary are whatever is required by the 110 devices that are connected to
the PIC. The traditional Von-Neumann Architecture (Used in: 80x86, 8051, 6800,
68000, etc ...) is illustrated in Figure 2.7. Data and program memory share the same
memory and must be the same width. All the elements of the von Neumann computer
are wired together with the one common data highway or bus [2]. With the CPU acting
as the master controller, all information flow is back and forward along these shared
wires. Although this is efficient, it does mean that only one thing can happen at any
time. This phenomenon is sometimes known as the von Neumann bottleneck.
Figure 2.7: Simplified illustration of the von Neumann architecture
PIC uses the Haward architecture. The Harvard architecture is an adaptation of
the standard von Neumann structure with separate program and data memory, data
memory is made up by a.smal1 number of 8-bit registers and program memory is 12 to
16-bits wide EPROM, FLASH'^^ ROM.
Figure 2.8: Simplified illustration of the Haward architecture
Traditional CISC or Complex Instruction Set Computer machines have many
instructions, usually more than 100, many addressing modes and it usually takes more
than 1 internal clock cycle to execute. PIC microcontrollers are RISC or Reduced
Instruction Set Computer machines, which have 12-bit to 15-bit instructions, reduced
addressing modes, each instruction does less, but usually executes in one internal clock
[3].The combination of single-word instructions, the simplified instruction decoder
implicit with the RISC paradigm and the Haward separate program and data buses gives
a fast, efficient and cost effective processor implementation.
2.2.2 PIC Built-in Peripherals
SPI (Serial Peripheral Interface) uses 3 wires which is the data in, data out and
clock [6] . It operates at very high speed which is 1.6 Mbps, and full speed simultaneous
sends and receives in full duplex. I2C (Inter IC) uses 2 wires which is data and clock.
There are lots of cheap 12C chips available but typically slow around 100kbps. The
Universal Asynchronous Receiver Transmitter or UART operates from baud rates of
300bps to 1 lSkbps, 8 or 9 bits, parity, start and stop bits. Outputs 5V hence an RS232
level converter for example MAX232 is required. Timers, both 8 and 16 bits, many have
prescalers and some have postscalers. In 14 bit cores they generate interrupts. An
external pin which is clock in and clock out can be used for counting events. Ports have
two control registers: TRIS sets whether each pin is an input or an output and PORT sets
their output bit levels. Other peripherals may steal pins, so in this respect peripheral
registers control ports as well. Most pints have 25mA sourcelsink (LED enabled), but
not all pins, it is important to look up the datasheet. Floating input pints must be tied off.
Analogue to Digital Converter are currently slow, less than 54 KHz sampling rate even
when using 8, 10 or 12 bits. Theoretically higher accuracy when PIC is in sleep mode
that has less digital noise, once the sample is complete the ADC sends an interrupt
waking the PIC but the PIC must wait until the sampling capacitor is charged.
2.23 Software Development
The software development is divided into two, which is to program the Bluetooth
Oscilloscope program by using Microsoft Visual Basic and the codes to make the PIC
Microcontroller works as Analogue to Digital converter by using PIC C.
2.2.3.1 Bluetooth Oscilloscope
This Windows based program, graphically displays waveforms without flicker, it
has a good user interface that is easy to use, and directly communicates with the PIC.
Serial Comports transport medium has been selected, this medium is easy to program,
reliable and every PC comes with at least one comport. But it is slow and will limit the
maximum sampling rate in the real-time mode. Therefore it is important that the
application is design to be flexible, as its probable that the program will be modified
some time in the future for use with another medium .
2.2.3.2 PIC C
PIC C is the leading C compiler for the Microchip PIC series of microcontrollers.
PIC C makes full use of specific PIC features and using an intelligent optimizer, can
generate high-quality code easily rivaling hand-written assembler. Automatic handling
of page and bank selection frees the programmer from the trivial details of assembler
code. The philosophy used during the development of the PIC code was to keep it
simple, straightforward, comprehensible, and to a minimum. There are many small
programs designed for testing the hardware and ideas, each program is labeled mark 1,
2, and 3 for study purpose. The end result is that the PIC code is gradually built up step-
by-step, instead of writing the entire program at once. This ensures that operational
results are obtained, as testing producers are camed out at each stage, while if the
program was written all at once, there is little chance it will work and could prove
difficult to debug.
CHAPTER 3
MICROCONTROLLER
3.1 MICROCONTROLLER
3.1.1 Introduction to Microcontroller
A PIC (Peripheral Interface Controller) rnicrocontroller is an IC manufactured by
Microchip. These ICs are complete computers in a single package. The only external
components necessary are whatever is required by the 110 devices that are connected to
the PIC.
The PIC 16F877 is a high-performance FLASH microcontroller that provides
engineers with the highest design flexibility possible. In addition to 8192x14 words of
FLASH program memory, 256 data memory bytes, and 368 bytes of user RAM,
PIC16F877 also features an integrated %channel 10-bit Analogue-to-Digital converter.
Peripherals include two 8-bit timers, one 16-bit timer, a Watchdog timer, Brown-Out-
Reset (BOR), In-Circuit-Serial ProgrammingTM, RS-485 type UART for multi-drop data
acquisition applications, and I2CTM or SPITM communications capability for peripheral
expansion [6] . Precision timing interfaces are accommodated through two CCP modules
and two PWM modules. [6]
RAOfANO - RA31AN WREF+ -
RC\4IIOCKI!CI OUT - RA~/AN~!SSIC~OU'T -
R E O I ~ I A N ~ - REINVRIANG - R E Z ~ ~ A N ~ -
Figure 3.1: Simplified block diagram of the PIC16F877 module [6]
RrnX<'ECL ax: SM RQ'SCO RW :L'S
Figure 33: Simplified block diagram of the PIC 16F877 module [6]
3.1.2 Overview of the &Channel 10-bit ADC
At first it appears that the PIC16F877 has 8 built-in ADCs, but this is not the
case. Figure 3.4 shows a simplified block diagram of the analogue-to-digital converter
module, clearly there is only one 10-bit ADC which can be connected to only one of
eight input pins at any one time.
Figure 3.4: Simplified block diagram of the PIC16F877 ADC module [6]
The input analogue channels AN4..0 are shared with port A, and channels
AN7..5 are shard with port E. If less than eight analogue channels are required then
some of the pins can be assigned as digital VO port lines using PCFG3..0 bits. For
example, if PCFG3..0 = 0010 then AN4..0 are configured as analogue inputs, while
AN7.S are digital (port E free), with VDD used as the reference. On reset all pins are set
to accept analogue signals. Pins that are reconfigured as digital VO should never be
connected to an analogue signal. Such voltage may bias the digital input buffer into its
linear range and the resulting large current could cause irreversible damage.
The 10-bit ADC uses a technique know as 'successive approximation', the
following mechanical analogy will help explain how it works. Suppose there is an
unknown weight, a balance scale and a set of precision known weights 1, 2, 4 and 8
grams. A systemic technique can be used to calculate the unknown weight. Place the 8g
weight on the pan and remove if it is too heavy. Next place the 4g weight on the pan and
remove if it is too heavy. Next place the 2g weight on the pan and remove if it is too
heavy. Next place the l g weight on the pan and remove if it is too heavy. The sum of the
weights still on the pan yields the nearest lower value of the unknown weight. This is
illustrated in figures 3.5 to 3.10
Figure 3.5 : Unknown weight placed on Figure 3.6: 8g weight placed on the pan, the scales not too heavy (keep)
Figure 3.7: 4g weight placed on the pan, Figure 3.8: 2g weight placed on the pan, too heavy (remove) not too heavy (keep)
Figure 3.9: l g weight placed on the pan, Figure 3.10: Unknown weight is about too heavy (remove) log (1010)
The electronic equivarent to this successive approximation technique uses a
network of precision capacitors configured to allow consecutive halving of a fixed
voltage VREF to be switched in to an analogue comparator, which acts as the bal-ance
scale. Generally the network of capacitors are valued in powers of two to subdivide the
analogue reference voltage (e.g. 1,2,4,8,16, etc.. .). This sampling acquisition process
takes a finite time due to the charging time constant and is specified in the datasheet as
19.72~s.
3.1.3 Overview of the Hardware USART
The Universal Synchronous Asynchronous Receiver Transmitter (USART)
module is one of the two serial I10 modules. The USART can be configured for
asynchronous operation (UART) for communication with a PC or synchronous
operation for communicating with peripheral devices such as DAC or DAC integrated
circuit.
Note bit SPEN (RCSTA:7) and bits TRISC:7..6 have to be set in order to
configure pin PC~ITXICK and RC7/RX/DT for USART operation. CSS (C compiler)
will automatically configure these bits, but it is important to be aware that if using
fast-io(C) mode to manually configure port C, bits 7 & 6 must also be manually set if
using the hardware UART
3.1.4 Oscillator
Crystal oscil1ator.i~ kept in metal housing with two pins there is one ceramic
capacitor of 30pF whose other end is connected to the ground needs to be connected
with each pin. Oscillator and capacitors can be packed in joint case with three pins
which is called ceramic resonator. A center pin of the element is the ground, while end
pins are connected with OSCl and OSC2 pins on the microcontroller. When designing a
device, the rule is to place an oscillator nearer a microcontroller, so as to avoid any
interference on lines on which microcontroller is receiving a clock.
20 Mhz -1 i f i c I
Figure 3.11: The connection of oscillator with microcontroller
3.1.5 Baud-Rate Generator
This is basically a programmable 8-bit counter followed by a switch able
frequency '4 flip flop chain which can be set up to give the appropriate sampling and
shifting rates for the desired baud rate, based on the PIC crystal frequency XTAL (e.g.
for 20MHz, XTAL = 20) giving: -
Bcnrd Rate [HI* Mode) - XTAL i e ~ ( x +I)
It may be advantageous to use the high baud rate (BRGH = 1) even for slower
baud clocks as this may reduce baud rate error in some cases.
CHAPTER 4
BLUETOOTH
4.1 The Bluetooth Connection
Bluetooth wireless technology is a short-range radio technology. Bluetooth
wireless technology makes it possible to transmit signals over short distances between
telephones, computers and other devices and thereby simplify communication and
synchronization between devices. It is a global standard that eliminates wires and cables
between both stationary and mobile devices, facilitates both data and voice
communication, offers the possibility of ad hoc networks and delivers the ultimate
synchronicity between all devices. The Bluetooth wireless technology comprises
hardware, software and interoperability requirements. Beyond unleashing devices by
replacing cables, Bluetooth wireless technology provides a universal bridge to existing
data networks, a peripheral interface, and a mechanism to form small private ad hoc
groupings of connected devices away from fixed network infrastructures.
The Bluetooth remote used in this project is model BlueSMIRF 'J1 which
manufactured by Spark fun Electronics. It uses chip WML-C30AH manufactured by
BlueRadios Inc. It's a Class1 & 2 equipped with antenna. The Bluetooth remote is