Serial Communications / Protocol in AirTest Products



Similar documents
DS Wire Digital Thermometer and Thermostat

Programming Flash Microcontrollers through the Controller Area Network (CAN) Interface

Develop a Dallas 1-Wire Master Using the Z8F1680 Series of MCUs

Technical Support Bulletin Nr.18 Modbus Tips

PACKAGE OUTLINE DALLAS DS2434 DS2434 GND. PR 35 PACKAGE See Mech. Drawings Section

Serial Communications

AN141 SMBUS COMMUNICATION FOR SMALL FORM FACTOR DEVICE FAMILIES. 1. Introduction. 2. Overview of the SMBus Specification. 2.1.

Serial Communications

Process Control and Automation using Modbus Protocol

Measurement and Analysis Introduction of ISO7816 (Smart Card)

Light scene push button 8gang comfort flush-mounted xx

PNSPO! Modbus Solution CP1H / CP1L / CJ1 / CJ2 / CS1. Version /18/2009

Master-Touch and ValuMass. Modbus Communications. INSTRUCTION MANUAL (Rev. 2.1)

MEMOBUS/Modbus Communications

Programming and Using the Courier V.Everything Modem for Remote Operation of DDF6000

DS1621 Digital Thermometer and Thermostat

1.Eastron SDM220Modbus Smart Meter Modbus Protocol Implementation V1.0

The I2C Bus. NXP Semiconductors: UM10204 I2C-bus specification and user manual HAW - Arduino 1

SDN INSTRUCTIONS 07/10, Ver 1.2. Somfy Digital Network (SDN) Installation and Programming

The Programming Interface

Elettronica dei Sistemi Digitali Costantino Giaconia SERIAL I/O COMMON PROTOCOLS

DS1621 Digital Thermometer and Thermostat

In-Vehicle Networking

MTS Master Custom Communications Protocol APPLICATION NOTES

Software User Guide UG-461

Modbus Communications for PanelView Terminals

How To Set The Sensor On A Powerpoint 3.5 (Powerpoint) On A Blackberry 2.5A (Powerplant) On An Iphone Or Ipad (Powerplant) On The Blackberry 3.2 (

Virtual Integrated Design Getting started with RS232 Hex Com Tool v6.0

I2C PRESSURE MONITORING THROUGH USB PROTOCOL.

I.S. 1 remote I/O system Redundant coupling via PROFIBUS DP

NB3H5150 I2C Programming Guide. I2C/SMBus Custom Configuration Application Note

Implementing SPI Master and Slave Functionality Using the Z8 Encore! F083A

UM I 2 C-bus specification and user manual. Document information

Vicon Flash Upgrade Software

Modbus Protocol. PDF format version of the MODBUS Protocol. The original was found at:

eztcp Technical Document Modbus/TCP of eztcp Caution: Specifications of this document may be changed without prior notice for improvement.

RS485 & Modbus Protocol Guide

Application Note 83 Fundamentals of RS 232 Serial Communications

Appendix B RCS11 Remote Communications

DS18B20 Programmable Resolution 1-Wire Digital Thermometer

Keep it Simple Timing

User Manual. AS-Interface Programmer

Inwall 4 Input / 4 Output Module

AN3155 Application note

LTM-1338B. Plus Communications Manual

DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING Question Bank Subject Name: EC Microprocessor & Microcontroller Year/Sem : II/IV

S4000TH HART. HART Communication Manual

AND8336. Design Examples of On Board Dual Supply Voltage Logic Translators. Prepared by: Jim Lepkowski ON Semiconductor.

Data sheet Wireless UART firmware version 4.02

8051 Serial Port. Crystal TXD. I/O Device RXD. Embedded Systems Peripherals

The Answer to the 14 Most Frequently Asked Modbus Questions

Single channel data transceiver module WIZ2-434

CAM-VGA100 User Manual

Microcomputer Protocol Implementation at Local Interconnect Network Georgi Krastev

ARM Thumb Microcontrollers. Application Note. Software ISO 7816 I/O Line Implementation. Features. Introduction

Chapter 5 Real time clock by John Leung

4511 MODBUS RTU. Configuration Manual. HART transparent driver. No. 9107MCM100(1328)

MODBUS for ECH 200 Serial Communication Protocol <IMG INFO>

UNIVERSITY OF CALIFORNIA. Los Angeles. Software for A Fault Tolerant. Microcontroller Network. A thesis submitted in partial satisfaction

TAP Interface Specifications

PRODUCT MANUAL SKX OPEN SKX ADVANCE ZN1RX-SKXOPEN. Edition 2 Version 1.1

MCB3101 (Class I) WiRobot Serial Bluetooth Wireless Module User Manual

Vicon Flash Upgrade Software

Local Interconnect Network Training. Local Interconnect Network Training. Overview

AN736. An I 2 C TM Network Protocol for Environmental Monitoring THE I 2 C BUS SPECIFICATION INTRODUCTION

Wifi Web Server Module w TF Socket User s Guide

Serial port interface for microcontroller embedded into integrated power meter

Embedded Systems Design Course Applying the mbed microcontroller

x10* CP290 HOME CONTROL INTERFACE PROGRAMMING GUIDE FOR ADVANCED PROGRAMMERS

PFB366 Profibus-DP Gateway User Manual

Microcontroller Based Low Cost Portable PC Mouse and Keyboard Tester

DS1821 Programmable Digital Thermostat and Thermometer

MICROPROCESSOR. Exclusive for IACE Students iacehyd.blogspot.in Ph: /422 Page 1

SMS based remote control system

Features INSTRUCTION DECODER CONTROL LOGIC AND CLOCK GENERATORS COMPARATOR AND WRITE ENABLE EEPROM ARRAY READ/WRITE AMPS 16

RS-485 Protocol Manual

AVR1309: Using the XMEGA SPI. 8-bit Microcontrollers. Application Note. Features. 1 Introduction SCK MOSI MISO SS

EPM2000 LabVIEW Building Applications Instructions

RN-WIFLY-EVAL-UM. WiFly Evaluation Kit Roving Networks. All rights reserved. RN-WIFLY-EVAL-UM Version 1.32r 10/9/2012 USER MANUAL

Functional Profile: Heat Pump with Temperature Control

MSR605. Programmer s Manual. Magnetic Stripe Card Reader/Writer (High & Low Coercivity) Revision B

Remote PLC system using GSM network with application to home security system

HP03 BAROMETER MODULE Version: 1.1

Block 3 Size 0 KB 0 KB 16KB 32KB. Start Address N/A N/A F4000H F0000H. Start Address FA000H F8000H F8000H F8000H. Block 2 Size 8KB 16KB 16KB 16KB

Modicon Modbus Protocol Reference Guide. PI MBUS 300 Rev. J

Panasonic/Sanyo A/C Interface Modbus RTU Installation Instructions

AVR317: Using the Master SPI Mode of the USART module. 8-bit Microcontrollers. Application Note. Features. Introduction

LIN (Local Interconnect Network):

Allows the user to protect against inadvertent write operations. Device select and address bytes are Acknowledged Data Bytes are not Acknowledged

Software Manual RS232 Laser Merge Module. Document # SU Rev A

ESPA Nov 1984 PROPOSAL FOR SERIAL DATA INTERFACE FOR PAGING EQUIPMENT CONTENTS 1. INTRODUCTION 2. CHARACTER DESCRIPTION

FM75 Low-Voltage Two-Wire Digital Temperature Sensor with Thermal Alarm

Nemo 96HD/HD+ MODBUS

2. Terminal arrangement. Default (PV display) (SV display) Communication protocol selection Selects the Communication protocol. Modbus ASCII mode:

TruePort Windows 2000/Server 2003/XP User Guide Chapter

SPA-Bus Communication Protocol V2.5. Technical description

8051 MICROCONTROLLER COURSE

Softstarters. Type PSTX Fieldbus communication, Built-in Modbus RTU. 1SFC132089M0201 April SFC132089M0201 1

Objectives. Basics of Serial Communication. Simplex vs Duplex. CMPE328 Microprocessors (Spring ) Serial Interfacing. By Dr.

Implementation Guide. SAS Serial Protocol. for. Montana Department of Justice Gambling Control Division. October 22, Version 1.4.

Transcription:

Serial Communications / Protocol in AirTest Products General The standard sensor has two different ways of serial communication with sensor s peripherals and the outside world. One is through the UART (Universal Asynchronous Receiver and Transmitter) and another through the Microwire bus. Basically, they differ in such a way that the sensor communicates via UART only when it is requested, but only inbetween sensor measurements, whereas the Microwire bus is always used to send information after each measurement cycle as signalled by a chip select hardware wire. This latter bus is intended for communications with internal system functions and plug-in-cards in a slave mode using a chip select signal from the sensor microprocessor. One such plug-in-card is the -LON option, which connects an Echelon neuron and turns the system into a LonMark labelled CO 2 -Temp-Occupancy triple sensor for advanced digital networks. The UART communication protocol, general description The intended UART communication protocol is a master/slave one. Communication can be initiated only by one node of the network, the master of the net. Sensor is always a slave. Baud rate is 9600, other settings are 8 data bits, 1 stop bit, no parity. The UART protocol is intended for both RS232 and RS485 communication with other master. The high accuracy of the sensor requires the measurements to have the top priority. Hence, the total cycle is divided into two sequential time slots - measurement and communication. During the measurements the UART communication is disabled, and it is reinitialised at the beginning of communication time slot. Sensor can stay in measurement time slot for as long as 0.8 sec. The communication protocol is written in such a way that any communication starts externally by sending to the sensor s UART one Request To Send () byte. Master must provide 8.2 msec silence on the communication bus before and after in order to let slave to identify that the byte should be interpreted as. In addition master shall give a sensor at least 21.5 msec after to prepare answer. Received during measurement time slot bytes are ignored. As soon as the byte is received and successfully identified, the slave will respond by sending a Clear To Receive (CTR) byte. The master has to answer after a time-out period of minimum 8.2 msec counted from the last stop bit has been shifted into master s UART to the first start bit transition of shifting out byte by sending the Message Request (MR), that contains up to a maximum of 8 bytes. These8 bytes include task code and check sum. The time interval between bytes must not exceed 4 msec in order to let slave to distinguish and data bytes. If more data is to be exchanged, a new has to be sent for each 8 byte package. If the sensor receives and understands the MR message, the sensor UART will respond by sending a Data Code (DC) containing the data requested, that contains up to a maximum of 8 bytes. These8 bytes include Acknowledgement (ACK) and check sum. In case of an execution command, only an Acknowledgement (ACK) will be sent after command execution. Slave must provide time interval between bytes to be less than 4 msec to prevent interpretation data bytes as by any other slave in the RS485 network. Any detected communication error (frame errors, check sum mismatch etc.) as well as detected application error (invalid task code, run time error of execution commands etc.) results in reinitialising of sensor communication without any report on the communication bus (no NACK). Master can detect the presence of sensor in the net due to CTR response. After execution command fail master shall check sensor status. AirTest technical documentation # 0700xx Serial Communication, rev. 3_04 1

A new can be sent immediately after the completion of a DC string (+8.2 msec). Because of the presence of measurement time slot with forbidden communication, the duration of a single communication session must be limited to 120 msec. Slave must not send CTR if there is no time to complete communication before measurements. Master has to try to send new if it doesn t get CTR for this time period. Because of the fact that measurement time slot can be as long as 0.8 sec, master has to try to send several times (e.g. 10 attempts to establish communication by sending with repetition period of 100 msec) before the conclusion of slave failure. In addition to general communication sequence, described above, a special broadcast command is used to reset individual network address of the sensor to default value = 0. Request To Send () byte of broadcast command shall not be responded by CTR. Because of measurement time slot, broadcast command shall be repeated several times in order to ensure receiving by all sensors in the network. Usually network address reset is followed by procedure of reassigning of network addresses. See special chapter bellow for sensor algorithm description. The UART communication protocol parameters summary Parameter minimum typical maximum Notes Baud rate 9600 Data bits 8 Stop bit 1 Parity No t CTR_WAIT t 2CTR 100 msec Typical value represents maximum + recommended one 1.5 msec t MR_DLY 8.2 msec 20 msec 2 t 8.2 msec t COMM 150 msec 3, WARNING 4 t DByte 4 msec Requirement for master. t 2CTR 8.2 msec 20 msec t DC_DLY 8.2 msec 80 msec 1, WARNING 4 Maximum is changed in version 3.04 4.1 msec 8.2 msec Values for reference and sensor s operation explanation only t MR_WAIT 80 msec Values for reference and sensor s operation explanation only. Sensor restarts to wait for new if it doesn t receive total MR for t MR_WAIT NOTES: 1. For half duplex RS485 network minimum value implies requirement for master to leave bus for 8 msec after byte transmission is completed. 2. For half duplex RS485 network minimum value implies requirement do not enter the control of the bus for 8.2 msec. It is maximum time required to return sensor s RS485 transmitter into receive mode. Maximum value is a requirement for master and is not checked by sensor, see t MR_WAIT 3. Maximum parameter shall be used to check communication operation. 4. WARNING! Generally, each command has its own execution time. Numbers in table cover most typical commands, but two exceptions; Save sensor RAM fields in EEPROM and Reset TWA (Time Weighted Average) stack. They can have execution time as long as 3 seconds. AirTest technical documentation # 0700xx Serial Communication, rev. 3_04 2

Transmit timing chart (except broadcast command): Master t COMM t t CTR_WAIT t MR_DLY t DByte TDX MR(3-8bytes) Sensor 1 Measurement time slot end matc t DByte t 2CTR t DC_DLY TDX CTR t MR_WAIT DC(1-8bytes) Go to look for new, if there is no MR received Sensor 2 No recognition on data No recognition on data mismatch, Communication reinitialising mismatch, communicatio n reinitialising mismatch if CTR is considered as AirTest technical documentation # 0700xx Serial Communication, rev. 3_04 3

Byte declaration ( <hex> values in brackets): Request To Send <FE> <E0> <E1...FD> Valid to all sensors, disregarding Network Address (INA) value. Valid to all "un-named" sensors, which have default INA = 0. Valid only to an individual sensor. For use in RS 232 communication, Never use in RS485 networks!!! Notice, that use of this address is risky in RS485 networks!!! CTR Clear To Receive The value <FE> holds for all sensors. In addition, each unit may be assigned an individual network address (INA) in the range 1...29, in which case a unit selective is possible by sending the byte value <E0+INA>. Sensors not assigned with an INA also respond to <E0>. <DF> Sensor is ready to receive MR <DD> Enter slave mode not yet implemented MR Message Request: <task code>,<address>,(<address>),(<data>,...,)<chksm> The message request consists of 3 mandatory and one optional field. Message Request can be 3 to 8 bytes long, depending on the amount of data to be transferred. A pure request for data (bit 7 in<task code> =1) is always 3 bytes long: <task code>,<address>,<chksm> Description of fields follows: <task code> - one byte mandatory field bit 7 bit 6 bit 5 bit 4 bit 3 Bit field 2..1..0 Check Description x x x x x 0 0 0 Reserved Is interpreted as communication error by present version, no NACK Standard Commands (read/write RAM) bit 7 0 = write to RAM, 1 = read from RAM bit 6 0 = lower RAM, 1 = upper RAM 0 0 0 0 0 Number of data =< 5 Write to lower RAM bytes to be written 0 1 0 0 0 Write to higher RAM (not 0) 1 0 0 0 0 Number of data =< 6 Read from lower RAM bytes to be read 1 1 0 0 0 Read from higher RAM (not 0) bit 7 bit 6 bit 5 bit 4 bit 3 Bit field 2..1..0 Check Description Special commands (read/write EEPROM) 0 0 0 0 1 Number of data bytes to be written =< 4 Write to EEPROM. (not 0) 1 0 0 0 1 Number of data bytes to be read =< 6 Read from EEPROM. (not 0) Note: 1. Read/write EEPROM commands are used with 2-byte address. First address byte in MR represents high byte of address, second address byte in MR represents low byte of address. 2. EEPROM is byte-organised in pages of 16 byte each. First address of each page is given by XXX0h, last address of the page is given by XXXFh. Write command MUST write into ONE page at the time ONLY! Otherwise the first addresses of current page will be overridden. AirTest technical documentation # 0700xx Serial Communication, rev. 3_04 4

bit 7 bit 6 bit 5 bit 4 bit 3 Bit field 2..1..0 Check Description Execution commands 1 0 0 1 1 0 0 1 <address> = 0ADh Deleted in 060xxx compared to 050xxx, no answer from sensor. 1 0 1 0 0 0 0 1 <address> Save sensor INA in EEPROM = 0 1 0 0 1 0 0 0 1 <address> = 0 Copy EEPROM variables into RAM 1 0 1 0 1 0 0 1 <address> = AB Lock EEPROM, see algorithm description in Appendix B. 1 0 1 1 0 0 0 1 <address> = A9 Unlock EEPROM, see algorithm description in Appendix B. 1 0 1 1 1 0 0 1 <address> = 01 Not implemented yet! Functions, number of function is written in address byte. 01 - Reset TWA (Time Weighted Average) stack. Notes: 1. Any deviation of checked parameter results in recognition of communication error and sensor communication reinitialising. Sensor starts to look for new. 2. Any unrecognised task code results in recognition of communication error and sensor communication reinitialising. Sensor starts to look for new. <address> - one byte mandatory field, start address to read/write. High (MSB) byte of address in 2-byte address for EEPROM read/write commands. (<address>) - one byte optional field, start address to read/write. Low (LSB) byte of address in 2-byte address for EEPROM read/write commands. (<data>,...) optional field, data, 5 bytes maximum for one byte addressed commands, 4 bytes maximum for 2-byte addressed command write to EEPROM. <chksm> - one byte mandatory field, lsb of a pure summation of the previous MR bytes DC Data Code <ACK>,(<data1>,(<data2>,...),<chksm>) The DC string always starts with a communication status byte ACK. If data are requested, the DC string is 3 to 8 bytes long, depending on the amount of data. The DC code fields description is the following: <ACK> - Acknowledgement, - one byte mandatory field, can be one of following two: <06> - indicates that MR was successfully received and/or command was successfully executed. <86> = <06> + bit 7 set = MR successfully received and/or command was successfully executed +sensor event flag is set (<data1>,(<data2>,...) optional field, data, 6 bytes maximum. <chksm> - if data field presents, it is one byte mandatory field, lsb of a pure summation of the previous DC bytes. AirTest technical documentation # 0700xx Serial Communication, rev. 3_04 5

Transmit example #1 Collecting the present sensor temperature T and CO 2 readings (-hi/-lo refers to msb and lsb of the 2-byte numbers): external computer sensor UART Tx---<FE>-----------<84><14><98>-------------------------------------------------------------- Tx--------------<DF>--------------------<06><Thi><Tlo><CO 2 hi><co 2 lo><chksm>----- The sensor hardware pin R/T will be in low logic level (receive) at all times, except for the short periods of UART transmit time when it will go high. Standard baud rate is 9600 b/s. Transmit example #2 Collecting the present sensor CO 2 reading from a sensor that has detected some hardware error: external computer sensor UART Tx---<FE>------------<82><16><98>-------------------------------------------------------------- Tx--------------<DF>--------------------<86><CO 2 hi><co 2 lo><chksm>--------------------- AirTest technical documentation # 0700xx Serial Communication, rev. 3_04 6

UART communication options accessory A232 - hardware & software for temporal PC/computer-sensor connection This kit is primarily for use during sensor installations, reconfigurations, and maintenance and is included together with necessary PC software in the User Interface Program VT (STRATEGY). option -485 add-on-pcb - for fixed installation to external computer using the RS485 Some useful UART commands MR - com. bytes DC - sensor response Standard commands Collecting Temperature and CO 2 values <84><14><98> <ACK><Thi><Tlo><CO 2 hi><co 2 lo><chksm> Collecting CO 2 values <82><16><98> <ACK><CO 2 hi><co 2 lo><chksm> Collecting Temperature values <82><14><96> <ACK><Thi><Tlo><chksm> Collecting Error Code <81><43><A8> <ACK><Error Code><chksm> Collecting Individual Network Address <C1><50><11> <ACK><INA><chksm> Assigning Individual Network Address <41><50><INA> <ACK> <chksm> Reading Alarm Status byte, Bit #7 contains copy of DT active flag. This position of DT active flag is supposed to be supported for compatibility with future devices. <C1><7F><40> <ACK><AlarmStatus><chksm> Special command Read from EEPROM Execution commands Save sensor INA in EEPROM <A1><00><A1> <ACK> Save sensor RAM in EEPROM <99><AD><46> <ACK> Copy EEPROM variables into RAM <91><00><91> <ACK> Reset TWA (Time Weighted Average) <B9><01><BA> <ACK> stack Note: 1. In this chart Temperature and CO 2 values equals parameter 1 & 2 (channel 0 and channel 1) in the general representation. 2. Notice, that immediately after powering up (or restarting after power fail) correct data is not available from the sensor. Reasonable data on measured parameters like temperature or carbon dioxide concentration appears in 3..7 seconds after power up and data of specified precision is available after specified warm-up time. Data on TWA of carbon dioxide becomes available in one minute after powering up. AirTest technical documentation # 0700xx Serial Communication, rev. 3_04 7

Appendix A: UART production commands and compatibility with old 050xxx rev 3.05 protocol. UART commands, (both 050xxx, 060xxx and 0700xx platforms). Standard commands MR - com. bytes DC - sensor response Status Collecting Temperature and <84><14><98> <ACK><Thi><Tlo><CO 2 hi> Not Changed! CO 2 values <CO 2 lo><chksm> Collecting CO 2 values <82><16><98> <ACK><CO 2 hi><co 2 lo><chksm> Not Changed! Collecting Temperature values <82><14><96> <ACK><Thi><Tlo><chksm> Not Changed! Collecting AN1 analogue output values Collecting AN2 analogue output values <C2><45><07> <ACK><AN1hi><AN1lo><chksm> Address is changed! <C2><47><09> <ACK><AN2hi><AN2lo><chksm> Address is changed! Collecting Error Code <81><43><C4> <ACK><Error Code><chksm> Address is changed! Collecting Sensor PART <81><41><C2> <ACK><PART><chksm> Not Changed! Number Collecting Individual Network <C1><50><11> <ACK><INA><chksm> Not Changed! Address Assigning Individual Network <41><50><INA> <ACK> Not Changed! Address <chksm> Reading Alarm Status byte, Bit #7 contains copy of DT active flag. This position of <C1><7F><40> <ACK><AlarmStatus><chksm>??? Is supposed to be implemented. DT active flag is supposed to be supported for compatibility with future devices. Reading DIG1 timer DT <C1><3B><FC> <ACK><DT><chksm>??? Reading DT active flag ( =bit #7 set) <81><0E><8F> Not available at old address, see Reading alarm status byte. UART commands, (both 050xxx and 060xxx platforms). Special command Write to EEPROM <09><00><10><01> MR - com. bytes DC - sensor response Status <ACK> Added and changed address mode <1A> Read from EEPROM <89><00><10><99> <ACK><Sensor ID><chksm> Added and changed address mode AirTest technical documentation # 0700xx Serial Communication, rev. 3_04 8

UART commands, (both 050xxx, 060xxx and 0700xx platforms). Execution commands MR - com. bytes DC - sensor response Status Save sensor INA in EEPROM <A1><00><A1> <ACK> Save sensor RAM in EEPROM <99><AD><46> <ACK> Not available in 060xxx or 0700xx! Copy EEPROM variables into <91><00><91> <ACK> RAM Lock EEPROM <A9><AB><54> <ACK> Added in 060xxx and 0700xx, see algorithm bellow. Unlock EEPROM <B1><A9><5A> <ACK> Added in 060xxx and 070xx, see algorithm bellow. Reset TWA (Time Weighted Average) stack <B9><01><BA> <ACK> Not yet available in 060xxx or 0700xx! UART commands, (both 050xxx, 060xxx and 0700xx platforms). Reset network address Broadcast commandsd MR - com. bytes <DE> <DE> <DE> DC - sensor response Status Not available in 060xxx or 0700xx! Appendix B: Lock/Unlock EEPROM algorithm description. Generally, EEPROM itself is design to provide maximum data security. After power up it comes to write protected mode. But in order to have additional protection against accidental write to EEPROM due to, for example, uc program error, some portion of EEPROM can be protected from write by means of additional programming of EEPROM. Protected in such way portion can not be programmed even after ordinal write enable command, but additional reprogramming is required. General EEPROM protection sequence: 1. After power-up uc writes LOCK command, protecting portion of EEPROM against write. 2. It repeats LOCK commands every 4 hours (to be specified). 3. For calibration purposes it is necessary to enable write operation. Computer have to send command UNLOCK. Notice, that internal LOCK command is random. It may happen at any time after computer has sent UNLOCK command. That s why it is necessary to read EEPROM back after write operation to check if write was accomplished. AirTest technical documentation # 0700xx Serial Communication, rev. 3_04 9