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