• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于CAN總線技術(shù)的通訊類(lèi)軟件設(shè)計(jì)方法

      2015-03-10 10:34:12靳曉園馬穎勁
      航天控制 2015年5期
      關(guān)鍵詞:日志序號(hào)通訊

      靳曉園 馬穎勁

      北京航天自動(dòng)控制研究所,北京100854

      CAN總線技術(shù)為1986年德國(guó)電氣商博世公司提出的面向汽車(chē)內(nèi)部測(cè)量和執(zhí)行的標(biāo)準(zhǔn)通訊協(xié)議,其總線規(guī)范現(xiàn)已被ISO國(guó)際標(biāo)準(zhǔn)組織制定為國(guó)際標(biāo)準(zhǔn),由于CAN總線的高實(shí)時(shí)性能和高傳輸速率特點(diǎn),CAN己在汽車(chē)業(yè)、航空業(yè)、工業(yè)控制和安全防護(hù)等領(lǐng)域中得到了廣泛應(yīng)用。CAN總線技術(shù)應(yīng)用于我國(guó)航天領(lǐng)域研究方面還處在試驗(yàn)及起步階段,在對(duì)可靠性和安全性要求極高的航天通訊類(lèi)系統(tǒng)這個(gè)集群中,CAN總線技術(shù)的完善應(yīng)用還具有較大上升空間。

      本文提出一種基于CAN總線2.0B通訊協(xié)議的雙冗余分層次軟件設(shè)計(jì)實(shí)現(xiàn)方法,對(duì)通訊類(lèi)系統(tǒng)在CAN總線上的軟件可靠性、安全性設(shè)計(jì)及推廣擴(kuò)展應(yīng)用會(huì)有借鑒意義。

      1 基于CAN總線的通訊類(lèi)系統(tǒng)概述

      基于CAN總線的數(shù)據(jù)通訊軟件設(shè)計(jì)總體方案如圖1。

      圖1 通訊類(lèi)系統(tǒng)CAN總線節(jié)點(diǎn)分布

      如圖1所示,通訊類(lèi)系統(tǒng)具有多個(gè)CAN總線節(jié)點(diǎn),其中主動(dòng)控制節(jié)點(diǎn)起到通訊類(lèi)系統(tǒng)總體流程控制的功能,負(fù)責(zé)向各個(gè)被動(dòng)控制節(jié)點(diǎn)發(fā)送測(cè)試指令或工作數(shù)據(jù),并在規(guī)定的時(shí)間范圍內(nèi)接收回令,用于判斷當(dāng)前發(fā)送的指令或數(shù)據(jù)的正確性。執(zhí)行正確后繼續(xù)其它測(cè)試指令及流程。在整個(gè)系統(tǒng)軟件運(yùn)行過(guò)程中,主動(dòng)控制節(jié)點(diǎn)軟件全程記錄所有CAN總線節(jié)點(diǎn)上數(shù)據(jù)收發(fā)源碼內(nèi)容作為日志保存至主機(jī)硬盤(pán)內(nèi)。

      2 具體實(shí)施方案及可靠性設(shè)計(jì)

      2.1 多線程分層次結(jié)構(gòu)化軟件設(shè)計(jì)

      基于CAN總線的通訊類(lèi)軟件采用實(shí)時(shí)性較高的VxWorks操作系統(tǒng)實(shí)現(xiàn),軟件內(nèi)部各個(gè)系統(tǒng)分層次完成CAN總線數(shù)據(jù)的收發(fā)功能,具體分層次結(jié)構(gòu)化方案如圖2。

      通訊類(lèi)系統(tǒng)的CAN總線軟件設(shè)計(jì)在結(jié)構(gòu)設(shè)計(jì)上分為底層驅(qū)動(dòng)層、協(xié)議解析層及數(shù)據(jù)應(yīng)用層[1]。

      底層驅(qū)動(dòng)層主要完成基本字節(jié)級(jí)別的數(shù)據(jù)收發(fā),在發(fā)送及接收過(guò)程中均采用多線程任務(wù)所具備的消息隊(duì)列模式,以便各個(gè)應(yīng)用層線程能同時(shí)對(duì)CAN總線上的任意節(jié)點(diǎn)發(fā)送和采集需要的應(yīng)用層數(shù)據(jù)。此外底層協(xié)議層還負(fù)責(zé)數(shù)據(jù)記錄功能,能將各個(gè)節(jié)點(diǎn)發(fā)送和接收的CAN總線數(shù)據(jù)源碼統(tǒng)一存放至日志消息隊(duì)列中,以供日志線程記錄CAN總線上的所有動(dòng)作。

      圖2 通訊類(lèi)系統(tǒng)CAN多層軟件設(shè)計(jì)

      協(xié)議解析層主要依據(jù)系統(tǒng)功能要求及工作過(guò)程,規(guī)定地面各個(gè)節(jié)點(diǎn)信息交互時(shí)序,描述各總線節(jié)點(diǎn)間的信息驅(qū)動(dòng)關(guān)系,并解析出具體數(shù)據(jù)幀類(lèi)型及格式。系統(tǒng)CAN總線網(wǎng)段接口采用CAN2.0B擴(kuò)展幀協(xié)議,報(bào)文傳輸使用數(shù)據(jù)幀類(lèi)型,單個(gè)數(shù)據(jù)幀由仲裁場(chǎng)、控制場(chǎng)和數(shù)據(jù)場(chǎng)組成。

      數(shù)據(jù)應(yīng)用層規(guī)定了由CAN總線數(shù)據(jù)場(chǎng)內(nèi)信息字節(jié)構(gòu)成的數(shù)據(jù)幀格式(不含通用錯(cuò)報(bào)文),由于協(xié)議層可以用多幀數(shù)據(jù)組成一條指令,其大小不受傳統(tǒng)CAN總線協(xié)議中8字節(jié)的約束,由基本幀信息和幀內(nèi)數(shù)據(jù)信息構(gòu)成,基本幀包括幀序號(hào)、特征碼、數(shù)據(jù)長(zhǎng)度及校驗(yàn)和幾個(gè)部分,幀格式見(jiàn)表1。

      表1 數(shù)據(jù)基本幀格式

      數(shù)據(jù)應(yīng)用層是直接與各個(gè)節(jié)點(diǎn)打交道的CAN總線層級(jí),整個(gè)系統(tǒng)軟件在各個(gè)節(jié)點(diǎn)應(yīng)用線程內(nèi)按照數(shù)據(jù)應(yīng)用層的協(xié)議規(guī)定進(jìn)行組幀及解析,組幀解析完畢后通過(guò)結(jié)構(gòu)體處理器將其傳遞給協(xié)議解析層,從而完成CAN總線的數(shù)據(jù)收發(fā)。

      CAN總線多線程分層次結(jié)構(gòu)化的設(shè)計(jì)模式既保證了各個(gè)層級(jí)之間數(shù)據(jù)交互的低耦合性,使得該結(jié)構(gòu)移植在CAN總線之外的通訊線路上成為可能;又充分考慮到節(jié)點(diǎn)設(shè)計(jì)的靈活性及獨(dú)立性,增刪或修改其中一個(gè)CAN總線節(jié)點(diǎn)并不影響其它節(jié)點(diǎn)的軟件功能。該設(shè)計(jì)架構(gòu)充分考慮高內(nèi)聚內(nèi)耦合的軟件架構(gòu)設(shè)計(jì)理念,具有積極的應(yīng)用意義。

      2.2 各個(gè)節(jié)點(diǎn)的優(yōu)先級(jí)及主被動(dòng)關(guān)系

      CAN總線數(shù)據(jù)通訊沒(méi)有主從之分,任意一個(gè)節(jié)點(diǎn)可以向任何其它(一個(gè)或多個(gè))節(jié)點(diǎn)發(fā)起數(shù)據(jù)通訊,靠各個(gè)節(jié)點(diǎn)信息優(yōu)先級(jí)先后順序來(lái)決定通訊次序,高優(yōu)先級(jí)節(jié)點(diǎn)信息CAN總線上通訊;如果多個(gè)節(jié)點(diǎn)同時(shí)發(fā)起通訊,優(yōu)先級(jí)低的避讓優(yōu)先級(jí)高的,不會(huì)對(duì)通訊線路造成擁塞。主動(dòng)控制節(jié)點(diǎn)軟件優(yōu)先級(jí)最高,其它節(jié)點(diǎn)優(yōu)先級(jí)均較低。

      系統(tǒng)在進(jìn)行CAN總線流程設(shè)計(jì)上充分考慮各個(gè)節(jié)點(diǎn)的優(yōu)先級(jí),為防止不同優(yōu)先級(jí)節(jié)點(diǎn)上的數(shù)據(jù)發(fā)生沖突現(xiàn)象,在軟件數(shù)據(jù)發(fā)送及響應(yīng)設(shè)計(jì)上,采用主動(dòng)控制節(jié)點(diǎn)主動(dòng)發(fā)送、被動(dòng)控制節(jié)點(diǎn)被動(dòng)響應(yīng)的機(jī)制。在系統(tǒng)上電之初,主動(dòng)控制節(jié)點(diǎn)為主動(dòng)態(tài),其它被動(dòng)控制節(jié)點(diǎn)均為被動(dòng)響應(yīng)態(tài),此時(shí)其它節(jié)點(diǎn)只能被動(dòng)響應(yīng)主動(dòng)控制節(jié)點(diǎn)軟件上的CAN總線指令,執(zhí)行相應(yīng)動(dòng)作,無(wú)其它數(shù)據(jù)交互,在指令完成后將指令完成情況以回令的形式發(fā)送給主動(dòng)控制節(jié)點(diǎn)軟件,此時(shí)主動(dòng)控制節(jié)點(diǎn)軟件也是執(zhí)行一套CAN總線指令后再執(zhí)行其它指令,以防止CAN總線指令相互沖突。

      這種主動(dòng)控制節(jié)點(diǎn)主動(dòng)發(fā)送其它節(jié)點(diǎn)被動(dòng)響應(yīng)的機(jī)制能夠有效防止各個(gè)節(jié)點(diǎn)數(shù)據(jù)相互沖突,各個(gè)節(jié)點(diǎn)有條不紊的工作,提高系統(tǒng)安全性及可靠性。

      2.3 雙冗余CAN總線及基本幀序號(hào)設(shè)計(jì)

      基本幀“序號(hào)”表征CAN總線應(yīng)用層的一條有方向的數(shù)據(jù)鏈路所完成的基本幀傳輸計(jì)數(shù)。即由“A節(jié)點(diǎn)→B節(jié)點(diǎn)”傳輸?shù)幕編谕瓿?次傳輸后序號(hào)應(yīng)累加1。“B節(jié)點(diǎn)→A節(jié)點(diǎn)”與“A節(jié)點(diǎn)→B節(jié)點(diǎn)”為2條不同方向的數(shù)據(jù)鏈路,應(yīng)分別設(shè)置“序號(hào)”(即對(duì)1個(gè)總線節(jié)點(diǎn)與另外1個(gè)節(jié)點(diǎn)通訊分別設(shè)置接收序號(hào)寄存器和發(fā)送序號(hào)計(jì)數(shù)器)。

      1個(gè)總線節(jié)點(diǎn)與多個(gè)總線節(jié)點(diǎn)通訊時(shí)設(shè)置多組接收序號(hào)寄存器和發(fā)送序號(hào)計(jì)數(shù)器?!靶蛱?hào)”用于甄別雙冗余CAN總線上的冗余基本幀。CAN節(jié)點(diǎn)判斷當(dāng)前基本幀序號(hào)是否和前一條已處理的基本幀序號(hào)相同,如果相同則忽略不響應(yīng)(即總線節(jié)點(diǎn)對(duì)收到的序號(hào)與前一幀已處理的重復(fù)指令可不予以響應(yīng))。

      節(jié)點(diǎn)上電初始化后,序號(hào)從0開(kāi)始計(jì)數(shù),計(jì)滿255后從0開(kāi)始重新計(jì)數(shù)。CAN總線節(jié)點(diǎn)向雙冗余CAN總線上的另外一個(gè)節(jié)點(diǎn)每發(fā)送1個(gè)基本幀(注意:基本幀不同于CAN總線協(xié)議包的數(shù)據(jù)場(chǎng),基本幀大小不受8字節(jié)約束),則序號(hào)計(jì)數(shù)加1。

      CAN總線節(jié)點(diǎn)向雙冗余A,B總線上發(fā)送同一個(gè)基本幀,應(yīng)視為該數(shù)據(jù)鏈路上的一次傳輸,A,B總線上該基本幀的序號(hào)相同??偩€節(jié)點(diǎn)主動(dòng)發(fā)送的命令或回令均會(huì)導(dǎo)致發(fā)送序號(hào)計(jì)數(shù)器加1;由于重發(fā)機(jī)制重新發(fā)送的基本幀,所以序號(hào)計(jì)數(shù)加1。

      雙冗余CAN總線得設(shè)計(jì)保證通訊類(lèi)系統(tǒng)CAN總線傳輸?shù)陌踩院涂煽啃?,即?條CAN總線鏈路上存在問(wèn)題,另外1條CAN總線也能獨(dú)立完成通訊任務(wù);基本幀序號(hào)能夠甄別出2條總線上通訊的冗余信息,從而保證CAN總線通訊信息不會(huì)重復(fù)。二者設(shè)計(jì)相輔相成,缺一不可。

      2.4 超時(shí)判別機(jī)制

      通訊類(lèi)系統(tǒng)的CAN總線超時(shí)機(jī)制主要是在數(shù)據(jù)應(yīng)用層中體現(xiàn),即協(xié)議規(guī)定各個(gè)節(jié)點(diǎn)響應(yīng)主動(dòng)控制節(jié)點(diǎn)軟件的CAN總線指令的最長(zhǎng)時(shí)間,超過(guò)該時(shí)間,主動(dòng)控制節(jié)點(diǎn)軟件就會(huì)重試2次該指令,并等待被動(dòng)控制節(jié)點(diǎn)的回令,如果規(guī)定時(shí)間內(nèi)還未收到被動(dòng)控制節(jié)點(diǎn)指令,則主動(dòng)控制節(jié)點(diǎn)軟件或?qū)惓S涗涍M(jìn)系統(tǒng)異常日志,或?qū)⑵滹@示在界面上等待操作手裁決[2]。

      該超時(shí)機(jī)制在軟件通訊過(guò)程中有效的防止了被響應(yīng)節(jié)點(diǎn)長(zhǎng)期不響應(yīng)導(dǎo)致的系統(tǒng)停滯現(xiàn)象,配合多線程分層次軟件設(shè)計(jì)起到積極保證軟件流程順利進(jìn)行的作用。

      2.5 總線源碼日志分析技術(shù)

      CAN總線底層協(xié)議層具有數(shù)據(jù)記錄功能,能將各個(gè)節(jié)點(diǎn)發(fā)送及接收CAN總線數(shù)據(jù)源碼統(tǒng)一存放至日志消息隊(duì)列中,以供日志線程記錄CAN總線上的所有動(dòng)作,圖3為某次試驗(yàn)CAN總線上的日志截取圖。

      從圖3上的日志源碼能準(zhǔn)確的分析到CAN總線某個(gè)數(shù)據(jù)的節(jié)點(diǎn)動(dòng)作時(shí)間、節(jié)點(diǎn)發(fā)送方(仲裁場(chǎng))、節(jié)點(diǎn)接收方(仲裁場(chǎng))、數(shù)據(jù)為該次通訊的第幾幀數(shù)據(jù)(仲裁場(chǎng))、數(shù)據(jù)長(zhǎng)度(控制場(chǎng))和數(shù)據(jù)特征碼(數(shù)據(jù)場(chǎng))等諸多信息。有助于事后故障模式的分析與判別,對(duì)系統(tǒng)的故障排除、性能分析和統(tǒng)計(jì)功能完成情況等方面提供大量的理論依據(jù)[3]。

      圖3 某次試驗(yàn)CAN總線上日志截取圖

      3 結(jié)束語(yǔ)

      基于CAN總線通訊的通訊類(lèi)軟件強(qiáng)大的數(shù)據(jù)通訊功能為試驗(yàn)中各個(gè)節(jié)點(diǎn)之間的數(shù)據(jù)交互、現(xiàn)場(chǎng)CAN總線故障定位及判斷提供了不可替代的作用[4]。該系統(tǒng)架構(gòu)設(shè)計(jì)合理,細(xì)化了各個(gè)層級(jí)CAN總線通訊功能,增加了軟件的后續(xù)修改性和可移植性,為后續(xù)其它同類(lèi)型的軟件應(yīng)用提供了設(shè)計(jì)參考。該系統(tǒng)架構(gòu)采用多線程分層次結(jié)構(gòu)化軟件設(shè)計(jì)、雙冗余CAN總線及基本幀序號(hào)設(shè)計(jì),提高了系統(tǒng)軟件的可靠性及安全性??偩€源碼日志分析技術(shù)為事后軟件分析及故障定位提供了數(shù)據(jù)支撐。

      [1] 譚亮,吳曉,張凱龍,蘇二峰.Delta OS下的CAN總線驅(qū)動(dòng)及多通道通信調(diào)度[J].計(jì)算機(jī)工程與應(yīng)用,2013,49(3):65-73.(TAN Liang,WU Xiao,ZHANG Kailong,SU Erfeng.CAN communication driver and multi-channel communication scheduling based on Delta OS [J].Computer Engineering and Applications,2013,49(3):65-73.)

      [2] 李為民.Windows平臺(tái)下CAN總線通信幾個(gè)軟件問(wèn)題的探討[J].電腦編程技巧與維護(hù),2013,4(4):4-5.(LI Wei-min.Probe into Software Problem in CAN Bus Communication on Windows Platform [J].Computer Programming Skills& Maintenance,2013,4(4):4-5.)

      [3] 楊春英.CAN現(xiàn)場(chǎng)總線系統(tǒng)設(shè)計(jì)技術(shù)及實(shí)現(xiàn)[J].中國(guó)艦船研究院,2007,4(160):168-171.(Yang Chunying.Design and Realization of the CAN Bus System[J].Ship Electronic Engineering,2007,4(160):168-171.)

      [4] 楊亮,賈慶軒,孫漢旭.冗余CAN總線系統(tǒng)設(shè)計(jì)[J].機(jī)電產(chǎn)品開(kāi)發(fā)與創(chuàng)新,2007,20(5):4-8.(YANG Liang,JIA Qing-Xuan,SUN Han-XU.The Design and Realization of the Redundant CAN BUS System [J].Development&Innovation of Machinery&Electrical Products,2007,20(5):4-8.)

      猜你喜歡
      日志序號(hào)通訊
      《茶葉通訊》簡(jiǎn)介
      茶葉通訊(2022年2期)2022-11-15 08:53:56
      《茶葉通訊》簡(jiǎn)介
      茶葉通訊(2022年3期)2022-11-11 08:43:50
      通訊報(bào)道
      一名老黨員的工作日志
      扶貧日志
      心聲歌刊(2020年4期)2020-09-07 06:37:14
      游學(xué)日志
      通訊簡(jiǎn)史
      技術(shù)指標(biāo)選股
      技術(shù)指標(biāo)選股
      技術(shù)指標(biāo)選股
      海盐县| 定远县| 保靖县| 涟水县| 怀宁县| 定边县| 泸西县| 阳信县| 余干县| 泸西县| 灵川县| 长治市| 阿勒泰市| 昭觉县| 宁都县| 五常市| 宁强县| 阳朔县| 博白县| 许昌县| 黄石市| 洪泽县| 遵化市| 南阳市| 离岛区| 南宫市| 益阳市| 镇康县| 博湖县| 申扎县| 昭通市| 曲水县| 泾阳县| 巴彦县| 石台县| 咸宁市| 健康| 开鲁县| 依安县| 呼和浩特市| 信宜市|