亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種在linux環(huán)境下實現(xiàn)串行通信接口的裝置及方法

文檔序號:6372990閱讀:801來源:國知局
專利名稱:一種在linux環(huán)境下實現(xiàn)串行通信接口的裝置及方法
技術(shù)領(lǐng)域
本發(fā)明屬于計算機領(lǐng)域,尤其涉及一種在Iinux環(huán)境下實現(xiàn)串行通信接口的裝置及方法。
背景技術(shù)
串行通信接口簡稱串口,是計算機上最常用的一種接口,具有成本低廉,使用簡單,只需要一對傳輸線就可以實現(xiàn)雙向通信等優(yōu)點。由于這些優(yōu)點,有很多設(shè)備使用串口與計算機進行通信,包括藍牙設(shè)備,GPS設(shè)備,GPRS設(shè)備等等。目前,由于通用串行總線的易用性與支持熱插拔和即插即用等優(yōu)點,這些設(shè)備逐漸地使用通用串行總線虛擬出串口與計算機進行通信。目前各個Iinux發(fā)行版中一般自帶使用異步傳輸協(xié)議與串口的軟件,比如支持xmodem協(xié)議的minicom,等。但是這些軟件僅僅具有簡單的輸入輸出功能,不能滿足設(shè)備開發(fā)時的調(diào)試與使用需求。

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


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