ISDN ISDN Basic Rate Interface Software for the HPC16400E High Performance Data Communications Microcontroller Literature Number: SNOS397A ISDN Basic Rate Interface Software for the HPC16400E High Performance Data Communications Microcontroller General Description Features The ISDN Basic Rate Interface Software Package implemented on the National Semiconductor HPCTM Microcontroller Family contains the software elements that are necessary to implement CCITT standards Q.921 and Q.931 as approved by ANSI committees for North America. The software package is designed to be easily unbundled and used independently by a software developer. Each layer or function is written as a separate software task. This modular design and well defined task interface make it easy to interface application dependent software to the modules provided. The coding standards for software development have been designed to ensure development of consistent, structured code, which can be easily used and maintained over the life of the code. This software is supplied as a disk set and is used in conjunction with HPC development tools and software. Y Y Y Y Y Y Y Y Y et Y Multi-tasking executive Preemptive scheduling Modular software design Multiple timer facility HPC physical layer I/O interface Layer 2 link access procedure for the D channel (LAPD) Layer 2 link access procedure for the B channel (LAPB) Layer 3 protocol control procedure for a terminal endpoint Layer management entity support Demonstration Call Control Task TaskÐView task exerciser and debugger Message trace capability Split frame message formatting Source code in C language e Y Y Y Y Block Diagram O bs ol HPC ISDN Software TL/DD/10077 – 1 COMBOTM , COMBO IITM , HPCTM and MICROWIRE/PLUSTM are trademarks of National Semiconductor Corporation. C1995 National Semiconductor Corporation TL/DD10077 RRD-B30M105/Printed in U. S. A. ISDN Basic Rate Interface Software for the HPC16400E High Performance Data Communications Microcontroller December 1991 1.0 Architectural Description and I/O drivers is by means of mail messages and semaphores, which are managed by the multi-tasking HPC Executive. This modular design and well defined intertask interface make it easy for users to interface application-dependent software to the modules provided. The services of the HPC Executive (mail, semaphores, timers, memory management) facilitate the writing of software tasks and I/O drivers. These services are available to all tasks and to interrupt-level drivers. 1.1 INTRODUCTION This description defines the software required to implement the ISDN Basic Rate Interface on the HPC family of microcontrollers, including the HPC16400 which has onboard hardware specifically designed for Data Communication and ISDN applications. The software consists of the following main parts, shown in overview in Figure 1.1: # HPC Executive, providing an operating environment and services for the ISDN software and for additional application software written by OEM users of the HPC. 1.2.2 Event-Driven State-Machine Architecture Telecommunication software typically involves many invocations of the same code (one per call, one per logical connection, etc.) and requires a particular software architecture: tasks must be structured as event-driven state machines. Each task has one or more mailboxes and operates by picking up mail, one message at a time, from the mail queue, and processing the message to completion before returning for the next mail message. Each ‘‘entity’’ within a task (each call, each logical connection, etc.) has a state block, indicating its current state. After picking up a mail message, the task identifies the entity involved in the message, accesses the state block for that entity, processes the message based on the state of the entity, and finally sets the state block to the new state of the entity. # I/O Drivers, interfacing to the DMA/HDLC controllers on the HPC16400 and to the TP3420 ‘‘S’’ Interface Device. # Data Link Layer Software, implementing the CCITT Q.921 and X.25 link access procedures (LAPD and LAPB). # Network Layer Software, implementing the Protocol Control Procedures defined in the CCITT Q.931 standard. e # Demonstration Call Control Module, allowing a development engineer at a terminal to make and receive ISDN phone calls which exercise the above software. # Tracer Module, allowing a development engineer at a ter- 1.2 SOFTWARE ARCHITECTURAL PRINCIPLES O bs ol 1.2.1 Modular Multitasking Environment Eack layer or function is written as a separate software task. Intertask communications and the interface between tasks et minal to monitor the operation of the above software. # Management Entity Module TL/DD/10077 – 2 FIGURE 1.1 HPC16400 Software for ISDN 2 1.0 Architectural Description (Continued) 1.2.3 Coding Standards 1.5.1 Layer 1 I/O Driver The coding standards for software development have been designed to ensure development of consistent, structured code, which can be easily used and easily maintained over the life of the code. The Layer 1 I/O Driver controls the HPC MICROWIRE/ PLUSTM interface, and the onboard Serial Decoder. This driver is responsible for the hardware initialization, the control of the Serial Decoder, the activation and the deactivation of the Layer 1 I/O device. Use of the HPC Executive mail and semaphore services makes this driver simple to implement and easy to enhance by users that require additional Layer 1 hardware interfaces. 1.3 HPC EXECUTIVE The HPC Executive provides an operating environment for the Layer 2 and Layer 3 tasks, the application tasks, the various support tasks, and the I/O drivers which interface to the hardware. It provides the following services to the tasks and I/O drivers: 1.5.2 Layer 2 I/O Driver The Layer 2 I/O Driver controls the HDLC/DMA controllers onboard the HPC16400, and interfaces this hardware to the Layer 2 Task. This driver is responsible for the hardware initialization, the reception of frames toward the HPC, the transmission of frames away from the HPC, and appropriate error handling. Use of the HPC Executive mail and semaphore services makes this driver simple to implement and easy to replace with alternative drivers that a user may wish to develop. # Scheduling of tasks that are ready to run, based on task priority. Preemptive scheduling and time slicing can be optionally enabled. # Task-task and driver-task communication, by means of mail messages, which can be sent and picked up, and semaphores, which can be signaled and awaited. e # Timers, which are equivalent to mail messages with a specified delay and which allow tasks and drivers to time their activities and time out when an expected event does not occur. 1.5.3 Layer 2 Task The Layer 2 Task implements the full LAPD protocol defined in Q.921, providing error free in-sequence transmission, reception and multiplexing of messages received by an HDLC controller connected to the D signaling channel. The event-driven state machine architecture, described above, enables a single software module to support simultaneous activity on multiple logical connections. The Layer 2 Task also supports X.25 LAPB processing for messages received by a second HDLC controller connected to a bearer B channel. # Memory management, to allocate and deallocate fixed- 1.4 ISDN TELECOMMUNICATIONS STANDARDS et size buffers as needed by tasks and drivers. Application tasks and I/O drivers developed by users of the HPC can easily be inserted in the HPC Executive environment and can take full advantage of its services. 1.4.1 CCITT Standards The Layer 2 Task implements CCITT 1988 (Blue Book) specification Q.921 (LAPD) and Layer 2 (LAÀB) of CCITT specification x.25. The Layer 3 Task implements the Protocol Control Procedures of CCITT 1988 Specification Q.931. The Layer 3 Task implements the circuit-switched procedures described in Section 5. The Layer 3 Task implements the Protocol Control procedures and some of the Resource Management. The Call Control Task implements a demonstration version of the Call Control Procedures and the balance of the Resource Management. In terms of the specification and description language (SDL) diagrams in the Q.931 specification, the Layer 3 Task implements Figure 38 (26 pages). The establishment and release of logical links are fully covered in the Layer 2 specifications (Q.921), but the Layer 3 aspects of this are not handled in the version of Q.931 on which the Layer 3 Task is based. Therefore, additional Layer 3 states and SDL diagrams have been created and additional software has been written to handle this requirement. bs ol 1.5.4 Layer 3 Task The Layer 3 Task implements the user side of the Protocol Control Procedures of Q.931, which are used to setup, answer, suspend, resume, and disconnect a call. Specifically, it implements all of Figure 2 /Q.931 of Q.931. The eventdriven state machine architecture, described above, enables a single software module to support simultaneous activity relating to calls on both bearer B channels. O 1.5.5 Demonstration Call Control Task The latest versions of Q.931 separate the Layer 3 procedures into Protocol Control Procedures and Call Control Procedures. Call Control Procedures are application dependent. These procedures handle bearer channel selection and actual establishment of the voice channel. As Q.931 notes, these procedures can also be considered to be part of the Applications Layer. The Call Control Task implements a minimal subset of the Call Control Procedures, for demonstration purposes. In an actual application, this task will be replaced by an application-specific task, tailored to the capabilities of the actual terminal equipment (number of terminals, handsets, etc.). 1.5 ISDN TELECOMMUNICATIONS SOFTWARE The software packages described below are designed to be easily ‘‘unbundled’’ and used independently by a software developer. 1.5.6 Management Entity Task The Management Entity Task, which is only generically defined in Q.921 and Q.931, handles housekeeping functions 3 # Management Entity Support # Call Control Demonstration Task # Message Trace Capability 1.0 Architectural Description (Continued) for all layers. These functions include TEI negotiation with the network management entity, and the handling of unrecoverable errors. This task implements as much of the management entity as is currently defined and in addition whatever is necessary for the operation of the other tasks. The HPC ISDN Software Package has been divided into several functional software elements, as illustrated in the HPC ISDN Functional Block Diagram, Figure 2.1 . These functional elements correspond to software modules. The purpose of this section is to introduce the various software elements, to define their interactions, and to relate their functionality to the appropriate ISDN standards, where applicable. The HPC ISDN Software Package will require additional software drivers and application-specific tasks prior to serving as a useful ISDN Terminal Endpoint (TE) entity. The HPC ISDN software has been coded and documented to allow easy integration of additional application code. The HPC ISDN Software elements illustrated in Figure 2.1 have been divided into the following categories. (2.2) # HPC Executive (2.3) # I/O Device Drivers (2.4) # ISDN Layer Protocol Tasks (2.5) # Application Tasks (2.6) # System Utilities The HPC Executive contains software elements that are necessary for HPC ISDN Applications. These elements include a Multi-Tasking Scheduler, a Memory Manager, a Timer Manager and a Mail Manager. The HPC Executive software elements are tightly coupled, and streamlined for the National Semiconductor HPC family of controllers. The I/O Device Drivers interface the HPC hardware elements to the HPC ISDN Software. The Layer 1 Driver implements the ISDN PHYSICAL Layer 1 requirements for the HPC ISDN system. The Layer 2 Driver interfaces the HPC DMA/HDLC controller channels to the Layer 2 Link Access 1.5.7 Tracer Task The Tracer Task serves two purposes; to demonstrate the lower ISDN layers via a menu-driven telephone emulation mode, and to trace system mail message traffic. e 1.5.8 TaskÐView Task Exerciser and Debugger TaskÐView is a special-purpose task that can be inserted into the multi-tasking Executive environment in place of the Tracer Task. It reads and interprets a user supplied ASCII scenario file. Under control of this senario file, TaskÐView sends mail messages to a specified mailbox (or mailboxes), where they are read by the task under test. Mail messages sent by the task under test in response to this input are then displayed by TaskÐView. In this way the task may be exercised and debugged. 2.1 INTRODUCTION This description defines the functional requirements of the ISDN Basic Rate Interface Software Package implemented on the National Semiconductor HPC Microcontroller Family. Specifically, the HPC16400 Software Package implements or supports the following high-level functions: Multi-Tasking Executive HPC Physical Layer I/O Interface Layer 2 Link Access Procedure for the D Channel (LAPD) Layer 2 Link Access Procedure for the B Channel (LAPB) Layer 3 Protocol Control Procedure for a Terminal Endpoint bs ol # # # # # et 2.0 Functional Description O Task Scheduler TL/DD/10077 – 3 FIGURE 2.1 HPC ISDN Software Functional Block Diagram 4 2.0 Functional Description (Continued) Once a task is started, it continues to run until it does a Semaphore Wait, ReadMail, or Return or, until a higher priority task is put on the Ready Queue, at which time the scheduler has the opportunity to once again choose the task at the head of prioritized Ready Queue and run that task. A task may change the priority of any task, including itself. The priority change takes place immediately, to the extent that the target task’s TCB is updated with the new priority and the queue in which the target task’s TCB is waiting is resorted to reflect the new priority. If the target task is in the Ready Queue and its new priority is higher than the priority of the running task, then the target task will run once all protected sections are exited. See Section 2.2.3, below. Procedures. The Terminal Device Driver interfaces the HPC on-board UART to the ISDN Software. Device initialization sequences, service request tasks and accompanying interrupt service routines are all defined in the I/O Device Driver section of this document. The Layer Protocol Tasks implement the ISDN DATA LINK Layer 2 and the NETWORK Layer 3 requirements for the HPC ISDN system. These tasks are designed to be hardware configuration and application independent. The Layer 2 Task provides both the ‘‘USER SIDE’’ and the ‘‘NETWORK SIDE’’ implementation of the CCITT Specification Q.921. The Layer 3 Task provides the ‘‘USER SIDE’’ implementation of CCITT Specification Q.931. The Layer 2 Task has been designed to use many of the same routines to implement the link access procedures on either the signaling D channel or the bearer B channel (LAPD or LAPB). Design decisions have also been made to facilitate the implementation of V.120, the rate adaption protocol that processes LAPD frames on a bearer B channel. The Management Entity Task and the Call Control Task are Application (Specific) Tasks that are closely coupled to the specific system hardware configuration and the Central Office Network Entity Software. These tasks are provided for demonstration purposes to drive the ISDN layer entities. Application users must either replace or extensively rewrite these tasks to match their particular ISDN Application environment. The System Utilities include the power-up reset Main Task, the NMI handler, the Timer interrupt handler, and the Watchdog Task. The Tracer utility provides the capability of on-line tracing of intertask mail messages and task states. Tracer is primarily a passive task; it displays messages that it receives from other tasks. Tracer also provides a user interface for Telephone Simulation. The remainder of this document is devoted to defining each of the software elements at the functional level. Where applicable, specific ISDN standard documents such as CCITT Q.921, Q.931 and X.25 will be referenced, rather than duplicating the information here. bs ol et e 2.2.2 Semaphores A semaphore is a global variable, accessed through the Executive, which can be Signaled (incremented) by one task and Waited on by another task. A semaphore is typically used to manage the sharing between tasks of some resource, e.g., an I/O device, mail messages, etc. At any moment the value of a semaphore may be positve, negative, or zero. A positive value indicates the number of resources available, a negative value indicates the number of tasks waiting for resources and a zero value indicates that there are no resources available and no tasks waiting for them. When a task Waits on a semaphore, if the semaphore has a nonzero positive value, the task will immediately go on the Ready Queue and the semaphore value will be decremented by one. On the other hand, if the semaphore has a zero or negative value, the task will be queued on the semaphore and the semaphore value will be decremented by one. When a task Signals a semaphore, the semaphore’s value is incremented by one and the highest priority task waiting on the semaphore is put on the Ready Queue. A common use for a semaphore is the management of a non-shareable resource, such as an I/O device. When the device is available, the associated semaphore has the value a 1. When a task wishes to obtain exclusive use of the device, it Waits on the semaphore, which is then decremented to 0, with the task going immediately back on the Ready Queue. If another task then attempts to use the device, its Wait call will cause it to be placed on the Semaphore Queue and the value of the semaphore will be decremented to b1. Other tasks may also Wait on the semaphore, each decrementing its value by one. The negative value of the semaphore indicates the number of tasks Waiting for the device. The waiting tasks are ordered in the semaphore queue according to their priority. When the first task is done with the device, it Signals the semaphore, which moves the first waiting task to the Ready Queue and increments the semaphore or, if there are no waiting tasks, returns the semaphore to its original value of a 1. 2.2 HPC EXECUTIVE The HPC Executive provides a multitasking environment within which the ISDN and applications tasks can run and it provides various system services to those tasks. The services of the Executive are available to both tasks and interrupt service routines. O 2.2.1 Tasks, Priorities, and the Ready Queue A task is a subroutine which can be run (called) by the Executive. Tasks are managed by the Executive as Task Control Blocks (TCB’s). A task’s TCB contains all the parameters needed by the Exeuctive to handle the task, in particular, the task’s priority and its current starting address. Tasks which are not blocked waiting for a semaphore or for mail are considered to be ready to run and their TCB’s are queued on the Ready Queue, in the order of the tasks’ priorities. The Task Scheduler runs the task at the head of the Ready Queue, i.e., the highest priority task that is ready to run. In this way the processor is always given to the highest priority task that is ready to run. 2.2.3 Preemptive Scheduling Preemptive scheduling enables the executive to respond quickly to high priority events. If a task that is waiting on a Semaphore Queue modes to the Ready Queue and if that task is of higher priority than the currently running task, then, as soon as the currently running task emerges from all critical sections and non-preempt sections, the currently running task will stop running. The task that was moved to the Ready Queue will run. The preempted task will be placed on the Ready Queue in the normal manner. 5 2.0 Functional Description (Continued) closely with their accompanying ISR for output initiation and completion. Higher layer tasks send mail messages to he SRQ Tasks, using the system mail facility to queue messages pending output. The HPC ISDN Software includes three I/O Device Drivers: the Layer 1 Driver, the Layer 2 Driver and the Terminal Driver. The functionality of these drivers is defined below. Details of particular Device Driver ISR and SRQ Task interactions are defined in the Software User’s Manual. Executive functions allow preemption to be selectively turned on or off by task or for an entire application. 2.2.4 Time Slicing Time slicing modifies the task scheduling algorithm as follows: at each ‘‘tick’’ of the timer clock (the clock which also controls the time-out timers), if the currently running task has the same priority as the task at the head of the Ready Queue, then, if the currently running task is not in a non-preempt section, it will stop running and the task at the head of the Ready Queue will run. The task that stops running is placed on the Ready Queue in the normal manner, i.e., after all tasks of equal priority. Time slicing enables the Executive to share the processor equally between tasks of equal priority. e bs ol 2.2.6 Timers The Executive includes a timing facility specifically designed to handle the time-outs typical of telecom protocols and other real-time applications. Timers are essentially a form of delayed mail. When a task sets a timer, the task provides a mailbox identifier, a mail message, and a time delay value. When the specified time delay is up, i.e. when the timer ‘‘expires’’, the mail message is mailed to the specified mailbox. When a task sets a timer, it receives a timer ID, which can be used to cancel the timer, if necessary, before it expires. et 2.2.5 Mailboxes and Mail Messages The main form of intertask communication is the sending and receiving of mail. Mailboxes exist independently of tasks; any task may send mail to any mailbox and any task may read mail from any mailbox. However, in a typical system, each task has one mailbox from which it reads all its mail and to which other tasks send mail destined for that task. Mail is prioritized. When a task calls upon the Executive to perform a SendMail, it specifies the priority of the message, which is inserted in the specified mailbox queue sorted by priority. 2.3.1 Layer 1 I/O Device Driver The Layer 1 I/O Device Driver provides implementation of the ISDN PHYSICAL Layer 1 for the HPC environment. This Device Driver controls the NSC MICROWIRE/PLUS Interface to the NSC TP3420 ‘‘S’’ Interface Device (SID), and the HPC16400 onboard, Serial Decoder. Control of a COMBOTM Codec, a display, and a keypad has been implemented later by either adding to this driver, or using it as a model for additional drivers. The primary responsibility of this driver is to initialize and control the SID. The higher layer ISDN tasks mail activation and deactivation messages to the Layer 1 Service Request Task. This task sends the appropriate command to the SID via the MICROWIRE/PLUS Interface. The SID interrupts the HPC whenever it changes state. The Layer 1 Interrupt Service Routine fields responses when the SID changes state and mails the information to the Layer 2 Controller Task and to the Management Entity Task. The Serial Decoder is initialized to MODE 4, with the ISDN D Channel terminated by DMA/HDLC Channel Ý1, and Bearer Channel B2 terminated by DMA/HDLC Channel Ý2. The SID can swap B1 and B2 internally to allow voice or data on either channel. The Layer 1 I/O Device Driver can communicate with any other Task via the System Mail Utilities. 2.3.2 Layer 2 I/O Device Driver The Layer 2 I/O Device Driver interfaces the two HPC16400 onboard DMA/HDLC channels; one to the 16 kbit per second ‘‘D’’ signaling channel, and one to the 64 kbit per second bearer (B2) channel. The Layer 2 Service Request Task receives Physical Layer (PH) Primitives from the Layer 2 Controller Task via the system mail utility. The Layer 2 Interrupt Service Routine handles block messages received from the DMA Controller and mails them as Physical Layer (PH) Data Primitives to the Layer 2 Controller Task. This generic mail message interface allows an Application User to easily introduce external DMA and HDLC Controllers, and accompanying device drivers, that either replace or complement the existing onboard controllers. HDLC/DMA Channel Ý1 is attached to the ISDN signaling D channel, and will be referred to as the LAPD Channel. HDLC/DMA Channel Ý2 is attached to bearer channel B2, and will be referred to as the LAPB Channel. The two channels operate independently of each other as much as possible. Since they share the same interrupt hardware, the Layer 2 Interrupt Service Routine must poll the Message Pending Register and the Error Status Register to determine the source of each interrupt. Both HDLC/DMA channels use the HPC field separation feature for transmission and reception of data. This feature relieves some memory concerns, since it allows small memory buffers to be used for mes- 2.2.7 Memory Management The memory manager is responsible for allocating and deallocating fixed-size memory blocks from fixed-size pools, which are completely defined at compile time. A memory pool may reside in extended memory. O 2.2.8 System Module and Interface Module The Multi-Tasking Executive Software is available either as source code or as object code. The interface module, which must be modified to insert application tasks, is always supplied as source code. 2.3 I/O DEVICE DRIVERS I/O Device Drivers serve as interface routines between the HPC hardware machinery and the HPC Executive and Application Tasks. ‘‘Input’’ operations (data heading toward Application Tasks) are typically fielded by an Interrupt Service Routine (ISR). The ISR may SEND information to the appropriate task via the system mail facility, or it may signal the appropriate semaphore to schedule an I/O task. ‘‘Output’’ operations (data heading away from Application Tasks) are typically fielded by Service Request (SRQ) Tasks. SRQ Tasks communicate directly with the hardware control registers to initiate output operations. These tasks often work 6 2.0 Functional Description (Continued) layer tasks are provided, the Demonstration Call Control Task and the Management Entity Task. These tasks are defined in the Application Task section of this document. sages that only have headers. In the transmit direction this feature allows large contiguous buffers to be broken up into smaller send buffers without having to copy them following a header. Issues specific to the HDLC/DMA Channels are defined below. HDLC/DMA Channel Ý2, the LAPB Channel, requires frame sizes to be nominally 130 bytes, 2 bytes of header and 128 bytes of information. Provision can be made for messages with up to 1026 bytes, 2 bytes header and 1024 bytes of information. The presentation of data between the Layer 2 Driver and Layer 2 Controller is identical regardless of which channel the frames are associated with. The purpose of the Layer 2 Controller Task is to provide the NETWORK Layer 3 with an error free, sequenced data frame service. The Layer 2 Controller Task uses CCITT Specifications Q.921 and X.25 and the primary functional specifications. The Layer 2 Controller Task satisifies the Link Access Procedures for both the D Channel and the B Channel (LAPD and LAPB). Design considerations have also been included for the future implementation of V.120, the new CCITT rate adaption scheme. The Layer 2 Controller Task’s data frame delivery service allows the Layer 3 Controller Task to confidently setup and teardown user voice and data calls on the available facilities. The Layer 3 Controller Task uses CCITT Specification Q.931 as the primary functional specification. Note that the X.25 Layer 3 packet processor task is not included in the initial software package. The Layer Protocol Tasks require a somewhat non-conventional task architecture in order to simultaneously manage a significant number of multiple logical connections. This event-driven state-machine architecture requires that a state memory block be created and maintained for each logical connection. When a Layer Protocol Task ‘‘wakes up’’ due to the arrival of mail, the message’s address is interrogated to determine which logical connection is to receive the mail. The particular logical connection’s state block is retrieved and the mail message is processed per the CCITT Specification requirements, depending on the state of the particular logical connection. Typically, processing the mail message results in sending a Primitive message to another task, and updating the logical connection’s state block. The Layer Protocol Task then returns to its mail box to pick up any subsequent mail. The interface between all of the ISDN Layer Tasks is deliberately achieved via the System Mail Utilities. This ensures a distinct, uniform layering mechanism in the event that application programmers wish to replace layers with their own implementations. e 2.3.3 Terminal Device Driver and Tracer The Terminal Device Driver interfaces to the HPC onboard UART. The associated SRQ Driver Task, referred to as Tracer, serves primarily as a high-level demonstration vehicle. Tracer can field mail messages from any other task in the system, as well as keystroke mail messages from its accompanying ISR. Tracer’s responsibilities include the following functions: # Management of the Telephone Simulation User Interface, sages, # Proper Display of Task-Related Information et # Display Management of the System Trace Mail Mes- bs ol The Telephone Simulation function of Tracer allows the user to enter ‘‘telephony-like’’ keystroke characters, that are passed to Tracer, then on to the ISDN layer tasks for processing. Menu responses are fielded by Tracer to select various levels of the Trace function, as well as to enter and exit the Telephone Simulation mode. Depending on the level of trace that is selected, Tracer receives mail messages from the system tasks and properly formats them on the CRT display. Tracer offers various levels of trace capability. Trace can be turned off all together, in which case only the application layer Telephone Simulation inputs will be displayed. Trace can display all messages from every layer, or it can be set to ‘‘zoom’’ to display only the messages at a particular layer. Messages will generally have address fields and data fields. The Terminal Driver’s Interrupt Service Routine (ISR) handles keyboard characters from the UART and mails them to the Tracer SRQ Task for further processing. The ISR also handles transmission completion of a character that has been sent to the CRT. The data structures and hardware interface requirements for the Terminal Device Driver, and capabilities of Tracer, are defined in the Software User’s Manual. 2.4.1 Layer 2 Controller Task The primary job of the ISDN Data Link Layer 2 is to deliver error-free, sequenced data frames to the Network Layer 3. The Layer 2 Controller Task implements the following Layer 2 Link Access Procedures (LAP) for the HPC ISDN Software Package: O # LAPB per the X.25 CCITT Specification. # LAPD per the Q.921 CCITT Specification. # V.120 Terminal Adaption capability. Since the Q.921 LAPD requirements were derived from the X.25 LAPB requirements, most of the same Layer 2 Controller Task routines can be used to implement both LAPB and LAPD. Design considerations have been made to allow future implementation of V.120. The Layer 2 Controller Task communicates with the Layer 2 DMA/HDLC Controller Device Driver Task and the Management Entity Task, via the System Mail Utilities. These tasks interrogate the mail message headers to determine whether to process the frames using LAPB or LAPD procedures. The 2.4 ISDN LAYER PROTOCOL TASKS The ISDN Layer Protocol Tasks provide implementation of the DATA LINK Layer 2 and the NETWORK Layer 3 in accordance with the protocol definitions of the CCITT Specifications. The two Layer Protocol Tasks (the Layer 2 Controller Task and the Layer 3 Controller Task) are designed to satisy the ISDN Basic Rate Interface (BRI) Terminal Equipment requirements. They are independent of user applications and hardware environment. The PHYSICAL Layer 1 implementation is defined in the I/O Device Driver section of this document. Implementation of layers above the NETWORK Layer 3 are specific to user applications. Two such 7 2.0 Functional Description (Continued) two types: recoverable and unrecoverable. Recoverable exceptions in the receive direction are typically failed frames, which are handled by requesting the retransmission of the failed frame with the Reject (REJ) command. Recoverable exceptions in the transmit direction include the expiry of a Layer 2 Timer. Timer expiry requires the retransmission of the frame that was not acknowledged in time, and all subsequent frames. Timer expiry also prompts a message to the Management Entity. Unrecoverable exceptions result in the Frame Reject (FRMR) response. A message to the Management Entity Task is also sent in this case. LPAD frames are mailed to the Q.931 Layer 3 Controller Task, while the LAPB frames are mailed to the X.25 Layer 3 Task. The HPC16400 HDLC hardware handles the Layer 2 HDLC Procedures, which includes bit stuffing, address recognition, and Frame Check Sequence generation and detection. The Layer 2 Controller Task is responsible for the Layer 2 ‘‘Data Link Procedure’’, which includes the following functions: # Data Transmission # Protocol Exception Management # LAPD-Specific Functions. e bs ol 2.4.1.1 Layer 2 Data Transmission Layer 2 peer-to-peer Data Transmission is supported with two modes: Unacknowledged Data Mode and Multi-Frame Acknowledged Data Mode. The Unacknowledged Data Mode is used primarily for setting up logical connections and for peer-to-peer Management Entity communication. This mode uses the Unnumbered Information (UI) and the Unnumbered Acknowledge (UA) messages. The MultiFramed Acknowledged Mode is established by the Set Asynchronous Balanced Mode (SABM) command. This mode provides the mechanism for acknowledgement of data frame transport in each direction. The Multi-Frame Acknowledged Mode is terminated with the Disconnect (DISC) command. The response to the DISC message can be either an Unnumbered Acknowledge (UA) message or a Disconnect Mode (DM) message. The actual Layer 2 data frames are transmitted in the Information (I) messages, while in the Multi-Framed Acknowledged Mode. The Layer 2 Controller is responsible for avoiding message congestion and buffer overflow. A Layer 2 entity can issue the Receive Ready (RR) command to its peer to indicate that it is ready to continue data transmission. Likewise, the Layer 2 Controller can issue the Receiver Not Ready (RNR) command to its peer to indicate that it is not ready for data transmission. 2.4.1.3 Layer 2 LAPD-Specific Functions The following Layer 2 Controller Task functions are LAPD specific. These functions involve establishing and maintaining multiple logical data link connections. Note that a LAPB connection will be maintained as a special independent logical connection. A two byte address is required for each logical data link. This address is referred to as the Data Link Connection Identifier (DLCI). The DLCI consists of a Service Access Point Identifier (SAPI) and a Terminal Endpoint Identifier (TEI). The Layer 2 Controller Task is responsible for supporting the TEI Assignment Procedure and the TEI Verification Procedure. These procedures are both initiated by the Management Entity. The Layer 2 Controller Task supports both the Automatic and Non-Automatic TEI Assignment Procedures. Establishment of the LAPD multi-frame acknowledged data transmission mode requires an extended command (SABME) to prompt the peer entity that the frames are intended for a particular logical data connection identified by the accompanying DLCI. The Layer 2 Controller Task maintains each logical link’s state and data frames independently, as explained earlier in this section. The Layer 3 Controller Task addresses and maintains independent logical connections via an identifier called a Connection Endpoint Suffix (CES). Since the CES is different from the Layer 2 Terminal Endpoint Identifier (TEI), a mapping function is required. The Layer 2 Controller Task maintains a CES – TEI translation procedure to properly address Layer 3 logical entities. et To accomplish these functions the Layer 2 Controller supports the full set of Layer 2 Peer-to-Peer messages defined in the CCITT Specification Q.921. These messages are listed below and defined further in the Software User’s Manual. UI Unnumbered Information Frames UA Unnumbered Acknowledge SABM(E) Set Asynchronous Balanced Mode (Extended) DISC Disconnect Command DM Disconnect Mode I Acknowledged Information Frames RR Receiver Ready RNR Receiver Not Ready REJ Request Recrimination of Frames FRMR Unrecoverable Error, Frame Reject The Layer 2 Controller Task also supports the primitives required to communicate with the other ISDN tasks. O 2.4.2 Layer 3 Controller Task The Layer 3 Controller Task implements the application independent portion of the ISDN NETWORK Layer 3 protocol, per the Q.931 CCITT Specification. The primary responsibility of the Layer 3 Controller Task is to establish a network access connection link between a terminal and its peer in the Central Office. The Layer 3 Controller Task communicates with both the Layer 2 Controller Task and the Call Control Task by sending primitives via the System Mail Utilities. The Layer 3 Controller Task also communicates with the Management Entity Task. The HPC ISDN Layer 3 Controller Task is responsible for the following NETWORK functions: # # # # 2.4.1.2 Layer 2 Protocol Exception Management The Layer 2 Controller Task is responsible for handling exceptions to the Data Link Protocol. These exceptions are of 8 Call Establishment and Clearing Call Suspension and Resumption Call Status and Notification Protocol Exception Management. 2.0 Functional Description (Continued) The Layer 3 Controller Task supports all the Network Layer Peer-to-Peer messages defined in the CCITT Specification Q.931, i.e.: 2.4.2.3 Call Status And Notification The Network can request the status of a network connection at any time via the USER INFO, NOTIFY and STATUS Commands. The information includes Service Validation and Channel Configuration. # Call Establishment and Clearing Messages: 2.4.2.4 Layer 3 Protocol Execption Management The Layer 3 Controller is responsible for handling exceptions to the Network Control Protocol. The primary Layer 3 Controller Task protocol exception is the expiry of the Layer 3 timer. Such an exception requires the retransmission of the particular command and may prompt a message to the Management Entity Task. e 2.4.2.5 Timer Support The Layer 3 Controller supports the following system timers per CCITT Specification Q.931: T303 SETUP ACK Timer T305 DISCONNECT ACK Timer T308 RELEASE ACK Timer T313 CONNECT ACK Timer et 2.4.2.6 SDL Updates The Layer 3 Controller Task very closely follows the SDL procedures illlustrated in CCITT Specification Q.931, with a few enhancements. These enhancements are listed here and fully defined in the Software User’s Manual. a. Three new SDL States have been added to accommodate establishing the Data Link corresponding to a particular CES. The new states are: # IDLESTATE # RELEASEWAIT # ESTABLISHWAIT bs ol ALERT Alerting CALL PROC Call Proceeding CONN Connect CONN ACK Connect Acknowledge INFO Information PROG Progress SETUP Setup SETUP ACK Setup Acknowledge DISC Disconnect REL Release REL COM Release Complete # Call Suspension and Resumption Messages RESUME Resume RESUME ACK Resume Acknowledge RESUME REJ Resume Reject SUSPEND Suspend SUSPEND ACK Suspend Acknowledge SUSPEND REJ Suspend Reject # Miscellaneous Messages NOTIFY Notify STATUS Status STATUS EN Status Enquiry USER INFO User Information 2.4.2.1 Call Establishment And Clearing The Layer 3 Controller Task’s primary responsibility is to establish and clear user network connections on available bearer channel facilties. The Q.931 CCITT Specifications include Call Establishment and Clearing of both circuitswitched and packet-switched calls. Initially, the HPC ISDN Software Package only supports circuit-switched call procedures on Basic Rate Interface (BRI) Bearer Channels. The Layer 3 Controller Task is responsible for Call Reference assignment and maintenance. The Layer 3 Controller Task supports Call Establishment using both the Overlap and Non-Overlap (enbloc) addressing modes. The procedure for establishing and clearing network connections is defined in CCITT Specification Q.931. It is important to note that the Layer 3 Controller Task maintains an associated state block for each network connection. Primitive mail messages arriving at the Layer 3 Controller Task will be interrogated to determine which network connection is to receive the mail. The mail message is processed depending on the state of the network connection. This processing typically includes the transmission of a Primitive to another Layer Task, and the appropriate update of the network connection state block. b. The Q.931 NULLSTATE SDL now accepts a new command, CCBROADCASTRESP. This command is sent from the Call Control Task to allow transistion from the NULLSTATE(0) to the CALLPRESENT State(6) during a Network Originated call via the Broadcast mechanism. O 2.5 APPLICATION TASKS The Application Tasks are very dependent on both the terminal equipment configuration and the far-end Network Entity software implementation. The HPC ISDN Software Package includes two sample Application Tasks: the Demonstration Call Control Task and the Management Entity Task. Both of these tasks can be replaced or updated when ported to a particular application. These tasks are included in the HPC ISDN Software Package primarily to verify the operation of the OSI Layer Protocol Tasks and the HPC Device Drivers. 2.5.1 Demonstration Call Control Task The Demonstration Call Control Task is closely coupled to the specific facilities of an application. The interaction between the Layer 3 Controller Task and Call Control is defined in CCITT Specification Q.931. In the HPC ISDN Application, the Call Control Task communicates with the Layer 3 Controller Task and the Tracer Task. The availability of two circuit switched voice bearer channels is simulated in the Call Control Task. The Call Control Task sends standard Terminal Equipment prompts and messages to the Tracer Task where they are displayed on a UART driven CRT. The Call Control Task has the following responsibilities: 2.4.2.2 Call Suspension And Resumption Call Suspension (SUSPEND) requires that the Bearer Channel facility and the Call Reference for a call be temporarily relinquished. The network connection is left intact, but in the suspend state. The RESUME command reactivates the call by obtaining a Bearer Channel facility and establishing a new Call Reference. The Suspend function is somewhat analogous to the call HOLD feature. # B Channel Resource Management 9 2.0 Functional Description (Continued) # Connection Endpoint Suffix (CES) Allocation # Conversion between L3 Primitives and Terminal Action. The Call Control Task and the Layer 3 Controller Task communicate via the NLÐDATAÐREQ and NLÐDATAÐIND Primitives. The messages that are supported between these tasks are listed below. Digit 0 Digit * TRÐDIGITÐPOUND Digit Ý # Commands from Call Control Task to Tracer TRÐIDLE TRÐDIALTONE TRÐDIALING TRÐRINGING TRÐBUSY TRÐCONVERSATION TRÐRINGBACK TRÐERROR # Commands from Call Control to Layer 3 Idle, ON HOOK Dial Tone Dialing Ringing Busy Conversation Ringback Error et e 2.5.2 Management Entity Task The Management Entity Task is closely coupled to the accompanying Network Management Entity design and to the terminal hardware configuration. Implementation design decisions have been made that make the Management Entity Task unique to a particular application, while still following the general requirements of the CCITT Specifications. Modifications will be required in the Management Entity Task prior to its successful operation in a particular application environment. The Management Entity Task that is included in the HPC ISDN Software Package presumes a particular hardware configuration and Central Office Software implementation. The Management Entity Task communicates with the Layer 3 Controller Task, the Layer 2 Controller Task, and the Layer 1 Device Driver Task via the System Mail Utilities. The Management Entity Task has the following responsibilities: bs ol CCÐSETUPÐREQ Setup Request CCÐSETUPÐRESP Setup Response CCÐSETUPÐREJÐREQ Setup Reject CCÐINFOÐREQ Information CCÐDISCONNECTÐREQ Disconnect CCÐRELEASEÐREQ Release CCÐALERTINGÐREQ Alerting CCÐBROADCASTÐRESP Broadcast Response CCÐCALLPROCÐREQ Call Proceeding CCÐPROGRESSÐREQ Progress CCÐNOTIFYÐREQ Notify CCÐRESUMEÐRQ Resume CCÐRESUMEÐREJ Resume Reject CCÐSUSPENDÐREQ Suspend Request CCÐSUSPENDÐREJ Suspend Reject # Command from Layer 3 to Call Control CCÐSETUPÐIND Setup CCÐSETUPÐCONF Setup Confirm CCÐSETUPÐCOMPÐIND Setup Complete CCIÐNFOÐIND Information Indication CCÐALERTINGÐIND Alerting CCÐPROGRESSÐIND Progress CCÐDISCONNECTÐIND Disconnect CCÐRELEASEÐIND Release CCÐCALLPROCÐIND Call Proceeding CCÐRELEASEÐCONF Release Confirm CCÐSTATUSÐIND Status Indication CCÐERORRÐIND Error Indication CCÐRESUMEÐCONF Resume Confirm The Call Control Task also communicates with the Tracer Task using single byte keystroke like commands. These commands are packaged mail messages containing two bytes: the first byte is the Sender Task’s ID, the second byte is the keystroke command. The following messages are sent between Call Control and Tracer: TRÐDIGITÐ0 TRÐDIGITÐSTAR # # # # # # Activation/Deactivation of the Terminal Equipment. 2.6 SYSTEM UTILITIES The system utilities initializes the HPC system upon powerup, and provide support for various machine specific features of the HPC. O 2.6.1 Power-Up Reset Main Task This task is the entry point upon system power-up. The Main Task is responsible for: Ð Initializing the general HPC Hardware. Ð Initializing the HPC Executive Data Structures. Ð Queuing up the Tasks on the Ready Queue. The Main Task starts with the highest priority, 255. After running, the Main Task has served its purpose and is removed from the system by waiting on a semaphore which is typically never signaled. # Keystroke Commands from Tracer to Call Control Task TRÐONÐHOOK TRÐOFFÐHOOK TRÐDIGITÐ1 TRÐDIGITÐ2 TRÐDIGITÐ3 TRÐDIGITÐ4 TRÐDIGITÐ5 TRÐDIGITÐ6 TRÐDIGITÐ7 TRÐDIGITÐ8 TRÐDIGITÐ9 Initialization of the Terminal Equipment Configuration of the Terminal Equipment TEI Assignment and Verification Multiple Error Notification Unrecoverable Error Notification ON Hook OFF Hook Digit 1 Digit 2 Digit 3 Digit 4 Digit 5 Digit 6 Digit 7 Digit 8 Digit 9 2.6.2 Nonmaskable Interrupt (NMI) Handler Since terminal power is generally a concern, the HPC can go into an idle, low-power mode when the Terminal Equipment is idle. In this mode the HPC is awakened via an NMI, prompted by a local off hook indication, or by a far-end line 10 The Executive Interface Module is always supplied as source code to allow modification to insert application tasks. 2.0 Functional Description (Continued) signal detection signal from the SID. Conditions for determining when to go in and out of idle mode are application dependent. A Multi-Tasking Executive is required to run the Basic Rate Interface. Order Part Number Description Multi-Tasking Executive HPC-ISDN-EXEC-O Multi-Tasking Executive Object Code Basic Rate Interface HPC-ISDN-BRI-S Basic Rate Interface (Generic) Source Code 2.6.3 Timer Interrupt Handler The Timer Interrupt Handler fields interrupts from two of the HPC onboard timers. Timer T0, the Watchdog Timer, overflows every 65536 clock counts. When this occurs the Timer Interrupt Handler mails a message to start the Watchdog Task. Timer T1, the ISDN Software Timer, overflows every 10 ms. The ISDN Software Clock is incremented every tenth Timer T1 overflow, resulting in an ISDN Clock with 100 ms resolution, which is used by the Executive Timer facility. HPC-ISDN-BRID-S Basic Rate Source Code Interface (DMS-100) HPC-ISDN-BRI5-S Basic Rate Interface (5ESS) Source Code Demonstration Package HPC-ISDN-PCDEMO ISDN Basic Rate Interface Demonstration (includes Multi-Tasking Executive and Basic Rate Interface Software Manuals) 3.0 Ordering Information 4.0 Other Related Information 3.1 LICENSE AGREEMENT A license agreement is required for the use and sale of the National Semiconductor ISDN Software. Contact your local National Semiconductor field sales office for more information or contact the factory direct at: National Semiconductor ISDN Software Support M/S 16-174 2900 Semiconductor Drive Santa Clara, CA 95051 (408) 721-5719 4.1 DEVICE INFORMATION Additional technical information on devices referenced in this datasheet is available from National: HPC16400 High Performance microController HPC16083 High Performance microController TP3076 COMBO IITM et e 2.6.4 Watchdog Task A special task is performed by the HPC’s watchdog feature to verify system sanity. The Watchdog Task waits for a mail message that is sent by the Timer Interrupt Handler when Timer T0 overflows. This operation requires that the Watchdog Task be regularly scheduled by the HPC Executive. The Watchdog Task is assigned the highest task priority, 255. TP3420 CCITT S/T Interface bs ol 4.2 DEVELOPMENT SUPPORT INFORMATION Development tools are available for the HPC Family of Microcontrollers. These tools support the ISDN development environment. ISDN software must be ordered separately. 3.2 SOFTWARE ORDER INFORMATION ISDN software is available in either Object or Source Code format. A Demonstration package is also available. Manuals are included with the Demonstration package and with the Executive and Basic Rate Interface Software packages. Basic Rate Interface (BRI) software is available for several different central office switches. The generic BRI includes a generalized CCITT Switch Interface. Each BRI Package contains the following modules: Layer 1 Driver (controls S device) Layer 2 Driver (controls DMA/HDLC) Layer 2 Controller (Q.921) Layer 3 Controller (Q.931 Protocol Control) Management Entity (Q.921 and Q.931) Call Control (Demonstration Application) Tracer (Demonstration and Development Tool) The Multi-Tasking Executive contains two modules: Executive Core Module Executive Interface Module 4.2.1 ISDN Demonstration Kit A kit is available that demonstrates the software and hardware discussed in this datasheet. Included in this kit is a TP3500 development board featuring the HPC16400, TP3070 COMBO II, TP3420 ‘‘SID’’ and ISDN Basic Rate Interface software in ROM. A complete set of manuals are included. This demonstration kit may be ordered from National, part number. ISDN-TP3500-Kit O 4.2.2 Development Systems Several different Microcontroller-On-Line-Emulator Development Systems are available for hardware and software development of the HPC Family of Microcontrollers. Complete information on Development Systems and Accessories may be found in the Microcontroller Development Support Datasheet. 11 e et bs ol ISDN Basic Rate Interface Software for the HPC16400E High Performance Data Communications Microcontroller Lit. Ý 105300 LIFE SUPPORT POLICY O NATIONAL’S PRODUCTS ARE NOT AUTHORIZED FOR USE AS CRITICAL COMPONENTS IN LIFE SUPPORT DEVICES OR SYSTEMS WITHOUT THE EXPRESS WRITTEN APPROVAL OF THE PRESIDENT OF NATIONAL SEMICONDUCTOR CORPORATION. As used herein: 1. Life support devices or systems are devices or systems which, (a) are intended for surgical implant into the body, or (b) support or sustain life, and whose failure to perform, when properly used in accordance with instructions for use provided in the labeling, can be reasonably expected to result in a significant injury to the user. National Semiconductor Corporation 1111 West Bardin Road Arlington, TX 76017 Tel: 1(800) 272-9959 Fax: 1(800) 737-7018 2. A critical component is any component of a life support device or system whose failure to perform can be reasonably expected to cause the failure of the life support device or system, or to affect its safety or effectiveness. National Semiconductor Europe Fax: (a49) 0-180-530 85 86 Email: cnjwge @ tevm2.nsc.com Deutsch Tel: (a49) 0-180-530 85 85 English Tel: (a49) 0-180-532 78 32 Fran3ais Tel: (a49) 0-180-532 93 58 Italiano Tel: (a49) 0-180-534 16 80 National Semiconductor Hong Kong Ltd. 13th Floor, Straight Block, Ocean Centre, 5 Canton Rd. Tsimshatsui, Kowloon Hong Kong Tel: (852) 2737-1600 Fax: (852) 2736-9960 National Semiconductor Japan Ltd. Tel: 81-043-299-2309 Fax: 81-043-299-2408 National does not assume any responsibility for use of any circuitry described, no circuit patent licenses are implied and National reserves the right at any time without notice to change said circuitry and specifications. IMPORTANT NOTICE Texas Instruments Incorporated and its subsidiaries (TI) reserve the right to make corrections, modifications, enhancements, improvements, and other changes to its products and services at any time and to discontinue any product or service without notice. Customers should obtain the latest relevant information before placing orders and should verify that such information is current and complete. All products are sold subject to TI’s terms and conditions of sale supplied at the time of order acknowledgment. TI warrants performance of its hardware products to the specifications applicable at the time of sale in accordance with TI’s standard warranty. Testing and other quality control techniques are used to the extent TI deems necessary to support this warranty. Except where mandated by government requirements, testing of all parameters of each product is not necessarily performed. TI assumes no liability for applications assistance or customer product design. Customers are responsible for their products and applications using TI components. To minimize the risks associated with customer products and applications, customers should provide adequate design and operating safeguards. TI does not warrant or represent that any license, either express or implied, is granted under any TI patent right, copyright, mask work right, or other TI intellectual property right relating to any combination, machine, or process in which TI products or services are used. Information published by TI regarding third-party products or services does not constitute a license from TI to use such products or services or a warranty or endorsement thereof. Use of such information may require a license from a third party under the patents or other intellectual property of the third party, or a license from TI under the patents or other intellectual property of TI. Reproduction of TI information in TI data books or data sheets is permissible only if reproduction is without alteration and is accompanied by all associated warranties, conditions, limitations, and notices. Reproduction of this information with alteration is an unfair and deceptive business practice. TI is not responsible or liable for such altered documentation. Information of third parties may be subject to additional restrictions. Resale of TI products or services with statements different from or beyond the parameters stated by TI for that product or service voids all express and any implied warranties for the associated TI product or service and is an unfair and deceptive business practice. TI is not responsible or liable for any such statements. TI products are not authorized for use in safety-critical applications (such as life support) where a failure of the TI product would reasonably be expected to cause severe personal injury or death, unless officers of the parties have executed an agreement specifically governing such use. Buyers represent that they have all necessary expertise in the safety and regulatory ramifications of their applications, and acknowledge and agree that they are solely responsible for all legal, regulatory and safety-related requirements concerning their products and any use of TI products in such safety-critical applications, notwithstanding any applications-related information or support that may be provided by TI. Further, Buyers must fully indemnify TI and its representatives against any damages arising out of the use of TI products in such safety-critical applications. TI products are neither designed nor intended for use in military/aerospace applications or environments unless the TI products are specifically designated by TI as military-grade or "enhanced plastic." Only products designated by TI as military-grade meet military specifications. Buyers acknowledge and agree that any such use of TI products which TI has not designated as military-grade is solely at the Buyer's risk, and that they are solely responsible for compliance with all legal and regulatory requirements in connection with such use. TI products are neither designed nor intended for use in automotive applications or environments unless the specific TI products are designated by TI as compliant with ISO/TS 16949 requirements. Buyers acknowledge and agree that, if they use any non-designated products in automotive applications, TI will not be responsible for any failure to meet such requirements. Following are URLs where you can obtain information on other Texas Instruments products and application solutions: Products Applications Audio www.ti.com/audio Communications and Telecom www.ti.com/communications Amplifiers amplifier.ti.com Computers and Peripherals www.ti.com/computers Data Converters dataconverter.ti.com Consumer Electronics www.ti.com/consumer-apps DLP® Products www.dlp.com Energy and Lighting www.ti.com/energy DSP dsp.ti.com Industrial www.ti.com/industrial Clocks and Timers www.ti.com/clocks Medical www.ti.com/medical Interface interface.ti.com Security www.ti.com/security Logic logic.ti.com Space, Avionics and Defense www.ti.com/space-avionics-defense Power Mgmt power.ti.com Transportation and Automotive www.ti.com/automotive Microcontrollers microcontroller.ti.com Video and Imaging RFID www.ti-rfid.com OMAP Mobile Processors www.ti.com/omap Wireless Connectivity www.ti.com/wirelessconnectivity TI E2E Community Home Page www.ti.com/video e2e.ti.com Mailing Address: Texas Instruments, Post Office Box 655303, Dallas, Texas 75265 Copyright © 2011, Texas Instruments Incorporated