[發(fā)明專利]串口數(shù)據(jù)讀寫方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)有效
| 申請(qǐng)?zhí)枺?/td> | 201810063577.5 | 申請(qǐng)日: | 2018-01-23 |
| 公開(公告)號(hào): | CN108470008B | 公開(公告)日: | 2020-08-14 |
| 發(fā)明(設(shè)計(jì))人: | 陳校;陳偉;李成鋼;周谷 | 申請(qǐng)(專利權(quán))人: | 廣州市中海達(dá)測(cè)繪儀器有限公司 |
| 主分類號(hào): | G06F13/16 | 分類號(hào): | G06F13/16;G06F13/42 |
| 代理公司: | 廣州華進(jìn)聯(lián)合專利商標(biāo)代理有限公司 44224 | 代理人: | 黃曉慶 |
| 地址: | 511400 廣東省廣州市番禺區(qū)東環(huán)*** | 國(guó)省代碼: | 廣東;44 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 串口 數(shù)據(jù) 讀寫 方法 裝置 計(jì)算機(jī) 設(shè)備 存儲(chǔ) 介質(zhì) | ||
本發(fā)明涉及一種串口數(shù)據(jù)讀寫方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì),包括:配置直接內(nèi)存訪問資源;遍歷直接內(nèi)存訪問節(jié)點(diǎn)名并與預(yù)設(shè)的節(jié)點(diǎn)名進(jìn)行對(duì)比;當(dāng)直接內(nèi)存訪問節(jié)點(diǎn)名與預(yù)設(shè)的節(jié)點(diǎn)名一致時(shí),解析直接內(nèi)存訪問資源并配置直接內(nèi)存訪問的傳輸模式;構(gòu)造雙環(huán)形緩沖區(qū)內(nèi)存;創(chuàng)建設(shè)備文件描述符并對(duì)設(shè)備文件描述符進(jìn)行監(jiān)聽;當(dāng)監(jiān)聽到動(dòng)態(tài)時(shí),在雙環(huán)形緩沖區(qū)進(jìn)行讀寫操作。通過直接內(nèi)存訪問傳輸模塊,實(shí)現(xiàn)數(shù)據(jù)的快速傳輸,通過構(gòu)造雙環(huán)形緩沖區(qū)來(lái)存儲(chǔ)、管理數(shù)據(jù),有效解決了數(shù)據(jù)緩沖存儲(chǔ)問題,通過epoll機(jī)制監(jiān)聽串口設(shè)備數(shù)據(jù),節(jié)省了系統(tǒng)資源開銷,提高了數(shù)據(jù)實(shí)時(shí)收發(fā)效率,從而進(jìn)一步解決了串口數(shù)據(jù)傳輸存在少量溢出、丟失、篡位問題。
技術(shù)領(lǐng)域
本發(fā)明涉及嵌入式系統(tǒng)技術(shù)領(lǐng)域,特別是涉及一種串口數(shù)據(jù)讀寫方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)。
背景技術(shù)
GNSS(全球?qū)Ш叫l(wèi)星系統(tǒng))定位模塊可以配置成1Hz、5Hz、10Hz的速率更新輸出GNSS原始數(shù)據(jù)到串口,用戶應(yīng)用在不斷讀取串口設(shè)備數(shù)據(jù)的同時(shí)還需要寫數(shù)據(jù)給串口,也就是說,串口與用戶應(yīng)用需雙方數(shù)據(jù)交互通信。
傳統(tǒng)技術(shù)方案是,在LINUX系統(tǒng)內(nèi)核層中,串口通信采用PIO模式(ProgrammingInput/Output Model),通過CPU響應(yīng)中斷,執(zhí)行IO端口指令進(jìn)行數(shù)據(jù)讀寫來(lái)實(shí)現(xiàn)數(shù)據(jù)通信,在用戶層的串口通信應(yīng)用中,采用Select機(jī)制監(jiān)聽串口數(shù)據(jù)。
硬件設(shè)備(如串口、網(wǎng)口)與用戶應(yīng)用兩者間有大量數(shù)據(jù)交互,這兩者既是數(shù)據(jù)生產(chǎn)者也是數(shù)據(jù)消費(fèi)者。針對(duì)這種生產(chǎn)者與消費(fèi)者模式,傳統(tǒng)技術(shù)缺乏一種很好的數(shù)據(jù)管理模式來(lái)有效實(shí)現(xiàn)數(shù)據(jù)交互,特別是在存儲(chǔ)空間的分配/釋放非常頻繁時(shí),采用隊(duì)列緩沖區(qū)會(huì)增加系統(tǒng)開銷;傳統(tǒng)的PIO模式數(shù)據(jù)傳輸采用中斷方式通知CPU執(zhí)行I/O端口指令來(lái)按照字節(jié)或更大的數(shù)據(jù)單位處理,CPU資源占用大,并且傳輸數(shù)據(jù)速度慢;Select監(jiān)聽機(jī)制雖可以監(jiān)聽多個(gè)設(shè)備文件描述符,但是每次調(diào)用select,都需要把設(shè)備文件描述符集合從用戶態(tài)拷貝到內(nèi)核態(tài),系統(tǒng)開銷大;每次調(diào)用select,都需要在內(nèi)核里遍歷傳遞進(jìn)來(lái)的所有文件描述符,增加系統(tǒng)開銷;Select監(jiān)聽機(jī)制支持的文件描述符數(shù)量小,并且數(shù)據(jù)從硬件到用戶應(yīng)用的整個(gè)過程缺乏一個(gè)行之有效的數(shù)據(jù)鏈路管理流程。因此隨著GNSS定位模塊向串口輸出數(shù)據(jù)的速率提高,串口在長(zhǎng)時(shí)間、高波特率、大數(shù)據(jù)量通信時(shí),會(huì)存在少量溢出、丟失、篡位。
發(fā)明內(nèi)容
基于此,有必要針對(duì)串口數(shù)據(jù)存在少量溢出、丟失、篡位問題,提供一種串口數(shù)據(jù)讀寫方法。
一種串口數(shù)據(jù)讀寫方法,包括:
配置設(shè)備樹中串口設(shè)備的直接內(nèi)存訪問資源;
遍歷所述直接內(nèi)存訪問資源中的直接內(nèi)存訪問節(jié)點(diǎn)名并與串口驅(qū)動(dòng)預(yù)設(shè)的直接內(nèi)存訪問節(jié)點(diǎn)名進(jìn)行對(duì)比;
當(dāng)設(shè)備樹中的直接內(nèi)存訪問節(jié)點(diǎn)名與所述串口驅(qū)動(dòng)預(yù)設(shè)的直接內(nèi)存訪問節(jié)點(diǎn)名一致時(shí),解析所述直接內(nèi)存訪問資源、申請(qǐng)直接內(nèi)存訪問通道資源并配置直接內(nèi)存訪問的傳輸模式;
構(gòu)造第一環(huán)形緩沖區(qū)內(nèi)存和第二環(huán)形緩沖區(qū)內(nèi)存;
創(chuàng)建設(shè)備文件描述符并對(duì)所述設(shè)備文件描述符進(jìn)行監(jiān)聽;
當(dāng)監(jiān)聽到所述設(shè)備文件描述符的動(dòng)態(tài)時(shí),在所述第一環(huán)形緩沖區(qū)內(nèi)存進(jìn)行讀操作,在所述第二環(huán)形緩沖區(qū)內(nèi)存進(jìn)行寫操作。
在一個(gè)實(shí)施例中,當(dāng)設(shè)備樹中的直接內(nèi)存訪問節(jié)點(diǎn)名與所述串口驅(qū)動(dòng)預(yù)設(shè)的直接內(nèi)存訪問節(jié)點(diǎn)名不一致時(shí),配置PIO傳輸模式。
在一個(gè)實(shí)施例中,所述配置設(shè)備樹中串口設(shè)備的直接內(nèi)存訪問資源的步驟,包括:
根據(jù)芯片數(shù)據(jù)表獲取直接內(nèi)存訪問控制器和直接內(nèi)存訪問發(fā)送/接收通道號(hào);
在系統(tǒng)設(shè)備樹文件中,添加串口設(shè)備對(duì)應(yīng)的所述直接內(nèi)存訪問控制器、所述直接內(nèi)存訪問發(fā)送/接收通道號(hào)和直接內(nèi)存訪問節(jié)點(diǎn)名。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于廣州市中海達(dá)測(cè)繪儀器有限公司,未經(jīng)廣州市中海達(dá)測(cè)繪儀器有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810063577.5/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 串口服務(wù)器
- 一種控制外圍串口設(shè)備的方法、系統(tǒng)及控制設(shè)備
- 串口測(cè)試方法、系統(tǒng)和裝置
- 串口設(shè)備的串口設(shè)定裝置及其方法
- 一種串口數(shù)據(jù)的處理方法、裝置及智能影音設(shè)備
- 一種串口號(hào)自定義重配方法和裝置
- 串口測(cè)試方法、裝置、通訊管理機(jī)和存儲(chǔ)介質(zhì)
- 一種串口級(jí)聯(lián)調(diào)控方法及串口設(shè)備
- 一種調(diào)試串口和數(shù)據(jù)串口復(fù)用的方法、裝置和控制器
- 一種串口通訊方法、裝置、終端設(shè)備及存儲(chǔ)介質(zhì)
- 數(shù)據(jù)顯示系統(tǒng)、數(shù)據(jù)中繼設(shè)備、數(shù)據(jù)中繼方法、數(shù)據(jù)系統(tǒng)、接收設(shè)備和數(shù)據(jù)讀取方法
- 數(shù)據(jù)記錄方法、數(shù)據(jù)記錄裝置、數(shù)據(jù)記錄媒體、數(shù)據(jù)重播方法和數(shù)據(jù)重播裝置
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)發(fā)送系統(tǒng)、數(shù)據(jù)發(fā)送裝置以及數(shù)據(jù)結(jié)構(gòu)
- 數(shù)據(jù)顯示系統(tǒng)、數(shù)據(jù)中繼設(shè)備、數(shù)據(jù)中繼方法及數(shù)據(jù)系統(tǒng)
- 數(shù)據(jù)嵌入裝置、數(shù)據(jù)嵌入方法、數(shù)據(jù)提取裝置及數(shù)據(jù)提取方法
- 數(shù)據(jù)管理裝置、數(shù)據(jù)編輯裝置、數(shù)據(jù)閱覽裝置、數(shù)據(jù)管理方法、數(shù)據(jù)編輯方法以及數(shù)據(jù)閱覽方法
- 數(shù)據(jù)發(fā)送和數(shù)據(jù)接收設(shè)備、數(shù)據(jù)發(fā)送和數(shù)據(jù)接收方法
- 數(shù)據(jù)發(fā)送裝置、數(shù)據(jù)接收裝置、數(shù)據(jù)收發(fā)系統(tǒng)、數(shù)據(jù)發(fā)送方法、數(shù)據(jù)接收方法和數(shù)據(jù)收發(fā)方法
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)再現(xiàn)方法、數(shù)據(jù)發(fā)送裝置及數(shù)據(jù)再現(xiàn)裝置
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)再現(xiàn)方法、數(shù)據(jù)發(fā)送裝置及數(shù)據(jù)再現(xiàn)裝置
- 一種數(shù)據(jù)庫(kù)讀寫分離的方法和裝置
- 一種手機(jī)動(dòng)漫人物及背景創(chuàng)作方法
- 一種通訊綜合測(cè)試終端的測(cè)試方法
- 一種服裝用人體測(cè)量基準(zhǔn)點(diǎn)的獲取方法
- 系統(tǒng)升級(jí)方法及裝置
- 用于虛擬和接口方法調(diào)用的裝置和方法
- 線程狀態(tài)監(jiān)控方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 一種JAVA智能卡及其虛擬機(jī)組件優(yōu)化方法
- 檢測(cè)程序中方法耗時(shí)的方法、裝置及存儲(chǔ)介質(zhì)
- 函數(shù)的執(zhí)行方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)





