999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于串口的心跳監聽設計及其在QNX中的實現

2019-08-24 03:42:40李煦侃
自動化儀表 2019年8期
關鍵詞:信號系統

李煦侃

(1.中國自動化學會發電自動化專業委員會,北京 100000;2.浙江浙能興源節能科技有限公司,浙江 杭州 310013)

0 引言

隨著信息化技術的不斷發展和普及,許多核心業務系統構建在信息系統上,對信息系統的安全及穩定性提出了更高的要求。這些業務系統包括一系列互相聯絡的應用,催生了大量的應用間相互交流的技術需求。許多應用需要通過發送消息,將目前狀態或需要完成的工作告知另一個應用。

應用間互相發送消息的方式有許多種,一般可以分為兩大類別:采用時間同步方式發送消息的稱為同步消息傳遞方式,采用時間不同步方式發送消息的稱為異步消息傳遞方式[1]。其中,同步消息傳遞方式要求收發雙方的運行步調嚴格匹配,一般情況下較難達到。因此,異步消息傳遞方式的應用范圍更為廣泛[2]。

心跳監聽是一種非常重要的異步消息傳遞方式,是在實現高可用性和高可靠性的同時,保證系統應用正常運行和服務不中斷的關鍵技術[3]。為及時掌握應用的實時運行狀態、及時發現偶發異常情況、在發生故障時及時處理,心跳監聽技術在消除局部故障、提高全系統可靠性上發揮越來越重要的作用。因此,研究如何實現心跳監聽具有非常重要的意義。

QNX操作系統是一種十分重要的分布式實時操作系統。本文主要基于該系統進行研究。

1 心跳監聽和串口

1.1 心跳監聽

心跳監聽,通常指的是在任意兩個有聯系的系統(互相稱為主系統和備用系統)之間,相互按照約定的時間間隔發送心跳信號,通過能否收到心跳信號、收到心跳信號情況,判斷對方系統健康狀況。在主備系統環境中,當處于備用角色的系統接收到心跳信號并核對正確,表示處于主角色的系統運行正常;當處于備用角色的系統連續若干次(可根據需求自定義)未收到心跳信號,或者收到的心跳信號錯誤,則備用系統判斷主系統異常,并切換為主系統,避免失效的主系統所執行的任務中斷,以提高整體系統的可靠性[4]。

為研究并實現心跳監聽的功能,考慮到系統的通用性,可通過串口等標準通信接口來傳遞心跳信號。此外,還可以在傳遞心跳信號的同時傳遞其他相關信息,既提高了硬件使用的效率,又降低了心跳監聽技術的實現成本。

1.2 串口

串口即串行通信接口,一般包括RS-232-C、RS-422、RS-485、USB等。不同的電氣標準,所采用的通信協議也有所區別。其中RS-232-C標準提出時間較早,應用較為廣泛,是目前常用的一種串行通信接口。其全名為“數據終端設備(data terminal eqipment,DTE)和數據通信設備(data communication eqipment,DCE)之間串行二進制數據交換接口技術標準”[5],又稱標準串口。RS-232-C接口標準初期一般使用22線制,采用25芯D型插頭座;后進行了簡化,可使用3線制(包括TX、RX、COM),采用9芯D型插座,使用較為簡便。

本文以RS-232-C接口為應用間通信接口,在此基礎上介紹心跳監聽的設計方法,并給出其在QNX操作系統中的實現實例。

2 心跳監聽的原理

一般來說,可在主系統和備用系統或任意兩個有聯系的系統的應用之間,通過串口,對獨立心跳信號的周期性收發及處理,實現基本的心跳監聽。因此,心跳監聽的實現過程主要包括心跳信號發送、心跳信號接收與處理兩部分。負責心跳信號發送的為發送方,負責心跳信號接收與處理的為接收方。為實現心跳監聽的功能,一般發送方同時也是接收方。

2.1 心跳信號發送

心跳信號的發送由發送方完成。發送方如何發送心跳信號,需要根據整體系統的需求進行設計,主要包括心跳消息、心跳周期、異常處理等。

心跳消息是系統約定的文本、數字或其他可為系統識別的數據類型。根據需要,也可定義多組心跳消息,以實現不同的功能。

心跳周期又稱心跳頻率,用于控制心跳信號的發送頻率,需要根據系統所執行的工作和系統處理速度確定。若系統所執行的工作時間要求高,則心跳頻率要提高;若系統處理速度相對較慢,則心跳頻率要相應降低,不得影響系統正常運行。心跳頻率可采用定時器控制[6]。

異常處理即心跳信號發送錯誤時的處理措施,可按照系統需求定義。

2.2 心跳信號接收與處理

心跳信號的接收與處理由接收方完成。接收方如何發送心跳信號,同樣需要根據整體系統的需求進行設計,主要包括心跳消息、心跳周期、異常處理等。

接收方的心跳消息、心跳周期需要和發送方一致。

異常處理是指在接收不到心跳信號、接收到異常心跳信號或接收到特定心跳信號時的處理措施。一般在接收不到心跳信號或接收到異常心跳信號時,可按照對方系統故障處理;在接收到特定心跳信號時,可按照約定方式處理,以實現系統特殊功能。在接收心跳信息時,應設置心跳狀態,并記錄有關數據。

3 QNX操作系統及串口通信的實現

3.1 QNX操作系統簡介

QNX操作系統是使用十分廣泛的實時操作系統(real-time operation system,RTOS)[7],已有39年的歷史。QNX是一個微內核實時平臺,可使用QNX Momentics對目標系統在Windows等平臺下進行圖形可視化開發,廣泛應用于X86、PowerPC、MIPS等眾多硬件環境。遵循POSIX基本標準,不論是從其他平臺移植到QNX平臺、在不同硬件環境的QNX平臺之間移植,還是從QNX平臺移植到其他平臺,都十分方便[8],且性能強大、具有良好的實時性。

操作系統的實時性,是指確保時鐘信號能夠準確地定時,各處的時鐘能夠達到一致,QNX操作系統在不同的場合可達到微秒級。QNX操作系統基于優先級搶占式調度策略[9],區別于Windows等分時操作系統采用的時間片管理方式。QNX操作系統中高優先級的任務一旦就緒,即可立即占用CPU資源。同優先級的任務按照時間片方式管理(時間片可自定義),可在限定時間內對外來事件作出反應。

3.2 基于QNX的串口通信構建

QNX操作系統在實現串口通信時,與Windows等分時操作系統不同。QNX操作系統在啟動時,需要加載一個包含操作系統、可執行程序以及任何與有關數據的文件[10]在內的系統映像文件。QNX的系統映像文件需要通過編寫包括啟動腳本、啟動引導腳本和文件列表三個部分的Build file文本后,由內置的mkifs工具編譯生成。通過加載系統映像文件,QNX操作系統用啟動腳本中的參數注冊硬件資源、配置硬件參數[11],QNX的串口就在此時進行配置。

3.3 QNX串口通信的特點及實現方法

QNX對硬件的訪問非常簡便。對用戶而言,對硬件的操作即對文件的操作。硬件文件存儲在QNX操作系統的“/dev”目錄。QNX通過對硬件資源的虛擬,極大地方便了用戶,簡化了應用開發。QNX對設備文件的訪問可通過內置標準化函數實現。

串口通信要求雙方的速度、消息格式一致,速度參數主要是波特率,消息格式主要包括數據位、停止位及校驗位等。在QNX操作系統中,這些參數包含在“termios.h”頭文件中,可通過位運算(置位、清零等)設置這些參數。

QNX通過對串口文件的訪問實現對串口的操作,串口文件命名規則為“ser+編號”,例如“/dev/ser0”。操作串口0的函數及示例如下。

①打開串口0。

int fd=open (“/dev/ser0”,O_RDWR);

②設置串口。

//設置串口波特率

speed_t ispeed=19800;

speed_t ospeed=19800;

cfsetispeed (&termios_p,ispeed);

cfsetospeed (&termios_p,ospeed);

//設置串口變量參數

Termios_p·c_iflag&= (IXOFF|IXON);

Termios_p·c_oflag&= (OPOST);

Termios_p·c_lflag&=(ECHONL|ICANON|IEXTEN);

③接收數據。

intsizeofReadbyte=read (fd,buffer,sizeof (buffer));

④發送數據。

int sizeofWritebyte=write (fd,buffer,sizeof (buffer));

⑤關閉串口。

close (fd);

QNX操作系統的串口通信流程如圖1所示。

圖1 串口通信流程圖Fig.1 Serial communication flowchart

4 QNX操作系統的心跳監聽實現

4.1 心跳監聽模塊

在基于QNX操作系統串口通信的心跳監聽系統中,包含心跳發送模塊、心跳接收與處理模塊。兩個模塊協同工作,組成一個有機的整體。

4.1.1 心跳發送模塊

心跳發送模塊按照心跳頻率持續向串口寫預定義的心跳消息。在發送數據的同時,必須保證每次發送成功,并做好異常處理,記錄日志。相應地,發送異常時需要具備一定的故障診斷能力。

心跳發送模塊工作流程如圖2所示。

圖2 心跳發送模塊工作流程圖Fig.2 Working flowchart of heartbeat sending module

4.1.2 心跳接收與處理模塊

心跳接收與處理模塊持續嘗試接收數據,一旦接收到數據,就和預定義的數據比較。若結果一致,就判定接收到心跳信號;若超過規定的時間未接收到任何數據,則執行一個預定的任務,比如將備站切為主站。

同樣地,心跳接收與處理模塊需要具備一定的故障診斷能力,及時做好異常處理,記錄日志。

心跳接收與處理模塊工作流程如圖3所示。

圖3 心跳接收與處理模塊工作流程圖Fig.3 Working flowchart of heartbeat receiving and processing module

4.2 心跳協調定時器

在QNX操作系統串口通信的心跳監聽系統中,心跳信息的發送、接收與處理都需要定時器來協調[12],可采用QNX操作系統提供的定時器實現。以下給出一個實例。

main()

{

……

event.sigev_code = MY_PULSE_CODE;

timer_settime(timer_id,0,&itime,NULL);

//每隔3.5 s收到一個脈沖(itime.it_value)

//每隔3.5 s收到另一個脈沖(itime.it_interval)

for (;;)

{

rcvid = MsgReceive(chid,&msg,sizeof(msg),NULL);

if (rcvid == 0)

{

//we got a pulse

if (msg.pulse.code == MY_PULSE_CODE)

{

printf("從計時器得到一個脈沖信號 ");

……

}

//else other pulses ...

}

//else other messages ...

}

……

}

每收到一次脈沖,心跳協調定時器就完成一次計時,以實現心跳信號發送、接收和處理的調度。

4.3 心跳監聽的驗證

為驗證心跳監聽的實現,搭建了試驗平臺。該平臺包括2套系統。每套系統均包含一顆獨立的CPU,可運行QNX操作系統。系統間用一根RS-232-C連接線互相連接。心跳監聽試驗平臺流程如圖4所示。

圖4 心跳監聽試驗平臺流程圖Fig.4 Flowchart of heartbeat monitoring

通過將心跳監聽程序編譯入兩套系統的QNX系統映像文件,使心跳監聽程序隨QNX操作系統啟動。心跳監聽程序啟動后,系統開始從RS-232-C接口接收心跳信號。若未收到信號,置為主系統;反之,則置為從系統。主從系統確定后,主系統不斷發送心跳信號,從系統不斷接收心跳信號。當從系統連續若干次接收不到心跳系統時,則自動切換為主系統,并向主系統發送重置信號。

5 結束語

當前條件下,各種業務系統對信息系統的依賴與日俱增,信息系統能否實現全時段無故障工作已經受到廣泛關注。心跳監聽技術實現的成本較低,在提高整體的系統安全、可靠性方面效果較好。

本文主要討論了基于串口通信的心跳監聽方法,并在QNX操作系統中,通過串口實現了基本的心跳監聽,給出了部分實例。相關工程技術人員在實際應用中,可以在此基礎上結合具體情況,設計應急措施和恢復處理程序,從而盡可能提高整體系統的應急處理能力和可靠性,或利用心跳監聽系統實現所需的特定功能。

猜你喜歡
信號系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
信號
鴨綠江(2021年35期)2021-04-19 12:24:18
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
完形填空二則
基于PowerPC+FPGA顯示系統
半沸制皂系統(下)
孩子停止長個的信號
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
基于LabVIEW的力加載信號采集與PID控制
主站蜘蛛池模板: 素人激情视频福利| 亚国产欧美在线人成| 露脸一二三区国语对白| AV天堂资源福利在线观看| 久久亚洲国产最新网站| 高清色本在线www| 久久青草精品一区二区三区| 亚洲午夜片| 青青久在线视频免费观看| 任我操在线视频| 91成人免费观看| 亚洲制服中文字幕一区二区| 日韩色图在线观看| 欧美性精品| 99九九成人免费视频精品| 亚洲毛片一级带毛片基地| 婷婷丁香在线观看| 亚洲码在线中文在线观看| 亚洲午夜福利在线| 97精品伊人久久大香线蕉| 88国产经典欧美一区二区三区| 黄色网址手机国内免费在线观看| 91精品国产无线乱码在线| 911亚洲精品| 亚洲成a人片在线观看88| 成人无码区免费视频网站蜜臀| 色婷婷狠狠干| 91区国产福利在线观看午夜| 欧美亚洲日韩中文| 中文字幕啪啪| 免费在线国产一区二区三区精品| 国产精品播放| 国产精品亚洲精品爽爽| 欧美区在线播放| 国内黄色精品| 亚洲人成影院在线观看| 在线一级毛片| 最新加勒比隔壁人妻| 一本无码在线观看| 国产午夜福利亚洲第一| 欧美日韩在线亚洲国产人| 中文字幕丝袜一区二区| 国产小视频在线高清播放| 播五月综合| 97久久超碰极品视觉盛宴| 毛片免费观看视频| 国产黄色免费看| 久久精品国产在热久久2019| 国产精品3p视频| 国禁国产you女视频网站| 福利片91| 久久a级片| 2021精品国产自在现线看| 亚洲第一黄片大全| 欧美精品亚洲精品日韩专区| 91免费在线看| 免费人欧美成又黄又爽的视频| 欧美在线网| 欧美在线中文字幕| 午夜毛片福利| 国产麻豆福利av在线播放 | 亚洲综合九九| 国产一级妓女av网站| 欧美综合一区二区三区| 久久大香伊蕉在人线观看热2| 国产无码精品在线播放 | aⅴ免费在线观看| 18禁影院亚洲专区| 国产成+人+综合+亚洲欧美| 在线视频一区二区三区不卡| 99re这里只有国产中文精品国产精品 | julia中文字幕久久亚洲| 亚洲最大情网站在线观看| 精品无码人妻一区二区| 99久久成人国产精品免费| 久久精品国产精品国产一区| 特级精品毛片免费观看| 欧美成人免费午夜全| 久久狠狠色噜噜狠狠狠狠97视色 | 亚洲国产高清精品线久久| AV无码无在线观看免费| 美女啪啪无遮挡|