本發明專利技術提供的UART多接口復用方法,在同等系統主頻和硬件資源條件下提高通信波特率、提升通信準確率,實現真正全雙工通信,并可復用多個UART通信接口,滿足各種不同通信波特率的要求,解決UART通信接口不足問題,降低產品成本,提高產品競爭力。
【技術實現步驟摘要】
【專利摘要】本專利技術提供的UART多接口復用方法,在同等系統主頻和硬件資源條件下提高通信波特率、提升通信準確率,實現真正全雙工通信,并可復用多個UART通信接口,滿足各種不同通信波特率的要求,解決UART通信接口不足問題,降低產品成本,提高產品競爭力。【專利說明】-種UART多接口復用方法
本專利技術涉及接口復用領域,尤其涉及一種UART多接口復用方法。
技術介紹
隨著電子技術的飛速發展,接口技術顯得越來越重要,多串口動態復用和單并口 /多串口全雙工通信技術在計算機接口、微處理器接口等領域的應用也越來越廣泛。其中, 以單片機為核心的測控系統與上位機計算機之間的數據交換通常采用的就是串行通信方 式。 隨著嵌入式技術的發展和嵌入式設備的多樣化,由嵌入式設備構成的多機系統取 得了長足的發展,多個嵌入式設備之間以串行接口 UART進行數據傳輸,構成復雜的主從式 通信網。通用異步收發接口 UART(Universal Asynchronous Receiver/Transmitter)誕 生于1970年代,目前廣泛的應用于計算機,通信,工業控制,家用電器,消費電子等各個領 域。UART是第一個大規模集成電路,在單片微處理器出現前幾年就已經產生了 UART,目前 的UART與30年前相比,結構基本相似。 作為一種通用串行數據總線,UART主要用于異步通信。該總線雙向通信,可以實 現全雙工傳輸和接收。在嵌入式設計中,UART用來與PC進行通信,包括與監控調試器和其 它器件,如EEPR0M通信。 UART具有操作簡單,工作可靠,抗干擾強,傳輸距離遠(組成485網絡可以傳輸 1200米以上),設計人員普遍認為UART是從中央處理器CPU或微控制器向系統的其他部分 傳輸數據的最佳方式,因此它們被大量地應用在工業、通信、嵌入式和家電領域。由于UART 易于使用,并可簡化芯片設計,單獨UART的需求一直很旺盛。 截止目前,全球范圍內有超過40種UART器件可以選擇,但因為多個UART同時工 作涉及到比較復雜的內部時序和協同工作處理,所以目前的UART直到今天其通用性、管 腳、寄存器仍很少改變,能夠真正實現全功能的UART復用的屈指可數。大多數UART器件是 以計算機總線轉換UART為應用基礎的,普遍存在操作復雜,引腳多,成本高等弱點。 在嵌入式應用中,微處理機控制器MCU和外設通信基本都采用串口,而大多數微 處理機控制器MCU只帶一個串口,傳統的串口復用1C 一般需要占用大量的MCU的10,不適 合應用于嵌入式系統中。 在實際應用中,經常遇到一個主機設備需要同時連接各種不同的從機設備,而主 機設備與從機設備之間的通信方式經常采用UART通信接口,UART通信接口只能一對一通 信,不能多個通信接口并接在一起通信,以往的實現方式:1.在設計開發主機設備時選擇 具有多路UART通信接口的微處理器,而實際上具有多路UART通信接口的微處理器的型 號比較少,帶來器件選型上的限制,而且比較昂貴,增加產品成本;2.采用串口復用芯片實 現,如ST16C550、ST16C554、SP2538、MAX3110等,雖然成本較高,但系統的可靠性得到了保 證,適用于數據量較大、串口需求較多的系統;3.采用分時切換的方法將一個串口復用與 多個串口設備通信,分時復用的方法成本低,但只適用于數據量不大的場合,并且只能由 這個單片機主動和多個設備通信,實時性差;4.用軟件模擬的方法復用串口,其優勢是成 本低、實時性好,但需要占用一些CPU時間。 因此,需要針對上述問題提出一種可以有效復用UART接口的方法。
技術實現思路
本專利技術的目的是通過以下技術方案實現的。 本專利技術提供一種UART多接口復用方法,包括數據接收部分和數據發送部分,其中 數據接收部分包括以下步驟: 步驟1-1、配置UART芯片的一個輸入輸出管腳為接收管腳RXD,將接收管腳RXD配 置為低電位中止模式并打開輸入輸出中止啟動; 步驟1-2、實時監測接收管腳RXD接收數據,當接收到數據時,首先檢測該數據的 起始位,如果起始位為高電位則繼續實時監測,如果起始位為低電位,則觸發接收管腳RXD 發生輸入輸出低電位中止,執行步驟1-3 ; 步驟1-3、配置接收管腳RXD為通用輸入輸出輸入模式并關閉輸入輸出中止啟動, 啟動計時器,啟動字節數據接收,其中所述計時器的計時時間間隔設置為多個UART通信接 口中最高波特率的位時長的1/η (η > 2),計時器的計時時間到時觸發計時器中止,執行步 驟 1-4 ; 步驟1-4、根據計時器計時中止接收數據,每次中止根據計算延時計數器到期接收 一個位,經過若干個計時中止完成1個字節數據的接收,并判斷接收到的字節的有效性,如 果接收到的字節無效則返回步驟1-1,如果接收到的字節有效則觸發虛擬程序中止,返回步 驟1-1,退出計時器中止后進入虛擬程序中止,在虛擬程序中止中存儲接收的字節數據,執 行步驟1-5 ; 步驟1-5、將接收到的有效字節數據存儲到接收FIFO緩存隊列中; 數據發送部分包括以下步驟: 步驟2-1、配置UART芯片另一輸入輸出管腳為發送管腳TXD,將發送管腳TXD配置 為通用輸入輸出輸出模式; 步驟2-2、準備發送數據,將待發送的數據存儲到發送FIFO緩存隊列中,觸發虛擬 程序中止,執行步驟2-3; 步驟2-3、獲取發送FIFO緩存隊列中字節數據,啟動字節數據發送,并按照計時器 的計時時間來觸發計時器中止,執行步驟2-4 ; 步驟2-4、根據計時器計時中止發送數據,每次中止根據計算延時計數器到期發送 一個位,經過若干個計時中止完成1個字節數據的發送;如果字節數據發送完畢,觸發虛擬 程序中止,進入虛擬程序中止處理步驟。 根據本專利技術的實施方式,所述步驟1-3包括: 配置芯片接收管腳RXD,將接收管腳RXD配置為通用輸入輸出輸入模式并關閉輸 入輸出中止啟動; 計算并設置計時器參數,所述計時器的計時時間間隔設置為多個UART通信接口 中最高波特率的位時長的1/η,η > 2,通過計時器中止頻率/UART通信接口的波特率計算 獲得一個位需要計時中止的次數; 設置接收位數等于起始位數,啟動起始位接收; 啟動計時器開始計時。 根據本專利技術的實施方式,所述步驟1-3還包括:數據采樣,所述數據采樣延時半個 位時間后在計時中止處理步驟中再次采集起始位是否為低電位。 根據本專利技術的實施方式,所述步驟1-4包括:判斷處于接收狀態還是發送狀態,根 據判斷結果選擇進入數據接收流程或數據發送流程,并判斷數據收發是否結束,如果在設 定的一段時間內沒有數據收發,則停止計時器;所述輸入輸出低電位中止處理步驟中的啟 動計時器的步驟還包括以下過程:判斷計時器是否已啟動,如果未啟動則啟動計時器。 根據本專利技術的實施方式,在設定的一段時間內沒有數據收發則停止計時器,所述 設定的一段時間是根據通信數據量和頻繁度來設定。 根據本專利技術的實施方式,所述步驟1-5包括:判斷處于接收狀態還是發送狀態, 根據判斷結果選擇進入數據接收的虛擬程序中止處理和數據發送本文檔來自技高網...
【技術保護點】
一種UART多接口復用方法,包括數據接收部分和數據發送部分,其中數據接收部分包括以下步驟:?步驟1?1、配置UART芯片的一個輸入輸出管腳為接收管腳RXD,將接收管腳RXD配置為低電位中止模式并打開輸入輸出中止啟動;?步驟1?2、實時監測接收管腳RXD接收數據,當接收到數據時,首先檢測該數據的起始位,如果起始位為高電位則繼續實時監測,如果起始位為低電位,則觸發接收管腳RXD發生輸入輸出低電位中止,執行步驟1?3;?步驟1?3、配置接收管腳RXD為通用輸入輸出輸入模式并關閉輸入輸出中止啟動,啟動計時器,啟動字節數據接收,其中所述計時器的計時時間間隔設置為多個UART通信接口中最高波特率的位時長的1/n,n≥2,計時器的計時時間到時觸發計時器中止,執行步驟1?4;?步驟1?4、根據計時器計時中止接收數據,每次中止根據計算延時計數器到期接收一個位,經過若干個計時中止完成1個字節數據的接收,并判斷接收到的字節的有效性,如果接收到的字節無效則返回步驟1?1,如果接收到的字節有效則觸發虛擬程序中止,返回步驟1?1,退出計時器中止后進入虛擬程序中止,在虛擬程序中止中存儲接收的字節數據,執行步驟1?5;?步驟1?5、將接收到的有效字節數據存儲到接收FIFO緩存隊列中;?數據發送部分包括以下步驟:?步驟2?1、配置UART芯片另一輸入輸出管腳為發送管腳TXD,將發送管腳TXD配置為通用輸入輸出輸出模式;?步驟2?2、準備發送數據,將待發送的數據存儲到發送FIFO緩存隊列中,觸發虛擬程序中止,執行步驟2?3;?步驟2?3、獲取發送FIFO緩存隊列中字節數據,啟動字節數據發送,并按?照計時器的計時時間來觸發計時器中止,執行步驟2?4;?步驟2?4、根據計時器計時中止發送數據,每次中止根據計算延時計數器到期發送一個位,經過若干個計時中止完成1個字節數據的發送;如果字節數據發送完畢,觸發虛擬程序中止,進入虛擬程序中止處理。...
【技術特征摘要】
【專利技術屬性】
技術研發人員:郭陽斌,經鋒,郭陽勇,李曉龍,劉小平,
申請(專利權)人:成都聯星微電子有限公司,
類型:發明
國別省市:四川;51
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。