PROGRAMMABLE AND RECONFIGURABLE STRAIN-POWERED MICRO-DATA-LOGGERS BASED ON LINEAR PIEZO-FLOATING-GATE INJECTORS By Pikul Sarkar A THESIS Submitted to Michigan State University in partial fulfillment of the requirements for the degree of MASTER OF SCIENCE Electrical Engineering 2012 ABSTRACT PROGRAMMABLE AND RECONFIGURABLE STRAIN-POWERED MICRO-DATA-LOGGERS BASED ON LINEAR PIEZO-FLOATING-GATE INJECTORS By Pikul Sarkar This thesis describes the design, implementation and testing of self-powered, large dynamicrange, micro-data-logger that can be used for sensing, computing and non-volatile data storage of mechanical-strain statistics. At the core of the proposed design is a linear floating-gate injector that can achieve more than 13 bits of precision and are self-powered by the piezoelectric transducers that convert mechanical energy from strain-variations into electrical energy. The first fundamental contribution of this thesis is a novel differential injector topology that is used to measure staticstrain by integrating the difference between the L1 measure of the piezoelectric signal generated during the positive and negative strain-cycles. The second fundamental contribution of this thesis is a novel compressive self-powering technique that overcomes the input threshold effect of most self-powered sensors. By using a non-linear impedance circuit at the output of the piezoelectric transducer and by using programmable level-crossing circuit and offset cancelation circuits, the thesis demonstrates an extended self-powering range greater than 40dB. A system-on-chip solution has been designed that integrates the linear floating-gate injectors with high-voltage charge-pumps, digital calibration and digital programming circuits. Extensive experiments with the system-onchip prototypes fabricated in a 0.5µ m standard CMOS process and piezoelectric material (PZT) have been performed using a bench-top mechanical test setup. An automated programming and calibration of the sensor has been developed and the results have been calibrated against standard strain-gauge measurements. ACKNOWLEDGMENTS I would like to take this opportunity to acknowledge several people who have helped me in some way during my master work. First of all, I thank Dr. Shantanu Chakrabartty for giving me the opportunity to work in his group with financial support. He was extremely supportive throughout my studies with the right mixture of freedom and discipline. I specially thank him for making me familiar with the chip testing procedure and debug problems with patience. I am also very thankful to my other committee members, Dr. Donnie Reinhard and Dr. Subir Biswas for their valuable suggestions. To my great labmates specially-Tao Feng, Ming Gu and Chenling Huang who made working so much fun and also gave great inputs to my work. Extra thanks to Chenling Huang as I continued the work done by him before and he had been a great help in the initial days. And to all my friends, thank you for making me feel at home and providing the motivation for research work. Finally, my most gratitude goes to my parents, sister and my brother-in-law. They have been a constant source of inspiration and support. iii TABLE OF CONTENTS List of Tables . . . . . . . . . . . . . . . List of Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vi . . . . . . . . . . . . . . . . . . . . vii Chapter 1 Introduction . . . . . . . . . . . . . . . . . . 1.1 Application of Strain Gauge . . . . . . . . . . . . . 1.1.1 In Structural Health Monitoring . . . . . . . 1.1.2 Biomedical Applications . . . . . . . . . . . 1.2 Brief Survey of existing Strain gauge technologies . . 1.2.1 Resistive . . . . . . . . . . . . . . . . . . . . 1.2.2 Piezoresistive(Silicon) . . . . . . . . . . . . 1.2.3 Capacitive . . . . . . . . . . . . . . . . . . . 1.2.4 Fibre Optic . . . . . . . . . . . . . . . . . . 1.2.5 Piezoelectric . . . . . . . . . . . . . . . . . 1.3 Motivation for Self-Powered Sensor . . . . . . . . . 1.4 Challenges in Piezo-based self-powered strain gauges 1.4.1 Piezoelectric Model . . . . . . . . . . . . . . 1.4.2 Problem in quasi-static Strain Measurement . 1.4.3 Previous Work & Problem . . . . . . . . . . 1.5 List of Contributions of the thesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 1 4 6 6 8 8 10 12 13 14 14 15 17 19 Chapter 2 Linear Floating gate Injector based strain gauge system . 2.1 Differential strain-gauge Architecture . . . . . . . . . . . . . . . 2.2 Linear Floating-gate Injector . . . . . . . . . . . . . . . . . . . . 2.3 Linear Injector Based Differential Strain-Gauge . . . . . . . . . . 2.4 Linear Injector Simulation Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 21 24 27 29 Chapter 3 System Architecture 3.1 Top View . . . . . . . . . 3.2 Power On Reset . . . . . . 3.3 Digital Processor . . . . . 3.4 Ring Oscillator . . . . . . 3.5 Charge Pumps . . . . . . . 3.6 Sensor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 33 34 35 37 38 41 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.6.1 3.6.2 3.6.3 Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 Injector Array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 Level Crossing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Chapter 4 Testing of the strain-gauge . . . . . . . . . . . . . 4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 Strain gauge gain control . . . . . . . . . . . . . . . . . . 4.3 Calculating energy difference between inputs . . . . . . . 4.4 Differential Measurements using a Piezoelectric Emulator . 4.5 Measurements using a Piezoelectric Transducer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 48 49 52 54 55 Chapter 5 Compressive Piezo-Floating-Gate Event-Counters . . . . 5.1 Non-linear Compressive Circuit for Protection and Range Mapping 5.2 Programmable Level-Crossing Detector . . . . . . . . . . . . . . 5.3 Daisy Chain based Level Crossing Detector . . . . . . . . . . . . 5.4 FG based Opamp Offset cancellation in Linear injectors. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 65 70 72 75 Chapter 6 Programming, Calibration and Reliability of Injectors 6.1 Initialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2 Calibration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3 Test setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.4 Measurement Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 79 80 80 81 . . . . . Chapter 7 Conclusion and Discussions . . . . . . . . . . . . . . . . . . . . . . . . . 87 7.1 Future Research Directions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 APPENDICES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 Appendix A MATLAB Codes . A.1 Initialization:Decision.m A.2 Associate files . . . . . . A.2.1 Rst.m . . . . . . A.2.2 Cmd.m . . . . . A.2.3 State.m . . . . . A.3 Calibration . . . . . . . . Appendix B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 91 94 94 94 95 95 FPGA Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 Appendix C Verilog-A Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 C.1 Injection Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 C.2 Tunneling Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 Bibliography . . . . . . . . . . . . . . . v . . . . . . . . . . . . . . . . . . . . . 113 LIST OF TABLES Table 1.1 Strain Levels in Biomechanical Structures. . . . . . . . . . . . . . . . . . Table 3.1 Commands supported by the strain-gauge sensor IC(Version-9). . . . . . . 36 Table 3.2 Sizing for Ring Oscillator. . . . . . . . . . . . . . . . . . . . . . . . . . 38 Table 3.3 Specifications for Ring Oscillator with R=450k. . . . . . . . . . . . . . . 38 Table 3.4 Reference Voltage for Sensor at 6V Supply. . . . . . . . . . . . . . . . . 42 Table 4.1 Sensor specifications. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Table 4.2 Piezo Material specifications [22]. . . . . . . . . . . . . . . . . . . . . . 58 Table 4.3 Strain-gauge specifications. . . . . . . . . . . . . . . . . . . . . . . . . . 58 Table 5.1 Values of Vr and V f g1 of the 2 channels in the 3 runs. . . . . . . . . . . . 77 vi 6 LIST OF FIGURES Figure 1.1 The Seikan Tunnel:(a)Strain gauges on tunnel lining; (b)Location and Depth. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 St. Anthony Falls Bridge: Structural deformations are measured by 195 vibrating wire strain gauges(VWSGs), 24 resistive strain gauges, and 12 fiber optic displacement sensors. . . . . . . . . . . . . . . . . . . . . . . 3 Fiber-composite propeller blades with LY41-6/350 strain gages from HBM, with telemetric data transmission. . . . . . . . . . . . . . . . . . . . . . . 3 Experimental investigations on a railway track using encapsulated SG series HBM strain gauge. . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Tensile force measurement using C series HBM strain gauge at low temperatures. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Figure 1.6 Gauges on Bones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Figure 1.7 Gauges on Teeth and Eyes. . . . . . . . . . . . . . . . . . . . . . . . . . 5 Figure 1.8 (a) Balanced bridge circuit to measure strain; (b)metal-foil strain gauges. . 8 Figure 1.9 Mems capacitive sensor. . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Figure 1.10 Working principle of FBG . . . . . . . . . . . . . . . . . . . . . . . . . 10 Figure 1.11 A HBM made FBG sensor. . . . . . . . . . . . . . . . . . . . . . . . . . 11 Figure 1.12 Charge Amplifier with piezo. . . . . . . . . . . . . . . . . . . . . . . . . 12 Figure 1.13 Asynchronous Self-Powered Sensor(a)Principle; (b)An example using the interface physics between piezoelectric material and floating-gate MOS. 14 Figure 1.2 Figure 1.3 Figure 1.4 Figure 1.5 vii Figure 1.14 Model of a piezoelectric transducer: (a) Complete electrical model; (b)Frequency response and model for low frequencies. . . . . . . . . . . . . . . . . . . 16 Figure 1.15 Mechanical deformation of a cantilever beam and the corresponding positive and negative voltage cycles generated by a piezoelectric transducer attached to the cantilever. . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Figure 2.1 Differential current load connected to a full-wave rectifier and a piezoelectric transducer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Figure 2.2 Linear Injector circuit : (a) Sensor mode when piezo power is available; (b)Read-out mode using different power source. . . . . . . . . . . . . . . 25 Figure 2.3 Measured output range for linear injection circuit. . . . . . . . . . . . . . 27 Figure 2.4 Differential Sensor Architecture. . . . . . . . . . . . . . . . . . . . . . . 28 Figure 2.5 Linear Injector Simulation model. . . . . . . . . . . . . . . . . . . . . . 29 Figure 2.6 (a)Measured injector output varying Vre f keeping Ire f =50nA; (b)Simulation result with same condition. . . . . . . . . . . . . . . . . . . . . . . . . . 31 Figure 2.7 (a)Measured injector output varying Ire f keeping Vre f =4.9V; (b)Simulation result with same condition. . . . . . . . . . . . . . . . . . . . . . . . . . 32 Figure 3.1 Full system architecture. . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Figure 3.2 Power On Reset. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Figure 3.3 Timing diagram for the DATA and ENVP(Sync) for version-1. . . . . . . 36 Figure 3.4 Timing diagram for the commands. . . . . . . . . . . . . . . . . . . . . . 37 Figure 3.5 Circuit Diagram for Ring Oscillator. . . . . . . . . . . . . . . . . . . . . 38 Figure 3.6 Simulation of Ring Oscillator showing ClkCP with Vdd =1.8V. . . . . . . . 39 Figure 3.7 Charge Pump control loop and simulation result with 1p load capacitance and 100nA load current. . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Figure 3.8 Measured result of injector voltage increase when tunneling is ON. . . . . 45 viii Figure 3.9 Vre f generator circuit with 4 taps. . . . . . . . . . . . . . . . . . . . . . . 46 Figure 3.10 Linear Injector circuit : (a) Level crossing Detector; (b)Level crossing Detector Simulation Result for 7 level-crossing thresholds Vsw1 to Vsw7 . . . 47 Figure 4.1 The micrograph of the chip. . . . . . . . . . . . . . . . . . . . . . . . . . 49 Figure 4.2 Measured injector gain for different Vref : (a) 4.4V; (b) 5.0V. . . . . . . . . 50 Figure 4.3 Experiment to measure charge for different frequency and amplitude inputs. 51 Figure 4.4 Measured response when the amplitude of the input is varied. . . . . . . . 52 Figure 4.5 Measured response when the frequency of the input is varied. . . . . . . . 52 Figure 4.6 The test setup with piezo emulator. . . . . . . . . . . . . . . . . . . . . . 53 Figure 4.7 Sensor output with symmetrical positive and negative cycles . . . . . . . 55 Figure 4.8 Sensor output with asymmetrical positive and negative cycles . . . . . . . 55 Figure 4.9 (a)Piezo Material Used, (b)Static Strain-gauge mounted on a surface. . . . 56 Figure 4.10 The schematic and photograph of the experiment setup with piezo material and strain-gauge attached to a plexi-glass beam which is put under mechanical strain using a servomotor controlled shaft. Also shown is the balanced bridge structure to measure the strain using the strain-gauge. . . 57 Figure 4.11 Strain levels from strain gauge measurements: (a) Maximum strain value of 1300µε ; (b) 1500µε ; (c) 1600µε . . . . . . . . . . . . . . . . . . . . . 59 Figure 4.12 Response of the positive cycle injector for the 3 strain levels. . . . . . . . 60 Figure 4.13 Oscilloscope capture of the piezo outputs before the rectifier for one of the strain values. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 Figure 4.14 Response of the negative cycle injector for the 3 strain levels. . . . . . . . 61 Figure 4.15 Strain Gauge measurement for one cycle of static strain. . . . . . . . . . . 61 Figure 4.16 Sensor Output when InjP has more strain than InjN. . . . . . . . . . . . . 62 ix Figure 4.17 Sensor Output when InjN has more strain than InjP. . . . . . . . . . . . . 62 Figure 5.1 Sensor Operating Region : (a) Without any Compressive Gain; (b)With the Non-Linear Compressive Gain. . . . . . . . . . . . . . . . . . . . . . 64 Figure 5.2 Non-linear compressive circuit. . . . . . . . . . . . . . . . . . . . . . . . 66 Figure 5.3 Simulation setup for Non-linear compressive circuit. . . . . . . . . . . . . 67 Figure 5.4 Non-linear compression simulation result : (a) For a max amplitude of 5V; (b)For a max amplitude of 15V; (c)For a max amplitude of 20V. . . . 68 Figure 5.5 Measured Non-linear response when Vin has been swept from 0 to 21V. . . 69 Figure 5.6 Simulation result showing the compressive circuit allowing the sensor to operate from strain values of 100 to 104 µε . Also 5 level crossing detectors covering the whole region by programming the charge in the floating-gate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 Figure 5.7 Level Crossing Detector with tuning. . . . . . . . . . . . . . . . . . . . . 71 Figure 5.8 Measurement result for the level-crossing detector. . . . . . . . . . . . . 72 Figure 5.9 Level crossing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 Figure 5.10 Daisy Chain Level crossing. . . . . . . . . . . . . . . . . . . . . . . . . 73 Figure 5.11 Results of Daisy Chain Level Crossing for 3 Cntrls : (a) Simulation; (b)From the chip. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 Figure 5.12 Offset cancelation Circuit. . . . . . . . . . . . . . . . . . . . . . . . . . 75 Figure 5.13 Measured result of Offset cancelation Circuit showing the difference in response between the two channels for 3 runs. . . . . . . . . . . . . . . . 77 Figure 6.1 Flow Chart of Initialization Algorithm. . . . . . . . . . . . . . . . . . . . 83 Figure 6.2 Flow Chart of Calibration Algorithm. . . . . . . . . . . . . . . . . . . . . 84 Figure 6.3 Schematic of the test setup. . . . . . . . . . . . . . . . . . . . . . . . . . 85 x Figure 6.4 Photo of the test setup. . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 Figure 6.5 (a)Measurement result from one injector under-going repeated cycles of Injection and then initialized to a reset range; (b)Variation of slopes in the 10 injection cycles; (c)Residue of the injector response with a linear regression curve for each region. . . . . . . . . . . . . . . . . . . . . . . 86 xi Chapter 1 Introduction This chapter begins with the applications of strain-gauges and a brief survey of existing straingauge technologies. The motivation of self-powered strain-gauges has been discussed next followed by the problems of using piezoelectric self-powered strain-gauges by conventional methods and also by a sensor previously proposed by us. This is where the work in the thesis comes in and the chapter finishes with a list of the contributions of this thesis. 1.1 Application of Strain Gauge Measurement of mechanical strain is extremely important in both civil structures and also inside the human body as it indicates the degradation and health of the structure. 1.1.1 In Structural Health Monitoring A good example of the usage of strain-gauge in Structural Health Monitoring(SHM) is the Seikan tunnel, which is a 33.46 mi railway tunnel in Japan, with a 14.5 mi long portion under the seabed and it is 460 ft below seabed and 790 ft below sea level. It connects the islands of Honshu and 1 (a) (b) Figure 1.1: The Seikan Tunnel:(a)Strain gauges on tunnel lining; (b)Location and Depth. (Fig Sources:(a)http://www.jsce int.org/civil engineering/1997/Longest Tunnel/FOREWORD.htm, (b)http://letzwave.blogspot.com/2010/03/seikan-tunnel-worlds-longest-under-sea.html) (For interpretation of the references to color in this and all other figures, the reader is referred to the electronic version of this thesis.) Hokkaido, carrying a total of about 100 scheduled commuter and freight trains daily. At four locations, selected from among tunnel sections which proved difficult during construction or where bad geological conditions were noted, strains at seven points in the longitudinal direction and at 14 points in the circumferential direction are measured automatically using high sensitivity strain gauges as shown in Fig. 1.1(a). There are over 600,000 bridges in the United States and almost 13% have some sort of structural damage. Thus it is important to use strain-gauge to monitor the health of the bridges. Tragedies can be avoided by its usage. For instance, the six-lane, 2.9 km (2 mile) Charilaos Trikoupis Bridge (Rion-Antirion Bridge) in Greece has 100 sensors (300 channels) that monitor its condition. Soon after opening in 2004, the sensors detected abnormal vibrations in the cables holding the bridge, which led engineers to install additional weight to dampen the cables. The Tsing Ma Bridge in Hong Kong, the world’s seventh longest suspension bridge, is equipped with more than 350 sensor channels which includes accelerometers, strain gauges, anemometers, weigh-in-motion devices, and temperature sensors. [29] Applications of strain-gauge can be also be seen in the field of aerospace. Fig. 1.3 shows one such case where strain gages are attached to the propeller blades to find out the optimal direction to place them. 2 Figure 1.2: St. Anthony Falls Bridge: Structural deformations are measured by 195 vibrating wire strain gauges(VWSGs), 24 resistive strain gauges, and 12 fiber optic displacement sensors. (Fig source:http://buildipedia.com/operations/public-infrastructure/innovative-infrastructuresmart-bridges) Figure 1.3: Fiber-composite propeller blades with LY41-6/350 strain gages from HBM, with telemetric data transmission. (Fig Source:http://www.hbm.com/) 3 Figure 1.4: Experimental investigations on a railway track using encapsulated SG series HBM strain gauge. (Fig Source:www.hbm.com) Figure 1.5: Tensile force measurement using C series HBM strain gauge at low temperatures. (Fig Source:www.hbm.com) 1.1.2 Biomedical Applications In-vivo monitoring of mechanical strain is important in biomedical experiments related to the study of osteoporosis or muscular dystrophy where the objective is to understand the progressive failure 4 and degradation mechanisms of biomechanical structures like bones, muscles or ligaments [1, 2, 3, 4]. For example, repetitive strains greater than approximately 1500µε can lead to fatigue damage and possible stress-fractures in bone [5]. Conversely, strains lower than 500µε are thought to increase the risk of bone absorption and osteoporosis [6]. Strain measurement is also important for rehabilitative studies in ACL injuries. Thus some kind of strain sensor is needed to monitor the strain levels. Typical strain levels experienced in biomechanical structures are summarized in Table 1.1. Archives of oral biology Figure 1.6: Gauges on Bones. (Fig source:W. Brent Edwards et.al) Figure 1.7: Gauges on Teeth and Eyes. 5 Table 1.1: Strain Levels in Biomechanical Structures. Structures Nerves Bones Ligaments Muscles Strain Levels 1000 − 200, 000µε [3] 400 − 1, 600µε [1] 1000 − 40, 000µε [2] 1000 − 50, 000µε [4] 1.2 Brief Survey of existing Strain gauge technologies There are multiple existing technologies to measure strain. The most popular among them is the resistive strain-gauge. Resistive strain gauge can be made of three types of material-metal, semiconductor and vapor deposited(thin film). Strain gauges can also be capacitive where strain is measured by the change in the capacitance due to the change in plate separation distance. Another type of strain measurement is Fibre Bragg grating(FBG) based biomedical pressure sensors which measures spectroscopic changes due to mechanical displacement of an implanted optical fiber. Piezoelectric strain gauges are also popular in which the piezo material generates voltage from a strain input and this voltage is measured to estimate the strain. Selection of a particular type of strain gauge depends on the application. 1.2.1 Resistive This type of strain-gauge depends on the change in resistance due to the change in length(l) and width(cross sectional area A) when it is deformed due to strain. As we know the relation between resistance(R) of a metal wire and its dimensions is given by, R=ρ 6 l A (1.1) where ρ is the resistivity. To get the maximum resistance change it is usually laid out in a concertina pattern. The gauge is placed in such a way that the strain is in its longitudinal direction. They are generally made of thin metal-foil grids that can be adhesively bonded to a surface. Different metals and alloys such as constantan, advance, karma, nichrome, and germanium are used. The resistance change is measured using a wheatstone bridge as shown in Fig. 1.8(a). To cancel out temperature effects another static strain gauge is used as another branch of the bridge. The change in voltage is often too small and thus it has to be amplified using a differential amplifier. One important parameter is the Gauge Factor(GF) which is given by the following expression, ∆R β GF = R = , ε ε where ε is the strain, ∆R is the change in resistance and β = (1.2) ∆R . GF relates the change in resistance R to the strain. From Fig. 1.8(a) it can be seen that VAB = Vre f .( R R + ∆R − ), R1 R1 (1.3) When there is a positive or negative ∆R present due to strain VAB would be non zero too and it would be amplified by the amplifier gain G. From this reading ∆R can be calculated and then strain can be calculated from eq. 1.2. Metal-foil strain gauges are the most popular as they have multiple advantages. First of all, they are of very small size(size of a postage stamp or even smaller, yet quite rugged and bonds excellently to most surfaces. They can be also wrapped around curved surfaces. As they are metal they readily dissipate heat. Other good qualities are high linearity, minimal sensitivity to transverse strain (perpendicular to intended direction) and good spatial resolution (measure strain at a point). 7 Vref Dynamic Gauge ¡ R VB VA R+ R Static Gauge VAB G G.V AB R1 R1 Instrumentational Amplifier (a) (b) Figure 1.8: (a) Balanced bridge circuit to measure strain; (b)metal-foil strain gauges. But there are some disadvantages too. Firstly, the resistance changes with temperature and thus the gage factor changes with temperature too. Also strain gage grid expands and contracts at a different rate than the surface it is attached. It has typically very low gage factor(in the order of 2) and thus has lower sensitivity to strain. So very small strain variation cannot be measured by it. 1.2.2 Piezoresistive(Silicon) The resistance of silicon changes with strain due to the change in its resistivity(ρ ). Resistivity is related to mobility which depends on the mean free time between collisions and that depends on the interatomic distances which change due to the strain. This could be either silicon crystal moderately doped or polycrystalline in MEMS piezoresistors [27]. They have gauge factors more than that of metal gauges. 1.2.3 Capacitive Capacitive strain sensors have advantages in temperature drift, sensitivity, noise, and dynamic range, as compared to metal foil and piezoresistive sensors. One such capacitive mems based strain gauge was reported in [28]. 8 Figure 1.9: Mems capacitive sensor. (Fig source:[28]) The sensor is a linear differential comb capacitor. The capacitive comb based structure is shown in figure 1.9. The strain applied to the structure along the X axis, causes the arms to move in the Y direction. The net displacement of the arms can be enhanced by appropriately designing the length and angle of the arms. The two outer electrodes move in the positive Y direction, while the central electrode moves in the opposite direction. This increases the overlap area and hence capacitance, between the lower pair of combs and reduces the overlap area and capacitance between the upper pair. This double differential mechanism further increases the sensitivity of the sensor. The maximum measurable strain is limited by the length of the fingers and the required finger overlap area. At the limiting strain, the fingers of adjacent comb will touch the support beam or there will be no overlap area between adjacent combs. This is an intrinsic limitation of this design. For this kind of sensor, gauge factor(GF) is given by GF = 9 ∆C C ε , (1.4) Figure 1.10: Working principle of FBG (Fig Source:http://www.fbgs.com/technology/fbg-principle/) 1.2.4 Fibre Optic This kind of sensor measures the change in wavelength or phase of light and them corresponding strain in calculated accordingly.([9, 23, 24, 25]) Fiber Bragg Gratings are made by laterally exposing the core of a single-mode fiber to a periodic pattern of intense ultraviolet light. The exposure produces a permanent increase in the refractive index of the fiber’s core, creating a fixed index modulation according to the exposure pattern. This fixed index modulation is called a grating. At each periodic refraction change a small amount of light is reflected. All the reflected light signals combine coherently to one large reflection at a particular wavelength when the grating period is approximately half the input light’s wavelength. This is referred to as the Bragg condition, and the wavelength at which this reflection occurs is called the Bragg wavelength. This principle 10 Figure 1.11: A HBM made FBG sensor. (Fig source:www.hbm.com) is shown in Fig. 1.10. The central wavelength of the reflected component satisfies the Bragg relation: λre f l = 2nν , with n the index of refraction and ν the period of the index of refraction variation of the FBG. Due to strain dependence of the parameters n and ν , λre f l will also change as function of strain. This dependency allows determining the strain from the reflected FBG wavelength. Though FBG cannot fully compete with metal strain gauges regarding price and precision it has certain advantages: 1. They match very well with composite materials and thus can be integrated on the surface of test objects like airplanes or power plants; 2.Can measure very high strain(> 10, 000µε ); 3. Lightweight; 4. Immune to EMI or lighting interference; 5. FBG signals not distance dependent; 6. High long term stability. Its weaknesses are: 1. High temperature dependence(effect of 1◦ Celsius temperature is of 8µε ); 2. Gage factor is quite low(0.77-0.81); 3. Stiffness is higher than that of foil strain gages causing higher parallel force to specimen; 4. Sensing fibre core is positioned at a greater distance from specimen causing errors; 5. Radius> 10mm. Therefore quite large; 6. Bulky optics for conditioning and controlling the light beam. 11 Figure 1.12: Charge Amplifier with piezo. [26] 1.2.5 Piezoelectric Piezoelectric elements can be used as strain sensors [26]. Strain is measured in terms of the charge generated by the element. Piezo materials cannot be isotropic as then it would not generate any electrical polarization when force is applied. Piezo materials are of mainly two types-piezoceramics and polymers. The most commonly used piezoceramics, PZT(Lead Zirconate Titanate) are solid solutions of lead Zirconate and lead Titanate with other dopings. They exhibit properties like high elastic modulus, brittleness and low tensile strength. PVDF is a polymer(Polyvinylidene Fluoride). The Young’s modulus of PVDF is approximately 1/12th of PZT. So it is more suited to sensing applications as it is more likely to adjust in the host structure. But the problem is the piezoelectric coefficient is 1/10th of PZT and also highly temperature dependent. It is important to pass the output of the piezoelectric sensor through some signal conditioning 12 as the piezo output impedance is very high. One way is to connect the outputs to a high vauled resistor and measure the current through it using a current amplifier. Another way is to use a charge amplifier to measure the charge generated by the sensor, which is equivalent to the strain as shown in Fig. 1.12. 1.3 Motivation for Self-Powered Sensor Even though all these techniques can precisely measure instantaneous strain-levels down to a few µε , they are passive in nature and do not provide any historical information about the strain signal which could be used for understanding progression of mechanical degradation. An example of the historical information could be some measure of the strain-energy dissipated through the bio-mechanical structure or could be the running average of the strain signal during the entire observation period. Without historical information, the strain-measurement could be prone to ageing artifacts of the gauge and also prone to the degradation in the interface between the gauge and the bio-mechanical structure being monitored. In principle, passive strain-gauges could be complemented with additional circuitry that continuously read, process and store the desired information. Continuous operation of the add-on circuitry could be achieved through powering by implanted energy storage devices (batteries or super-capacitors) that could be periodically replenished remotely or using energy-scavenging, in-vivo. However, small volume requirements of the sensor severely limits the capacity of energy storage and in-vivo energy harvesting devices. An ideal solution would be an asynchronous self-powering approach where the strain-gauge harvests its operating power directly from strain variations, compute the parameters of interest and store the parameters till they are retrieved or read-out. 13 Sensor IC Transducer (a) source current piezo Inject drain Floating gate (b) Figure 1.13: Asynchronous Self-Powered Sensor(a)Principle; (b)An example using the interface physics between piezoelectric material and floating-gate MOS. 1.4 Challenges in Piezo-based self-powered strain gauges Piezoelectric strain gauges described before can be potentially made self-powered if the sensor is powered by the electrical power generated. But that would mean the load seen by the piezo is not infinite now, it will draw current which would lead to problems in strain measurement. This problem is discussed below. 1.4.1 Piezoelectric Model In literature, piezoelectricity based mechanical-to-electrical conversion has been extensively modeled and Fig. 1.14(a) [15, 17, 16, 18] shows a widely accepted electrical model that is valid over 14 a wide frequency range. The model maps all the mechanical parameters into its equivalent counterpart which simplifies the analysis of any electrical circuit that is driven by a piezoelectric transducer. For instance, the inductor Lm models the effect of the mass of the transducer and the effective mass of the substrate to which the transducer is attached. The capacitance Ck models the mechanical stiffness of the transducer and the Rb models the mechanical damping of the transducer. The voltage source models the mechanical stress σin induced by strain variations and the mechanicalto-electrical transformer (with transformation ratio n) reflects the transformation of the mechanical variables into electrical variables (voltages and currents). On the electrical side of the transformer, the electrical load connected to the transducer is modeled by the load capacitance CL of the material and the load resistance RL . Based on the electrical model in Fig. 1.14(a), the frequency response of a piezoelectric transducer is shown in Fig. 1.14(b). The series inductance and capacitance leads to the resonance at a frequency f0 = 1/2π LmCk . Below the resonant frequency, the response of the transducer is cap- tured by simple capacitively coupled voltage source which forms a high-pass R-C circuit, as shown in Fig. 1.14(b). This simple R-C model is sufficient to capture the dynamics of the transducer under quasi-static operating conditions or frequency of operation below 20Hz. 1.4.2 Problem in quasi-static Strain Measurement For a piezoelectric cantilever with dimensions L × b × h, the open-load voltage(vin (t)) generated across the transducer as a function of a perpendicular mechanical force F(t) is given by [12]: vin (t) = F(t)g31 S(t)Y E d31 h = S(t)Y E hg31 = b ε 15 (1.5) 16 CP = ε b×L . h (1.6) the load capacitance and CP is the output capacitance of the transducer given by the cut-off frequency f p will be equal to 1/2π RL .(CP +CL ), where RL is the load resistance, CL is short circuit elastic modulus and ε is the electrical permittivity. Based on the simple R-C model, where g31 and d31 are piezoelectric constants, S(t) is the time-varying mechanical strain, Y E is the Figure 1.14: Model of a piezoelectric transducer: (a) Complete electrical model; (b)Frequency response and model for low frequencies. (b) Freq f0 0000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000 VP Usable Region CP 000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000 fp Resonance Vout RL CL Vout for < f0 (a) 00000000000000000000000000000000000 000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000 Cb   S in RL nV Rb Ck n:1 Lm CL Vout i According to the high-pass R-C model, the output voltage generated by the piezoelectric transducer at a particular frequency f is given by Vout ( f ) = Vin ( f ). f / fp (1.7) 1 + ( f / f p )2 which based on equation 1.5 leads to S( f )Y E d31 h Vout ( f ) = . ε f / fp (1.8) 1 + ( f / f p )2 where S( f ) denotes the Fourier transform of the strain-signal. It can be seen from equation 1.8 that the piezoelectric output voltage Vout ( f ) is negligible at frequencies f << f p and is only proportional to S( f ) when f > f p . This highlights the difficulty of measuring static strain (low-frequency strain) using piezoelectric transducers. However, quasi-static strain (with frequency less than 20 Hz) can be measured if f p can be made lower than 20 Hz, which would imply increasing CL ,CP and RL . 1.4.3 Previous Work & Problem Earlier in [10] we had proposed and successfully demonstrated an asynchronous self-powered sensor based on the integration of piezoelectric transducers and floating-gate injectors. The piezoelectric transducer was used for sensing strain-variations and the same sensing signal was used for powering the computation and non-volatile storage functions implemented by the floating-gate injectors. In [11, 12] we used the self-powering approach to design mechanical usage monitors and event detectors. There were two major disadvantages which obviates the use of the method in [13, 14], for 17 Neutral Axis  ȴε Positive strain cycle 3LH]R 9ROWDJH Negative strain cycle time Figure 1.15: Mechanical deformation of a cantilever beam and the corresponding positive and negative voltage cycles generated by a piezoelectric transducer attached to the cantilever. designing self-powered strain-gauges: (a) the response of the floating-gate injector in [10] is loglinear with a dynamic range less than 100mV; and (b) the resolution of the sensor was measured to be less than 5 bits. At such low-resolutions and low dynamic-range, measurement of quasistatic strain variations using a piezoelectric transducer is difficult. Another challenge in measuring quasi-static-strain using piezoelectric transducer is that at ultra-low-frequency (less than 20Hz) the output of the transducer is capacitively coupled, as a result of which the signals of interest get filtered out. To address both the challenges while ensuring self-powered operation, in this thesis, we show how a constant current loading in conjunction with a differential operation could surmount these challenges. 18 1.5 List of Contributions of the thesis The contributions of this thesis are the following: • The use of an ultra-linear floating-gate injector for quasi-static strain measurements. The injector which was first reported in [13, 14] and was shown to achieve a resolution greater than 13 bits and a dynamic range greater than 4V. • The use of a differential configuration of the linear injector circuit which measures quasistatic-strain by integrating the difference between the energy content of the piezoelectric signal generated during the positive and negative strain-cycles. The principle of operation is shown in Fig. 1.15 for a piezoelectric cantilever beam which is subjected to mechanical strain variations. The positive and negative cycles of the electrical signal correspond to the deformation of the cantilever in each direction about the neutral-axis or the resting state. If the cantilever returns back to its resting state (no stored potential energy), the energy transduced during the positive strain-cycle should be equal to the energy transduced during negative strain-cycle. However, if the transducer is subjected to deformation (or subjected to static-strain), there will be a difference between the positive and negative signal cycles which if integrated should measure the magnitude of static-strain. • A system-on-chip solution has been designed that integrates the linear floating-gate injectors with high-voltage charge-pumps, analog references, ring oscillator and digital programming circuits. • Extensive experiments with the system-on-chip prototypes fabricated in a 0.5µ m standard CMOS process and piezoelectric material (PZT) have been performed using a bench-top mechanical test setup and the results have been calibrated against standard strain-gauge mea19 surements. • Another fundamental contribution of this thesis is a novel compressive self-powering technique that overcomes the input threshold effect of most self-powered sensors. By using a non-linear impedance circuit at the output of the piezoelectric transducer and by using programmable level-crossing circuit and offset cancellation circuits, the thesis demonstrates an extended self-powering range greater than 40dB. • An automated programming and calibration of the sensor has been developed comprising of an FPGA and MATLAB interface. This test platform is also useful for long-term, automated reliability testing of the self-powered piezo-floating-gate sensors. The thesis is organized as follows: Chapter 2 describes the architecture of the piezo-floatinggate linear injector and the usage of it as a differential strain-gauge with its underlying mathematical model. Also a simulation model to simulate the linear injector in cadence has been provided. Chapter 3 presents a complete system-on-chip which integrates the linear injectors with highvoltage charge-pumps and digital command and control circuitry. In Chapter 4 the test results of the self-powered strain-gauge with piezoelectric material and commercial strain-gauge have been discussed. Chapter 5 describes the non-linear impedance circuit, programmable level-crossing circuit and offset cancellation circuits. Calibration and floating gate programming algorithms have been discussed in Chapter 6. Finally, chapter 7 summarizes the thesis and discusses about future research directions. 20 Chapter 2 Linear Floating gate Injector based strain gauge system As mentioned in Chapter 1, here the operational principle of the differential strain-gauge has been discussed in details. In the next section the linear floating-gate injector, which is the key element of the strain-gauge, has been described. Then a simulation model to simulate the floating-gate injectors has been provided. 2.1 Differential strain-gauge Architecture The first-order analysis presented here is based on the Fig. 2.1, using the quasi-static model given by the equation 1.5. The voltage generated by the piezoelectric voltage V (t) can be written in its differential form as V (t) = V + (t) −V − (t) 21 (2.1) 22 S(t) = S+ (t) − S−(t). (2.3) where the instantaneous strain S(t) is given by S+(t) = ε V + (t) ε V − (t) and S− (t) = E Y E d31 h Y d31 h (2.2) according to on equation 1.8, the differential voltages are related to the differential strains S+ (t), S−(t) ≥ 0 (negative) strain-cycles (see Fig. 1.15). Thus, V + (t),V − (t) ≥ 0 and V + (t)V − (t) = 0, ∀t. Based where V + (t) (V − (t)) denote the source voltages(assuming zero diode drops) during the positive Figure 2.1: Differential current load connected to a full-wave rectifier and a piezoelectric transducer. 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 V- 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 CP CL Vp I0 CL I0 V+ CP Piezo The quasi-static strain (average strain) computed over a measurement period T is then given by S(T ) = 1 T T S(t)dt (2.4) 0 which using equation 2.2 leads to S(T ) = ε E d hT Y 31 T T V + (t)dt − V − (t)dt . (2.5) 0 0 Equation 2.5 can be reformulated using the piezoelectric capacitance CP as S(T ) = ε 1 T Y E d31 hCP T 0 CPV + (t)dt − 1 T T 0 CPV − (t)dt . (2.6) Thus, measurement of the quasi-static strain could be achieved if the differential charges 1 T 1 Q− (T ) = T T Q+ (T ) = 0 T 0 CPV + (t)dt (2.7) CPV − (t)dt (2.8) could be directly measured. Note that Q+(−) (T ) represents the average charge transferred by the piezoelectric transducer to the load, and because V + (t) ≥ 0 with V + (t)V − (t) = 0, ∀t, Q+(−) (T ) can be used to estimate the L1 norm of the strain-signal ||S(T )||1 given by ||S(T )||1 = 1 T T |S(t)|dt = 0 1 T T S+ (t) + S−(t) dt. (2.9) 0 The measure of L1 norm of the strain-signal is important because it is an indicator of the strainenergy dissipated through the structure, and hence could be used for understanding progression 23 of mechanical damage. The quantities Q+(−) (T ) could be measured in a self-powered manner using the circuit shown in Fig. 2.1. It consists of a half-wave rectifier for producing V +(−) (t) and a constant current-sink I0 for measuring Q+(−) (T ). For the sake of simplicity, we will neglect the threshold voltage of the diode and the minimum voltage required for the current-sink to be operational. This is a valid assumption as many piezoelectric transducers can generate open-load voltages much larger than the threshold voltage of the diode. Therefore 1 T 1 I0 .τ − (T ) = T I0 .τ + (T ) = T 0 T 0 CPV + (t)dt (2.10) CPV − (t)dt (2.11) where τ +(−) (T ) is the total discharge time. Combining equations 2.11 and 2.6 the following relationship is obtained: S(T ) = ε I0 τ + (T ) − τ − (T ) hCP 31 Y Ed (2.12) The self-powered differential strain-gauge continuously computes the parameters τ + (T ) and τ − (T ) and continuously stores them in a non-volatile memory formed by a floating-gate transistor. In the next section we briefly describe the principle of operation of an ultra-linear floating-gate injector which was first reported in [13]. 2.2 Linear Floating-gate Injector The circuit level schematic and the principle of operation of the linear floating-gate injector is shown in Fig. 2.2(a). The circuit consists of a floating-gate pMOS transistor M f g whose source is driven by a constant current source Iref which is powered by either a piezoelectric transducer or by some other energy source Vdda . Note that both the energy sources are isolated by a diode which 24 OFF ON 0000000000000000000000000 0000000000000000000000000 00000000000000000000000000000000000000 0000000000000000000000000 0000000000000000000000000 Vdda=0 Iref Vs=Vref piezo eVref A Sp Input stress M fg C fg (a) OFF ON 000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000 Vdda Iref Vs Vfg Vref A M fg Sp C fg piezo No Input stress (b) Figure 2.2: Linear Injector circuit : (a) Sensor mode when piezo power is available; (b)Read-out mode using different power source. allows Vdda to supersede the signal generated by the piezoelectric transducer. The polysilicon gate of the pMOS transistor is electrically insulated by silicon-dioxide (hence the name “floating-gate”), therefore, any electron injected onto the gate is retained for a long period of time (8 bits precision for 8 years) [19, 20]. Electrons are injected onto the floating-gate using an impact-ionized hotelectron injection (IHEI) process which involves applying Vsd > 4.2V (in 0.5-µ m CMOS process) across the source and the drain terminal. The large electric field near the drain of the pMOS transistor creates impact-ionized hot-electrons whose energy when exceeds the gate-oxide potential 25 barrier (≈ 3.2eV) can get injected onto the floating-gate. IHEI current, Iinj , in a pMOS transistor is dependent on the transistor source current Is , the source-to-drain voltage Vsd and the gate-to-drain voltage Vgd across the transistor. This dependence can be expressed in functional form as Iinj = f Is ,Vsd ,Vgd , (2.13) where f (·) is an arbitrary function that could be empirically determined [20]. However, the circuit in Fig. 2.2 achieves stable and ultra-linear injection using a negative feedback loop formed by the opamp A and the floating-gate transistor Mfg . The source current is held constant at Iref which ensures that the source-to-gate voltage Vsg remains constant during injection. When switch SP is open,the feedback is enabled and opamp A ensures that the source-to-drain voltage Vsd is held constant to Vref . Thus, according to equation 2.13 the injection current Iinj remains constant. The amount of charge injected onto the floating-gate and hence the decrease in floating-gate voltage Vfg is proportional to the duration for which the source current Is is activated and SP is open. This can be expressed as ∆V f g = 1 CT T 0 Iin j dt = Iin j τ (T ) CT (2.14) where τ is the duration of injection and CT is the total floating-gate capacitance. The change in floating-gate voltage ∆V f g could be measured by closing the switch SP which breaks the feedback loop by shorting the other terminal of C f g to ground. Because the source current Iref is constant, ∆Vs = ∆V f g which is read-out through a unity-gain buffer. Figure. 2.3 shows the measured response of a linear injector where the source voltage Vs is first initialized to 4.3V (using FN tunneling), Vref = 4.8V and Iref = 30nA. The piezoelectric transducer is emulated by applying a 50ms long pulse signal (amplitude Vdd = 6.5V) after which the switch SP is turned ON and the source voltage 26 5 Linear model Measured reponse 4.5 Source voltage (V) 4 3.5 3 2.5 2 1.5 1 0.5 0 0 1000 2000 3000 4000 5000 6000 Loading cycles (n) Figure 2.3: Measured output range for linear injection circuit. Vs is measured. Figure. 2.3 shows that the change in Vs is linear with respect to the number of applied pulses. The deviation from the linear injection model occurs at the end points of the operating voltage and is due to the finite operating range of the amplifier A. This shows that the linear injector has a linear range of almost 4V. Also, in [13] the resolution of the linear injector was measured to be greater than 13 bits. 2.3 Linear Injector Based Differential Strain-Gauge Fig. 2.4 shows the architecture of the differential strain-gauge using the linear floating-gate injectors. Half-wave rectifiers formed by diodes extract the positive and negative voltage cycles V + and V − and the differential injectors estimate the quasi-static-strain according to equations 2.12 27 28 two terms; the first term is determined by the property of the piezoelectric transducer; the second stored in a non-volatile fashion on the floating-gate injectors. The gain α in 2.18 is a product of + − Note that the single ended outputs Vout and Vout are historical indicators of strain-energy which are α= Y E d31 hCP Iin j . ε I0CT (2.18) where the gain of the strain-gauge α is given by + − Vout (T ) = Vout (T ) −Vout (T ) (2.15) + Vout (T ) = α S+ (T ) (2.16) − Vout (T ) = α S− (T ). (2.17) and 2.14. The differential output Vout in Fig. 2.4 can be expressed as Figure 2.4: Differential Sensor Architecture. V 0000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - CP VoutInjN Vout Vp Piezo InjP V out+ V+ CP 29 Iin j = a.Ire f .(1 + b.Ire f ).exp(k.Vsd ) (2.19) injection current source modeled in verilog-A according to the equation dependent current sources. Fig. 2.5 shows the cadence model for the linear injector. Iin j is the injector in cadence, they have been modeled in Verilog-A using empirical relations as voltage Normal BSIM MOS models do not have injection or tunneling models. To simulate the linear 2.4 Linear Injector Simulation Model term represents the electrical parameters that can be effectively controlled. Figure 2.5: Linear Injector Simulation model. C fg Vc 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 Sp Vref A Rfg Iinj M fg Vd Vfg Ctun Itun R Vs_int Vs Vtun Iref Vdd where a, b and k are empirical parameters obtained from measurement results. In our case the values have been taken a=3 × 10−23 , b=5 × 106 and k=6.55. Vsd is the source to drain voltage and Is is the source current of the PMOS. There would be injection current only when Is is non-zero and when Vsd > 4.3V . At all other conditions Iin j = 0. Similarly tunneling has been modeled too according to the following relation Itun = c.exp(−d.(Vtun −V f g )) (2.20) where c=9.35 × 108 and d=800 in our model, Vtun is the tunneling voltage and V f g the floating gate voltage. The verilog-A models have been provided in Appendix. C. Ctun is the tunneling capacitor which is a small overlap capacitance(∼1fF). R f g is a very high valued resistance(1030 Ω) to provide a dc path to ground from the floating node. This ensures that the simulation converges and yet the charge remains there for a long time. The initial floating gate voltage is specified as the initial condition(.ic) of the capacitor. Resistance R is a very small resistor(1 Ω) to create a branch between Vs and Vs int to measure Ire f for Iin j . To verify the model, the simulation results were compared with measured results. First, Ire f was kept fixed at 50nA and Vre f was varied from 4.65V to 5V. The results are shown in Fig. 2.6. Then, Vre f was kept fixed at 4.9V and Ire f was varied from 30nA to 100nA. The results are shown in Fig. 2.7. This model has been proved useful specially for complex circuits involving floating-gates. In each case we have got a close match with the measured results. 30 0 V = 4.65V ref Vref= 4.70V V = 4.75V Voltage reduction (V) −0.02 ref −0.04 V = 4.80V ref −0.06 Vref= 4.85V −0.08 V = 4.90V ref −0.1 V = 4.95V ref −0.12 −0.14 V = 5.00V −0.16 0 ref 200 400 600 800 1000 Programming cycles (n) (a) 0 Voltage Reduction(V) −0.02 4.65V 4.7V 4.75V 4.8V 4.85V −0.04 −0.06 −0.08 −0.1 4.9V −0.12 4.95V −0.14 −0.16 −0.18 0 5.0V 20 40 60 80 100 Time(s) (b) Figure 2.6: (a)Measured injector output varying Vre f keeping Ire f =50nA; (b)Simulation result with same condition. 31 0 Voltage reduction (V) −0.02 −0.04 I = 30nA −0.06 ref I = 40nA ref −0.08 Iref= 50nA I = 60nA ref I = 70nA ref Iref= 80nA I = 90nA ref I =100nA −0.1 −0.12 −0.14 0 ref 200 400 600 800 1000 Programming cycles (n) (a) Voltage Reduction(V) 0 −0.05 30nA 40nA −0.1 50nA 60nA 70nA 80nA −0.15 90nA −0.2 0 100nA 20 40 60 80 100 Time(s) (b) Figure 2.7: (a)Measured injector output varying Ire f keeping Vre f =4.9V; (b)Simulation result with same condition. 32 Chapter 3 System Architecture This chapter describes a complete strain-gauge system implemented in standard CMOS 0.5µ technology. Earlier version of the sensor system was with a RFID based wireless read-out. The contribution of the thesis work from circuit design point of view was to separate the sensor system from the RFID system and make it an independent system. This makes the sensor much more dynamic from application point of view as it can be interfaced with a commercial RFID system. A major improvement has been done on the reliability point of view by not making the tunneling node an external pin and controlling the tunneling voltage via a control loop. This has increased the life-time of the sensor dramatically. 3.1 Top View Fig. 3.1 shows the architecture of the self-powered strain-gauge where the injector is powered in two ways: (a) when the strain-gauge sensor is in self-powering mode, it is powered directly using the signal generated by the piezoelectric transducer; and (b) when the sensor is being interrogated or programmed, the sensor module is powered by an external DC supply via a high-voltage charge33 Vddp Vp VddD Data Sync Digital Processor RST PoR Vdda Vddp Ring Oscillator Injection Tunneling Charge Charge Pump Pump Inj VTun Vdda VbN Vb1 Vn Rectifier Vpiezo+ Vpiezo- V ddp Vb2 Vb1 C fg Vref Inj SP Vs Mfg Vout VTun Injector Vref Iref VOut References C2 External Tuning M1 M3 Vb1 M2 Vb2 M4 M9 Low Voltage~2V High Voltage>6V M5 M10 M6 VbN M7 C1 M8 R Figure 3.1: Full system architecture. pump. Note that this demarcation in powering is necessary because self-powering can only support continuous monitoring and data-logging. However, the power is not enough to energize digital control circuits. The external DC power used for programming, digital command and control could be supplied by a telemetry interface. For example in [10], we reported an RFID based telemetry interface that could provide a 2V regulated supply. 3.2 Power On Reset The system-on-chip architecture includes a POR(Power On Reset) module as shown in Fig. 3.2 that generates a reset (initialization) signal (RST) that is used for zeroing all the internal register states of the digital modules, once the input supply has reached a sufficient value. The POR module 34 VddD Reference Vb RST C Figure 3.2: Power On Reset. also ensures that the strain-gauge sensor does not load the external supply unless enough energy can be scavenged to generate the DC voltage. The POR architecture used is based on the charging of a capacitor C by a constant current source. The current reference starts only when the supply reaches above 1.5V. When the voltage across the capacitor crosses a threshold, POR becomes high. Typical on time is 30µ s. The ON time depends on the current that is charging the capacitor, the capacitor size and the threshold of the inverter following it. The current is generated by a supply-independent reference like the one shown in Fig. 3.1. The resistance R is kept tunable externally in case we want to change the ON time. 3.3 Digital Processor The sensor IC has been designed to process commands encoded using commands. There have been two versions of the digital processor. For version-1 the commands are 8-bit words. For version2, they are 24 bit words. Decoding of the commands is achieved using an externally supplied clock signal (Sync/ENVP) and a data signal (Data) which encodes the PIE encoded commands. 35 Table 3.1: Commands supported by the strain-gauge sensor IC(Version-9). Command Opcode(Ver-1)(Bin) Cmd1-RST 1100-001-0 Cmd2-SHIFT 1100-010-0 Cmd3-TUN 1100-011-1 Cmd4-INJ 1100-100-0 Opcode(Ver-2)(Hex) C95-222 C95-481 C95-6A3 C95-814 Function Resets the shift register to ch1 Shifts to the next channel Controls Tunneling Controls injection 50µs ENVP DATA CMD4(INJ) CMD3(TUN) CMD2(SHIFT) CMD1(RST) Figure 3.3: Timing diagram for the DATA and ENVP(Sync) for version-1. Table 3.1 summarizes the commands used for programming and interrogating the sensor IC and the table also provides a brief functional description of the commands. In Fig. 3.3 the timing diagram for all the 4 commands in version-1 with the synchronization between the Data signal and the Sync signal and their frequency requirements are shown. Once Data is latched into a command register, a digital state-machine determines the validity of the command and synchronizes different digital control signals as shown in Fig. 3.4. The internal synchronization clock operates at 200 KHz and is generated using an on-chip three-stage current-starved ring-oscillator. The change from version-1 to version-2 was made to make the command interface more robust. In version-1 each command has 3 parts-4 bits preamble(1100), 3 bits command(001/010/011/100) and an odd parity bit. In version-2 the command is of 24 bits with the first 12 bits preamble and the rest 12 bits command. Each 12 bits have 3 parts in which a 4 bit word have been sent thrice 36 8 cycles Sync Data TUNNEL TUNNEL INJ INJ Tun Inj Figure 3.4: Timing diagram for the commands. changing the order of the bits(3210 2013 0312). The commands for which at least 2 out of 3 is received correctly is accepted as a valid preamble. For example, the preamble 1100 is now sent as 1100 1001 0101(C95). The same goes for the commands 1-4. 3.4 Ring Oscillator A 3 stage current starved ring oscillator generates a 1 MHz clock(ClkCP) needed for the charge pumps. This clock is also divided by 8 to get the low frequency clock(ClkDig) for running the digital processor. The circuit of the ring oscillator is shown in Fig. 3.5. The sizing of the components are given in the Table. 3.2. The oscillator is a 3 stage current starved one with 3 buffer stages following it to bring the signal to the full swing. The oscillator works for a wide supply range of 1.5V-3V and consumes low current. The simulation and measurement results are shown in Table. 3.3. The design target was deliberately done for a higher frequency as the parasitic capacitances would bring the frequency down which has happened in this case. One example simulation result has been shown in Fig. 3.6 where the oscillator starting time is about 50µ s. 37 Vdd C2 M1 M5 M2 M7 Mp1 Mp2 Mp M5 M6 M6 Div by 8 M4 M3 C1 Mn1 Mn R M p3 M n2 Mn3 ClkDig ClkCP Figure 3.5: Circuit Diagram for Ring Oscillator. Table 3.2: Sizing for Ring Oscillator. Component M1 M2 , M3 , M4 M5 M p , M p3 Mn , Mn3 M p1 , M p2 Mn1 , Mn2 M6 , M7 R Size 40µ /5µ 20µ /5µ 40µ /5µ 3µ /0.6µ 1.5µ /0.6µ 10µ /0.6µ 5µ /0.6µ 200µ /5µ 450k Table 3.3: Specifications for Ring Oscillator with R=450k. Supply 2V 3V 1.5V ClkCP Freq(Sim) 1.83 MHz 2.07 MHz 1.75 MHz ClkCP Freq(Measurement) Current(Sim) 1.11MHz 2.6 µ A 1.12MHz 12.25 µ A 1.16MHz 1.64 µ A 3.5 Charge Pumps The sensor IC also integrates two high-voltage charge-pumps. The Injection Charge Pump generates supply voltage Vdda > 6V and is used for powering the linear-injectors in the interrogation and 38 2 Voltage(V) 1.5 1 0.5 0 0 1 2 3 Time(s) 4 5 −5 x 10 Figure 3.6: Simulation of Ring Oscillator showing ClkCP with Vdd =1.8V. programming mode. The architecture of the charge pump which was first reported in [30] and was also implemented in [10], is shown in Fig. 3.7 and is activated when the RST signal is logic high. The second charge pump referred to as the Tunneling Charge Pump is activated when Tun goes high and generates tunneling-voltage VTun > 16V . The architecture and functioning of the charge pumps are briefly described here. For each stage of charge pump, four pMOS transistors with a capacitor form the equivalent diode to replace the diode in Dickson’s charge pump. The switch bulk technique is used to make sure the bulk potential is always the higher one between source and drain, which eliminates the latch up from the parasitic pnp transistor. The function of charge pump requires four clock signals shown in Fig. 3.7. Clk1 and Clk2 are non-overlapping clocks for charging capacitor Cp and Clk3 and Clk4 are auxiliary clocks to reduce forward voltage drop for each stage. The function of the second stage is described which is similar to the other stages. For the second stage, the bulk 39 voltage is connected to V2 when Clk1 is zero and Clk2 is Vdd . Since V2 is higher than V1 , the gate of conducting pMOS transistor is also connected to V2 which turns off the transistor and thus no current is flowing from V2 to V1 . When Clk1 is Vdd and Clk2 is zero, the conducting transistor is turned on and starts to charge Cp from V1 to V2 . Without the top capacitor, the charging procedure will stop when V2 = V1 −Vth which gives a Vth voltage drop for each stage. In the 4-phase charge pump case, Clk3 goes to zero after Clk1 stays at Vdd . Due to the capacitive coupling, the gate voltage of conducting transistor becomes V2 − kVdd where k depends on the ratio of capacitor Cg with parasitic capacitor. Therefore, the voltage at gate has an additional drop from the original value which compensates Vth and guarantees V2 to be charged to V1 eventually. For an N-stage charge pump, the output voltage can be expressed as Vout = Vin + N · Cp IL · η ·Vdd − Cpar +Cp Cp · f , (3.1) where Cpar is parasitic capacitance, IL is loading current, f is the frequency of clock signals and factor η comes from the energy loss when conducting transistor is turned on. So it can be seen if we want more load current IL from the charge pump with the same voltage, either Cp or the frequency f or both have to be increased. Because of the much higher output voltage than the injection charge pump, the tunneling charge pump uses a feedback control loop, shown in Fig. 3.7, to externally set the output voltage which also optimizes power dissipation of the charge pump. A reference voltage Vre f is set to 5% of the desired tunneling voltage VTun . The comparator in the feedback loop ensures that whenever value of the tunneling voltage VTun is higher than the target value 20 ×Vre f , the charge-pump clock is disabled causing VTun to decrease. Similarly, the feedback loop ensures VTun increases when it is lower than 20 ×Vre f . Fig. 3.7 illustrates this in a simulation result, where VTun oscillates about the target value. We have verified that an 18-stage 40 charge pump can be used to reliably generate up to 25V. Fig. 3.8 shows measured results where VTun is applied at the tunneling-node of the linear injectors. The output voltage increases as more electrons are removed from the floating-gate and hence could be used to erase the contents of the sensor. Both the charge pumps have same architecture and sizing. But the injection charge pump does not have a control loop as we did not want to add any extra ripple on the sensor supply. It had two taps, one of which was connected to Vdda . A 10pF capacitance was connected to this node to remove the ripple and give a stable supply to the sensor. Also a 12 diodes chain was connected for high voltage protection. So this node would be clipped off approximately at 0.7 × 12 = 8.4V . 3.6 Sensor The sensor block contains an array of linear injectors, references to generate Ire f and Vre f and level crossing block which generates control signals to turn ON or OFF an injector depending on the supply value. 3.6.1 Reference The references used are resistor based supply independent current reference. They are well cascoded to tolerate the high supply voltage. There are two separate references to generate Ire f and Vre f . The reference to generate Ire f is shown in the inset of Fig. 3.1. The current is in the order of 40nA which is further divided by half to be used as Ire f . The expression for current Id in the reference is given by, Id = UT ln(k) R 41 (3.2) Table 3.4: Reference Voltage for Sensor at 6V Supply. Reference Vre f 1 Vre f 2 Vre f 3 Vre f 4 Simulation Measurement 4.68V 4.45V 5.02V 4.8V 5.48V 5.24V 5.83V 5.57V where, k is the ratio of sizes of the MOS in two branches, R is the resistance and UT is the thermal voltage=.026V. Vre f is also generated using another similar reference shown in Fig. 3.9. But this reference have 5 stages(M5 − M14 ) of NMOS cascode instead of two. The two highest NMOS gate voltages Vhi and Vlow are then level shifted using pmos level shifters Ml1 to Ml4 to generate 4 reference voltages Vre f 1 to Vre f 4 . One of these 4 taps is connected externally to the opamp input Vre f . But in this case multiple taps from 4.7-5.5V have been kept in order to take care of process variations and also to control the injector gain. Each tap is obtained by using a pmos source follower as a level-shifter of the previous tap. In the level-shifters there are pmos diodes to protect them from injection due to high supply. Also the current in the level shifters is only 1/3rd of the main reference. The table below(3.4) provide results from simulation and measurement. There are differences between them as the circuits are in sub-threshold. But the resistance R(1.2M) is tunable externally adding a pot with it in series. The total current consumption for this block in simulation is about 122nA. 3.6.2 Injector Array The injector array shares the same Vre f . Their outputs are multiplexed to get one single output Vout . One injector circuit is shown in Fig. 3.1. M p1 and M p2 forms the current source Ire f . MN1 is switch SP . The shifting and selection of channels is controlled by the digital processor via a level 42 shifter. When the external supply VddD is available, only one channel can be selected and injected at a time. But when VddD becomes zero and piezo power is available, all the channels are capable of injecting provided the level crossing switches are ON. The level-crossing switches(not shown in Fig) are between Ire f and M f g . They are pmos switches which get turned ON when the control from the level-crossing block goes low. This is described in the next section. 3.6.3 Level Crossing One of the specific architectures that is amenable to asynchronous self-powered signal processing is for computing level-crossing statistics. Level-crossing statistics refers to the number of occurrence of the event when an attribute of the signal exceeds a pre-defined threshold. When the sensor supply ‘Vdd’ crosses certain thresholds, we want different injectors to be turned ON so that they can be used for event detection. The circuit for one such threshold detector is shown in Fig. 5.9(a). Mc1 − Mc5 are cascoded current sources. There is a chain of N pmos diodes connected to one current source. When the supply rises, the diode chain works like a resistance until all the diodes are turned ON fully. So the voltage Vl rises with the supply(with a different slope according to the resistance of the chain) and become stable at one diode drop. Depending on the slope, Vl crosses the threshold of the MOS Ma at a certain supply voltage and turns it ON making Vsw goes to zero. Vsw is the level crossing switch and it can be controlled by changing N, the number of diodes in the diode chain. The simulation result for 7 such level-crossing thresholds Vsw1 to Vsw7 has been shown in Fig. 5.9(b) when ‘VddSensor’ is a sinewave of 10Hz and amplitude of 10V. 43 Clk3 Clk3 Clk4 Clk4 Cg g C C Cgg C Cgg M1 V1 Vin Vin M2 M4 V2 V3 Vout Vout V4 M3 Cp p C Clk1 Clk1 Clk2 Clk2 Cgg C Cpp C Cp p C Cpp C CLL C Clk1 Clk1 Clk2 Clk2 Clk3 Clk3 Clk4 Clk4 Clk VddD NonOverlapping 4 phase clock generation Clk1 Clk2 Clk3 Clk4 Charge Pump 9.5R VTun Vreftun VTuns .5R Tun 1p Cntrl 20 VTun Voltage(V) 15 10 Startup Time =100µs VTuns 5 Cntrl 0 -5 0 1 2 3 Time(s) 4 5 -4 x 10 Figure 3.7: Charge Pump control loop and simulation result with 1p load capacitance and 100nA load current. 44 3 Sensor Output(V) 2.8 2.6 2.4 2.2 2 Injector1 Injector2 1.8 0 5 10 Measurement points 15 Figure 3.8: Measured result of injector voltage increase when tunneling is ON. 45 Vb3 M1 30/10 10/10 M2 C2 Vref2 Vb4 M3 Ml1 M4 Ml2 V ref4 Vref 3 Ml3 Ml4 M9 V ref1 Vhi M5 Vlow M7 M9 M10 M11 M10 M8 M12 M14 M13 C1 R Figure 3.9: Vre f generator circuit with 4 taps. 46 Vdd Vb2 10 Vdd Mc2 Mc1 8 Mc5 Mc4 Voltage(V) Vb1 Ib V sw N SwOn Vl Md 6 Vsw1−7 4 2 Ma 0 0 (a) 0.1 0.2 0.3 Time(s) 0.4 (b) Figure 3.10: Linear Injector circuit : (a) Level crossing Detector; (b)Level crossing Detector Simulation Result for 7 level-crossing thresholds Vsw1 to Vsw7 . 47 0.5 Chapter 4 Testing of the strain-gauge 4.1 Introduction The self-powered strain-gauge IC has been prototyped in a 0.5-µ m standard CMOS process and Fig. 4.1 shows the micrograph of the prototype which occupies an area of 1400µ m×1800µ m. Table 4.1 summarizes some of the high-level specifications that have been measured using the fabricated prototypes. The measurement results presented in this section are sub-divided into four categories: (a) DC characteristics which validates that the gain of the proposed strain-sensor can be controlled; (b) Dynamic response which validates that the strain-sensor can measure the charge generated by a piezoelectric transducer during positive and negative strain-cycles; (c) Response of the differential strain-sensor using an emulated model of a piezoelectric transducer; and (d) Response of the differential strain-sensor using a PZT transducer and calibrated using a metallic strain-gauge. For the differential measurements linear injectors from two sensor prototypes have been used. 48 4.2 Strain gauge gain control The first set of experiments measured the gain of the strain-gauge under different user-defined settings. As shown in equation 2.18, the gain of the proposed gauge α = Iin j Y E d31 hCP is directly I0CT ε proportional to the injection current Iin j which in turn is controlled by Iref and Vref . Fig. 4.2 shows the response of a single injector when the parameters Iref and Vref are varied. In Fig. 4.2(a), Vref was fixed at 4.4V and Iref was varied from 20nA to 50nA. For each configuration, the source voltage VOLTAGE REFERENCES INJECTORS 200 £¢ Figure 4.1: The micrograph of the chip. Table 4.1: Sensor specifications. Fabrication process Die size Current Consumption (Piezo) Current consumption (Programming) 49 0.5-µ m standard CMOS 1.4mm×1.8mm < 400nA < 100µ A was first initialized back to 3V and a 1-Hz pulse signal was applied at Vdd until the sensor output voltage decreased by 1-V. The results show that the gain α reduces as the current Iref reduces with 3 I ref = 20nA I ref = 30nA Source voltage (V) 2.8 I ref = 40nA I ref = 50nA 2.6 2.4 2.2 2 0 0.5 1 1.5 2 2.5 3 3.5 4 Loading cycles (x104) (a) 3 I ref = 20nA I ref = 30nA Source voltage (V) 2.8 I ref = 40nA I ref = 50nA 2.6 2.4 2.2 2 0 100 200 300 400 500 600 Loading cycles (n) (b) Figure 4.2: Measured injector gain for different Vref : (a) 4.4V; (b) 5.0V. 50 V Vin f=f1 V+ t V Injector f=2f1 Vout+ t Figure 4.3: Experiment to measure charge for different frequency and amplitude inputs. a minimum gain was calculated to be 25.6µ V/cycle. Similarly, Fig. 4.2(b) shows results when Vref was fixed at 5.0V and Iref was varied by the same level as the previous experiment. The result shows that compared to Fig. 4.2(a), the gain of the injector increases for all currents in Fig. 4.2(b). The ability to control the gain of the sensor is important because it allows the user to tradeoff sensitivity of of strain-measurements with the operational life of the sensor before it has to be erased and re-calibrated. For example, for long-term in-vivo applications the sensor might have to operational for over 105 mechanical activity cycles. In such cases, smaller values of Vref and Iref are preferred. Considering the operation range shown in Fig. 2.3, the sensor IC can process over 1.4 × 105 loading cycles for the minimum injection rate. On the other hand, the strain-sensor could also be used for short-term measurements, where larger values of Vref and Iref (larger gain) might be desirable. 51 0 Voltage Decrease(V) -0.1 -0.2 -0.3 -0.4 V in,max =8V -0.5 -0.6 V in,max =8.5V V in,max =9V V in,max =9.5V 0 1 2 3 Run Number 4 5 Figure 4.4: Measured response when the amplitude of the input is varied. 0 Voltage Decrease(V) -0.1 -0.2 -0.3 -0.4 -0.5 -0.6 f1=20 Hz -0.7 f2=40 Hz f3=80 Hz -0.8 0 1 2 3 Run Number 4 5 Figure 4.5: Measured response when the frequency of the input is varied. 4.3 Calculating energy difference between inputs The next set of experiments to validate the ability of the linear injector to measure the charge generated during the positive cycles. We emulate the output voltage of the piezoelectric transducer 52 53 Figure 4.6: The test setup with piezo emulator. ¥ ¥¦ 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 Z s Vout  InjN - Vout ϭϭZ InjP V out ¤ s +  ¤¦ Z ϭϮZ of the injectors which can be calibrated post-measurement. difference between the response of the injectors. This is attributed to the mismatch between each output of the injectors will be equal. The measured result is shown in Fig. 4.5 showing a small content of the signal was kept constant by doubling the frequency. Thus it is expected that the Next, the frequency of the source is varied while keeping the amplitude fixed. The energy increases with the increase in the amplitude, as expected from the results in section 2.2. decreases linearly with each measurement interval. It can also be noted that the gain of the injector plotted in Fig. 4.4. The measured result shows that for each amplitude level, the sensor voltage was set to 40 Hz. For each amplitude, the sensor output was recorded at five intervals which are The amplitude of the AC source was set to 8V, 8.5V, 9V and 9.5V and the frequency of the source as an AC source Vin shown in Fig. 4.3 which drives a half-wave rectifier and a single linear injector. 4.4 Differential Measurements using a Piezoelectric Emulator In the next set of experiments, the response of the differential injector circuit is validated using a circuit that emulates a low-frequency piezoelectric transducer model as shown in Fig. 1.14. The emulator circuit has been designed using amplifiers configured in an inverting and a non-inverting + mode, as shown in Fig. 4.6. The output of the amplifier is capacitively coupled to the Vpiezo and − Vpiezo inputs of the sensor IC (see Fig. 3.1). The circuit configuration thus generates a floating, differential and capacitively coupled output, similar to a piezoelectric transducer operating at subresonance frequencies. The advantage of using an emulator as opposed to a real piezoelectric transducer is that the electrical parameters of the circuit (emulating piezoelectric parameters) can be varied at ease by changing the resistance and capacitance values. The emulator was configured to generate AC signals with programmable positive and negative cycle amplitudes. A control experiment consisted of applying an AC signal with equal positive and negative cycle amplitudes. The sensor response is shown in Fig. 4.7 where the output of each injector is measured after a certain number of voltage cycles (denoted by a run) have been applied. The results show a linear monotonic response for both the injectors, however, the difference between the output voltages is attributed to the mismatch between the two injectors. This mismatch is measured and used for calibration. In the next experiment, the emulator was configured to generate a large amplitude during the positive cycle as opposed to the negative cycle. The measured response is shown in Fig. 4.8 which clearly shows a larger difference in the injector output voltages when compared to the control experiment. This experimental result verifies that the sensor can self-power, record and measure the difference in energy between the positive and negative voltage cycles. 54 0 Voltage Decrease(V) -0.1 -0.2 -0.3 -0.4 -0.5 -0.6 V+ out Vout -0.7 0 1 2 3 Run Number 4 5 Figure 4.7: Sensor output with symmetrical positive and negative cycles 0 Voltage Decrease(V) -0.2 -0.4 -0.6 -0.8 -1 0 V+ out Vout 1 2 3 Run Number 4 5 Figure 4.8: Sensor output with asymmetrical positive and negative cycles 4.5 Measurements using a Piezoelectric Transducer In the last set of experiments, the sensor IC was interfaced with a piezoelectric transducer and was attached to a mechanical phantom that was designed to act as a biomechanical structure. The piezo55 electric transducer chosen for this experiment was a commercial PZT ceramic available from Piezo Systems Inc. as shown in Fig. 4.9(a). Note that due to lead (Pb) content, PZT transducers are generally considered bioincompatible. However, the transducer is used in this work to demonstrate the proposed proof-of-concept, even though the design could be easily translated to a polymer based piezoelectric transducer. Also, appropriate packaging and shielding ensures that PZT transducers can be used in biomechanical studies as has been reported before [21]. Table 4.2 summarizes the mechanical and electrical specification of the PZT transducer using which the parameters of the low-frequency model in Fig. 1.14(b) can be readily derived. As a biomechanical phantom, we used a plexi-glass beam to which the PZT transducer was attached as shown in Fig. 4.10. A programmable servo-motor was used to apply stress on the beam and the induced strain was measured/calibrated using a metallic strain-gauge as shown in the figure. The dynamics of the servo-motor was controlled using a PWM (Pulse Width Modulated) signal generated by a field-programmable gate array (FPGA). By adjusting the number of PWM cycles, the forward and backward movement of the motor shaft can be accurately controlled. The output of the PZT transducer is directly connected to the sensor IC with no additional power-sources. The mechanical calibration of the set up was performed using a 350 Ohm(R) general purpose resistance strain-gauge from ‘Micro-Measurements’ (Fig. 4.9(b)). The strain-gauge was connected to a wheatstone bridge as shown in Fig. 4.10 and the circuit component values are shown in Ta- (a) (b) Figure 4.9: (a)Piezo Material Used, (b)Static Strain-gauge mounted on a surface. 56 V+ Vout+ Servo Motor InjP Piezo FPGA Control Vout InjN Vout- Same strain on gauge STRAIN GAUGE VVref Dynamic Gauge PIEZO R+ R § VB SERVO MOTOR R VA R1 Static Gauge VAB G G.VAB R1 Instrumentational Amplifier Figure 4.10: The schematic and photograph of the experiment setup with piezo material and straingauge attached to a plexi-glass beam which is put under mechanical strain using a servomotor controlled shaft. Also shown is the balanced bridge structure to measure the strain using the straingauge. ble 4.3. Fig. 4.10 also shows a calibration strain-gauge used in the Wheatstone bridge, which was used to compensate for temperature variations in strain measurements. A commercial, fully differential instrumentation amplifier was used to amplify the difference in voltages across the Wheatstone bridge. Fig. 4.11 shows the plots of time-varying strain (of different amplitudes) that is induced in the plexi-glass beam and Fig. 4.13 shows the output across the PZT transducer for one specific case. It can be clearly seen in Fig. 4.13 that the output voltage of the transducer shows positive and negative voltage cycles that correspond to the direction of the deformation of the beam. For 57 all the experiments, the nominal strain-levels were chosen to be consistent with the strain levels summarized in Table 1.1. The output of the sensor was measured after every 10 loading cycles. The measured results are shown in Fig. 4.12 and Fig. 4.14 corresponding to both the injectors. The result shows that the response of the both the injectors are similar, indicating that the energy in the positive and negative strain cycles are similar. This is expected since the plexi-glass beam is allowed to return to its resting state (zero static strain state). However, unlike conventional straingauges, the self-powered gauge provides a historical indicator of the L1 norm that is proportional to the energy dissipated through the PZT and hence the plexi-glass beam. The energy is proportional to the average of the output generated by both the injectors. This historical information could be more useful for determining progression of damage in a structure than just a passive static-strain measurement. Table 4.2: Piezo Material specifications [22]. Length(l) Width(w) Thickness(h) Material Electrodes Capacitance Strain/Field(d31 ) Field/stress(g31 ) coupling(k31 ) Elastic Modulus(Y E ) 2.5 inch 1.25 inch .02 inch Lead Zirconate Titanate(PZT) Nickel 73nF −190 × 10−12 m/V −11.6 × 10−3 V-m/N 0.35 5.2 × 1010N/m2 Table 4.3: Strain-gauge specifications. R 350Ω R1 1kΩ Gauge Factor(GF) 2.11 Vre f 5V 58 1500 2000 1500 Strain(µ ε ) Strain(µ ε ) 1000 500 0 -500 0 1000 500 0 100 200 300 Measurement points 400 (a) -500 0 100 200 300 Measurement points 400 (b) 2000 Strain(µ ε ) 1500 1000 500 0 -500 0 100 200 300 Measurement points 400 (c) Figure 4.11: Strain levels from strain gauge measurements: (a) Maximum strain value of 1300µε ; (b) 1500µε ; (c) 1600µε . To demonstrate that the proposed sensor IC can indeed measure quasi-static strain using a real piezoelectric transducer, the following experiment was designed. The servo-motor was programmed to generate strain-levels according to the waveform as shown in Fig. 4.15. The waveform shows that the plexi-glass beam is not allowed to return to its resting-state, implying that the measured strain at the start of the experimental run is not equal to the measured strain at the end of the experimental run. After each run, the output of the injectors are measured before the beam is subjected to a similar strain-cycle. Fig. 4.16 shows difference between the output of the injectors 59 0 Voltage Decrease(V) -0.05 -0.1 -0.15 -0.2 -0.25 -0.3 -0.35 0 1300µε 1500µε 1600µε 1 2 Run Number 3 4 Figure 4.12: Response of the positive cycle injector for the 3 strain levels. Vpiezo+ Vpiezo- Figure 4.13: Oscilloscope capture of the piezo outputs before the rectifier for one of the strain values. decreases with each run, which is proportional to the level of the quasi-static strain. Also the first injector measures a larger decrease in the output voltage as compared to the second injector. When the same experiment is repeated, however, after swapping the input terminals of the sensor, the second injector measures a larger decrease in the output voltage (after calibrating for mismatch effects) as shown in Fig. 4.17 , which is consistent with the expected results. 60 0 Voltage Decrease(V) -0.05 -0.1 -0.15 -0.2 -0.25 -0.3 -0.35 -0.4 1300µε 1500µε 1600µε 0 1 2 Run Number 3 4 Figure 4.14: Response of the negative cycle injector for the 3 strain levels. 1600 1400 1200 Strain( µε ) 1000 800 600 400 200 0 -200 0 50 100 150 200 Measurement points 250 300 Figure 4.15: Strain Gauge measurement for one cycle of static strain. 61 0 Voltage Decrease(V) -0.05 -0.1 -0.15 -0.2 -0.25 -0.3 -0.35 0 InjP InjN 1 2 3 4 Run Number 5 6 Figure 4.16: Sensor Output when InjP has more strain than InjN. 0 Voltage Decrease(V) -0.05 -0.1 -0.15 -0.2 -0.25 -0.3 0 InjP InjN 1 2 3 4 Run Number 5 6 Figure 4.17: Sensor Output when InjN has more strain than InjP. 62 Chapter 5 Compressive Piezo-Floating-Gate Event-Counters A significant disadvantage of the asynchronous self-powered sensor presented is the threshold effect as illustrated in Fig. 5.1(a). The electronics being powered by the transducer typically requires a minimum threshold voltage(5V at a load of 10MΩ) to activate the non-volatile storage functions. On the other hand, the electronics also determines a maximum limit on the magnitude of the sensor signal and this limit is determined by the breakdown voltages of active components on-chip. For example, the maximum voltage of the strain-powered sensor reported in [10] is 9V which is determined by the reverse break-down voltage of the protection diodes. The lower and upper threshold in the sensor signal severely limits the operating and sensing range of the sensor as is illustrated in Fig. 5.1(a). The lower voltage threshold determines the minimum strain that needs to be applied before the sensor becomes operational, and the higher voltage threshold determines the maximum strain-level can be sensed. The effect remains unchanged if a high-gain piezoelectric transducer (as shown in Fig. 5.1(b)) is used, which even though lowers the minimum strain-level required for 63 Voltage V max Operating Region V min Blackout X min X max Strain (a) Voltage V max High gain piezo Compressed high gain Low gain piezo V min Xmin Blackout X max Operating Region Strain (b) Figure 5.1: Sensor Operating Region : (a) Without any Compressive Gain; (b)With the Non-Linear Compressive Gain. powering the sensor but significantly reduces the maximum level of strain that can be sensed. In this chapter we present the design of a compressive-self-powered strain-sensor that alleviates the threshold effect for self-powering and in the process significantly enhances the powering/sensing range. The approach is illustrated in Fig. 5.1(b), where a high-gain piezoelectric transducer is used to reach the powering-threshold at low-levels of strain, where as the gain is progressively 64 reduced such that the sensing-threshold is reached at large-levels of strain. This compressive response can be achieved by using a non-linear resistive load and will be discussed in section 5.1. The use of a compressive response, however, requires that the circuits computing the statistics of the strain signal can be tuned or calibrated to process the compressed input signal. Also, the compressive input requires precision calibration of any mismatch due to the analog components. In sections 5.2 and 5.4, floating-gate circuits that can be used to precisely program our previously reported strain-level crossing circuits [11] and our previous reported linear floating-gate injectors [31] have been presented. Also to reduce power consumption a daisy chain level crossing scheme has been implemented in sec 5.3. 5.1 Non-linear Compressive Circuit for Protection and Range Mapping So, the requirement on the piezo would be that it should generate a voltage higher than the threshold for the lowest strain and a voltage lower than the breakdown voltage for the maximum strain we need to monitor. Thus, we need some kind of compressive gain before the piezo outputs are fed to the sensor. The structure described below and shown in Fig. 5.2 performs this task. R1 , R2 and R3 with multiple diode chains in parallel make a voltage divider. The main working principle is that for low voltage levels, the diode chain resistance is quite high and most of the voltage drop happens across R3 and the sensor. But when voltage increases, the diode chain resistance decreases non-linearly and the major voltage drops happen at R1 and R2 . We have used R1 =R3 =1M and R3 =99M. DR1 , DR2 , DR3 and DR4 form a full-wave rectifier. The diode chains consist of three conduction paths formed by diodes D1 -D10 , D11 -D18 and D19 -D20 . Note that the 65 Vp R1 Vn DR1 PiezoP V out D1 D11 D2 D12 D3 D13 D4 DR2 D14 D5 R3 D15 D6 D16 D7 D17 DR3 PiezoN R2 Vx D9 D10 Vp D19 D18 D8 D20 N1 N2 DR4 Figure 5.2: Non-linear compressive circuit. voltage Vx ≈ Vout /10. When Vx < Vth , with Vth being the threshold voltage of the nMOS transistor N1 , the diode chain D11 -D18 is OFF. Vp is floating and it follows Vx roughly. So the diode chains D11 -D18 and D19 -D20 turn ON almost together. When D11 -D18 starts conducting, it will load more current and try to turn ON all the 8 diodes. When they are fully turned ON, (Vout − Vp ) would remain almost constant(increase logarithmically to be precise). When Vout increases, Vp would increase too and this would make transistor N2 conduct more current which would bring down Vout . Thus Vout would be clipped off or increase with a very small slope. 66 CP Vin Non-linear Compression Vout RL Figure 5.3: Simulation setup for Non-linear compressive circuit. This circuit was simulated using the test setup shown in Fig. 5.3. Here it is used as a half-wave rectifier and the low frequency piezo model is made of voltage source Vin and capacitance CP . Vin is a sine voltage source of frequency 1 Hz whose amplitude is varied in 4 runs. CP has been taken as 200nF. RL is the load resistance equal to 25MΩ. Vout was observed with Vin . The results have been shown in Fig. 5.6. It shows that for Vin amplitude of 5V, there have been only 1V compression, but for 20V the compression is almost 11V. It has been seen for even a Vin of 100V, Vout remains below 10V. Fig. 5.5 shows the measurement result from silicon. This result is without the capacitor and the load is a multimeter. The input Vin is through a keithley from 0 to 21V in steps of 0.5V. For each step Vout was observed and has been plotted. It shows that there are two distinct slopes in the response. From about 9V the Vout rises with a different slope which is due to turning ON of the first diode chain. As it is difficult to generate very high voltages for testing, the circuit has been simulated in cadence. In this simulation, Vin has been applied as a linear function of strain(S). For a piezoelectric cantilever with dimensions L × b × h, the open-load voltage(vin (t)) generated across the transducer as a function of a perpendicular mechanical force F(t) is given by [12]: Vin (t) = S(t)Y E d31 h F(t)g31 = S(t)Y E hg31 = b ε 67 (5.1) 5 15 Vin Vin 10 Voltage(V) Voltage(V) Vout 0 Vout 5 0 −5 −10 −5 0 0.2 0.4 0.6 Time(s) 0.8 −15 0 1 0.2 0.4 0.6 Time(s) (a) 0.8 1 (b) 20 Vin Vout Voltage(V) 10 0 −10 −20 0 0.2 0.4 0.6 Time(s) 0.8 1 (c) Figure 5.4: Non-linear compression simulation result : (a) For a max amplitude of 5V; (b)For a max amplitude of 15V; (c)For a max amplitude of 20V. where g31 and d31 are piezoelectric constants, S(t) is the time-varying mechanical strain, Y E is the short circuit elastic modulus and ε is the electrical permittivity. In this example our minimum strain level of interest was 100µε and the maximum was 104 µε . Thus if the piezo properties are such that, Y E hg31 =.058 in eq. 5.1, then Vin =5.8V and Vout =5V after one diode drop(across DR1 )for 100µε . A dc simulation was performed varying S and the result has been shown in Fig. 5.6. It can be seen that Vout =13V for 104 µε strain. If the figure is zoomed in till 103 µε strain, then the response is very similar to the measurement result shown in Fig. 5.5. This figure also shows 68 9 8 7 V out (V) 6 5 4 3 2 1 0 0 5 10 V (V) 15 20 in Figure 5.5: Measured Non-linear response when Vin has been swept from 0 to 21V. 15 10 Sw2 Sw3 Sw1 Sw5 Sw4 Vout Voltage(V) Voltage(V) 8 6 4 10 5 2 0 0 0 200 Dead zone 400 600 800 1000 Strain 2000 4000 6000 Strain (µ 8000 10000 ) Figure 5.6: Simulation result showing the compressive circuit allowing the sensor to operate from strain values of 100 to 104 µε . Also 5 level crossing detectors covering the whole region by programming the charge in the floating-gate. 69 that the whole strain-voltage range can be covered by level-crossing detectors to use the sensor as event counter. This is explained in the next section. 5.2 Programmable Level-Crossing Detector Level-crossing detectors are needed to determine the supply range. There are multiple detectors that gets turned ON for different supply levels. Each detector triggers a separate injector. In chapter 3 a ordinary level crossing detector was described. But due to the compressive response we need more level-crossing detectors whose thresholds are very close to each other. This cannot be achieved by just changing the number of diodes in the chain. Thus floating-gate MOS was used to tune the thresholds. This can also take care of the mismatch in thresholds between different detectors. Fig. 5.7 shows a programmable level-crossing detector. Mc1 and Mc3 form a cascoded current source that feeds current to a diode chain of N diode-connected PMOS. The source of the bottommost diode(Md ), Vl is used as the control signal. When Vdd rises, Vl rises too and ultimately settles to a voltage required for fully turning on Md . The slope of the voltage rise depends on the resistance of the diode chain which depends on the number of diodes. When Vl is high enough to make the current through Ma higher than the current source Mc2 and Mc4 , the switch Vsw goes low. Thus, Vsw goes low at a particular supply voltage. Similar kinds of diode chains are kept changing the number of diodes to achieve coarse programming of level-crossing thresholds. For fine tuning, Md has been made a floating-gate MOS instead of a regular MOS. It can be programmed using a linear injector M f g , amplifier A and switches S p and S pb . In normal mode, S p will be closed and S pb open making Md a MOS whose gate it connected to ground via a capacitor which has some charge in it. Depending on the floating gate charge, the threshold of Md will be 70 Vb1 Mc1 Mc2 Mc3 Mc4 Vb2 Vsw Iref N-1 Spb Vl Spb Vref Vfg A Sp C fg M fg Ma Md Figure 5.7: Level Crossing Detector with tuning. changed. Thus Ma can also be turned ON at a different Vdd . To program the floating gate V f g , S p has to be opened and S pb closed. There is also a tunneling capacitor(not shown in Fig) to program. The amplifier A can be easily shared between multiple detectors. It is to be noted that during normal operation only the amplifier would consume a minimal extra power. The simulation results can be seen in Fig. 5.6. This simulation was done with the non-linear gain and level-crossing detector circuits. There were 5 level-crossing detectors with different number of diodes. Multiple runs were done with different amount of charge in the floating-gates which shows that the entire voltage range can be covered. The programmability was tested in silicon with one detector. The result is shown in Fig. 5.8. Vdd is ramped from 0 to 9V, Vl and Vsw have been observed for four runs with different amount of charge in V f g . It can be seen that Vsw turns ON at different points of Vdd . The programmability 71 9 8 7 V Voltage(V) 6 dd 5 V sw 4 3 2 V l 1 0 0 20 40 60 Sampling Points 80 100 Figure 5.8: Measurement result for the level-crossing detector. is more efficient when Vl is less than the normal MOS threshold voltage, which means V f g has a negative voltage. 5.3 Daisy Chain based Level Crossing Detector When multiple injector channels are used for detecting voltage levels, the power consumption adds up. Daisy chain based injector ensures that only one channel is ON at a time. For example, in Fig. 5.9 the three levels are V1 ,V2 ,V3 . In normal level crossing detector, the first channel would be ON for time (t6 − t1 ) when voltage> V1 , 2nd channel for (t5 − t2 ) when voltage> V2 and third channel for (t4 − t3 ) when voltage> V3 . So there is a overlap between the channels. All the three channels are ON between (t4 − t3 ). In daisy chain system, the first channel would be ON when the voltage is between V1 and V2 , 2nd channel between V2 and V3 and the third channel when voltage is above V3 . So there will be no repetition of information. 72 V3 V2 V V1 t1 t2 t3 t4 t5 t6 t Figure 5.9: Level crossing. For implementing this function the normal level crossing detector described earlier was followed by an extra logic block. The logic is the channels should turn ON one by one and when the next channel is ON the previous channel should turn OFF. This is shown in Fig. 5.10 using two consecutive level crossing switches Sw < i > and Sw < i + 1 >. It can be easily seen that Vdd Vb1 Vb2 Cntrl Sw Sw Figure 5.10: Daisy Chain Level crossing. 73 10 Vdd Voltage(V) 8 6 Cntrl<1> Cntrl<2> 4 Cntrl<3> 2 0 0 0.5 1 1.5 2 2.5 800 1000 Time(s) (a) 10 8 Voltage(V) V dd 6 4 Cntrl<1> Cntrl<2> Cntrl<3> 2 0 0 200 400 600 Reading Number (b) Figure 5.11: Results of Daisy Chain Level Crossing for 3 Cntrls : (a) Simulation; (b)From the chip. Cntrl < i >=0(ON) only when Sw < i >= 0(ON) but Sw < i + 1 >=1(OFF). This logic was added after each Sw < i > to ensure that no two channels are ON at the same time. The entire logic is current starved with few nanoampere so that the loading on piezo does not increase too much. 74 Vdd Vdd Iref Iref Vr S5 Vfg1 Mref S2 Vref1 A1 Cref Cfg Vfg2 Vs Mfg S4 S1 A2 S3 Vref2 Figure 5.12: Offset cancelation Circuit. 5.4 FG based Opamp Offset cancellation in Linear injectors. Multiple injector channels are used in the sensor that get turned ON for different supply levels. It is important that the injector slopes are similar. But there is always a slope difference between them due to mismatches in Ire f and opamp offset. This changes the injection rate and as a result the slope. A circuit block was designed to overcome this problem using floating gate MOS to tune Vre f and make the slopes equal. This concept was applied to two channels in a testchip. In Fig. 5.12 one such channel has been shown. M f g is the primary linear injector with amplifier A1 , control capacitor C f g and current source Ire f . This injector injects when switches S1 and S4 are open. S1 is there to switch between injection mode and read-out mode. S4 is to select or deselect a particular channel from injection. Mre f is another linear injector with amplifier A2 , control capacitor Cre f and current source Ire f to program floating node V f g1 , which acts like a reference voltage Vre f to M f g . Switches S2 and S3 are complimentary which connects one plate of Cre f to either amplifier A2 output(injection mode for Mre f ) or to another reference Vre f 2 , which can 75 be either 0V(For Mre f ) or 7V(For M f g ) according to requirement. V f g1 is given by the following relation, V f g1 = Vr . Cre f Cgs Q +Vre f 2 . + CT CT CT (5.2) where, Cgs is the gate to source capacitance of Mre f , CT is the total capacitance connected to node V f g1 and Q is the charge stored in the floating-gate. First V f g1 is programmed to change Q. But to inject in M f g, V f g1 has to be around 5V. If Mre f is kept turned ON, it would also inject and change V f g1 . Thus it has to be made injection-safe. The way that has been done is to close switch S5 . Thus Vsd of Mre f =0 and there would be no injection. But when Vr is made zero, V f g1 also decreases. So Vre f 2 has to be high enough to compensate for that. Also, the amplifier A1 has to be well cascoded so that the input stage MOS Vsd does not cross 4.3V and starts to inject. First V f g1 is programmed. To read-out from Mre f , S2 is open, S3 is closed and Vre f 2 = 0. To start injection, S2 is closed and S3 is opened. Also, S5 =0 in the channel we want to program and ’1’ in the channel we don’t. During injection cycle, Vr = Vre f 1 and during read-out phase Vr would give the floating gate voltage. There is also a tunneling node(not shown in fig) to increase V f g1 . Vr is programmed to a voltage close to 4V in both the channels. We aim to have V f g1 > 5V so that it can enable injection in M f g . But we cannot program V f g1 to that value directly as Mre f would start to inject beyond 4.3V. So we need a second reference Vre f 2 in addition to the floating-gate voltage. Now to use V f g1 as a constant reference we open S2 and close S5 in both the channels and make Vre f 2 =7V. First S1 is closed and V f g2 is read through Vs . Then S1 is opened and S4 is also kept opened to inject in M f g . It was seen from both simulation and measurements that when Vr was programmed to 3.9V, we would get V f g1 to be around a 5.2V reference. The requirement of Vre f 2 can be brought down by increasing Cre f as that would enable more of Vre f 2 to be transferred to V f g1 . 76 0.08 (V out,Ch1 -V out,Ch2 )(V) 0.06 Run1 0.04 0.02 Run2 0 -0.02 Run3 -0.04 -0.06 1 2 3 4 5 6 Read-out samples 7 8 9 Figure 5.13: Measured result of Offset cancelation Circuit showing the difference in response between the two channels for 3 runs. Vr of both channels were programmed to a value close to each other and then injection was performed in M f g . It was seen that channel2 had a higher reference and thus higher injection rate as shown in Fig. 5.13 as ’Run1’ . Then Vr was programmed again so that both the channel injection rate were exactly same. This is called ’Run2’. To show consistency in ’Run3’ the reference of channel1 was made higher and it showed higher injection rate too. The three conditions are shown in table 5.1. Thus this circuit could be used to remove mismatch between injectors. It can not only take care of the opamp offset, but also the mismatch in Ire f as by programming the floating gate reference Table 5.1: Values of Vr and V f g1 of the 2 channels in the 3 runs. Run Number Vr -Ch1(V) V f g1 -Ch1(V) Vr -Ch2(V) V f g1 -Ch2(V) 1 3.77 5.2 3.83 5.25 2 3.67 5.12 3.67 5.14 3 3.63 5.1 3.58 5.08 77 we can get any injection slope. As can be seen in table 5.1 for Run2, V f g1 are not same but the injection rate is exactly same. This is due to the compensation of Ire f mismatch. 78 Chapter 6 Programming, Calibration and Reliability of Injectors The floating gate injectors need to be initialized to proper values so that they can utilize their full linear range. Also there would be slope differences between different injector channels due to mismatch and offset of analog components. To solve these two problems an automated initialization and calibration methodology was implemented. This chapter discusses the algorithms, programs and test setup in details. 6.1 Initialization The injector voltages have to be programmed by repeated use of injection and tunneling. As discussed before they are activated in the sensor through digital control commands. The control commands are send through an Xilinx spartan-3 FPGA. The basic idea is to read the sensor voltage from the chip and then send necessary trigger to the FPGA to activate either injection or tunneling as required. This procedure has to be repeated for all the channels until the voltages are between 79 the specified limits. The algorithm used has been shown in Fig. 6.1. The algorithm takes care of few important points: • Tunneling is global. So it is activated for very small time and all the channel voltages are checked repeatedly so that they do not go too high. Whenever a channel voltage goes beyond 3.5V it is first brought down using injection. • If initially all the channels are above 3.5V, all of them are injected to 3V. If one or more of them are below 2.5V and some are more than 3.5V, the higher ones are first injected to 3V and then tunneled. The MATLAB program to implement the algorithm shown in Fig. 6.1 is provided in Appendix. A. 6.2 Calibration The injection slopes varies from channel to channel due to mismatch in Ire f and due to opamp offset. Thus it is important to calculate the slope for each of them and then use them later to calibrate the sensor response. There would be variation also due to temperature but this has been ignored for this work. A test algorithm was devised to calculate the slopes which is shown in Fig 6.2.The MATLAB program to implement the algorithm shown is provided in Appendix. A. 6.3 Test setup For testing purpose, we need to provide the sensor prototype with the supplies and inputs. The sensor needs two supplies-VddD which is 1.8-2V and a supply Vdd which is used to power the test 80 buffers internal to the chip. These buffers are used to read out the sensor output and also other debug analog signals. The buffers are basically opamps in unity gain loop strong enough to drive the pin capacitances. The bias voltage for the opamp which is 1V is also provided externally. Vdd can be anything more than 5.8V(Vre f 4 ) as that is the highest voltage we wanted to read. The other inputs are the ’Sync’(ENVP) and ’Data’ signals through which the commands are send. All the inputs were controlled through MATLAB. A low-cost and portable test environment developed in our lab was used to provide the biasing to the chip. The test board DACs were accessed through National Instrument DAQCard-6024E. ’Sync’(ENVP) and ’Data’ signals were sent from a Spartan-III FPGA board. A state machine was implemented in the FPGA that takes in the triggers and send out the commands to the chip. The FPGA code is provided in Appendix. B. The triggers to control the FPGA was controlled by MATLAB and the test-station send them to the FPGA. A schematic diagram of the test setup is shown in Fig. 6.3 and a photo of the setup is shown in Fig. 6.4. 6.4 Measurement Results To show the initialization and calibration algorithms together a MATLAB program was written to combine both of them. Repeated injection was performed on all the channels and their outputs stored. The result of one channel is shown in Fig. 6.5(a). There were 10 runs and in each of them there were 6 cycles of injection. After each run the sensor voltage was initialized back to the reset range. Each injection cycle was of 10s and Vre f used for this measurement was 5.57V. In Fig. 6.5(b) the slopes of each run has been plotted. As can be seen the error in slopes between each run is within a small band. The input DACs of the test station through which the sensor output is read has a low resolution which has added up to the slope error. This also shows the reliability of 81 the linear injector and the sensor as the gain does not change from cycle to cycle. In Fig. 6.5(c), the difference between the real response with a linear regression curve has been shown which is mostly within a ±3% error band. 82 Start Reset FPGA and Send Cmd1 to Select Channel 1 Read Channel Voltages and send Cmd2 to shift channels Are all 7 channels between 3 and 3.5V? No Decision for ith channel voltage: 1. If >3.5V Inj(i)=1 2. If<2.5V Tun(i)=1 Else Nothing Yes Exit InjDec=Sum of Inj(i), i=1,..,7 TunDec=Sum of Tun(i), i=1,..,7 Is InjDec=7 or TunDec=1? No Yes No Is the voltage7? Yes No Is TunDec=0 Yes Exit Figure 6.1: Flow Chart of Initialization Algorithm. 83 No Find Min(Minimum channel voltage) Min=3V Send cmd4(Injection) for a fixed time and check the channel voltage Send cmd3 to activate tunneling for a fixed time. Is InjDec=0? Start Initialize all bias voltages Send Cmd1 and reset control to Channel1 Read and store channel output Send Cmd4(INJ) and wait for a fixed time(has to be precise) Send Cmd4(INJ) again to stop injection Read channel output Calculate slope by dividing the output voltage decrease by the time of injection Send Cmd2(SHIFT) to change channel Is the control back to Ch1? No Exit Figure 6.2: Flow Chart of Calibration Algorithm. 84 Sensor Prototype FPGA MATLAB Test Station Figure 6.3: Schematic of the test setup. NI-cable FPGA Test Mother Board Chip Test Daughter Board Figure 6.4: Photo of the test setup. 85 4 Sensor Voltage(V) 3.5 Reset Range 3 2.5 2 1.5 1 10 20 30 40 50 60 Injection Runs (a) −3 5 −0.25 Voltage(V) Slope(V/Cycle) −0.2 −0.3 0 20 40 Sampling Points 60 x 10 0 −5 10 20 30 40 50 60 Injection Runs (b) (c) Figure 6.5: (a)Measurement result from one injector under-going repeated cycles of Injection and then initialized to a reset range; (b)Variation of slopes in the 10 injection cycles; (c)Residue of the injector response with a linear regression curve for each region. 86 Chapter 7 Conclusion and Discussions The contributions of the thesis are summarised below. First a novel self-powered static-strain sensor using a differential configuration of a linear p-IHEI(piezo-IHEI) circuit was proposed. The sensor is powered directly from ambient strainvariations and therefore does not require any batteries. For this reason, the proposed sensor could be miniaturized and used in in-vivo and embedded monitoring application. However, the sensor has a drawback, that it requires a minimum voltage-level (or strain-level) for operation which introduces dead-zones in its response which is unlike traditional strain-gauges that can be used to measure ultra-low levels of strain. There are also mismatches between the injectors which results in slope errors. The second part of the thesis describes a novel compressive self-powering technique that overcomes the limited powering and sensing range of the sensor. The proposed technique uses a nonlinear impedance circuit to dynamically load the output of a piezoelectric transducer and in the process reduce the magnitude of the output voltage at large levels of mechanical strain. The approach, however requires precise programming of level-crossing thresholds and precision mismatch com87 pensation, both of which are achieved using different variants of a linear piezo-floating-gate injection circuit. Measured results obtained from prototypes fabricated in a 0.5-µ m standard CMOS process validate the proposed techniques. The third part is the reliability testing of the piezo-floating-gate injection circuit that demonstrates repeatability of the results across multiple experimental runs. This involves in automated programming and calibration of the senor. The thesis also presents a verilog-A and SPICE based model of the floating-gate transistor that has been used for simulating the long-term dynamics of the PFG sensor circuits. 7.1 Future Research Directions There are multiple research directions available based on this sensor: • Temperature Compensation The current version of the p-IHEI self-powered sensor is sensitive to temperature. The voltage and current references depend on temperature, as a result Iin j and the injector slope too. Also the piezoelectric materials are also temperature dependent. To make the sensor more robust it needs to be made temperature independent. • Post-processing of sensor output The output of the sensor could be further processed to implement a industry standard strain measuring algorithm like the ’Rainflow Counting’([32]). This would make the sensor more useful and would be accepted more easily. • Ultrasonic Powering To power the sensor in programming mode piezoelectric materials in resonant mode(ultrasonic 88 frequencies) can be used. This would make the whole sensor size much smaller than with the RFID interface. • Piece-wise linear compressive gain The compressive response described would be more useful if it could be made piecewise linear with two/three slopes without the non-linear part. This would make the strain calibration of the sensor much simpler. 89 APPENDICES 90 Appendix A MATLAB Codes A.1 Initialization:Decision.m 1 2 3 4 5 %Programs 7 channels to a voltage between 3.5V-2.5V %Files ’Rst.m’, ’state.m’ and ’cmd.m’ needed. %%DAC Pin numbers from test station%%% DeleteNiCard; InitializeNiCard; 6 7 8 9 10 11 12 13 14 r1=3; r2=8; %Reset st1=2; st2=2; %State c1=2; c2=6; %Command se1=2; se2=8; %Send v1=5; v2=5; %VddDig b1=5; b2=6; %BufBias va=1; %Vdd c=1; %AnalogInput from chip 15 16 17 18 19 20 21 22 %%%Parameter Values%%% vdddig=2; bufbias=1; vdd=7; SetAnalogOutput(va,vdd); SetSpecificBias(b1,b2,bufbias); SetSpecificBias(v1,v2,vdddig); %Vdd %BufBias %VddDig 23 24 25 Ch=[]; %%%%%%%%Check Channel Voltages%%%%% 26 27 28 29 while(1) flag=0; Rst(r1,r2); %Reset 91 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 state(st1,st2); %state cmd(c1,c2); %cmd1(Rst to ch1) cmd(se1,se2); %cmd1send cmd(c1,c2); %cmd2(shift channel) for i=1:1:7 temp=0; for j=1:1:40 data=GetAnalogInput(c); if(j>30) temp=temp+data; end end Ch(i)=temp/10; if(Ch(i)<3.5 && Ch(i)>3.0 ) flag=flag+1; end cmd(se1,se2); %cmd2send pause(.01); end 49 50 51 52 53 Ch %%%%If all channels are within range:exit if(flag==7) break;end; 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 %%%Decision%%% TunDec=0; InjDec=0; for j=1:1:7 if(Ch(j)>3.5) Inj(j)=1; Tun(j)=0; elseif(Ch(j)<2.5) Tun(j)=1; Inj(j)=0; else Inj(j)=0; Tun(j)=0; end TunDec=TunDec+Tun(j); InjDec=InjDec+Inj(j); end 72 73 TunDec 92 74 75 76 77 78 79 80 81 82 83 84 85 86 87 InjDec %%%%%%Finding Minimum%%%%% if(InjDec==7) Min=3.3; else Min=Ch(1); for j=1:1:6 if(Ch(j)0) for j=1:1:7 j if(Inj(j)==1) Rst(r1,r2); %Reset state(st1,st2); %state cmd(c1,c2); %cmd1 cmd(se1,se2); %cmd1send cmd(c1,c2); %cmd2 for k=1:1:(j-1) cmd(se1,se2); %cmd2send k=k+1; end cmd(c1,c2); cmd(c1,c2); %Cmd4(Inj) 109 110 111 112 113 114 115 116 117 while(Ch(j)>Min) %InjEnB cmd(se1,se2); pause(10); cmd(se1,se2); %InjEnB temp=0; for k=1:1:20 data=GetAnalogInput(c); 93 if(k>10) temp=temp+data; end 118 119 120 end Ch(j)=temp/10 121 122 end end end 123 124 125 end 126 127 if(TunDec>0) Rst(r1,r2); %Reset state(st1,st2); %state cmd(c1,c2); %cmd1(Rst to ch1) cmd(c1,c2); %cmd2(shift channel) cmd(c1,c2); %TunEn cmd(se1,se2); %cmd3send pause(.001); %Adjust Tunneling time cmd(se1,se2); %cmd3send else break; end; 128 129 130 131 132 133 134 135 136 137 138 139 140 end A.2 Associate files A.2.1 Rst.m 1 function status = Rst (a,b) 2 3 4 SetSpecificBias(a,b,3.3); SetSpecificBias(a,b,0); A.2.2 Cmd.m 1 function status = cmd (a,b) 2 3 4 SetSpecificBias(a,b,3.3); SetSpecificBias(a,b,0); 94 A.2.3 State.m 1 function status = state (a,b) 2 3 4 5 6 7 8 i=1; while(i<3) SetSpecificBias(a,b,3.3); SetSpecificBias(a,b,0); i=i+1; end A.3 Calibration 1 2 3 4 5 6 7 8 9 10 11 12 13 14 %%%%Calculates the slope of 7 channels of the sensor%%%% %%%Files ’Rst.m’, ’state.m’ and ’cmd.m’ needed.%% %%DAC Pin numbers from test station%%% DeleteNiCard; InitializeNiCard; r1=3; r2=8; %Reset st1=2; st2=2; %State c1=2; c2=6; %Command se1=2; se2=8; %Send v1=5; v2=5; %VddDig b1=5; b2=6; %BufBias cal1=3; cal2=6; va=1; %Vdd c=1; %AnalogInput from chip 15 16 17 18 19 %%%Parameter Values%%% vdddig=2; bufbias=1; vdd=7; 20 21 22 23 24 25 26 27 28 29 30 SetAnalogOutput(va,vdd); %Vdd SetSpecificBias(b1,b2,bufbias); %BufBias SetSpecificBias(v1,v2,vdddig); %VddDig slope=[]; Rst(r1,r2); %Reset state(st1,st2); %state cmd(c1,c2); %cmd1(Rst to ch1) cmd(se1,se2); %cmd1send cmd(c1,c2); 95 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 cmd(c1,c2); cmd(c1,c2); %Cmd4 for i=1:1:7 %For 7 channels slope_sum=0; Ch_fin=[]; Ch_ini=[]; islope=[]; for k=1:1:2 %For 2 slope calculations temp=0; for j=1:1:40 %For 10 Readings to get an avg data=GetAnalogInput(c); if(j>30) temp=temp+data; end end Ch_ini(k)=temp/10 cmd(cal1,cal2); %Sends cmd4 twice in 10s temp=0; pause(11); for j=1:1:40 %For 10 Readings to get an avg data=GetAnalogInput(c); if(j>30) temp=temp+data; end end Ch_fin(k)=temp/10 islope(k)=(Ch_fin(k)-Ch_ini(k))/9.5 slope_sum=slope_sum+islope(k); end slope(i)=slope_sum/2 Rst(r1,r2); %Reset state(st1,st2); %state cmd(c1,c2); cmd(c1,c2); cmd(se1,se2); %cmd2send cmd(c1,c2); cmd(c1,c2); %cmd4 end slope 96 Appendix B FPGA Code ‘ t i m e s c a l e 1 ns / 1 ps /////////////////////////////////////////////////////////////// / / Company : / / Engineer : // / / C r e a t e D at e : 11:11:21 07/17/2009 / / D e s i g n Name : / / Module Name : Reader / / P r o j e c t Name : / / Target Devices : / / Tool v e r s i o n s : / / Description : // / / Dependencies : // / / Revision : / / Revision 0.01 − Fil e Created / / A d d i t i o n a l Comments : // /////////////////////////////////////////////////////////////// module R e a d e r ( t e s t , C a l i b , ClkCP ,MODB, Clkwave , S e r v o c o n t , Clk , Rst , Mode , ComSel , ComTx , MOSI , MISO , SS , DClk ,MOD, ASK , DataRx , SegDis , An3 , An2 , An1 , An0 , D a t a I n , DataOut , DataEvp ) ; i n p u t Clk , Rst , Mode , ComSel , ComTx , MISO ; input [ 7 : 0 ] D at aO u t ; input Calib ; / / input servoRst ; o u t p u t MOSI , SS , DClk ,MOD, ASK, DataRx , An3 , An2 , An1 , An0 , MODB, DataEvp ; o u t p u t [ 6 : 0 ] Seg D i s ; output [ 7 : 0 ] DataIn ; 97 output te s t ; o u t p u t ClkCP ; o u t p u t Clkwave ; output Servocont ; reg Servocont ; r e g [ 1 5 : 0 ] Cl k Cn t 1 ; r e g [ 1 5 : 0 ] Cl k Cn t 2 ; r e g [ 1 5 : 0 ] Cl k Cn t 4 ; reg [15:0] servocnt ; r e g Clkwave ; r e g ClkCP ; r e g [ 4 : 0 ] wavebak ; reg [ 4 : 0 ] wavefor ; reg servoRst ; reg [ 7 : 0 ] DataIn ; r e g [ 1 5 : 0 ] Cl k Cn t ; r e g [ 7 : 0 ] Bo u n ceCl k Cn t ; r e g ClkDiv , BounceClk ; r e g ClkDiv4 ; r e g SS , ModeB , ComSelB , ComTxB ; reg CalibB ; r e g [ 6 3 : 0 ] TxData ; r e g [ 6 3 : 0 ] TxData1 ; r e g [ 3 : 0 ] S u b S t a t e , Data1 , Data2 , Data3 , D at a4 ; r e g [ 7 : 0 ] Cnt ; reg [ 1 : 0 ] ModeState ; reg [19:0] iCnt ; reg f la g ; r e g iBTN0 ; r e g [ 3 : 0 ] Clk4 ; / / r e g temp ; a s s i g n t e s t = Clk4 [ 2 ] ; D i g i t D i s p l a y D1 ( Data1 , Data2 , Data3 , D at a4 98 , SegDis , An3 , An2 , An1 , An0 , Clk , R s t ) ; Buffer Buffer Buffer Buffer Buffer B1 B2 B3 B4 B5 ( ClkDiv ( ClkDiv ( ClkDiv ( ClkDiv ( ClkDiv , Rst , Rst , Rst , Rst , Rst , ModeB , BTN2 ) ; , ComSelB , BTN1 ) ; , ComTxB , BTN0 ) ; , Cal i b B , i C a l i b B ) ; , iBTN0 , bBTN0 ) ; a s s i g n DClk = ˜ ClkDiv & ( ˜ S u b S t a t e [1]& S u b S t a t e [ 0 ] ) ; a s s i g n MOSI = ! ( M o d e S t a t e [ 1 ] & ˜ M o d e S t a t e [ 0 ] ) & TxData [ 6 3 ] ; / / a s s i g n MOD = ! ( S u b S t a t e [1]& S u b S t a t e [ 0 ] ) | TxData [ 6 3 ] ; a s s i g n MOD = ( S u b S t a t e [1]& S u b S t a t e [ 0 ] ) & Clk4 [ 3 ] ; a s s i g n MODB= !MOD; a s s i g n DataEvp= ( S u b S t a t e [1]& S u b S t a t e [ 0 ] ) & TxData1 [ 6 3 ] & ClkDiv ; / / a s s i g n MOD = ˜MODn; a s s i g n DataRx = MISO ; a s s i g n sBTN0=bBTN0 | BTN0 ; a s s i g n ASK = 1 ’ b0 ; a l w a y s @( p o s e d g e ClkDiv4 o r p o s e d g e R s t ) begin i f ( R s t == 1 ’ b1 ) begin Clk4 [ 3 : 0 ] < = 4 ’ b1100 ; end else begin Clk4 [3 : 1 ] < = Clk4 [ 2 : 0 ] ; Clk4 [0] <= Clk4 [ 3 ] ; end end / / Command f o r c a l i b r a t i o n a l w a y s @( p o s e d g e ClkDiv o r p o s e d g e R s t ) begin i f ( R s t == 1 ’ b1 ) begin iBTN0 <=1’ b0 ; 99 i C n t <=20 ’ d0 ; f l a g <=1’ b0 ; end else begin i f ( i C a l i b B ==1 ’ b1 ) begin f l a g <=1’ b1 ; s e r v o R s t =˜ s e r v o R s t ; end i f ( f l a g ==1 ’ b1 ) begin i f ( i C n t ===20 ’ d1 ) begin iBTN0 <=1’b1 ; i C n t <=i C n t + 1 ; end e l s e i f ( i C n t ===20 ’ d10 ) begin iBTN0 <=1’b0 ; i C n t <=i C n t + 1 ; end e l s e i f ( i C n t ==20 ’ d50010 ) begin iBTN0 <=1’b1 ; i C n t <=i C n t + 1 ; end e l s e i f ( i C n t ==20 ’ d50020 ) begin iBTN0 <=1’b0 ; i C n t <=20 ’d0 ; f l a g <=1’b0 ; end else i C n t <=i C n t + 1 ; end end end / / G e n e r a t i n g Bounce Clk f o r l a t c h i n g i n p u t d a t a a l w a y s @( p o s e d g e ClkDiv o r p o s e d g e R s t ) begin 100 i f ( R s t == 1 ’ b1 ) begin Bo u n ceCl k Cn t <= 8 ’ d1 ; BounceClk <= 1 ’ b0 ; end else begin i f ( Bo u n ceCl k Cn t == 8 ’ d200 ) begin Bo u n ceCl k Cn t <= 8 ’ d1 ; BounceClk <= ! BounceClk ; end else begin Bo u n ceCl k Cn t <= Bo u n ceCl k Cn t + 8 ’ d1 ; BounceClk <= BounceClk ; end end end / / Latching input data a l w a y s @( p o s e d g e BounceClk o r p o s e d g e R s t ) begin i f ( R s t == 1 ’ b1 ) begin ModeB <= 1 ’ b0 ; ComSelB <= 1 ’ b0 ; ComTxB <= 1 ’ b0 ; C a l i b B <= 1 ’ b0 ; end else begin ModeB <= Mode ; ComSelB <= ComSel ; ComTxB <= ComTx ; C a l i b B <= C a l i b ; end end a l w a y s @( n e g e d g e DClk o r p o s e d g e R s t ) begin i f ( R s t == 1 ’ b1 ) D a t a I n <= 8 ’ b0 ; else 101 begin i f ( M o d e S t a t e == 2 ’ b0 ) begin D a t a I n [ 7 : 1 ] <= D a t a I n [ 6 : 0 ] ; D a t a I n [ 0 ] <= MISO ; end end end / / G e n e r a t i n g c l o c k f o r i n t e r n a l s t a t e m ach i n e a l w a y s @( p o s e d g e Clk o r p o s e d g e R s t ) begin i f ( R s t == 1 ’ b1 ) begin Cl k Cn t <= 16 ’ b0 ; ClkDiv <= 1 ’ b0 ; end else begin i f ( Cl k Cn t == 16 ’ d4800 ) / / 1 5 0 0 begin Cl k Cn t <= 16 ’ d1 ; ClkDiv <= ˜ ClkDiv ; end else begin Cl k Cn t <= Cl k Cn t + 16 ’ d1 ; ClkDiv <= ClkDiv ; end end end a l w a y s @( p o s e d g e Clk o r p o s e d g e R s t ) begin i f ( R s t == 1 ’ b1 ) begin Cl k Cn t 4 <= 16 ’ b0 ; ClkDiv4 <= 1 ’ b0 ; end else begin i f ( Cl k Cn t 4 == 16 ’ d1200 ) / / 1 5 0 0 begin Cl k Cn t 4 <= 16 ’ d1 ; 102 ClkDiv4 <= ˜ ClkDiv4 ; end else begin Cl k Cn t 4 <= Cl k Cn t 4 + 16 ’ d1 ; ClkDiv4 <= ClkDiv4 ; end end end / / Cl o ck f o r r u n n i n g c h a r g e pump a t 1MHz a l w a y s @( p o s e d g e Clk o r p o s e d g e R s t ) begin i f ( R s t == 1 ’ b1 ) begin Cl k Cn t 2 <= 16 ’ b0 ; ClkCP <= 1 ’ b0 ; end else begin i f ( Cl k Cn t 2 == 16 ’ d20 ) begin Cl k Cn t 2 <= 16 ’ d1 ; ClkCP <= ˜ ClkCP ; end else begin Cl k Cn t 2 <= Cl k Cn t 2 + 16 ’ d1 ; ClkCP <= ClkCP ; end end end / / Cl o ck f o r S e r v o m o t o r c o n t r o l a l w a y s @( p o s e d g e Clk o r p o s e d g e R s t ) begin i f ( R s t == 1 ’ b1 ) begin Cl k Cn t 1 <= 16 ’ b0 ; Clkwave <= 1 ’ b0 ; end else begin 103 i f ( Cl k Cn t 1 == 16 ’ d25000 ) / / f =50MHz/ ( 2 ∗ 2 5 k )=1 kHz , T=1ms begin Cl k Cn t 1 <= 16 ’ d1 ; Clkwave <= ˜ Clkwave ; end else begin Cl k Cn t 1 <= Cl k Cn t 1 + 16 ’ d1 ; Clkwave <= Clkwave ; end end end / / Servomotor c o n t r o l initial begin wavebak = 4 ’ b 1 1 0 0 ; wavefor = 4 ’ b01 00 ; s e r v o c n t =16 ’ d1 ; s e r v o R s t =1 ’ b1 ; / / 2 ms p u l s e w i d t h / / 1 ms p u l s e w i d t h end a l w a y s @( p o s e d g e Clkwave o r p o s e d g e s e r v o R s t ) begin i f ( s e r v o R s t == 1 ’ b1 ) begin S e r v o c o n t <=1’b0 ; s e r v o c n t <=16 ’d1 ; end else begin i f ( s e r v o c n t <=16 ’ d8000 ) / / s t r e a m o f b ack p u l s e s begin S e r v o c o n t <=wavebak [ 4 ] ; wavebak [4 : 2 ] < = wavebak [ 3 : 1 ] ; wavebak [1] <= S e r v o c o n t ; s e r v o c n t <= s e r v o c n t +16 ’ d1 ; 104 end else begin S e r v o c o n t <=w a v e f o r [ 4 ] ; / / f o r w a r d p u l s e s w a v e f o r [4 : 2 ] < = w a v e f o r [ 3 : 1 ] ; w a v e f o r [1] <= S e r v o c o n t ; i f ( s e r v o c n t ==16 ’ d15000 ) s e r v o c n t <=16 ’ d1 ; else s e r v o c n t <= s e r v o c n t +16 ’ d1 ; end end end / / Main s t a t e Machine a l w a y s @( p o s e d g e ClkDiv o r p o s e d g e R s t ) begin i f ( R s t == 1 ’ b1 ) begin M o d e S t a t e <= 2 ’ b0 ; TxData <= 64 ’ b0 ; TxData1 <= 64 ’ b0 ; D at a1 <= 4 ’ b0 ; D at a2 <= 4 ’ b0 ; D at a3 <= 4 ’ b1 ; D at a4 <= 4 ’ b0 ; S u b S t a t e <= 4 ’ b0 ; Cnt <= 8 ’ b0 ; SS <= 1 ’ b1 ; end else begin D at a2 [0 ] < =˜ s e r v o R s t ; D at a4 [0] <= f l a g ; i f ( BTN2 == 1 ’ b1 ) begin i f ( M o d e S t a t e == 2 ’ b0 ) 105 begin M o d e S t a t e <= 2 ’ d1 ; D at a3 <= 4 ’ d2 ; end e l s e i f ( M o d e S t a t e == 2 ’ d1 ) begin M o d e S t a t e <= 2 ’ d2 ; D at a3 <= 4 ’ d3 ; end e l s e i f ( M o d e S t a t e == 2 ’ d2 ) begin M o d e S t a t e <= 2 ’ d0 ; D at a3 <= 4 ’ d1 ; end end / / ======Mode S h i f t 1 . Read 2 . W r i t e 3 . PIE i f ( BTN1 == 1 ’ b1 ) i f ( D at a1 == 4 ’ d15 ) D at a1 <= 4 ’ d0 ; else D at a1 <= D at a1 + 4 ’ d1 ; / / ======Command S e l e c t cas e ( ModeState ) 2 ’ d0 : begin case ( SubState ) 4 ’ d0 : begin i f ( sBTN0 == 1 ’ b1 ) begin SS <= 1 ’ b0 ; TxData [ 6 3 : 6 0 ] <= 4 ’ b0100 ; TxData [ 5 9 : 5 6 ] <= D at a1 ; TxData [ 5 5 : 0 ] <= 56 ’ b0 ; S u b S t a t e <= 4 ’ d1 ; end end 4 ’ d1 : begin i f ( Cnt == 8 ’ d15 ) S u b S t a t e <= 4 ’ d2 ; else begin Cnt <= Cnt + 8 ’ d1 ; 106 TxData [ 6 3 : 5 7 ] <= TxData [ 6 2 : 5 6 ] ; TxData [ 5 6 ] <= 1 ’ b0 ; end end 4 ’ d2 : begin SS <= 1 ’ b1 ; Cnt <= 8 ’ d0 ; TxData <= 64 ’ b0 ; S u b S t a t e <= 4 ’ d0 ; end d e f a u l t : S u b S t a t e <= 4 ’ d0 ; endcase end / / ====== Read 2 ’ d1 : begin case ( SubState ) 4 ’ d0 : begin i f ( sBTN0 == 1 ’ b1 ) begin SS <= 1 ’ b0 ; TxData [ 6 3 : 6 0 ] <= 4 ’ b0000 ; TxData [ 5 9 : 5 6 ] <= D at a1 ; TxData [ 5 5 : 4 8 ] <= D at aO u t ; TxData [ 4 7 : 0 ] <= 48 ’ b0 ; S u b S t a t e <= 4 ’ d1 ; end end 4 ’ d1 : begin i f ( Cnt == 8 ’ d15 ) S u b S t a t e <= 4 ’ d2 ; else begin Cnt <= Cnt + 8 ’ d1 ; TxData [ 6 3 : 4 9 ] <= TxData [ 6 2 : 4 8 ] ; TxData [ 4 8 ] <= 1 ’ b0 ; end end 4 ’ d2 : begin SS <= 1 ’ b1 ; 107 Cnt <= 8 ’ d0 ; TxData <= 64 ’ b0 ; S u b S t a t e <= 4 ’ d0 ; end d e f a u l t : S u b S t a t e <= 4 ’ d0 ; endcase end / / ====== W r i t e 2 ’ d2 : begin case ( SubState ) 4 ’ d0 : begin i f ( sBTN0 == 1 ’ b1 ) begin S u b S t a t e <= 4 ’ d3 ; i f ( D at a1 == 4 ’ d1 ) begin <= 24 ’ hFFFFFF ; TxData1 [ 6 3 : 3 2 ] end e l s e i f ( D at a1 == 4 ’ d2 ) begin TxData [ 6 3 : 3 2 ] <= 24 ’ hFFFFFF ; TxData1 [ 6 3 : 3 2 ] end e l s e i f ( D at a1 == 4 ’ d3 ) begin TxData [ 6 3 : 3 2 ] <= 24 ’ hFFFFFF ; TxData1 [ 6 3 : 3 2 ] end e l s e i f ( D at a1 == 4 ’ d4 ) begin TxData [ 6 3 : 3 2 ] <= 24 ’ hFFFFFF ; TxData1 [ 6 3 : 3 2 ] end e l s e i f ( D at a1 == 4 ’ d5 ) begin TxData [ 6 3 : 3 2 ] <= 24 ’ b0 ; TxData1 [ 6 3 : 3 2 ] end e l s e i f ( D at a1 == 4 ’ d6 ) begin TxData [ 6 3 : 3 2 ] <= 24 ’ b0 ; TxData [ 6 3 : 3 2 ] 108 <= 24 ’ hC95222 ; <= 24 ’ hC95481 ; <= 24 ’ hC956A3 ; <= 24 ’ hC95814 ; <= 24 ’ b0 ; TxData1 [ 6 3 : 3 2 ] <= 24 ’ b0 ; s e r v o R s t =˜ s e r v o R s t ; end // else begin TxData [ 6 3 : 3 2 ] <= 24 ’ b0 ; TxData1 [ 6 3 : 3 2 ] <= 24 ’ b0 ; end end end 4 ’ d3 : begin i f ( Cnt == 8 ’ d40 ) S u b S t a t e <= 4 ’ d4 ; else begin Cnt <= Cnt + 8 ’ d1 ; TxData [ 6 3 : 3 2 ] <= TxData [ 6 2 : 3 1 ] ; TxData1 [ 6 3 : 3 2 ] <= TxData1 [ 6 2 : 3 1 ] ; TxData [ 3 1 ] <= 1 ’ b1 ; TxData1 [ 3 1 ] <= 1 ’ b0 ; end end 4 ’ d4 : begin Cnt <= 8 ’ d0 ; TxData <= 64 ’ h 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ; S u b S t a t e <= 4 ’ d0 ; end d e f a u l t : S u b S t a t e <= 4 ’ d0 ; endcase end / / ====== PIE d e f a u l t : M o d e S t a t e <= 2 ’ d0 ; endcase end end en d m o d u l e 109 Appendix C Verilog-A Model C.1 Injection Model ‘ i n c l u d e ” c o n s t a n t s . vams ” ‘ i n c l u d e ” d i s c i p l i n e s . vams ” module I n j m o d e l 2 ( Vs , Vs1 , Vd , p l u s , minus ) ; i n p u t Vs , Vs1 , Vd ; i n o u t p l u s , minus ; e l e c t r i c a l Vs , Vs1 , Vd , p l u s , minus ; b r a n c h ( p l u s , minus ) cond ; b r a n c h ( Vs1 , Vs ) cond1 ; p a r a m e t e r r e a l a1 =3e −23; p a r a m e t e r r e a l k2 = 6 . 5 5 ; p a r a m e t e r r e a l k3 =5 e6 ; analog begin i f ( I ( cond1 )>0 & V( Vs ) > 4 . 3 ) b e g i n I ( cond ) <+ a1 ∗ I ( cond1 ) ∗ ( 1 + k3 ∗ I ( cond1 ) ) ∗ exp (V( Vs , Vd ) ∗ k2 ) ; end e l s e I ( cond ) <+ 0 ; end en d m o d u l e C.2 Tunneling Model ‘ i n c l u d e ” c o n s t a n t s . vams ” 110 ‘ i n c l u d e ” d i s c i p l i n e s . vams ” module Tunn model2 ( Vt , Vfg , p l u s , minus ) ; i n p u t Vt , Vfg ; i n o u t p l u s , minus ; e l e c t r i c a l Vt , Vfg , p l u s , minus ; b r a n c h ( p l u s , minus ) cond ; p a r a m e t e r r e a l a = 9 . 3 5 ∗ 1 e8 ; p aram et er r e a l b =800; analog begin i f ( V( Vt , Vfg ) >0) b e g i n I ( cond ) <+ a ∗ exp (−b / V( Vt , Vfg ) ) ; end else I ( cond ) <+ 0 ; end en d m o d u l e 111 BIBLIOGRAPHY 112 BIBLIOGRAPHY [1] J. Borodkin, N. Caldwell, and S. Hollister,“The influence of mechanical strain magnitude on bone adaptation to porous coated implants,” Proc. IEEE Eng. Med. Biol. Soc. Conf., 1999, p. 768. [2] B. D. Beynnon and B. C. Fleming, “Anterior cruciate ligament strain in-vivo: A review of previous work,” J. Biomech., vol. 31, pp. 519525, 1998. [3] T. Wright, F. Glowczewski, D. Cowin, and D. Wheeler, “Ulnar nerve excursion and strain at the elbow and wrist associated with upper extremity motion,” J. Hand Surg. Amer., vol. 26, no. 4, pp. 655662, July 2001. [4] R. L. Pradhan, E. Itoi, Y. Hatakeyama, M. Urayama, and K. Sato, “Superior labral strain during the throwing motion: A cadaveric study,” Amer. J. Sports Med., vol. 29, pp. 488492, 2001. [5] B. Burr, R.B Martin, M.B Schaffler and E.L Radin, “Bone remodeling in response to in vivo fatigue microdamage,”Journal of biomechanics, 1985. [6] P.J Ehrlich and L.E Lanyon, “Mechanical strain and bone cell function: a review,” Osteoporosis International, 2002; 13(9):688-700 [7] W. K. Schomburg, Z. Rummler, P. Shao, K. Wulff and L. Xie, “ The design of metal strain gauges on diaphragms,” Journal of Micromechanics and Microengineering, Volume 14 Number 7 June 2004. [8] Yongdae Kim; Youngdeok Kim; Chulsub Lee; Sejin Kwon, “ Thin Polysilicon Gauge for Strain Measurement of Structural Elements,” IEEE Sensors Journal, vol.10, no.8, pp.13201327, Aug. 2010. [9] Kuo-Chih Chuang, Chien-Ching Ma and Chao-Hsiang Wang, “ Performance analysis of a fiber Bragg grating filter-based strain/temperature sensing system based on a modified Gaussian function approximation method,” Appl. Opt. , 50, 5243-5255 (2011). 113 [10] C. Huang, S. Chakrabartty, “An Asynchronous Analog Self-powered Sensor-Data-Logger with a 13.56MHz RF Programming Interface,” IEEE Journal of Solid-State Circuits, Feb 2012. [11] C. Huang, N. Lajnef and S. Chakrabartty, “Calibration and characterization of self-powered floating-gate usage monitor with single electron per second operational limit,” IEEE Transactions on Circuits and Systems I: Regular Papers, vol. 57, no. 3, pp. 556-567, Mar 2010. [12] S. Chakrabartty and N. Lajnef, “Infrasonic Power-Harvesting and Nanowatt Selfpowered Sensors,” IEEE International Symposium on Circuits and Systems (ISCAS), pp.157-160, May 2009 [13] C. Huang, P. Sarkar and S. Chakrabartty, “ Rail-to-Rail, Linear Hot-Electron Injection Programming of Floating-Gate Voltage Bias Generators at 13-Bit Resolution,” IEEE Journal Of Solid-State Circuits, vol.46, no:11, 2011. [14] P. Sarkar, C. Huang and S. Chakrabartty, “ A Self-powered Static-strain Sensor based on Differential Linear Piezo-floating gate Injectors,” ISCAS, to appear May 2012. [15] S. Roundy and P K Wright, “ A piezoelectric vibration based generator for wireless electronics,” Smart Materials and Structures, vol.13, 2004, pp.1131-1142. [16] Geffrey K. Ottman, Heath F. Hofmann, Archin C. Bhatt and George A. Lesieutre “Adaptive Piezoelectric Energy Harvesting Circuit for Wireless Remote Power Supply,” IEEE Transactions on Power Electronics, VOL. 17, NO. 5, September 2002. [17] Sodano, H.A., Park, G. and Inman, D.J., “A Review of Power Harvesting Using Piezoelectric Materials,” Shock and Vibration Digest, Vol. 36, No. 3, pp. 197-206. [18] N.G Elvin and A.A Elvin, “A General Equivalent Circuit Model for Piezoelectric Generators,” Journal of Intelligent Systems and Structures, May 2008. [19] P. Hasler, “Foundations of learning in analog VLSI,” Ph.D. dissertation, Dept. Comput. Neural Syst., California Inst. Technol., Pasadena, CA, 1997. [20] K. Rahimi, C. Diorio, C. Hernandez, and M. D. Brockhausen, “ A simulation model for floating-gate MOS synapse transistors,” Proc. IEEE Int. Symp. Circuits Syst., Phoenix, AZ , May 2002, pp. 532535. [21] S. R. Platt, S. Farritor, K. Garvin, and H. Haider, “The use of piezoelectric ceramics for electric power generation within orthopedic implants,” IEEE/ASME Trans. Mech., vol. 10, no. 4, pp. 455-461, Dec. 2005. 114 [22] “PSI-5A4E Piezoceramic Sheets and their properties,” Piezo Systems, Inc. [23] G. Meltz, W. Morey and W. Glenn, “Formation of Bragg gratings in optical fibres by a transverse holographic method,” Opt. Lett. vol. 14, pp. 823-825, 1989. [24] B. Lee, “Review of the present status of optical fiber sensors,” Optical Fiber Technology. vol. 229, no. 2, pp. 57-79, Apr. 2003. [25] M. Kreuzer, “Strain Measurement with Fibre Bragg Grating Sensors,” [26] J. Sirohi and I. Chopra, “Fundamental understanding of Piezoelectric Strain Sensors,” Journal of Intelligent Material Systems and Structures vol. 11-April 2000. [27] French P.F. and A.G.R. Evans, “Piezoresistance in Polysilicon and Its Applications to Strain Gauges,” Solid-State Electronics, 1989. 32: p. 110. [28] Wen H. Ko, Darrin J. Young, Jun Guo, Michael Suster, Hung-I Kuo, N. Chaimanonart, “A high-performance MEMS capacitive strain sensing system,” Sensors and Actuators A, 133 (2007) 272277. [29] Laurel Sheppard, “Innovative Infrastructure: Smart Bridges,” Buildipedia.com, Wed Nov 10 2010. [30] Na Yan and Hao Min, “A High Efficiency ALL-PMOS Charge Pump for Low-Voltage Operations,” Asian Solid-State Circuits Conference, 2005 , vol., no., pp.361-364, 1-3 Nov. 2005. [31] P. Sarkar, C. Huang and S. Chakrabartty, “An Ultra-linear Piezo-Floating-Gate Strain-Gauge for Self-powered Measurement of Quasi-static-strain”, IEEE Transactions on Biomedical Circuits and Systems(TBioCAS), minor revision 2012. [32] C. Amzallag, J.P. Gerey, J.L. Robert and J. Bahuaudl, “Standardization of the rainflow counting method for fatigue analysis”, International Journal of Fatigue, Volume 16, Issue 4, June 1994, Pages 287293. 115