530 likes | 667 Views
Senior Design ii. Breathalyzer Interlock system By: Xi Guo | Ashish Thomas | Brandon Gilzean | Clinton Thomas. Project Description. A system to designed to deter individuals from operating a motor vehicle while under the influence of alcohol.
E N D
Senior Design ii Breathalyzer Interlock system By: Xi Guo | Ashish Thomas | Brandon Gilzean | Clinton Thomas
Project Description • A system to designed to deter individuals from operating a motor vehicle while under the influence of alcohol. • Highly accurate and portable alcohol sensing unit allows the operator to monitor their level of intoxication while away from the motor vehicle • Integrated automobile control unit prevents the vehicle from operating without a successful initial reading, then conducts rolling retests to verify driver sobriety during vehicle operation • Logs of activity maintained by automobile unit for retrieval during calibration by law enforcement.
Motivation and Goals • Original concept was personal alcohol measurement device powered by a smartphone (iPhone, Android, etc.) • Platform and Business considerations lead to the determination to make a standalone device • Evaluation of work quantity lead to the marriage of alcohol detection device with automobile interlock unit • Goal is to develop a system that can meet National Highway Safety and Transportation Agency certification for alcohol detection interlock devices.
Trade Study – Breathalyzers • Personal breathalyzers utilize silicon dioxide based ethanol sensors, reducing both cost and accuracy • Unique air channel design that folds into the case enclosure. This will be modeled or acquired for Voog • Simple means of communication using speaker and 2-Digit 7-Segment display • Small and lightweight, powered by non-rechargeable AA alkaline batteries
Trade Study – Ignition Interlock • Smart Start Model 20-20 evaluated as the most effective and complete solution currently available • Typical Interlocks utilize a “zero-tolerance” policy, meaning interlock engages between 0.02-0.04% BAC • No available model in the market can completely prevent spoofing, only deter and catch for later retrieval
Project Overview • Hand-Held Unit • Handles user interaction and processes sensory data • Powered by onboard Li-ion battery • Wireless Communication with automobile control unit • Control Box • Requests validation from handheld unit • Establishes vehicle state, logs input data
Introduction System Logic • The system level design for both the handheld breathalyzer unit, as well as the automobile control unit, calls for the use of programmable logic. • This is necessary for the successful interpretation of output signals from the sensors, translating user input into device functionality, displaying information related to the current state of the device, as well as communication with other devices in the system.
Microcontroller • Small computer on a singleintegrated circuit consisting internally of a relatively simple CPU, clock, timers, I/O ports, and memory. • Advantages • Using languages such as C/C++ Assembly • Low cost • Disadvantages • Have to design a microcontroller into a circuit and build it • Paying for functionality that is not being used
Microcontroller (MSP430) • Texas Instrument MSP430F2274 • Low voltage power supply requirements (1.8 VDC – 3.6 VDC) • Universal Serial Interface, configurable as either I2C, SPI, or UART for RS232 serial communications • Available Analog-to-Digital converters with 10/12/16 bits of resolution • Assembly or C/C++ • Memory 32Kbytes Flash, 1Kbytes RAM
Display – Human Interface • Seven-Segment Display • Arabic numerals 0 to 9 • General use • Dot-Matrix Display • Simple display limited resolution • Liquid Crystal Display • Great for character resolution • Refresh Rate
LCD Display – New Haven Display • Interface: • I2C • Communication speeds, up to 57.6 kbps for RS-232 and 400 kbps for I2C • extreme environments of -20C to 70C
Sensors • Alcohol Gas Sensor • Semi-Conductor (MQ-3) vs. Fuel Cell (002-MS3) • Differential Pressure Sensor • Silicon Microstructures (SM-5852) MQ-3 MS3
Alcohol Sensor • Operating Condition and Requirements • Maximum Operating Temperature: 90C • Recommend Operation Temperature: <70C • Shunt Resistor value: 220-300ohm
Alcohol Sensor Output • Testing Condition • Room Temperature • 0.5ml gas sample • 0.160 BAC Region of Interest<0.04 BAC (User will not be able to start the vehicle)
Alcohol Sensor Calibration • Sensor Output will be calibrated against known values using Lifeloc Dry Gas Calibration Kit • Typically, dry gas alcohol calibration requires a 5-6% compensation value to approximate breath alcohol • Values will be measured using a laboratory-formulated alcohol standard of particular concentration, representing BAC values of 0.02 to 0.10
Differential Pressure Sensor • Object: To detect sufficient breath sample has been provided. • Option A: Tungsten Hot wire Anemometer • Electrical Resistance varies with the change in temperature due to breath sample • Cons: Can’t detect the quantity of breath sample obtained. Expensive. Not available as discrete solution • Option B: SI-Micro Pressure Sensor • Pressure detection range: 0.15-3 Psi (Human breath sample (1.5 to 2.5 Psi) • Cons: Difficult to obtain from chosen manufacturer,difficult to mount.
Power Supply • How to power • Ability to hardwire into vehicle’s electrical system (in-car unit) • Recharge on-board battery with same circuit board (portable unit) • Utilize external “wall wart” to recharge battery, or cigarette lighter connection (portable unit). So 12V primary input. • Various power needs of components in both units will require a power supply with multiple capabilities
Power Requirements (contd) • While maximum draw possible is ~1.6A, it is at various voltages and not all will be drawing at the same time for a significant period of time • Multiple voltages are needed for multiple components. Therefore, will utilize voltage regulation to generate multiple output voltages from singular +12VDC input
Power Distribution Scheme Portable Unit Control Unit
Implementing Power Scheme • For our application, voltage dividers do not offer voltage stabilization, and are fairly inefficient. They also lack any sort of basic power protection (short circuit, overcurrent, overvoltage, thermal overload, etc.). • Zener diodes allow a stable output voltage; but again, lack more robust power event protection. • Use LDO voltage regulator ICs. Switching regulators were considered, but due to their buggy reputations, were not used. They also take up slightly more space on the PCB land configuration due to a need for a larger (compared to LDO) supporting circuit. Heatsinking will be used as needed. +9VDC, +5VDC, and +3.3VDC are needed.
Battery Expected Battery Runtime? • Portable unit needed to be portable, but also not impractical to use by having to replace disposable batteries. Since highest regulator to be served by battery is 5V, a 7.4V battery should suffice. • Load and current draw expectations made conventional alkalines impractical. • Due to size, energy density, as well as flexibility in recharging, lithium ion rechargeable batteries were chosen. = 31.875 minutes 7.4V 850 mAh Li-Ion Battery with Integral Protection PCB. >1C safe discharge rate.
Charging the Battery • However, a charging circuit is now required. Lithium ion batteries require more care in charging, as improper charging can result in a fire or explosion – not desirable for any user, especially an inebriated user • Circuit to right. Will be a two cell battery (3.7V*2 = 7.4V) Reprinted with Permission of shdesigns.org
Charging the Battery (contd) • However, the area required on the PCB for this configuration is too great; it also is not intelligent. It cannot automatically detect a severely discharged or overchargedbattery and cannot switch charging modes to compensate. • Use Texas Instruments BQ24005. A complete, integrated charging IC for use with two cell LiIon and LiPoly batteries • Heat issues are addressed by soldering a thermal pad on the bottom of IC to a copper pad in the PCB – the PCB becomes a heatsink.
To allow usage of same board for both fixed and portable power application, a set of three jumpers can be adjusted to allow for either configuration.
Physical Implementation • Since small size, reliability, and quality are all primary concerns of our overall project, we decided to use a PCB. • PCB Requirements: • Compact: 2 in. x 3 in. (6 in.2 total area). This is slightly smaller than an average credit card. • Must accommodate microcontroller board within PCB area • Design so a single board can be used for both portable and base/control units • Design for optimal power flow, and minimize capacitive, inductive, and other crosstalk effects from traces, especially between analog and digital I/O lines.
Physical Implementation (contd) • Design considerations: • 32 mil for width of power traces • 15 mil for width of signal traces • 25 mil minimum for signal trace spacing • Mostly dedicated ground plane for robust ground • Two layer to save on cost. • All outputs should have standard 0.1 in. spacing (2.54 mm) to accommodate standard pin headers. This will mostly avoid the need to solder components directly to the board, easing debugging and future changes. • Wide traces to small pads on the charging IC should be necked near pad interface
PCB Manufacturer Choice • Used PCB123.com (Sunstone Circuits) • Used PCB123 PCB layout and schematic editor software • With silkscreen on top only, 1 oz copper thickness, soldermask, and our 6 sq. in., the per board price is $32.48 for 8 boards. ($32.48 * 8 = $259.80) • Lead time of three business days when order is submitted before 12 PM PST
Enclosure: Hand-held & Control box • Requirements (Hand-held unit) • Dimensions: 4.5x2.5x1.5in • Physically Appealing • Resources, Materials and Skill sets • Photoshop Software • SolidWorks and/or AutoCAD Software • Industrial Engineering Rapid Prototyping lab • Fabrication material
Enclosure: • Pactec Enclosures • PPT 3468
Signal Acquisition • Alcohol Concentration will be determined using a “Peak Measurement” method • Output measured over small load resistor (220 – 390 ohms) • Voltage is converted into discrete 10-bit integer representation by ADC with internal 1.5V reference • Output represents the maximum alcohol concentration detected by the sensor in micrograms. • Airflow pressure will be queried from the differential sensor utilizing I2C, returned from the sensor’s onboard DSP.
BAC Measurement • Micrograms of alcohol is converted to BAC using the Blood/Breath Partition Ratio, 2300:1 US, 2100:1 UK • Assumption is made that test is post-absorbitive, meaning the alcohol is fully absorbed and in bodily equilibrium • Approximate values are as follows1.0% BAC = 1cg ETOH/mL blood = 9.43 mg ETOH/g blood1ppm = 1 ug ETOH/g blood = 1.06 ug ETOH/mL blood1.06g blood ~ 1mL blood188.6 ug/mL – 377.2 ug/mL is blood concentration for 0.02-0.04%82 ng/mL – 164 ng/mL will be range of BrAC • Assumptions of flow rate will be evaluated during assembly and calibration to determine breath sample quantity
Software Development • Software will be written using IAR Embedded Workbench • Kickstart version for MSP430 provided by TI limits program size to 4K. Full version does not have this limit, but costs lots of $$$ • Software will be written in C, with inline assembly for MSP430 where needed
Software > Hardware… always • What happens when you find out after purchasing your hardware that it cannot achieve all the functionality you believed it could? • MSP430F2274 provides a universal serial UART for I2C, SPI, RS232, etc., which just so happens to be used by the CC2500 transceiver • Communications with peripheral devices and sensors will be accomplished through an I2C serial bus • Luckily for us, the right combination of configurable GPIO pins and software can save our project, utilizing a technique called “Bit-Banging”
What is Bit-Banging? • A technique used for serial communications utilizing software instead of dedicated hardware • Software sets and samples the state of pins on the microcontroller, responsible for timing, signal levels, synchronization, etc. • Can reduce costs in a design by implementing features that are not designed directly into the hardware (or make up for a lack of foresight) • Considered a hack, takes more CPU time and resource, signal is usually much uglier than dedicated hardware would provide
Inter-Integrated Circuit (I2C) • Daisy-chained serial peripheral bus designed for simple slave-to-master device communications • Only requires two lines, SCL (clock) and SDA (data) • Each device is given an address on the bus, configured by software • Communications initiated with START and STOP messages • First byte is the address of the device the master will communicate with, then the desired direction of communication (write/read), followed by an ACK from the slave device
Inter-Integrated Circuit (I2C) • Each byte is followed by a START message until desired end of transmission, which is indicated with a STOP message
LEDs CC2500 MSP430 Motor Relay Vcc – 3.3V CC2500
Software – State Transition • Hand Held Unit (Passive Device) • Wait State – Processing input from user • Processing State – Receiving and processing sensor data • Display State/Transfer – Display to LCD, • Control Box Unit (Active Device) • Wait State – Receive wireless transmission/ Check • Enabled State – Set Pin high for car/ lights/Random Decrement. • Rolling State – Receive wireless transmission/Check within 4 mins. • Alert State – Alert mode.
Flow Diagram of States for CBU Wait State (Iterate Until Receive Reading) Enabled State (Enable Relay/Lights/Green LED bits. Random Request) Valid Reading Valid Reading State Transition Alert State (Toggle LEDs/Light bits ) Rolling State (Enable Red LED/ Disable Green LED bits. Iterate until for 4 mins, Receive Reading) Invalid Reading
CBU – Variables/ Functions • Functions: • void Main(void); • void WaitState(void) - Initialize • void EnabledState(void); • void RandomRollingState(void); • void AlertState(void); • void incrementSeconds(); • void decrementSecondsEnabled(); • int rand(void); • Variables: • static uint8_t sCB(linkID_t); • static void SMPL_LinkListen(&sLID[sNumCurrentPeers]; • staticvoidprocessMessage(linkID_t, uint8_t *, uint8_t); • static void checkChangeChannel(void); • static void changeChannel(void); • static volatile uint8_t sPeerFrameSem = 0; • static volatile uint8_t sJoinSem = 0; • static volatile uint8_t sStateTransition = 0; • volatile unsigned inttimeEnd = 0; • unsigned intstateIntGlobal = 0; • unsigned intg_seconds=0; • unsigned intg_ESeconds = 0; • unsigned intrandBit = 0; • unsigned intrandNum;
CBU – Pin Out Table Setting Register: Set to Output/low: P4DIR |= BIT4; P4OUT &= ~BIT4; Set to Input/High: P4DIR &= ~BIT4; P4OUT |= BIT4;
Flow Char for Wireless Radio Join to End Point Listen linkId State Transition/Switch Statement. Received frame from End Point? No Change state variable. Yes
Interlock and Demo Setup • The interlock will prevent the vehicle from starting if the user’s BAC is deemed to be too high. • Will do this by routing the fuel pump’s power through a relay; this will prevent starting whether the starter or clutch (bump start) is used to start the car • Signal from microcontroller will control the relay, which will switch the higher amperage fuel pump power. Protection diode will be used across relay. • For our demonstration, will use an RC car, as no actual vehicle is available for demo purposes
Interlock and Demo Setup (contd) +12V Constant (Car or RC Battery) Fuse (15 A) µController Fuel Pump (or RC car motor) Relay