新四季網

一種在linux環境下實現串行通信接口的裝置及方法

2024-02-16 16:10:15 1

專利名稱:一種在linux環境下實現串行通信接口的裝置及方法
技術領域:
本發明屬於計算機領域,尤其涉及一種在Iinux環境下實現串行通信接口的裝置及方法。
背景技術:
串行通信接口簡稱串口,是計算機上最常用的一種接口,具有成本低廉,使用簡單,只需要一對傳輸線就可以實現雙向通信等優點。由於這些優點,有很多設備使用串口與計算機進行通信,包括藍牙設備,GPS設備,GPRS設備等等。目前,由於通用串行總線的易用性與支持熱插拔和即插即用等優點,這些設備逐漸地使用通用串行總線虛擬出串口與計算機進行通信。目前各個Iinux發行版中一般自帶使用異步傳輸協議與串口的軟體,比如支持xmodem協議的minicom,等。但是這些軟體僅僅具有簡單的輸入輸出功能,不能滿足設備開發時的調試與使用需求。

發明內容
鑑於現有技術的缺陷,本發明提供一種在Iinux環境下實現串行通信接口的裝置,該裝置基於glib庫,並使用d-bus作為進程間通信軟體,包括串口設備模塊,通過串口與微處理器進行通信;glib模塊,使用glib庫設置串口緩衝與讀取機制;d-bus API模塊,使用d-bus API實現glib模塊與上層應用模塊之間的通信;上層應用模塊,使用各種支持d-bus技術的語言編寫相應的應用代碼以實現所需要的串口功能。進一步,根據本發明的裝置,在作業系統的用戶層通過read函數獲得串口設備描述符,設置串口參數,與串口建立通信關係,並保存相關參數。進一步,本發明裝置中所述glib模塊進一步包括,第一模塊,用於使用glib庫的GkeyFile技術將串口參數保存成可讀寫配置文件;以及第二模塊,用於使用glib庫的GIO技術對串口設備進行緩存,並實現串口設備和本裝置之間的數據交互。進一步,本發明裝置中所述d-bus API模塊,進一步用於在glib模塊和上層應用模塊之間,使用glib-d-bus技術,以d-bus API實現各功能模塊;所述各功能模塊包括串口參數保存模塊、GPS協議解析功能模塊、用戶自定義協議棧測試模塊、藍牙測試功能模塊、文件傳輸功能模塊、定時發送與接收功能模塊、輸入輸出同步、異步顯示模塊、Modem功能模塊。進一步,本發明裝置中所述上層應用模塊,進一步用於針對所述各功能模塊的d-bus API,使用各種圖形框架實現相應功能模塊的圖形界面和python腳本。此外,本發明還提供了一種在I inux環境下實現串行通信接口的方法,該方法基於glib庫並使用d-bus作為進程間通信軟體,該方法包括步驟(I)在作業系統的用戶層通過read函數獲得串口設備描述符,設置串口參數,與串口建立通信關係,並保存相關參數;步驟(2)用於使用glib庫的GkeyFile技術將串口參數保存成可讀寫配置文件;步驟
(3)用於使用glib庫的GIO技術對串口設備進行緩存,並實現串口設備和本裝置之間的數據交互;步驟(4)用於在glib模塊和上層應用模塊之間,使用glib-d-bus技術,以d_busAPI實現各功能模塊;步驟(5)用於針對所述各功能模塊的d-bus API,使用各種圖形框架實現相應功能模塊的圖形界面和python腳本。進一步,本發明所述方法中的步驟(4)中所述各功能模塊包括串口參數保存模塊、GPS協議解析功能模塊、用戶自定義協議棧測試模塊、藍牙測試功能模塊、文件傳輸功能模塊、定時發送與接收功能模塊、輸入輸出同步、異步顯示模塊、Modem功能模塊。本發明通過glib實現對通用串行總線虛擬的串口、實際串口、其他虛擬串口實 現可移植的調試軟體核心邏輯、建立在核心邏輯上的D-Bus API以及通過D-Bus的各種banding技術在各個banding下面實現的調試或者應用。由於所有功能模塊都使用d_busAPI實現,所以通過支持d-bus的語言,本發明設計的串口模塊使得用戶可以實現自己需要的用戶界面Π與相應的功能,便於設備開發時的調試與使用。


圖I是根據本發明的實現串行通信接口的裝置的結構示意圖;圖2是根據本發明的裝置實現所需的各功能的示意圖;圖3是本發明所述方法的流程圖;圖4是本發明方法實現的串行通信接口的結構示意圖。
具體實施例方式為了更詳細說明本發明的實施或者表示本發明的技術細節,下面對本發明中所使用的技術進行詳細說明。Glib庫是GTK+和GNOME工程的基礎底層核心程序庫,是一個綜合用途的實用的輕量級的C程序庫,它提供C語言的常用的數據結構的定義、相關的處理函數,有趣而實用的宏,可移植的封裝和一些運行時機能,如事件循環、線程、動態調用、對象系統等的API (應用程式編程接口)。它能夠在類UNIX的作業系統平臺(如LINUX,HP-UNIX等),WINDOWS,0S2和BeOS等作業系統上運行。D-Bus是freedesktop下開源的Linux IPC通信機制,使用GPL許可證發行。本身Linux的IPC通信機制包括,管道(fifo),共享內存,信號量,消息隊列,Socket等。D-Bus最主要的用途是在Linux桌面環境為進程提供通信,同時能將Linux桌面環境和Linux內核事件作為消息傳遞到進程。D-Bus是一個消息總線系統,其功能已涵蓋進程間通信的所有需求,並具備一些特殊的用途。D-Bus是3層架構的進程間通信系統,包括I、接口層。接口層由函數庫Iibdbus提供,進程可通過該庫使用D-Bus的能力。函數庫Iibdbus用於兩個應用程式呼叫聯繫和交互消息。2、總線層。總線層由D-Bus總線守護進程(Message bus daemon)提供,總線守護進程可同時與多個應用程式相連,並能把來自一個應用程式的消息路由到O或者多個其他程序。3、包裝層。包括一系列基於特定應用程式框架的Wrapper庫,比如libdbus-glib, libdbus-python。目前支持d-bus的圖形界面框架包括,QT, java, GTK+等等。本發明目的是實現一種在Iinux環境下實現串行通信接口的方法,其使用glib技術完成串口通信邏輯,以d-bus作為進程間通信基礎,實現基於d-bus的API。本發明通過glib實現對通用串行總線虛擬的串口、實際串口、其他虛擬串口實現可移植的調試軟體核心邏輯、建立在核心邏輯上的D-Bus API以及通過D-Bus的各種banding技術在各個banding下面實現的調試或者應用。圖I是根據本發明的實現串行通信接口的裝置的結構示意圖。
該圖示意一種從下向上,從底層到上層的串口調試工具層次結構圖。在底層,串口設備通過串口與微處理器進行通信。在中間層,使用glib庫設置串口緩衝與讀取機制。而在上層應用層和中間層之間,使用先進的d-bus技術作為通信的橋梁。最後在上層應用層,可以使用各種支持d-bus技術的語言編寫相應的應用代碼以實現所需要的功能。圖2是根據本發明的裝置實現所需的各功能的示意圖。以下從串口參數保存模塊開始,按順時針的順序對圖2所示各模塊進行說明。I、串口參數保存模塊一般的,普通軟體只能保存串口的波特率,校驗位等簡單參數。本發明先獲得串行通信設備ID,並將串口參數和設備ID通過glib的GkeyFile結構體,以配置文件的方式存放到指定文件夾下,默認配置文件名為serial-[設備ID名]。這樣下次啟動時,可以根據不同的設備ID號讀取不同的串口參數對串口進行自動初始化。本發明的串口參數設置,串口緩衝區設置以及參數保存函數都實現了 d-bus API。2、GPS協議解析功能模塊通用的GPS串行通信設備一般支持NMEA協議,本發明為了方便產品設計與開發,將NMEA協議解析功能作為一個模塊集成到本發明中。通過分析NMEA協議,通過本發明可以得到當前GPS可查找的衛星數目,地理位置信息,日曆等參數。作為一個選項,本發明將這些參數以d-bus API的形式實現。通過調用不同的API,可以獲取相應的參數。3、用戶自定義協議棧測試模塊目前,相當一部分的串行通信設備是由客戶自己開發的,客戶為與這些設備進行通信,需定義自己的通信協議。為滿足這樣的需求,本發明定義了一套d-bus API來定義協議棧,本發明的軟體可以通過得到的協議與串行通信設備進行通信。4、藍牙測試功能模塊目前,大部分的藍牙設備也使用串行總線進行通信,並且使用Bluez軟體作為藍牙協議棧。本發明為了方便用戶進行藍牙測試,實現了藍牙配對,音樂播放,文件傳輸等常用藍牙功能,其中以d-bus API實現這些功能。5、文件傳輸功能模塊部分串行通信設備是作為數據傳輸用的,所以本發明通過glib的Garray結構實現了一個d_bus API來支持文件的傳輸。6、定時發送與接收功能模塊在某些情況下,比如壓力測試時,需要使用到定時發送與接收的功能。為滿足這種需要,本發明通過glib的timer工具實現了一種定時發送接收的 d-bus API ο7、輸入輸出同步、異步顯示模塊本發明將串行總線輸出數據進行行緩存,可以實現將對應輸入行進行輸出,也可以直接獲得全部輸出。同樣的這種功能也以d-bus API的形式實現。此外還包括Modem功能模塊目前,Modem設備大多以串行總線實現控制接口,本發明根據標準的3GPP協議集成了簡訊發送功能。這樣,用戶可以通過簡訊的收發測試Modem設備。並且,本發明也集成了一般常用的Modem命令,通過d_bus API可以獲得Modem的信號強度,Modem時間,簡訊查看,簡訊發送,來電查看,電話撥打,Modem使能以及Modem休眠等功能。最後,對串口的各功能模塊進行d-bus API封裝,針對上述實現的API,使用各圖形框架設計圖形界面。通過d-bus API可實現java圖形界面、QT圖形界面、GTK+圖形界面、python腳本。由於上述所有功能都實現了 d-bus API,所以通過支持d-bus的語言,本發明設計的串口模塊使得用戶可以實現自己需要的用戶界面Π與相應的功能。 圖3是本發明所述方法的流程圖。其基於glib庫,並使用d-bus作為進程間通信軟體。以下也按照由下至上的方式對圖3進行說明。最下方是串口設備。首先,在作業系統的用戶層通過read函數獲得串口設備描述符;然後,通過人工設置串口參數與串口建立通信關係,並保存相關參數;使用gl ib庫的GkeyFi Ie技術將串口參數保存成可讀寫配置文件;使用glib庫的GIO技術對串口設備進行緩存,並實現串口設備和本發明裝置之間的數據交互;在中間層的glib庫和上層應用之間,使用glib-dbus技術實現本發明各功能模塊的d-bus API ;最後,在最上方,利用d-bus API實現各種圖形框架下的軟體與python調試工具等。因此,用戶可以通過本發明實現的d-bus API實現自己的Π與相應功能。圖4是本發明方法實現的串行通信接口的結構示意圖。圖4最下方表示本發明方法支持的各種Linux版本,例如,Android、Meego> Moblin> Maemo、支持d_bus的作業系統,等等。中間的三個方框表示本發明的方法中各功能是依據glib和d-bus技術實現,其支持串口設備、glib核心邏輯、d-bus API。最上方表示本發明的方法可以支持通過java, QT,GTK+, python等軟體編寫的UI程序。本發明基於glib技術和使用d-bus實現相關結構的API。包括實現了文件傳輸、GPS、m0dem等功能。其使用了 glib來進行主要邏輯編寫,使用d_bus實現進程間通信與API接口。最後對應不同的圖形框架實現相應的程序。這樣保證了本發明在Iinux及其衍伸版本下的通用性。使用glib實現串行通信邏輯,並給出D-Bus API,其顯著特點是使程式設計師能夠通過調用API來實現複雜的串口操作,並且具有D-Bus API的軟體可以在Iinux的多個發行版及其衍伸版(比如android、maemo、moblin、meego等等)中實現其圖形界面。以上是對本發明的優選實施例進行的詳細描述,但本領域的普通技術人員應該意識到,在本發明的範圍內和精神指導下,各種改進、添加和替換都是可能的,例如調整接口調用順序、改變消息格式和內容、使用不同的程式語言(如C、C++、Java等)實現等。這些都在本發明的權利要求所限定的保護範圍內。
權利要求
1.一種在Iinux環境下實現串行通信接口的裝置,該裝置基於glib庫並使用d_bus作為進程間通信軟體,其特徵在於,包括 串口設備模塊,通過串口與微處理器進行通信; glib模塊,使用glib庫設置串口緩衝與讀取機制; d-bus API模塊,使用d-bus API實現glib模塊與上層應用模塊之間的通信; 上層應用模塊,使用各種支持d-bus技術的語言編寫相應的應用代碼以實現所需要的串口功能。
2.根據權利要求I所述的裝置,其特徵在於 在作業系統的用戶層通過read函數獲得串口設備描述符,設置串口參數,與串口建立通信關係,並保存相關參數。
3.根據權利要求I或2所述的裝置,其特徵在於其中所述glib模塊進一步包括, 第一模塊,用於使用glib庫的GkeyFile技術將串口參數保存成可讀寫配置文件;以及 第二模塊,用於使用glib庫的GIO技術對串口設備進行緩存,並實現串口設備和本裝置之間的數據交互。
4.根據權利要求I所述的裝置,其特徵在於所述d-busAPI模塊,進一步用於在glib模塊和上層應用模塊之間,使用glib-d-bus技術,以d-bus API實現各功能模塊;所述各功能模塊包括 串口參數保存模塊、GPS協議解析功能模塊、用戶自定義協議棧測試模塊、藍牙測試功能模塊、文件傳輸功能模塊、定時發送與接收功能模塊、輸入輸出同步、異步顯示模塊、Modem功能模塊。
5.根據權利要求I所述的裝置,其特徵在於所述上層應用模塊,進一步用於針對所述各功能模塊的d-bus API,使用各種圖形框架實現相應功能模塊的圖形界面和python腳本。
6.—種在Iinux環境下實現串行通信接口的方法,該方法基於glib庫並使用d_bus作為進程間通信軟體,其特徵在於,包括 步驟(I)在作業系統的用戶層通過read函數獲得串口設備描述符,設置串口參數,與串口建立通彳目關係,並保存相關參數; 步驟(2)用於使用glib庫的GkeyFile技術將串口參數保存成可讀寫配置文件; 步驟(3)用於使用glib庫的GIO技術對串口設備進行緩存,並實現串口設備和本裝置之間的數據交互; 步驟(4)用於在glib模塊和上層應用模塊之間,使用glib-d-bus技術,以d_bus API實現各功能模塊; 步驟(5)用於針對所述各功能模塊的d-bus API,使用各種圖形框架實現相應功能模塊的圖形界面和python腳本。
7.根據權利要求6所述的方法,其特徵在於 步驟(4)中所述各功能模塊包括串口參數保存模塊、GPS協議解析功能模塊、用戶自定義協議棧測試模塊、藍牙測試功能模塊、文件傳輸功能模塊、定時發送與接收功能模塊、輸入輸出同步、異步顯示模塊、Modem功能模塊。
全文摘要
本發明涉及在linux環境下實現串行通信接口的裝置,該裝置基於glib庫並使用d-bus作為進程間通信軟體,包括通過串口與微處理器進行通信的串口設備模塊;glib模塊,使用glib庫設置串口緩衝與讀取機制;d-bus API模塊,使用d-bus API實現glib模塊與上層應用模塊之間的通信;上層應用模塊,使用各種支持d-bus技術的語言編寫相應的應用代碼以實現所需要的串口功能。本發明使得用戶可以實現自己需要的UI與相應的功能,便於設備開發時的調試與使用。
文檔編號G06F9/44GK102819430SQ20121023433
公開日2012年12月12日 申請日期2012年7月6日 優先權日2012年7月6日
發明者餘美強, 左飛, 高默, 張澎 申請人:中科方德軟體有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀