The foregoing summary, as well as the following detailed description of certain embodiments of the present invention, will be better understood when read in conjunction with the appended drawings. To the extent that the figures illustrate diagrams of the functional blocks of various embodiments, the functional blocks are not necessarily indicative of the division between hardware circuitry. Thus, for example, one or more of the functional blocks (e.g., processors or memories) may be implemented in a single piece of hardware (e.g., a general purpose signal processor or a block or random access memory, hard disk, or the like). Similarly, the programs may be stand alone programs, may be incorporated as subroutines in an operating system, may be functions in an installed software package, and the like. It should be understood that the various embodiments are not limited to the arrangements and instrumentality shown in the drawings.
As used herein, an element or step recited in the singular and proceeded with the word “a ” or “an ” should be understood as not excluding plural of said elements or steps, unless such exclusion is explicitly stated. Furthermore, references to “one embodiment” of the present invention are not intended to be interpreted as excluding the existence of additional embodiments that also incorporate the recited features. Moreover, unless explicitly stated to the contrary, embodiments “comprising ” or “having ” an element or a plurality of elements having a particular property may include additional such elements not having that property.
Certain terms used herein may be defined as follows:
Selected Unit: This term refers to a multiple purpose unit (MPU) module that may actively drive data line ports and communications port transmitters. Because both MPU modules of a connected pair may be powered and actively processing incoming data, the term “selected ” as used herein identifies the module that is performing the driving.
Backup Unit: This term refers to a MPU module that is not actively driving data line ports and communications port transmitters, but that may actively process incoming data so as to be able to hot switch over in case of a failure of the selected unit.
Lower Unit: This term refers to a port module that may have communications ports configured with lower (smaller) numbers. For example, a port module that has sixteen RS-232 communications ports configured as ports 1 through 16 is a “lower unit.” In some embodiments, the lower unit may also have a “Higher/Lower ” port selection switch that is set to “Lower, ” and be driving two data port lines as 1 and 2.
Higher Unit: This term refers to a port module that may have communications ports configured with higher (larger) numbers. For example, a port module that has sixteen RS-232 ports 18 configured as ports 17 through 32 is an “upper unit. ” In some embodiments, the upper unit may also have a “Higher/Lower ” port selection switch set to “Higher, ” and be driving two data port lines as 3 and 4.
Local: This term is a relative modifier and refers to any component that is in the same rack space (e.g., 1 RU rack space) as a particular component under discussion.
Remote: This term is a relative modifier and refers to an interconnected MP CPU or any components of the MP CPU that are in an adjoining rack space as a particular component under discussion.
For simplicity and ease of explanation, the invention will be described herein in connection with various embodiments thereof. Those skilled in the art will recognize, however, that the features and advantages of the various embodiments may be implemented in a variety of configurations. It is to be understood, therefore, that the embodiments described herein are presented by way of illustration, not of limitation.
In some embodiments of the present invention and referring to
In some embodiments of the present invention and referring to
Referring again to
MPU module 10 can be a standalone module, however the port module 14 in some embodiments requires an MPU 10 module for control and power. For hot stand by redundancy a port module 14 can be connected to a second MPU module 10 through another port module 14. MPU module 10 can be used without an attached port module 14 in some embodiments for many separate video system components and standalone CCTV functions. Rear panel connects may be provided in some embodiments for all interfaces of both MPU module 10 and port module 14.
In some embodiments and referring to
Referring to
Rear panel features and interface connectors, which may include interface(s) to OEM and legacy equipment 82, a 10/100 Base T Ethernet port RJ45 connector 84 with build in LEDs, a video input BNC connector 86, with a selectable line termination switch, and a video output BNC connector 88 may be provided.
Front panel features (not shown in
A parallel blind mate connector 44 may be provided as an interface to port module 14. This interface may provide, in at least one configuration, thirty-two asynchronous UART interfaces, four data line interfaces, power for the port module 14, and passive hot switch fail safe tri-stating signal lines. The connector 44 attaches to a matching connector 46 on the side of port module 14. The physical interconnection of port module 14 and MPU module 10 is facilitated by a connection system that may include, for example, a knurled knob 80 that is configured to mechanically adjust the clearance between MPU module 10 and port module 14.
Internal functions that may be provided by port module 14 in some embodiments of the present invention include a duplicate power supply and sharing and switch over from connected MPU modules 10, as well as system heartbeat monitoring and control logic and signals. Also, and referring to
Rear panel features and interface connectors may include, for example, in at least one configuration, two data line outputs 58 with BNC female connectors, two aligned LEDs 60, 61 to indicate “Higher ” or “Lower ” selected port range, a selection switch for “Higher ” or “Lower ” port range, sixteen RS-232 ports 18 containing Tx, Rx, and GND signals with RJ-45 female connectors, and an output alarm relay 90, for example, with a three pin Euro-style plug connector.
Referring to
A parallel blind mate connector interface 44 to MPU module 10 is provided in some embodiments. The connector 44 may include, in at least one configuration, thirty-two asynchronous UART interfaces, four data line interfaces, power from MPU module 10, and passive hot switch fail safe tri-stating signal lines.
Also included in at least one configuration of port module 10 are sixteen RS-232 driver/receiver circuits, two data line drivers, and a ribbon cable connection (e.g., connection with ribbon cables 38 and 39 to connect the two port modules 14, 15 together. The ribbon cable connection may include sixteen asynchronous UART interfaces, two data line interfaces, power from MPU module 10, and passive hot switch fail safe tri-stating signal lines.
Among the various features provided in some embodiments of the present invention, CPU configuration and status monitoring software may retrieve, archive, and load back CPU data. The software may provide IP network connection to all auxiliary systems, and may be configured to concurrently update dual mode CPUs. In addition, some embodiments of the CPU configuration and status monitoring software can provide real-time CPU status. Also, firmware update capability may be provided in some embodiments.
Another of the various features that may be provided is activity logging and reporting to, for example, an IP network PC 22. The PC 22 may be utilized for setup and file storage, and can be the same PC 22 used to run configuration software.
Yet another feature that may be provided is a snapshot feature that can store a snapshot upon request to IP network PC 22. For example, an operator, using a keyboard entry, can cause a video frame to be captured, compressed, and sent to a network PC 22, in any known manner, and where the video frame is stored in a pre-designated file directory, with the file name including an operator ID, time and date.
Another feature that may be provided in some embodiments is email text messaging. The software package may email information regarding, for example, CPU failure, switchover status, or alarm messages to a specified email address using any known process. Also, some embodiments may provide the ability to synchronize clock time to a network time protocol (NTP) server.
Some exemplary embodiments of port modules are described herein as providing sixteen RS-232 ports 18 and two data lines. However, it will be understood that other embodiments may provide different numbers of, and/or different types of communications ports and/or data lines.
In some embodiments of the present invention and referring to
MPU modules 10 in some embodiments may utilize the following information from port modules 14:
1. Is this port module the selected port module?
2. Is another port module 15 present?
3. Is the other MPU module 10 present?
4. Is this port module 14 a lower or higher port module? (For example, in at least one configuration, a lower port module has ports 1-16 and a higher port module has ports 17-32.)
5. Is the other port module 15 data line OK?
6. Is the other port module 15 heartbeat signaling OK?
7. Are both the A and B cables (e.g., in some embodiments, ribbon cables) connected?
In at least one configuration, there are eight lines between the port modules 14 and 15 to provide information on the status of the other port module, and these lines may provide the following information:
1. Is a remote port module present and connected with cable A?
2. Is a remote port module present and connected with cable B?
3. Is an MPU module 10 present?
4. Is the other port module a lower or higher port module?
5. Other information is carried on an asynchronous serial UART data line for heart beat and status communications.
On power up, MPU module or modules 10 may check the state of the lower/higher selection switches on port modules 14, 15. If the switches 62 are set to opposite states from each other there is no confusion on where the lower and higher ports are located. Otherwise, if both switches 62 are set the same way, port module 14 will become the selected unit and MPU module or modules 10 will, in at least one configuration:
1. Not enable tri-state drivers to the other port module RS-232 and AD Data Line ports until the switches 62 are not set the same way and require a reset.
2. Operate the local RS-232 ports (Lower(1-16) or Higher(17-32)) for the selected range
3. Operate the local data lines as ports 1 and 2.
4. Determine if port module 14 cable is plugged into itself, for example, by transmitting the MAC address and a random number out of the interconnecting communication line to check if the signals are received back. If port module 14 is not connected to itself, the port module will display on the LCD an error code that indicates an incorrect switch setting and flash a fault indicator for attention. These alerts will be removed if the problem is corrected.
If the switches are changed during normal selected or backup operation, the port module 14 may continue to operate in the original manner, but may display an error code on the LCD indicating incorrect switch setting and sound, for example, a buzzer, close the relay, notify a configuration tool, and/or flash a red fault indicator for attention. These alerts will be removed if the problem is corrected.
Transmission driver control of the data lines and RS-232 drivers can be accomplished such that a backup port module 15 can take over (e.g., perform control and other operations) from a faulty selected port module 14 and, for example, at the same time prevent a defective stuck backup port module from forcing takeover from a good selected port module. Exemplary control conditions for the transmission line control are shown below in Table 1.
After power comes on, an MPU module 10 may, in at least one configuration, stay in backup mode if there is another selected MPU module. Or, if there is not another MPU module 10 indicated within a few seconds, the MPU module 10 will become the selected MPU module. Otherwise, if both MPU modules power up within a few seconds, then the following steps may occur:
1. If either MPU module 10 has a semaphore set in flash memory indicating that a SEL (select) pushbutton for that MPU module 10 was the last one pushed, then that MPU module 10 will be the active MPU.
2. If neither or both MPU modules 10 have the semaphore set in flash memory indicating the SEL (select) pushbutton for that MPU module 10 was the last one pushed, then the lower port numbered MPU module 10 as determined by a slide switch (not shown) will become the selected one (e.g. active device), and the other MPU module 10 will become the backup one.
The selected request push button switch on a port module 14 may connect to a local MPU module 10 field programmable gate array (FPGA) 78 (shown in
If the FPGA 78 receives the selected takeover request signal the FPGA 78 may immediately and directly enter backup mode. The selected takeover request signal may be indicated by a series of fixed length pulses in some embodiments, and the sending FPGA 78 may be prevented from switching to the selected unit until the other MPU module 10 goes to backup to prevent both driving the data transmitters.
If the watchdog timer and other CPU checking circuitry of the FPGA 78 are not indicating correct CPU operation, in some embodiments, the watchdog timer may reset the CPU and/or prevent selected takeover requests from being relayed to the remote MPU module 10.
Other failsafe operations of “take over circuitry” for data line and RS-232 drivers may include proper operation if the ribbon cable or MPU connectors become unplugged, and/or loop through or passive pull down resistor techniques used to prevent a single active component fault from disabling system.
An exemplary switch over decision matrix is provided below in Table 2.
It should be noted, and as shown below in Table 3, that Loop is S when the unit sends its MAC address and a random sequence number out the Local UART and receives a signal back from the Remote UART line and the Loop is R if a functioning Remote unit is detected; and the loop is Q if nothing is detected on the RCUART_REC signal line.
The MPU module 10 may be a single manufactured unit that may be used for several functions, thereby greatly reducing the number of items that need to be produced by a manufacturer and stocked by a distributor, and purchased and kept as spare parts by a user. An exemplary MPU module 10 may be used as a primary selected MPU module 10 operatively connected to port module 14, or as a backup MPU module 10 operatively connected to port module 14.
If more ports are required, additional MPU modules 10 and port module pairs may be added to the system and connected through an IP Ethernet. Also, the MPU module 10 may be used to control a small video switch integrated into a port module-size unit. An MPU module 10 may also be used as a protocol unit to control other devices in a CCTV system as either a freestanding unit or, for example, four such units on a standard 19-inch rack shelf. An MPU module 10 may also be used as a video digital signal processor (DSP) operatively connected to a CCTV system via IP and providing digital video functions such as codec functions, motion detection, and video loss detection. Video DSP units may also be either a freestanding unit or, for example, four to a standard 19-inch rack shelf.
As a single manufactured item that can be used for several functions, MPU module 10 can greatly reduce the number of items that need to be produced and stocked. This feature is also useful to a user because it reduces the number of spare units and types of modules to purchase. Multiple purpose unit (MPU) 10 for a video matrix switching system, for example, may be configurable in a plurality of ways, including any combination of one or more of the following: a primary selected MPU for a port module, a backup MPU for a port module, an additional MPU for an additional port module for a video matrix switching system already having at least one MPU and a port module, as a controller of a video switch, as a protocol unit to control other devices in the video matrix switching system, and/or as a video DSP to provide digital video functions, among others.
In an exemplary configuration, the connection between the port module 14 (or a small video switch unit) and the MPU module 10 is on a side of the MPU module 10 that allows both the front and back of the MPU module 10 to be available for connectors, switches, display panel, LED indicators, etc. Also, the side connection provides an aesthetic enclosure and is out of the way when used free standing or four on a shelf.
A heart beat state machine can be provided in some embodiments of the present invention. For example, a state machine can be used to provide the hot swap active standby feature. Dependent upon hardware signal inputs and the information received from the heartbeat messaging protocol, the state machine can determine which of two connected port modules should be the selected device and switch the status of the port modules 14 when needed.
A heart beat message protocol can be provided in exemplary configurations of the present invention in different manners. For example, a fixed-size binary formatted messaging packet can be transmitted between two devices to maintain heart beat status and to transmit information to determine whether a remote device is properly running. The message packet can contain information that can be used as an input for the heart beat state machine. The messaging protocol can be used to inform a remote unit when to switch from a selected unit to a backup unit. The messaging protocol can include a sequence and acknowledgement handshake and timing characteristics that are used to determine the state of the remote device.
Also, in some embodiments, the communication interface may share memory layout and interface methods. For example, DSP and network I/O system (NIOS) processors may communicate using a shared-memory model that provides a shared memory structure layout design. This layout design may include activity registers that indicate transmission or reception activity for all interface ports (e.g., communication ports and data ports) serviced by the NIOS processor. The layout may include port configuration data, pointers to allocated FIFO buffers, status information for the ports and an area for LCD display data and status. A polling method may be used to share data and may use registers that indicate recent activity. Data from a FIFO may be obtained using a push-pull interface that allows both DSP and NIOS processors to access the data without pointer corruption.
A software watchdog module may be used by the MPU module 10 to present an interface that allows tasks to register at run-time when the tasks indicate that they are to be monitored. The monitored tasks may specify the software watchdog timeout period and may select the action to take on a timeout. The software watchdog module may handle the hardware watchdog and monitor the registered tasks, taking appropriate actions when registered tasks timeout. Supported actions may include logging the condition of a task, stopping and restarting the task, resetting a device, among others.
A fault logging module may be provided to present an interface that allows other software modules to declare faults, specify fault severity level, provides a set of fault data, among others. Based upon the severity level, the fault may be ignored, displayed, transmitted to other devices, logged as a fault report in flash memory and/or cause a device reset. The level at which each of the actions is taken may be run-time configurable in some embodiments.
Software faults may be logged into a flash memory using a fixed size binary formatted 128-byte report packet that contains time and count data as well as the fault information. The reports can be logged in a circular buffer using the flash memory area reserved for the logs.
In some embodiments of the present invention, the number of concurrently usable ports can be more than doubled in a enclosure that is half the size of a combination of conventional hot switches and with two CPU units. Furthermore, the MPU module 10 may be used for many subsystem components in a CCTV system. Thus, easy swap out of an active electronics processor module can be performed without disconnecting a multitude of port connecting cables.
Also, in some embodiments of the present invention, the system monitoring and fault logging module provides a failure resistant redundant system.
Modifications to the various embodiments are contemplated. For example, a LCD front panel may be provided on the MPU modules 10, in which LED indicators provide status information to monitor operation directly from the MPU modules 10. An IP Ethernet may be connected to a PC with software for configuration and status monitoring, and another PC program may be used to log system activity. IP connected PC based programs can thus provide an additional level of system monitoring.
The use of the MPU module 10 to control a small video switch is also possible in some embodiments, as is the use of an MPU module 10 and port module 14 pairs to provide more ports through an IP Ethernet.
Many modules and features of various embodiments of the present invention are optional and can be omitted. For example, CCTV systems can be custom built in a size and with features required by a specific user application as determined by, for example, design application engineers. Further, embodiments of the present invention can be provided as pre-configured systems or as components though direct, indirect, dealer, and distributor sales channels.
While the invention has been described in terms of various specific embodiments, those skilled in the art will recognize that the invention can be practiced with modification within the spirit and scope of the claims.