1 / 19

Project #27: Consumer-Oriented Automotive Scan Tool

Project #27: Consumer-Oriented Automotive Scan Tool. ECE 445 Spring 2005 Sung Taek Kim David N. Werner. Introduction: “CHECK ENGINE”. Official name: Malfunction Indicator Lamp Known unofficially as the “idiot light”, as it only activates after an error is detected

trina
Télécharger la présentation

Project #27: Consumer-Oriented Automotive Scan Tool

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Project #27:Consumer-Oriented Automotive Scan Tool ECE 445 Spring 2005 Sung Taek Kim David N. Werner

  2. Introduction: “CHECK ENGINE” • Official name: Malfunction Indicator Lamp • Known unofficially as the “idiot light”, as it only activates after an error is detected • Source of concern for many drivers with limited technical knowledge • Panicked consumer is easily set up by an unscrupulous technician Source: wjjeeps.com

  3. Introduction: OBD-II History • 1985: California mandate to enforce emissions standards • 1988: OBD-I debuts in California, OBD-II proposed • 1990: Clean Air Act nationalizes OBD-II • 1996: Deadline for new vehicle conformance to OBD-II • 2008: Deadline for CAN protocol compliance

  4. Objective • To build inexpensive, consumer oriented, and friendly-interfaced ECM scanner • Easy to use, no hassle to configure, and widely adaptable

  5. Original Design : Data search algorithm • AVL or Balanced binary tree to store address of string in FLASH RAM Value Address Value Address Value Address “P0425 - .....” “P0317 - .....” “P0425 - .....”

  6. Original Design : FLASH RAM programming • PC -> PIC -> FLASH RAM • Expected to use Visual Basic to build a serial communication program • Programmed PIC to control timing • TTL logic (Shift register) to shift out address and data from PIC

  7. Original Design : Signal Routing Module • Naïve Errors: TTL preprocessing, signal routing – dangerous with 8-12V signal voltage • Solution: Elm Electronics 32x series – interprets ECM protocols to standard RS232 signals • MAX232 serial driver to convert TTL to RS-232

  8. Original Design : User interface • Asynchronous machine originally specified • One switch for model selection, one for decision Signal Routing Module reset ISO VPW PMW Data Processing Module

  9. Building Process Preprocessing: • Schematics provided by Elm Electronics • Built and tested on breadboard, then soldered to blank board • Pre-built version $75.95 each, or custom board $15.95 each plus component cost • Stated goal to have part cost as low as possible Source: scantool.net

  10. Building Process : Data search algorithm • Hash table has been implemeted. • Fixed 90 bytes, 30 entry table at the beginning of FLASH RAM • Variable length of hash table entries • Fixed length of strings • Slightly better speed to search and easy to re-program “P0331 - ….” “P1731 - ….” “P2731 - ….”

  11. Build a Intel-HEX file generator to use BP universal device programmer BP universal device programmer support various different types of FLASH RAM : AMD29F002NBB According to Intel HEX file specification, hash table, entries, and string sets are encoded * Dividing segment has to be careful Ex) FLASH.HEX :10_0610_00_0319192BAC30B3003B200430A900AF30_D4 :10062000B300FE21A90B0F2BAA012430A900122A26 :0C0630001C2BFA30B3003B20E72A6300CB :02400E003A3F37 Buliding Process: FLASH RAM PROGRAMMING

  12. It is easy to just provide control state to PIC Two resistors and switches for model selection, and one for decision Building Process: Signal Routing Module, User interface 74HCT139N 1-4 demux Preprocessing Module MAX 232 From PIC 74LS153 4 -1 mux MAX 232 To PIC

  13. It is easy to just provide control state to PIC Two resistors and switches for model selection, and one for decision Building Process: Signal Routing Module, User interface 74HCT139N 1-4 demux Preprocessing Module MAX 232 From PIC 74LS153 4 -1 mux MAX 232 To PIC

  14. Testing: Power Consumption • 12V x current shown on power supply • Preprocessing: each module draws 5 mA idle, 14 mA during transmission, reception • LCD: Backlight draws too much power, heats system • Designed for 3x safety factor. 1.4 W maximum drawn power, 5 W rated from voltage regulators • Car Battery: 1200 W-hrs – Insignificant power loss for two-minute read time

  15. Testing: HyperTerminal • Commands to preprocessing module: ATZ (resets preprocessor), 01 1C (demonstrates OBD-II compliance), 03 (reads error messages) • A successful startup and communication with preprocessor outputs “ELM32x v2.0” • Goal: to display the known error codes P1491, P0300, P0305 on 03 input • PIC, Flash RAM: Simulate known output signals from preprocessor • Goal: to display correct error message from a specific error code input

  16. Challenges • “FB ERROR: BUS INIT” from ELM 323 • ELM 323 could not communicate with vehicle • Solution: Transistor not powered – K-line bus from OBD-II could not be drawn up • PIC would not behave correct if too many O/P or I/P exist. • The 2nd MSB address bit does not work (at all!!!) • ANY SHIFT instruction does not work if destination value is bigger than a byte! • Had to make an adder function to implement 19 bits addition • FLASH RAM is very much timing oriented • When data is read from FLASH RAM, timing control has to be correct • Programming FLASH would be easy if we are to use HEX file format ( it is done by PIC with LINUX serial communication)

  17. Special Topic: OBD-II messages • P01xx: Emissions • P02xx: Fuel Injection • P03xx: Cylinders • P04xx: Auxiliary Emissions • P05xx: Electronic Systems • P06xx: ECM • P07xx: Transmission • P08xx: Transmission Auxiliary • P1xxx: Manufacturer Specific

  18. Special Topic: COST • How to reduce cost even lower? • Implement TTL logic (Shift Register) to address • Reduce two PICs to one • Auto-selection of vehicle model will help to remove user input logic

  19. If this was a two-semester course: • Manufacturer-specific codes • Improved user interface • Monitor sensors directly • Automatic Vehicle model selection • Features to store and print error code • Monitoring RPM, Temp, Gas Mileage and etc • One more RS-232 port or USB to update and download error code

More Related