p14251 underwater acoustic communication -...
TRANSCRIPT
Greg DavisScott HambletonJon HoltonChris JohnsonChris Monfredo
12/10/13 Rochester Institute of Technology 1
P14251
Underwater Acoustic Communication
Underwater Acoustic Communication
12/10/13 Rochester Institute of Technology 2
AgendaDesign Updates/Proof of ConceptSoftware ComponentsDrawings (EE)BOM (EE)Drawings (ME)BOM (ME)Final Cost AnalysisFinal Risk AnalysisTest PlansMSD II Schedules
Underwater Acoustic Communication
12/10/13 Rochester Institute of Technology 3
Frequency Shift Keying:
Produces four different frequencies corresponding to 00, 01, 10, 11 SD Simple modulation and demodulation schemes and circuitry Quick and efficient set up and delivery times Schedules
Underwater Acoustic Communication
12/10/13 Rochester Institute of Technology 4
Frequency Shift Keying:
Modulation:Theory-produce four different frequencies that each represent a different two bit symbol. These frequencies will be gray coded such that only a maximum of one bit error can occur per demodulation error.
• After compression and redundancy, we need to send 9768 kbps to meet our 15 kbps customer requirement. This indicates that the lowest possible frequency
that can be used is 14.4 kHz.
29 kHz = 0034 kHz = 01 39 kHz = 1144 kHz = 10
Underwater Acoustic Communication
12/10/13 Rochester Institute of Technology 5
Frequency Shift Keying:
Modulation:• To produce the four needed frequencies, properties of a square wave can be
exploited. The main property being used is that in frequency, a square wave, is sync function. A sync function has a large amplitude at the center frequency and multiple harmonics that theoretically occur every 3*fc
• Using a sharp band pass filter will allow us to keep the large portion of the signal that occurs at the center frequency while removingall of the other harmonics
• To generate the needed frequency response, an LCband pass filter will be used
Underwater Acoustic Communication
12/10/13 Rochester Institute of Technology 6
Frequency Shift Keying:
Modulation:• The LC band pass filter has a center frequency at 1/sqrt(LC), and a bandwidth of
1/(C*RL). Since the output of our filter will be fed into an amplifier with theoretical infinite input resistance, our bandwidth will be very small; which is desirable.
• By adjusting the input resistance, we can also adjust the sharpness of each filter• Each filter will be fed by a clock pin coming from the RPi, that will provided the
square wave at each of the four desired frequencies• The output of the four band pass filters will be fed into a 4:1 mux whose output
will be controlled via an enable and two addressing pins
Underwater Acoustic Communication
12/10/13 Rochester Institute of Technology 7
Frequency Shift Keying:
Modulation:
-80
-60
-40
-20
0
20
Magnitu
de (
dB
)
104
105
106
-90
-45
0
45
90
Phase (
deg)
Bode Diagram
Frequency (rad/s)
-100
-80
-60
-40
-20
0
20
Magnitu
de (
dB
)
104
105
106
107
-90
-45
0
45
90
Phase (
deg)
Bode Diagram
Frequency (rad/s)
-100
-80
-60
-40
-20
0
20
Magnitu
de (
dB
)
104
105
106
107
-360
-270
-180
-90
0
Phase (
deg)
Bode Diagram
Frequency (rad/s)
-100
-80
-60
-40
-20
0
Magnitu
de (
dB
)
104
105
106
107
-360
-270
-180
-90
0
Phase (
deg)
Bode Diagram
Frequency (rad/s)
Underwater Acoustic Communication
12/10/13 Rochester Institute of Technology 8
Frequency Shift Keying:
Demodulation:• To demodulate we are looking to decipher the four different frequencies in order
to obtain the original binary message• This will be done by taking the incoming signal from the hydrophone, band
passing around our frequency range, and then passing the analog signal through an analog to digital converter. The output of the ADC will then be fed back to a pin on the RPi.
• The DFT will then be performed on the incoming signal in order to determine the largest frequency component. Based on the frequency and the amplitude at this frequency, the incoming message will be decoded.
• The DFT will be performed using the FFTW C programming package developed by MIT
Underwater Acoustic Communication
12/10/13 Rochester Institute of Technology 9
Frequency Shift Keying:
Demodulation:• The FFTW package allows the user to do one or multiple dimension FFT’s with a
very simple to use library• This package is also optimized for multithreading and also gives the capability to
determine the most optimum way in which to take the FFT of the current signal.#include <fftw3.h>{fftw_complex *in, *out;fftw_plan p;...in = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) * N);out = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) * N);p = fftw_plan_dft_1d(N, in, out, FFTW_FORWARD, FFTW_ESTIMATE);...fftw_execute(p); /* repeat as needed */...fftw_destroy_plan(p);fftw_free(in); fftw_free(out);
}
Underwater Acoustic Communication
12/10/13 Rochester Institute of Technology 10
Frequency Shift Keying:
Demodulation:periods: 3
FS: 2.25 MHz
-6 -4 -2 0 2 4 6 8 10 12
x 104
95
96
97
98
99
100
101
102
-4 -2 0 2 4 6 8 10 12
x 104
83
84
85
86
87
88
89
-4 -2 0 2 4 6 8 10 12
x 104
71
72
73
74
75
76
77
Underwater Acoustic Communication
12/10/13 Rochester Institute of Technology 11
Dish Concept:
• Use parabolic collector around hydrophone.
• Center hydrophone at focal point.
• Increase gain from transmitter. Parabolic Antenna ConceptRadartutorial .eu
Underwater Acoustic Communication
12/10/13 Rochester Institute of Technology 12
Initial Dish Design:
• Mounts on top of housing
• Made from plastic or metal
• 12” Diameter to increase gain
11/26/13 Rochester Institute of Technology 13
P14251
Underwater Acoustic Communication
CE Overview- Software Architecture- Control unit flowchart and pseudo-code- Error Detection/Correction- Framing Information- Data Rate Analysis
11/26/13 Rochester Institute of Technology 14
P14251
Underwater Acoustic Communication
Software Architecture PC_Interface
+receiveMessage(): string
+sendMessage(string msg)
Tx_PC
+transmit(string msg)
Rx_PC
- empty : boolean
+getMessage() : string
Rx_Signal
-channel_empty : boolean
+readFrame() : bit[]
- dsp(bit[] bits)
Controller
-busy : boolean
-waitingOn : string
+main() : int
Tx_Signal
+transmitFrame(bit[] frame)
Compressor
+compressMsg(string message) : bit[]
+decompressMsg(bit[] data) : string
Encryptor
+encrypt(bit[]* data)
+decrypt(bit[]* data)
DataPacker
+createFrame(bit[]* data)
+getFrameType(bit[] frame) : string
+isRepeatFrame(bit[] frame) : boolean
+extractData(bit[] frame) : bit[]
+createControlFrame(string type) : bit[]
ErrorHandler
+hasErrors(bit[] frame) : boolean
+correctErrors(bit[]* frame)
11/26/13 Rochester Institute of Technology 15
P14251
Underwater Acoustic Communication
Control Unit Pseudo-Code
11/26/13 Rochester Institute of Technology 16
P14251
Underwater Acoustic Communication
Control Unit Pseudo-Code
11/26/13 Rochester Institute of Technology 17
P14251
Underwater Acoustic Communication
Control Unit Pseudo-Code
11/26/13 Rochester Institute of Technology 18
P14251
Underwater Acoustic Communication
Error Detection and Correction
- Hybrid Scheme: ECC and ARQ- EEC Implementation: BCH vs. Reed Solomon- BCH is easier to implement, but requires a much larger
amount of redundancy- Reed-Solomon is more complex, but overall much
better and requires only 20% redundancy (to correct 10% of errors)
11/26/13 Rochester Institute of Technology 19
P14251
Underwater Acoustic Communication
Error Detection and Correction
- Reed Solomon encodes k symbols into n codewords- n – k = 2t - Errors are corrected at the symbol level. If a symbol
has 4 bits and all of them are wrong, it only counts as one error.
- Can vary the code word size with the number of bits per symbol
- RS(255, 212) with 4 bits/symbol, RS(1023, 853) with 1 bit/symbol, etc.
11/26/13 Rochester Institute of Technology 20
P14251
Underwater Acoustic Communication
Error Detection and Correction
- Encoding: LFSR based implementation is extremely simple and fast. Will translate well to C
11/26/13 Rochester Institute of Technology 21
P14251
Underwater Acoustic Communication
Error Detection and Correction
- Decoding is more complex, but efficient algorithms exist that will help significantly
11/26/13 Rochester Institute of Technology 22
P14251
Underwater Acoustic Communication
Frame Sentinels- Sentinels are a unique pattern of bits that signify the
start and end of the framei.e. 01110 –data– 01110
- When preparing the frame for transmission, if the pattern appears anywhere in the data, bit stuffing is used to eliminate it (i.e. 01110 -> 011010)
- Commonly used sentinel which we’ll use is 01111110Frame Header- 1 bit to signify the type of frame: control or message- 1 bit that gets flipped each time a new frame is sent
11/26/13 Rochester Institute of Technology 23
P14251
Underwater Acoustic Communication
Control frame formats- Since it’s especially important to interpret control
frames correctly, 4 bits are used to display the unique patterns
- 0000 – Request to Send (RTS)- 0110 – Clear to Send (CTS)- 1001 – Acknowledgement (ACK)- 1111 – Done (Signifies that all frames have been sent)
- These 4 bits + the 2 header bits can be encoded with an RS(7, 3) code (2 bits per symbol)
11/26/13 Rochester Institute of Technology 24
P14251
Underwater Acoustic Communication
Frame Sizes- Control Frame: 16 (sentinels) + 14 (data) = 30 bits- Message Frame: 16(sentinels) + X+2 (message) = 18+X bits
Propagation delay (20ms for 30m distance) limits the number of frames that can be sent.
For 15kb/s, the maximum number of message frames =9 frames, each containing 1k encoded information bits
Increase X to ~1023 bits for Reed-Solomon Encoding
11/26/13 Rochester Institute of Technology 25
P14251
Underwater Acoustic Communication
Data Rate Analysis- fc = 37kHz, tc = 81μs (3 periods per 2 bits)- Frames that get transmitted for a message:
- Send RTS – 30 bits- Receive CTS – 30 bits- Send all message frames – 1042 bits/frame- Receive all acknowledgements – 30 bits/frame- Send Done – 30 bits- Receive Acknowledgement – 30 bits
- Total transferred bits = 9768 bits- Total transfer time = 0.836s (about 170ms left for code)
11/26/13 Rochester Institute of Technology 26
P14251
Underwater Acoustic Communication
Data Rate Analysis – Code Overhead- From SSDR: Compression time is expected to be negligible- Encryption time is a non-factor- FFTW benchmarking info suggests
very quick performance times- Error Encoding time is negligible- Error Decoding time may take a bit longer, but millions of
clock cycles are available to work with.* We may be able to further lower the number of message frames to eliminate propagation delays. This adds slightly more complexity to error handling.
Underwater Acoustic Communication
12/10/13 Rochester Institute of Technology 33
Mechanical DrawingsAssemblySheet Metal HousingMounting PlateFront and Back covers
Underwater Acoustic Communication
12/10/13 Rochester Institute of Technology 39
Mechanical BOM
Total Mechanical cost: $113 + Housings and Dishes
Description Distributor D. Part Number QTY per housing Price Spares QTY Total Price Extended
Nylon Liquid-Tight Cord Grip .16" to 0.31" McMaster Carr 69915K51 2 $2.82 1 5 $14.10
8-32 CLS Self Clinching Nuts With Housing - 44 0 88 $0.00
50x 8-32 Stainless Pan Head Machine Screws 7/32" long McMaster Carr 91735A193 2 $7.86 0 4 $31.44
50x 8-32 Steel Hex Nuts McMaster Carr 90480A009 1 $1.49 0 2 $2.98
8-32 1 1/2" Long Hex Standoffs McMaster Carr 93620A945 4 $1.74 0 8 $13.92
Internal Mounting Plates 6"x6" 1/8" thick McMaster Carr 88685K1 1 $6.20 0 2 $12.40
6061 Al 6"x36" 1/8" thick McMaster Carr 8975K923 1 $17.19 0 1 $17.19
316 Stainless Sheet Metal Housing ? ? 1 0 2 $0.00
Santoprene Rubber Gasket 12"x24" 1/32" thick McMaster Carr 86215K21 - $10.45 0 1 $10.45
5 ft Adhesive Backed Velcro 1" wide McMaster Carr 9273K11 - $5.78 0 1 $5.78
100x M2.5 Steel Screws 10mm length McMaster Carr 92005A071 1 $4.13 0 1 $4.13
50x M2.5 Plain Steel Nuts McMaster Carr 90592A006 1 $1.04 0 1 $1.04
Speaker Dish 1 2 $0.00
Hydrophone Dish 1 2 $0.00
Speaker Mount 1 2 $0.00
Underwater Acoustic Communication
12/10/13 Rochester Institute of Technology 40
B117-11 Spray Test Results:Test Material: Specimen # Initial Mass (grams): Final Mass (grams): Mass Change (grams):
316SS 1 64.2 64.2 0
316SS 2 70.3 70.3 0
316SS 3 62.7 62.7 0
316SS 4 66.8 66.8 0
316SS 5 62.3 62.3 0
ABS Plastic 1 8.8 8.8 0
ABS Plastic 2 8.2 8.2 0
ABS Plastic 3 8.5 8.5 0
ABS Plastic 4 8.6 8.6 0
ABS Plastic 5 8.4 8.4 0
Naval Brass 1 70.3 70.3 0
Naval Brass 2 71.5 71.5 0
Naval Brass 3 68.9 68.9 0
Naval Brass 4 73 73 0
Naval Brass 5 66.8 66.8 0
Alum 6061 1 22.1 22 0
Alum 6061 2 20.4 20.4 0.1
Alum 6061 3 22.6 22.6 0
Alum6061 4 23.8 23.7 0.1
Alum 6061 5 20.8 20.6 0.2
• 6061 Aluminum preformed worst.
• Naval Brass, ABS Plastic, and 316SS all had no noticeable effects of corrosion
• 316SS Best choice for cost and machinability.
Underwater Acoustic Communication
12/10/13 Rochester Institute of Technology 41
Cost AnalysisMSD I Test Cost: $100Mechanical Component Cost: $113 + HousingsElectrical Component Cost: $1105 + PCBsTotal Budget: $1750$432 remainder for shipping and emergencies
Underwater Acoustic Communication
12/10/13 Rochester Institute of Technology 42
Electrical Test PlansPower Converters
• <5% Ripple at 1A load for 5V• <1% Ripple at 1A load for 3.3V
Power Amplifier• Adjustable Gain• Find resistance for 10W
AGC• 1V Amplitude for any input
LC Filters• Adjust values
Underwater Acoustic Communication
12/10/13 Rochester Institute of Technology 43
Software Test Plans- Unit test all code- Device testing : make sure code actually runs on the
Raspberry Pi- Wired device testing : make sure both devices can
communicate via wired connection before attempting wireless
- Turn functionalities on and off to see that they make a difference
Underwater Acoustic Communication
12/10/13 Rochester Institute of Technology 44
Mechanical Test Plans
Underwater Acoustic Communication
12/10/13 Rochester Institute of Technology 45
Risk AnalysisID Problem Likelyhood Damage Importance Mitigation Owners
1 The housing isn't watertight 2 3 6 Test waterproofing and test the empty housing SH, GD
2 Short circuit 1 3 3 CJ, CM
3 Damage due to mis-handling parts 1 2 2 Team must be c areful with components All
4 Loss of carrier frequency 1 3 3 Have a robust communication scheme in place CJ, CM
5 Power loss 1 1 1 CM
6 Power Surge 1 3 3 Surge Protection CM
7 Data loss 2 3 6 Have tested error correction/detection JH
8 Overheat microprocessor 1 3 3 Use efficient code and have thermal management JH, GD
9 Corrosion breach 1 3 3 Galvanize or use corrosion resistant materials SH, GD
10 Speaker doesn't work 1 1 1 Has been found to work, repeatably in a lab environment CJ, CM
11 Ordered components do not match specs 2 3 6 Order from reputable sources with return policies All
12 Demodulation Chip doesn't work 2 3 6 Do DSP on the R-Pi. CJ (JH)
13 Bandpass Filter doesn't work 1 1 1 CJ
14 Mode Choke doesn't work 1 1 1 CJ
15 Sheet metal housing is too expensive 1 3 3 Highly unlikely given current financial status of the project GD, SH
16 PCB is too expensive 1 2 2 Use a perf board and hand solder CM
17 Speaker/Hydrophone dish doesn't work 2 2 4 We check functionality first, then prioritize the dish SH, GD
18 Power Converteres can have too much ripple 1 2 2 Scale C and L components or use higher current capacity converter CM
19 AGC doesn't work 2 1 2 There are plenty of AGC chips available CM
20 Power amplifier doesn't work 2 2 4 TI has technical support for our power converter CM
21 Noise on and/or electrically charged box 1 3 3 Ground the box CM
22 Discharging the batteries too low 2 3 6 Implement a battery level indicator CM