多通道軟硬件并行串口通訊處理方法
【專利說明】多通道軟硬件并行串口通訊處理方法
[0001]
技術(shù)領(lǐng)域
[0002]本發(fā)明涉及航天器控制計算機串口通訊技術(shù),具體一種涉及多通道軟硬件并行串口通訊方法。
[0003]
【背景技術(shù)】
[0004]隨著航天領(lǐng)域任務(wù)復(fù)雜性的提高,越來越多不同用途的單機配備到航天器上??刂朴嬎銠C與眾多單機通過數(shù)據(jù)交互建立復(fù)雜的控制系統(tǒng),最通用的方式即為串口通訊。
[0005]一般的控制計算機串口通訊設(shè)計中,控制計算機作為主節(jié)點,啟動某一通道通訊后,進(jìn)入空循環(huán)等待,待所有數(shù)據(jù)全部接收完畢后,切換至下一通道。當(dāng)通道較多且收發(fā)字節(jié)較多時,一方面控制計算機嵌入式系統(tǒng)有限的硬件資源無法滿足多路獨立串口通道、獨立收、發(fā)緩存的需求;另一方面查詢等待方式的通信機制浪費較多的CPU處理時間,也無法滿足復(fù)雜控制系統(tǒng)處理周期時間資源的需求。
[0006]
【發(fā)明內(nèi)容】
[0007]本發(fā)明針對復(fù)雜航天器控制計算機串口通訊單機數(shù)量不斷增加,但嵌入式系統(tǒng)軟硬件資源有限的矛盾,提出了一種多通道軟硬件并行串口通訊處理方法,完成軟硬件資源統(tǒng)籌調(diào)度,采用“硬件通道復(fù)用+軟件串口通訊中斷”的處理方式,實現(xiàn)了多通道軟硬件并行串口通訊。
[0008]為達(dá)到上述目的,本發(fā)明提供一種多通道軟硬件并行串口通訊處理方法,該方法包括以下步驟:
步驟一、硬件多路串口通道復(fù)用、發(fā)送緩存復(fù)用、接收緩存獨立,通過軟件設(shè)置通道號實現(xiàn)道號切換,并設(shè)置相應(yīng)通道的發(fā)送數(shù)據(jù)長度、接收數(shù)據(jù)長度。根據(jù)當(dāng)前設(shè)定的串口通道號,將發(fā)送緩存與相應(yīng)的串口通道綁定,同一時刻只能與同一通道通訊。
[0009]步驟二、串口接收中斷與超時中斷復(fù)用,多路串口采用同一接收中斷、超時中斷,占用同一 CPU外部中斷資源。根據(jù)接收中斷與超時中斷優(yōu)先觸發(fā)的原則,若某一中斷觸發(fā),則不再產(chǎn)生另一中斷。
[0010]步驟三、軟硬件并行工作,實現(xiàn)多路串口通訊。串口通訊由軟件任務(wù)主流程、軟件中斷流程、硬件處理流程共同完成。軟件實現(xiàn)多通道切換和通訊任務(wù)管理,在軟件任務(wù)主流程同步運行的同時,硬件處理流程和軟件串口通訊中斷服務(wù)程序交替依次完成各通道串口通訊的軟、硬件任務(wù),直至本周期全部通道串口通訊任務(wù)完成。
[0011]進(jìn)一步,所述的步驟三,軟硬件并行工作,實現(xiàn)多路串口通訊,還包括如下步驟:
1)主任務(wù)流程讀取上周期各路串口獨立接收緩存的數(shù)據(jù),并啟動本周期第一路串口通訊,隨后繼續(xù)處理主任務(wù)中其他流程。
[0012]2)軟件中斷處理流程由串口接收、超時中斷觸發(fā),保存本路串口通訊狀態(tài)并啟動下一路通訊。
[0013]3)硬件處理流程中,首先根據(jù)軟件寫入的串口通道號及發(fā)送數(shù)據(jù)長度進(jìn)行數(shù)據(jù)發(fā)送流程處理;再根據(jù)軟件寫入的接收數(shù)據(jù)長度設(shè)置定時周期并啟動超時定時器;接收數(shù)據(jù)依次存入通道對應(yīng)的接收緩存,對接收的每個字節(jié)進(jìn)行奇偶校驗判斷;當(dāng)接收數(shù)據(jù)長度達(dá)到設(shè)定字節(jié)數(shù)或超時定時器達(dá)到定時周期時觸發(fā)串口接收、超時中斷,返回通訊正常、超時或奇偶校驗錯狀態(tài)標(biāo)志。
[0014]與現(xiàn)有技術(shù)相比,本發(fā)明的多通道軟硬件并行串口通信處理方法,通過軟硬件資源統(tǒng)籌調(diào)度,節(jié)約了計算機硬件資源,減少了多路串口通訊占用的CPU時間。
[0015]
【附圖說明】
[0016]通過閱讀參照以下附圖所作的對非限制性實施例所作的詳細(xì)描述,本發(fā)明的其它特征、目的和優(yōu)點將會變得更明顯:
附圖1為根據(jù)本發(fā)明實施例的多通道軟硬件并行串口通信處理流程示意圖;
附圖2為多通道軟硬件并行串口通信處理技術(shù)中的軟硬件資源占用示意圖。
[0017]
【具體實施方式】
[0018]參見示出本發(fā)明實施例的附圖,下文將更詳細(xì)地描述本發(fā)明。然而,本發(fā)明可以以許多不同形式實現(xiàn),并且不應(yīng)解釋為受在此提出之實施例的限制。相反,提出這些實施例是為了達(dá)成充分及完整公開,并且使本技術(shù)領(lǐng)域的技術(shù)人員完全了解本發(fā)明的范圍。這些附圖中,為清楚起見,可能放大了層及區(qū)域的尺寸及相對尺寸。
[0019]現(xiàn)參考附圖詳細(xì)描述根據(jù)本發(fā)明實施例的多通道軟硬件并行串口通訊處理方法。如圖1所示,根據(jù)本發(fā)明的多通道軟硬件并行串口通訊處理方法,該技術(shù)通過如下步驟具體實現(xiàn):
一、硬件多路串口通道復(fù)用、發(fā)送緩存復(fù)用、接收緩存獨立,通過軟件設(shè)置通道號實現(xiàn)通道切換,并設(shè)置相應(yīng)通道的發(fā)送數(shù)據(jù)長度、接收數(shù)據(jù)長度。
[0020]控制計算機硬件采用反熔絲型FPGA實現(xiàn)14路串口通道復(fù)用,14路共用64字節(jié)發(fā)送緩存,14路獨立各128字節(jié)接收緩存。軟件可設(shè)置通道號、發(fā)送字節(jié)、接收字節(jié)。
[0021]二、串口接收中斷與超時中斷復(fù)用,多路串口采用同一接收中斷、超時中斷,占用同一 CPU外部中斷資源。
[0022]硬件接收字節(jié)計數(shù)達(dá)到軟件設(shè)置的期望接收字節(jié)時產(chǎn)生接收中斷??紤]到根據(jù)通訊任務(wù)的不同接收字節(jié)數(shù)可變,超時定時器可由軟件根據(jù)接收字節(jié)數(shù)設(shè)定不同定時周期。當(dāng)超時定時器達(dá)到定時周期仍未接收完全部數(shù)據(jù)時產(chǎn)生超時中斷。接收中斷或超時中斷中任何一個產(chǎn)生時,觸發(fā)計算機外部中斷。
[0023]三、軟硬件并行工作,實現(xiàn)多路串口通訊,串口通信由軟件任務(wù)主流程、軟件任務(wù)中斷流程、硬件處理流程共同完成。通訊機制為“請求+應(yīng)答”方式,控制計算機作為主節(jié)點依次向不同單機發(fā)出請求,單機接收到請求后在規(guī)定的響應(yīng)時間內(nèi)向控制計算機返回應(yīng)答數(shù)據(jù)。
[0024]1、軟件任務(wù)主流程首先將上周期14路串口獨立接收緩存中的數(shù)據(jù)及通訊狀態(tài)字依次讀入內(nèi)存接收數(shù)據(jù)數(shù)組,根據(jù)通訊狀態(tài)字判斷數(shù)據(jù)有效后用于本周期控制解算;再根據(jù)本周期通訊任務(wù)更新14路串口發(fā)送數(shù)據(jù)數(shù)組、發(fā)送數(shù)據(jù)長度、接收數(shù)據(jù)長度;最后啟動本周期第一個通道的串口通信,將第一通道的發(fā)送數(shù)據(jù)長度、接收數(shù)據(jù)長度寫入硬件寄存器,將發(fā)送數(shù)組中內(nèi)容寫入硬件發(fā)送緩存并啟動硬件發(fā)送,啟動接收超時定時器。軟件任務(wù)主流程繼續(xù)進(jìn)行其他處理流程。
[0025]2、啟動硬件數(shù)據(jù)發(fā)送后,F(xiàn)PGA將發(fā)送緩存中的數(shù)據(jù)依字節(jié)順序通過串口發(fā)送給第一通道對應(yīng)的單機。單機接到請求數(shù)據(jù)幀后開始向計算機返回應(yīng)答數(shù)據(jù),計算機硬件逐字節(jié)將接收數(shù)據(jù)存入第一通道接收緩存,并對每字節(jié)進(jìn)行奇偶校驗判斷,若校驗錯則設(shè)置奇偶校驗錯誤狀態(tài)寄存器。若單機在等待周期內(nèi)完成全部數(shù)據(jù)應(yīng)答,則計算機硬件緩存接收字節(jié)計數(shù)達(dá)到軟件設(shè)置的期望字節(jié)數(shù),產(chǎn)生串口接收中斷;或者單機響應(yīng)超時,未在規(guī)定時間內(nèi)反饋全部數(shù)據(jù),則計算機硬件產(chǎn)生串口超時中斷。接收中斷與超時中斷根據(jù)優(yōu)先觸發(fā)的原則,若某一中斷產(chǎn)生則不再產(chǎn)生另一中斷,也不再置位另一中斷標(biāo)志。
[0026]3、硬件產(chǎn)生串口接收、超時中斷后,觸發(fā)軟件從任務(wù)主流程切入串口中斷處理流程。軟件中斷處理流程首先讀取硬件狀態(tài)寄存器,記錄第一通道本周期通訊狀態(tài)為正常、超時或奇偶校驗錯;同樣的方法依次啟動下一路串口通訊流程。軟件流程再返回任務(wù)主流程,同步硬件進(jìn)行數(shù)據(jù)發(fā)送、接收處理。
[0027]4、第2至14路串口通訊流程,重復(fù)上述步驟2、3,直至本周期所有串口通道通訊均已完成,則關(guān)閉超時定時器,退回任務(wù)主流程。本周期14路串口通訊任務(wù)全部完成。
[0028]本發(fā)明已在某航天器控制計算機中成功在軌應(yīng)用,滿足了復(fù)雜航天器多路串口通訊的要求,目前航天器在軌狀態(tài)良好,單機通訊狀態(tài)正常。
[0029]本發(fā)明雖然已以較佳實施例公開如上,但其并不是用來限定本發(fā)明,任何本領(lǐng)域技術(shù)人員在不脫離本發(fā)明的精神和范圍內(nèi),都可以利用上述揭示的方法和技術(shù)內(nèi)容對本發(fā)明技術(shù)方案做出可能的變動和修改,因此,凡是未脫離本發(fā)明技術(shù)方案的內(nèi)容,依據(jù)本發(fā)明的技術(shù)實質(zhì)對以上實施例所作的任何簡單修改、等同變化及修飾,均屬于本發(fā)明技術(shù)方案的保護(hù)范圍。
【主權(quán)項】
1.一種多通道軟硬件并行串口通訊處理方法,其特征在于,該方法步驟包括: .1)硬件多路串口通道復(fù)用、發(fā)送緩存復(fù)用、接收緩存獨立,通過軟件設(shè)置通道號實現(xiàn)通道切換,并設(shè)置相應(yīng)通道的發(fā)送數(shù)據(jù)長度、接收數(shù)據(jù)長度; .2)串口接收中斷與超時中斷復(fù)用,多路串口采用同一接收中斷、超時中斷,占用同一CPU外部中斷資源; .3)軟硬件并行工作,實現(xiàn)多路串口通訊,串口通信由軟件任務(wù)主流程、軟件中斷流程、硬件處理流程共同完成。2.如權(quán)利要求1所述的多通道軟硬件并行串口通訊處理方法,其特征在于,所述步驟.3)具體流程如下: .3 - 1)主任務(wù)流程讀取上周期各路串口獨立接收緩存的數(shù)據(jù),并啟動本周期第一路串口通訊,隨后繼續(xù)處理主任務(wù)中其他流程; .3 - 2)軟件中斷處理流程由串口接收、超時中斷觸發(fā),保存本路串口通訊狀態(tài)并啟動下一路通訊; .3 - 3)硬件處理流程中,首先根據(jù)軟件寫入的串口通道號及發(fā)送數(shù)據(jù)長度進(jìn)行數(shù)據(jù)發(fā)送流程處理;再根據(jù)軟件寫入的接收數(shù)據(jù)長度設(shè)置定時周期并啟動超時定時器;接收數(shù)據(jù)依次存入通道對應(yīng)的接收緩存,對接收的每個字節(jié)進(jìn)行奇偶校驗判斷;當(dāng)接收數(shù)據(jù)長度達(dá)到設(shè)定字節(jié)數(shù)或超時定時器達(dá)到定時周期時觸發(fā)串口接收、超時中斷,返回通訊正常、超時或奇偶校驗錯狀態(tài)標(biāo)志。
【專利摘要】本發(fā)明針對復(fù)雜航天器控制計算機串口通訊單機數(shù)量不斷增加,但嵌入式系統(tǒng)軟硬件資源有限的矛盾,提出了一種軟硬件資源統(tǒng)籌調(diào)用方法,步驟包括硬件多路串口通道復(fù)用、發(fā)送緩存復(fù)用、接收緩存獨立,通過軟件設(shè)置通道號實現(xiàn)通道切換,并設(shè)置相應(yīng)通道的發(fā)送數(shù)據(jù)長度、接收數(shù)據(jù)長度;串口接收中斷與超時中斷復(fù)用,多路串口采用同一接收中斷、超時中斷,占用同一CPU外部中斷資源;軟硬件并行工作,實現(xiàn)多路串口通訊,串口通信由軟件任務(wù)主流程、軟件中斷流程、硬件處理流程共同完成。該方法實現(xiàn)了多通道軟硬件并行串口通訊,節(jié)約了計算機硬件資源,減少了多路串口通訊占用的CPU時間,已在某型號控制計算機上成功在軌應(yīng)用。
【IPC分類】G06F13/38, G06F13/42
【公開號】CN105487992
【申請?zhí)枴緾N201410473686
【發(fā)明人】呂敏, 張國柱, 曹斌, 陳曉強
【申請人】上海新躍儀表廠
【公開日】2016年4月13日
【申請日】2014年9月17日