Today, consumers and businesses expect secured access to their information or content on demand anywhere at any time. As digital media is now a standard for audio/video (AV) content, its access and delivery has become very complex, particularly for video applications.
This is primarily due to a high network bandwidth requirement for high definition (HD) resolutions and processing bandwidth requirements for video decoding, such as MPEG4/H.264. In addition, the Internet has become a way of life in many aspects and as a result user authentication and transaction authorization is becoming more significant for service providers.
System-on-a-Chip (SoC) solutions have been called upon to simplify many of these complexities within various demanding applications across many digital consumer products.
In fact, SoCs are providing improved product solutions in almost all areas, such as enterprise, retail, financial, healthcare, automotive, process control and more. Well optimized SoCs integrated with the most commonly needed functions and peripherals, yet generic to address different application verticals, can offer comprehensive embedded system solutions.
For example, with a base SoC as the foundation, a completed embedded system solution can be made to offer connectivity, content storage, content delivery, security and content presentation.
Tuned as a Network Appliance Processor (NAP) a SoC-based system has proven well capable and cost-effective with applications such as a USB Server, network attached storage (NAS), Point-of-Sale (PoS) terminals, Digital Signage and Smart Card Terminal applications.
Network Appliance Processors
Several SoCs exist in the market today with very high functional integration that can be used for a variety of applications. However, in many cases high integration devices may not offer cost-effective system solutions and frequently over or under perform for the target application needs.
Ideally a customized SoC integrated with right performance and functions would provide a perfect fit for a given application – not too many features, driving up costs, and not too few, leaving the application short on marketability.
Custom device fabrication is justifiable only if there is a high volume expected and the end product features meet all expectations. Also, custom approaches may demand a unique SoC for each end product solution, requiring costly and time-consuming silicon redesigns.
To expedite time to market – even with modifications for a new product – and save on design costs, a general SoC approach, one that has built-in flexibility to quickly modify or optimize designs for new target applications, should be strongly considered.
For example, the following lists SoC (let’s call this one “SoC1”) features for a well optimized network appliance. This one fulfills the need for security and data encryption features:
* ARM9 or similar 32-bit RISC with MMU
* 170 to 300 MHz operation, MMU, 16K Instruction and Data caches
* 32 MB, 100MHz SDRAM controller, 16/32-bit modes.
* Parallel 8-bit Flash, up to 8MB
* Local bus support for peripheral interfaces
* AES and DES/3DES Encryption
* SHA1, SHA256 and MD5 Authentication
* Standard UART, up to 0.5Mbps operation
* 20 GPIOs, interrupt capable, optionally used for software controlled I2C
* 3 USB Host ports and one OTG port
* 10/100 Ethernet MAC and integrated PHY
* 32-bit/33MHz PCI Host Bus
A second example (SoC2) network appliance processor with the following list of features is ideal for multiple applications that are performance-focused instead of security focused:
* ARM9 or similar 32-bit RISC with MMU, 500 to 600Mhz
* 32K I Cache and 16K Data Cache
* RGMII for 10/100/1000 Ethernet interface
* IEEE 802.3 compliant MAC, HW TOE
* 2 x USB2.0 with integrated PHY, with one OTG port, one HOST Port and supports Bulk, Interrupt and ISOCH types
* 1GB, 32-bit SDRAM, DDR2, 250-300Mhz
* Serial Flash Interface (SPI), up to 4 devices
* I2C Interface dompliant with I2C Bus standard V2.1 and supports up to 400Kbps data transfer rate
* Standard UART -1Mbps, 8 GPIOs, JTAG
* 10 GPIOs, interrupt capable
* x1 PCIe RC/EP ports with integrated PHY
A third example (SoC3) network appliance processor is the same as the second listed but, with an integrated display interface options:
* 6/8-bit LVDS FPD link
* 24-bit RGB
* VGA/SVGA/XVGA/WXVGA (1366×768)
With these three optimized devices and features within each, we essentially have a family of appliance processors. These three SoCs form different generic embedded platforms that are flexible enough to quickly provide multiple cost effective application solutions from each one: USB Server, network attached storage (NAS), Point-of-Sale (PoS) terminals, Digital Signage and Smart Card Terminal applications.
A USB Server allows the sharing of USB based devices between multiple networked PC clients through USB virtualization. The USB Server Box is connected to the Ethernet network and any client in the network can request access to one or more connected USB-server devices.
Any device with standard USB connectivity (camera, printer, media player, Flash drive, etc.) can be connected to the USB ports in the USB server and only one client can connect to a device at any time.
However, devices like printers can be shared by multiple clients. The PC clients access the USB devices on the USB server as though they are directly connected to its USB host port.
The SoC1 or SoC2 features provides a fully integrated solution for implementing this type of USB Server. A USB server application block diagram is shown in the Figure 1 below .
|Figure-1: SoC1/SoC2 based USB Server|
In addition to the hardware, for implementing a production worthy USB server application, a turn-key embedded software package and client software supporting Windows, MAC OS and Linux platforms are essential. A simplified view of the USB Server/client software stack and operations are illustrated in Figure 2 below .
|Figure-2: USB Server and USB Client Software overview|
In the USB Server, the USB virtualization driver encapsulates all of the USB commands and packets into the UDP or TCP/IP streams and transports them over the network. Similarly, the USB traffic data is extracted and delivered to the connected USB device through the USB core driver and host controller driver integrated with the embedded operating system (OS).
The client establishes a virtual connection with the device control manager and provides administrative support through a graphical user interface (GUI). The virtual USB enumerator monitors the UDP and TCP/IP connection and translates the device enumeration by interfacing through the standard USB core driver and USB stack integrated within the client platform OS such as, Windows, MAC OS, or Linux. Similarly the virtual USB packet data gets interfaced to the application through the USB core driver.
Through the use of feature sets from SoC1 and / or SoC2, a fully functional USB server product solution can be realized quickly. Since the embedded solution is based on generic SoC functions optimized for connectivity, rolling out new products are simpler – a quick re-spin of the same design, rather than full re-design or a new SoC design, suffices.
A far faster and cheaper time to market is then realized for new product generations of the USB server. The same benefits can be realized with NAS, PoS terminals, Digital Signage and Smart Card Terminal applications, as we’ll now illustrate.
Network Attached Storage (NAS)
In a network attached storage application, the NAS system has a storage server that can be connected to a LAN through an Ethernet link, or wirelessly through an 802.11/Wi-Fi interface.
The networked client PCs’ can directly maintain and access content from the NAS server attached to the network. Depending on the type of network – home, SOHO or enterprise – the security functions of the NAS server becomes very significant.
In addition, considering the need for remote access support, the NAS server ideally should support functions such as FTP, peer to peer file sharing, protocols like Bit Torrent, etc.
Considering a NAS server sits on a network it can also provide shared services such as a print server. This would be done through USB service ports integrated within the NAS box.
These USB ports can also serve to connect to backup USB drives. Alternately Redundant Array of Independent Disks (RAID), which is a collection of multiple drives, can provide another option for integrated backup or capacity expansion.
The SoC2 based NAS solution options are shown in the Figure 3 below . The USB ports can be used for print server and backup drives.
|Figure-3: SoC2 based NAS Solutions|
As illustrated, a simple NAS solution can be based on USB mass storage device. Alternately, PCIe SATA adapter can be used with SATA hard drive. Also, the SATA port multiplier can be used to expand the NAS capacity or to support RAID functionality.
The RAID can be implemented through software or through hardware using port multipliers having the hardware RAID option. It also illustrates a wireline and wireless network connectivity options. A simple view of the NAS software stack is illustrated in Figure 4 below .
|Figure-4: NAS software stack overview|
A typical NAS solution on Linux or any embedded OS must provide flexible support for several file systems – XFS, HFS, NTFS, EXT2/EXT3 and FAT16/32. A comprehensive middleware suite with necessary applications such as backup, access control, disk management and system maintenance completes a NAS product solution.
Point of Sale (PoS)
A PoS system is primarily used in retail/services-oriented businesses such as a store, restaurant, hotel, banking, transportation, etc. A typical electronic PoS system is equipped with a display terminal; a user interface such as keyboard, mouse, touch pad, bar code reader, cash register, printer and other accessories depending on the application needs.
PoS applications may be standalone with a single PoS terminal or several of the PoS Stations may be networked to a local or remote server. In addition, if the application requires electronic money transactions, the system must be able to connect to a local or remote server through LAN or WAN or other public network infrastructure to get authorization for the electronic money transaction.
The SoC3 feature set provides a comprehensive PoS Terminal system application as shown in Figure 5 below . Two USB ports from SoC3 can be used for the user interface devices: keyboard, mouse or touch pad. A PCIe peripheral controller device can be used for additional serial ports.
These serial ports can be interfaced to other PoS peripheral devices such as a magnetic card reader, bar code reader or printer. An Ethernet interface allows local terminal networking and extends to a remote server or a credit card service provider.
Stand alone PoS terminals may not require an Ethernet interface. However, they may use a dial-up connection through a serial modem for transaction authorization.
|Figure-5: SoC3 based PoS Terminal Application|
The software stack is primarily dictated by application. Other lower levels of the stack contain the standard OS, API, BSP and device drivers. The PoS platform can be Linux, WinCE or another embedded OS based and the integration required with BSP and device drivers.
The PoS application allows entering the sales transaction using the bar code reader or keyboard. The application gets the pricing from a locally maintained database in a flash drive or from the remote server connected on the network. The pricing is presented in a GUI on the display.
All of the PoS service commands are mapped to the function keys of the keyboard that allows performing various operating commands such as reset, void, price override, etc. At the end of sales data entry, a credit card transaction can be initiated from the magnetic card reader to complete the sales transaction. A print command can be used to get the transaction print out to close the transaction.
In the case of applications requiring USB based PoS peripheral devices instead of serial devices, a PCIe-USB port adapter can be used to provide 4 USB ports. Similarly, PoS terminal applications requiring local storage can use a USB flash drive, USB hard drive or PCIe-SATA hard drive.
When local storage is not required, thin clients are ideal for PoS applications. Thin client-based PoS systems offer a reliable, secure and cost effective solution.
Generic SoC embedded solutions, like SoC3, with an integrated display controller offers a self-contained embedded system that can be booted from the system’s flash drive. As such, SoC3 can also provide a very efficient and a simple thin client PoS terminal implementation.
Digital signage is a means of electronic advertisement on a display monitor. Considering multimedia information can be easily transferred across a local or public network, use of digital signage is becoming more popular as it can present the message to the viewer with very interesting mix of audio, video clips, graphics, animation and text.
Digital Signage brings a new form of messaging that harnesses the visual power of the digital age and consumer message perception patterns. It is a fast growing market which industry tracker Digital Signage Resource estimates will grow to be a US$3.5 billion market by 2011.
Research firm Multimedia Intelligence estimates the market consumed 1.1 million displays in 2008 and that by 2012 the market will consume nearly 2.3 million displays.
With digital signage, advertisement messages or content can be easily changed and switched with real time data. Digital signage systems can be a simple stand alone display system or a network of display systems.
In a standalone digital signage (DS) application, the digital content can be provided though local storage and scheduled to present based on the service needs. This can be a video clip or a simple slide show with or without mix of audio and rolling text messages. In the case of a networked signage system, the DS content server pushes the content to the remote DS players or clients.
The content push can be real time and it could be broadcast or multicast to multiple signage clients. With a real time content delivery system, the DS players need not store the content – they just need to present the content to the signage terminal.
Alternately, the signage client could maintain the content in the local storage and update as per server instructions. As the uncompressed HD video content can be very demanding in both storage capacity and network bandwidth, typically compressed video content is used for digital signage applications.
Compression can be based on a proprietary image compression algorithm or standard compression format such as JPEG, MPEG, MPEG4 and H.264. Hence, a versatile DS player must support a multi-format media decoder to uncompress the AV content for the signage presentation.
A DS Player application using SoC2 as a USB server is illustrated in Figure-1. In this way, it can be used for a digital signage application in which the display is virtualized through USB.
In this application, the DS sever virtualizes the display and sends the image in a compressed format to utilize the network bandwidth efficiently. The external USB-to-VGA adapter un-compresses the display image and presents it on the screen. The Audio option can be added using a USB audio adapter on the unused USB port.
The features from SoC3 can be used for the DS player, for which a block diagram is shown in Figure 6 below . This offers a cost effective solution for a simple stand alone DS player where the content is stored and presented locally. In this example, the signage content can be stored in a USB flash drive and the DS sever can update the content through the network.
|Figure-6: SoC3 based standalone DS player application|
For a standalone application, SoC3 provides a direct interface to an LCD display through the on-chip FPD link. Alternately, an external Video DAC can be used to interface to a VGA monitor. The audio is played through the USB to audio adapter.
The SoC3 streams the AV contents directly from the external flash drive. The DS server can update the flash drive media content through the network. This application is suitable for slide shows and small video clips with support for JPEG, simple animations and graphics that are not compute intensive.
A more versatile SoC2 based DS player application is illustrated in Figure 7 below which allows playing motion video streamed through the network or from a local storage.
|Figure-7: SoC2 based DS player with motion video capability|
In this application a PCIe media player adapter card is interfaced to the SoC2 to provide support for decoding of multi-standard encoded video streams, such as MPEG-2, MPEG4, H.264. The second PCIe port of the SoC2 can be interfaced to an 802.11n adapter to provide wireless network connectivity.
With a wired or wireless network option the media content can be streamed to the DS player. The DS player can optionally store the HD streams into a local storage or play the streams directly through the PCIe media player adapter.
Smart Card Terminal
A smart card based security card or token can be used in a variety of applications with different segment areas – government, security, entertainment, banking, transportation, etc. A national ID or smart ID card is one of the typical applications in the government segment.
Smart cards can address government applications such as driver licenses, passports, etc. Smart ID card usage can be expanded to consumer applications and all user information can be consolidated into a single secured smart card token.
Due to the wide range of smart card applications, the smart card terminal requirements may vary from application to application. Typically, the smart card terminal system can be broadly classified into following types:
* PC/workstation with a USB or other port-based Smart card read/write peripheral device
* Self contained wired or wireless embedded system with support for the smart card reader/writer
Depending on the application needs, the smart card terminal may have following options:
* Smart card terminal with only card read access
* Smart card terminal with card read and application specific restricted data write access
* Smart card terminal or development system capable of performing application loading and read/write access to the smart card information (keys and data).
The features from SoC1 can be used to build very flexible smart card terminal solutions. Multiple product options can be easily controlled through different software builds.
In addition various terminal functions can be protected using an internal firewall to restrict access permissions based on a security key. A smart card terminal based on SoC1, for a typical standalone PoS application, is shown Figure 8 below .
|Figure-8: SoC1 based Smart Card Terminal Application|
A simple smart card interface device can be interfaced to SoC1 through GPIOs and using the low level device driver, the smart card IO can be managed for device control and data access. The memory controller interface allows interconnecting SDRAM and flash devices for program and application data storage.
The memory controller interface supports a local bus implementation through which an LCD character module can be interfaced. The GPIOs can be used to interface the key pad and a low level driver is used to capture the key data.
The serial port from SoC1 can be connected to a RS232 translation device to provide an interface to a serial printer. One of the host USB ports can be connected to a USB-based finger print scanner to scan the finger print to implement authentication procedures.
A second USB host port can be dedicated to connecting any generic devices like a printer, or to provide wireless connectivity. The OTG port is configured as a device and serves as a host communication port.
The external host on the USB can control the smart card terminal to provide software/application upgrades, perform diagnostics and data upload functions. The power supply subsystem contains the necessary power conversion devices and optional battery mode operation.
A simplified view of the embedded software stack for the smart card terminal application is shown in the Figure 9 below .
|Figure 9: Embedded Software Stack for Smart card application|
The Smart card embedded software stack contains the low level hardware specific drivers including, the processor specific package and board specific package. The OS can be a simple low footprint RTOS or Linux for implementation flexibility.
The smart card middleware layer implements the smart card resource manager, cryptographic service provider and smart card service provider functions. The application can take advantage of the SoC’s hardware acceleration for implementing security algorithms. The application layer implements the smart card applications, host connection utilities and maintenance applications.
In summary, developing a family of SoCs with slightly varying features with a common embedded base allows embedded designers and OEMs a quick and cost-effective path to diversifying their applications very effectively.
Multiple SoC solutions, as illustrated with the feature lists of SoC1, SoC2 and SoC3, can be made to function as a NAP family serving many applications from each SoC or combination of SoCs.
These SoCs, having embedded processor with network connectivity and peripheral options, offer a comprehensive foundational embedded system solution for multiple designs as illustrated. However, as noted herein, the family of SoC devices is just half the story.
In order to build cost-effective, high-performance network appliance products, the necessary embedded software packages, client drivers and reference applications must be available along with the SoC hardware platform.
Combined, the embedded SoC and software solutions can effectively deliver affordable and timely network appliance solutions for a plethora of markets: consumer, enterprise, retail, marketing, education, financial, e-governance and industrial.
Krishnan Venkataraman is VP of Engineering at MosChip Semiconductor Technology Ltd. and leads the ASIC/SoC, Firmware and Software product developments. He has over 20 years of combined experience in semiconductor and systems in the areas of Telecom/Datacom and embedded system developments for industrial and consumer applications. He holds M.S in EE from University of Rhode Island and M.S in Computer Sciences from Oklahoma State University.