USB Integration of Transceivers

Size: px
Start display at page:

Download "USB Integration of Transceivers"

Transcription

1 USB Integration of Transceivers Yassine Lamrani Abou Elassad Computer Science Jacobs University Bremen Campus Ring Bremen Germany Type: Guided Research Thesis Date: May 7, 2009 Supervisor: Prof. Dr. Jürgen Schönwälder Page 1

2 Preface This document should give detailed description of how the USB subsystem works along with the API and functions used in writing a usb device driver. It starts with general definitions and information about the RZ raven kit, the IEEE standard and the Zigbee protocols before moving on to the theory behind usb driver coding. It explains the background behind the Universal Serial Bus and specifies the different types of devices and their classes along with some diagrams to summarize the theory. Afterwards, this report attempts to explain and provide the base code of how to write the USB driver for the Atmel Raven board. At the end, there will be a conclusion introducing possible future work, and references to the information used in here. Page 2

3 Table of Contents: 1. Executive Summery 4 2. Introduction 5 3. USB Background 3 4. Writing a USB driver 7 5. Coding the Atmel Raven Driver Future work and Conclusion (to be added) References 19 Page 3

4 1. Executive Summery AVRs have been, and are aimed to be, used in various domains such as Home Automation, Telecommunication Applications, personal, Home, and Hospital Care. AVRs have a large following due to the free and inexpensive development tools available, including reasonably priced development boards and free development software. One of the main evaluation kits using this controller family is the AVR Raven wireless kit. This kit supports wireless development using Atmel's IEEE chipsets, for ZigBee and other wireless stacks. The Zigbee protocols are intended for use in embedded applications requiring low data rates and low power consumption, which makes the AVR boards particularly useful in many areas. The AVR boards can be used in security, safety, powertrain and entertainment systems. In the automotive field, some current usages are in BMW, Daimler-Chrysler and TRW. So far, the AVR RZRAVEN 2.4 GHz Evaluation and Starter kit is only aimed for the windows operating system which is losing popularity amongst today s computer scientists as opposed to the Linux platforms. Linux is an open source operating system with many distributions specialized for different purposes, ranging from embedded systems to support of computer architecture. Today, the growth of Linux users has become remarkably imminent. As of 2007, most cell phones or PDAs, like Nokia N810, Motorola MING series, and the Google Android are running on Linux. The ELCPS (Embedded Linux Consortium Platform Specification) [3] has been produced by the Embedded Linux Consortium, offering a guide to embedded Linux devices developers. Providing support for the AVR Raven boards in Linux will facilitate the usage of the device within embedded systems and thereby increase its usage. The goal of this Research is the USB integration of the Atmel Raven board in Linux. Page 4

5 2. Introduction: Atmel Corporation [9], founded in 1984, is a manufacturer of semiconductors where its main focus is on system-level solutions built around flash microcontrollers. Its main products are microcontrollers such as 8051 derivatives, AT91SAM and AT91CAP ARM-based micros, and its own Atmel AVR and AVR32 architectures, radio frequency (RF) devices, EEPROM and Flash memory devices, along with many other application-specific products. Atmel has been able to offer system on chip solutions to its customers and serves a range of application segments; consumer, communications, computer networking, industrial, medical, automotive, aerospace and military. Atmel has also been considered an industry leader in secure systems, and especially for the smart card market. In 1996, Atmel has introduced the AVR microcontroller which used on-chip flash memory for program storage, as opposed to One-Time Programmable ROM, EPROM, or EEPROM used by other microcontrollers at the time. The AVR [10], or "Alf and Vegard's Risc", is a Modified Harvard architecture 8-bit RISC single chip microcontroller conceived by two students at the Norwegian Institute of Technology (NTH) Alf-Egil Bogen and Vegard Wollan. The Official Atmel AVR development tools and evaluation kits consists of a small number of starter kits and debugging tools with support for most AVR devices. The RAVEN kit (figure 0.1) supports wireless development using Atmel's IEEE chipsets, for ZigBee and other wireless stacks [10]. The kit serves as a versatile and professional platform for developing and debugging a wide range of RF applications; spanning from: simple point-to-point communication through full blown sensor networks with numerous nodes running complex communication stacks. It includes two AVR Raven boards (AVRRAVEN) which contain a 2.4 GHz transceiver supporting IEEE and a freely licensed ZigBee stack. These transceivers are driven with ATmega1284p processors, which are supported by a custom segmented LCD display driven by an ATmega3290p processor. Also the kit include one USB stick (AVRRZUSBSTICK) with a 2.4 GHz transceiver for USB connection to a host computer. The USB stick uses an AT90usb1287 for connections to a USB host and to the 2.4 GHz wireless links. ZigBee is a low-cost, low-power, wireless standard [11]. It operates in the industrial, scientific and medical (ISM) radio bands and intended for use in embedded applications requiring low data rates and low power consumption. It is oriented towards defining an inexpensive, general purpose self-organizing mesh network that Page 5

6 can be widely used which would provide high reliability and larger range. Some of the application areas of Zigbee include: Home Entertainment and Control Smart lighting, advanced temperature control, safety and security, movies and music Home Awareness Water sensors, power sensors, smoke and fire detectors, smart appliances and access sensors Mobile Services m-payment, m-monitoring and control, m-security and access control, m-healthcare and tele-assist Commercial Building Energy monitoring, HVAC, lighting, access control Industrial Plant Process control, asset management, environmental management, energy management, industrial device control The IEEE is the standard defining the protocol and interconnection of devices via radio communication in a personal area network (PAN) [12]. It uses carrier sense multiple access with collision avoidance (CSMA-CA) and offers support to the star and peer to peer topologies. Lately, the IEEE standard includes two optional physical layers (PHYs) for an overall of four PHYS, thus yielding higher data rates in the lower frequency bands. In general the IEEE devices are used primarily on embedded systems, where Linux has become a major force. The aim of this project was to implement a USB driver for Linux for the AVR Raven Boards. This part of the research deals with registering the USB driver and being able to detect the AVR Raven as a networking device for latter use and development. Figure 2.1: the AVR Raven kit Page 6

7 3. USB Background: The USB or Universal Serial Bus [1] is a serial bus standard which serves as a connection between a host computer and a number of peripheral devices. It was originally intended to replace many slow and different buses, namely the serial and parallel connections with a single standardized socket. The Topology of a USB subsystem consists of a tree built out of four point-topoint links: ground, power, and two signal wires. When plugging a USB device to a computer, the USB host controller ask the device if it has any data to send. The USB device never starts sending data without first being asked by the host controller. This configuration improves plug and play capabilities by allowing host swapping. Devices can be added and removed without the need to reboot the system or being turned off while they also can be automatically configured by the host computer. Other features of USB include: Providing power to low consumption devices via the ground and power cables, The ability for a device to request a fixed bandwidth for its data transfers resulting in high reliably with respect to video and audio I/O. USB acts merely as a communication channel between the device and the host, thus no specific meaning or structure to the data it delivers is required. USB is considered to be very simple at the technological level because of its aspect of being a single-master implementation in which the host computer polls the various peripheral devices. Many USB devices can be used without the need for a manufacturer-specific driver to be installed. This is the case when the device follows the standard defined by the USB protocol specifications. More precisely, there are different types of devices. USB defines class codes used to identify these types (storage devices, keyboards, mice, network devices...) and load a driver based on the device functionality. However, there are other types of devices that don t fit into the device classes defined by the USB protocol. Each vendor decides to implement a custom protocol to talk to their device, so a custom driver usually needs to be created[1]. Figure 1.1 shows the different types of classes used to map the USB device to a specific driver. The Atmel Raven boards may be considered to be of the 02h class since they constitute a communication device similar to the other networking tools. However, the Raven boards take in special commands as input and give different outputs than that of a simple networking device (e.g. modem or network card). Therefore, the Atmel Raven boards fall under the FFH class where a vendor specific driver is needed to communicate with the device. Page 7

8 In general the Linux kernel offers support to two main types of USB drivers: drivers on a host system and drivers on a device. The USB drivers for a host system allow control over the USB devices plugged into the host computer. On the other hand, the USB drivers in a device control how the device looks to the host computer as a USB device. This type of drivers has been assigned the name USB gadget drivers to differentiate it from the USB device drivers aimed for the host system. It is assumed that a USB gadget driver is already provided for the Atmel RZ Raven boards and thus this research focuses on the USB system description and the Atmel Raven driver coding for the Linux operating system. Figure 1.2 shows how the USB drivers live between the kernel subsystems and the USB hardware controllers (USB core and USB host controller) in Linux. The USB core has a specific applications programming interface (API) to support USB devices and host controllers. Its utility resides in providing an interface for USB drivers to use to access and control the USB devices independently of the types of USB hardware controllers that are used. Figure 3.1: Description of different types of classes used to define the functionality of USB devices[13]. Page 8

9 Figure 3.2: overview of USB drivers [1]. The interaction between the USB core and the USB driver is made through the USB descriptors: Endpoints, Interfaces, and configurations. Endpoints Endpoints [2] are the means for the most basic form of USB communication. An endpoint is a logical entity on the device, and can be considered as unidirectional pipes, carrying data either from the device to the host computer (IN endpoint) or from the host computer to the device (OUT endpoint). We can differentiate between four different types of endpoints, namely: Control endpoints: a simple endpoint type, used to configure the device, retrieve information about it and send commands to it. This kind of endpoint is common amongst all devices which then use it to configure themselves at insertion time. Moreover, it is guaranteed that the USB protocol will always reserve enough bandwidth for the corresponding data transfer. Interrupt endpoints: guarantee reserved bandwidth for data transfer whenever the host asks the device for data. It is commonly used by devices that constantly require guaranteed response time such as keyboards and mice. Bulk endpoints: these use all the bandwidth left over promising no data loss, however, offering no guarantee on bandwidth or latency. Mostly used for printers and network devices. Page 9

10 Isochronous endpoints: used when large amounts of data are needed to be transferred rapidly, such as the case of audio and video devices, with a tradeoff between speed and guaranteed data transfer. The type and address of the endpoint and the maximum packet size in bytes the endpoint can handle at once is given by the _u8 bmattributes, bendpointaddress, and wmaxpacketsize fields under the usb_endpoint_descriptor structure [1] in the kernel. This structure contains all of the USB-specific data which is written in the exact format that the device specifies. Interfaces A device might provide several applications (e.g., a webcam with integrated microphone). In this case, an interface is assigned to each high-level function and one driver is needed for every interface [2]. In general, Endpoints are bundled up into Interfaces. These USB interfaces are described in the kernel with the struct usb_interface structure which is passed by the USB core to USB drivers. The USB driver is then in charge for controlling this interface. We note the following important fields inside this structure to be [1]: struct usb_host_interface *altsetting : An array of interface structures containing all of the alternate settings that may be selected for this interface. unsigned num_altsetting: The number of alternate settings pointed to by the altsetting pointer. struct usb_host_interface *cur_altsetting: A pointer into the array altsetting, denoting the currently active setting for this interface. int minor: If the USB driver bound to this interface uses the USB major number, this variable contains the minor number assigned by the USB core to the interface. Alternate settings describe the different choices for parameters of the interface. They can be used to control individual endpoints in different ways, such as to reserve different amounts of USB bandwidth for the device. Configurations USB interfaces are bundled up into Configurations. The USB device can have many configurations and changing the state of the device implies switching the configuration of the device. USB configurations are described with the structure struct usb_host_config. Finally, configurations are bundled up into a USB device described with the struct usb_device structure. Figure 1.3 shows how a USB device consists of Page 10

11 configurations, interfaces, and endpoints and how the USB drivers bind to USB interfaces rather than the entire USB device. Figure 3.3: overview of a USB Device (USB webcam)[2]. Atmel RZ Raven USB basics: Endpoint type: Bulk Interfaces: Communications, CDC Control. Configurations: Active, Standby Note that the same interfaces describes the 02h class from the device classes table in figure 1.1. However, the Atmel RZ Raven board falls under the FFh class since no matching driver is registered for Atmel vendor ID and Product ID of the RZ raven board. The purpose of this research is then to identify the approach used to write the USB driver for the Atmel RZ raven board and creating a USB driver able to identify it as a networking device and establish a simple communication with it. Page 11

12 4. Writing a USB driver: The approach behind writing a USB driver is based on the driver registering the USB device it is meant for with the USB subsystem and using the vendor and device identification later to detect the USB device at plug in time[1]. The driver also defines which functions to call when the device it supports is inserted or removed from the system The list of devices that the USB driver supports is written under the struct usb_device_id structure. The USB core uses this list to decide which driver to assign a device while the hotplug scripts use this same list to decide which driver to automatically load for a specific device at plug in time. The important fields (related to our driver code) defining the struct usb_device_id structure to note are [1]: u16 idvendor: The USB vendor ID for the device. This number is assigned by the USB forum to its members and cannot be made up by anyone else. u16 idproduct: The USB product ID for the device. u8 binterfaceclass u8 binterfacesubclass u8 binterfaceprotocol These define the class, subclass, and protocol of the individual interface, respectively. Two important macros that are used to initialize this structure are [1]: USB_DEVICE(vendor, product): This Creates a struct usb_device_id that can be used to match only the specified vendor and product ID values of a USB device to its driver. USB_I TERFACE_I FO(class, subclass, protocol): This Creates a struct usb_device_id that can be used to match a specific class of USB interfaces identifying the functionalities of a USB device. Since Raven boards need a specific driver, we will be using the USB_DEVICE(vendor, product) macro. To Define the struct usb_device_id table for a USB device driver defining a device with provided vendor and product identification, [1] we would write: Page 12

13 /* table of devices that work with this driver */ static struct usb_device_id skel_table [ ] = { { USB_DEVICE(USB_SKEL_VE DOR_ID, USB_SKEL_PRODUCT_ID) }, { } /* Terminating entry */ }; MODULE_DEVICE_TABLE (usb, skel_table); /* this macro allows user-space tools to figure out what devices this driver can control */ Registering a USB driver is nothing else other than describing the USB driver to the USB core [1]. This is done via the struct usb_driver structure which contains the usb_device_id table defined earlier along with other function callbacks and variables that describe the driver. The most important function and variables are as follows [1]: struct module *owner: Pointer to the module owner of the driver. const char *name: Pointer to the name of the driver. The name is usually set to the same name of the module of the driver to ensure its uniqueness amongst all USB drivers in the kernel. It shows up in sysfs under /sys/bus/usb/drivers/ when the driver is in the kernel. const struct usb_device_id *id_table: Pointer to the struct usb_device_id table. int (*probe) (struct usb_interface *intf, const struct usb_device_id *id): Pointer to the probe function in the USB driver. This function is called by the USB core when it thinks it has a struct usb_interface that this driver can handle. A pointer to the struct usb_device_id that the USB core used to make this decision is also passed to this function. If the USB driver claims the struct usb_interface that is passed to it, it should initialize the device properly and return 0. If the driver does not want to claim the device, or an error occurs, it should return a negative error value. void (*disconnect) (struct usb_interface *intf): Pointer to the disconnect function in the USB driver. This function is called by the USB core at deregistration: when the struct usb_interface has been removed from the system or when the driver is being unloaded from the USB core. Page 13

14 Creating the struct usb_driver structure [3] is made as follows: static struct usb_driver skel_driver = {.owner = THIS_MODULE,.name = "skeleton",.id_table = skel_table,.probe = skel_probe,.disconnect = skel_disconnect, }; The registration of the struct usb_driver with the USB core is made via the usb_register_driver call with a pointer to the struct usb_driver as argument. The deregistration is made via a call to usb_deregister_driver with the same struct usb_driver argument [3]. Both the two calls are done within the module initialization code for the USB driver: /*registering driver*/ static int init usb_skel_init(void) { int result; /* register this driver with the USB subsystem */ result = usb_register(&skel_driver); if (result) err("usb_register failed. Error number %d", result); return result; } /*deregistring driver*/ static void exit usb_skel_exit(void) { /* deregister this driver with the USB subsystem */ usb_deregister(&skel_driver); } Page 14

15 5. Coding the Atmel Raven Driver The base code skeleton of the Raven board USB driver is as follows: struct RZraven_device { /* local structure used to save data about the Atmel Raven board */ }; static void write_bulk_callback(struct urb *urb){ /* function called when the USB request block (urb) call succeeds */ } static void RZraven_disconnect(struct usb_device *udev, void *clientdata){ /* function called when the Raven USB stick is disconnected */ } static void *RZraven_probe(struct usb_device *udev, unsigned int ifnum, const struct usb_device_id *id){ /* function called when the Raven USB stick is connected. Also this is where the urb transmition is made. */ } static struct usb_device_id RZraven_id_table [] = { /* this list contains information about the Atmel Raven product Vendor ID to match against when the Raven USB stick is connected*/ }; static struct usb_driver RZraven_usb_driver = { /* structure used to register the callbacks. */ }; int RZraven_init(void){ /* function called at module load time*/ } void RZraven_exit(void){ /*function called at module unload time */ } module_init(rzraven_init); module_exit(rzraven_exit); Page 15

16 The general control flow of the driver is illustrated by the following sequence diagram: Figure 5.1: self explanatory sequence diagram describing the control flow of the USB driver starting from the plug-in time of the device to the unplug time. Page 16

17 The driver code is provided as annex with the full explanation. After successfully installing the Raven driver (raven2021) the user should be able to see that the raven board was detected. [6] The output of dmesg should resemble: usb 5-2: new full speed USB device using uhci_hcd and address 29 usb 5-2: configuration #1 chosen from 1 choice rndis_host 5-2:1.0: dev can't take 1338 byte packets (max 1338), adjusting MTU to 1280 usb0: register 'rndis_host' at usb-0000:00:1d.3-2, RNDIS device, 02:12:13:14:15:16 cdc_acm 5-2:1.2: ttyacm0: USB ACM device usb 5-2: New USB device found, idvendor=03eb, idproduct=2021 usb 5-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3 usb 5-2: Product: RZRAVEN USB DEMO usb 5-2: Manufacturer: Atmel usb 5-2: SerialNumber: The code is only meant to detect the Raven board and be able to read any messages it spits out and also write to it via the IN and OUT bulk endpoints. Further development include defining the commands for interacting with the Raven board and the debug bits (e.g. via reverse engineering). As an example, the following are some of the at76_debug bits for the Atmel 76c50x WLAN driver [5]: #define DBG_PROGRESS 0x /* authentication/accociation */ #define DBG_BSS_TABLE 0x /* show BSS table after scans */ #define DBG_IOCTL 0x /* ioctl calls / settings */. The commands and debug bits can then be used to extend the probe() function and build on the base code provided to complete the USB driver for the Raven board Page 17

18 6. Future work and conclusion: The provided code is not complete yet. However, it constitutes a perfect skeleton for further work. It will be made public, and future developers may use it as base to their code. This was the insinuated intention behind this research since it tackles more the aspects of general USB driver coding than the actual networking details of the AVR Raven boards. Furthermore, this document also introduces the hardware in question and defines two of the main related standards to it: the IEEE and Zigbee. We should note that it is often hard to collect information about a certain subject of rare or abstract resources. Even though, the Linux USB driver coding subject is rather popular, most articles provide too much abstraction with little examples or examples with little abstraction. This document comes as a mediator between the two cases. It is also oriented towards the specific driver coding for the Raven board. Future implementers will surely be able to relate to this work. Devices supporting the IEEE standard are becoming more and more popular (e.g. the Nanoloc TRX transceiver). This research should allow me to further investigate the usage of such devices and implement a Linux USB driver for them accordingly. Such knowledge will prove to be very important when trying to integrate the computer science industry. I should be able to work on it more intensively during the upcoming summer vacation while keeping it as an open source. It may be possible to find other interested parties, and the coding could be done in parallel with other implementers. Current developments regarding the utilization of Raven boards under Linux is available under Contiki. Further reading about this can be found in here: [14]. In any case, there doesn t seem to be any open current basis to the USB driver implementation for the Raven boards like the other vendor specific drivers. This could be the start. And not too long from now, we should be able to have the complete code for download and compiling. Page 18

19 7. References: [1] Jonathan Corbet; Alessandro and Rubini; and Greg Kroah-Hartman (2005). Linux Device Drivers, O Reilly Media (3rd_edition). [2] Michael Opdenacker (2007). Linux USB drivers, Free Electrons. Available at: [3] Matthias Vallentin (2007). Writing a Linux kernel driver for an unknown USB device. Available at: [4] Greg Kroah-Hartman (2001). How to Write a Linux USB Device Drive. Available at: [5] Linux driver for Atmel AT76C503/AT76C505 based USB WLAN adapters. Available at: [6] RZRAVEN USB Stick (Jackdaw). Available at: [7] Detlef Fliegl (2000). Programming Guide for Linux USB Device Drivers, Available at: [8] ATAVRRZRAVEN 2.4 GHz Evaluation and Starter Kit Available at: [9] Wikipedia (2009). Atmel. Available at: [10] Wikipedia (2009). Atmel AVR. Available at: [11] Wikipedia (2009). Zigbee. Available at: [12] Wikipedia (2009). IEEE Available at: [13] Wikipedia (2009). USB. Available at: [14] Rahul Jain (2009). Linux Integration of Networks. Page 19

Introduction USB Pisanje gonilnika USB. USB drivers

Introduction USB Pisanje gonilnika USB. USB drivers drivers drivers Overview 1 2 Urbs 3 drivers universal serial bus (), connection between the computer and peripherals, primarily intended for slow connections: parallel port, serial port, keyboard,... new

More information

Design Of Linux USB Device Driver For LPC2148 Based Data Acquisition System Including GSM.

Design Of Linux USB Device Driver For LPC2148 Based Data Acquisition System Including GSM. Design Of Linux USB Device Driver For LPC2148 Based Data Acquisition System Including GSM. Snehal A. More, Tejashree R. Padwale, Anuja B. Sapkal, Prof. Pradeep R. Taware Abstract- Among several other advantages

More information

Driving Me Nuts Writing a Simple USB Driver

Driving Me Nuts Writing a Simple USB Driver Driving Me Nuts Writing a Simple USB Driver Give your Linux box a multicolored light you can see from across the room, and learn how to write a simple driver for the next piece of hardware you want to

More information

How to fix Usually Slightly Broken devices and drivers?

How to fix Usually Slightly Broken devices and drivers? How to fix Usually Slightly Broken devices and drivers? Krzysztof Opasiak Samsung R&D Institute Poland Agenda USB basics Plug & Play Plug & do what I want Plug & tell me more Summary Q & A 1 This presentation

More information

Debugging Usually Slightly Broken Devices and Drivers

Debugging Usually Slightly Broken Devices and Drivers Debugging Usually Slightly Broken Devices and Drivers Krzysztof Opasiak Samsung R&D Institute Poland Agenda USB basics Plug & Play Plug & do what I want Plug & tell me more Summary Q & A 1 This presentation

More information

Understand USB (in Linux)

Understand USB (in Linux) Understand USB (in Linux) Krzysztof Opasiak Samsung R&D Institute Poland 1 Agenda What USB is about? Plug and Play How BadUSB works? May I have my own USB device? Q & A What USB is about? What Internet

More information

BASIC CHARACTERISTICS OF ZIGBEE AND SIMPLICITI MODULES TO USE IN MEASUREMENT SYSTEMS

BASIC CHARACTERISTICS OF ZIGBEE AND SIMPLICITI MODULES TO USE IN MEASUREMENT SYSTEMS XIX IMEKO World Congress Fundamental and Applied Metrology September 6!11, 2009, Lisbon, Portugal BASIC CHARACTERISTICS OF ZIGBEE AND SIMPLICITI MODULES TO USE IN MEASUREMENT SYSTEMS L. Skrzypczak 1),

More information

2011 Pearson Higher Education, Mazidi, Naimi, and Naimi Pearson Higher Education, 2011 Pearson Higher Education,

2011 Pearson Higher Education, Mazidi, Naimi, and Naimi Pearson Higher Education, 2011 Pearson Higher Education, Objectives Students should be able to: The AVR microcontroller and embedded systems using assembly and c Introduction to AVR Chapter 1 Compare and contrast microprocessors and microcontrollers Describe

More information

I/O Devices. I/O Management Intro. Sample Data Rates. I/O Device Handling. Categories of I/O Devices (by usage)

I/O Devices. I/O Management Intro. Sample Data Rates. I/O Device Handling. Categories of I/O Devices (by usage) I/O Devices I/O Management Intro Chapter 5 There exists a large variety of I/O devices: Many of them with different properties They seem to require different interfaces to manipulate and manage them We

More information

I/O Management Intro. Chapter 5

I/O Management Intro. Chapter 5 I/O Management Intro Chapter 5 1 Learning Outcomes A high-level understanding of the properties of a variety of I/O devices. An understanding of methods of interacting with I/O devices. An appreciation

More information

Fully Mobile Telephony Using VoIP Computer Software

Fully Mobile Telephony Using VoIP Computer Software Fully Mobile Telephony Using VoIP Computer Software Tyler Ross, Habib Hamam, Yassine Bouslimani Université de Moncton, Moncton, NB, Canada Abstract Our global objective is to profit from the technology

More information

David Harrison, Design Engineer for Model Sounds Inc.

David Harrison, Design Engineer for Model Sounds Inc. David Harrison, Design Engineer for Model Sounds Inc. 1 History -1 In 1994 an alliance of four industry partners (Compaq, Intel, Microsoft and NEC) started to specify the Universal Serial Bus (USB). The

More information

Bus Example: Pentium II

Bus Example: Pentium II Peripheral Component Interconnect (PCI) Conventional PCI, often shortened to PCI, is a local computer bus for attaching hardware devices in a computer. PCI stands for Peripheral Component Interconnect

More information

Topics. Introduction Architecture Node Types Network Topologies Traffic Modes Frame Format Applications Conclusion

Topics. Introduction Architecture Node Types Network Topologies Traffic Modes Frame Format Applications Conclusion ZigBee Topics Introduction Architecture Node Types Network Topologies Traffic Modes Frame Format Applications Conclusion Introduction The Wireless technologies (WiFi,GSM,and Bluetooth) All have one thing

More information

Course 10: Interfaces Agenda

Course 10: Interfaces Agenda Course 10: Interfaces 1 Agenda Introduction V.24 interface (RS232) USB 2 Introduction 3 Definition(s) (from the web) A boundary across which two independent systems meet and act on or communicate with

More information

Serial Communications

Serial Communications Serial Communications p. 1/2 Serial Communications CSEE W4840 Prof. Stephen A. Edwards Columbia University Early Serial Communication Serial Communications p. 2/2 Data Terminal Equipment Serial Communications

More information

Zigbee protocol stack overview

Zigbee protocol stack overview Zigbee protocol stack overview 2018 ASSUMPTIONS FOR USING THIS TEACHING MATERIAL DSR and OTSL takes no responsibility about the problem which occurs as a result of applying the technical information written

More information

An Introduction to Universal Serial Bus

An Introduction to Universal Serial Bus An Introduction to Universal Serial Bus Neil Scott June 27, 2008 NEIL SCOTT JUNE 27, 2008 1 Overview Introduction History Hierarchy Enumeration Demonstration Circuit Conclusions Questions NEIL SCOTT JUNE

More information

SuSE Labs / Novell.

SuSE Labs / Novell. Write a real Linux driver Greg Kroah-Hartman SuSE Labs / Novell http://www.kroah.com/usb.tar.gz gregkh@suse.de greg@kroah.com Agenda Intro to kernel modules sysfs basics USB basics Driver to device binding

More information

Outline. TWR Module. Different Wireless Protocols. Section 7. Wireless Communication. Wireless Communication with

Outline. TWR Module. Different Wireless Protocols. Section 7. Wireless Communication. Wireless Communication with Section 7. Wireless Communication Outline Wireless Communication with 802.15.4/Zigbee Protocol Introduction to Freescale MC12311 802.15.4/Zigbee Protocol TWR-12311 Module TWR-MC12311 Smart Radio Features

More information

Design and implementation of ZigBee/IEEE Nodes for

Design and implementation of ZigBee/IEEE Nodes for Design and implementation of ZigBee/IEEE 802.15.4 Nodes for Wireless Sensor Networks Jin-Shyan Lee and Yang-Chih Huang Information and Communications Research Laboratory, Industrial Technology Research

More information

LED Matrix Scrolling using ATmega32 microcontroller

LED Matrix Scrolling using ATmega32 microcontroller LED Matrix Scrolling using ATmega32 microcontroller Deepti Rawat 1, Gunjan Aggarwal 2, Dinesh Kumar Yadav 3, S.K. Mahajan 4 Department of Electronics and Communication Engineering IIMT college of Engineering,

More information

Serial Communications

Serial Communications Serial Communications p. 1/2 Serial Communications Prof. Stephen A. Edwards sedwards@cs.columbia.edu Columbia University Spring 2007 Early Serial Communication Serial Communications p. 2/2 Data Terminal

More information

Memory Architectures. Hongwei Zhang. Chapter 9

Memory Architectures. Hongwei Zhang.   Chapter 9 Chapter 9 Memory Architectures Hongwei Zhang http://www.cs.wayne.edu/~hzhang/ Ack.: this lecture is prepared in part based on slides of Lee, Sangiovanni-Vincentelli, and Seshia. Role of Memory in Embedded

More information

Radiocrafts Embedded Wireless Solutions

Radiocrafts Embedded Wireless Solutions Selecting an IEEE 802.15.4, 2.4 GHz wireless solution By Ø.Nottveit Abstract Companies searching for a low power 2.45 GHz wireless solution will find many different technical solutions. This white paper

More information

SERIAL BUS COMMUNICATION PROTOCOLS USB

SERIAL BUS COMMUNICATION PROTOCOLS USB DEVICES AND COMMUNICATION BUSES FOR DEVICES NETWORK Lesson-20: SERIAL BUS COMMUNICATION PROTOCOLS USB 1 USB Host Applications Connecting flash memory cards, pen-like memory devices, digital camera, printer,

More information

Wireless communication standards: What makes them unattractive for WSN:

Wireless communication standards: What makes them unattractive for WSN: Wireless communication standards: IEEE 802.11 a/b/g Bluetooth GSM What makes them unattractive for WSN: Power hungry (need big batteries) Complexity (need lots of clock cycles and memory) New protocol

More information

Storage Systems. NPTEL Course Jan K. Gopinath Indian Institute of Science

Storage Systems. NPTEL Course Jan K. Gopinath Indian Institute of Science Storage Systems NPTEL Course Jan 2013 (Lecture 11) K. Gopinath Indian Institute of Science USB Mass Storage Device A USB has a microcontroller that handles USB protocol a media controller that handles

More information

Analysis and Integration of IEEE Networks on Linux

Analysis and Integration of IEEE Networks on Linux Analysis and Integration of IEEE 802.15.4 Networks on Linux Rahul Jain Computer Science Jacobs University Bremen Campus Ring 1 28759 Bremen Germany Type: Guided Research Report Date: May 15, 2009 Supervisor:

More information

AT THE END OF THIS SECTION, YOU SHOULD HAVE AN UNDERSTANDING OF THE

AT THE END OF THIS SECTION, YOU SHOULD HAVE AN UNDERSTANDING OF THE Wireless Technology AT THE END OF THIS SECTION, YOU SHOULD HAVE AN UNDERSTANDING OF THE UNDERLYING WIRELESS TECHNOLOGIES. References 2 The physical layer provides mechanical, electrical, l functional,

More information

Modulation. Propagation. Typical frequency bands

Modulation. Propagation. Typical frequency bands References Wireless Technology 2 AT THE END OF THIS SECTION, YOU SHOULD HAVE AN UNDERSTANDING OF THE UNDERLYING WIRELESS TECHNOLOGIES. The physical layer provides mechanical, electrical, l functional,

More information

ATmega128. Introduction

ATmega128. Introduction ATmega128 Introduction AVR Microcontroller 8-bit microcontroller released in 1997 by Atmel which was founded in 1984. The AVR architecture was conceived by two students (Alf-Egil Bogen, Vergard-Wollen)

More information

A Frame Work for Virtual USB Devices under Linux Environment

A Frame Work for Virtual USB Devices under Linux Environment International Journal of Computer Science and Telecommunications [Volume 1, Issue 1, November 2010] 13 ISSN 2047-3338 A Frame Work for Virtual USB Devices under Linux Environment M. A. Naeem 1 and Rizwan

More information

KW41Z IEEE and BLE Coexistence Performance

KW41Z IEEE and BLE Coexistence Performance NXP Semiconductors Document Number: AN12231 Application Note Rev. 0, 08/2018 KW41Z IEEE 802.15.4 and BLE Coexistence Performance MWS module 1. About this manual This document aims to evaluate the performance

More information

USB INTERFACE AND DRIVER Mentor: Dr. Yann Hang Lee Team Members: Jubin Mehta, Koshik Samota (jmehta3,

USB INTERFACE AND DRIVER Mentor: Dr. Yann Hang Lee Team Members: Jubin Mehta, Koshik Samota   (jmehta3, USB INTERFACE AND DRIVER Mentor: Dr. Yann Hang Lee Team Members: Jubin Mehta, Koshik Samota Email: (jmehta3, ksamota)@asu.edu INTRODUCTION With so much advancement in technology, producing, processing

More information

ZIGBEE. Erkan Ünal CSE 401 SPECIAL TOPICS IN COMPUTER NETWORKS

ZIGBEE. Erkan Ünal CSE 401 SPECIAL TOPICS IN COMPUTER NETWORKS ZIGBEE Erkan Ünal CSE 401 SPECIAL TOPICS IN COMPUTER NETWORKS OUTLINE ZIGBEE AND APPLICATIONS IEEE 802.15.4 PROTOCOL ZIGBEE PROTOCOL ZIGBEE ALLIANCE ZIGBEE APPLICATIONS PHYSICAL LAYER MAC LAYER ZIGBEE

More information

Data Communication. Introduction of Communication. Data Communication. Elements of Data Communication (Communication Model)

Data Communication. Introduction of Communication. Data Communication. Elements of Data Communication (Communication Model) Data Communication Introduction of Communication The need to communicate is part of man s inherent being. Since the beginning of time the human race has communicated using different techniques and methods.

More information

Computer Systems. Communication (networks, radio links) Meatware (people, users don t forget them)

Computer Systems. Communication (networks, radio links) Meatware (people, users don t forget them) Computers are useful machines, but they are generally useless by themselves. Computers are usually part of a system a computer system includes: Hardware (machines) Software (programs, applications) Communication

More information

Digital Circuits Part 2 - Communication

Digital Circuits Part 2 - Communication Introductory Medical Device Prototyping Digital Circuits Part 2 - Communication, http://saliterman.umn.edu/ Department of Biomedical Engineering, University of Minnesota Topics Microcontrollers Memory

More information

PGT302 Embedded Software Technology. PGT302 Embedded Software Technology

PGT302 Embedded Software Technology. PGT302 Embedded Software Technology PGT302 Embedded Software Technology 1 PART 1 Introduction to the Embedded World 2 Objectives for Part 1 Need to DESCRIBE and DISCUSS the following topics: Embedded systems Embedded software Embedded hardware

More information

Microprocessors LCD Parallel Port USB Port

Microprocessors LCD Parallel Port USB Port Microprocessors LCD Parallel Port USB Port H. Abdoli Bu-Ali Sina University 1 New LCDs Interfacing Lower prices Display numbers, characters, graphics Integrated refreshing controller Ease of programming

More information

Driving Me Nuts Device Classes

Driving Me Nuts Device Classes Driving Me Nuts Device Classes More necessary insructions for making your new device driver play nice in the 2.6 kernel. by Greg Kroah-Hartman In the last Driving Me Nuts column [see LJ, June 2003], we

More information

USB for Embedded Devices. Mohit Maheshwari Prashant Garg

USB for Embedded Devices. Mohit Maheshwari Prashant Garg USB for Embedded Devices Mohit Maheshwari 200601008 Prashant Garg 200601144 USB : An Introduction The Universal Serial Bus (USB) is a specification developed by Compaq, Intel, Microsoft and NEC, joined

More information

USB Complete. The Developer's Guide Fifth Edition. Jan Axelson. Lakeview Research LLC Madison, WI 53704

USB Complete. The Developer's Guide Fifth Edition. Jan Axelson. Lakeview Research LLC Madison, WI 53704 USB Complete The Developer's Guide Fifth Edition Jan Axelson Lakeview Research LLC Madison, WI 53704 Contents Introduction 1 USB Basics 1 Uses and limits 1 Benefits for users 2 Benefits for developers

More information

Ali Karimpour Associate Professor Ferdowsi University of Mashhad

Ali Karimpour Associate Professor Ferdowsi University of Mashhad AUTOMATIC CONTROL SYSTEMS Ali Karimpour Associate Professor Ferdowsi University of Mashhad Main reference: Christopher T. Kilian, (2001), Modern Control Technology: Components and Systems Publisher: Delmar

More information

The world of BAOS. Easy connectivity for KNX with Bus Access and Object Server. Overview and applications

The world of BAOS. Easy connectivity for KNX with Bus Access and Object Server. Overview and applications The world of BAOS Easy connectivity for KNX with Bus Access and Object Server Overview and applications WEINZIERL ENGINEERING GmbH Achatz 3 DE-84508 Burgkirchen / Alz Germany Phone : +49 (0)8677 / 91 636

More information

Message acknowledgement and an optional beacon. Channel Access is via Carrier Sense Multiple Access with

Message acknowledgement and an optional beacon. Channel Access is via Carrier Sense Multiple Access with ZigBee IEEE 802.15.4 Emerging standard for low-power wireless monitoring and control Scale to many devices Long lifetime is important (contrast to Bluetooth) 10-75m range typical Designed for industrial

More information

PLX USB Development Kit

PLX USB Development Kit 870 Maude Avenue Sunnyvale, California 94085 Tel (408) 774-9060 Fax (408) 774-2169 E-mail: www.plxtech.com/contacts Internet: www.plxtech.com/netchip PLX USB Development Kit PLX Technology s USB development

More information

Study of Smart Home System based on Zigbee Wireless Sensor System. Jie Huang 1

Study of Smart Home System based on Zigbee Wireless Sensor System. Jie Huang 1 2nd Workshop on Advanced Research and Technology in Industry Applications (WARTIA 2016) Study of Smart Home System based on Zigbee Wireless Sensor System Jie Huang 1 1 College of Mechanical and Electronic

More information

Institute of Electrical and Electronics Engineers (IEEE) IEEE standards

Institute of Electrical and Electronics Engineers (IEEE) IEEE standards HW Institute of Electrical and Electronics Engineers (IEEE) IEEE 802.11 standards WLAN Standard (IEEE 802.11) The IEEE 802.11 is a family of standards that governs the operations and functions of WLANs.

More information

Universal Serial Bus Host Stack User s Manual V3.41

Universal Serial Bus Host Stack User s Manual V3.41 μc/ USB Host TM Universal Serial Bus Host Stack User s Manual V3.41 Micrium 1290 Weston Road, Suite 306 Weston, FL 33326 USA www.micrium.com Designations used by companies to distinguish their products

More information

ECEN 449 Microprocessor System Design. Hardware-Software Communication. Texas A&M University

ECEN 449 Microprocessor System Design. Hardware-Software Communication. Texas A&M University ECEN 449 Microprocessor System Design Hardware-Software Communication 1 Objectives of this Lecture Unit Learn basics of Hardware-Software communication Memory Mapped I/O Polling/Interrupts 2 Motivation

More information

Human Interface Devices: Using Control and Interrupt Transfers

Human Interface Devices: Using Control and Interrupt Transfers Human Interface Devices: Using Control and Interrupt Transfers 11 Human Interface Devices: Using Control and Interrupt Transfers The human interface device (HID) class was one of the first USB classes

More information

Introduction to USB/LPC23xx

Introduction to USB/LPC23xx Introduction to USB/LPC23xx Amitkumar (Amit) Bhojraj Business Line Standard IC s Product Line Microcontrollers October 2007 Introduction to USB Agenda LPC23xx Block diagram MCB2300 demo 2 Introduction

More information

Tethering an Android Smartphone to USB Devices

Tethering an Android Smartphone to USB Devices Tethering an Android Smartphone to USB Devices March 2011 BizDev@SecureCommConsulting.com Veteran Owned Small Business DUNS: 003083420 CAGE: 4SX48 http://www.securecommconsulting.com 1.1. Purpose This

More information

Research on Modern Bluetooth Technology

Research on Modern Bluetooth Technology Research on Modern Bluetooth Technology D.Annal 1, T.Indira 2, K.Poojitha 3, R.Rajashree 4 Student, Dept. of CSE, Magna College of Engineering, Chennai, Tamil Nadu, India 1,2,3,4 ABSTRACT: The seemingly

More information

Distributed Real-Time Control Systems. Module 3 Hardware for Real Time Distributed Control Systems

Distributed Real-Time Control Systems. Module 3 Hardware for Real Time Distributed Control Systems Distributed Real-Time Control Systems Module 3 Hardware for Real Time Distributed Control Systems 1 General Topology of Real-Time Distributed Control Systems System Management Data Backup Intranet User

More information

Embedded Driving Me Nuts: Writing a Real Driver In User Space

Embedded Driving Me Nuts: Writing a Real Driver In User Space Embedded Driving Me Nuts: Writing a Real Driver In User Space Now you can control USB hardware without touching the kernel and even make your driver run on BSD-based OSes with no code changes. by Greg

More information

Wireless# Guide to Wireless Communications. Objectives

Wireless# Guide to Wireless Communications. Objectives Wireless# Guide to Wireless Communications Chapter 1 Introduction to Wireless Communications Jorge Olenewa jolenewa@georgebrown.ca Office: E425 ext. 6809 Objectives Explain how the major wireless technologies

More information

Cross-Domain Development Kit XDK110 Platform for Application Development

Cross-Domain Development Kit XDK110 Platform for Application Development USB Guide Cross-Domain Development Kit Platform for Application Development Bosch Connected Devices and Solutions : Data Sheet Document revision 1.0 Document release date 03/01/2017 Document number Technical

More information

PDF created with pdffactory Pro trial version How USB Ports Work by Marshall Brain. Introduction to How USB Ports Work

PDF created with pdffactory Pro trial version  How USB Ports Work by Marshall Brain. Introduction to How USB Ports Work Main > Computer > Hardware How USB Ports Work by Marshall Brain Introduction to How USB Ports Work Just about any computer that you buy today comes with one or more Universal Serial Bus connectors on the

More information

- Knowledge of basic computer architecture and organization, ECE 445

- Knowledge of basic computer architecture and organization, ECE 445 ECE 446: Device Driver Development Fall 2014 Wednesdays 7:20-10 PM Office hours: Wednesdays 6:15-7:15 PM or by appointment, Adjunct office Engineering Building room 3707/3708 Last updated: 8/24/14 Instructor:

More information

Controlling electrical home appliances, using Bluetooth Smart Technology (October 2015) Pedro José Vieira da Silva

Controlling electrical home appliances, using Bluetooth Smart Technology (October 2015) Pedro José Vieira da Silva 1 Controlling electrical home appliances, using Smart Technology (October 2015) Pedro José Vieira da Silva Abstract This report presents and describes a Home Energy Management system that accomplish Home

More information

Ali Karimpour Associate Professor Ferdowsi University of Mashhad

Ali Karimpour Associate Professor Ferdowsi University of Mashhad AUTOMATIC CONTROL SYSTEMS Ali Karimpour Associate Professor Ferdowsi University of Mashhad Main reference: Christopher T. Kilian, (2001), Modern Control Technology: Components and Systems Publisher: Delmar

More information

Bluetooth low energy technology Bluegiga Technologies

Bluetooth low energy technology Bluegiga Technologies Bluetooth low energy technology Bluegiga Technologies Topics Background What is Bluetooth low energy? Basic concepts Architecture Differentiation and comparison Markets and applications Background Background

More information

LevelOne BLH-1000 Bluetooth Headset User s Manual

LevelOne BLH-1000 Bluetooth Headset User s Manual LevelOne BLH-1000 Bluetooth Headset User s Manual - 1 - Introduction Introduction to Bluetooth Wireless Technology Bluetooth is a short- range wireless communication technology. It allows wireless connections

More information

DESIGN OF A CUBESAT PAYLOAD INTERFACE. Jason Axelson Department of Electrical Engineering University of Hawai i at Mānoa Honolulu, HI ABSTRACT

DESIGN OF A CUBESAT PAYLOAD INTERFACE. Jason Axelson Department of Electrical Engineering University of Hawai i at Mānoa Honolulu, HI ABSTRACT DESIGN OF A CUBESAT PAYLOAD INTERFACE Jason Axelson Department of Electrical Engineering University of Hawai i at Mānoa Honolulu, HI 96822 ABSTRACT Typically, a complete satellite will be designed around

More information

CLD SC58x CDC Library v.1.00 Users Guide Users Guide Revision For Use With Analog Devices ADSP-SC58x Series Processors. Closed Loop Design, LLC

CLD SC58x CDC Library v.1.00 Users Guide Users Guide Revision For Use With Analog Devices ADSP-SC58x Series Processors. Closed Loop Design, LLC CLD SC58x CDC Library v.1.00 Users Guide Users Guide Revision 1.00 For Use With Analog Devices ADSP-SC58x Series Processors Closed Loop Design, LLC 748 S MEADOWS PKWY STE A-9-202 Reno, NV 89521 support@cld-llc.com

More information

The industrial technology is rapidly moving towards ARM based solutions. Keeping this in mind, we are providing a Embedded ARM Training Suite.

The industrial technology is rapidly moving towards ARM based solutions. Keeping this in mind, we are providing a Embedded ARM Training Suite. EMBEDDED ARM TRAINING SUITE ARM SUITE INCLUDES ARM 7 TRAINER KIT COMPILER AND DEBUGGER THROUGH JTAG INTERFACE PROJECT DEVELOPMENT SOLUTION FOR ARM 7 e-linux LAB FOR ARM 9 TRAINING PROGRAM INTRODUCTION

More information

Wireless Personal Area Networks (WPANs) Wireless PAN

Wireless Personal Area Networks (WPANs) Wireless PAN Wireless Personal Area Networks (WPANs) IEEE P802.15 Working Group Wireless PAN Applications Home Networking Automotive Networks Industrial Networks Interactive Toys Remote Metering Overview Data rates

More information

Module 2: Introduction to AVR ATmega 32 Architecture

Module 2: Introduction to AVR ATmega 32 Architecture Module 2: Introduction to AVR ATmega 32 Architecture Definition of computer architecture processor operation CISC vs RISC von Neumann vs Harvard architecture AVR introduction AVR architecture Architecture

More information

PCI Bus & Interrupts

PCI Bus & Interrupts PCI Bus & Interrupts PCI Bus A bus is made up of both an electrical interface and a programming interface PCI (Peripheral Component Interconnect) A set of specifications of how parts of a computer should

More information

A COLLOCATED APPROACH FOR COEXISTENCE RESOLUTION IN WIRELESS HOME NETWORKING

A COLLOCATED APPROACH FOR COEXISTENCE RESOLUTION IN WIRELESS HOME NETWORKING A COLLOCATED APPROACH FOR COEXISTENCE RESOLUTION IN WIRELESS HOME NETWORKING Md Enamul Islam, Sanjay Jha, Dr. Paul W.H. Kwan, Monzurur Rahman School of Mathematics, Statistics and Computer Science, University

More information

Bite of Science Austin Alfredo Pérez Applications Engineer, Silicon Labs. January 27, 2016

Bite of Science Austin Alfredo Pérez Applications Engineer, Silicon Labs. January 27, 2016 Bite of Science Austin Alfredo Pérez Applications Engineer, Silicon Labs January 27, 2016 1 Agenda About Me Silicon Labs Who are we? What do we do? Applications Engineering Functions Skills needed IoT

More information

I/O Management Intro. Chapter 5

I/O Management Intro. Chapter 5 I/O Management Intro Chapter 5 1 Learning Outcomes A high-level understanding of the properties of a variety of I/O devices. An understanding of methods of interacting with I/O devices. 2 I/O Devices There

More information

Kernel Korner Hot Plug

Kernel Korner Hot Plug Kernel Korner Hot Plug Greg describes the new framework in the Linux kernel for supporting USB and other hot-pluggable devices. by Greg Kroah-Hartman Hot-pluggable devices have been created to solve a

More information

ARM Security Solutions and Numonyx Authenticated Flash

ARM Security Solutions and Numonyx Authenticated Flash ARM Security Solutions and Numonyx Authenticated Flash How to integrate Numonyx Authenticated Flash with ARM TrustZone* for maximum system protection Introduction Through a combination of integrated hardware

More information

Embedded System Current Trends

Embedded System Current Trends Embedded System Current Trends Definition Difficult to define in current scenario. These are the computing systems which are used in electronic devices for specific purpose. Any computing system other

More information

BROADBAND FORUM S USER SERVICES PLATFORM (USP)

BROADBAND FORUM S USER SERVICES PLATFORM (USP) BROADBAND FORUM S USER SERVICES PLATFORM (USP) UTILIZING NEW TECHNOLOGIES TO CONTROL AND MANAGE DEVICES IN THE HOME JOHN BLACKFORD - PRODUCT MANAGEMENT DIRECTOR, ARRIS TABLE OF CONTENTS INTRODUCTION...

More information

Embedded Smart Home System Based on ZigBee Song Chi

Embedded Smart Home System Based on ZigBee Song Chi International Conference on Intelligent Systems Research and Mechatronics Engineering (ISRME 2015) Embedded Smart Home System Based on ZigBee Song Chi Liaoning Jidian Polytechnic North Gold and Jewelry

More information

Lecture (01) Introducing Embedded Systems and the Microcontrollers By: Dr. Ahmed ElShafee

Lecture (01) Introducing Embedded Systems and the Microcontrollers By: Dr. Ahmed ElShafee Lecture (01) Introducing Embedded Systems and the Microcontrollers By: Dr. Ahmed ElShafee ١ Agenda What is microprocessor system? What is Microcontroller/embedded system? Definition of Embedded Systems

More information

Making USB Device Drivers Easier Using the HID Class

Making USB Device Drivers Easier Using the HID Class Making USB Device Drivers Easier Using the HID Class Stuart Allman Cypress Semiconductor 15050 Avenue of Science San Diego, CA 92128 (858) 613-7900 One of the major barriers that exist in the adoption

More information

WIRELESS SENSOR NETWORK

WIRELESS SENSOR NETWORK 1 WIRELESS SENSOR NETWORK Dr. H. K. Verma Distinguished Professor (EEE) Sharda University, Greater Noida (Formerly: Deputy Director and Professor of Instrumentation Indian Institute of Technology Roorkee)

More information

AT91 ARM Thumb-based Microcontrollers. Application Note. USB HID Driver Implementation. 1. Introduction. 2. Related Documents

AT91 ARM Thumb-based Microcontrollers. Application Note. USB HID Driver Implementation. 1. Introduction. 2. Related Documents USB HID Driver Implementation 1. Introduction The Human Interface Devices (HID) class extends the USB specification in order to provide a standard way of handling devices manipulated by humans. This includes

More information

A smart Home Security system based on ARM9

A smart Home Security system based on ARM9 A smart Home Security system based on ARM9 B. Srinivasa sarma, Dr. P. Sudhakar Reddy, IEEE member Department of Electronics and communications engineering, Sri Kalahastheeswara Institute of Technology,

More information

CS263: Wireless Communications and Sensor Networks

CS263: Wireless Communications and Sensor Networks CS263: Wireless Communications and Sensor Networks Matt Welsh Lecture 6: Bluetooth and 802.15.4 October 12, 2004 2004 Matt Welsh Harvard University 1 Today's Lecture Bluetooth Standard for Personal Area

More information

Module Introduction. CONTENT: - 8 pages - 1 question. LEARNING TIME: - 15 minutes

Module Introduction. CONTENT: - 8 pages - 1 question. LEARNING TIME: - 15 minutes Module Introduction PURPOSE: The intent of this module is to introduce a series of modules that explain important features of Motorola s i.mx applications processors. OBJECTIVES: - Explain the need for

More information

CLD BF70x CDC Library v.1.3 Users Guide Users Guide Revision 1.3. For Use With Analog Devices ADSP-BF70x Series Processors. Closed Loop Design, LLC

CLD BF70x CDC Library v.1.3 Users Guide Users Guide Revision 1.3. For Use With Analog Devices ADSP-BF70x Series Processors. Closed Loop Design, LLC CLD BF70x CDC Library v.1.3 Users Guide Users Guide Revision 1.3 For Use With Analog Devices ADSP-BF70x Series Processors Closed Loop Design, LLC 748 S MEADOWS PKWY STE A-9-202 Reno, NV 89521 support@cld-llc.com

More information

Introducing Android Open Accessories and ADK. Jeff Brown, Erik Gilling, Mike Lockwood May 10, 2011

Introducing Android Open Accessories and ADK. Jeff Brown, Erik Gilling, Mike Lockwood May 10, 2011 Introducing Android Open Accessories and ADK Jeff Brown, Erik Gilling, Mike Lockwood May 10, 2011 Session Feedback http://goo.gl/ieddf Twitter: #io2011 #Android 3 USB on Android Yesterday Android USB device

More information

Introduction to USB. Alan Ott SCaLE 15x March 2-5, 2017

Introduction to USB. Alan Ott SCaLE 15x March 2-5, 2017 Introduction to USB Alan Ott SCaLE 15x March 2-5, 2017 About the Presenter Platform Software Director at SoftIron 64-bit ARM servers and storage appliances OverDrive 3000/1000 servers (shipping now!) Storage

More information

AC-PG-USBASP USBASP AVR Programmer

AC-PG-USBASP USBASP AVR Programmer AC-PG-USBASP-UG TABLE OF CONTENTS 1. OVERVIEW... 1 1.1. Introduction... 1 1.2. References... 1 1.2.1. Referenced Web Pages... 1 1.2.2. Acronyms and Abbreviations... 1 1.2.3. Definitions... 2 1.3. Supported

More information

Smart cards and smart objects communication protocols: Looking to the future. ABSTRACT KEYWORDS

Smart cards and smart objects communication protocols: Looking to the future. ABSTRACT KEYWORDS Smart cards and smart objects communication protocols: Looking to the future. Denis PRACA Hardware research manager, Gemplus research Lab, France Anne-Marie PRADEN Silicon design program manager, Gemplus

More information

Introducing StellarisWare

Introducing StellarisWare Introducing StellarisWare Slide 1: This PTM will introduce you to StellarisWare and provide you with a better understanding of its applications. StellarisWare is software that has been made to be used

More information

Activation of Home Automation System via Mobile Technology

Activation of Home Automation System via Mobile Technology Activation of Home Automation System via Mobile Technology M J Van Der Werff 1 W L Xu 2 X Gui 3 1 Institute of Technology and Engineering College of Sciences, Massey University Palmerston North, New Zealand.

More information

LibUSB - Create a Solution Without the Class Struggle

LibUSB - Create a Solution Without the Class Struggle LibUSB - Create a Solution Without the Class Struggle Carl Stenquist, Staff AE Class ID: 2L01I Renesas Electronics America Inc. Carl Stenquist Applications Engineer USB Development & support of RX USB

More information

ZigBee----free as a bee!

ZigBee----free as a bee! ZigBee----free as a bee! ZigBee is the perfect wireless solution for industrial control, medical purposes, alarm systems, building automation, and so many others. You just name it! ICP DAS releases the

More information

Prepared by Agha Mohammad Haidari Network Manager ICT Directorate Ministry of Communication & IT

Prepared by Agha Mohammad Haidari Network Manager ICT Directorate Ministry of Communication & IT Network Basics Prepared by Agha Mohammad Haidari Network Manager ICT Directorate Ministry of Communication & IT E-mail :Agha.m@mcit.gov.af Cell:0700148122 After this lesson,you will be able to : Define

More information

Chapter 11: Input/Output Organisation. Lesson 17: Standard I/O buses USB (Universal Serial Bus) and IEEE1394 FireWire Buses

Chapter 11: Input/Output Organisation. Lesson 17: Standard I/O buses USB (Universal Serial Bus) and IEEE1394 FireWire Buses Chapter 11: Input/Output Organisation Lesson 17: Standard I/O buses USB (Universal Serial Bus) and IEEE1394 FireWire Buses Objective Familiarize with a standard I/O interface synchronous serial buses USB

More information

Davide Quaglia Assistant CS depart University of Verona, Italy

Davide Quaglia Assistant CS depart University of Verona, Italy Emad Ebeid Ph.D. student @ CS depart University of Verona, Italy EmadSamuelMalki.Ebeid@univr.it Davide Quaglia Assistant Professor @ CS depart University of Verona, Italy Davide.Quaglia@univr.it 2 1 ZigBee

More information

AUTOMATIC RESTAURANT ORDER SYSTEM USING ZIGBEE

AUTOMATIC RESTAURANT ORDER SYSTEM USING ZIGBEE AUTOMATIC RESTAURANT ORDER SYSTEM USING ZIGBEE * Prof. A. K. Lodhi, H.O.D, ECT, Aditya Engineering, Beed * Praveen Baburao Kamble, ME ECT Student, Aditya Engineering, Beed INTRODUCTION Automation is the

More information