凌先电子推出无CPU工业控制计算机
上海凌先电子推出无CPU工业控制计算机的硬件架构和显示操作画面的设计方案。所推出的无CPU工业控制计算机通过对FPGA芯片内部的可编程逻辑进行配置实现工控机的算术运算、逻辑处理以及数据通信等逻辑功能,在运行过程中完全不包含CPU和软件。具有系统简单、容易被进行充分测试和验证,信息安全性和功能安全性高等优势。
1. 引言
高铁、银行、航空航天、军事、石化、医疗等领域中,工业控制计算机的故障可能会导致重大的人员伤亡或者设备财产的重大损失。如“震网”“火焰”“毒区”等病毒攻击的出现,给工业界造成严重的损失。在上述重要领域,为了避免引起人员的伤亡或设备财产的重大损失,对于这些领域中的工业控制计算机提出了非常苛刻的要求。这些领域的工业控制计算机负责对相关设备或装置的温度、压力等参数的动态数据在友好的人机界面上连续进行显示,使得操作人员可以形象直观地获知各种关键信息,也可使操作人员通过鼠标、键盘等输入设备对相关的设备和装置进行操作,保证设备和装置处于安全稳定的状态。高速列车上的安全计算机、航空工业的机载图形显示系统、银行的ATM机等都属于此类系统,它们对于高速列车、航空航天、银行ATM机等领域内设备的安全运行起着至关重要的作用。
为了解决上述问题,国内外很多企业对传统的工业控制计算机做出了很多修改和优化。但是由于CPU和操作系统为了实现其通用性的目标,往往设计的非常复杂,难以完全满足实际工作场合对与工业控制计算机在信息安全和功能安全方面的目标。上海凌先电子科技有限公司开创性地研制出无CPU工业控制计算机,通过对FPGA芯片内部的硬件资源进行配置来实现各种功能,在运行过程中完全不包含CPU和操作系统等各种软件,可有效降低对系统进程充分测试验证的难度,保证工业控制计算机的具有很高的功能安全特性;同时也可有效地提高其抵抗病毒、蠕虫、木马等恶意攻击的能力,保证工业控制计算机具有很高的信息安全特征。
2. 无CPU的工业控制计算机特征
无CPU的工业控制计算机在运行过程中不包含CPU和操作系统等各种软件,具有以下特征:
(1) 采用FPGA实现工业控制计算机的所有逻辑功能;
(2) 运行过程中不包含操作系统和CPU等复杂的软硬件;
(3) 有效抵抗计算机病毒感染等造成的威胁,具备很高的信息安全性;
(4) 系统简单,容易进行充分的测试及验证,具备很高的功能安全性;
(5) 采用FPGA实现高速数据处理和运算,具备很高的数据处理性能;
(6) 软件和硬件成本较常规工业控制计算机要低很多。
(7) 工控机人机画面实时切换,有效避免死机等运行故障;
(8) 根据实际需要定制开发功能,避免多余的功能对工控机造成不利影响。
(9) 更有效地避免硬件过时所带来的不利影响。
3. 无CPU工业控制计算机的架构
无CPU的工业控制计算架构如图1所示。无CPU的工业控制计算基于FPGA芯片开发而成,其中FPGA芯片也可采用具有相同逻辑功能的ASIC芯片进行代替。
图1. 无CPU工业控制计算机架构
由图1可见,无CPU工业控制计算机包括输入设备、工控机逻辑处理模块、人机接口模块、外设接口模块、数据存储模块、显示接口模块以及显示设备。人机接口模块、显示接口模块、外设接口模块、数据存储模块都直接与工控机逻辑处理模块相连接。 显示接口模块与显示设备相连接,人机接口模块与所述的输入设备相连接,外设接口模块与外部设备相连接。
图1中的显示设备为具备VGA接口的液晶显示器,用以接收显示接口模块发送来的符合VGA显示设备接口要求的显示操作画面的图像信号并将其发送至液晶显示器上显示。
图1中的输入设备包含鼠标和键盘,用于接收用户的输入信号后,将所述的输入信号发送至所述的人机接口模块;工控机逻辑处理模块,用于对外设接口模块发送来的动态数据以及人机接口模块发送来的输入信号进行处理,使无CPU工业控制计算机实现用户登录及各种功能,并生成显示操作画面的图像信号发送至显示接口模块,以及生成对外部设备的控制信号发送至外设接口模块;显示接口模块,用于接收所述的工控机逻辑处理模块发送来的显示操作画面的图像信号,并发送至显示设备;外设接口模块,用于接收外部设备发送来的动态数据并将其发送至所述的工控机逻辑处理模块,另外,外设接口模块接收工控机逻辑处理模块生成的对外部设备进行控制的信号并发送至外部设备;人机接口模块,用于接收输入设备发送来的输入信号,并将所述的输入信号发送至工控机逻辑处理模块;
工控机逻辑处理模块生成显示操作画面的图像信号发送至显示接口模块,从而将相应的图像信号发送至显示设备使其显示用户登录及各个功能模块的显示操作画面所对应的图像;所述的无CPU工业控制计算机在运行过程中,不包含CPU、显示芯片等硬件和操作系统、显示操作画面组态软件等软件。
图1中的输入设备包括鼠标和键盘,其中鼠标可以采用轨迹球代替。
工控机逻辑处理模块主要由FPGA芯片及其时钟电路等支持电路组成。优选地,所述的工控机逻辑处理模块包含Xilinx公司或Altera公司的FPGA芯片,所述的工控机逻辑处理模块对人机接口模块、数据存储模块、外设接口模块发送来的动态数据及输入信号进行处理,生成驱动显示设备显示的显示操作画面的图像信号并发送至显示接口模块。同时,该工控机逻辑处理模块生成对外部设备进行控制的控制信号后传输至外设接口模块。
图1中的FPGA芯片的主时钟频率为100MHZ;采用FPGA芯片实现的工控机逻辑处理模块中的逻辑功能全部采用硬件描述语言开发为RTL级代码;接着对RTL级代码进行综合后生成其对应的网表文件,然后对所述门级网表经过布局布线等步骤处理后,生成对FPGA芯片进行配置的文件;并将所述的对FPGA芯片进行配置的文件下载所述的FPGA芯片中,使得FPGA芯片实现工控机逻辑处理模块中的逻辑功能。
图1中的人机接口模块包含两个PS/2接口。其中的一个PS/2接口为鼠标信号接口,另一个PS/2接口为键盘信号接口,用以接收鼠标和键盘发送来的用户输入信号。
图1中的外设接口模块包含一个接收数据的RS422串行通信接口电路和两个发送数据的RS422串行通信接口电路。发送数据与接收数据的通信协议采用UART协议,用来接收外部设备通过电缆发送来的动态数据并将其传输至工控机逻辑处理模块,同时将工控机逻辑处理模块所产生的对外部设备的控制信号通过电缆传输至外部设备。
图1中的数据存储模块采用一块SSRAM芯片和一块Flash芯片,SSRAM芯片的型号为EDI9LC644V,Flash芯片的型号为K9F4G08U0M。
4. 人机接口画面设计示例
基于FPGA的无CPU工业控制计算机的人机画面包含主目录画面、功能子模块的显示操作画面、动态数据显示及处理系统人机界面。
4.1 主目录画面
图2 功能目录显示操作画面示意图
请参阅图2所示,为本具体实施例中无CPU工业控制计算机中功能目录显示操作画面示意图,所述的功能目录显示操作画面包括以下显示区域。
背景画面显示区域100:用于显示功能目录显示操作画面;功能目录显示操作画面为二值图像,此区域中图像的颜色显示为蓝色;功能目录显示操作画面中空白区颜色为灰色。
鼠标指针显示区域200:用于显示位置随着鼠标指针的X坐标信号和Y坐标信号的变化而变化的鼠标指针。鼠标指针显示区域200中鼠标的箭头图像的像素显示为白色,其位置会随着鼠标输入信号的变化而变化;鼠标指针显示区域200中不属于箭头图像的像素处于透明状态,这些像素的位置显示位于该位置的其它显示区域对应图像的像素的颜色。鼠标指针显示区域200所显示的图像信号由图4中的Mouse_img信号生成。鼠标控制显示区域300,包含“登录画面”鼠标控制显示子区域311、“功能画面1”鼠标控制显示子区域312、“功能画面2”鼠标控制显示子区域313、“功能画面3”鼠标控制显示子区域314等显示子区域。
“退出系统”鼠标控制显示子区域311:默认显示的颜色为紫色;当鼠标指针位于“登录画面”鼠标控制显示子区域311的范围内且点击鼠标左键,其颜色显示为黄色;当鼠标释放后,显示子区域311所显示的颜色再次显示为紫色,此时使得功能画面切换子模块的sw_login信号输出一个时钟周期的值为1的信号。
“功能画面3”鼠标控制显示子区域314:默认显示的颜色为紫色;当鼠标指针位于“功能画面3”鼠标控制显示子区域314的范围内且点击鼠标左键,其颜色显示为黄色;当鼠标释放后,显示子区域314所显示的颜色再次显示为紫色,此时使得功能画面切换子模块的sw_f3信号输出一个时钟周期的值为1的信号。
“功能画面1”鼠标控制显示子区域312和“功能画面2”鼠标控制显示子区域313具有和“功能画面3”鼠标控制显示子区域314类似的特性和功能。
“功能画面4”鼠标控制显示区域315,“退出”鼠标控制显示区域316,为备用的鼠标控制显示区域,在本实施实例中不接受鼠标点击信号的控制。
图4中鼠标指针区域200的边框为虚线,表示鼠标指针区域200的边框不会在显示设备上显示;鼠标指针区域200中实线和虚线框之间的像素为透明的像素,不会显示在显示设备上。
本实施实例中除了鼠标指针区域200的范围以外的背景画面区域100所对应的图像即为背景画面区域100所对应的图像。
4.2 功能子模块的显示操作画面
图3 功能子模块的显示操作画面示意图
功能子模块的显示操作画面示意图如图3所示。所述的功能子模块的显示操作画面包括以下显示区域。
背景画面显示区域:用于显示功能目录显示操作画面;功能目录显示操作画面为二值图像,功能目录显示操作画面中空白区域的像素的值为0,除空白区域外的保持不变的图像或图形的像素的值为1;功能目录显示操作画面中像素的值为1的图像或图像包括线条、边框、汉字、图像或其它符号,这些部分的颜色显示为蓝色;功能目录显示操作画面中空白区颜色为灰色。鼠标指针显示区域600:用于显示位置随着鼠标指针的X坐标信号和Y坐标信号的变化而变化的鼠标指针。鼠标控制显示区域700,包含“目录画面”鼠标控制显示子区域711、“功能画面1”鼠标控制显示子区域712、“功能画面2”鼠标控制显示子区域713等显示子区域。功能设备图像显示区域800既可显示图4所示的动态数据显示及处理系统显示操作画面,也可显示其它显示操作画面。
“目录画面”鼠标控制显示子区域711:默认显示的颜色为紫色;当鼠标指针位于“目录画面”鼠标控制显示子区域711的范围内且点击鼠标左键,其颜色显示为黄色;当鼠标释放后,显示子区域711所显示的颜色再次显示为紫色。当显示子区域711的颜色由紫色变为黄色,然后又变为紫色,则使得无CPU工控机所显示的画面切换至“目录画面”对应的显示操作画面。即图2所示的显示操作画面。
“功能画面1”鼠标控制显示子区域712:默认显示的颜色为紫色;当鼠标指针位于“功能画面1”鼠标控制显示子区域712的范围内且点击鼠标左键,其颜色显示为黄色;当鼠标释放后,显示子区域712所显示的颜色再次显示为紫色。当显示子区域712的颜色由紫色变为黄色,然后又变为紫色,则使得无CPU工控机所显示的画面切换至“功能画面1”对应的显示操作画面。
4.3 动态数据显示及处理系统显示操作画面
图4 动态数据显示及处理系统显示操作画面
请参阅图4所示,为无CPU工控机中动态数据显示和处理的系统的显示操作画面,所述的显示操作画面主要包括以下几个功能区域:
“禁止报警”鼠标控制区域2,默认颜色为紫色,此时允许报警闪烁区域4报警,当鼠标点击“禁止报警”鼠标控制区域2后,其颜色切换为红色,表示禁止报警闪烁区域4报警。
“打开水阀”鼠标控制区域3的默认颜色为紫色,当鼠标点击区域3时,其颜色切换为黄色,当鼠标释放后,其颜色恢复到默认颜色。
报警闪烁区域4,默认颜色为浅蓝色,当“过热蒸汽温度”超过限定值时,使报警闪烁区域4所显示的颜色在浅蓝色和红色之间以每秒2次的频率切换,表示报警信号正在发生。
动态数据背景区域5,中显示过热蒸汽温度的动态数据的背景图像,其默认颜色为黑色。
键盘输入数据背景区域6显示键盘输入的冷却水阀门开度的数据的背景图像,其默认颜色为黑色。
“冷却水阀”开度状态区域7,其默认颜色为红色,表示该阀门关闭;当其颜色变为绿色时,表示该阀门被打开;其中“冷却水阀”开度状态区7分为上下两部分,如果“冷却水阀”开度状态区7只有下半部分为绿色,则表示冷却水阀的开度为50%,对应键盘输入数据显示区域12显示的键盘输入数据为“1”,如果“冷却水阀”开度状态区域7全部为绿色,则表示冷却水阀的开度为100%,对应键盘输入数据显示区域12显示的键盘输入数据“2”。
“给水阀”开关状态区域8,其默认颜色为红色,表示该阀门关闭;当其颜色变为绿色时,表示该阀门被打开。
键盘输入有效线区域9的颜色为黄色,当键盘输入有效线区域9闪烁时,此时可通过点击键盘的按键输入冷却水阀门开度数据,并显示在键盘输入数据显示区域12中,;如果键盘输入有效线区域9不显示,则表示键盘输入数据显示区域12不能接收并显示键盘输入数据。
鼠标图像区域10的位置随着人机接口模块所接收到得鼠标发送来的鼠标图像的X坐标和Y坐标信号的变化而变化。鼠标图像区域10中鼠标的箭头图像的像素显示为白色,其位置会随着鼠标输入信号的变化而变化;鼠标图像区域10中不属于箭头图像的像素为透明,这些像素的位置显示其它区域图像相同位置的像素的颜色。
动态数据显示区域11中,位于动态数据背景区域5的范围内,包含显示3个十进制数的图像的像素,其中动态数据的颜色为黄色。
键盘输入数据显示区域12中,位于键盘输入数据背景区域6的范围内,包含显示1个十进制数的图像的像素。
其中,图2中鼠标图像区域10、动态数据显示区域11与键盘输入数据显示区域12的边框为虚线,表示鼠标图像区域10、动态数据显示区域11与键盘输入数据显示区域12的边框不会在显示器上显示;鼠标图像区域10、动态数据显示区域11与键盘输入数据显示区域12中实线和虚线框之间的像素为透明的像素,不会显示在显示器上。
5. 无CPU工业控制计算机人机界面实际效果图
根据以上部分内容所设计并实施的无CPU工业控制计算的整体照片如下图所示:
图5 无CPU工控机原理样机
图5所示的无CPU工控机主要包含显示器、键盘、鼠标以及无CPU工控机主机。其中无CPU工控机主机通过VGA接口输出图像信号至显示器,使得显示器显示图2、图3等所示的显示操作画面。无CPU工控机主机同时接收鼠标、键盘等输入设备输入的信号,以及外部设备输入的动态数据,并对输入的信号和数据处理后显示在显示器上的对应的位置。由于作者非专业摄影人员,且受限于拍摄设备的限制,所拍摄的无CPU工控机的显示画面与实际显示画面的显示效果存在较大的差距。
图6 功能目录显示操作画面实际效果图1
与图2所示的功能目录显示操作画面示意图对应的实际无CPU工控机的显示效果图如图6所示。图6中,共包含6个功能按键,这6个功能按键都处于未被选中状态。
图7 功能目录显示操作画面实际效果图1
如果鼠标指针位于图6所示的画面中的一个功能按键的范围内,且用户按下鼠标按键,则使得对应的功能按键显示被按下的状态。在图7中,“数据显示画面”功能按键处于被按下的状态。
图8 数据显示界面实际效果图
当用户松开图7中画面所对应的鼠标按键后,无CPU工控机所显示的功能目录显示操作画面切换为图8所示的“数据显示界面”。图8所示的“数据显示界面”主要用于显示外部设备所传输来的动态数据。
图9 动态数据显示及处理系统显示操作画面
如果鼠标指针位于图6所示的画面中的“显示控制界面”功能按键的范围内,且用户按下鼠标按键后释放鼠标按键,无CPU工控机所显示的功能目录显示操作画面切换为图9所示的“动态数据显示及处理系统显示操作画面”。在图9所示的“动态数据显示及处理系统显示操作画面”中,实现3.3部分所述的动态数据显示、报警信号显示以及对外部的控制功能。
6. 结论
在IEC61508(GB/T20438.3)中第1章规定:安全软件包括操作系统、系统软件、通信网络中的软件、显示操作画面功能、支持工具、固件以及应用程序。其中的操作系统和实现显示操作画面功能的软件异常的复杂,很难进行充分的测试和验证。如果按照IEC61508中关于SIL4级的要求进行操作系统和显示操作画面软件的开发,其工作量是一个非常巨大的,成本异常高昂,且开发周期非常长。另外,按照IEC61508中关于SIL4级的要求开发的操作系统和显示操作画面软件,其正常运行会依赖于特定的CPU芯片或显示芯片,如果CPU芯片或显示芯片由于损坏或升级而进行更新时,已经开发的操作系统和显示操作画面软件将需要进行非常大的改动,在维护和更新方面将面临极大的挑战,因此其生命周期短,适应性较差。其次,已有的显示与控制系统中所包含的操作系统和软件等运行机制使其可能会遭受病毒、木马等信息安全方面的威胁。 因此本文所介绍的无CPU的无CPU工业控制计算机的技术方案可以作为高信息安全、高功能安全领域的工控机的理想选择方案。