Expansion Options on the T-Engine
The T-Engine was designed as a super-platform for the rapid prototyping and development of real-time and embedded systems. The idea was to create a standard, completely specified platform that could be used for quickly developing and delivering the first prototype of the system. This meant that there was a need to use well-specified standard interfaces that could be used for the development of hardware and software modules.
Similar to the PC, the T-Engine Forum decided to select a number of standard expansion options that would allow system developers to add hardware to the basic T-Engine with relative ease. The vision was that this would enable developers to quickly prototype the target system. Once the function and features of the project were approved, final versions of the systems could be developed. In this article, we look at the standard ways to add hardware to the T-Engine.
1. Serial Interface – RS232
Almost all embedded systems have a standard RS-232 serial port. The simplistic nature of the serial protocol and its presence on most PCs made it an attractive port to include. Consequently, a number of prototyping kits come with a serial interface. In most cases, CPU boards use the serial port for debugging. The T-Engine has one basic serial port that is typically designated for the console and command line interface. However, you can disable the command line interface if you want to use the serial port for connecting to a different device. The software drivers support up to three other ports connected over the bus expansion or the PC Card Interface, etc. The serial interface can be used to easily connect devices such as card readers, communication modules, etc.
2. PC Card Interface
The T-Engine has a PC card slot that allows developers to plug in and use any PCMCIA card device. This can include devices such as LAN cards, wireless LAN cards, compact flash cards (through a PCMCIA Compact Flash Adapter) and so on. The basic PC Card Manager software in the development kit (from PMC) alerts the device driver subsystem when a card is plugged in. Of course, drivers are needed for controlling and managing the devices that may be plugged in to the PC Card Slot.
Although the PC Card interface can be used for different types of devices, it is most frequently used for plugging in a Compact Flash Card. The card can then be used for storing executables, data files, etc. and as a non-volatile work disk.
The T-Monitor can detect the existence of a CF card in the slot when it starts up, and can load the kernel and associated modules from the CF card instead of internal flash memory. This makes it very easy to prototype systems by downloading executable programs over the serial link to the CF card, and using the CLI to launch or load the programs.
3. USB Host
One of the exciting things about the T-Engine specification is the insistence on including a USB host in the hardware. This actually opens up a large number of options. Thanks to the ubiquity of the USB port on PCs and Macintosh computers, there are a very large number of computer devices that use USB – keyboards, mouse, printers, card readers, Bluetooth converters, serial port converters, external hard disks, scanners, digital cameras, and so on. In theory, any or all of these devices can be easily connected to a T-Engine during prototyping to evaluate the use of the system.
With the standardization of certain classes of devices, such as Mass Storage, HID, etc., it is possible to use a single driver to connect devices from different vendors. The T-Engine Development Kit (from PMC) includes the device drivers for keyboards, mouse, and mass storage. This allows you to use any of these devices for your system, thereby allowing you to speed up the development process. However, other devices will require a USB device driver.
The driver for the USB host manager on the system performs basic functions, such as detecting the connection and removal of devices. When this happens, it will search for the correct device driver and attach the device to the driver.
Again, when starting up, the early part of the T-Kernel can detect the existence of a mass storage device in the USB slot. If it finds one, the remaining drivers and programs can be loaded from the USB mass storage device, instead of the internal flash memory. This allows developers to use a USB storage device as the working disk (to which they can download programs) while the PC Card slot can be used for other devices, such as a LAN card. In a separate article, we provide more information about .
4. Expansion Bus – Memory or PCI
The T-Engine Forum specifies that every T-Engine and micro T-Engine must have an interface for an expansion bus. The expansion connector is specified as a 140-pin connector (Series 5603 connector from Kyocera) for board-to-board communication. The signals that are pulled out to this connector are either the memory bus, or the PCI bus.
Due to the CPU-dependant nature of the memory bus, . The T-Engine Forum recommends that T-Engine kit developers try to maintain compatibility with other memory bus specifications as far as possible. However, differences do exist.
Hardware vendors can refer to the specification of the Expansion Bus (for the T-Engine that they wish to use) and design expansion boards that work with the T-Engine. Already, you can purchase a LAN Board and an FPGA Board. Other boards are in development. Also, it is possible to get a Universal Board that is a bare-board that allows user logic to be placed on the board for prototyping.
The T-Engine allows hardware modules to be easily plugged in and removed, as needed. This allows developers to plan and prototype different versions of the target hardware with minimal changes. For example, one variant of the product may use a LAN interface (plugged into the PC Card Slot) and another may need to use a Wireless LAN Card. For the system developer, the second prototype can be easily realized by simply replacing one card with the other, and getting the software to load a different driver.
The options on the T-Engine allow different types of peripherals to be connected to the T-Engine for rapid prototyping. Some devices, such as mass storage and user-interface devices (keyboard, mouse), are best connected to USB. Development kits for other hardware (such as card readers) can be connected over the serial port. CF cards, LAN cards and Wireless LAN Cards can be plugged into the PC Card Slot. Other hardware modules can be connected to the bus interface. Since an FPGA board is available for the memory bus, it can be used for prototyping other digital hardware modules that connect to the main CPU over the bus. All in all, there are many options for rapid prototyping – the only real problem (other than cost) is the availability of drivers for the modules. However, as the T-Engine gains popularity, that will change.