Ever since Thomas Edison flipped the switch to power the first electric light, the pace of electronic innovation has never let up. With the invention of the transistor and then the integrated circuit, innovation within the electronics industry has developed at break neck speed. Today’s modern ICs contain upwards of 20 billion transistors. That scale means significant performance and tightly integrated heterogeneous systems on the same die.
This performance and integration capability has resulted in electronic innovation becoming very integrated with modern life. We now have convergence of applications which combine, among other capabilities, wired and wireless networking, vision processing, industrial control capability, and cloud computing, to create what are often known as smart products. These smart products are capable of interconnecting to form the Internet of Things (IoT). When these smart products are applied within an industrial context we refer to this as the Industrial Internet of Things (IIoT). Creating IIoT solutions brings with it several challenges. Let’s look at what IIoT systems are, the challenges they face, and how we can address these using the Zynq®-7000 and Zynq® UltraScale+™ MPSoC from Xilinx.
Application and Challenges of IIoT
The application of Industrial IoT is wide ranging and extends across automation and connectedness of the power grid to planes, trains, automobiles, shipping, and factory automation. General Electric, for example, is adding intelligent and connected systems across the many industries it serves, including power grid, transportation, oil and gas, mining, and water. In rail transportation, for instance, GE is outfitting its locomotives with smart technologies to help prevent accidents and monitor systems for wear and tear, enabling more accurate analysis for preventative and predictive maintenance. At the same time, GE is also diligently building smart rail infrastructure equipment that it has networked with its locomotives. This allows railway operators to run their lines and schedule maintenance accordingly to keep freight and passengers moving more efficiently and safely.
The above example demonstrates several of the challenges faced by the IIoT embedded system designer. IIoT systems need to be capable of interfacing and supporting a wide range of sensors, from simple MEMS-based sensors such as accelerometers, to more complex sensors such as CMOS Image Sensors (CIS). These sensors enable the IIoT system to understand its environment and become more context aware. However, many applications require the IIoT system to not only understand its environment, but also interact with it. Therefore, the system must contain intelligence so that it is capable of processing at the edge and thus interfacing with and controling the relevant actuators, motors, or other drive interfaces. Of course, the system is also required to be network enabled and to support a broad based of Industrial standards and protocols. This ability to communicate over networks, coupled with the remote and often isolated installation of IIoT systems, also demands secure operations and communications.
Determining the processing capability an IIoT system needs will depend upon the application, interfaces, and system throughput. One of the largest driving factors is the use of an embedded vision-based IIoT system within what is increasingly called Industry 4.0. Industry 4.0 introduces automation and data exchange to manufacturing technologies with technologies interconnecting via the IIoT and Cloud. When we are using Embedded Vision within the IIoT, key parameters of the image sensor will significantly drive the needed processing capability, typically defined by:
- Sensor Resolution: The number of pixels in the horizontal and number of lines in the vertical.
- Frame Rate: The number of times the entire sensor is read out each second.
- Data Width: The number of bits used to represent the pixel value.
The combination of these define the key interfacing requirements and that of the processing chain and its data rate, as shown in Figure 1.
It is not just implementing the image processing algorithms the system designers need to consider, they must also remember that many IIoT applications are implemented in harsh conditions—not only those involving vibration, shock, and temperature, but also those which are electrically noisy. This can lead to processing the data received by first filtering from the less complex sensors before either acting on the data or communicating it onwards. Depending upon the complexity of the filtering required, they could implement this with a simple rolling average filter or perhaps require a more complex implementation like a Finite Impulse Response (FIR) filter to filter out unwanted noise. Regardless of the method chosen, signal processing, conditioning, and generation form an important part of IIoT systems.
The sensor processing requirements combined with the communication throughput contribute significantly towards the processing capability required. For connecting to the Internet, the system’s application requirements, as determined by the system architect, dictate the primary method used. This will include several networking standards ranging from 4G for remote and mobile applications, to WiFi, Bluetooth, and Bluetooth Low Energy (BLE), and wired connectivity for factory or fixed applications. In some applications, ad hoc networking may also be required.
Another significant factor in determining the processing requirements is the response time or latency of the system. Again, this can be different from application to application. An Industry 4.0 inspection application will require a much lower response time to detect a manufacturing defect on a production line, than a predictive maintenance application on rolling stock, for instance.
The system also needs to be secure. It’s not just the encryption of communications to and from the system that’s demanded. Also needed are the security and the trustworthiness of the system itself. These are often called Information Assurance (IA) and Threat Protection (TP). For IA, a typical approach is to implement encryption such as Advanced Encryption System (AES) or one of the IoT-specific algorithms like SIMON or SPEC. TP is more complicated as it requires an evaluation of the threats at both a device and system level. Anti-tamper protection at the device level is as critical as that at the system level and will vary from application to application. In remote and isolated or critical applications, the system designer will need to ensure the performance and integrity of the system cannot be affected or tampered with by an unauthorized party.
Summarizing the above, we can identify several high-level challenges that the IIoT designer must address:
- Ability to interface and control a wide range of sensors, actuators, motors and other application specific interfaces.
- Processing capability with the ability to process at the edge within the required response time.
- Communication support for a range of wired and wireless technologies.
- Security and the ability for the device and system to be secure both in terms of IA and TP.
- Should include Functional Safety (SIL levels).
Rising to the Challenge
The system architect can address these high-level challenges by selecting a device from the Xilinx All Programmable Zynq-7000 SoC family or the Zynq UltraScale+ MPSoC family. These heterogeneous processing systems include a complete ARM processing complex, comprised of processor subsystem and peripherals (in the case of the Zynq-7000 include either single core dual ARM® Cortex™-A9 processors, or Dual or Quad A53 cores and dual R5 real-time cores, Mali GPU core, and in select devices video codec supporting H.264/ H.265), all closely coupled directly with programmable logic and configurable IO, allowing the system designer to create an optimal solution for many IIoT applications.
As Identified in the summary of the previous section, the Zynq All Programmable SoC family addresses a wide breadth of sensor and connectivity modalities, configurable machine learning engines for analytics with requisite responsiveness to meet machine real-time precision control, and multi-layered security with multi-level safety.
One of the main advantages of using a Zynq SoC solution is that it provides for any-to-any interfacing, enabling connection with both Industry standard, legacy, and evolving interfaces (such as TSN). Within the processing system (PS) of Zynq 7000 and Zynq UltraScale+ MPSoC, the user is provided with several standard peripheral interfaces. From basic low-speed standards like SPI, I2C, and UART to more complex ones such as CAN, Ethernet, USB 3.0, PCIe, SATA, and DisplayPort. These integrated peripherals enable the design engineer to connect a wide range of sensors. However, should an interface be required that the processor doesn’t support, for instance a CIS or high-speed ADC or DAC, designers can utilize the programmable logic (PL) to implement the required peripheral interface. This ability to use the PL to create the interface required comes into its own when there is a need to interact with a proprietary or legacy interface.
Data produced by the sensors can be processed by either the processor or the programmable logic. Using Xilinx’s system-level Eclipse-based SDx environment SDSoC™, the design engineer can seamlessly partition and quickly optimize the design. Designers can move functions executing on the processor by offloading and accelerating them as co-processing engines implemented in the programmable logic. The SDSoC provides a rapid and seamless development environment, combining High Level Synthesis with optimized data movement engines and a connectivity framework, substantially boosting system performance.
For example, two commonly used algorithms within IIoT systems are FIR filters to reduce noise on sensor readings as previously noted, and AES encryption to secure communication channels. Both these algorithms can be executed within the processor system. However, the performance can be increased significantly by moving these functions into the programmable logic. Monitoring the number of clock cycles taken to execute these functions when the FIR filter example is implemented on the processor, and then in the programmable logic, the user obtains values of 537946 clock cycles using a bare metal operating system, and 54696 clock cycles when running in the programmable logic. A significant decrease in execution time of around 90 percent results, achieved without the use of an HDL specialist. Designers can provide similar acceleration functionality for signals that need to be generated by the IIoT system, for example performing motor control.
Furthermore, Machine Learning and Neural Networks can be implemented utilizing the combined processing capabilities provided by the Zynq Programmable SoC family. Some examples are inference engines for image classification, which is important in machine vision for process control, and autonomous operation in robotics and surveillance systems, combined with stochastic probabilistic algorithm ML engines for predictive to prescriptive maintenance. The Zynq Programmable SoC family and development tool environments provide a platform for rapid generation of these engines utilizing popular machine learning frameworks.
But of course, not all IIoT systems are implemented on a bare metal OS. Many require a real-time OS like FreeRTOS, or a more complex OS like Linux. The choice of operating system will have an impact on the performance of the accelerated function. Table 1 shows the performance of the AES256 algorithm when running in the processor system and accelerated to the programmable logic using several different operating systems.
When it comes to being network enabled and communication to and from the system, both Zynq-7000 and Zynq UltraScale+ MPSoC provide Gigabit Ethernet capability within the processor. If the system requires a wireless connection, users can leverage the any-to-any configurable interface capability to connect with an external WiFi module. Often these provide Bluetooth and BLE capability as well. If the system is designed to operate within a remote, isolated, or mobile application, a 4G interface may be provided in these instances to ensure continuity of connection back to the Cloud.
Security is designed into the very core of both Zynq-7000 and Zynq UltraScale+ MPSoC families, enabling secure boot facilities. Within both the processor and the programmable logic of Zynq-7000 devices there is a three-stage process system engineers can use to ensure system partitions are secure. These comprise a Hashed Message Authentication Code (HMAC), Advanced Encryption Standard (AES) Decryption, and RSA Authentication (Figure 2). Both the AES and HMAC use 256 bit private keys while the RSA uses a 2048 bit key. The security architecture of Zynq also allows for JTAG access to be enabled or disabled, preventing unauthorized system access.
These security features are enabled as users generate the boot file and the configuration partitions for their non-volatile boot media. It is also possible to define a fall-back partition such that should the initial first stage boot loader fail to load its application, it will fall back to another copy of the application stored at a different memory location, offering a degree of reliability. And if required, users can implement functional safety (IEC61508 based) within their IIoT design using techniques such as Isolation Flow (Figure 3). A reference design is available showing how Zynq-7000 achieves SIL 3 with HFT=1.
Having completed the secure boot and with the device executing its application, they can use the ARM TrustZone architecture to implement orthogonal worlds, which limits access to hardware functions within both the processor and programmable logic peripherals. Integrated A/Ds for voltage and temperature monitoring can assess SoC and overall system health. This can also be used to provide an anti-tamper capability to address unauthorized access to the system. The Zynq US+ MPSoC enhances the Zynq 7000 security, adding security functionality including Differential Power Analysis (DPA) avoidance, integrated Physically Unclonable Function (PUF), and other security features.
IIoT designers face several challenges that can be addressed using Xilinx Zynq All Programmable SoC and MPSoC families. These solutions address these challenges by combining Software Intelligence and Hardware optimization in a single Zynq SoC device. The devices provide real-time processing and response, breadth of communication standards and protocol support, with multilayer security and functional safety, any to any connectivity and the ability to rapidly develop at the system level using SDSoC to ensure the optimal system partitioning and performance, Zynq Programmable SoCs are the ideal platform for IIoT systems.
Adam Taylor is a world recognised expert in design and development of embedded systems and FPGA’s for several end applications. Throughout his career Adam has used FPGA’s to implement a wide variety of solutions from RADAR to safety critical control systems, with interesting stops in image processing and cryptography along the way. Most recently he was the Chief Engineer of a Space Imaging company, being responsible for several game changing projects. Adam is the author of numerous articles on electronic design and FPGA design including over 175 blogs on how to use the Zynq. Adam is Chartered Engineer and Fellow of the Institute of Engineering and Technology, he is also the owner of the engineering and consultancy company Adiuvo Engineering and Training http://www.adiuvoengineering.com