魏列江, 安貞嬛, 李健偉, 趙保才, 毛飛鴻, 強 彥,3
(1.蘭州理工大學 能源與動力工程學院, 甘肅 蘭州 730050;2.中國北方車輛研究所 車輛傳動重點實驗室, 北京 100072; 3.東南大學 能源與環(huán)境學院, 江蘇 南京 211189)
智能工程機械采用智能多路閥控制多個執(zhí)行機構(gòu),獲得多執(zhí)行機構(gòu)的協(xié)同聯(lián)動[1]。傳統(tǒng)控制方法是采用分布式控制,即各聯(lián)閥控制器單獨完成閥內(nèi)參數(shù)閉環(huán)控制,由于受現(xiàn)場安裝空間、工作環(huán)境和成本所限,內(nèi)置在閥中的閥控制器功能單一、實現(xiàn)復雜優(yōu)化控制算法困難、各聯(lián)閥控制結(jié)果實時交互性差,難以滿足智能工程機械中多執(zhí)行機構(gòu)精準快速協(xié)同聯(lián)動的要求[2]。隨著現(xiàn)代嵌入式計算機可靠性和性能的大幅提升,采用一臺功能強大的整機控制器控制所有智能閥的集中控制模式[3],更易實現(xiàn)智能多路閥的協(xié)同聯(lián)動控制算法,方便全局監(jiān)測模式,閥控制器只做閥內(nèi)參數(shù)采集、存取、傳輸和功率放大,通過CAN總線與整機控制器進行數(shù)據(jù)交互,可極大簡化閥控制器功能,實現(xiàn)閥控制器標準化構(gòu)建,提高多執(zhí)行機構(gòu)協(xié)調(diào)控制的快速性和柔性[4]。但是,在集中控制模式下,整機控制器完成各聯(lián)閥的閉環(huán)控制并集中管理,且在集中控制模式下,閥控制器只做閥內(nèi)參數(shù)采集、存取、傳輸和功率放大,通過CAN總線與整機控制器進行數(shù)據(jù)交互,極大簡化閥控制器功能,實現(xiàn)閥控制器的標準化,提高多執(zhí)行機構(gòu)協(xié)調(diào)控制的快速性和柔性[5]。采用集中控制方案中的反饋參數(shù)均需通過CAN總線由閥控制器發(fā)送至整機控制器中,整機控制器需要快速接受、存取和處理大量數(shù)據(jù),采用傳統(tǒng)順序緩沖區(qū)存取數(shù)據(jù)的方法往往會造成較大延時,導致控制性能下降甚至失效[6]。
國內(nèi)對CAN總線展開的研究有:杜峰等[7]在負載率固定的情況下,分析對CAN總線數(shù)據(jù)傳輸延時的問題并提出一種改善延時的方案,減少長延時的數(shù)據(jù)包數(shù)量,但忽略了傳輸過程中CAN控制器和軟件產(chǎn)生的延時;董權(quán)威等[8]在自主水下航行器中率先使用了CAN總線的分布式控制系統(tǒng)設計方案,將自主水下航行器的功能分部到不同的控制節(jié)點中,但是未考慮CAN總線通信錯誤對控制系統(tǒng)的影響;金振華[9]提出將CAN總線技術(shù)應用至分布式數(shù)控系統(tǒng)中,改進數(shù)控系統(tǒng),但是未考慮在實時性要求較高的應用場合中,分布式控制系統(tǒng)由于數(shù)據(jù)傳輸產(chǎn)生延時,導致分布式控制系統(tǒng)不穩(wěn)定的問題。
綜上所述,將CAN總線應用至閥控系統(tǒng)中雖已取得一定程度的研究,但研究人員往往將CAN總線作為數(shù)據(jù)傳輸?shù)氖侄?并未考慮CAN總線進行數(shù)據(jù)傳輸時,數(shù)據(jù)存取環(huán)節(jié)給控制系統(tǒng)帶來的不利影響,無法保證實時控制系統(tǒng)中各控制節(jié)點的可靠性[10]。為實現(xiàn)智能工程機械各執(zhí)行機構(gòu)的協(xié)同聯(lián)動控制,可采用智能多路閥的控制算法在整機控制器內(nèi)集中實現(xiàn),整機控制器與各聯(lián)多路閥之間采用CAN總線實現(xiàn)數(shù)據(jù)交互,當數(shù)據(jù)量較大時,因CAN總線進行數(shù)據(jù)存取環(huán)節(jié)造成的延遲會嚴重影響控制性能,甚至造成控制失效[11]。提出整機控制器采用環(huán)形緩沖區(qū)代替?zhèn)鹘y(tǒng)的順序緩沖區(qū)的解決方案,通過檢測環(huán)形緩沖區(qū)是否存在未寫入數(shù)據(jù)的空白區(qū)域,將CAN總線傳輸?shù)亩嗦烽y參數(shù)依次寫入空白緩沖區(qū),顯著提高CAN總線中數(shù)據(jù)存取環(huán)節(jié)的速度,從而減少CAN總線進行數(shù)據(jù)傳輸時的延時時長。
分布式控制在實現(xiàn)智能閥控制時,由于閥控制器性能所限,速度慢、協(xié)調(diào)難,因此直接實現(xiàn)協(xié)同控制難度大[12]。為提高執(zhí)行機構(gòu)的協(xié)同控制,提出整機控制器集中控制模式,由整機控制器承擔網(wǎng)絡通信處理,接受采集數(shù)據(jù)、計算數(shù)據(jù)處理[13]。由整機控制器產(chǎn)生控制指令并下傳給控制系統(tǒng)中的閥控制器節(jié)點,閥根據(jù)指令執(zhí)行動作,傳感器采集現(xiàn)場實時數(shù)據(jù),將數(shù)據(jù)上傳給整機控制器,整機控制器功能強大,擴展性強,同時可將閥控制器標準化、功能單一化[14]。但是,采用整機控制器集中控制模式存在通信數(shù)據(jù)量大的問題,應著重考慮數(shù)據(jù)量的傳輸快速性[15],減少數(shù)據(jù)傳輸過程中的延時,本研究在整機控制器處設置環(huán)形緩沖區(qū),減少接收存儲環(huán)節(jié)帶來的延時問題,以此減輕CAN總線延時問題。
采用CAN總線進行數(shù)據(jù)交互的集中式智能閥系統(tǒng)結(jié)構(gòu)如圖1所示,整機控制器將指令信號分解為多路閥A聯(lián)、多路閥B聯(lián)、…、多路閥N聯(lián)的給定信號,閥控制器1、2、…、n接收到給定信號后,產(chǎn)生PWM信號控制比例電磁鐵帶動先導閥閥芯,液壓油通過先導閥閥口進入主閥芯,產(chǎn)生的液壓力克服彈簧力、液動力、摩擦力推動主閥運動[16],在每聯(lián)導閥、主閥處裝設傳感器(如圖1中傳感器1.1、傳感器1.2、…傳感器n.1、傳感器n.2),完成對導閥、主閥實時狀態(tài)信息的采集,采集到的實時信息進入閥控制器完成A/D轉(zhuǎn)換后,閥控制器通過CAN總線向整機控制器發(fā)送導閥、主閥的實時狀態(tài)信息,整機控制器對比指令信號與各路閥實時狀態(tài)信息的偏差后,統(tǒng)一完成各個閥芯的閉環(huán)控制,最終實現(xiàn)整機控制器的閉環(huán)控制[17]。
圖1 整機控制器集中控制的多路閥系統(tǒng)結(jié)構(gòu)圖Fig.1 Structure diagram of multi way valve system under centralized control of complete machine controller
分析該系統(tǒng)時,將閥控制器、導閥、主閥共同作為被控對象,輸入信號是整機控制器發(fā)送的指令信號,輸出為主閥的位移,傳感器采集主閥的實時位移信息,通過CAN總線作為反饋通道發(fā)送數(shù)據(jù)至整機控制器,經(jīng)整機控制器中的協(xié)同控制策略實現(xiàn)對反饋信號的補償,以達到預期控制需求[18]。經(jīng)過上述等效,以多路閥內(nèi)部某一聯(lián)主閥的位移閉環(huán)控制為例,其等效結(jié)構(gòu)如圖2所示。
圖2 一聯(lián)多路閥等效控制結(jié)構(gòu)Fig.2 Equivalent control structure of one way multi way valve
將一聯(lián)主閥的給定位移與其他主閥的實際位移結(jié)果進行運算,其運算結(jié)果作為該閥控制器的位移給定信號,整個閉環(huán)控制系統(tǒng)由于依賴CAN總線進行信息傳遞,不可避免會帶來延時問題,通信延時過大會造成閉環(huán)控制系統(tǒng)紊亂,影響控制系統(tǒng)的性能指標,如超調(diào)量、響應時間等,導致多路閥系統(tǒng)的協(xié)同控制能力下降、操作性能下降[19]。
將一聯(lián)主閥給定位移與其他主閥的實際位移結(jié)果進行運算,其運算結(jié)果作為該閥控制器的給定信號,整個閉環(huán)控制系統(tǒng)由于依賴CAN總線進行信息傳遞,不可避免會帶來延時問題, 通信延時過大會造成閉環(huán)控制系統(tǒng)紊亂,影響控制系統(tǒng)的性能指標,如超調(diào)量、響應時間等,導致多路閥系統(tǒng)的協(xié)同控制能力下降、操作性能下降。
整機控制器采用PID控制,其控制框圖如圖3所示,R(k)為工控機發(fā)出的目標位移,T(k)為整機控制器的控制特性,即控制器計算得到的閥芯目標位移;τsc(k)為第k個控制周期內(nèi),傳感器到控制器的通信延時;τcs(k)為第k個控制周期內(nèi),控制器到傳感器的通信延時。Y(k)為主閥的實際位移,G(k)為導閥—主閥的傳遞函數(shù)模型,表征目標位移輸入電信號到主閥位移輸出的響應特性。
圖3 一聯(lián)多路閥控制框圖Fig.3 Block diagram of one way multi way valve control
先導閥傳遞函數(shù)為:
(1)
式中,Ku—— 比例電磁鐵電流-力增益
R—— 比例電磁鐵等效電阻
KL—— 先導閥彈簧剛度
ω0—— 先導閥二階震蕩環(huán)節(jié)固有頻率
ξ0—— 阻尼關(guān)系
Ks—— 動生反電動勢系數(shù)
Ksp—— 作用在銜鐵上的機械彈簧剛度
KL—— 閥芯穩(wěn)態(tài)液動力剛度
主閥傳遞函數(shù)為:
(2)
式中,Kq—— 零位流量增益
A—— 主閥芯有效作用面積
M—— 主閥芯質(zhì)量
V0—— 主閥上下兩端容積平均值
Kc—— 零位壓力流量系數(shù)
Cep—— 閥外泄漏系數(shù)
βv—— 主閥黏性阻尼系數(shù)
βe—— 有效體積彈性模量
Ksm—— 穩(wěn)態(tài)液動力系數(shù)
Km—— 主彈簧剛度
G(k)為導閥輸入驅(qū)動電壓信號(V) —主閥輸出位移(m)的前向通道傳遞函數(shù):
(3)
通常來說,在設計階段,系統(tǒng)期望的性能指標是按照無通信延時的情況來設計的,此時系統(tǒng)控制率和系統(tǒng)輸出為[19]:
T0(k)=F(e(k))=F(R(k)-Y(k))
(4)
(5)
式中,T0(k) —— 第k個控制周期內(nèi),期望控制指令
e(k) —— 第k個控制周期內(nèi),期望輸出誤差
在實際的系統(tǒng)中,由于存在通信延時,系統(tǒng)的系統(tǒng)控制率和系統(tǒng)輸出為:
T(k)=F(e(k))=F(R(k)-Y(k-τsc(k))-
Y1(k-τcs(k))…-Yn(k-
τcs(k)))
(6)
(7)
式中,τsc(k) —— 第k個控制周期內(nèi),傳感器到控制器的通信延時
τcs(k) —— 第k個控制周期內(nèi),控制器到傳感器的通信延時
將式(5)和式(7)對比可見,控制指令的延時導致控制作用時間變短,在[kTc,(k+τcs(k))Tc]時間內(nèi),實際控制指令為上一周期T(k-1)的控制指令,[((k+τcs(k))Tc,(k+1)Tc]時間內(nèi),實際控制指令為這一周期T(k)的控制指令。CAN通信網(wǎng)絡中信息傳遞分為周期信息和非周期信息,周期性信息以傳感器采集信息值為主,定時向整機控制器發(fā)送自身設備狀態(tài)的信息,將周期信息中出現(xiàn)的延時考慮為常量且此延時小于一個采樣周期,簡化分析多路閥反饋系統(tǒng)中出現(xiàn)的延時,在反饋環(huán)節(jié)產(chǎn)生延時Tdelay的閉環(huán)控制系統(tǒng)的傳遞函數(shù)為[20]:
(8)
Tdelay由以下幾個通信延時環(huán)節(jié)組成,分別為:
Tdelay=Tsource+Tframe+Tts+Trev+Tsink
(9)
式中,Tsource—— 整機控制器對數(shù)據(jù)發(fā)送打包所用的時間
Tframe—— 數(shù)據(jù)幀進入緩沖區(qū)等待發(fā)送直到消息發(fā)送完成所用的時間
Tts—— 數(shù)據(jù)傳輸時間,此處為數(shù)據(jù)幀在雙絞線介質(zhì)中傳輸所用的時間
Trev—— 解包產(chǎn)生的時間,此處為閥控制器對CAN總線傳輸來的數(shù)據(jù)幀進行解釋、計算、執(zhí)行所用的時間,當數(shù)據(jù)量即傳輸周期固定時,以上各部分的延時可以視為確定值
Tsink—— 將數(shù)據(jù)讀入整機控制器處緩沖區(qū)所用的時間,如果CAN通信網(wǎng)絡中流量過大,則會出現(xiàn)擁塞,致使排隊時間無法預測,成為傳輸時延不確定性的主要因素,因此降低數(shù)據(jù)幀將數(shù)據(jù)讀入主控芯片緩沖區(qū)所用的時間Tsink是很有必要的[21]
本研究將著重考慮Tsink,顯著提高CAN總線數(shù)據(jù)存取環(huán)節(jié)的速度,從而減少CAN總線進行數(shù)據(jù)傳輸時的延時時長。
在波特率為250 Kbps的CAN通信網(wǎng)絡中,以考慮在反饋部分引入延時環(huán)節(jié)的多路閥系統(tǒng)仿真狀態(tài)如圖4所示,橫坐標表示為時間(s),縱坐標表示為主閥閥芯位移(mm),將τsc分別設置為0, 0.15, 0.25 ms,反饋環(huán)節(jié)的延時時間過大時,將嚴重影響多路閥系統(tǒng)的穩(wěn)定性,出現(xiàn)震蕩問題,因此在多路閥系統(tǒng)中應極力縮短CAN通信帶來的延時問題,以提高響應時間。現(xiàn)引入CAN通信的控制網(wǎng)絡中常忽略軟件產(chǎn)生的延時,但真實的情況是,若對數(shù)據(jù)處理不妥當,軟件延時會出現(xiàn)數(shù)據(jù)接收與數(shù)據(jù)處理速度的不匹配,從而造成數(shù)據(jù)幀延遲甚至丟失,甚至引起液壓控制系統(tǒng)的不穩(wěn)定甚至失效。因此考慮在多路閥集中式控制系統(tǒng)中引入環(huán)形緩沖區(qū)減少延時。
圖4 反饋環(huán)節(jié)引入延時對多路閥系統(tǒng)的影響Fig.4 Influence of time delay of feedback link on multi way valve system
對于順序緩沖區(qū),只有將存入順序緩沖區(qū)的數(shù)據(jù)全部讀取完畢后,才能繼續(xù)接收數(shù)據(jù),這種結(jié)構(gòu)對于海量數(shù)據(jù)量高速傳輸下的多路閥系統(tǒng)是不能容忍的[22]。較順序緩沖區(qū),環(huán)形緩沖區(qū)面對多路閥協(xié)同控制通信網(wǎng)絡具有較強的適應性,通過檢測頭指針與尾指針的位置來判斷是否存在未寫入數(shù)據(jù)的空白區(qū)域。當頭指針與尾指針不相等時,表明緩沖區(qū)內(nèi)存在未寫入數(shù)據(jù)的區(qū)域,可以向整機控制器內(nèi)置的緩沖區(qū)內(nèi)寫入各聯(lián)主閥的位移信號,在接收數(shù)據(jù)的同時,處理器可從緩沖區(qū)讀取數(shù)據(jù),數(shù)據(jù)接收與數(shù)據(jù)發(fā)送過程互不影響。
此外在判斷環(huán)形隊列緩沖區(qū)為空還是滿時,是通過判斷整機控制器內(nèi)置的環(huán)形緩沖區(qū)的頭、尾指針是否相等來實現(xiàn)的,具體操作為:
假設整機控制器內(nèi)置的環(huán)形緩沖區(qū)數(shù)組長度為size,R為寫入指針,W為讀出指針。
讀指針>寫指針,存入的數(shù)據(jù)為R-W;
寫指針>讀指針,存入的數(shù)據(jù)為size-(W-R);
寫指針=讀指針,存入的數(shù)據(jù)為size。
整機控制器內(nèi)置環(huán)形緩沖區(qū)具體實現(xiàn)流程如圖5所示,環(huán)形緩沖區(qū)的讀、寫兩個指針頻繁在操作,要避免讀、寫指針的誤操作導致緩沖區(qū)數(shù)據(jù)誤修改,因此環(huán)形緩沖區(qū)內(nèi)的數(shù)據(jù)保護非常重要。環(huán)形緩沖區(qū)的大小設計是非常重要的一個環(huán)節(jié)。若內(nèi)存設置過小,會覆蓋掉尚未發(fā)送出去的數(shù)據(jù),導致數(shù)據(jù)丟失;若內(nèi)存設置太大,則耗費嵌入式處理器有限內(nèi)存資源,不利于其他部分代碼的編寫。因此,設計合理大小的緩沖區(qū)非常關(guān)鍵,需要對環(huán)形緩沖區(qū)內(nèi)存空間進行設置[23]。
圖5 整機控制器內(nèi)置環(huán)形緩沖區(qū)實現(xiàn)流程Fig.5 Realization process of built-in ring buffer of machine controller
整機控制器存取一條信息中所需要的最大內(nèi)存空間(位數(shù))為:
σ=[(11(ID)+64(DATA))]
(10)
整機控制器的存儲器是以1 Bytes即8 bit為單位設計的,所以式(10)中的bit數(shù)要向上取整成8的整數(shù),11取整成16,得到環(huán)形緩沖區(qū)最小內(nèi)存空間應為:
σ=2+8=10
(11)
整機控制器環(huán)形緩沖區(qū)只需存取指令信號、各聯(lián)閥芯的位移信號,為便于計算,每條信息都以存取報文的最大內(nèi)存空間進行計算,故整機控制器緩沖區(qū)大小應為10 Bytes數(shù)據(jù)的倍數(shù)。
整機控制器數(shù)據(jù)存取采用環(huán)形緩沖區(qū)實現(xiàn),算法如圖6所示。
圖6 環(huán)形緩沖區(qū)算法實現(xiàn)Fig.6 Implementation of ring buffer algorithm
同樣的測試環(huán)境下分別對比整機控制器內(nèi)置順序緩沖區(qū)緩存處理方法和本研究所提出的整機控制器內(nèi)置環(huán)形緩沖區(qū)緩存處理方法進行實驗對比[20],以研究兩聯(lián)多路閥為例,其測試的環(huán)境如表1所示。
表1 測試環(huán)境Tab.1 Testing environment
多路閥系統(tǒng)內(nèi)部通信實驗原理圖如圖7所示。
圖7 多路閥系統(tǒng)內(nèi)部通信實驗原理圖Fig.7 Schematic diagram of internal communication experiment of multi way valve system
由圖7可知,整機控制器發(fā)送指令信號至整機控制器,通過整機控制器發(fā)送給定信號至各聯(lián)閥內(nèi)部的閥控制器,同時將主閥處的位移信號通過CAN總線發(fā)送給整機控制器,在這里使用隨機數(shù)模擬采集到的閥控制器的位移信號做實時數(shù)據(jù), 將閥控制器隨機生成的數(shù)據(jù)通過CAN總線網(wǎng)絡發(fā)送給整機控制器[24],以此對比順序緩沖區(qū)存取和環(huán)形緩沖區(qū)存取兩種數(shù)據(jù)處理方式的代碼效率和內(nèi)存效率,驗證所提方法的有效性。
依據(jù)本研究提出環(huán)形緩沖區(qū)的設計,完成了面向智能多路閥高速CAN通信數(shù)據(jù)環(huán)形緩存技術(shù)的程序開發(fā),并進行實驗驗證,實驗裝置如圖8所示,其中直流穩(wěn)壓電源提供+24 V直流電壓,采用CANTest完成對多路閥內(nèi)部的閥控制器進行數(shù)據(jù)收發(fā)測試及記錄,Keil uVision 5.14完成程序代碼效率及內(nèi)存效率數(shù)據(jù)的測試。分別將緩沖區(qū)內(nèi)存設置為40 Bytes(CAN總線一幀數(shù)據(jù)存入緩沖區(qū)所占用內(nèi)存為10 Bytes),分別驗證順序緩沖區(qū)和環(huán)形緩沖區(qū)存取數(shù)據(jù)的代碼效率和內(nèi)存效率。
1.上位機 2.直流穩(wěn)壓電源 3.某聯(lián)多路閥閥控制器1 4.某聯(lián)多路閥閥控制器2 5.USB&CAN分析儀 6.整機控制器圖8 實驗裝置實驗圖Fig.8 Experimental drawing of experimental device
本研究在整機控制器的程序設計中引入環(huán)形緩沖區(qū)的函數(shù)為ringbuff_write、ringbuff_read;使用順序緩沖區(qū)的讀寫函數(shù)為fifo_push、fifo_pop,編譯后代碼量如圖9、圖10所示。可見整機控制器程序內(nèi),環(huán)形緩沖區(qū)的使用較傳統(tǒng)隊列指令較少。
圖9 順序緩沖區(qū)編譯后代碼量Fig.9 Compiled code amount of sequential queue
圖10 環(huán)形隊列編譯后代碼量Fig.10 Compiled code amount of ring queue
整機控制器的程序中的主函數(shù)部分,對以上兩種緩沖區(qū)的讀取和接收進行測試,為使覆蓋率達100%,分別寫入緩沖區(qū)100次,讀出緩沖區(qū)100次,得到執(zhí)行程序所用時間和執(zhí)行效率如圖11~圖14所示。
圖11 順序緩沖區(qū)覆蓋率達100%程序所用時間Fig.11 Time taken for program with 100% sequential queue coverage
圖12 環(huán)形隊列覆蓋率達100%程序所用時間Fig.12 Time taken for program with 100% ring queue coverage
圖13 順序緩沖區(qū)覆蓋率達100%程序執(zhí)行效率Fig.13 Sequential queue coverage reaches 100% program execution efficiency
圖14 環(huán)形隊列覆蓋率達100%程序執(zhí)行效率Fig.14 Circular queue coverage reaches 100% program execution efficiency
對比實驗數(shù)據(jù)可知,分別采用整機控制器內(nèi)置緩沖區(qū)采用環(huán)形緩沖區(qū)、順序緩沖區(qū)進行對比,得出:每接收100個數(shù)據(jù),順序緩沖區(qū)所用時間為0.85 ms,環(huán)形緩沖區(qū)所用時間為0.45 ms,每發(fā)送100個數(shù)據(jù),順序緩沖區(qū)所用時間為0.79 ms,環(huán)形緩沖區(qū)所用時間為0.45 ms,每讀取、接收100個主閥位移數(shù)據(jù),順序緩沖區(qū)所用時間為1.64 ms,環(huán)形緩沖區(qū)所用時間為0.9 ms,使用環(huán)形緩沖區(qū)所用時間縮短了43.75%,可實現(xiàn)多路閥內(nèi)部閥控制器之間更高效率的數(shù)據(jù)傳遞。
根據(jù)對緩沖區(qū)讀寫指針的操作規(guī)定,整機控制器數(shù)據(jù)讀出的速度應小于主閥位移數(shù)據(jù)寫入的速度,設置分別數(shù)據(jù)輸出流與輸入流之差(Vout-Vin)分別為1200, 2400 Bytes/s時[25],整機控制器內(nèi)置緩沖區(qū)采用環(huán)形緩沖區(qū)、順序緩沖區(qū)的利用率與寫入緩沖區(qū)的數(shù)據(jù)關(guān)系如圖15所示。由圖15可知,橫坐標為緩沖區(qū)現(xiàn)有的數(shù)據(jù)量,縱坐標表示為緩沖區(qū)利用率,數(shù)據(jù)輸出流與輸入流之差不影響整機控制器內(nèi)置環(huán)形緩沖區(qū)的內(nèi)存效率,環(huán)形緩沖區(qū)的利用率最終均達到99.00%,而采用整機控制器內(nèi)置順序緩沖區(qū)的緩存效率根據(jù)數(shù)據(jù)輸出流與輸入流之差的不同會受到影響,數(shù)據(jù)輸出流與輸入流之差分別為2400 Bytes/s時,順序緩沖區(qū)最大利用率為57.14%,數(shù)據(jù)輸出流與輸入流之差分別為1200 Bytes/s時,緩沖區(qū)利用率最大為42.47%,在輸出流與輸入流之差在速率相同的情況下,且代碼未完全覆蓋環(huán)形緩沖區(qū),此時數(shù)據(jù)輸出流與輸入流之差為定值時,整機控制器內(nèi)置環(huán)形緩沖區(qū)利用率上升速率略大于順序緩沖區(qū)的方式。
圖15 隊列與順序緩沖區(qū)內(nèi)存效率測試圖Fig.15 Memory efficiency test chart of circular queue and sequential queue
本研究提出整機控制器內(nèi)置環(huán)形緩沖區(qū)的集中控制模式,整機控制器直接控制每聯(lián)多路閥并完成閉環(huán)控制,通過對該模式進行代碼效率及內(nèi)存效率的測試,試驗結(jié)果表明該模式具有以下特點:
(1) 在CAN總線數(shù)據(jù)傳輸過程中,在整機控制器程序內(nèi)部設置環(huán)形緩沖區(qū),環(huán)形緩沖區(qū)中存儲各閥控制器的實時數(shù)據(jù)及整機控制器的給定信號,每次接收并發(fā)送100個數(shù)據(jù)所用的時間比順序緩沖區(qū)節(jié)省了43.75%,有效減少多數(shù)據(jù)存取環(huán)節(jié)帶來接收存儲延時,從而減少了CAN總線進行數(shù)據(jù)傳輸時的延時時長。
(2) 通過對算法內(nèi)存效率進行測試,結(jié)果表明使用環(huán)形緩沖區(qū)的最大內(nèi)存利用率為99.00%,遠高于順序緩沖區(qū)的最大利用率。在代碼未完全覆蓋環(huán)形緩沖區(qū)且數(shù)據(jù)輸入流與輸出流之差為定值時,環(huán)形緩沖區(qū)利用率上升速率略大于順序緩沖區(qū)的方式。
為集中式高速數(shù)據(jù)處理接口提供通用方案,具有一定的應用價值和實際意義,可被廣泛應用于各種類型的高速數(shù)據(jù)傳輸?shù)南到y(tǒng)中。