TSCP-----Traffic Signal Control Program

CS 193

Ying Yan

Fall 2000, UCSB


About me

I am a MAT graduate student who specifies in Multimedia Engineering. Since the corresponding course of MAT 293 was not provided in the beginning of the quarter, I got approval from the adviser Kevin Almeroth to register for CS193.

My internship began as a part-time student assistant in the TCFI (the Tested Center for Interoperability) lab of CALTRANS (Transportation Department of California). My work focuses on the analysis of TSCP (Traffic Signal Control Program) code in C language, which is one major application installed on the Model 2070 controller. Also I maintain their web site www.tcfi.ucsb.edu.


What is the TCFI

TCFI lab was established as a joint venture between the State of California, Caltrans and UCSB to be actively engaged in the development, design, and testing of both ITS (Intelligent Transportation System) and the NII (National Information Infrastructure). One of the Center's objectives is to help establish a statewide integrated transportation high-speed network and advanced wireless communications network linking Caltrans districts, TMCs (Traffic Management Centers), UC campuses, and other partners from local and state agencies and private industry.


What is the Model 2070

The Model 2070 controller became available in the late 1990s. It is one of the four Standard Traffic Controllers currently being used in signalized intersection control in the world. All these four controllers are micro-process-based computers. Among them, 2070 controller, based on its previous version 170 controller, is designed as an advanced rugged field processor and communications system that is configurable for traffic management applications. It is intended to satisfy the high-end needs of the advanced freeway and UTCS (urban traffic control systems), as well as those real transportation applications which requires greater performance and/or flexibility than that is available with the Mode l70 controller. One of these applications is traffic signal control, such as TSCP.

To identify what's the feature of 2070, let's compare it with the previous version 170 controller first. The Model 170 is outdated by current standards, since it's application is severely constrained by its limited memory, processing speed, input/output, and front panel user interface. Additionally, its support of only assembly language programs complicates software development and maintenance. Furthermore, because the Model 170 does not adhere to industry standard internal interfaces, it is limited to only be able to make use of those externally-connected low-speed devices as the off-the-shelf commercial extension. The Model 170 can not support the high-speed data communication rates commonly present in modern ATMS (Advanced Traffic Management Systems) networks.

The Model 2070 overcomes these limitations. It utilizes modern 32-bit microprocessor technology. Its memory is expansible, and is adherent to the VME bus standard as its internal interface. These features assure its capabilities and flexibility in addressing current and future traffic management needs. Another benefit of the Model 2070 is that it provides a significantly improved software environment by containing the OS-9 real-time operating. This multi-tasking OS handles low level system tasks and allows multiple applications to run concurrently on a single controller. Under this environment, applications running on the 2070 controller can be developed with high-level programming languages such as "C" and "C++". Supporting high-level languages allows easier application development and maintenance, as well as improved coding structure and an overall reduction in software complexity and cost. In addition, it enables different application software to be moved between different controllers without modification. As an example, TSCP can be implemented on Model 2070 in C language. The input from field I/Os indicating current traffic status is fed into TSCP processing module, which computes the corresponding control information on the basis of predefined protocol. This control information is then sent out to guide the operation of the whole system.

Because the controller can be used for more than one application at a time, resource management software is required to manage the controller and coordinate the operation of various applications. For example, the primary method to access the TSCP is through the front panel display and keyboard, rather than being controlled by the application directly. In the 2070 controller, there are four resource managers:

Except Startup manager, all the others need user configuration. The Front Panel manager needs user interfaces, so selections can be entered through it. Before each application begins to run on the controller, it must obtain the resources of the front panel and keyboards first through the Front Panel. Once an application has been selected, the Front Panel will release all its control to the application program selected. That is to say, all input and output to the controller through the Front Panel is governed by the application. The Field I/O and Serial Comm managers start operation when the power is on. They do not need the user interfaces and are accessed only through application programs.


What is the TSCP

The TSCP allows the Model 2070 controller to function as a 2 through 8-phase, 6-overlap dual-ring traffic controller. It is a completely menu-driven program, and in most cases it only accepts option selections and numeric data entries from the front panel and keyboard. Three kinds of flag data entries are accepted:

There are 8 main operations of the TSCP:

  1. Display: show system statuses of TSCP in 8 areas as ---phase timing; overlap data; coordination; Time-Of-Day lock; Comm data; Detector; Preemption; Chechsum. It is a observe-only screen, i.e. it does not support any data entries.
  2. Control: enter control data parameter in 9 areas as---configuration; phase timing; overlap timing; recalls; locks; features; call phases; phase omit; red revert.
  3. Preemption: set 7 preemption selectively, among them, two for Railroad Preemption, 4 for Emergency Vehicle Preemption and 1 for Transit Priority Preemption.
  4. Command: select from 4 command entries, which are Manual Plan; to control special function output; to activate detector reset line; to set the local menu flag to release the controller from "on-line" ATSAC (Automated Traffic Surveillance and Control of LA city) and to enter priority request.
  5. Detector: select from 6 detector data entry. It allows detector attributes, configuration, failure timers, failure override, system detector assignments and CIC parameters.
  6. Communication/Soft Logic: select from communication parameters and soft logic equations.
  7. Coordination: among 15 selections for coordinated oerations, 9 are for local plan, 4 for ATSAC plan, 1 for free plan and 1 for ATSAC flag data.
  8. Time-of-Day:6 data selections relating to the Time-of-Day, include TOD clock; schedule; functions; solar clock data; sabbatical clock data; and daylight saving time.
  9. Utilities: include event record; diagnostic tests; RAM initialization, direct RAM access; copy parameters and terminate program.


My Work

My work is to analyze the code of TSCP program, Version 226. On the basis of this analysis, TSCP will be translated into the UML (The Unified Modeling Language).

UML is a language for specifying, visualizing, constructing, and documenting the artifacts of software systems, as well as for business modeling and other non-software systems. Its goals are:


System Structure

TSCP consists of three independent but interactive tasks. The most frequently triggered task is the low-level control, which interacts with outside world. It takes data from primary inputs such as Field I/O, then puts the data into input buffer. After that, it executes the control logic based on current system settings, and fills the output buffer with updated data. Finally, it forces the data in output buffer to appear on the primary outputs. Built on this low-level control, high level part determines the current system behavior. This behavior is defined by some system variables. The control extracts the input information directly from input buffer, and updates the system settings based on predefined control protocol. It also generates output data, which is to be sent to primary output by low level control. Besides these two controls, auxiliary control part performs some tasks like updating clock strategies, parameter file loading and saving.

wpeC5.jpg (17174 bytes)

Fig 1. the Global Structure of TSCP

The system logic flow of TSCP can be divided into three modules: initialization, execution and termination.

wpeC6.jpg (30232 bytes)

 Fig 2. the Flowchart of Initialization Module


When time.trigger is multiple of TRGGER_20HZ, TRIGGER_10HZ and TRIGGER_1HZ, three group of executions will be performed one by one.

wpeE1.jpg (45365 bytes)

 Fig 3. the Flowchart of Execution Module 


Mainly, the termination module consists of the executions which are functioned reversedly to initialization.

wpeDF.jpg (17982 bytes)

Fig 4. the Flowchart of Termination Module



Through my part-time work at TCFI, I have gotten a first hand look at how the real traffic signal control works, what kinds of variables are used to control its operation. Also it helps to earn how to develop such a comprehensive real-time control programming. Besides, I learned numerable useful software, as well as many little but very important things for engineering work, such as designing, coding, finishing a project, scripting, network configurations & security, web site maintaining, etc. I am continuing to work with TCFI in the next quarter and try to learn more through it.


Ying Yan,  CS193@ UCSB, Spring 2001                                          Last updated on June 10, 2001