WO2015103676A1 - An interface device, server processing system, method, processing system, mobile communication device and computer program - Google Patents

An interface device, server processing system, method, processing system, mobile communication device and computer program Download PDF

Info

Publication number
WO2015103676A1
WO2015103676A1 PCT/AU2015/050010 AU2015050010W WO2015103676A1 WO 2015103676 A1 WO2015103676 A1 WO 2015103676A1 AU 2015050010 W AU2015050010 W AU 2015050010W WO 2015103676 A1 WO2015103676 A1 WO 2015103676A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
processing system
interface
configuration file
server processing
Prior art date
Application number
PCT/AU2015/050010
Other languages
French (fr)
Inventor
Jeffery GUAN
Original Assignee
Guan Jeffery
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from AU2014900093A external-priority patent/AU2014900093A0/en
Application filed by Guan Jeffery filed Critical Guan Jeffery
Publication of WO2015103676A1 publication Critical patent/WO2015103676A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/177Initialisation or configuration control

Definitions

  • the present invention relates to an interface device, server processing system, method, processing system, mobile communication device, and computer program for enabling a first device to interface with a second device.
  • the presen invention seeks to overcome the deficiencies of the prior art in providing an interface device to enable a first device to interfac with a second device.
  • the present invention also seeks to provide a processing system to enable an interface device to be configured such that a first device can be thereby interfaced with a second device.
  • a server processing system for generating a configuration file for configuring an interface device to enable a first device to interface with a second device, wherein the server processing system is configured to;
  • the server processing system generates the configuration file using the first device type data, the second device type data, and the d ta manipulation data.
  • the first device type data, the second device type data and the data manipulation data are received via processing system, and wherein the server processing system transfers the configuration file to the processing system which facilitates in the loading of the configuration file to the .interface device.
  • the server processing system has access to a repository including a plurality of device drivers IP cores, wherein the server processing system is configured to retrieve one or more of the device drivers/IP cores for generating the configuration file.
  • the server processing system utilises a digital rights management system for controlling use of one or more of the device drivers/IP cores in the repository for generating the configuration file.
  • the first device type data is indicative of a selected first device type from a plurality of first device types available i the repository, wherein the server processing system retrieves, from the plurality of device drivers/IP cores in the repository, an input interface core corresponding to the first device type for generating the configuration file
  • the second device type data is indicative of a selected second device type from a plurality of second device types available in the repository, wherein the server processing system retrieves, from the plurality of device drivers/IP cores in the repository, an output interface core corresponding to the second device type for generating the configuration file.
  • the data manipulation data is indicative of a selected data manipulation from a plurality of data manipulations available in the repository, wherein the server processing system retrieves, from the plurality of device drivers IP cores in the repository, a data manipulation core corresponding to the data manipulation required for generating the configuration file.
  • the data manipulation data is indicative of code for performing the data manipulation, wherein the server processing system uses the code for generating the configuration file.
  • the server processing system uses the code for generating an executable file, wherein the configuration file and executable file are loaded to the interface device to enable the first device to interface with the second device.
  • a method for generating a configuration file for configuring an interface device to enable a first device to interface with a second device includes, in a server processing system, steps of:
  • receiving second device type data indicative of a second device type receiving data manipulation data indicative of data manipulation t be per formed to first dat received from the first device to generate second data for transfer to the second device;
  • the method includes the server processing system generating the configuration file using the first device, type data, the second device type data, and the data manipulation data.
  • method includes the server processing system receiving the first, device type data, the second device type data and the data manipulation data from a processing system, and wherein the method includes the server processing system transferring the configuratio file to the processing s stem which facilitates in the loading of the configuration file to the interface device.
  • the server processing system has access to a repository including a plurality of device drivers/IP cores, wherein the method includes the server processing system retrieving, one or more of the device drivers/IP cores for generating the configuration file.
  • the method includes the server processing system utilising a digital rights management system for controlling use of one or more of the device derivers/lP cores in the repository for generating the configuration file,
  • the first device type data is indicative of a selected first device type from a. plurality of first device types available in the repository, wherein the method includes the server processing system retrieving, from the plurality of device drivers/IP core in the repository, an input interface core corresponding to the first device type for generating the configuration file.
  • the second device type data is indicative f a selected second device type from a plurality of second device types available in the repository, wherein the method includes the server processing system retrieving, from the plurality of device drivers/IP cores in the repository, an output interface core corresponding to the second device type for generating the configuration file.
  • the dat manipulation data is indicative of a selected data manipulation from a plurality of data manipulations available in the core repository, wherein the method includes the server processing system retrieving, from the plurality of IP cores in the repository, a data manipulation core corresponding to the data manipulation required for generating the configuration file.
  • the data manipulation data is indicative of code for performin the data manipulation, wherein the method includes the server processing system using the code for generating the configuratio file.
  • the method includes the server processing system using the code for generating an executable file, wherein the configuration file and executable file are loaded to the interface device to enable the first device to interface with the second device.
  • a computer program stored on a computer readable medium, the compute program including executable instructions which configure a server processing system to perform the method of the second aspect,
  • a processing system for interacting with a server processing system for requestin a configuration file for configuring an interface device, wherei the processing system is configured to;
  • first device type data indicative of a first device type
  • second device type data indicative of a second device type
  • the server processing system receives, from the server processing system, a configuration file for configuring the interface device, wherein the configuratio file is generated based upon the first device type data, the second device type data, and die data manipulation data;
  • the processing system is a mobile communication device operable to execute a mobile application for transferring the first device type data, the second device type data and the data manipulation data to the server processing system.
  • the first device type data is indicative of a selected first device type from plurality of first device types for use by the serve processing system to determine an input interface core for generating the configuration file.
  • the second device type data is indicative of a selected second device type from a plurality of second device types for use by the server processing system to determine an output interface core for generating the configuration file.
  • the data manipulatio data is indicative of a selected data ⁇ manipulation from a plurality of data manipulations available from the server processing tem for generating the configuration file.
  • the data manipulation data is indicative of code for performing the data manipulation; wherein the code is input via the mobile application, wherein the prograimning code i transferred to the server processing system for generating the configuration file.
  • the processing system provides user identification data to the server processing system for use in a digital rights management system for generating the configuration file.
  • a method for interacting with a server processing system for requesting a configuratio file for configuring an interface device includes, in a processing system, steps of:
  • the processing system is a mobile communic tion device, wherein the method includes the mobile communication device executing a mobile applicatio for transferring the first device type data, the second device type data and the data manipulation data to the server processing system.
  • the mobile communicating device is adapted to wirelessl transfer at least some of said data, such as, but not limited to wirelessly transferring the configuration file to the interface device.
  • the first device type data is indicative of a selected first device type from a plurality of first device types for use by the server processing system to determine an input interface core for generating the configuration file.
  • the second device type data is indicative of a selected second device type from a plurality of second device types for use by the server processing system to determine an output interface core for generating the configuration file.
  • the data manipulation data is indicative of a selected data manipulation from a plurality of data manipulations available from the serve processing system for generating the configuration file.
  • the data manipulation data is indicative of code for performin the data manipulation
  • the method includes inputting the code via the mobile application, wherein the programming code is transferred to the server processing system for generating the configuration file.
  • the method includes the processing system providing user identification data to the server processing system for use in a digital rights management system for generating the configuration file.
  • a computer program stored on a computer readable medium, the computer program including executable instructions which configure a processing system to perform the method of the fifth aspect.
  • an interface device for enabling a first device to interface with a second device, wherein the device includes:
  • a first port for receiving an electrical connection for the first device
  • a second port for receiving an electrical connection for the second device
  • a third port for connecting the interface device to a memory device or processing system
  • a programmable device in electrical, connection with the first port and the second port;
  • a memory for storing a configuration file received from the memory device or processing sy stem via the third port, wherei executio of the configuration file configures the programmable device to enable the first device to intefface with the second device.
  • an interface device for enabling a first device to interface with a second device, wherein the device includes:
  • a switch for selectively operating the interface device in a configuration mode and a interface mode
  • a programmable device in electrical connection with the first port and the second port
  • the programmable device is configurable to perform data manipulation upon first data received from the first device to generate second dat which is transferred to the second device.
  • the interface device includes a processor in electrical connection with the programmable device, wherein the memory stores an executable file for execution by the processor to enable the first device to interface with the second device.
  • the processor is configured, upon execution of the executable file, to perform data manipulation upon the first data received from the first device to generate second data which is transferred to the second device.
  • the first data is in accordance with a first protocol and the second data is in accordance with a second protocol, wherein the first and second protocols are different.
  • the programmable device may include a Field Programmable Gate Array, a System on Chip (SoC) device and/or any other like device which may preferably be programmed by a user (preferably in the field after manufacture of the device) and which may preferabl be provided in an integrated circuit (IC) or like form, integrating the • various components of a computer system into a single chip/embedded form.
  • SoC System on Chip
  • the interface device further includes at least one further por for receiving an electrical connection for a further device which is to be interfaced with said first and second devices, and wherein, said programmable device is provided in electrical, connection with each of said further ports, and wherein execution of the configuration file configures the programmable device to enable each of said devices- to be interfaced together.
  • each said devic port is connected to its respective port either by wired or wireless connection.
  • Figure 1 is a flow chart representing a method of configuring an interface device to enable a first device to interface wit a second device;
  • Figure 2 is an isometric perspective of an example of the interface device
  • Figure 3 is a plan view of the interface device of Figure 2 connected to a first device in the form of a mobile eommunication device and a second device in the form of an ethernet network cable;
  • Figure 4 is a flowchart illustrating a method of configuring the interface device to enable a first device to interface with a second device
  • Figure 5 is a block diagram of an e ample of the interf ce device
  • Figure 6 is an example of a mobile communication device presenting an interlace of a mobile device application for generating a configuration file for configuring the interface device;
  • Figure 7 is an example of first architecture framework of an FPGA of the interface device.
  • Figure 8 is an example of a more detailed architecture framework of an FPGA interfacing with a configuration system; and.
  • Figure 9 is an example of the interface device for coupling to the mobile communication device for configuration, Detailed Description of Embodiments
  • FIG. 2 there is shown a schematic of an example of an interface device 200 to enable a first device 400 (see Figure 4) to interface with a second device 500 (see Figure 4).
  • Figure 6 also provides a functional block diagram of the interface device 200.
  • the interface device 200 includes a first port 21 , a second port 220, at least one third port 230, 235, and a programmable device 620 in electrical connection with the first and second port 210, 220 and a memory 630.
  • the programmable device 620 may, for example, include a Field Programmable Gate Array, as described in the following embodiment, a System on Chip (SoC) device or any other like device which may typically be programmed by a user (preferably in the field after manufacture of the device) and which may preferably be provided in an integrated circuit (IC) or like form, integrating the various components of a computer system into a single chi p form .
  • SoC System on Chip
  • the first port 210 is configured for receiving an. electrical connection for the first device 400.
  • the electrical connection may be an indirect electrical connection via a first daughter board 250 which includes a first . electrical connection 251 which couples to the first device 400 and a second electrical connection 252 which couples to the first port 210 of the Interface device 200.
  • the second port 220 is configured for receiving an electrical connection for the second device 500.
  • the electrical connection may be an indirect electrical connection via a second daughter board 260 which includes a first electrical connection 261 which couples to the second device 500 and a second electrical connection 262 which couples to the second port 220 of the interface device 200.
  • the first and second ports 210, 220 utilise a 19 pin connection to couple with the daughter boards 250, 260 which allow SerDes compatible pins from the FPGA/SoC 620 to interface with the ports 210, 220.
  • Each .third port 230, 235 is configured for enabling data communication of the interface device with a memory device or processing system 240, 300.
  • the interface device 200 includes a removable memory port 230 for receiving a memory device 240 such as a SD card as shown in Figure 2.
  • the interface device 200 also includes a coupling port 235 fo coupling the interface device 200 to a processing system such as a desktop computer, laptop, or a mobile communication device 300, etc.
  • an electrical cable can be coupled between the coupling port 235 of the interface device 200 and the processing system in the form of the mobile communication device 300 to enable an electrical connection between the two devices 200, 300.
  • the FPGA 620 is in electrical connection with the first port 210 and the second port 220 of the interface device 200.
  • the interface device 200 can also include a processor 610 which is in electrical connection with the FPGA 620.
  • connection between the FPGA 620 and the processor 610 is via an 8 bit data line with a clock to send data packets from the FPGA 620 to the processor 610
  • the processor 610 may be provided as part of a microcontroller such as a PIC24, however other types of microcontrollers can be utilised.
  • the memory 630 of the interface device 200 is configured to store a configuration file received from the memory device or processing system 240, 300 via the at least one third port 230, 235, wherein loading of the configuration file configures the FPGA 620 to enable the first device 400 to interface with the second device 500.
  • the interface device 200 also includes or is in electrical connection with a power source 640 which is in electrical connection with the processor 61 and the FPGA 620. Furthermore, the interface device 200 includes a clock 6S0 for the FPGA 620 and the processor 610. In one form, a 100MHz clock is provided for the FPGA 620 and a 20MHz clock for the processor 610,
  • At least one of the processor 610 and the FPGA 620 performs data manipulation upon first, data received from the first device 400 to generate second data which is transferred t the second device 500.
  • This data manipulation may be required due to different protocols being utilised by the first, device 400 and the second device 500.
  • the data manipulation performed by the interface device 200 allows the data arriving in the first protocol to be decoded and then encoded according to the second protocol via the interface device 200.
  • This arrangement advantageously allows fo a first device 400, which generally incompatible to interface with a second device, to interface with the second device 500 via the interface device 200 despite the different protocols that are being utilised by each device 400, 500.
  • a system can also be provided fo obtaining a configuration file for configuring the interface device 200 to enable the first device 400 to interface with the second device 500 via the interface device 200,
  • the system includes a processing system 300 operated by user in data communication with a server proces ing system 525.
  • the method 100 includes the server processing system 525 receiving from the processing system 300 first device type data indicative of a first device type.
  • the method 100 includes the server processing system 525 receivin from the processing system 300 second device type data indicative of a second device type.
  • the method 100 includes the server processing system 525 receiving from the processing system 300 data manipulation data indicative of data manipulation to be performed to first data received from the first deviee 400 to generate second data for transfe to the second device 500.
  • the method 100 includes the server processing, system 525 determining, using the first device type data, the second device type data, and the data manipulation data, a configuration file for configuring the interface device 200,
  • FIG. 5 there is shown a flowchart representing a method of configuring the interface device to enable the first device 400 to interface with the second device 500 via the interface device 200.
  • a user can interact with the server processing system 525 via the processing system 300 to obtain a configuration file for configuring the interface device 200 to enable the first device 400 to interface with the second device 500 via the interface device 200.
  • the processing system 300 operated by the user may be a desktop processing s stem o a mobile communication device such a a smart phone, tablet processing system o similar.
  • the server processing system 525 may host or be associated with a web server and/or an. application server for enabling user interaction with the server, processing system 525 for obtaining the configuration file for configuring the interface device 200.
  • the mobile communication device 300 may execute a mobile device computer application which communicates with the application serve of the server processing system to obtain the configuration file for configuring the interface device.
  • the general processing system may be presented a user interface 505 via an web browser application.
  • User interactio with the server processing system 525 may include the user providing input to utilise an existing project 501 which the user has previously developed. Alternati ely, the user may provid input to create a new project 520.
  • the user can interact with the processing s stem 300 to select an inp t interface 525 indicative of the type of device whic the first deviee 400 is which is intended to be coupled to the first port 210 of the. interface deviee 200. Additionally, the user can interact with the processing system 300 to select an output interface 555 indicative of the type of device which the second device 500 i which is intended to be coupled to the second port 220 of the interface device 200, First and second data i dicative of the first device type and the second device type are transferred from the processin system 300 to the server processing system 525.
  • the server processing system 525 selects an input device drivers/IP core 810 and an output device drivers/IP core 850 from a core/driver repository based upon the first and second dat indicative of the first device type and the second device type, hi particular, the core repository includes a plurality of available IP cores or device drivers whic the user can select to utilise for defining the configuration file used for configuring the interface device 200.
  • the core repository can include a plurality of input IP cores, a plurality of output IP cores and a plurality of data manipulation IP cores.
  • the selected input and output IP cores define the decoding and encoding processes required t enable some form of data manipulation to be performed upon the received data.
  • the user is then required to define the data manipulation to be performed by the interface device 200 t enable the firs device 400 to interface with the second device 500. This can be done in a number of .manners.
  • the user is able to select a pre-buiit data manipulation core 540 that is stored in the core repository of the server processing system 525.
  • the data manipulation core is also referred to as a 'pa load'.
  • the server processing system 525 utilises a digital rights management system fo controlling use of prebuilt IP cores stored in the core repository.
  • the user generally is required- t provide user identification data (e.g.
  • the server processing system 525 can provide access to one of the pre-built IP core or device driver based on a previous purchase by the user or the server processing system 5:25 enable the user to purchase rights to one or more of the pre -built IP cores available. It will be appreciated that one or more of the IP cores stored in the core repository may be freel accessible and thus the digital rights management system ca enable fre use of the particular IP cores for users.
  • the digital rights management system may also control user access to input and output IP cams.
  • a project builder 560 of the server processing system 525 uses the input IP core 810, the output IP core 850 and the data manipulation core 540 to generate the configuration file 910.
  • the project builder 560 generates the configuration file 910 in response to user interaction with the interface of presented at the processing system 300, wherein a build command is transferred to the server processing system 525 to initiate the generation of the configuration file 10.
  • the project builder performs a compilation process to generate the configuration file 910.
  • build indication data 710 can be transferred- back, to the processing system 300 indicating the progress of the generation of the configuration file 910.
  • the user may wish to define a. custom data manipulation core 545,
  • the user can input code via the processing system which is transferred to the server processin system for defining a custom data manipulation core 545.
  • the user can provide code to define the creation of a custom core VHDL using RTL code or using a soft or hard processor and writing sequential code using, a programming language such as a C-variant programming language, wherein the programming code is complied and the executable file executed by the processor 610 of the interface device 200.
  • a programming language such as a C-variant programming language
  • Manipulation of the FPGA 620 can be implemented via VHDL which can therefore produce very dedicated and fast payload.
  • soft/hard processor can be defined easil by most software developers.
  • the project builder 560 of the server processing system 525 utilises the custom data manipulation core 545, 550, and the selected input and output IP cores 525, 555 to generate the configuration file 910 as discussed above.
  • the dynamic compilation performed by project builder 560 of the server processing system 525 produces the configuration file and optionally an ELF file if a C -pa load ' is selected for the user's desired setting,
  • the project builder 560 facilitates the following process
  • the project may be a Xiliiix project, however other types of projects can be utilised,
  • the project builder 560 facilitates the following dynamic compilation process:
  • the server processing syste is configured to facilitate the following dynamic compilation process:
  • the user may select from one of a plurality of predefined projects which are stored in a project repository which is accessible by the server processing system 525.
  • the user is able to use the processing system 300 to browse through the existing projects to select one for use in configuring their respective interface device 200.
  • the user can provide search criteria such as input and output, device types as input where in response the server processing system 525 conducts a search and presents search results indicative of projects which at least partially or fully satisfy the searc criteria.
  • At least some or each existing project can be pre-built by the project builder module 560 of the server processing system 525, thus the server processing system 525 can obtain access to a pre-built configuration file 10 for provision the user for configuring their respective interface device 200.
  • Access to an predefined project can be controlled via the digital rights management system as described above.
  • a user ma be required to purchase rights to a predefined project from a virtual payload shop 515, wherein the purchase of rights are recorded by the server processing system 525 for the user.
  • the configuration file 910 optionally the ELF file (if required) and a second configuration file can then be transferred from the server processing system to the- rocessing system 300 via the one or more networks.
  • the transfer can be performed using a USB transfer class which can be either MTP (Media Transfer Protocol) or UMS (Universal Mass Storage),
  • the user may transfer the configuration file 910 received from the serve processing system 525 to a removable storage device 240 such as an SD card, USB storage device, a portable hard drive or the like.
  • the removable storage device 240 can then be placed in data communication with one of the third ports 230 of the interface device 200 for boot loading to configure the interface device 200.
  • the general processing system can be directly coupled to the interface device 200 such that the configuration file Is transferred directly from the processing system to the interface device 200.
  • the user can couple the mobile processing system 300 with the interface device 200 via one of the third ports 235- -wherein as shown in Figure 7 the user can interact with the interface of the application 740 to transfer the configuration file 10 from the mobile processing system 300 to the memory 630 of the interface device 200.
  • the user can select the interface element 720 of the application interface 740 in order to -initiate the transfer of the configuration file 910.
  • the interface device 200 can include a light emitting diode (LED) which can flash when the transfer has been performed successfully.
  • the boot loading process by the microcontroller 610 of the interface device 200 initially enumerates the connected device 240, 300 with the configuration file 910 to a UMS class. Then the configuration file 910 is extracted and the dat is transferred through a JTAG connection to the FPGA 620 program lines.
  • the microcontroller can then check a configuration file stored on the connected device 240, 300 fo several key parameters such as- whether a C-payload is to be loaded or not. If a C-payload is required, then the microcontroller 610 loads a ELF file, stored in the connected device 240, 300 to a text portion of the usable memory of the interface device 200. The microcontroller 610 finally jumps to the text portion of the usable memory and starts the C-payload.
  • the microcontroller 610 can allow for USB Host connection t a UMS clas device and facilitate JTAG bit loading to the FPGA 620. Once it has completed the bit loading stage, the interface device 200 can be used for processing and loading C -variant payloads.
  • the first device 400 can be coupled to the first port 210 of the interface device 200 via the first daughter board 250 and the second device 500 can be coupled to the second port 220 of the interface device 200 via the second daughter board 260 such that data output by the first device 400 can undergo decoding, .manipulation and encoding by the interface device 200 to be output to the second device 500 such that (he first device 400 interfaces with the second device 500 via the interface device 200.
  • the FPGA 620 internal architecture is shown i Figures 8 and 9. The compiler used by the server processing system produces this structure although the FIFO 820, 840 can be skipped to allow for faster processing system transfers which is referred to as "stream mode".
  • the design of the FPGA 620 architecture for the interface device 200 includes three sections, namely an interface section 810. 850, buffer section 820, 840 and a payload section 830,
  • the interface section 81.0, 850 enables different interface protocols to decode the received data packets and/or to encode tile sent data packets from the payload section.
  • the buffer section 820, 840 allows for different interface cores to interact uniformly to the payload, as it can be dynamically compiled to be compatible with different bus standards (i.e. LoealBus, ACL PLB, Wishbone, etc) which allows for external IP cores to be used.
  • a user can optionall select to share the created project via selecting the share interface element 730 of the interface 740.
  • the server processing system 525 stores project dat in the repository, wherein the digital rights management system can control access to the project data by other users.
  • the configured interface device 200 can be utilised for many applications.
  • the interface device 200 can be configured to enable a mobile communication device 400 to interface with an Ethernet device 500 as shown in Figure 4, thereby enabling fast network access which thereby allows for fast cloud access for mobile devices 400 (easy backups and allows for new concepts s ch as "mobile office").
  • a non-wireless device could be used wi h the interface device 200 to operate in a wireless manner.
  • a wireless module could be coupled to the first port 210 of the interface device 200 and one or more speakers could be connected to the second port 220 of the interface device 200.
  • audio data could be wireless received by the speakers via. the interface device 200,
  • the interface device 200 can also be utilised for co -processing or pre-processing.
  • the FPGA 620 can be used to address parallel processing problems. For example, it is known that gesture recognition ca be performed poorly by certain mobile applications. Due to the parallel nature of image/video processing, filters can be applied easily on a parallel processing form.
  • an external camera can be mounted on the mobile communication device. The external camer can provide images video to the interface device 200,, wherein the interface device 200 can apply filters and send the processed data to the connected mobile communication device. This allows for greater frame rates and better qualit data.
  • the interface device 200 can optionally be configured through the..first port 2.1 . I this arrangement, the interface device 200 does not require an additional port for coupling the interface device 210 to a memory device 300,
  • the interface device 200 includes a switch which when actuated operates the interface in a configuration mode, wherein data received via the first port 210 from the memory device 300 coupled to the first port 2:10 i used to configure the FPGA 620.
  • Hie switch can be actuated again to return the interface device to operating in an interface mode as discussed above
  • Optional embodiments of the present invention may also be said to broadly consist in the parts, elements and features referred to or indicated herein, individually or collectively, in any or all combinations of two or more of the parts, elements or features, and wherein specific integers are mentioned herein which have known equivalents in the art to which the invention relates, such known equivalents are deemed to be incorporated herein as if individually set forth.

Abstract

An interface device (200) to interface a first device (400) to a second device (500). The interface device includes a first part (200) and a second part (220). The interface device (200) further includes a third part (230) to which a memory or processor is connected. In use, the processor is configured to receive first device type data, second device type data, to thereby determine a configuration file for configuring the interface device (400) such that the first device (400) can be interfaced to the second device (500).

Description

AN INTERFACE DEVICE, SERVER PROCESSING SYSTEM, METHOD, PROCESSING SYSTEM, MOBILE COMMUNICATION DEVICE AND
COMPUTER PROGRAM Field, of Invention
The present invention relates to an interface device, server processing system, method, processing system, mobile communication device, and computer program for enabling a first device to interface with a second device. Background of the Invention
The reference in this specification to any prior publication (or information derived from it), or to any matter which, is known, is not, and should not be taken as, an acknowledgement or admission or any form of suggestion that prior publication (or information derived from it) or known matter forms par of the common general knowledge in the field of endeavour to which this specification relates.
More aid more devices are becoming computerised. However, it is a common problem that one device may not be able to interface with another component due t different protocols or other technological barriers. For example, two device may transfer or receive dat using different protocols. In order to progress toward a pervasive computing environment, there is a need to enable devices that cannot typically communicate, to be able to communicate together.
The presen invention seeks to overcome the deficiencies of the prior art in providing an interface device to enable a first device to interfac with a second device.
The present invention also seeks to provide a processing system to enable an interface device to be configured such that a first device can be thereby interfaced with a second device. Summary of Invention
Irt first aspect there is provided a server processing system for generating a configuration file for configuring an interface device to enable a first device to interface with a second device, wherein the server processing system is configured to;
receive first device type data indicative of a first device type;
receive second device type data indicative of a second device type;
receive data manipulation data indicative of data manipulation to be performed to first dat received from the first device to generate second data for transfer to the second device; and
determine, using the first device type data, the second device type data, and the data manipulation data, configuration file for configuring the interface device.
In certain embodiments, the server processing system generates the configuration file using the first device type data, the second device type data, and the d ta manipulation data.
In certain embodiments, the first device type data, the second device type data and the data manipulation data are received via processing system, and wherein the server processing system transfers the configuration file to the processing system which facilitates in the loading of the configuration file to the .interface device.
In certain embodiments, the server processing system has access to a repository including a plurality of device drivers IP cores, wherein the server processing system is configured to retrieve one or more of the device drivers/IP cores for generating the configuration file. In certain embodiments, the server processing system utilises a digital rights management system for controlling use of one or more of the device drivers/IP cores in the repository for generating the configuration file.
In certain embodiments, the first device type data is indicative of a selected first device type from a plurality of first device types available i the repository, wherein the server processing system retrieves, from the plurality of device drivers/IP cores in the repository, an input interface core corresponding to the first device type for generating the configuration file, In certain embodiments, the second device type data is indicative of a selected second device type from a plurality of second device types available in the repository, wherein the server processing system retrieves, from the plurality of device drivers/IP cores in the repository, an output interface core corresponding to the second device type for generating the configuration file.
In certain embodiments, the data manipulation data is indicative of a selected data manipulation from a plurality of data manipulations available in the repository, wherein the server processing system retrieves, from the plurality of device drivers IP cores in the repository, a data manipulation core corresponding to the data manipulation required for generating the configuration file.
In certain embodiments, the data manipulation data is indicative of code for performing the data manipulation, wherein the server processing system uses the code for generating the configuration file.
In certain embodiments, the server processing system uses the code for generating an executable file, wherein the configuration file and executable file are loaded to the interface device to enable the first device to interface with the second device. In a second aspect there is provided a method for generating a configuration file for configuring an interface device to enable a first device to interface with a second device, wherein the method includes, in a server processing system, steps of:
receiving first device type data indicative of a first device type;
receiving second device type data indicative of a second device type; receiving data manipulation data indicative of data manipulation t be per formed to first dat received from the first device to generate second data for transfer to the second device; and
generating, using the first device type data, the second device type data,, and the data manipulation data, a configuration file for configuring the interface device.
In certain embodiments, the method includes the server processing system generating the configuration file using the first device, type data, the second device type data, and the data manipulation data.
In certain embodiments, method includes the server processing system receiving the first, device type data, the second device type data and the data manipulation data from a processing system, and wherein the method includes the server processing system transferring the configuratio file to the processing s stem which facilitates in the loading of the configuration file to the interface device. m certain embodiments, the server processing system has access to a repository including a plurality of device drivers/IP cores, wherein the method includes the server processing system retrieving, one or more of the device drivers/IP cores for generating the configuration file.
In certain embodiments, the method includes the server processing system utilising a digital rights management system for controlling use of one or more of the device derivers/lP cores in the repository for generating the configuration file,
In certain embodiments, the first device type data is indicative of a selected first device type from a. plurality of first device types available in the repository, wherein the method includes the server processing system retrieving, from the plurality of device drivers/IP core in the repository, an input interface core corresponding to the first device type for generating the configuration file. Itt certain embodiments, the second device type data is indicative f a selected second device type from a plurality of second device types available in the repository, wherein the method includes the server processing system retrieving, from the plurality of device drivers/IP cores in the repository, an output interface core corresponding to the second device type for generating the configuration file.
In certain embodiments, the dat manipulation data is indicative of a selected data manipulation from a plurality of data manipulations available in the core repository, wherein the method includes the server processing system retrieving, from the plurality of IP cores in the repository, a data manipulation core corresponding to the data manipulation required for generating the configuration file.
In certain embodiments, the data manipulation data is indicative of code for performin the data manipulation, wherein the method includes the server processing system using the code for generating the configuratio file.
In certain embodiments, the method includes the server processing system using the code for generating an executable file, wherein the configuration file and executable file are loaded to the interface device to enable the first device to interface with the second device.
In a third aspect there is provided a computer program stored on a computer readable medium, the compute program including executable instructions which configure a server processing system to perform the method of the second aspect,
In a fourth aspect there is provided a processing system for interacting with a server processing system for requestin a configuration file for configuring an interface device, wherei the processing system is configured to;
transfer, to the server processing system, first device type data indicative of a first device type; transfer, to the server processing system, second device type data indicative of a second device type;
transfer,- to the serve processing system, data manipulation data indicative of data manipulation to he performed to first data received from the first device to generate second data for transfer to the second device; and
receive, from the server processing system, a configuration file for configuring the interface device, wherein the configuratio file is generated based upon the first device type data, the second device type data, and die data manipulation data;
transfer the configuration file to memory of the interface device, wherein loading of the configuration file configures the interface device to enable a first device connected to the interface device to interface with a second device connected to the interface device.
In certain embodiments, the processing system is a mobile communication device operable to execute a mobile application for transferring the first device type data, the second device type data and the data manipulation data to the server processing system. in certain embodiments, the first device type data is indicative of a selected first device type from plurality of first device types for use by the serve processing system to determine an input interface core for generating the configuration file.
In certain embodiments, the second device type data is indicative of a selected second device type from a plurality of second device types for use by the server processing system to determine an output interface core for generating the configuration file. In certain embodiments, the data manipulatio data is indicative of a selected data manipulation from a plurality of data manipulations available from the server processing tem for generating the configuration file.
In certain embodiments, the data manipulation data is indicative of code for performing the data manipulation; wherein the code is input via the mobile application, wherein the prograimning code i transferred to the server processing system for generating the configuration file.
In certain embodiments, the processing system provides user identification data to the server processing system for use in a digital rights management system for generating the configuration file.
In a fifth aspect there is provided a method for interacting with a server processing system for requesting a configuratio file for configuring an interface device, wherein method includes, in a processing system, steps of:
transferring, to the server processing system, first device type data indicative of a first device type;
transferring, to the server processing system, second device type data indicative of a second device type;
transferring, to the server processing system, data manipulation data indicative of data manipulation to be performed to first data received from the first device to generate second data for transfer t the second de vice; and
receiving, from the server processing system, a configuration file for configuring the interface device, wherein the configuration file is generated based upon the first device type data, the second device type data, and the data manipulation data;
transferring the configuratio file to memory of the interface device, wherein loading of the configuration file configures the interface device to enable a first device connected to the interface device to interface with a second device connected to the interface device.
In certain embodiments, the processing system is a mobile communic tion device, wherein the method includes the mobile communication device executing a mobile applicatio for transferring the first device type data, the second device type data and the data manipulation data to the server processing system. In certain embodiments, the mobile communicating device is adapted to wirelessl transfer at least some of said data, such as, but not limited to wirelessly transferring the configuration file to the interface device. In certain embodiments, the first device type data is indicative of a selected first device type from a plurality of first device types for use by the server processing system to determine an input interface core for generating the configuration file.
In certain embodiments, the second device type data is indicative of a selected second device type from a plurality of second device types for use by the server processing system to determine an output interface core for generating the configuration file.
In certain embodiments, the data manipulation data is indicative of a selected data manipulation from a plurality of data manipulations available from the serve processing system for generating the configuration file.
In certain embodiments, the data manipulation data is indicative of code for performin the data manipulation, wherein the method includes inputting the code via the mobile application, wherein the programming code is transferred to the server processing system for generating the configuration file.
In certain embodiments, the method includes the processing system providing user identification data to the server processing system for use in a digital rights management system for generating the configuration file.
In a sixth aspect there is provided a computer program stored on a computer readable medium, the computer program including executable instructions which configure a processing system to perform the method of the fifth aspect. In a seventh aspect there is provided an interface device for enabling a first device to interface with a second device, wherein the device includes:
a first port for receiving an electrical connection for the first device;
a second port for receiving an electrical connection for the second device;
a third port for connecting the interface device to a memory device or processing system;
a programmable device in electrical, connection with the first port and the second port;
a memory for storing a configuration file received from the memory device or processing sy stem via the third port, wherei executio of the configuration file configures the programmable device to enable the first device to intefface with the second device.
In an. eighth aspect there is provided an interface device for enabling a first device to interface with a second device, wherein the device includes:
a first port:
for receiving an electrical connection for the first device* and for connecting the interface device to a memory device or processing system;
a second port for receivin an electrical connection for the second device;
a switch for selectively operating the interface device in a configuration mode and a interface mode; and
a programmable device in electrical connection with the first port and the second port;
a memory for storing a configuration file received from the memory device or processing system via the first port when the interface device is operating in the configuration mode, wherein execution of the configuration file configures the programmable device to enable the first device to interface with the second device when the interface device operates in the interface mode. In certai embodiments, the programmable device is configurable to perform data manipulation upon first data received from the first device to generate second dat which is transferred to the second device. In certain embodiments, the interface device includes a processor in electrical connection with the programmable device, wherein the memory stores an executable file for execution by the processor to enable the first device to interface with the second device.
In certain embodiments, the processor is configured, upon execution of the executable file, to perform data manipulation upon the first data received from the first device to generate second data which is transferred to the second device.
In certain embodiments, the first data is in accordance with a first protocol and the second data is in accordance with a second protocol, wherein the first and second protocols are different. in certain embodiments, the programmable device may include a Field Programmable Gate Array, a System on Chip (SoC) device and/or any other like device which may preferably be programmed by a user (preferably in the field after manufacture of the device) and which may preferabl be provided in an integrated circuit (IC) or like form, integrating the various components of a computer system into a single chip/embedded form.
In certain embodiments, the interface device further includes at least one further por for receiving an electrical connection for a further device which is to be interfaced with said first and second devices, and wherein, said programmable device is provided in electrical, connection with each of said further ports, and wherein execution of the configuration file configures the programmable device to enable each of said devices- to be interfaced together. In certain embodiments, each said devic port is connected to its respective port either by wired or wireless connection. Brief Description of the Figures
Example embodiments should become apparent from the following description, which is given by way of example only, of at least one preferred but non-limiting embodiment, described in connection with the accompanying figures.
Figure 1 is a flow chart representing a method of configuring an interface device to enable a first device to interface wit a second device;
Figure 2 is an isometric perspective of an example of the interface device;
Figure 3 is a plan view of the interface device of Figure 2 connected to a first device in the form of a mobile eommunication device and a second device in the form of an ethernet network cable;
Figure 4 is a flowchart illustrating a method of configuring the interface device to enable a first device to interface with a second device; Figure 5 is a block diagram of an e ample of the interf ce device;
Figure 6 is an example of a mobile communication device presenting an interlace of a mobile device application for generating a configuration file for configuring the interface device;
Figure 7 is an example of first architecture framework of an FPGA of the interface device; and
Figure 8 is an example of a more detailed architecture framework of an FPGA interfacing with a configuration system; and. Figure 9 is an example of the interface device for coupling to the mobile communication device for configuration, Detailed Description of Embodiments
The following modes, given by way of example only, are described in order to provide a more precise understanding of the subject matter of a preferred embodiment o .embodiments, In the figures, incorporated to illustrate features of an example embodiment, like reference numerals are used to identify like part throughout the figures.
Referring to Figure 2 there is shown a schematic of an example of an interface device 200 to enable a first device 400 (see Figure 4) to interface with a second device 500 (see Figure 4). Figure 6 also provides a functional block diagram of the interface device 200. In particular, the interface device 200 includes a first port 21 , a second port 220, at least one third port 230, 235, and a programmable device 620 in electrical connection with the first and second port 210, 220 and a memory 630. The programmable device 620 may, for example, include a Field Programmable Gate Array, as described in the following embodiment, a System on Chip (SoC) device or any other like device which may typically be programmed by a user (preferably in the field after manufacture of the device) and which may preferably be provided in an integrated circuit (IC) or like form, integrating the various components of a computer system into a single chi p form .
More specifically, the first port 210 is configured for receiving an. electrical connection for the first device 400. The electrical connection may be an indirect electrical connection via a first daughter board 250 which includes a first . electrical connection 251 which couples to the first device 400 and a second electrical connection 252 which couples to the first port 210 of the Interface device 200. The second port 220 is configured for receiving an electrical connection for the second device 500. Similarly to the first port 210, the electrical connection may be an indirect electrical connection via a second daughter board 260 which includes a first electrical connection 261 which couples to the second device 500 and a second electrical connection 262 which couples to the second port 220 of the interface device 200. In one farm, the first and second ports 210, 220 utilise a 19 pin connection to couple with the daughter boards 250, 260 which allow SerDes compatible pins from the FPGA/SoC 620 to interface with the ports 210, 220. Each .third port 230, 235 is configured for enabling data communication of the interface device with a memory device or processing system 240, 300. More specifically, the interface device 200 includes a removable memory port 230 for receiving a memory device 240 such as a SD card as shown in Figure 2. As shown in Figure 3,. the interface device 200 also includes a coupling port 235 fo coupling the interface device 200 to a processing system such as a desktop computer, laptop, or a mobile communication device 300, etc. As shown in Figure 3, an electrical cable can be coupled between the coupling port 235 of the interface device 200 and the processing system in the form of the mobile communication device 300 to enable an electrical connection between the two devices 200, 300. Referring more specifically t Figure 6, the FPGA 620 is in electrical connection with the first port 210 and the second port 220 of the interface device 200. The interface device 200 can also include a processor 610 which is in electrical connection with the FPGA 620. In one form, the connection between the FPGA 620 and the processor 610 is via an 8 bit data line with a clock to send data packets from the FPGA 620 to the processor 610, As show in Figure 6, the processor 610 may be provided as part of a microcontroller such as a PIC24, however other types of microcontrollers can be utilised. The memory 630 of the interface device 200 is configured to store a configuration file received from the memory device or processing system 240, 300 via the at least one third port 230, 235, wherein loading of the configuration file configures the FPGA 620 to enable the first device 400 to interface with the second device 500. As shown in Figure 6, the interface device 200 also includes or is in electrical connection with a power source 640 which is in electrical connection with the processor 61 and the FPGA 620. Furthermore, the interface device 200 includes a clock 6S0 for the FPGA 620 and the processor 610. In one form, a 100MHz clock is provided for the FPGA 620 and a 20MHz clock for the processor 610,
At least one of the processor 610 and the FPGA 620 performs data manipulation upon first, data received from the first device 400 to generate second data which is transferred t the second device 500. This data manipulation may be required due to different protocols being utilised by the first, device 400 and the second device 500. Thus, the data manipulation performed by the interface device 200 allows the data arriving in the first protocol to be decoded and then encoded according to the second protocol via the interface device 200. This arrangement advantageously allows fo a first device 400, which generally incompatible to interface with a second device, to interface with the second device 500 via the interface device 200 despite the different protocols that are being utilised by each device 400, 500.
A system can also be provided fo obtaining a configuration file for configuring the interface device 200 to enable the first device 400 to interface with the second device 500 via the interface device 200, In particular, the system includes a processing system 300 operated by user in data communication with a server proces ing system 525.
Referring to Figure 1 there is shown a flowchart representing a method of configuring the interface device 200 to enable the first device 400 to interface with a second device 500. In particular, at step 110, the method 100 includes the server processing system 525 receiving from the processing system 300 first device type data indicative of a first device type. At step 120, the method 100 includes the server processing system 525 receivin from the processing system 300 second device type data indicative of a second device type. At step 130, the method 100 includes the server processing system 525 receiving from the processing system 300 data manipulation data indicative of data manipulation to be performed to first data received from the first deviee 400 to generate second data for transfe to the second device 500. At step 140, the method 100 includes the server processing, system 525 determining, using the first device type data, the second device type data, and the data manipulation data, a configuration file for configuring the interface device 200,
Referring to Figure 5 there is shown a flowchart representing a method of configuring the interface device to enable the first device 400 to interface with the second device 500 via the interface device 200. In particular, a user can interact with the server processing system 525 via the processing system 300 to obtain a configuration file for configuring the interface device 200 to enable the first device 400 to interface with the second device 500 via the interface device 200. The processing system 300 operated by the user may be a desktop processing s stem o a mobile communication device such a a smart phone, tablet processing system o similar. The server processing system 525 may host or be associated with a web server and/or an. application server for enabling user interaction with the server, processing system 525 for obtaining the configuration file for configuring the interface device 200. The mobile communication device 300 may execute a mobile device computer application which communicates with the application serve of the server processing system to obtain the configuration file for configuring the interface device. The general processing system may be presented a user interface 505 via an web browser application.
User interactio with the server processing system 525 may include the user providing input to utilise an existing project 501 which the user has previously developed. Alternati ely, the user may provid input to create a new project 520.
In the event that the user creates a new project, the user can interact with the processing s stem 300 to select an inp t interface 525 indicative of the type of device whic the first deviee 400 is which is intended to be coupled to the first port 210 of the. interface deviee 200. Additionally, the user can interact with the processing system 300 to select an output interface 555 indicative of the type of device which the second device 500 i which is intended to be coupled to the second port 220 of the interface device 200, First and second data i dicative of the first device type and the second device type are transferred from the processin system 300 to the server processing system 525.
The server processing system 525 selects an input device drivers/IP core 810 and an output device drivers/IP core 850 from a core/driver repository based upon the first and second dat indicative of the first device type and the second device type, hi particular, the core repository includes a plurality of available IP cores or device drivers whic the user can select to utilise for defining the configuration file used for configuring the interface device 200. In particular, the core repository can include a plurality of input IP cores, a plurality of output IP cores and a plurality of data manipulation IP cores. The selected input and output IP cores define the decoding and encoding processes required t enable some form of data manipulation to be performed upon the received data.
The user is then required to define the data manipulation to be performed by the interface device 200 t enable the firs device 400 to interface with the second device 500. This can be done in a number of .manners. In one form, the user is able to select a pre-buiit data manipulation core 540 that is stored in the core repository of the server processing system 525. The data manipulation core is also referred to as a 'pa load'. The server processing system 525 utilises a digital rights management system fo controlling use of prebuilt IP cores stored in the core repository. The user generally is required- t provide user identification data (e.g. username and password access or the like) to utilise the services of the server processing system 525, wherein user data stored in a user database 530 is accessible by the server processing system to enable the digital rights management system to determine what access to IP cores the user has. The server processing system 525 can provide access to one of the pre-built IP core or device driver based on a previous purchase by the user or the server processing system 5:25 enable the user to purchase rights to one or more of the pre -built IP cores available. It will be appreciated that one or more of the IP cores stored in the core repository may be freel accessible and thus the digital rights management system ca enable fre use of the particular IP cores for users. The digital rights management system may also control user access to input and output IP cams. In the event that the user selects one of the existing data manipulation, cores 540, a project builder 560 of the server processing system 525 uses the input IP core 810, the output IP core 850 and the data manipulation core 540 to generate the configuration file 910. The project builder 560 generates the configuration file 910 in response to user interaction with the interface of presented at the processing system 300, wherein a build command is transferred to the server processing system 525 to initiate the generation of the configuration file 10. Generally, the project builder performs a compilation process to generate the configuration file 910. As shown in Figure 7, build indication data 710 can be transferred- back, to the processing system 300 indicating the progress of the generation of the configuration file 910.
In an alternative scenario, the user may wish to define a. custom data manipulation core 545, In this instance, the user can input code via the processing system which is transferred to the server processin system for defining a custom data manipulation core 545. In particular, the user can provide code to define the creation of a custom core VHDL using RTL code or using a soft or hard processor and writing sequential code using, a programming language such as a C-variant programming language, wherein the programming code is complied and the executable file executed by the processor 610 of the interface device 200. Whilst other programming languages can be used, for the purposes of clarity, the remaining examples are discussed in relation to C-variant source code being provided via the processing system 300. Manipulation of the FPGA 620 can be implemented via VHDL which can therefore produce very dedicated and fast payload. However, soft/hard processor can be defined easil by most software developers. The project builder 560 of the server processing system 525 utilises the custom data manipulation core 545, 550, and the selected input and output IP cores 525, 555 to generate the configuration file 910 as discussed above. The dynamic compilation performed by project builder 560 of the server processing system 525 produces the configuration file and optionally an ELF file if a C -pa load' is selected for the user's desired setting,
If the payload is designed in VHDL, the project builder 560 facilitates the following process;
1. Select the correct input and output cores 535, 555 to be combined in the project (editing relevant compilation files) along with the appropriate FIFO buffer cores 820, 840 attached to them.
2. Connect the relevant RTL files for the VHDL payload together and group them as a project along with the correct cores. In one form the project may be a Xiliiix project, however other types of projects can be utilised,
3. Compile the configuration file 910.
IT the payload is designed in C, there are two possible cases; soft processor or hard processor.
For hard processor, the project builder 560 facilitates the following dynamic compilation process:
1. Compile the C code to an ELF file with hard processor tools.
2. Load a pass through core into where the VHDL payload should be located.
3. Follow steps .1 to 3 of the VHDL payload compilation. For a soft processor, suc as a Microbiaze soft processor 920 as shown in. Figure 9, the server processing syste is configured to facilitate the following dynamic compilation process:
1. Compile the C code to an ELF file with a soft processor tool (e.g. gee).
2. Load the soft core into where the VHDL payload should be located.
3 < Follow steps 1 t 3 of the VHDL compilation 4. Combine a generic boot load ELF file with the configuration file
In a further alternative scenario, the user may select from one of a plurality of predefined projects which are stored in a project repository which is accessible by the server processing system 525. In particular, the user is able to use the processing system 300 to browse through the existing projects to select one for use in configuring their respective interface device 200. The user can provide search criteria such as input and output, device types as input where in response the server processing system 525 conducts a search and presents search results indicative of projects which at least partially or fully satisfy the searc criteria. At least some or each existing project can be pre-built by the project builder module 560 of the server processing system 525, thus the server processing system 525 can obtain access to a pre-built configuration file 10 for provision the user for configuring their respective interface device 200. Access to an predefined project can be controlled via the digital rights management system as described above. In particular, a user ma be required to purchase rights to a predefined project from a virtual payload shop 515, wherein the purchase of rights are recorded by the server processing system 525 for the user.
The configuration file 910, optionally the ELF file (if required) and a second configuration file can then be transferred from the server processing system to the- rocessing system 300 via the one or more networks. The transfer can be performed using a USB transfer class which can be either MTP (Media Transfer Protocol) or UMS (Universal Mass Storage),
In the even that the user is utilising a general processing system, the user may transfer the configuration file 910 received from the serve processing system 525 to a removable storage device 240 such as an SD card, USB storage device, a portable hard drive or the like. The removable storage device 240 can then be placed in data communication with one of the third ports 230 of the interface device 200 for boot loading to configure the interface device 200. Alternatively, the general processing system can be directly coupled to the interface device 200 such that the configuration file Is transferred directly from the processing system to the interface device 200.
In the event that the user is utilising a mobile processing system 300, the user can couple the mobile processing system 300 with the interface device 200 via one of the third ports 235- -wherein as shown in Figure 7 the user can interact with the interface of the application 740 to transfer the configuration file 10 from the mobile processing system 300 to the memory 630 of the interface device 200. In particular, the user can select the interface element 720 of the application interface 740 in order to -initiate the transfer of the configuration file 910. The interface device 200 can include a light emitting diode (LED) which can flash when the transfer has been performed successfully.
The boot loading process by the microcontroller 610 of the interface device 200 initially enumerates the connected device 240, 300 with the configuration file 910 to a UMS class. Then the configuration file 910 is extracted and the dat is transferred through a JTAG connection to the FPGA 620 program lines. The microcontroller can then check a configuration file stored on the connected device 240, 300 fo several key parameters such as- whether a C-payload is to be loaded or not. If a C-payload is required, then the microcontroller 610 loads a ELF file, stored in the connected device 240, 300 to a text portion of the usable memory of the interface device 200. The microcontroller 610 finally jumps to the text portion of the usable memory and starts the C-payload.
The microcontroller 610 can allow for USB Host connection t a UMS clas device and facilitate JTAG bit loading to the FPGA 620. Once it has completed the bit loading stage, the interface device 200 can be used for processing and loading C -variant payloads.
Upon successfully configuring the interface device 200, the first device 400 can be coupled to the first port 210 of the interface device 200 via the first daughter board 250 and the second device 500 can be coupled to the second port 220 of the interface device 200 via the second daughter board 260 such that data output by the first device 400 can undergo decoding, .manipulation and encoding by the interface device 200 to be output to the second device 500 such that (he first device 400 interfaces with the second device 500 via the interface device 200. The FPGA 620 internal architecture is shown i Figures 8 and 9. The compiler used by the server processing system produces this structure although the FIFO 820, 840 can be skipped to allow for faster processing system transfers which is referred to as "stream mode". The design of the FPGA 620 architecture for the interface device 200 includes three sections, namely an interface section 810. 850, buffer section 820, 840 and a payload section 830, The interface section 81.0, 850 enables different interface protocols to decode the received data packets and/or to encode tile sent data packets from the payload section. The buffer section 820, 840 allows for different interface cores to interact uniformly to the payload, as it can be dynamically compiled to be compatible with different bus standards (i.e. LoealBus, ACL PLB, Wishbone, etc) which allows for external IP cores to be used.
As shown in Figure 7, a user can optionall select to share the created project via selecting the share interface element 730 of the interface 740. The server processing system 525 stores project dat in the repository, wherein the digital rights management system can control access to the project data by other users.
The configured interface device 200 can be utilised for many applications. For example, in one form, the interface device 200 can be configured to enable a mobile communication device 400 to interface with an Ethernet device 500 as shown in Figure 4, thereby enabling fast network access which thereby allows for fast cloud access for mobile devices 400 (easy backups and allows for new concepts s ch as "mobile office").
In another example, a non-wireless device could be used wi h the interface device 200 to operate in a wireless manner. In particular, a wireless module could be coupled to the first port 210 of the interface device 200 and one or more speakers could be connected to the second port 220 of the interface device 200. Thus, audio data could be wireless received by the speakers via. the interface device 200,
The interface device 200 can also be utilised for co -processing or pre-processing. The FPGA 620 can be used to address parallel processing problems. For example, it is known that gesture recognition ca be performed poorly by certain mobile applications. Due to the parallel nature of image/video processing, filters can be applied easily on a parallel processing form. In particular, an external camera can be mounted on the mobile communication device. The external camer can provide images video to the interface device 200,, wherein the interface device 200 can apply filters and send the processed data to the connected mobile communication device. This allows for greater frame rates and better qualit data.
It will be appreciated that numerous variations and modifications may be made to this invention. For example, more than two devices may be interfaced together by inclusion of additional connection ports and by appropriate inclusion of additional processing components/software in the interface device. Also, by way of example, it will be appreciated that the various electrical connections may be achieved either by hard-wired connections, or, wirelessly. Such variations and modifications will be apparent to a person skilled in the art, and thereby should be considered to be covered by the invention as herein described and as hereinafter claimed.
The interface device 200 can optionally be configured through the..first port 2.1 . I this arrangement, the interface device 200 does not require an additional port for coupling the interface device 210 to a memory device 300, The interface device 200 includes a switch which when actuated operates the interface in a configuration mode, wherein data received via the first port 210 from the memory device 300 coupled to the first port 2:10 i used to configure the FPGA 620. Hie switch can be actuated again to return the interface device to operating in an interface mode as discussed above, Optional embodiments of the present invention may also be said to broadly consist in the parts, elements and features referred to or indicated herein, individually or collectively, in any or all combinations of two or more of the parts, elements or features, and wherein specific integers are mentioned herein which have known equivalents in the art to which the invention relates, such known equivalents are deemed to be incorporated herein as if individually set forth.
Although a preferred embodiment has been described in detail, it should be understood that many modifications, changes, substitutions or alterations will be appai'ent to those skilled in the ait without departing from, the scope of the present invention.

Claims

Claims
1. A server processing system fo generating a configuration file for configuring an interface device to enable a first device to interface with a second device, wherein the server processing system is configured to:
receive first device type data indicative of a first device type;
receive second device type data indicative of a second device type;
receive data manipulation data indicative of data manipulation to be performed to first data received from the first device to generate second data for transfer to the second de ice; and
determine, using the first device type data, the second device type data, and the data manipulation data, a configuration file for configuring the interface device.
2. The server processing system according to claim 1, wherein the server processing system generates the configuration file using the first device type data, the second device type data, and the data manipulation data.
3. The server processing system according to claim 1 or 2, wherein the first device type data, the second device type data and the data manipulation data are received via a processing system, and wherein the server processing system transfers the configuration file to the processing system which facilitates in the loading of the configuration file to the interface device.
4. The server processing system according to claim 3, wherein the server processing system has access to a repository including a plurality of device drivers/IP cores, wherein the server processing system is configured to retrieve one o more of the device drivers/IP core for generating the configuration file.
5. Tlie server processing system according to claim 4, wherein the server processing system, utilises a digital rights management system, for controlling use of one or more of the device drivers/IP cores in the repository for generating the configuration file.
6. The server processing: system according to claim 4 or 5, wherein the first device type data is indicative of a selected first device type from, a plurality of first device types available in the repository, wherein the server processing system retrieves, from the plurality of device drivers/IP cores in the repository, an input interface core corresponding to the first device type for generating the configuration file.
7. The server processing system according to any one of claims 4 to 6, wherein the second device type data is indicative of a selected second device type from a pluralit of second device types available in the repository, wherein the server processing system retrieves, from the plurality of device drivers/IP cores in the repository, an output interface core corresponding to the second device type fo generating the configuration file,
8. The server processing system according to any one of claims 4 to 7, wherein the data manipulation data is indicative of a selected data manipulation from a plurality of data manipulations available in the repository, wherein the server processing system retrieves, from the plurality of device drivers/IP cores in die repository, a data manipulation core corresponding to the data manipulation required for generating the configuration file.
9. The -server processing system according to any one of claims 4 to 8, wherein the data manipulation data is indicative of code for performing the data manipulation, wherein the server processing system uses the code for generating the configuration file,
10. The server processing system according to any one of claims 9, wherein the server processing system uses the code for generating an executable file, wherei the configuration file and executable file are loaded to the interface device to enable the. first device to interface with the second device.
11. A method for generating a configuration, file for configuring an interface device to enable a first device to interface with a second device, wherein the method includes, in a server processing system., steps of:
receiving first device type data indicative of a first device type;
receiving second device type data indicative of a second device type;
receivin data manipulation data indicative of data manipulation to be performed to first dat received from the first device to generate second data for transfer to the second device; and
generating, using the first device type data, the second device type data, and the data manipulation data, configuration file for configuring the interface device.
12. The method according to claim 11, wherein the method includes the server processing system generating the configuration file using the first device type data, the second device type data, and the data manipulation data.
13. The method according to claim 1 1 or 12, wherein method includes the server processing system receiving the first device type data, the second device type data and the data manipulation data from a processing system, and wherein the method includes the server processing system transferring the configuration file to the processing system whic facilitates in the loading of the configuration file to the interface device.
14. The method according to claim 13, wherein, the server processing system has access to a repository including a plurality of device drivers/IP cores, wherein the method includes the server processing system retrieving one or more of the device drivers/IP cores for generating the configuration file.
15. The method accordin to claim 14, wherein the method include the server processing system utilising a digital rights management system for controlling use of one or more of the device drivers/IP cores in the repository for generating the configuration file.
16. The method according to claim 14 or 15, wherein the first device type data is indicative of a selected first device type from a plurality of first device types available in the repository, wherein the method includes the server processing system retrieving, from the plurality of device drivers/IP cores i the repository, an input interface core corresponding to the first device type for generating the configuration file,
17. The method according to any one- of claims 14 to 16, wherein the second device type data is indicative of a selected second device type from a plurality of second device types available in the repository, wherein the method includes the server processing system retrieving, from the plurality of device drivers/IP cores in the repository, an output interface core corresponding to the second device type for generating the configuration file.
18. The method according to any one of claims 14 to Π, wherein the data manipulation data is indicative of a selected data manipulation from a plurality of data manipulations available in the repository, wherein the method includes the server processing system retrieving, from the plurality of device drivers/IP cores in the repository, a data manipulatio core corresponding to the dat manipulation required for generating the configuration file.
19. The method according to any one of claims 14 to 18, wherein the data manipulation data is indicative of code for performing the data manipulation, wherein the method includes the server processing system using the code for generating the configuration file.,
20. The method according to an one of claims 19, wherein the method includes the server processing system using the code for generating an executable file, wherein the configuration file and executable file are loaded to the interface device to enable the first device to interface with the second device,
21. A computer program stored on a computer readable medium, the computer program including executable instructions which configure a server processing system to perform the method of an o e of claims 1 1 to 20.
22. A processing system for interacting with a server processing system for requesting a configuration file for configurin an interface device, wherein the processing system is configured to:
transfer, to the server processing system, first device type data indicative of a first device type;
transfer, to the server processing system, second device type data indicative of a second device type;
transfer, to the server processing system, data manipulation data indicative of data manipulation to he performed to first data received from the first device to generate second data for transfer to the second device; and
receive, from the server processing system, a configuration file for configuring the interface device, wherein the configuration file is generated based upon the first device type data, the second device type data, and the data manipulation data;
transfer the configuration file to memory of the interface device, wherein loading of the configuration file configures the interface device to enable a first device connected to the interface device to interface with a second device connected to the interface device.
23. The processing system according to claim 22, wherein the processing system is a mobile communication device operable to execute a mobile application for transferring the first device type data, the second device type data and the data manipulatio data to the server processing system..
24. Tlie processing system according to claim 23, wherein the first device type data is indicative of a selected first device type from a plurality of first device type for use by the server processing system to determine an input interface core for generating the configuration file,
25. The processing system according to claim 23 or 24, wherein the second device type data is indicative of a selected second device type from a plurality of second device types for use by the server processing system to determine an output interface core for generating the configuration file.
26. The processing system according to any one of claims 23 to 25, wherein the data manipulation data is indicative of a selected data manipulation from a plurality of data manipulations available from the server processing system for generating the configuration file.
27. The processing system according to any one of claims 23 t 26, wherein the data manipulation data is indicative of code for performing the data manipulation, wherein the code is input via the mobile application, wherein the programming code is transferred to the server processin system for generating the configuration file.
28. The processing system according to any one of claims 22 to 27, wherein the processing system provide user identification data to the server processing system for use in a digital rights management system for generating the configuration file.
29. A method for interacting with a server processing system for requesting a configuration file for configuring an interface device, wherein method includes, in a processing system, steps of:
transferring, to the server processing system, first device type data indicative of a first device type; transferring, to the server processing system, second device type data indicative of a. second device type;
transferring, to the server processing system, data manipulation data indicative of data manipulation to be performed to first data received from the first device to generate second data for transfer to the second device; and
receiving, from the server processing system, a configuration file for configuring the interface device, wherein the configuration file is generated based upon the first device type data, the second device type data, and the data manipulation data;
transferring the configuration file to memory of the interface device, wherein loading of the configuration file configures the interface device to enable a first device connected to the interface device to interface with a second device connected to the interface device,
30. The method according to claim 29, wherein the processing system is a mobile communicatio device, wherein the method includes the mobile communication device executing mobile application for transferrin the first device type data, the second device type data and the data manipulation data to the server processing system.
31. The method according to claims 29 or 30, wherein the mobile communication device is adapted to transfer the configuration file, by either wired or wireless transmission.
32. The method according to claim 30 or 31 , wherein the first device type data is indicative of a selected first device type from a plurality of first device types for use by the server processing system to determine an input interface core for generating the configuration file.
33. The method according to any one of claims 30 to 32, wherein the second device type data is indicative of a selected second device type from a plurality of second device type for use by the server processing system to determine an output interface core fo generating the configuration file.
34. The method according to any one of claims 30 to 33, wherein the data manipulation data is indicative of a selected data manipulation from a plurality of data manipulations available from the server processing system for generating the configuration file,
35. The method according to any one of claims 30 to 34, wherein the data manipulation data is indicative of code for performing the data manipulation, wherein the method includes inputting the code via the mobile application, wherein the programming code is transferred to the server processing system for generating the configuration file,
36. The method according to any one of claims 29 to 35, wherein the method, includes the processing system providing user identification data to the server processing system for use in a digital rights management system for generating the configuration file.
37. A computer program stored on a computer readable medium, the computer program including executable instructions which configure processing system to perform the method of any one of claims 29 to 36,
38. An interface device for enabling a first device to interface with a second device, wherein the device includes;
a first port for receiving an electrical connection for the first device;
a second port for receiving an electrical connection for the second device;
a third port for connecting the interface device to a memory device or processing system;
a programmable device in electrical connection with the first port and the second port;
a memory for storing a contiguration file received from the memory device or processing system via the third port, wherein execution of the configuration file configures the programmable device to enable the first device to interface with the second device.
39. An interface device for enabling a first device to interface with a second device, wherein the device includes:
a first port:
for receiving an electrical connection for the first device; and for connecting the interface device to a memory device or processing system;
a second port for receiving a electrical connection for the second device;
a switch for selectively operating the interface device in a configuration mode and an interface mode; and
a programmable device in electrical connection with the first port and the second port;
a memor for storing a configuration file received from the memory device or processing system via the first port when the interface device is operating in. the configuratio mode, wherei execution of the configuration file configures the programmable device to enable the first device to interface with the second device when the interface device operates in the interface mode,
40. The interface device accordin to claim 38 or 39, wherein the programmable device is configurable to perform data manipulation upon first dat received from the first device to generate second data which is transferred t the second device,
41. The interface device according to claim 40, wherein the interface device includes a processor in electrical connection with the programmable device, wherein the memory stores an executable file for execution by the processor to enable the first device to interface with the second device.
42. The interface device according to claim 41, wherein the processor is configured, upon execution of the executable file, to perform data manipulation upon the first data reeeived from the first device to generate second data which is transferred to the second device.
43. The interface device according to claim 38 to 42, wherein the first data is in accordance with a first protocol and the second data is in accordance wit a second protocol, wherein the first and second protocols are different.
44. 'The interface device as claimed in any one of claims 38 to 43, wherein the programmable device includes a Field Programmable Gate Array (FPGA), a System on Chip (SoC) device and/or any other like device which may be programmed by a user (preferably in the field after manufacture of the device) and which is preferabl provided in an integrated circuit (IC) or like form, integrating the various components of a computer system into a single chip/embedded form,
45. An interface device as claimed i anyone of claims 38 to 44, further including: at least one further port for receiving an electrical connection for a fuither device which is to be interfaced with said first and second devices, and wherein, said programmable device is provided in electrical connection with each of said further ports, and wherein execution of the configuration file configures the programmable device to enable each of said devices to be interfaced together.
46. An interface device as claimed in any one of claims 38 to 45, wherein each said device port is connected to its respective port either by wired or wireles connection.
PCT/AU2015/050010 2014-01-13 2015-01-13 An interface device, server processing system, method, processing system, mobile communication device and computer program WO2015103676A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
AU2014900093A AU2014900093A0 (en) 2014-01-13 An interface device, server processing system, method, processing system, mobile communication device and computer program
AU2014900093 2014-01-13

Publications (1)

Publication Number Publication Date
WO2015103676A1 true WO2015103676A1 (en) 2015-07-16

Family

ID=53523389

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/AU2015/050010 WO2015103676A1 (en) 2014-01-13 2015-01-13 An interface device, server processing system, method, processing system, mobile communication device and computer program

Country Status (1)

Country Link
WO (1) WO2015103676A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4079452A (en) * 1976-06-15 1978-03-14 Bunker Ramo Corporation Programmable controller with modular firmware for communication control
US4972470A (en) * 1987-08-06 1990-11-20 Steven Farago Programmable connector
US20070299996A1 (en) * 2006-06-27 2007-12-27 Gideon Guy Data Transfer Device
US7380705B2 (en) * 2003-08-28 2008-06-03 Symbol Technologies, Inc. Multi-interface data acquisition system and method thereof
US8539048B2 (en) * 2010-04-27 2013-09-17 Hong Fu Jin Precision Industry (Shenzhen) Co., Ltd. Electronic device and method for loading configuration files using the same

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4079452A (en) * 1976-06-15 1978-03-14 Bunker Ramo Corporation Programmable controller with modular firmware for communication control
US4972470A (en) * 1987-08-06 1990-11-20 Steven Farago Programmable connector
US7380705B2 (en) * 2003-08-28 2008-06-03 Symbol Technologies, Inc. Multi-interface data acquisition system and method thereof
US20070299996A1 (en) * 2006-06-27 2007-12-27 Gideon Guy Data Transfer Device
US8539048B2 (en) * 2010-04-27 2013-09-17 Hong Fu Jin Precision Industry (Shenzhen) Co., Ltd. Electronic device and method for loading configuration files using the same

Similar Documents

Publication Publication Date Title
US20180152317A1 (en) Technologies for remote accelerator interface
EP3276481B1 (en) Nvme networked storage implementation method, terminal, server, and system
CN107003955B (en) Method, apparatus and system for integrating devices in a root complex
WO2017054573A1 (en) Configuration method and device
CN109522088A (en) A kind of virtual machine migration method and device
WO2018040016A1 (en) Protocol converter and protocol conversion method
US9223559B2 (en) Information processing apparatus, electronic control unit, information processing method, and program
US11086812B2 (en) Platform environment control interface tunneling via enhanced serial peripheral interface
US11003429B1 (en) Compile-time scheduling
US9098640B2 (en) Controller, electronic equipment unit, and USB device control method
US10936942B2 (en) Apparatus and mechanism for processing neural network tasks using a single chip package with multiple identical dies
HUE035735T2 (en) Data redirection for universal serial bus devices
US9886287B2 (en) Adaptive device driver method and system
US11669486B2 (en) Initialization sequencing of chiplet I/O channels within a chiplet system
CN109656844B (en) AT24xx EEPROM driving method and device
US20180095918A1 (en) Universal serial bus emulation layer
US20210158131A1 (en) Hierarchical partitioning of operators
WO2022086718A1 (en) Secondary device detection using a synchronous interface
CN106648758A (en) Multi-core processor BOOT starting system and method
US10540151B1 (en) Graphical customization of a firmware-provided user interface (UI)
US10922146B1 (en) Synchronization of concurrent computation engines
WO2015103676A1 (en) An interface device, server processing system, method, processing system, mobile communication device and computer program
US9229761B2 (en) Generating, at least in part, at least one packet indicating, at least in part, at least one command and/or issuing, at least in part, at least one result of execution, at least in part, of the at least one command
US11372677B1 (en) Efficient scheduling of load instructions
KR101470168B1 (en) Reprogramming method for cpu of controller

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15735526

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15735526

Country of ref document: EP

Kind code of ref document: A1