[發明專利]一種嵌入式操作系統下串口設備高速率數據傳輸方法有效
| 申請號: | 202011095529.8 | 申請日: | 2020-10-14 |
| 公開(公告)號: | CN112231265B | 公開(公告)日: | 2022-09-13 |
| 發明(設計)人: | 唐亮 | 申請(專利權)人: | 天津津航計算技術研究所 |
| 主分類號: | G06F13/42 | 分類號: | G06F13/42;G06F8/41;H04L49/90 |
| 代理公司: | 中國兵器工業集團公司專利中心 11011 | 代理人: | 辛海明 |
| 地址: | 300308 天津*** | 國省代碼: | 天津;12 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 嵌入式 操作系統 串口 設備 速率 數據傳輸 方法 | ||
本發明涉及一種嵌入式操作系統下串口設備高速率數據傳輸方法,屬于嵌入式軟件開發領域。本發明增加讀寫串口芯片寄存器的函數;在串口打開函數中添加自定義接收緩存;采用添加專用緩存和一次性讀空的方式,重新編寫串口中斷服務函數和接收函數;將重新編寫的中斷服務函數和接收函數注冊到設備驅動列表中,或者,將重新編寫的中斷服務函數和接收函數作為回調函數添加到串口初始化列表中;重新編譯驅動。本發明基于標準的SIO接口驅動模型,完善其處理方式,增強了嵌入式操作系統下高速率串口數據傳輸的可靠性,采用該方法更改過的串口芯片驅動程序能夠保證在高速率數據傳輸時不發生數據丟失問題,該方法容易實現、效果明顯、穩定可靠。
技術領域
本發明屬于嵌入式軟件開發領域,具體涉及一種嵌入式操作系統下串口設備高速率數據傳輸方法。
背景技術
串口通信方式以其簡單、便捷、成本低等特點,在嵌入式電子領域仍然有著廣泛應用,比如環境監控、數據采集、工業控制、金融中斷、觸摸屏等工業領域。隨著處理器的快速發展,設備智能化和網絡化時代的到來,對串口通信的速率也要求越來越高,2Mbps的串口波特率慢慢成為一種趨勢。目前嵌入式操作系統中提供的通用SIO設備驅動支持了市場上大部分的串口芯片,但實踐中發現,當串口速率超過1.5Mbps時,偶爾會有丟包現象。
為了解決這一問題,從通用串口驅動入手,通過研究驅動的實現機制,找出一種更高效率的數據處理機制,減少中斷資源的消耗,提出實現串口高速率數據傳輸的一種方法。
發明內容
(一)要解決的技術問題
本發明要解決的技術問題是如何提供一種嵌入式操作系統下串口設備高速率數據傳輸方法,以解決通用SIO串口驅動高速率傳輸數據發生丟包的問題。
(二)技術方案
為了解決上述技術問題,本發明提出一種嵌入式操作系統下串口設備高速率數據傳輸方法,該方法包括如下步驟:
S1、增加讀寫串口芯片寄存器的函數;
S2、在串口打開函數中添加自定義接收緩存;
S3、采用添加專用緩存和一次性讀空的方式,重新編寫串口中斷服務函數和接收函數;
S4、將重新編寫的中斷服務函數和接收函數注冊到設備驅動列表中;
S5、重新編譯驅動,新的串口系統生效。
進一步地,所述步驟S1具體包括如下步驟:
S11、編寫讀寄存器函數REG_GET,用于獲取芯片寄存器數值;
S12、編寫讀寄存器函數REG_SET,用于向芯片寄存器寫入數值。
進一步地,所述步驟S2具體包括:找到串口打開函數,在創建設備描述符時,自定義一個N字節的接收緩存,用于從芯片FIFO中讀取串口數據,并注冊到設備資源列表中。
進一步地,N大于等于32M。
進一步地,所述步驟S3具體包括如下步驟:
S31、定義中斷服務函數;
S32、定義接收函數;
S33、在中斷服務函數中,判斷中斷類型,如果是接收中斷則調用接收函數,然后清中斷;
S34、在接收函數中,通過讀寄存器函數獲取接收緩存中的數據個數;
S35、根據數據個數控制for循環次數,每一次讀取一個字節數據到步驟S2創建的接收緩存中。
進一步地,所述步驟S4具體包括如下步驟:
S41、找到設備驅動函數列表數據結構;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于天津津航計算技術研究所,未經天津津航計算技術研究所許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011095529.8/2.html,轉載請聲明來源鉆瓜專利網。





