Patent Description:
Each detonator has global unique number, referred to as a serial ID, that is used for tracking and making sure each detonator has unique number. No two detonators have the same serial ID. The serial ID can range from <NUM> to <NUM> bits long. For verification stage, since it is crucial to ensure every detonator is present, the unique serial ID is typically sent out by a blasting machine or logger to the detonators. The detonators reply with a corresponding response or talkback that is sent back to the logger or blasting machine. For verification commands, this may be time consuming, especially in large shots containing more than <NUM> detonators, where such process can take up to <NUM>-<NUM> mins to complete. Usually increased communication speed can be achieved via increased bandwidth, i.e. higher frequency, but for large shots with many detonators, the overall RC of the bus line challenges the rise and fall times of the resulting signals, and there is thus a practical limit to the speed.

In such electronic blasting system, the commands issued by the logger or blasting machine can be categorized as individual (specific to each detonator based on unique serial ID) or system level (broadcasted and received by all detonators at same time). For broadcast commands, if multiple detonators respond at same time, the logger/blasting machine is unable to discern which detonators or sets of detonators have responded, unless it starts to query each and every detonator to determine the responding detonators. A prior art blasting system is disclosed in <CIT>.

The invention is defined by a blasting system according to independent claim <NUM> and a blasting system according to independent claim <NUM>.

Detonators and master controllers, such as blasting machines or loggers, are provided, in which verify and other communications between the detonator and the remote master controller use a local ID instead of the serial ID to speed up communications. In disclosed examples, the detonators respond to verify and other commands in shortened messages with fewer bits, either synchronously or asynchronously, without having to receive or transmit their individual globally unique serial ID number. The time to respond in one example is achieved synchronously thru clock pulses generated by the logger/blasting machine, or in another example asynchronously by temporal means, e.g., according to the detonators' respective programmed delay times or correlated to the detonator number or other local unique numbering (i.e., no two detonators have same local ID number locally within the blast or in each different branch of a blast. In this manner, verification can be utilized not only to indicate the detonator presence but also to acknowledge other diagnostics, e.g., bus wire (BW) check, arming and calibration. The disclosed techniques can be used for verify or other communications between a remote master controller (e.g., a blasting machine or logger) and the detonators.

The following description and drawings set forth certain illustrative implementations of the disclosure in detail, which are indicative of several exemplary ways in which the various principles of the disclosure may be carried out. The illustrated examples, however, are not exhaustive of the many possible embodiments of the disclosure. Other objects, advantages and novel features of the disclosure will be set forth in the following detailed description of the disclosure when considered in conjunction with the drawings.

Referring now to the figures, several embodiments or implementations of the present disclosure are hereinafter described in conjunction with the drawings, wherein like reference numerals are used to refer to like elements throughout, and wherein the various features and plots are not necessarily drawn to scale. As used herein, the terms "couple" or "couples" or "coupled" are intended to include indirect or direct electrical or mechanical connection or combinations thereof. For example, if a first device couples to or is coupled with a second device, that connection may be through a direct electrical connection, or through an indirect electrical connection via one or more intervening devices and connections.

<FIG> shows a blasting system <NUM> with electronic detonators <NUM> that respectively include a printed circuit board (PCB) with a local master controller <NUM> coupled to an optional sensor <NUM>, for example, a temperature sensor, a pressure sensor, an accelerometer, etc. The system <NUM> includes a remote master controller <NUM>, such as a blasting machine or a logger. The remote master controller <NUM> has connections to a bus having first and second bus wires <NUM> and <NUM>, respectively. The detonator <NUM> includes connections to first and second leg wires <NUM> and <NUM> associated with the individual detonators <NUM>, which are respectively coupled to the first and second bus wires <NUM> and <NUM>. In one example, the controller <NUM> is mounted to a substrate, such as the PCB <NUM>. In one example, the sensor <NUM> is mounted to the PCB <NUM>. In certain implementations, the detonator <NUM> includes an enclosure (not shown), and the sensor <NUM> is positioned at least partially inside the enclosure. The detonator <NUM> in one example is positioned inside a perforating gun or other outer enclosure (not shown). One example of the detonator <NUM> includes various electrical or electronic components, including components that form an electronic ignition module (EIM) used in electronic detonators. In this example, the local controller <NUM> is a processor, application-specific IC (ASIC), microcontroller, DSP, FPGA, CPLD, or other integrated circuit or circuits with processing circuitry and internal or external electronic memory <NUM> that stores a local identification or ID, such as an integer representing a locally unique identity of the individual detonator <NUM> that is different than the local IDs <NUM> of all the other interconnected detonators <NUM>. The remote master controller <NUM> stores a mapping of the local IDs <NUM> and the respective detonator serial ID numbers established during detonator manufacturing.

In one example, the memory <NUM> is integral to the controller <NUM>. In another example, the electronic memory <NUM> is a separate memory on the PCB <NUM> as shown in <FIG>. In one example, the electronic memory <NUM> is non-volatile (e.g., EEPROM, Flash, FeRAM, etc.), and the controller <NUM> is configured to store multiple measured environmental parameters, historical data, and other data associated with the detonator <NUM>. The controller <NUM> in one example stores electrical data in the memory <NUM>, such as activity, commands received or operational status indicators and/or active diagnostics, and/or sensor data from the sensor <NUM> in the non-volatile memory <NUM>. The data can be stored statically with fixed addresses or allocated according to a circular buffer to accommodate on going data acquisition. In certain implementations, the controller <NUM> also includes interface circuitry, such as analog to digital converters, digital-to-analog converters, communication interface circuits, etc. The controller <NUM> may also include digital interface circuitry, such as data and/or address buses, serial communications circuits, pulse width modulation outputs, etc. For example, the example controller <NUM> includes serial communications interface circuitry to provide communications with the remote master controller <NUM> via the bus lines <NUM>, <NUM> and the leg wire's <NUM>, <NUM> in <FIG>.

The electronic blasting system <NUM> in <FIG> implements <NUM>-way communications between the remote master controller <NUM> (e.g., blasting machine/logger) and the detonators <NUM>. The blasting machine or logger <NUM> can issue commands as predefined signals to the detonators <NUM>, whether by amplitude shift keying modulation (ASK) or frequency shift keying (FSK) modulation of a voltage signal generated across the bus wires <NUM>, <NUM> and the leg wires <NUM>, <NUM>. The detonators <NUM> respond back with current modulation similarly either in ASK or FSK format. Example of one suitable communications protocol are described below in connection with <FIG>. The individual electronic detonators <NUM> may contain electronic processing components to process the incoming command waveforms (microcontroller, microprocessor, FPDA, CPLD, etc.), and the necessary circuits to toggle the current as the talkback response.

The remote master controller (blasting machine or logger) <NUM> will not use the unique global serial ID number in one, some or all commands (e.g., verify command), but rather includes the reduced or local unique identification <NUM> based e.g., on the detonator number, delay time or combination thereof. The local ID <NUM> of each detonator <NUM> is locally unique throughout the blast site, and no two detonators <NUM> having the same local unique identification <NUM>. In one example, the remote master controller <NUM> or an operator ensures this local ID uniqueness either prior to transfer of the local ID data to the blasting machine <NUM>, or the blasting machine and logger <NUM> ensure that no such duplication exists in their internal memory of the remote master controller <NUM>.

One example implementation is described below with respect to verify commands. The remote master controller <NUM> (BM or logger) sends out the verify command. All detonators <NUM> should receive this command, and start to get ready, namely to associate their respective detonator number with clock pulses. The local IDs <NUM> in one example are integer values that the remote and local controllers <NUM> and <NUM> associate with a given one of a series of clock pulses or time windows that follow the verify command.

The remote master controller <NUM> (BM or logger) next sends out the series of clock pulses corresponding to the total number of detonators <NUM> in the shot plus one or more additional clock pulses (e.g., <NUM> extra pulses). For example, if there are <NUM> detonators <NUM> in the blast, the remote master controller <NUM> (BM or logger) it will send out <NUM> clock pulses following transmission of the verify command. Each detonator <NUM> measures the bus wire voltage, and the detonator <NUM> detects and counts the associated clock pulses. In response to the count matching the local ID <NUM>, the detonator <NUM> responds with one or more current pulses, such as to represent a bit or a limited series of bits to acknowledge to the remote master controller <NUM> (blasting machine or logger) that the detonator <NUM> is present.

Aside from sending out clock pulses by the remote master controller <NUM> (blasting machine or logger), to sync the detonator responses by the local unique numbering, the detonator <NUM> may also asynchronously send the response after a predetermined time delay based on the local unique numbering. This response time may be based on the detonator number (e.g., respond at times calculated to be, e.g., x1 or x10 of the detonator number), or the actual programmed delay times (in order of the firing times in the blast) or some factor of these delay times, of which the remote master controller <NUM> (blasting machine or logger) is aware by the previous configuration and programming for a given blast.

This fast verify comm technique can be extended to other confirmations besides just the presence on the blast, such as diagnostics results (e.g., bridgewire check, bus voltage, firing capacitor charged voltage, internal leakage, calibration value, etc.) or combinations of such status e.g., during arm check to make sure the detonator is properly charged and yield the correct calibration values, and presence on the bus line. A similar command and synchronous or asynchronous response protocol is implemented for such other communications exchanges, alone or in combination with those described above for verify commands.

<FIG> show example bus wire voltage and current signal diagrams to illustrate a verify command implementation. A signal diagram <NUM> in <FIG> shows an example verify command 0xAF (e.g., quick verify) with clock pulses in a voltage curve <NUM>, in which detonators # <NUM> and # <NUM> in the local ID mapping respond with bit pulses in a current curve <NUM> after clock pulses <NUM> and <NUM> (e.g., with a clock pulse offset by <NUM> pulse to allow time for processing of the received verify command by the detonators <NUM>.

A signal diagram <NUM> in <FIG> shows another example of the same command 0xAF issued by the remote master controller <NUM> (blasting machine or logger) and seen in a voltage curve <NUM>. In this example, two detonators with respective local IDs <NUM> and <NUM>, responding at end of the corresponding clock pulses, with a gap of two unused clock pulses between the respective responses (e.g., with a total number of <NUM> detonators <NUM>, and <NUM> total pulses issued in this example).

A signal diagram <NUM> in <FIG> shows a voltage curve <NUM> and a current curve <NUM> for the bus wires <NUM> and <NUM>, in which the first clock pulse includes positive talkback in the left pulse (e.g., a response from a detonator <NUM> with a local ID <NUM> that corresponds to that clock pulse), but no response in right pulse (e.g., no responding detonator <NUM> having a local ID <NUM> that corresponds to that clock pulse). In this instance, the remote master controller <NUM> (blasting machine or logger) detects that a valid response occurred in the left pulse, and that no valid response occurred in the right pulse.

A signal diagram <NUM> in <FIG> illustrates a further improvement over the example of <FIG>, with a voltage curve <NUM> and a current curve <NUM>. In this implementation instance, the remote master controller <NUM> (blasting machine or logger) provides some pause during bus low voltage condition for dynamic baselining to obtain clearer distinction between a positive pulse response and background. A signal diagram <NUM> in <FIG> shows a comparative implementation using actual detonator serial IDs in the verify command voltage pulse (curve <NUM>), as well as in the responsive current pulses (curve <NUM>) from a detonator. As seen in comparison, the communications in <FIG> includes full packages, and the detonator responses have the same length as the incoming command package, leading to much longer communications than in the disclosed example.

To describe the present invention with reference to the details of a particular preferred embodiment, it is noted that the present invention may be employed in an electronic system comprising a network of slave devices, for example, an electronic blasting system in which the slave devices are electronic detonators. As depicted in <FIG>, one embodiment of such an electronic blasting system may comprise a number of detonators <NUM>, a two-line bus <NUM>, leg wires <NUM> including connectors for attaching the detonator to the bus <NUM>, a logger (not shown), and a blasting machine <NUM>. The detonators <NUM> are preferably connected to the blasting machine <NUM> in parallel (as in <FIG>) or in other arrangements including branch (as with the branched bus <NUM>' shown in <FIG>), tree, star, or multiple parallel connections. A preferred embodiment of such an electronic blasting system is described below, although it will be readily appreciated by one of ordinary skill in the art that other systems or devices could also be used, and many configurations, variations, and modifications of even the particular system described here could be made, without departing from the spirit and scope of the present invention.

The blasting machine <NUM> and logger may preferably each have a pair of terminals capable of receiving bare copper (bus) wire up to, for example, <NUM>-gauge. The logger's terminals may also preferably be configured to receive steel detonator wires (polarity insensitive), and the logger should have an interface suitable for connecting to the blasting machine <NUM>. The blasting machine <NUM> and logger are preferably capable of being operated by a person wearing typical clothing used in mining and blasting operations, e.g., thick gloves. The blasting machine <NUM> and logger may preferably be portable handheld battery-powered devices that require password entry to permit operation and have illuminated displays providing menus, instructions, keystroke reproduction, and messages (including error messages) as appropriate. The blasting machine <NUM> may preferably have a hinged lid and controls and indicators that include a lock for the power-on key, a numeric keypad with up/down arrows and "enter" button, a display, an arming button, an indicator light(s), and a firing button.

The blasting machine <NUM> and logger should be designed for reliable operation in the anticipated range of operating temperatures and endurance of anticipated storage temperatures and are preferably resistant to ammonium nitrate and commonly-used emulsion explosives. The blasting machine <NUM> and logger are also preferably robust enough to withstand typical treatment in a mining or blasting environment such as being dropped and trodden on, and may thus have casings that are rugged, water and corrosion-resistant and environmentally sealed to operate in most weather. The blasting machine <NUM> and logger should, as appropriate, meet applicable requirements of CEN document prCEN/TS <NUM>-<NUM> (NMP <NUM>/FABERG N <NUM> D/E) E <NUM>-<NUM>-<NUM> and governmental and industry requirements. To the extent practical, the logger is preferably designed to be incapable of firing any known electric and electronic detonators and the blasting machine <NUM> to be incapable of firing all known electric detonators and any other known electronic detonators that are not designed for use with the blasting machine <NUM>. An initial electrical test of the system to detect such a device can be employed to provide further assurance that unintended detonators are not fired.

The bus <NUM> may be a duplex or twisted pair and should be chosen to have a pre-selected resistance (e.g., in the embodiment described here, preferably <NUM> to <NUM>Ω per single conductor. The end of the bus <NUM> should not be shunted, but its wire insulation should be sufficiently robust to ensure that leakage to ground, stray capacitance, and stray inductance are minimized (e.g., in the embodiment described herein, preferably less than <NUM> mA leakage for the whole bus, <NUM> pF/m conductor-to-conductor stray capacitance, and <NUM>µH/m conductor-to-conductor stray inductance) under all encountered field conditions.

The leg wires <NUM> and contacts should be chosen to have a pre-selected resistance measured from the detonator terminal to the detonator-to-bus connector (e.g., in the embodiment described here, <NUM> to <NUM>Ω per single conductor plus <NUM> mΩ per connector contact). It will be recognized that the particular detonator-to-bus connector that is used may constrain the choice of bus wire. From a functional standpoint, the detonators <NUM> may be attached at any point on the bus <NUM>, although they must of course be a safe distance from the blasting machine <NUM>.

As shown in <FIG>, a suitable detonator <NUM> for use in an electronic blasting system such as that described here may comprise an electronic ignition module (EIM) <NUM>, a shell <NUM>, a charge <NUM> (preferably comprising a primary charge and base charge), leg wires <NUM>, and an end plug <NUM> that may be crimped in the open end of the shell <NUM>. The EIM <NUM> is preferably programmable and includes an igniter <NUM> and a circuit board to which may be connected various electronic components. In the embodiment described here, the igniter <NUM> is preferably a hermetically sealed device that includes a glass-to-metal seal and a bridgewire <NUM> designed to reliably ignite a charge contained within the igniter <NUM> upon the passage through the bridgewire <NUM> of electricity via pins <NUM> at a predetermined "all-fire" voltage level. The EIM <NUM> (including its electronics and part or all of its igniter <NUM>) may preferably be insert-molded into an encapsulation <NUM> to form a single assembly with terminals for attachment of the leg wires <NUM>. Assignee's copending <CIT> (at pages <NUM>-<NUM> and <FIG>) and Ser. No. <CIT>(at pages <NUM>-<NUM> and <FIG>), both filed on May <NUM>, <NUM>, are hereby incorporated by reference for their applicable teachings of the construction of such detonators beyond the description that is set forth herein. As taught in those applications, an EIM <NUM> generally like the one depicted in <FIG> can be manufactured and handled in standalone form, for later incorporation by a user into the user's own custom detonator assembly (including a shell <NUM> and charge <NUM>).

The circuit board of the EIM <NUM> is preferably a microcontroller or programmable logic device or most preferably an application-specific integrated circuit chip (ASIC) <NUM>, a filtering capacitor <NUM>, a storage capacitor <NUM> preferably, e.g., <NUM> to <NUM>µF (to hold a charge and power the EIM <NUM> when the detonator <NUM> is responding back to a master device as discussed further below), a firing capacitor <NUM> (preferably, e.g., <NUM> to <NUM>µF) (to hold an energy reserve that is used to fire the detonator <NUM>), additional electronic components, and contact pads <NUM> for connection to the leg wires <NUM> and the igniter <NUM>. A shell ground connector <NUM> protruding through the encapsulation <NUM> for contact with the shell <NUM> and connected to, e.g., a metal can pin on the ASIC <NUM> (described below), which is connected to circuitry within the ASIC <NUM> (e.g., an integrated silicon controlled resistor or a diode) that can provide protection against electrostatic discharge and radio frequency and electromagnetic radiation that could otherwise cause damage and/or malfunctioning.

Referring to <FIG>, a preferred electronic schematic layout of a detonator <NUM> such as that of <FIG> is shown. The ASIC <NUM> is preferably a mixed signal chip with dimensions of <NUM> to <NUM>. Pins <NUM> and <NUM> of the depicted ASIC <NUM> are inputs to the leg wires <NUM> and thus the bus <NUM>, pin <NUM> is for connection to the shell ground connector <NUM> and thus the shell <NUM>, pin <NUM> is connected to the firing capacitor <NUM> and bridgewire <NUM>, pin <NUM> is connected to the filtering capacitor <NUM>, pin <NUM> is connected to the bridgewire <NUM>, pin <NUM> is grounded, and pin <NUM> is connected to the storage capacitor <NUM>.

Referring specifically now to <FIG>, the ASIC <NUM> may preferably consist of the following modules: polarity correct, communications interface, EEPROM, digital logic core, reference generator, bridge capacitor control, level detectors, and bridgewire FET. As shown, the polarity correct module may employ polarity-insensitive rectifier diodes to transform the incoming voltage (regardless of its polarity) into a voltage with common ground to the rest of the circuitry of the ASIC <NUM>. The communication interface preferably shifts down the voltages as received from the blasting machine <NUM> so that they are compatible with the digital core of the ASIC <NUM>, and also toggles and transmits the talkback current (described below) to the rectifier bridge (and the system bus lines) based on the output from the digital core. The EEPROM module preferably stores the unique serial identification, delay time, hole registers and various analog trim values of the ASIC <NUM>. The digital logic core preferably holds the state machine, which processes the data incoming from the blasting machine <NUM> and outgoing talkback via the communication interface. Reference generators preferably provide the regulated voltages needed to power up the digital core and oscillator (e.g., <NUM>. 3V) and also the analog portions to charge the firing capacitor <NUM> and discharge the firing MOSFET. The bridge capacitor control preferably contains a constant current generator to charge up the firing capacitor <NUM> and also a MOSFET to discharge the firing capacitor <NUM> when so desired. The level detectors are preferably connected to the firing capacitor <NUM> to determine based on its voltage whether it is in a charged or discharged state. Finally, the bridgewire MOSFET preferably allows the passage of charge or current from the firing capacitor <NUM> across the bridgewire <NUM> upon actuation by pulling to ground.

Communication of data in a system such as shown in <FIG> may preferably consist of a <NUM>-wire bus polarity independent serial protocol between the detonators <NUM> and a logger or blasting machine <NUM>. Communications from the blasting machine <NUM> may either be in individual mode (directed to a particular detonator <NUM> only) or broadcast mode where all the detonators <NUM> will receive the same command (usually charging and fire commands). The communication protocol is preferably serial, contains cyclic redundancy error checking (CRC), and synchronization bits for timing accuracy among the detonators <NUM>. There is also a command for the auto-detection of detonators <NUM> on the bus <NUM> that otherwise had not been entered into the blasting machine <NUM>.

When the blasting machine <NUM> and detonators <NUM> are connected, the system idle state voltage is preferably set at VB,H. The slave detonators <NUM> then preferably obtain their power from the bus <NUM> during the high state, which powers up their storage capacitors <NUM>. Communications from the blasting machine <NUM> or logger to the ASICs <NUM> is based on voltage modulation pulsed at the appropriate baud rate, which the ASICs <NUM> decipher into the associated data packets.

As shown in <FIG>, different operating voltages VL,L and VL,H can be used by the logger versus those of the blasting machine <NUM>, VB,L and VB,H. In the embodiment described here, suitable values for VL,L and VL,H are <NUM> to 3V and <NUM> to 14V, respectively, while suitable values for VB,L and VB,H are <NUM> to 15V and 28V or higher, respectively. Further, a detonator <NUM> in such a system may preferably utilize this difference to sense whether it is connected to the blasting machine <NUM> or logger (i.e., whether it is in logger or blaster mode), such as by going into logger mode when the voltage is less than a certain value (e.g., 15V) and blaster mode when it is above another value (e.g., 17V). This differentiation permits the ASIC <NUM> of the detonator <NUM> to, when in logger mode, preferably switch on a MOSFET to discharge the firing capacitor <NUM> and/or disable its charging and/or firing logic. The differentiation by the detonator <NUM> is also advantageously simplified if there is no overlap between the high/low ranges of the blasting machine <NUM> and the logger, as shown in <FIG>. (Each of these figures depicts nominal values for high and low, but it is further preferable that the maximum and minimum acceptable values for the highs and lows also do not permit overlap).

On the other hand, instead of voltage modulation, the communication from the ASICs <NUM> to the blasting machine <NUM> or logger is based on current modulation ("current talkback"), as shown in <FIG>. With current modulation, the ASICs <NUM> toggle the amount of current to the logger (between IL,L, preferably <NUM> mA, and IL,H, preferably a value that is at least <NUM> mA but substantially less than IB,H) or blasting machine <NUM> (between IB,L, preferably <NUM> mA, and IB,H, preferably a value that is at least <NUM> mA but not so high as to possibly overload the system when multiple detonators <NUM> respond), which then senses and deciphers these current pulse packets into the associated data sent. This current talkback from the detonators back to the master can be performed when the voltage of the bus <NUM> is high or low, but if performed when the bus <NUM> is high, the ASICs <NUM> are continuously replenishing the storage capacitors <NUM>, causing a high background current draw (especially when many detonators <NUM> are connected to the bus <NUM>). When the bus <NUM> is preferably held low, however, the rectifier bridge diodes are reverse-biased and the ASICs <NUM> draw operating current from the storage capacitors <NUM> rather than the bus <NUM>, so as to improve the signal-to-noise ratio of the sensed talkback current at the blasting machine <NUM> or logger. Thus, the current talkback is preferably conducted when the bus <NUM> is held low. The toggling of current by the ASICs <NUM> can be suitably achieved by various known methods such as modulating the voltage on a sense resistor, a current feedback loop on an op amp, or incorporating constant current sinks, e.g., current mirror.

In communications to and from the master devices and slave devices, the serial data communication interface may preferably comprise a packet consisting of a varying or, more preferably, a fixed number (preferably <NUM> to <NUM>) of "bytes" or "words" that are each preferably, e.g., twelve bits long, preferably with the most significant bit being sent first. Depending on the application, other suitable sized words could alternately be used, and/or a different number of words could be used within the packet. Also, a different packet structure could alternately be employed for communications from the master device as compared to those of communications from the slave devices.

The first word of the packet of the embodiment described here is preferably an initial synchronization word and can be structured such that its first three bits are zero so that it is effectively received as a nine-bit word (e.g., <NUM>, or any other suitable arrangement).

In addition to containing various data as described below, the subsequent words may also preferably each contain a number of bits-for example, four bits at the beginning or end of each word-that are provided to permit mid-stream resynchronization (resulting in a word structured as 0101_D7:D0 or D7:D0-<NUM> and thus having eight bits that can be used to convey data, or "data bits"). Preferred schemes of initial synchronization and re-synchronization are described further under the corresponding heading below.

Another word of the packet can be used to communicate commands, such as is described under the corresponding heading below.

Preferably five to eight additional bytes of the packet are used for serial identification (serial ID) to uniquely (as desired) identify each detonator in a system. The data bits of the serial ID data may preferably consist at least in part of data such as revision number, lot number, and wafer number, for traceability purposes. In broadcast commands from the master device, these words do not need to contain a serial ID for a particular detonator and thus may consist of arbitrary values, or of dummy values that could be used for some other purpose.

Additional words of the packet are preferably used to convey delay time information (register) (and comprise enough data bits to specify a suitable range of delay time, e.g., in the context of an electronic blasting system, a maximum delay of on the order of, e.g., a minute) in suitable increments, e.g., <NUM> in the context of an electronic blasting system. (A setting of zero is preferably considered a default error).

In the embodiment described here, one or more additional words of the packet are preferably used for scratch information, which can be used to define blasting hole identifications (hole IDs), with these words comprising enough data bits to accommodate the maximum desired number of hole IDs.

One or more additional words of the packet are preferably used for a cyclic redundancy check (for example, using CRC-<NUM> algorithm based on the polynomial, x8+x2+x+<NUM>), or less preferably, a parity check, or an error-correction check, e.g., using hamming code. Preferably, neither the initial synchronization word nor the synchronization bits are used in the CRC calculation for either transmission or reception.

In the embodiment and application described here, a preferred range of possible communication rates may be <NUM> to <NUM> baud. In a packet sent by the master device, the initial synchronization word is used to determine the speed at which the slave device receives and processes the next word in the packet from the master device; likewise, in a packet sent by the slave device, the initial synchronization word is used to determine the speed at which the master device receives and processes the next word from the slave device. The first few (enough to obtain relatively accurate synchronization), but not all, of the bits of this initial synchronization word are preferably sampled, in order to permit time for processing and determination of the communication rate prior to receipt of the ensuing word. Synchronization may be effected by, e.g., the use of a counter/timer monitoring transitions in the voltage level low to high or high to low, and the rates of the sampled bits are preferably averaged together. Throughout transmission of the ensuing words of the packet, i.e., "mid-stream," resynchronization is then preferably conducted by the receiving device assuming that (e.g., <NUM>-bit) synchronization portions are provided in (preferably each of) those ensuing words. In this way, it can be ensured that synchronization is not lost during the transfer of a packet.

If requested, a slave device responds back, after transmission of a packet from the master device, at the last sampled rate of that packet, which is preferably that of the last word of the packet. (This rate can be viewed as the rate of the initial synchronization word as skewed during the transmission of the packet-in an electronic blasting machine, such skew is generally more pronounced during communication from the detonator to the logger). Referring to <FIG>, communication from a master to a slave device, and a synchronized response back from the slave device, is shown.

As depicted in <FIG>, the device may preferably be configured and programmed to initiate a response back to individually-addressed commands no later than a predetermined period (after the end trailing edge of the serial input transfer) comprising the time required to complete the input transfer, the serial interface setup for a response back, and the initial portion of the synchronization word (e.g., <NUM>). Preferably the bus <NUM> should be pulled (and held) low within the capture and processing delay.

The data bits of the command word from the master device (e.g., blasting machine or logger) in the serial communication packet may preferably be organized so that one bit is used to indicate (e.g., by being set high) that the master device is communicating, another is used to indicate whether it is requesting a read or a write, another indicates whether the command is a broadcast command or a single device command, and other bits are used to convey the particular command. Similarly, the data bits of the command word from the slave device (e.g., detonator) may preferably be organized so that one bit is used to indicate that the device is responding (e.g., by being set high), another indicates whether a CRC error has occurred, another indicates whether a device error (e.g., charge verify) has occurred, and other bits are discretely used to convey "status flags.

The flag data bits from devices can be used to indicate the current state of the device and are preferably included in all device responses. The flags can be arranged, for example, so that one flag indicates whether or not the device has been detected on the bus, another indicates whether it has been calibrated, another indicates whether it is currently charged, and another indicates whether it has received a Fire command. A flag value of <NUM> (high) can then signify a response in the affirmative and <NUM> (low) in the negative.

A preferred set of useful substantive blasting machine/logger commands may include: Unknown Detonator Read Back (of device settings); Single Check Continuity (of detonator bridgewire); Program Delay/Scratch; Auto Bus Detection (detect unidentified devices); Known Detonator Read Back; Check Continuity (of the detonators' bridgewires); Charge (the firing capacitors); Charge Verify; Calibrate (the ASICs' internal clocks); Calibrate Verify; Fire (initiates sequences leading to firing of the detonators); DisCharge; DisCharge Verify; and, Single DisCharge. As will be explained further below, some of these commands are "broadcast" commands (sent with any arbitrary serial identification and its concomitant proper CRC code) that only elicit a response from any detonator(s) that have not been previously identified or in which an error has occurred, while others are directed to a specific detonator identified by its serial ID. <FIG> show a flowchart of a preferred logical sequence of how such commands may be used in the operation of an electronic blasting system, and specific details of the preferred embodiment described here are set forth for each individual command under the Operation headings.

In use, the detonators <NUM> are preferably first each connected individually to a logger, which preferably reads the detonator serial ID, performs diagnostics, and correlates hole number to detonator serial ID. At this point, the operator can then program the detonator delay time if it has not already been programmed. Once a detonator <NUM> is connected to the logger, the operator powers up the logger and commands the reading of serial ID, the performing of diagnostics, and, if desired, the writing of a delay time. As the serial ID is read, the logger may assign a sequential hole number and retains a record of the hole number, serial ID, and delay time.

The foregoing sequence can beneficially be accomplished using the above-noted Unknown Detonator Read Back and Single Check Continuity commands and possibly the Program Delay/Scratch command. Preferred details of these commands are set forth below.

By this command, the blasting machine <NUM> or logger requests a read back of the serial ID, delay time, scratch information, and status flags (notably including its charge status) of a single, unknown detonator <NUM>. The bus detection flag is not set by this command. (As an alternate to this command, the logger could instead perform a version of the Auto Bus Detection and Known Detonator Read Back commands described below).

By this command, the logger requests a continuity check of a single detonator <NUM> of which the serial ID is known. The logger may (preferably) issue this command prior to the programming (or re-programming) of a delay time for the particular detonator <NUM>. In response to this command, the ASIC <NUM> of the detonator <NUM> causes a continuity check to be conducted on the bridgewire <NUM>. The continuity check can be beneficially accomplished, for example, by the ASIC <NUM> (at its operating voltage) causing a constant current (e.g., about <NUM>µA with a nominally <NUM>Ω bridgewire <NUM> in the embodiment described here) to be passed through the bridgewire <NUM> via, e.g., a MOSFET switch and measuring the resulting voltage across the bridgewire <NUM> with, e.g., an A/D element. The overall resistance of the bridgewire <NUM> can then be calculated from the ohmic drop across the bridgewire <NUM> and the constant current used. If the calculated resistance is above a range of threshold values (e.g., in the embodiment described here, <NUM> to <NUM> kΩ range), the bridgewire <NUM> is considered to be open, i.e., not continuous. If such error is detected, then the detonator <NUM> responds back with a corresponding error code (i.e., continuity check failure as indicated by the respective data bit of the command word).

By this command, if the detonator <NUM> has not already been programmed with a delay time or if a new delay time is desired, the operator can program the detonator <NUM> accordingly. Through this command, the blasting machine <NUM> or logger requests a write of the delay and scratch information for a single detonator <NUM> of which the serial ID is known. This command also preferably sets the bus detection flag (conveyed by the respective data bit of the command word) high.

After some or all detonators <NUM> may have been thus processed by the logger, they are connected to the bus <NUM>. A number of detonators <NUM> can be connected depending on the specifics of the system (e.g., up to a thousand or more in the particular embodiment described here). The operator then powers up the blasting machine <NUM>, which initiates a check for the presence of incompatible detonators and leakage, and may preferably be prompted to enter a password to proceed. The logger is then connected to the blasting machine <NUM> and a command issued to transfer the logged information (i.e., hole number, serial ID, and delay time for all of the logged detonators), and the blasting machine <NUM> provides a confirmation when this information has been received. (Although used in the preferred embodiment, a logger need not be separately used to log detonators <NUM>, and a system could be configured in which the blasting machine <NUM> logs the detonators <NUM>, e.g., using Auto Bus Detection command or other means are used to convey the pertinent information to the blasting machine <NUM> and/or conduct any other functions that are typically associated with a logger such as the functions described above).

The blasting machine <NUM> may preferably be programmed to then require the operator to command a system diagnostic check before proceeding to arming the detonators <NUM>, or to perform such a check automatically. This command causes the blasting machine <NUM> to check and perform diagnostics on each of the expected detonators <NUM>, and report any errors, which must be resolved before firing can occur. The blasting machine <NUM> and/or ASICs <NUM> are also preferably programmed so that the operator can also program or change the delay for specific detonators <NUM> as desired.

The blasting machine <NUM> and/or ASICs <NUM> are preferably programmed to permit the operator to arm the detonators <NUM>, i.e., issue the Charge command (and the ASICs <NUM> to receive this command) once there are no errors, which causes the charging of the firing capacitors <NUM>. Similarly, the blasting machine <NUM> and/or ASICs <NUM> are preferably programmed to permit the operator to issue the Fire command (and the ASICs <NUM> to receive this command) once the firing capacitors <NUM> have been charged and calibrated. The blasting machine <NUM> and/or ASICs <NUM> are also preferably programmed so that if the Fire command is not issued within a set period (e.g., <NUM>), the firing capacitors <NUM> are discharged and the operator must restart the sequence if it is wished to perform a firing.

The blasting machine <NUM> is also preferably programmed so that, upon arming, an arming indicator light(s) alights (e.g., red), and then, upon successful charging of the detonators <NUM>, that light preferably changes color (e.g., to green) or another one-alights to indicate that the system is ready to fire. The blasting machine <NUM> is also preferably programmed so that the user must hold down separate arming and firing buttons together until firing or else the firing capacitors <NUM> are discharged and the operator must restart the sequence to perform firing.

The foregoing sequence can be beneficially accomplished with other commands noted above, preferred details of which are discussed below.

This command permits the blasting machine <NUM> to detect any unknown (i.e., unlogged) detonators <NUM> that are connected to the bus <NUM>, forcing such detonators to respond with their serial ID, delay data, scratch data, and current status flag settings. The blasting machine <NUM> and ASIC <NUM> may preferably be configured and programmed so that this command is used as follows:.

By this command, the blasting machine <NUM> or logger requests a read back of a single detonator <NUM> of which the serial ID is known. In response to this command, the detonator <NUM> provides its serial ID, delay time, scratch information, and status flags (notably including its charge status). This command preferably sets the bus detection flag high so that the device no longer responds to an Auto Bus Detection command.

The system should be configured so that this command is required to be issued before the Charge command (described immediately below) can be issued. By this command, the blasting machine <NUM> broadcasts a request to all detonators <NUM> connected to the bus <NUM> to perform a continuity check. In response, each ASIC <NUM> in the detonators <NUM> performs a continuity check on the bridgewire <NUM> such as is described above with respect to the Single Check Continuity command sent to a specific detonator <NUM>.

By this command, the blasting machine <NUM> requests a charge of all detonators <NUM> connected to the bus <NUM>. After charging of each detonator <NUM>, its charge status flag is set high. The detonators <NUM> respond back to the blasting machine <NUM> only if an error has occurred (e.g., a CRC error, the bus detection flag is not high, or-if staggered charging as described below is used-the scratch register is set to zero), in which case the response includes the corresponding error code.

If a large number of detonators <NUM> are connected to the bus <NUM>, charging may preferably be staggered so that the detonators <NUM> are each charged at different times such as by the following steps:.

The minimum time required to charge a network of detonators in a staggered fashion thus essentially equals the desired individual (or bank) capacitor charging time (which in turn depends on the particular charging process used and the size of the firing capacitor <NUM>) multiplied by the number of detonators <NUM> (or banks). For example, in the present embodiment, about <NUM> per capacitor may be desirable with a system including <NUM> detonators or detonator banks in which the constant-current regulation process described below is employed, and results in an overall charging time of <NUM>. Alternatively, the charge clocking can be controlled over a wide range of scratch values, e.g., clocking to a certain number of pulses (where all detonators with scratch values up to this pulse number will charge), pausing the clocking momentarily to allow these detonators to adequately charge to full capacity before issuing further clock pulses, pausing and resuming again if desired, and so on.

At the device level, the electricity supplied to each firing capacitor <NUM> during charging may preferably be through a constant-current, rail-voltage regulated charging process, as is shown in <FIG>. In such a charging process, the current draw is held constant at a relatively low amount (e.g., at <NUM> mA) while voltage increases linearly with time until a "rail-voltage" (which is the regulator voltage, which is in turn suitably chosen together with the capacitance of the firing capacitor <NUM> and the firing energy of the bridgewire <NUM>) is reached, after which the voltage remains constant at the rail voltage and the current draw thus decreases rapidly. Such charging regulation, which is known for example in the field of laptop computer battery chargers, may be accomplished by several methods such as a current-mirror using two bipolar transistors or MOSFETs, a fixed gate-source voltage on a JFET or MOSFET, or a current feedback using an op amp or comparator.

By this command, the blasting machine <NUM> broadcasts a request to all detonators <NUM> on the bus <NUM> to verify that they are charged. If an ASIC <NUM> did not charge (as reflected by a low charge status flag setting per the charge procedure described above) or has a CRC error, it immediately responds back with the appropriate error code and other information including its status flags. The Charge Verify command can also effectively provide a verification of the proper capacitance of the firing capacitor <NUM> if a charging window time as described above with reference to the charging process is employed, and its limits are respectively defined to correspond to the time required (using the selected charging process) to charge a firing capacitor <NUM> having the upper and lower limits of acceptable capacitance. For example, in the embodiment described here, using a constant-current (<NUM> mA), rail-voltage limited charging, a <NUM>µF capacitor nominally charges to 25V in <NUM>, and a window of from <NUM> to <NUM> corresponds to acceptable maximum/minimum capacitance limits (i.e., about <NUM> to <NUM>µF), or a <NUM>µF capacitor nominally charges to 25V in <NUM>, and a window of from <NUM> to <NUM> corresponds to acceptable maximum/minimum capacitance limits (i.e., about <NUM> to <NUM>µF). If the blasting machine <NUM> receives an error message in response to this command, it can re-broadcast the Charge command and terminate the sequence, or alternately it could be configured and programmed to permit the individual diagnosing and individual charging of any specific detonators <NUM> responding with errors.

Each one of detonators <NUM> contains an internal oscillator (see <FIG>), which is used to control and measure duration of any delays or time periods generated or received by the detonator <NUM>. The exact oscillator frequency of a given detonator <NUM> is not known and varies with temperature. In order to obtain repeatable and accurate blast timing, this variation must be compensated for. In the present embodiment this is accomplished by requesting the detonator <NUM> to measure (in terms of its own oscillator frequency) the duration of a fixed calibration pulse, NOM (preferably, e.g., <NUM> to <NUM> in an embodiment such as that described here), which is generated by the blasting machine <NUM> using its internal oscillator as reference. In the present embodiment, the detonator <NUM> then uses the measured pulse duration, CC, to compute the firing delay in terms of the oscillator counts using the following formula: counts=DLY*(CC/NOM) where DLY is the value of the delay register. (In the present embodiment it is assumed that the temperature of the detonator <NUM> has become stable or is changing insignificantly by the time the actual blast is performed).

By the Calibrate command (the address bytes of which may contain any arbitrary data), the blasting machine <NUM> broadcasts a request to calibrate all detonators <NUM> on the bus <NUM>. A detonator <NUM> responds back to the calibrate command only if an error has occurred (e.g., a CRC error or the bus detection or charge status flags are not high), in which case the response includes the corresponding error code. If there is no error, immediately after the calibration packet has been received, the detonator <NUM> waits until the bus <NUM> is pulled high for a set period (e.g., the same period described above as NOM), at which point the ASIC <NUM> begins counting at its oscillating frequency until the bus <NUM> is pulled back low to end the calibration sequence. The number of counts counted out by the ASIC <NUM> during this set period is then stored in the detonator's calibration register (and is later used by the ASIC <NUM> to determine countdown values) and the calibration flag is set high. Pulling the bus <NUM> low ends the Calibrate command sequence, and the rising edge of the next transition to high on the bus <NUM> is then recognized as the start of a new command.

By this command, the blasting machine <NUM> broadcasts a request to verify calibration of all detonators <NUM> on the bus <NUM>. In response, each detonator <NUM> checks that the value in its calibration register is within a certain range (e.g., in the embodiment described here, +/-<NUM>%) of a value corresponding to the ideal or nominal number of oscillator cycles that would occur during the period NOM. A detonator <NUM> responds back only if the calibration value is out of range or another error has occurred (e.g., a CRC error or the bus detection, charge, or calibrate status flags are not high), in which case the response includes the corresponding error code.

By this command, the blasting machine <NUM> broadcasts a request to fire all detonators <NUM> on the bus <NUM>. A detonator <NUM> responds back to this command only if an error has occurred (e.g., a CRC error, the bus detection, charge, or calibrate status flags are not high, or the delay register is set to zero), in which case the response includes the corresponding error code. Otherwise, in response to this command, the ASIC <NUM> of each detonator <NUM> initiates a countdown/fire sequence and sets the fire flag high. The blasting machine <NUM> and logger and/or ASIC <NUM> may beneficially be configured and programmed such that this process is as follows (see also <FIG>):.

It has been found that a system constructed according to the preferred specifics described here, with up to a thousand or more detonators <NUM> networked to the blasting machine <NUM>, can reliably provide a timing delay accuracy of better than <NUM> ppm (e.g., <NUM> with <NUM> delay).

By this command, the blasting machine <NUM> broadcasts a request to discharge all detonators <NUM> on the bus <NUM>. A detonator <NUM> responds back to this command only if a CRC error has occurred in which case the response includes the corresponding error code (the discharge command is not performed in this case). Otherwise, in response to this command, the ASIC <NUM> of each detonator <NUM> stops any fire countdown that may be in progress, and causes the firing capacitor <NUM> to be discharged.

By this command, the blasting machine <NUM> broadcasts a request to verify the discharging of all detonators <NUM> on the bus <NUM>. In response, the ASIC <NUM> of each detonator <NUM> verifies that the firing capacitor <NUM> is discharged, responding back only if a CRC or verification error has occurred (e.g., a CRC error or the bus detection, charge, or calibrate status flags are not high), in which case the response includes the corresponding error code.

This command is the same as the Discharge command discussed above except that it requires a correct serial ID of a specific detonator <NUM> on the bus <NUM>, which detonator responds back with its serial ID, delay and scratch information, status flags, and any error codes.

The particular system described here is subject to numerous additions and modifications. For example, not all of the commands described above would necessarily be required, they could be combined, separated, and otherwise modified in many ways, and numerous additional commands could be implemented. As some of many examples, a command could implemented to clear all bus detection flags of detonators <NUM> on the bus <NUM>, to permit resetting of the bus detection process, a command could be implemented to permit individual charge and/or charge verify of selected detonators <NUM>, etc. Further, other synchronization schemes (e.g., using a third clock line instead of dynamic synchronization) and/or protocols could be used if suitable for a particular application.

Claim 1:
A blasting system (<NUM>), comprising:
a master controller (<NUM>) coupled to a bus (<NUM>, <NUM>), the master controller (<NUM>) storing a mapping of local IDs (<NUM>) and respective detonator serial ID numbers; and
an integer number M electronic detonators (<NUM>) coupled to the bus (<NUM>, <NUM>), the individual detonators (<NUM>) having a memory (<NUM>) that stores a respective one of the local IDs (<NUM>);
the master controller (<NUM>) configured to send a voltage signal that represents a command or communications request to the bus (<NUM>, <NUM>), and subsequently send an integer number N voltage clock pulses to the bus (<NUM>, <NUM>), N being an integer greater than M; and
each respective detonator (<NUM>) configured to: responsive to the detonator (<NUM>) detecting the command or communications request from the master controller (<NUM>), respond to the command or communications request by sending one or more current pulses to the bus (<NUM>, <NUM>) responsive to an ith one of the N voltage clock pulses, i being an integer that uniquely corresponds to the local ID (<NUM>) stored in the respective detonator (<NUM>) and stored in the mapping of local IDs (<NUM>) and respective detonator serial ID numbers in the master controller (<NUM>).