软件在控制车辆和设备方面继续发挥着越来越重要的作用。同时,软件错误的必然性威胁到软件控制的机器与人类交互的应用中的安全操作。例如,在协作机器人中,机器人和人类紧密相连,软件错误可能直接导致对人类的身体伤害。
对于这些应用程序和其他机器操作中的计算机系统错误可能危及人类的应用程序,设计师需要在基础层面上对其系统进行安全控制。智能使用已内置于微控制器(MCU)和数字信号处理器(DSP)中的硬件功能可以帮助减轻硬件或软件中的错误影响。
自动化和手工劳动继续相互补充广泛的产品成本和功能窗口。虽然自动化可以有效地提供大批量,低成本的产品,但手动组装对于生产高成本,低产量的产品最为有效。协作机器人提供了一种混合方法,旨在合并每种方法的优点(图1)。
图1:协作机器人系统提供了一种混合方法,融合了手动生产和自动化系统的优势。 (来源:ABB/欧洲机器人论坛)
协作机器人系统旨在与特定工作区内的人员直接合作。这种混合方法将机器人的宝贵力量和耐力与人类的解决问题的能力相结合。与此同时,这种方法给人类工作者带来了巨大的风险。
机器人系统能够以很大的力度摆动机械臂,并以极大的力量抓住物体。放置在工作单元中,典型的机器人被限制在与人类工作人员协作的同时在明确定义的操作窗口内移动,但在维护工作人员照料系统时移动到更大的限制范围内(图2)。很少有机器人系统允许在人类存在的情况下穿过其完整的最大包络。
图2:工业机器人需要深度嵌入式安全机制,能够确保在与正常生产和维护相关的特定区域内安全运行。 (来源:美国劳工职业安全与健康管理局)
传统的机器人装配系统设计有物理限制或围栏工作区域,以保护附近的人(图3)。当在一个或多个人附近工作时,协作机器人系统几乎没有设计到工作单元中的物理保护。相反,这些系统依赖于内置机制来确保安全操作。在这样的系统中,由软件缺陷或硬件故障引起的系统级错误可以容易地允许可移动机器人臂加速进入人体或执行一些物理运动,这可能对人类协作工作带来直接风险。
图3:在工厂车间,制造商在工业机器人周围设置物理屏障,以防止与附近的人类工人意外接触。 (来源:DNC)
安全策略
对于设计人员来说,确保机器人系统的安全运行始于确认其基础控制系统按预期运行。专为实时控制应用而设计的DSP和MCU提供了多种专门用于此目的的内置安全功能。例如,ADI公司的ADSP-BF707 DSP和德州仪器的Hercules™系列MCU均集成了多种存储器检查功能,包括用于片上存储器的错误校验和校正(ECC),用于片外的奇偶校验位检查用于直接内存访问(DMA)传输的内存和循环冗余校验(CRC)。
虽然这些内存功能可以在内存操作期间纠正或至少识别错误,但确保处理器本身的正确操作是更复杂的问题。处理器核心本身中出现的硬件故障可能导致不可预测的错误,包括机械臂或机械手的危险运动。为了识别核心故障,模拟ADSP-BF707 DSP和TI Hercules系列MCU均包含集成在处理器内核中的内置自测(BIST)机制。虽然BIST在执行应用程序代码本身时无法运行,但系统设计人员可以将完整或部分自检运行与应用程序代码执行交错 - 如果不连续监视处理器功能,则提供持续的。
使用TI Hercules系列MCU例如,设计人员可以通过几个简单的步骤启动BIST扫描:
配置时钟域频率
选择要运行的测试间隔数
配置自检运行的超时时间
保存寄存器状态,包括CPU内核寄存器和协处理器寄存器以及硬件断点和监视点寄存器
通过将相应的位写入CPU自检控制器寄存器来启用自检(图4)
等待CPU重置
在重置处理程序中,读取CPU自检状态以识别任何故障
检索CPU状态
图4:工程师可以轻松实现完整或部分BIST扫描,在应用程序执行之间交错。对于TI Hercules系列MCU,工程师可以实现代码以快速执行各种内务处理步骤,最后通过此处所示的自检控制器寄存器中的坐位进行自检。 (来源:德州仪器)
拦截软件错误
与大多数领先的应用程序一样,协作机器人系统依靠软件来实现其功能的主要部分,特别是对于高度差异化的能力。在操作期间,任何数量的软件错误(包括错误设置的指针变量,堆栈溢出或逃脱测试覆盖的代码错误)都可能导致系统挂起或以其他方式分离到非预期的操作中。为了防止这种类型的系统行为,设计人员可以在软件本身中实现运行时检查。
使用看门狗定时器提供了一种特别有效的机制来捕获挂起处理器的错误。在这种传统方法中,软件以比看门狗定时器的超时设置短的周期重置看门狗定时器。如果看门狗定时器确实超时,则意味着从未发生预期的定时器复位 - 表示应用程序代码挂起且系统处于某种不确定状态。面向安全的处理器,如ADI公司的ADSP-BF707 DSP和德州仪器的Hercules系列MCU,集成了看门狗定时器功能。另一方面,使用独立的外部看门狗定时器可进一步降低错误情况影响内置看门狗的可能性。
德州仪器(TI)的TPS3823-33监控IC等器件提供DSP和基于MCU的系统,具有电路初始化和时序监控以及电源电压监控功能。该器件集成了一个看门狗定时器,必须通过WDI输入的正或负转换周期性触发,以避免发出复位信号(图5)。当监控系统未能在超时间隔ttout内重新触发看门狗电路时,RESET在时间段td内变为有效,导致处理器进入其硬件复位周期。就像笔记本电脑用户在他们的系统挂起时循环一样,这种方法可能是从深层软件错误中恢复的唯一有效方法。
图5:除了其他监控功能外,德州仪器(TI)TPS3823-33 IC还提供硬件看门狗定时器,可进一步防止可能出现的错误片上看门狗定时器。 (来源:德州仪器)
系统级安全
除了低级机制外,经验丰富的设计人员还使用各种方法确保基于处理器的控制系统继续产生预期输出。更高级别的“安全”架构依赖于冗余执行关键功能的设计,通过在同一数据上独立执行相同功能的多个并行路径产生应该相同的结果。在关键任务应用中,例如依赖于来自发动机和控制表面的精确传感器读数的航空电子设备,硬件设计人员可以构建多个独立的传感器路径,以便即使在飞行操作期间一个(或多个)传感器发生故障也能继续运行。
转换到机器人移动算法的软件级别,例如,软件工程师可能使用两种(或更多种)不同的算法或相同算法的不同实现来帮助验证持续的系统功能。在这里,工程师将创建设置为与原始数据对象相同的值的不同对象,以使用不同的代码模式计算相同的算法。监督代码将比较结果并在不同时生成异常。例如,对于原始函数:
函数工作(VariableA,VariableB):
if(VariableA> VariableB):
//执行必需的函数
//基于VariableA和VariableB
...
返回结果
工程师会创建一个替代实现,使用设置为相同值的不同变量对象来计算某些结果:
//将新对象实例设置为原始变量中的值
function workNew(VariableA,VariableB):
VariableNewA = deepcopy (VariableA)
VariableNewB = deepcopy(VariableB)
if(VariableA> VariableB):
if(VariableNewA <= VariableNewB):
//生成异常 - 可能的内存错误
< code> else:
//执行必需的函数
//使用新变量和
//备用编码模式
...
返回ResultNew
<代码>
//supervisor
X = work(A,B)
XNew = workNew(A ,B)
if(X <> XNew):
//生成系统故障异常
//否则继续使用X
专门的多核MCU在概念上使用相同的方法来确保底层处理器本身正常运行。这里,同一处理器内核的多个副本以锁步方式执行相同的软件 - 同时或以小的时钟偏移执行。以锁步方式运行的这些内核的输出的任何差异都表明MCU具有低级故障 - 可能是由于某种软错误导致的瞬态故障,例如由于某些内部功能故障导致的辐射或硬故障。
ARM提供双核锁步(DCLS)冗余核心配置,允许MCU制造商为安全应用实施锁步核心。德州仪器(TI)已在其Hercules系列MCU中实现此功能。在这里,一对ARM®Cortex®-R5F内核以锁步方式运行 - 执行间隔两个时钟周期 - 以减少alpha粒子的软错误导致内核执行完全相同(错误)结果的可能性相同的代码同时。注意:Alpha粒子是IC封装不可避免的副作用,因为它在低衰减率下含有低水平的放射性物质,并且可能导致软错误。
在TMS570LS0714中,一个特殊的单元,CPU比较模块(CCM),比较两个核心的输出信号(图6)。对于程序员来说,这个过程是透明的。不需要特殊编码,锁定核心之间的比较会自动进行。
图6:集成在Hercules系列MCU中的CPU比较模块(CCM)监视MCU双核心的输出,以两个周期的延迟同步运行。此延迟有助于防止瞬态错误影响两个内核并通过未检测到的情况。 (来源:德州仪器)
虽然这些硬件功能有助于确保正常运行,但构建功能安全应用程序对软件开发和认证提出了严格的要求。 TI的SafeTI设计包支持各种领域的功能安全应用开发,包括工业机械,工业过程,医疗,汽车,铁路和航空。除了SafeTI软件库提供的功能外,设计包还支持与符合ISO 26262,IEC 61508和IEC 60730等安全标准相关的要求。
结论
协作机器人技术为人类经验与机器精度相结合提供了重要机遇。在人类的近距离工作中,协作机器人系统在确保安全操作方面提出了重大挑战。专门设计用于支持功能安全应用的专用DSP和MCU提供集成功能,可帮助识别错误并减轻其在应用程序级别的影响。使用这些设备,设计人员可以为协作机器人系统建立安全基础。
全部0条评论
快来发表一下你的评论吧 !