Controlling EIB/KNX devices from Linux using USB
|
|
|
- Tobias Griffin
- 10 years ago
- Views:
Transcription
1 Controlling EIB/KNX devices from Linux using USB Heinz W. Werntges 1 Fachbereich Informatik, Univ. of Applied Sciences Wiesbaden Jens Neumann and Vladimir Vinarski Loewe Opta GmbH, Kompetenzzentrum Hannover ABSTRACT Modern PC equipment, most notably notebook PC s, expect peripheral equipment to be connected through the Universal Serial Bus (USB), while legacy hardware (like parallel or serial ports) is increasingly abandoned. USB devices are rarely plagued by obscure issues like critical signal timing and are at the same time very convenient for users. On the other side, EIB/KNX systems are traditionally connected to PC s via serial ports. Hence, in 2003, Konnex introduced Application Note 037/02 KNX on USB protocol specification & KNX USB Interface Device Requirements [1]. Meanwhile, USB based EIB/KNX bus coupling units are available, and the MS-Windows based ETS3 software [12] supports EIB access through USB without the need for special Windows driver installation. On Linux platforms, USB support is generally somewhat lagging behind MS Windows-based developments. This is especially true for USB support for EIB/KNX. This study aims to fill that gap by providing an Open Source module that allows Linux programs to control EIB/KNX devices via a USB connection. Care is taken to avoid any kernel modification, kernel-space driver installation, or low-level USB access. The module works in user space and relies on readily available USB HID devices like /dev/usb/hiddev0, thereby simplifying its application. 1. USB FOR LINUX The Universal Serial Bus (USB) is well-supported by the popular Open Source operating system Linux. Support is accomplished by a collection of layered device drivers and includes both low level access and access specific to certain device classes. - USB serves a great variety of purposes. While this is a good thing to have, it makes software development for USB a bit complicated at first. Let s sort it out a bit: For Linux, externally added USB components become devices when they are connected, i.e. they appear as special entries (nodes) in the file system. Typically, device nodes are stored below the /dev directory and are managed by a major and minor device number [2]. While the major device number selects the responsible device driver of the kernel, the minor device number is passed to this driver to allow for specific treatment of the current device by a driver that manages a whole device family. 2 There are basically two kinds of devices: Block and character devices. USB components can represent any of those. E.g., the popular memory sticks represent block devices and are accessed like hard disks, while keyboards and terminals represent character devices. Traditionally, Linux device nodes are permanently available (you don t remove your hard disk regularly). On the other hand, USB s plug-and-play concept requires the Linux kernel to break and make associations between device nodes and actual devices dynamically, thus causing a need for a device discovery phase. 1 [email protected] / To whom correspondence should be addressed 2 Linux kernels since V 2.6 introduced an alternative mechanism to manage device nodes: E.g., USB nodes get dynamically added to /proc/bus/usb, where they may be searched.
2 2. HUMAN INTERFACE DEVICES (HID) and KNX HID The Human Interface Devices (HID) form a sub-class of the character devices. There are many different kinds of HIDs [3], like keyboards and mice, game controllers and alike. With AN037 [1], Konnex specified USB interface devices to EIB/KNX as belonging to the HID class of devices. Konnex did not try to emulate the established RS.232 interface via USB, as is sometimes seen, and abandoned the FT1.2 protocol in favour of a new KNX HID protocol. Consequently, Upon connection, HIDs identify themselves to the host system as belonging to a special HID class (like 3-button mouse or force feedback joystick ), according to [3], and usages according to usage codes as specified in [4]. Linux s low-level USB drivers look for such signatures and assign specialized higher-level drivers (like a keyboard or joystick driver) according to the received usage code(s). When no special support is available, the device gets assigned to a generic hiddev driver. Konnex did not try to register or use standardized HID usages for the multitude of EIB/KNX devices. Instead, a KNX HID identifies itself to the system with a vendor-specific usage and takes the exchange of HID reports as a means to tunnel EMI messages [5] between Konnex devices and the application. Consequently, when trying to access EIB/KNX via USB from a Linux application, this application faces following tasks: 1. Discovery of the proper device / device node 2. Writing and reading HID reports using the appropriate driver API 3. Encapsulation of EMI messages by means of the KNX HID protocol This contribution focuses on the first two tasks while just using the specifications in [1] to accomplish the third. The Test Environment All tests were performed with standard equipment: PC: IBM Thinkpad Notebook, T42p series OS: SuSE Linux 9.2, with Kernel (as shipped) KNX USB hardware: Busch-Jäger EIB sensor USB, art. no USB-82 and BCU art. no U-102, vendor ID 0x145c, product ID 0x1330 Remark: Surprisingly, this KNX USB device supports neither EMI2 nor cemi, thereby merging a very recent specification (KNX USB) with a much older one (EMI1), while at the same time with cemi there is a more up-to-date alternative looking for wide-spread use. A chance missed for cemi to become more wide-spread in the wake of USB? Device Discovery Let s assume that we connect a KNX USB interface with the USB port of our Linux system through a regular USB cable. The Linux kernel will detect it, determine the responsible device driver, and assign it to an available device node.
3 An application that wants to communicate with the KNX system now needs to access the appropriate device node. Which one is it? A simple yet effective approach works like this: The Linux test environment (see below) maintains 16 device nodes for generic HID devices: /dev/usb/hiddev0 hiddev15. Simply apply an open() system call to any of them in order to find out which ones are available. In our case, the KNX HID was the only generic HID connected and could always be found at /dev/usb/hiddev0. Monitoring of system messages when the device is connected using utility dmesg might also provide helpful hints. In the /proc/bus/usb tree of device nodes it may be found through utility lsusb. More systematically, HID devices may be found by looking for their vendor ID and product ID. Utility /sbin/lsusb lists all currently connected USB devices including vendor ID and product ID. Call it once before and after connecting the KNX HID and compare the results. The difference should consist of a single line that names the KNX HID and its vendor ID and product ID. Optionally use option t to obtain a tree view of the nodes below /proc/bus/usb to identify the device node matching the vendor and product ID there. This procedure remotely resembles the discovery procedure of HID devices for MS- Windows, which is nicely described in [6]. Once the device node is found, we need to learn about the device s properties, of which there are plenty for a USB device. Use options d vendorid:productid vv to obtain the full details of your device, like in $ /sbin/lsusb d 0x145C:0x1330 vv Fortunately, AN037 [1] already specifies many important properties. These should be reflected by your device details. In particular, The KNX HID should use interrupt transfers for both inbound and outbound reports. The KNX HID reports should have a length of 64 octets. The report ID should be 0x01. Other parameters need to be determined from the lsusb output, but these depend on the API to be used (see there). 3. APIS Our application does not need much to exchange data with the KNX system. All it needs to do is opening the device for reading and writing, and reading/writing HID reports of size 64 octets. Report details like EMI messages are left to higher-level functions of the application (see section EMI messages below). The authors tested two alternatives for exchanging such HID reports with the operating system / devices. System calls The basic Linux API for communication with devices consists of system calls open(), read(),write(),select(),ioctl(),close() and a few more. Which of those are available depends on the nature of the device and the scope of the applying device driver.
4 For the task at hand, open(), close(), write(), read(), and ioctl() appear to suffice. A look at the similar situation on MS Windows confirms this expectation: After a (lengthy) discovery phase, users end up with a device path which they can use to open/close the device and read/write from/to it, using system calls CreateFile(), CloseHandle(), ReadFile(), and WriteFile() [6]. Unfortunately, write() turned out to be not available for generic HIDs; instead a very cumbersome mechanism using ioctl() needs to be used. To our surprise, documentation on how to send a whole array of octets to a HID using ioctl() is virtually non-existent. This lack of documentation turned out to be a major obstacle for this study. Here are the essential lines of code used to send a HID report (the full code will be made available at [9]): struct hiddev_usage_ref uref; struct hiddev_report_info rinfo; for( int uindex = 0; uindex < 63; uindex++ ) { uref.report_type = HID_REPORT_TYPE_OUTPUT; uref.report_id = HID_REPORT_ID_UNKNOWN; // or: 0x01; uref.field_index = 0; uref.usage_index = uindex; if( uindex == 0 ) uref.usage_code = 0xFFA10005; else uref.usage_code = 0xFFA10006; uref.value = report[uindex]; // report[] = report buffer ioctl( fd, HIDIOCSUSAGE, &uref ); // Error treatment omitted } rinfo.report_type = HID_REPORT_TYPE_OUTPUT; rinfo.report_id = 0x01; rinfo.num_fields = 1; ioctl( fd, HIDIOCSREPORT, &rinfo ) ; // Error treatment omitted This code essentially copies 64 octets from user buffer report[] to a kernel buffer by filling and passing data structures hiddev_usage_ref. From the output details of lsusb we learned the required parameters: There is only one report descriptor ( bnumdescriptors 1 ), hence rinfo.num_fields=1; and uref.field_index=0;. The (innermost) usage page is 0xFFA1, and usage data are 0x05, 0x06 for output and 0x03, 0x04 for input, so uref.usage_code = 0xFFA10005; and uref.usage_code = 0xFFA10005; for output. Constant HID_REPORT_ID_UNKNOWN may be replaced by 0x01, as we know from lsusb (as well as from [1]) that this is the proper report ID. In this case, only 63 octets may be transmitted, and we drop the first octet of the report buffer (which is the report ID!). There are two mechanisms for reading inbound reports: A simple call of read(), or the reversal of the writing procedure outlined above. i.e. an ioctl() call with code HIDIOCGREPORT, followed by 64 ioctl() calls with code HIDIOCGUSAGE, with uref.usage_index ranging from 0 to 63. libhid The Open Source project libhid [7] (successor of hidlib ) provides an alternative access path to HIDs. This API directly supports device discovery mechanisms based on vendor ID and product ID as well as convenient routines for writing as well as reading whole reports. Its authors also announced plans to port the library to Windows, thus providing a single and convenient multi-platform API for HID access.
5 In order to do this, the library somewhat interferes with Linux s device driver stack by stealing a HID device from its regular driver, accessing the device through a lower-level USB driver, and by restoring things afterwards. We tested the library by elaborating on a source file test_libhid.c that is provided by the software package. For device discovery, we only needed to specify the vendor and product IDs: HIDInterfaceMatcher matcher = { 0x145c, 0x1330, NULL, NULL, 0 }; Following an included description, we set the required PATH_IN and PATH_OUT arrays: unsigned char const PATHLEN = 3; int const PATH_IN[] = { 0xffa00001, 0xffa00001, 0xffa10003 }; int const PATH_OUT[] = { 0xffa00001, 0xffa00001, 0xffa10005 }; Those values again are derived from the lsusb output. Sending a report is then done by a simple call: hid_set_output_report(hid, PATH_OUT, PATHLEN, reportbuffer, 64); Receiving a report works similarly: hid_get_input_report(hid, PATH_IN, PATHLEN, reportinbuffer, 64); 4. EMI MESSAGES At the interface level, EMI messages only need to be turned into HID reports according to the KNX USB protocol in [1], and vice versa. In addition, [1] specifies a few special data frames for internal purposes. As mentioned earlier, this paper focuses on the Linux APIs to HID devices, not on protocol implementation. Nonetheless, two examples should illustrate what needs to be done here (all octets in hex and padded with 0 octets up to 64 in total): 1. Query the KNX USB device for the supported EMI types This is accomplished by a device feature get frame, which in our case consists of the following octets 01,13,09, 00, 08, 00,01, 0F, 01, 00,00, Activate Link Layer (using EMI1) We ll learn that our KNX USB device only supports EMI1, and it does not support bus monitor mode, so we first set the active EMI type to 1 (not shown here) and then use an EMI1 PC_SET_VAL.req to activate link layer access by sending: 01,13,0D, 00, 08, 00,05, 01, 01, 00,00, 46,01,00,60,12 Note that the first octet (01) is easily recognized as the report ID. 5. RESULTS The involved test reports consisted of a query of the KNX USB device for the supported EMI type, including reading of the corresponding input report (case 4.1), a report to set the active EMI type to EMI1, a report containing a EMI1 PC_SET_VAL.req message to activate link layer access (case 4.2),
6 and a report containing a EMI1 L_data.req message that switched a light on (group address 1.0.0) All reports had been successfully tested under MS Windows XP Professional by employing the Windows DDK [11] and C code following the descriptions in [6]. Tests with System calls All ioctl() write calls returned successfully. The involved parameters had to be just the ones listed here, or else the calls failed. Using 0xFFA10005 or 0xFFA10006 as the usage code worked both; it remained unclear when to use which code. Setting uref.report_id=0x01; required to drop the first octet from the report, as more than 63 octet would be refused then. Apparently, the kernel drivers add the report ID automatically when specified. The ioctl() calls however did not have any noticeable effect, even though they all returned with success codes. Attempts to call read() for the expected result report of test case 4.1 ended with the call blocking, which is to be expected when there is no inbound report in the driver s input buffers. Using ioctl() calls for the same purpose (as outlined earlier) always resulted in receiving a sequence of 0 octets. While there is hope to eventually reach a breakthrough, using system calls on the basis of the generic hiddev driver is not an option at the moment. The lack of documentation on how to access HIDs with Linux through hiddev is striking and prompts for a detailed analysis of the involved kernel sources. Tests with libhid The good news is that reading and writing HID reports using libhid worked. The KNX USB module answered, and the light could be switched on and off. However, calls frequently returned error codes. In some of these cases, they still had the desired effect, mostly though they just failed. Success and failure turned out not to be reproducible: When calling the test program many times, the calls succeeded or failed in seemingly random order. The library also failed to disconnect cleanly from the USB driver stack: An open() call to device /dev/usb/hiddev0 failed after testing with libhid and resumed normal operation only after unplugging & re-plugging. libhid still comes with a low release number (0.2.15), indicating that issues like the observed ones might still be expected. Its ease of use is tempting, and it works. However, the observed issues need to be resolved before any serious EIB/KNX application could rely on it. 6. OUTLOOK Both the system call and the libhid approach will be further investigated by the authors, until reliable operation is reached. Results and test material will be made available as Open Source software at [9]. As usual for Open Source projects, contributions are welcome. Once reliable operation is achieved, the module will be incorporated into the Open Source project EIB Home Server [8] as an alternative driver to the existing FT1.2 over RS.232 mechanism. The home server essentially consists of two components:
7 homedriver: Controlling of the EIB/KNX bus and communication interface between the home server and the EIB/KNX bus, i.e. the electronic devices. homeserver: Communication interface between the homedriver and application programs called clients. The number of application programs is unlimited. The existing home server implementation will be completed to be able to send EMI1 messages via USB to the EIB/KNX bus or back to the home server. Since the home server also supports Windows, where USB access to EIB/KNX is already working, USB support on Windows is an obvious next step. While the home server project addresses the controlling aspects of EIB/KNX systems, there is still room for software that can change parameters of EIB/KNX devices, or can even program new EIB/KNX systems, at least in simple cases. For commercial purposes on Windows platforms, there are well-established tools like EIBA s ETS3 software [12]. Open Source components for Linux especially appeal to early adopters of new technologies with good technical skills but limited budgets, or to system integrators aiming for cost-efficient intelligent components that can be produced free of licence fees. Over the past few years, new high-level programming languages like Ruby [10] became available. They are highly dynamic, strictly object-oriented, and come with powerful class libraries, thus making software development easier and more efficient than ever. One key feature is their ability to easily bind to low-level libraries written in C/C++ like the one being developed here for KNX/USB access. Such binding will provide convenient, objectoriented and highly efficient programming access to EIB/KNX as a basis for multiple application-oriented projects yet to come. 7. REFERENCES [1] Konnex: Application Note 037 KNX on USB, KNX Handbook V 1.1 Rev. 1, [2] A. Rubini, J. Corbet: Linux Device Drivers 2 nd ed, O Reilly & Associates, Inc., [3] Device Class Definition for Human Interface Devices, V 1.11, [4] HID Usage Tables, V 1.11, [5] Konnex: External Message Interfaces, KNX Handbook V 1.1 Rev. 1, Vol. 3, Part 6, Chapter 3, [6] J. Axelson: USB Complete, 2 nd ed, ch. 16, Lakeview Research, [7] Martin F. Krafft, Arnaud Quette, Charles Lepple : Open Source project «libhid» v , [8] Part of BMBF sponsored project Embassi (see and [9] Details will be made available at [10] [11] Windows Driver Development Kit, see [12] ETS3 Professional, see Acknowledgment The authors like to thank Dr. Th. Weinzierl and Mr. J. Demarest (Konnex) for technical support on KNX USB testing details.
Controlling EIB/KNX Devices from Linux using USB. Heinz W. Werntges. University of Applied Sciences Wiesbaden. Jens Neumann and Vladimir Vinarski
Fachhochschule Wiesbaden - Controlling EIB/KNX Devices from Linux using USB Heinz W. Werntges University of Applied Sciences Wiesbaden Jens Neumann and Vladimir Vinarski Loewe Opta GmbH, Kompetenzzentrum
Learning USB by Doing. [email protected]
Learning USB by Doing. [email protected] The question that I am asked most often is how do I start a USB project? There are many alternate starting points for the design of a USB I/O device and this
Ways to Use USB in Embedded Systems
Ways to Use USB in Embedded Systems by Yingbo Hu, R&D Embedded Engineer and Ralph Moore, President of Micro Digital Universal Serial Bus (USB) is a connectivity specification that provides ease of use,
Linux Driver Devices. Why, When, Which, How?
Bertrand Mermet Sylvain Ract Linux Driver Devices. Why, When, Which, How? Since its creation in the early 1990 s Linux has been installed on millions of computers or embedded systems. These systems may
Virtual KNX/EIB devices in IP networks
WEINZIERL ENGINEERING GmbH WEINZIERL ENGINEERING GMBH F. Heiny, Dr. Y. Kyselytsya, Dr. Th. Weinzierl Bahnhofstr. 6 D-84558 Tyrlaching Tel. +49 (0) 8623 / 987 98-03 E-Mail: [email protected] Web: www.weinzierl.de
AN249 HUMAN INTERFACE DEVICE TUTORIAL. Relevant Devices This application note applies to all Silicon Labs USB MCUs. 1.
HUMAN INTERFACE DEVICE TUTORIAL Relevant Devices This application note applies to all Silicon Labs USB MCUs. 1. Introduction The Human Interface Device (HID) class specification allows designers to create
Atmel AVR4903: ASF - USB Device HID Mouse Application. Atmel Microcontrollers. Application Note. Features. 1 Introduction
Atmel AVR4903: ASF - USB Device HID Mouse Application Features USB 2.0 compliance - Chapter 9 compliance - HID compliance - Low-speed (1.5Mb/s) and full-speed (12Mb/s) data rates Standard USB HID mouse
Chapter 11 I/O Management and Disk Scheduling
Operating Systems: Internals and Design Principles, 6/E William Stallings Chapter 11 I/O Management and Disk Scheduling Dave Bremer Otago Polytechnic, NZ 2008, Prentice Hall I/O Devices Roadmap Organization
iridium for Weinzierl KNX IP BAOS
iridium for Weinzierl KNX IP BAOS Fast Start: Connection Setting Manual for KNX/EIB bus through IP Interfaces of Weinzierl KNX IP BAOS Review of iridium Software Package for KNX/EIB: iridium turns your
NEC USB PortBar with the Driver Installation Diskette
NEC USB PortBar with the Driver Installation Diskette Congratulations on purchasing the NEC USB PortBar for your NEC Versa notebook computer! The NEC USB PortBar connects to the USB port on your NEC Versa
Freescale MQX USB Device User Guide
Freescale MQX USB Device User Guide MQXUSBDEVUG Rev. 4 02/2014 How to Reach Us: Home Page: freescale.com Web Support: freescale.com/support Information in this document is provided solely to enable system
Tutorial for MPLAB Starter Kit for PIC18F
Tutorial for MPLAB Starter Kit for PIC18F 2006 Microchip Technology Incorporated. All Rights Reserved. WebSeminar Title Slide 1 Welcome to the tutorial for the MPLAB Starter Kit for PIC18F. My name is
TivaWare USB Library USER S GUIDE SW-TM4C-USBL-UG-2.1.1.71. Copyright 2008-2015 Texas Instruments Incorporated
TivaWare USB Library USER S GUIDE SW-TM4C-USBL-UG-2.1.1.71 Copyright 2008-2015 Texas Instruments Incorporated Copyright Copyright 2008-2015 Texas Instruments Incorporated. All rights reserved. Tiva and
Open-source foundations for PC based KNX/EIB access and management
Open-source foundations for PC based KNX/EIB access and management Bernhard Erb, Georg Neugschwandtner, Wolfgang Kastner, Martin Kögler Institute of Automation Automation Systems Group Vienna University
Research and Design of Universal and Open Software Development Platform for Digital Home
Research and Design of Universal and Open Software Development Platform for Digital Home CaiFeng Cao School of Computer Wuyi University, Jiangmen 529020, China [email protected] Abstract. With the development
Software Development for Multiple OEMs Using Tool Configured Middleware for CAN Communication
01PC-422 Software Development for Multiple OEMs Using Tool Configured Middleware for CAN Communication Pascal Jost IAS, University of Stuttgart, Germany Stephan Hoffmann Vector CANtech Inc., USA Copyright
Gigabit Ethernet Packet Capture. User s Guide
Gigabit Ethernet Packet Capture User s Guide Copyrights Copyright 2008 CACE Technologies, Inc. All rights reserved. This document may not, in whole or part, be: copied; photocopied; reproduced; translated;
S7 for Windows S7-300/400
S7 for Windows S7-300/400 A Programming System for the Siemens S7 300 / 400 PLC s IBHsoftec has an efficient and straight-forward programming system for the Simatic S7-300 and ern controller concept can
ENABLING WIRELESS DATA COMMUNICATION IN CONSTRUCTION MANAGEMENT SYSTEM
ENABLING WIRELESS DATA COMMUNICATION IN CONSTRUCTION MANAGEMENT SYSTEM Liu Yanxiang & Yow Kin Choong School of Computer Engineering Nanyang Technological University Nanyang Avenue, Singapore 639798 Keywords:
AT89C5131A Starter Kit... Software User Guide
AT89C5131A Starter Kit... Software User Guide Table of Contents Section 1 Introduction... 1-1 1.1 Abbreviations...1-1 Section 2 Getting Started... 2-3 2.1 Hardware Requirements...2-3 2.2 Software Requirements...2-3
Bluetooth HID Profile
RN-WIFLYCR-UM-.01 RN-HID-UM Bluetooth HID Profile 2012 Roving Networks. All rights reserved. Version 1.0r 1/17/2012 USER MANUAL www.rovingnetworks.com 1 OVERVIEW Roving Networks Bluetooth modules support
CANnes PC CAN Interface Manual
CANnes PC CAN Interface Manual Version: 1.21 October 1 st, 2004 D 20375 Hamburg, Germany Phone +49-40-51 48 06 0 FAX: +49-40-51 48 06 60 2 CANnes Card Manual V1.21 Version Version Date Author Comment 1.00
EBERSPÄCHER ELECTRONICS automotive bus systems. solutions for network analysis
EBERSPÄCHER ELECTRONICS automotive bus systems solutions for network analysis DRIVING THE MOBILITY OF TOMORROW 2 AUTOmotive bus systems System Overview Analyzing Networks in all Development Phases Control
USB Complete. Everything You Need to Develop Custom USB Peripherals. by Jan Axelson
The following material is excerpted from USB Complete Everything You Need to Develop Custom USB Peripherals by Jan Axelson For more information about the book, code examples, and links to other USB information
Chapter 6, The Operating System Machine Level
Chapter 6, The Operating System Machine Level 6.1 Virtual Memory 6.2 Virtual I/O Instructions 6.3 Virtual Instructions For Parallel Processing 6.4 Example Operating Systems 6.5 Summary Virtual Memory General
CS 3530 Operating Systems. L02 OS Intro Part 1 Dr. Ken Hoganson
CS 3530 Operating Systems L02 OS Intro Part 1 Dr. Ken Hoganson Chapter 1 Basic Concepts of Operating Systems Computer Systems A computer system consists of two basic types of components: Hardware components,
3 ½ Floppy to USB Flash Reader
3 ½ Floppy to USB Flash Reader Manual Copyright 2010 PLRElectronics PLRElectronics 2010 PLRElectronics PO BOX 11977 Fort Worth, Texas All rights reserved. No part of this manual may be reproduced, transmitted,
Digital Photo Bank / Portable HDD Pan Ocean E350 User Manual
Digital Photo Bank / Portable HDD Pan Ocean E350 User Manual Installing a hard disk 1. Power off the unit. 2. Remove the bottom cover from the unit by removing four screws. 3. Insert the 2.5 HDD to the
Computer Organization & Architecture Lecture #19
Computer Organization & Architecture Lecture #19 Input/Output The computer system s I/O architecture is its interface to the outside world. This architecture is designed to provide a systematic means of
Documentation for data centre migrations
Documentation for data centre migrations Data centre migrations are part of the normal life cycle of a typical enterprise. As organisations expand, many reach a point where maintaining multiple, distributed
Chapter 3: Operating-System Structures. System Components Operating System Services System Calls System Programs System Structure Virtual Machines
Chapter 3: Operating-System Structures System Components Operating System Services System Calls System Programs System Structure Virtual Machines Operating System Concepts 3.1 Common System Components
CSE 120 Principles of Operating Systems. Modules, Interfaces, Structure
CSE 120 Principles of Operating Systems Fall 2000 Lecture 3: Operating System Modules, Interfaces, and Structure Geoffrey M. Voelker Modules, Interfaces, Structure We roughly defined an OS as the layer
Operating Systems and Networks
recap Operating Systems and Networks How OS manages multiple tasks Virtual memory Brief Linux demo Lecture 04: Introduction to OS-part 3 Behzad Bordbar 47 48 Contents Dual mode API to wrap system calls
iridium for KNX/EIB Fast Start: Connection Setting Manual for KNX/EIB equipment
iridium for KNX/EIB Fast Start: Connection Setting Manual for KNX/EIB equipment Review of iridium Software Package for KNX/EIB: iridium turns your iphone/ipod/ipad or Windows device into a KNX system control
Operating Systems 4 th Class
Operating Systems 4 th Class Lecture 1 Operating Systems Operating systems are essential part of any computer system. Therefore, a course in operating systems is an essential part of any computer science
User Manual. 2 ) PNY Flash drive 2.0 Series Specification Page 3
User Manual Table of Contents 1 ) Introduction Page 2 2 ) PNY Flash drive 2.0 Series Specification Page 3 3 ) Driver Installation (Win 98 / 98 SE) Page 4 4 ) Driver Installation (Win ME / 2000 / XP) Page
Project management - integrated into Outlook
Project management - integrated into Outlook InLoox 5.x configuration guide for Microsoft SQL Server An IQ medialab / OptCon Whitepaper Published: February 2008 Author / copyright: 2008 Heinz-Peter Bross,
Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture
Last Class: OS and Computer Architecture System bus Network card CPU, memory, I/O devices, network card, system bus Lecture 3, page 1 Last Class: OS and Computer Architecture OS Service Protection Interrupts
Do More With Less. On Driver-less Interfacing with Embedded Devices. Peter Korsgaard <[email protected]>
Do More With Less On Driver-less Interfacing with Embedded Devices Peter Korsgaard NSLU2-Linux Peter Korsgaard Driver-less Interfacing? Interfacing without having to install any custom
Danware introduces NetOp Remote Control in version 7.01 replacing version 7.0 as the shipping version.
Release notes version 7.01 Danware introduces NetOp Remote Control in version 7.01 replacing version 7.0 as the shipping version. It s available as a free downloadable upgrade to existing version 7.0 customers
M.Sc. IT Semester III VIRTUALIZATION QUESTION BANK 2014 2015 Unit 1 1. What is virtualization? Explain the five stage virtualization process. 2.
M.Sc. IT Semester III VIRTUALIZATION QUESTION BANK 2014 2015 Unit 1 1. What is virtualization? Explain the five stage virtualization process. 2. What are the different types of virtualization? Explain
BLUETOOTH SERIAL PORT PROFILE. iwrap APPLICATION NOTE
BLUETOOTH SERIAL PORT PROFILE iwrap APPLICATION NOTE Thursday, 19 April 2012 Version 1.2 Copyright 2000-2012 Bluegiga Technologies All rights reserved. Bluegiga Technologies assumes no responsibility for
Chapter 5 Busses, Ports and Connecting Peripherals
Chapter 5 Busses, Ports and Connecting Peripherals 1 The Bus bus - groups of wires on a circuit board that carry information (bits - on s and off s) between computer components on a circuit board or within
USB Card Reader Interface User Manual
USB Card Reader Interface User Manual SB Research 2009-2012 The USB Reader Interface family: Concept: The USB Card Reader Interface allows access control card readers to be connected to a PC, in order
Software Manual Virtual COM for USB Driver / Configuration Tool
Software Manual Virtual COM for USB Driver / Configuration Tool Rev. 1.08 SRP-270 / SRP-275 SRP-275II / SRP-280 SRP-350 / SRP-350II SRP-350IIK SRP-350plus / 352plus SRP-350plusII / 352plusII SRP-370 /
Android Application for Accessing KNX Devices via IP Connection
Android Application for Accessing KNX Devices via IP Connection J. A. Nazabal, J. Gómez, F. Falcone, C. Fernández-Valdivielso, P. E. Branchi and I. R. Matías Electrical and Electronic Engineering Department,
DEVICE DRIVERS AND TERRUPTS SERVICE MECHANISM Lesson-14: Device types, Physical and Virtual device functions
DEVICE DRIVERS AND TERRUPTS SERVICE MECHANISM Lesson-14: Device types, Physical and Virtual device functions 1 Device Types For each type of device, there is a set of the generic commands. For example,
48-B-5-08-KIT 5-Wire Resistive Controller (USB) Specification Guide
48-B-5-08-KIT 5-Wire Resistive Controller (USB) Specification Guide Document Number: 6500268 Rev. 2.0 Pg. 1 The information provided in this document is intended as a guide only and is subject to change
Building Applications Using Micro Focus COBOL
Building Applications Using Micro Focus COBOL Abstract If you look through the Micro Focus COBOL documentation, you will see many different executable file types referenced: int, gnt, exe, dll and others.
TEST CHAPTERS 1 & 2 OPERATING SYSTEMS
TEST CHAPTERS 1 & 2 OPERATING SYSTEMS True/False Indicate whether the statement is true or false. 1. Changes that you make in virtual machines do not affect your physical computer. 2. The size of a bus
How do Users and Processes interact with the Operating System? Services for Processes. OS Structure with Services. Services for the OS Itself
How do Users and Processes interact with the Operating System? Users interact indirectly through a collection of system programs that make up the operating system interface. The interface could be: A GUI,
XC83x AP08130. Application Note. Microcontrollers. intouch Application Kit - LED Matrix Display V1.0, 2012-02
XC83x AP08130 Application te V1.0, 2012-02 Microcontrollers Edition 2012-02 Published by Infineon Technologies AG 81726 Munich, Germany 2012 Infineon Technologies AG All Rights Reserved. LEGAL DISCLAIMER
Colorfly Tablet Upgrade Guide
Colorfly Tablet Upgrade Guide (PhoenixSuit) 1. Downloading the Firmware and Upgrade Tool 1. Visit the official website http://www.colorful.cn/, choose 产 品 > 数 码 类 > 平 板 电 脑, and click the product to be
Designing and Deploying Connected Device Solutions for Small and Medium Business
Designing and Deploying Connected Device Solutions for Small and Medium Business HPATA Connected Devices Study Guide Rev 1.1 Table of Contents 1.1 Describe and recognize common desktop virtualization technologies
DeviceNet Bus Software Help for Programming an Allen Bradley Control System
FBP FieldBusPlug V7 DeviceNet Bus Software Help for Programming an Allen Bradley Control System DeviceNet Software Help for Programming an Allen Bradley Control System Contents Page General Purpose...
Smart Card Deployment in the Data Center: Best Practices for Integrating Smart Card Authentication in a Secure KVM Environment
Smart Card Deployment in the Data Center: Best Practices for Integrating Smart Card Authentication in a Secure KVM Environment 2009, Raritan Inc. Executive Summary While many organizations have employed
USB Floppy USB Floppy Disk Emulator
USB Floppy USB Floppy Disk Emulator Manual ipcas GmbH Phone: +49 (0)9131/ 7677-0 Gundstraße 15 Fax: +49 (0)9131/ 7677-78 D-91056 Erlangen Internet: http://www.ipcas.de Germany Email: [email protected] Contents
Operating System Structures
COP 4610: Introduction to Operating Systems (Spring 2015) Operating System Structures Zhi Wang Florida State University Content Operating system services User interface System calls System programs Operating
Technology in Action. Alan Evans Kendall Martin Mary Anne Poatsy. Eleventh Edition. Copyright 2015 Pearson Education, Inc.
Technology in Action Alan Evans Kendall Martin Mary Anne Poatsy Eleventh Edition Technology in Action Chapter 4 System Software: The Operating System, Utility Programs, and File Management. Chapter Topics
INPUT/OUTPUT ORGANIZATION
INPUT/OUTPUT ORGANIZATION Accessing I/O Devices I/O interface Input/output mechanism Memory-mapped I/O Programmed I/O Interrupts Direct Memory Access Buses Synchronous Bus Asynchronous Bus I/O in CO and
Important Bluetooth. and Software Considerations for Wireless Barcode Scanner Deployments
Important Bluetooth and Software Considerations for Wireless Barcode Scanner Deployments By LEN OTT, Chief Technical Officer, Socket Mobile, Inc. February 2011 Before deploying a Bluetooth barcode scanner,
Why you need to monitor serial communication?
Why you need to monitor serial communication Background RS232/RS422 provides 2 data lines for each data channel. One is for transmitting data and the other for receiving. Because of these two separate
SecureDoc Disk Encryption Cryptographic Engine
SecureDoc Disk Encryption Cryptographic Engine FIPS 140-2 Non-Proprietary Security Policy Abstract: This document specifies Security Policy enforced by SecureDoc Cryptographic Engine compliant with the
Application Note. 8-bit Microcontrollers. AVR270: USB Mouse Demonstration
AVR270: USB Mouse Demonstration Features Runs with AT90USB Microcontrollers at 8MHz USB Low Power Bus Powered Device (less then 100mA) Supported by any PC running Windows (98SE or later), Linux or Mac
Kernel comparison of OpenSolaris, Windows Vista and. Linux 2.6
Kernel comparison of OpenSolaris, Windows Vista and Linux 2.6 The idea of writing this paper is evoked by Max Bruning's view on Solaris, BSD and Linux. The comparison of advantages and disadvantages among
The BSN Hardware and Software Platform: Enabling Easy Development of Body Sensor Network Applications
The BSN Hardware and Software Platform: Enabling Easy Development of Body Sensor Network Applications Joshua Ellul [email protected] Overview Brief introduction to Body Sensor Networks BSN Hardware
CSC 2405: Computer Systems II
CSC 2405: Computer Systems II Spring 2013 (TR 8:30-9:45 in G86) Mirela Damian http://www.csc.villanova.edu/~mdamian/csc2405/ Introductions Mirela Damian Room 167A in the Mendel Science Building [email protected]
Introducing etoken. What is etoken?
Introducing etoken Nirit Bear September 2002 What is etoken? Small & portable reader-less Smartcard Standard USB connectivity Logical and physical protection Tamper evident (vs. tamper proof) Water resistant
Operating Systems Design 16. Networking: Sockets
Operating Systems Design 16. Networking: Sockets Paul Krzyzanowski [email protected] 1 Sockets IP lets us send data between machines TCP & UDP are transport layer protocols Contain port number to identify
Pre-tested System-on-Chip Design. Accelerates PLD Development
Pre-tested System-on-Chip Design Accelerates PLD Development March 2010 Lattice Semiconductor 5555 Northeast Moore Ct. Hillsboro, Oregon 97124 USA Telephone: (503) 268-8000 www.latticesemi.com 1 Pre-tested
Operating System Structures
Operating System Structures Meelis ROOS [email protected] Institute of Computer Science Tartu University fall 2009 Literature A. S. Tanenbaum. Modern Operating Systems. 2nd ed. Prentice Hall. 2001. G. Nutt.
DaliControl Service and Comisioning Wizard Version 1.1. Softwaretool. User Manual. Revision: 2006-06-22
DaliControl Service and Comisioning Wizard Version 1.1 Softwaretool User Manual Copyright and Notes This software and documentation are property of IPAS GmbH, Germany. Windows 2000, Windows XP, Windows
USB Flash Drive User s Manual
USB Flash Drive User s Manual V4.01 Introduction Thank you for your purchasing the USB Drive. This manual will guide you through the usages of the USB Drive and of all management tools coming with it.
Computer Systems Structure Input/Output
Computer Systems Structure Input/Output Peripherals Computer Central Processing Unit Main Memory Computer Systems Interconnection Communication lines Input Output Ward 1 Ward 2 Examples of I/O Devices
Yamaha 01V96 Version2 Upgrade Guide
Yamaha 01V96 Version2 Upgrade Guide This document explains how to upgrade the 01V96 system software to V2.00 or later. Precautions (please be sure to read these precautions) The user assumes full responsibility
How To Connect A Port Replicator With An Ethernet To A Usb Port From A Usb Device
USB Mobile Port Replicator with Ethernet NOTEBOOK COMPUTER MOBILE PORT REPLICATOR User s Guide INTRODUCTION Congratulations on your purchase of the Targus USB Mobile Port Replicator with Ethernet! It is
Protocols and Architecture. Protocol Architecture.
Protocols and Architecture Protocol Architecture. Layered structure of hardware and software to support exchange of data between systems/distributed applications Set of rules for transmission of data between
IP Card Reader Interface User Manual
IP Card Reader Interface User Manual SB Research 2009-2011 The IP Reader Interface family: Concept: The IP Card Reader Interface allows access control card readers to be connected to a network device,
SAN Conceptual and Design Basics
TECHNICAL NOTE VMware Infrastructure 3 SAN Conceptual and Design Basics VMware ESX Server can be used in conjunction with a SAN (storage area network), a specialized high speed network that connects computer
1 Minimum system requirements
Metrohm AG CH-9101 Herisau Switzerland Phone +41 71 353 85 85 Fax +41 71 353 89 01 [email protected] www.metrohm.com Installation MagIC Net 2.x 1 Minimum system requirements Operating system RAM Memory
Standardized software components will help in mastering the. software should be developed for FlexRay were presented at
Embedded Software for FlexRay Systems Special aspects and benefits of implementing modularized software Standardized software components will help in mastering the growing complexity of the interplay of
Chapter 1. Introduction to ios Development. Objectives: Touch on the history of ios and the devices that support this operating system.
Chapter 1 Introduction to ios Development Objectives: Touch on the history of ios and the devices that support this operating system. Understand the different types of Apple Developer accounts. Introduce
Lab 0 (Setting up your Development Environment) Week 1
ECE155: Engineering Design with Embedded Systems Winter 2013 Lab 0 (Setting up your Development Environment) Week 1 Prepared by Kirill Morozov version 1.2 1 Objectives In this lab, you ll familiarize yourself
Centran Version 4 Getting Started Guide KABA MAS. Table Of Contents
Page 1 Centran Version 4 Getting Started Guide KABA MAS Kaba Mas Welcome Kaba Mas, part of the world-wide Kaba group, is the world's leading manufacturer and supplier of high security, electronic safe
Review from last time. CS 537 Lecture 3 OS Structure. OS structure. What you should learn from this lecture
Review from last time CS 537 Lecture 3 OS Structure What HW structures are used by the OS? What is a system call? Michael Swift Remzi Arpaci-Dussea, Michael Swift 1 Remzi Arpaci-Dussea, Michael Swift 2
Call Recorder Oygo Manual. Version 1.001.11
Call Recorder Oygo Manual Version 1.001.11 Contents 1 Introduction...4 2 Getting started...5 2.1 Hardware installation...5 2.2 Software installation...6 2.2.1 Software configuration... 7 3 Options menu...8
Chapter 3 Operating-System Structures
Contents 1. Introduction 2. Computer-System Structures 3. Operating-System Structures 4. Processes 5. Threads 6. CPU Scheduling 7. Process Synchronization 8. Deadlocks 9. Memory Management 10. Virtual
A guide to CLARiSUITE TM network solutions
Technical FAQ s CLARiSUITE Code Assurance A guide to CLARiSUITE TM network solutions Overview IT infrastructure security, integrity and stability are primary concerns of Videojet and its customers. Management
Software User Guide UG-461
Software User Guide UG-461 One Technology Way P.O. Box 9106 Norwood, MA 02062-9106, U.S.A. Tel: 781.329.4700 Fax: 781.461.3113 www.analog.com ezlinx icoupler Isolated Interface Development Environment
Network Licensing. White Paper 0-15Apr014ks(WP02_Network) Network Licensing with the CRYPTO-BOX. White Paper
WP2 Subject: with the CRYPTO-BOX Version: Smarx OS PPK 5.90 and higher 0-15Apr014ks(WP02_Network).odt Last Update: 28 April 2014 Target Operating Systems: Windows 8/7/Vista (32 & 64 bit), XP, Linux, OS
Software and driver installation
Software and driver installation Note: It is good practice to make regular backups of your data on your PC, particularly before installing drivers. Installing the VNWA software and drivers is by no means
KNX IP only A New Class of KNX Devices. WEINZIERL ENGINEERING GmbH. Dr.-Ing. Th. Weinzierl D-84558 Tyrlaching www.weinzierl.de
KNX IP only A New Class of KNX Devices Dr.-Ing. Th. Weinzierl D-84558 Tyrlaching www.weinzierl.de KNX IP only means communication only over the Internet Protocol in a computer network. At first this may
VMware Virtualization and Software Development
VMware Virtualization and Software Development 1 VMware Virtualization and Software Development Mark Cloutier Undergraduate Student, Applied Math and Computer Science Keywords: Virtualization, VMware,
A Real Time, Object Oriented Fieldbus Management System
A Real Time, Object Oriented Fieldbus Management System Mr. Ole Cramer Nielsen Managing Director PROCES-DATA Supervisor International P-NET User Organisation Navervej 8 8600 Silkeborg Denmark [email protected]
Objectives. Chapter 2: Operating-System Structures. Operating System Services (Cont.) Operating System Services. Operating System Services (Cont.
Objectives To describe the services an operating system provides to users, processes, and other systems To discuss the various ways of structuring an operating system Chapter 2: Operating-System Structures
Plug and Play for Windows 2000
Operating System Plug and Play for Windows 2000 White Paper Abstract This paper describes the Microsoft Windows 2000 operating system implementation of Plug and Play. Plug and Play is one of a number of
Process Control and Automation using Modbus Protocol
Process Control and Automation using Modbus Protocol Modbus is the fundamental network protocol used in most industrial applications today. It is universal, open and an easy to use protocol. Modbus has
Useful USB Gadgets on Linux
Useful USB Gadgets on Linux February, 2012 Gary Bisson Adeneo Embedded Embedded Linux Conference 2012 1 Agenda Introduction to USB USB Gadget API Existing Gadgets Design your own Gadget Demo Conclusion
Linux Kernel Architecture
Linux Kernel Architecture Amir Hossein Payberah [email protected] Contents What is Kernel? Kernel Architecture Overview User Space Kernel Space Kernel Functional Overview File System Process Management
