一種串口使用權控制裝置及控制方法
2023-05-14 17:45:31
專利名稱:一種串口使用權控制裝置及控制方法
技術領域:
本發明涉及一種串口使用權控制裝置及控制方法。
背景技術:
嵌入式軟體開發過程中,常碰到硬體串口較少(甚至只有1個),而串口外設較 多,需要分時復用的情況。現有的分時復用採用如下二種控制方式。第一種是採用電子開 關做硬體通道切換,例如CN200510030862,在程序中由中斷、查詢或者MMI觸發進入各應用 模塊,並在各應用模塊中直接調用驅動接口函數、通道切換函數、通訊參數設置函數等。由 於未建立有效的管理機制來降低各應用模塊間的耦合,因此這種簡單的調用機制使各應用 模塊間的耦合性很強,很容易導致其它正在使用的應用模塊中斷進程並無法自動恢復,只 能通過重載該應用模塊的初始化代碼來解決;另外,當前正在使用的應用模塊名稱、應用 模式、通訊參數等信息也很難在各個應用模塊中得到同步,優先級控制混亂,維護困難。第 二種是通過軟體控制串口數據在多個內核線程間進行切換,其復用機制並非建立在如何管 理硬體驅動模塊之上,所以未能解決如何管理各應用模塊的各種申請及使用條件,例如 CN200710108666。
發明內容
本發明提供一種串口使用權控制裝置及控制方法,其克服了背景技術的串口使用 權控制方法所存在的應用模塊間的耦合性強、程序混亂、維護困難的不足。本發明解決其技術問題所採用的技術方案之一是一種串口使用權控制裝置,它連接至少一個硬體串口和多個串口外設應用模塊, 該控制裝置,它包括一硬體驅動模塊,它連接所述的硬體串口 ;—應用模塊接口,它連接所述的多個串口外設應用模塊;及一管理機制模塊,它連接硬體驅動模塊和應用模塊接口 ;其中該管理機制模塊之內設置一參數設置表,該參數設置表具有一按應用模塊優先級 高低排列的優先級隊列,該管理機制模塊用於按參數設置表的優先級隊列對各應用模塊的 使用申請、退出申請和等候申請進行調度;該應用模塊接口應答管理機制模塊的調度。一較佳實施例中,該控制裝置,它還包括一設備初始化模塊,它連接管理機制模塊和硬體驅動模塊,用於初始化硬體驅動 模塊;一管理機制初始化模塊,它連接管理機制模塊,用於初始化管理機制模塊。一較佳實施例中,該管理機制模塊的調度包括發出切換通知和內建狀態機對使用 令牌進行適時傳遞,該使用令牌傳遞是指將申請的應用模塊的狀態設置為正在使用的應用模塊,並將原來正在使用的應用模塊設置為閒置的應用模塊,並同時發出狀態改變的信 號通知。一較佳實施例中,該應用模塊接口之內封裝有應用模塊驅動、外設通道切換、應用 模式切換及通訊參數切換,該應用模塊接口接收到切換通知後進行應用模塊驅動、外設通 道切換、應用模式切換和通訊參數切換。本發明解決其技術問題所採用的技術方案之一是一種串口使用權控制方法,它 連接至少一個硬體串口和多個串口外設應用模塊,該控制方法,它包括步驟1,申請應用模塊通過應用模塊接口向管理機制模塊發出使用申請、退出申請 和等候申請的指令;步驟2,管理機制模塊接收指令,並按應用模塊優先級高低排列對各應用模塊的使 用申請、退出申請和等候申請進行調度;及步驟3,應用模塊接口接收管理機制模塊的調度,並應答調度。一較佳實施例中,該步驟1,申請應用模塊通過應用模塊接口向管理機制模塊發出 使用申請指令;該步驟2,管理機制模塊接收使用申請指令,並按應用模塊優先級高低排列判斷申 請的應用模塊的優先級是否高於串口正在使用的應用模塊的優先級,如果是則讓正在使用 的應用模塊執行退出中斷回調函數,並發出切換通知,然後執行步驟3,否則表示申請失敗, 退出申請;該步驟3,該應用模塊接口接收到切換通知後進行應用模塊驅動、外設通道切換、 應用模式切換和通訊參數切換。一較佳實施例中,該控制方法,它還包括步驟4,該管理機制模塊的調度包括內建狀態機對使用令牌進行適時傳遞,該使用 令牌傳遞是指將申請的應用模塊的狀態設置為正在使用的應用模塊,並將原來正在使用 的應用模塊設置為閒置應用模塊,並同時發出狀態改變的信號通知;步驟5,正在使用的應用模塊與串口之間進行數據傳輸。—較佳實施例中,該步驟1,申請應用模塊通過應用模塊接口向管理機制模塊發出 等候申請指令;該步驟2,管理機制模塊接收等候申請指令,並判斷申請的應用模塊是否為正在使 用的應用模塊,如果是則表示申請失敗,退出申請,否則執行步驟3 ;該步驟3,將申請的應用模塊的狀態設置為等候狀態,並將等候的應用模塊列入等 候隊列。一較佳實施例中,該步驟1,申請應用模塊通過應用模塊接口向管理機制模塊發出 退出申請指令;該步驟2,管理機制模塊接收退出申請指令,並判斷申請的應用模塊是否為正在使 用的應用模塊,如果是則執行步驟21,否則表示申請失敗,退出申請;步驟21,管理機制模塊判斷等候隊列是否為空,如果是則執行步驟22,否則執行 步驟23 ;步驟22,將正在使用的應用模塊設置為空閒的應用模塊,然後執行步驟25 ;步驟23,管理機制模塊將等候隊列中優先級最高的應用模塊設置為正在使用的應用模塊,將原來的正在使用的應用模塊設置為空閒的應用模塊,然後發出切換通知;步驟24,該應用模塊接口接收到切換通知後進行應用模塊驅動、外設通道切換、應 用模式切換和通訊參數切換;步驟25,發出狀態改變通知;步驟26,申請成功。本技術方案與背景技術相比本申請人巧妙地在串口使用權控制方法中引入管理 機制,通過管理機制有序管理各個應用模塊之間的使用申請、等候申請、退出申請,以克服 背景技術中所存在的不足,並具有如下優點1、從有效降低應用模塊間的耦合性;2、簡化 開發與維護流程。
下面結合附圖和實施例對本發明進一步說明。圖1是本發明一較佳實施例的控制裝置的方框示意圖。圖2是本發明的一較佳實施例的控制方法的使用申請的流程圖。圖3是本發明的一較佳實施例的控制方法的等候申請的流程圖。圖4是本發明的一較佳實施例的控制方法的退出申請的流程圖。
具體實施例方式請查閱圖1,一種串口使用權控制裝置,它連接至少一個硬體串口和多個串口外設 應用模塊(每個應用模塊之內都設置有一中斷函數),該控制裝置,它包括一硬體驅動模 塊、一應用模塊接口、一管理機制模塊、一設備初始化模塊和一管理機制初始化模塊。該硬 件驅動模塊,它連接所述的硬體串口,例如,它提供IO控制接口、遠程IO擴展接口(包含 如:I2C擴展遠程IO等)、通道解碼等;該應用模塊接口,它連接所述的多個串口外設應用模塊;該管理機 制模塊,它連接硬體驅動模塊和應用模塊接口 ;該設備初始化模塊,它連接管理機制模塊和 硬體驅動模塊,用於初始化硬體驅動模塊,用於提供必要的設備初始化操作(比如需要使 用I2C擴展遠程IO時必須對I2C晶片的寄存器進行配置);該管理機制初始化模塊,它連 接管理機制模塊,用於初始化管理機制模塊。該管理機制模塊之內設置一參數設置表,該參數設置表具有一按應用模塊優先級 高低排列的優先級隊列,該管理機制模塊用於按參數設置表的優先級隊列對各應用模塊的 使用申請、退出申請和等候申請進行調度。該管理機制模塊的調度包括發出切換通知和內 建狀態機對使用令牌進行適時傳遞,該使用令牌傳遞是指將申請的應用模塊的狀態設置 為正在使用的應用模塊,並將原來正在使用的應用模塊設置為閒置的應用模塊,並同時發 出狀態改變的信號通知。該應用模塊接口應答管理機制模塊的調度。該應用模塊接口之內封裝有應用模塊 驅動、外設通道切換、應用模式切換及通訊參數切換。其中應用模塊驅動按照協議對硬 件設備進行控制並提供給應用模塊經過封裝的接口,比如當電子開關通過遠程IO擴展芯 片CAT9554來控制時,就需要實現CAT9554的I2C接口驅動等;外設通道切換通過對電子 開關的控制來實現串口線RXD、TXD、CTS、RTS、DTR、DSR等與各硬體模塊的連接關係;應用模式切換處理串口數據的分流模式,比如可能是通過參數設置將接收到的數據發送到不 同的進程,也可能是通過參數設置使串口數據發送到不同的緩衝池或者解析模塊,該應用 模塊接口接收到切換通知後進行應用模塊驅動、外設通道切換、應用模式切換和通訊參數 切換。請查閱圖2,一種串口使用權的使用申請的控制方法,它包括步驟1,申請應用模塊通過應用模塊接口向管理機制模塊發出使用申請指令;步驟2,管理機制模塊接收使用申請指令,並按應用模塊優先級高低排列判斷申請 的應用模塊的優先級是否高於串口正在使用的應用模塊的優先級,如果是則讓正在使用的 應用模塊執行退出中斷回調函數(調用應用模塊的中斷函數並執行),並發出切換通知,然 後執行步驟3,否則表示申請失敗,退出申請;步驟3,該應用模塊接口接收到切換通知後進行應用模塊驅動、外設通道切換、應 用模式切換和通訊參數切換。步驟4,該管理機制模塊的調度包括內建狀態機對使用令牌進行適時傳遞,該使用 令牌傳遞是指將申請的應用模塊的狀態設置為正在使用的應用模塊,並將原來正在使用 的應用模塊設置為閒置應用模塊,並同時發出狀態改變的信號通知;步驟5,正在使用的應用模塊與串口之間進行數據傳輸。請查閱圖3,一種串口使用權的等候申請的控制方法,它包括步驟1,申請應用模塊通過應用模塊接口向管理機制模塊發出等候申請指令;步驟2,管理機制模塊接收等候申請指令,並判斷申請的應用模塊是否為正在使用 的應用模塊,如果是則表示申請失敗,退出申請,否則執行步驟3 ;步驟3,將申請的應用模塊的狀態設置為等候狀態,並將等候的應用模塊列入等候 隊列。例如當前正在手寫狀態,此時系統需要列印,則列印模塊先提出申請,管理機制 模塊判斷列印模塊的優先級比手寫模塊的優先級要高,則會調用手寫模塊的中斷函數;在 此中斷函數中,可以通過設置標誌或者發送信號的方法來通知手寫模塊需要被中斷,待手 寫模塊處理完這些收尾工作後即進行切換根據列印模塊的硬體結構調用相應驅動接口並 做電子開關切換、通訊參數設定、應用模式設定等工作。請查閱圖4,一種串口使用權的退出申請的控制方法,它包括步驟1,申請應用模塊通過應用模塊接口向管理機制模塊發出退出申請指令;步驟2,管理機制模塊接收退出申請指令,並判斷申請的應用模塊是否為正在使用 的應用模塊,如果是則執行步驟21,否則表示申請失敗,退出申請;步驟21,管理機制模塊判斷等候隊列是否為空,如果是則執行步驟22,否則執行 步驟23 ;步驟22,將正在使用的應用模塊設置為空閒的應用模塊,然後執行步驟25 ;步驟23,管理機制模塊將等候隊列中優先級最高的應用模塊設置為正在使用的應 用模塊,將原來的正在使用的應用模塊設置為空閒的應用模塊,然後發出切換通知;步驟24,該應用模塊接口接收到切換通知後進行應用模塊驅動、外設通道切換、應 用模式切換和通訊參數切換;步驟25,發出狀態改變通知;
步驟26,申請成功。任何一個應用模塊都具備三種可能的狀態空閒狀態、等候狀態、正在使用狀態, 並且任意時刻僅對應唯一的一種狀態。正在使用狀態被中斷成功後進入空閒狀態;空閒狀 態可以申請進入等狀態;當正在使用的應用模塊主動退出後如果無新應用模塊發出申請, 則在等候隊列中優先級最高的模塊將被切換到正在使用狀態。以上所述,僅為本發明較佳實施例而已,故不能以此限定本發明實施的範圍,即依 本發明申請專利範圍及說明書內容所作的等效變化與修飾,皆應仍屬本發明專利涵蓋的範 圍內。
權利要求
一種串口使用權控制裝置,它連接至少一個硬體串口和多個串口外設應用模塊,其特徵是該控制裝置,它包括一硬體驅動模塊,它連接所述的硬體串口;一應用模塊接口,它連接所述的多個串口外設應用模塊;及一管理機制模塊,它連接硬體驅動模塊和應用模塊接口;其中該管理機制模塊之內設置一參數設置表,該參數設置表具有一按應用模塊優先級高低排列的優先級隊列,該管理機制模塊用於按參數設置表的優先級隊列對各應用模塊的使用申請、退出申請和等候申請進行調度;該應用模塊接口應答管理機制模塊的調度。
2.根據權利要求1所述的一種串口使用權控制裝置,其特徵在於該控制裝置,它還包括一設備初始化模塊,它連接管理機制模塊和硬體驅動模塊,用於初始化硬體驅動模塊;一管理機制初始化模塊,它連接管理機制模塊,用於初始化管理機制模塊。
3.根據權利要求1或2所述的一種串口使用權控制裝置,其特徵在於該管理機制模 塊的調度包括發出切換通知和內建狀態機對使用令牌進行適時傳遞,該使用令牌傳遞是 指將申請的應用模塊的狀態設置為正在使用的應用模塊,並將原來正在使用的應用模塊 設置為閒置的應用模塊,並同時發出狀態改變的信號通知。
4.根據權利要求3所述的一種串口使用權控制裝置,其特徵在於該應用模塊接口之 內封裝有應用模塊驅動、外設通道切換、應用模式切換及通訊參數切換,該應用模塊接口接 收到切換通知後進行應用模塊驅動、外設通道切換、應用模式切換和通訊參數切換。
5. 一種串口使用權控制方法,它連接至少一個硬體串口和多個串口外設應用模塊,其 特徵是該控制方法,它包括步驟1,申請應用模塊通過應用模塊接口向管理機制模塊發出使用申請、退出申請和等 候申請的指令;步驟2,管理機制模塊接收指令,並按應用模塊優先級高低排列對各應用模塊的使用申 請、退出申請和等候申請進行調度;及步驟3,應用模塊接口接收管理機制模塊的調度,並應答調度。
6.根據權利要求5所述的一種串口使用權控制方法,其特徵在於該步驟1,申請應用模塊通過應用模塊接口向管理機制模塊發出使用申請指令; 該步驟2,管理機制模塊接收使用申請指令,並按應用模塊優先級高低排列判斷申請的 應用模塊的優先級是否高於串口正在使用的應用模塊的優先級,如果是則讓正在使用的應 用模塊執行退出中斷回調函數,並發出切換通知,然後執行步驟3,否則表示申請失敗,退出 申請;該步驟3,該應用模塊接口接收到切換通知後進行應用模塊驅動、外設通道切換、應用 模式切換和通訊參數切換。
7.根據權利要求6所述的一種串口使用權控制方法,其特徵在於該控制方法,它還包括步驟4,該管理機制模塊的調度包括內建狀態機對使用令牌進行適時傳遞,該使用令牌 傳遞是指將申請的應用模塊的狀態設置為正在使用的應用模塊,並將原來正在使用的應 用模塊設置為閒置應用模塊,並同時發出狀態改變的信號通知; 步驟5,正在使用的應用模塊與串口之間進行數據傳輸。
8.根據權利要求5所述的一種串口使用權控制方法,其特徵在於該步驟1,申請應用模塊通過應用模塊接口向管理機制模塊發出等候申請指令; 該步驟2,管理機制模塊接收等候申請指令,並判斷申請的應用模塊是否為正在使用的 應用模塊,如果是則表示申請失敗,退出申請,否則執行步驟3 ;該步驟3,將申請的應用模塊的狀態設置為等候狀態,並將等候的應用模塊列入等候隊列。
9.根據權利要求5所述的一種串口使用權控制方法,其特徵在於該步驟1,申請應用模塊通過應用模塊接口向管理機制模塊發出退出申請指令; 該步驟2,管理機制模塊接收退出申請指令,並判斷申請的應用模塊是否為正在使用的 應用模塊,如果是則執行步驟21,否則表示申請失敗,退出申請;步驟21,管理機制模塊判斷等候隊列是否為空,如果是則執行步驟22,否則執行步驟`23 ;步驟22,將正在使用的應用模塊設置為空閒的應用模塊,然後執行步驟25 ; 步驟23,管理機制模塊將等候隊列中優先級最高的應用模塊設置為正在使用的應用模 塊,將原來的正在使用的應用模塊設置為空閒的應用模塊,然後發出切換通知;步驟24,該應用模塊接口接收到切換通知後進行應用模塊驅動、外設通道切換、應用模 式切換和通訊參數切換;步驟25,發出狀態改變通知; 步驟26,申請成功。全文摘要
本發明公開了一種串口使用權控制裝置及控制方法。該控制裝置包括一硬體驅動模塊、一應用模塊接口及一管理機制模塊。該硬體驅動模塊連接所述的硬體串口。該應用模塊接口連接所述的多個串口外設應用模塊。該管理機制模塊連接硬體驅動模塊和應用模塊接口。該管理機制模塊之內設置一參數設置表,該參數設置表具有一按應用模塊優先級高低排列的優先級隊列,該管理機制模塊用於按優先級隊列對各應用模塊的使用申請、退出申請和等候申請進行調度。該應用模塊接口應答管理機制模塊的調度。發明人巧妙地在串口使用權控制方法中引入管理機制,通過管理機制有序管理各個應用模塊之間的使用申請、等候申請、退出申請,以克服背景技術中所存在的不足。
文檔編號G06F13/10GK101908025SQ200910112009
公開日2010年12月8日 申請日期2009年6月5日 優先權日2009年6月5日
發明者洪添長 申請人:廈門敏訊信息技術股份有限公司