隨著危險(xiǎn)事故的頻繁發(fā)生,人們開(kāi)始重視工業(yè)生產(chǎn)過(guò)程中的安全問(wèn)題。 如何才能減少危險(xiǎn)的發(fā)生頻率,以及讓系統(tǒng)在危險(xiǎn)發(fā)生之前及時(shí)做出反應(yīng),進(jìn)入一種安全狀態(tài),這些因素已經(jīng)成為了衡量現(xiàn)代工業(yè)技術(shù)的一項(xiàng)重要指標(biāo)。 安全相關(guān)系統(tǒng)監(jiān)視工業(yè)生產(chǎn)過(guò)程中的狀態(tài),在危險(xiǎn)出現(xiàn)時(shí)及時(shí)采取措施,避免潛在危險(xiǎn)造成的傷害或減輕其帶來(lái)的損失。功能安全型變送器作為安全相關(guān)系統(tǒng)中的一個(gè)重要組成部分,通過(guò)對(duì)其進(jìn)行一系列的診斷,達(dá)到實(shí)時(shí)監(jiān)控系統(tǒng)的目的,提高診斷覆蓋率,從而達(dá)到目標(biāo)安全完整性等級(jí),保證了工業(yè)生產(chǎn)過(guò)程安全可靠的進(jìn)行。磁致伸縮液位傳感器測(cè)量系統(tǒng)當(dāng)前液位值,對(duì)傳感器測(cè)得信號(hào)進(jìn)行處理,得到標(biāo)準(zhǔn)電流輸出,傳送給下一個(gè)模塊,在整個(gè)系統(tǒng)中是關(guān)鍵的一環(huán)。 因此,設(shè)計(jì)功能安全型液位變送器是工業(yè)領(lǐng)域迫切需要的。 文中在硬件方面,針對(duì)系統(tǒng)可能存在失效的部分增加診斷模塊,提高系統(tǒng)可被診斷的失效率,保證變送器在發(fā)生失效時(shí),可以通過(guò)自診斷電路或程序發(fā)現(xiàn)問(wèn)題,使變送器進(jìn)入安全狀態(tài) ; 最后經(jīng)過(guò)一系列可靠性分析,驗(yàn)證該設(shè)計(jì)滿足工業(yè)生產(chǎn)對(duì)安全方面的要求。
1 安全相關(guān)產(chǎn)品
隨著2006年GB/T 20 438電氣/電子/可編程電子安全相關(guān)系統(tǒng)的功能安全的頒布,功能安全的概念正式進(jìn)入我國(guó)。目前,在石油、化工、冶金、核電等領(lǐng)域,安全相關(guān)產(chǎn)品的需求也越來(lái)越大。所謂的安全相關(guān)產(chǎn)品,是指可構(gòu)成安全相關(guān)系統(tǒng)的、滿足功能安全設(shè)計(jì)實(shí)現(xiàn)要求的、具有安全相關(guān)參數(shù)的產(chǎn)品[4]。通俗來(lái)講,要稱一個(gè)產(chǎn)品為安全相關(guān)產(chǎn)品,其必須具有一定的安全功能,保證系統(tǒng)在發(fā)生危險(xiǎn)前進(jìn)入安全狀態(tài)。一個(gè)安全相關(guān)產(chǎn)品必有其對(duì)應(yīng)的安全完整性等級(jí),為了達(dá)到目標(biāo)安全完整性等級(jí),硬件設(shè)計(jì)和軟件編程中都必須滿足標(biāo)準(zhǔn)中規(guī)定的要求。硬件上存在隨機(jī)硬件失效和系統(tǒng)失效這兩個(gè)因素影響安全完整性等級(jí),而軟件上只存在系統(tǒng)失效。針對(duì)不同的失效,必須在設(shè)計(jì)開(kāi)發(fā)過(guò)程中采取一定的措施和手段,實(shí)現(xiàn)其安全功能,從而降低失效發(fā)生的概率。
2 安全液位變送器的結(jié)構(gòu)和安全功能
安全功能的要求來(lái)源于對(duì)危險(xiǎn)的分析,即必須做什么以避開(kāi)危險(xiǎn)事件;而安全完整性等級(jí)的要求來(lái)源于對(duì)風(fēng)險(xiǎn)的評(píng)估,即安全功能必須執(zhí)行到什么程度以使殘余風(fēng)險(xiǎn)能夠被接受[5] 。由安全相關(guān)產(chǎn)品的構(gòu)成可 以看出,需要在產(chǎn)品的硬件和軟件的設(shè)計(jì)上采取一系列措施,增加安全功能。硬件安全完整性等級(jí)受限于硬件故障裕度以及安全失效分?jǐn)?shù)[6]。硬件故障裕度是指超過(guò)該參數(shù)的失效則會(huì)造成系統(tǒng)安全功能喪失,工業(yè)上往往根據(jù)設(shè)備的硬件需求已經(jīng)確定其硬件故障裕度;而安全失效分?jǐn)?shù) SFF 如式(1)'其中LAs指安全失效總概率,工入D 指危險(xiǎn)失效總概率,工入DD指診斷測(cè)試檢測(cè)到的危險(xiǎn)失效概率[7] ' 可以看出安全失效分?jǐn)?shù)與 可診斷的危險(xiǎn)失效概率有關(guān),也就是說(shuō)可以通過(guò)增加診斷回路來(lái)提高安全失效分?jǐn)?shù)。
液位變送器的安全功能就是準(zhǔn)確測(cè)量液位值,并將測(cè)得的數(shù)據(jù)傳輸給后續(xù)處理模塊。其基本功能模塊主要包括信號(hào)輸入、A/D轉(zhuǎn)換、微處理器數(shù)據(jù)處理、DIA轉(zhuǎn)換輸出、電源模塊以及時(shí)鐘模塊[8]。在時(shí)鐘系統(tǒng)的控制下,首先是傳感器測(cè)得的數(shù)據(jù)通過(guò)信號(hào)輸入模塊傳遞給 A/D轉(zhuǎn)換模塊,經(jīng)過(guò)A/D轉(zhuǎn)換后傳輸給單片機(jī),單片機(jī)對(duì)數(shù)據(jù)進(jìn)行濾波計(jì)算出當(dāng)前傳感器測(cè)得的液位值以及 對(duì)應(yīng)的碼值寫入DIA轉(zhuǎn)換模塊,最后DIA芯片根據(jù)得到的碼值輸出對(duì)應(yīng)大小的標(biāo)準(zhǔn)電流信號(hào),電源模塊在這個(gè)過(guò)程中對(duì)其他的模塊提供穩(wěn)定電壓。

3 安全液位變送器的設(shè)計(jì)
液位變送器在硬件上要達(dá)到目標(biāo)安全完整性等 級(jí),通常從兩方面著手:通過(guò)冗余結(jié)構(gòu)來(lái)提高硬件故障裕度,避免由于其中一條通道故障而導(dǎo)致系統(tǒng)進(jìn)入危險(xiǎn)狀態(tài);通過(guò)設(shè)計(jì)診斷電路增加安全失效分?jǐn)?shù),在危險(xiǎn)發(fā)生之前能及時(shí)發(fā)現(xiàn)并采取措施,把危險(xiǎn)失效轉(zhuǎn)化為安全失效[9]。在硬件故障裕度為定值的情況下,通常針對(duì)每個(gè)功能模塊設(shè)計(jì)診斷結(jié)構(gòu)。
3.1 基本功能模塊設(shè)計(jì)
液位變送器的基本功能主要包括信號(hào)輸入,AID轉(zhuǎn)換,微處理器數(shù)據(jù)處理,DIA轉(zhuǎn)換輸出,以及電源模塊和系統(tǒng)時(shí)鐘模塊。本文以STM32F103xx增強(qiáng)型系列芯片作為主芯片為例,具體講述安全型液位變送器在硬件上的設(shè)計(jì)。系統(tǒng)上電后,時(shí)鐘模塊啟動(dòng),在系統(tǒng)時(shí)鐘提供的時(shí)鐘下,由傳感器測(cè)得的信號(hào)發(fā)送給單片機(jī)內(nèi)嵌模數(shù)轉(zhuǎn)換器,對(duì)輸入信號(hào)進(jìn)行模數(shù)轉(zhuǎn)換,微處理器對(duì)轉(zhuǎn)換后的信號(hào)進(jìn)行運(yùn)算處理,把得到的碼值傳送到外部DIA模塊,最后得到標(biāo)準(zhǔn)電流信號(hào)輸出。
(1)電源模塊。二線制功能安全型變送器不僅要為微處理器、數(shù)模轉(zhuǎn)換器DIA,通信電路供電,同時(shí)出 于安全保護(hù)考慮,輸入輸出電路需要相互隔離,因此,僅使用單片機(jī)內(nèi)部電源遠(yuǎn)達(dá)不到要求。本設(shè)計(jì)使用Linear公司生產(chǎn)的 LT1934 芯片,其輸入電壓范圍 可達(dá)34 V, 最小也可為3.2 V, 能對(duì)各種電源進(jìn)行調(diào)節(jié)。在輸人24 V直流電時(shí),與輸入隔離的一組輸出 5 V,4 mA電流,不隔離的一組輸出5 V,9 mA電流,滿足其他各模塊的供電需求;
(2)時(shí)鐘系統(tǒng)。微處理器的各個(gè)模塊都需要在時(shí) 鐘的驅(qū)動(dòng)下工作。STM32存在五個(gè)時(shí)鐘源,通常選擇鎖相環(huán)倍頻輸出(PL L)、8 MHz的RC振蕩器(HSI)或高速外部時(shí)鐘(HSE)三者之一作為系統(tǒng)時(shí)鐘,再通過(guò)AHB分頻器分頻后提供給各個(gè)模塊使用。大部分提供給外設(shè)的時(shí)鐘輸出都是帶有使能控制的,使用模塊之前,必須發(fā)送信號(hào)開(kāi)啟其對(duì)應(yīng)的時(shí)鐘。這種設(shè)計(jì)的好處在于,當(dāng)不使用某個(gè)外設(shè)時(shí),關(guān)閉其對(duì)應(yīng)的時(shí)鐘,降低了系統(tǒng)的功耗。值得注意的是,看門狗電路使用內(nèi)部低速時(shí)鐘(LSI)'但窗口看門狗使用系統(tǒng)時(shí)鐘是通過(guò)AHBl分頻得到。設(shè)置A/D模塊以及片外DIA模塊在相同頻率下工作;
(3)MCU數(shù)據(jù)處理模塊。STM32F103xx增強(qiáng)型系列芯片使用專門為要求高性能、低成本、低功耗的嵌入式應(yīng)用而設(shè)計(jì)的高性能ARMCortex -M3的RISC內(nèi)核[10]。同時(shí),芯片內(nèi)置高速存儲(chǔ)器,包括高達(dá)128kB 的閃存和20kB的SRAM[ll]'硬件上充分滿足液位變送器的設(shè)計(jì)需求。此外,它具有豐富的功能模塊,包括 2個(gè)12位ADC、電源電壓監(jiān)控、電壓調(diào)壓器、DMA控制器獨(dú)立的看門狗以及窗口看門狗、7個(gè)定時(shí)器、9個(gè)通信接口(l2C,USART, SPI, CAN, USB)等,優(yōu)勢(shì)不言而喻;
(4)A/D模塊。STM32F103增強(qiáng)型產(chǎn)品內(nèi)嵌兩個(gè)12位的ADC,每個(gè)ADC有多達(dá)16個(gè)外部通道,轉(zhuǎn)換電壓范圍在0-3. 6 V之間,從傳感器輸出的信號(hào)通常要經(jīng)過(guò)電平移動(dòng)或者放大傳感器信號(hào)再送到ADC中。使用ADC模塊前,必須開(kāi)啟PA口的時(shí)鐘,并把PAO設(shè)置成模擬輸入。兩個(gè)ADC使用同一個(gè)時(shí)鐘頻率,最后采樣轉(zhuǎn)換得到的數(shù)據(jù)存放在ADCl_DR寄存器中;(S)D/A模塊。由于STM32Fl03xx增強(qiáng)型系列芯片不含內(nèi)嵌DIA,因此必須選擇一款DIA芯片作為外設(shè)得到標(biāo)準(zhǔn)輸出。本文選用TI公司的DAC7750芯片。該系列芯片是12位的數(shù)模轉(zhuǎn)換器,與單片機(jī)可以通過(guò)SPI接口進(jìn)行數(shù)據(jù)通信,輸出電流范圍有3組可供選擇,4-20 mA,O -20 mA,O -24 mA , 符合產(chǎn)品的需求。與此同時(shí),DAC7750還具有部分自檢功能,包括循環(huán)冗余校驗(yàn),開(kāi)路警報(bào)以及看門狗電路電流輸出。
3.2 診斷模塊設(shè)計(jì)
本文主要針對(duì)A/D,DIA模塊以及時(shí)鐘模塊進(jìn)行硬件設(shè)計(jì)上的診斷。
(1)看門狗時(shí)鐘診斷??撮T狗實(shí)際上是一個(gè)定時(shí)器電路,輸入端與單片機(jī)上的1/0相連,由程序控制定時(shí)向這個(gè)引腳傳送高電平或低電平,就是俗稱的"喂狗”另一端連接單片機(jī)的復(fù)位引腳。旦系統(tǒng)由于干擾出現(xiàn)程序跑飛或進(jìn)入死循環(huán),導(dǎo)致"喂狗”的動(dòng)作沒(méi)有如期進(jìn)行,看門狗便會(huì)通過(guò)連接的復(fù)位引腳向單片機(jī)發(fā)送一個(gè)復(fù)位電平,使得單片機(jī)復(fù)位。 STM32F103增強(qiáng)型系列的芯片帶有兩個(gè)看門狗定時(shí)器,一個(gè)是獨(dú)立看門狗,一個(gè)是窗口看門狗。由于要對(duì)晶振的偏移做出診斷,這里選擇窗口看門狗,過(guò)早或太晚喂狗”都會(huì)造成系統(tǒng)復(fù)位;
(2)A/D模塊診斷。由千STM32Fl03xx增強(qiáng)型產(chǎn)品內(nèi)嵌兩個(gè)12位的模數(shù)轉(zhuǎn)換器ADC,這里采用雙ADC模式,對(duì)輸入信號(hào)進(jìn)行同步采樣,轉(zhuǎn)換后的數(shù)據(jù)ADCl轉(zhuǎn)換得來(lái)的數(shù)據(jù)存儲(chǔ)在寄存器的低16位,由ADC2得到數(shù)據(jù)存儲(chǔ)在高16位。ADC2得到的數(shù)據(jù)作為一個(gè)參考數(shù)據(jù),與ADCl得到的數(shù)據(jù)進(jìn)行比較,若兩存儲(chǔ)在A/D接口的ADC_JDRl存儲(chǔ)器中,其中由ADCl轉(zhuǎn)換得來(lái)的數(shù)據(jù)存儲(chǔ)在寄存器的低16位,由ADC2得到數(shù)據(jù)存儲(chǔ)在高16位。ADC2得到的數(shù)據(jù)作為一個(gè)參考數(shù)據(jù),與ADCl得到的數(shù)據(jù)進(jìn)行比較,若兩個(gè)數(shù)據(jù)之間的誤差在可接受范圍內(nèi),則認(rèn)為系統(tǒng)安全,把寄存器的低16位數(shù)據(jù)傳送給MCU進(jìn)行處理;否則的話,認(rèn)為ADC出現(xiàn)故障有可能導(dǎo)致系統(tǒng)發(fā)生危險(xiǎn)失效,此時(shí)軟件上必須保證系統(tǒng)進(jìn)入一種安全狀態(tài);
(3)D/A模塊診斷。系統(tǒng)中增加一塊A/D芯片作為DIA模塊的診斷。給定一個(gè)設(shè)定值,經(jīng)過(guò)DIA轉(zhuǎn)換后,把轉(zhuǎn)換得到的數(shù)據(jù)作為A/D模塊的輸入,并對(duì)經(jīng)A/D轉(zhuǎn)換后的輸出信號(hào)進(jìn)行回采。對(duì)比最后得到 的數(shù)據(jù)與設(shè)定值,若兩者相同,則認(rèn)為DIA轉(zhuǎn)換通道沒(méi)問(wèn)題;若不同,則判定會(huì)發(fā)生失效[12]。此外,在系統(tǒng)運(yùn)行過(guò)程中,可通過(guò)訪問(wèn)DAC7750內(nèi)部高精度電阻器來(lái)實(shí)時(shí)監(jiān)控電流輸出,一旦超出正常輸出范圍,系統(tǒng)發(fā)出警報(bào)。
4 硬件安全完整性等級(jí)分析
根據(jù)IEC61508的定義,液位變送器屬于B類安全相關(guān)子系統(tǒng),即失效模式不能被定義的子系統(tǒng),同時(shí)根據(jù)1001D的系統(tǒng)結(jié)構(gòu)得出其硬件故障裕度為0。由表l可知,系統(tǒng)要達(dá)到目標(biāo)安全完整性等級(jí) S112, 其安全失效分?jǐn)?shù)必須達(dá)到90%以上。
文中采用的FMEDA分析法依據(jù)的標(biāo)準(zhǔn)主要由失效率預(yù)計(jì)、元器件失效模式及其百分比和元器件失效 模式排除依據(jù)3部分組成[13 l。對(duì)于復(fù)雜器件,不能對(duì)失效模式進(jìn)行詳細(xì)分析時(shí),通常將失效分為安全失效50%, 危險(xiǎn)失效50%[14]。根據(jù)各模塊采取的診斷措施,可從IEC61508 -2中查出診斷方法及其對(duì)應(yīng)的診斷覆蓋率[5,10]。本文參考國(guó)家標(biāo)準(zhǔn)GJB/Z299C-2006電子設(shè)備可靠性預(yù)計(jì)手冊(cè),對(duì)每種元器件進(jìn)行失效模式、失效概率以及失效影響分析,可以得到相對(duì)準(zhǔn)確的失效模式以及診斷覆蓋的評(píng)估信息[15]'具體數(shù)據(jù)如表2中FMEDA的分析結(jié)果。
5 結(jié)束語(yǔ)
本文系統(tǒng)介紹了功能安全型液位變送器在硬件上 的設(shè)計(jì),在硬件故障裕度為定值0的情況下,采取 loolD的系統(tǒng)硬件結(jié)構(gòu),分別對(duì)電源模塊,時(shí)鐘模塊, 微處理器數(shù)據(jù)處理模塊,輸出模塊設(shè)計(jì)診斷回路,有效增大安全失效分?jǐn)?shù)。 經(jīng)過(guò)可靠性分析,驗(yàn)證安全失效 分?jǐn)?shù)達(dá)到98. 3%, 從而在硬件上滿足其目標(biāo)安全完整 性等級(jí) SI巳的要求。