專利名稱:自動檢測串口信息的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù)領(lǐng)域,特別是自動檢測串口信息的方法,包括串口號及波特率。
背景技術(shù):
目前,在儀器儀表以及通信技術(shù)領(lǐng)域,特別是使用串口通信設(shè)備進(jìn)行調(diào)試、運行等情況下,通常需要在設(shè)備管理器中查看計算機(jī)具有的串口依次手動打開,如果不知道設(shè)備的波特率還要將常用的波特率挨個試驗,導(dǎo)致工作效率的降低以及無意義的重復(fù)勞動,如果同時有很多設(shè)備需要連接的話將會是一個不小的工作量。
發(fā)明內(nèi)容
本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,提供一種自動檢測串口信息的方法,其步驟如下
首先,在串口通信終端和上位機(jī)中分別預(yù)裝握手協(xié)議;
當(dāng)串口通信終端通過串口連接上位機(jī)時,上位機(jī)根據(jù)預(yù)存于存儲單元的可用串口信息,以預(yù)設(shè)波特率依次向所有可用串口發(fā)送握手請求,如果有至少一個的串口反饋有握手應(yīng)答,則握手成功,并與該串口下連接的串口通信終端建立通信,同時該串口信息將從存儲單元中存儲的可用串口中刪除,該串口號和接受到握手應(yīng)答的波特率值一并保存被在存儲單元并通過人機(jī)界面反饋串口號和波特率值;
進(jìn)一步地,前述的自動檢測串口信息的方法,其中所述可用串口的判斷如下 上位機(jī)依次打開所有串口,如果能夠被成功打開,說明該串口可用,同時將可用串口的串口號保存在上位機(jī)的存儲單元備用。所述的自動檢測串口信息的方法,其中還包括
當(dāng)一個串口通信終端注冊完成之后,上位機(jī)會重復(fù)向所有可用串口發(fā)送一次握手請求,若有握手應(yīng)答反饋,則繼續(xù)注冊,反之,結(jié)束。作為優(yōu)選方案自動檢測串口信息的方法,上位機(jī)收到串口通信終端的握手應(yīng)答時間為0毫秒到5000毫秒之間。作為優(yōu)選方案自動檢測串口信息的方法,上位機(jī)收到串口通信終端的握手應(yīng)答時間為0毫秒到200毫秒之間。作為優(yōu)選方案自動檢測串口信息的方法,上位機(jī)自身所有的串口數(shù)不少于1個。作為優(yōu)選方案自動檢測串口信息的方法,上位機(jī)自身所有的串口數(shù)為2至10個。所述預(yù)設(shè)波特率次序依次如下
300位每秒、600位每秒、1200位每秒、2400位每秒、4800位每秒、9600位每秒、19200位每秒、38400位每秒、43000位每秒、56000位每秒、115200位每秒。所述的握手協(xié)議如下
串口通信終端與上位機(jī)通信協(xié)議為10個字節(jié)固定長度的ASCII碼,協(xié)議格式為AAA#BBB#CC,其中AAA為指令類型,BBB為操作,CC為參數(shù),#為間隔符,可以沒有。指令類型包括兩種CMD和DAT,CMD代表發(fā)送的為指令,DAT代表的發(fā)送的為數(shù)據(jù)。開始握手時,上位機(jī)向串口通信終端發(fā)送 CMD#CHK#00 表示上位機(jī)檢查串口通信終端是否正常
串口通信終端收到指令后,如果串口通信終端正常向上位機(jī)發(fā)送 CMD#CHK#0K
如果串口通信終端有錯誤,向上位機(jī)發(fā)送 CMD#ERR#XX 注XX為錯誤代碼。當(dāng)上位機(jī)收到串口通信終端發(fā)送的CMD#CHK#0K后,向串口通信終端發(fā)送地址請求
CMD#ADD#RE
串口通信終端收到地址請求時,發(fā)送 CMD#ADD#XX
注XX為ASCII碼地址,串口終端設(shè)備地址00-99 上位機(jī)向串口通信終端發(fā)送注冊信息請求碼 CMD#VER#RE
串口通信終端收到上述請求時,發(fā)送 CMD# VER #XX
注XX為ASCII碼地址,串口通信終端代碼00-99 上位機(jī)向串口通信終端發(fā)送數(shù)據(jù)請求碼 CMD#REQ#XX
注XX為ASCII碼數(shù)據(jù)類型請求
串口通信終端收到數(shù)據(jù)請求時,發(fā)送數(shù)據(jù)長度包
DAT#NUMXXX
注XXX為ASCII碼數(shù)據(jù)包個數(shù)
接下來串口通信終端發(fā)送長度為10的數(shù)據(jù)包,發(fā)送完畢后發(fā)送
CMD#DAT#0K
表示數(shù)據(jù)發(fā)送完畢。
圖1本發(fā)明實施例1的流程圖; 圖2本發(fā)明實施例2的流程圖。
具體實施例方式下面結(jié)合實施例對本發(fā)明做進(jìn)一步說明。實施例1
如圖1所示,本實施例中的上位機(jī)的串口數(shù)為10個,本發(fā)明的邏輯流程如下上位機(jī)開機(jī)是啟動依串口號次序打開自有串口,如果能夠被成功打開,說明該串口可用,當(dāng)串口均被打開后,判斷最后一次打開的串口號是否為10,如果是上位機(jī)將可用串口的串口號保存在上位機(jī)的存儲單元備用,否則返回步驟S101。當(dāng)串口通信終端通過串口連接上位機(jī)時,上位機(jī)根據(jù)預(yù)存于存儲單元的可用串口信息,以預(yù)設(shè)波特率依次向所有可用串口發(fā)送握手請求,如果有至少一個的串口在200毫秒內(nèi)反饋有握手應(yīng)答,則握手成功,并與該串口下連接的串口通信終端建立通信,同時該串口信息將從存儲單元中存儲的可用串口中刪除,該串口號和接受到握手應(yīng)答的波特率值一并被保存在存儲單元并通過人機(jī)界面反饋串口號和波特率值;否則重復(fù)本步驟S104。通信建立成功后,串口通信終端會將固化于其中的注冊信息發(fā)送給上位機(jī)進(jìn)行注冊,上位機(jī)將串口通信終端的注冊信息及其所連接的串口的信息一并保存于上位機(jī)的存儲單元,自動注冊完成。所述的注冊信息包括通信終端的地址、產(chǎn)品型號、產(chǎn)品編號、固件版本號、產(chǎn)品生產(chǎn)商中的至少一種。當(dāng)一個串口通信終端注冊完成之后,上位機(jī)會重復(fù)向所有可用串口發(fā)送一次握手請求,若有握手應(yīng)答反饋,則返回步驟S104,反之,進(jìn)入步驟S109,統(tǒng)計并保存應(yīng)答設(shè)備所對應(yīng)串口的串口號和波特率值等信息。實施例2
如圖2所示,本實施例中的上位機(jī)的串口數(shù)為2個,本發(fā)明的邏輯流程如下上位機(jī)開機(jī)是啟動依串口號次序打開自有串口,如果能夠被成功打開,說明該串口可用,當(dāng)串口均被打開后,判斷最后一次打開的串口號是否為2,如果是上位機(jī)將可用串口的串口號保存在上位機(jī)的存儲單元備用,否則返回步驟S201。當(dāng)串口通信終端通過串口連接上位機(jī)時,上位機(jī)根據(jù)預(yù)存于存儲單元的可用串口信息,以預(yù)設(shè)波特率依次向所有可用串口發(fā)送握手請求, 如果有至少一個的串口在5000毫秒內(nèi)反饋有握手應(yīng)答,則握手成功,并與該串口下連接的串口通信終端建立通信,同時該串口信息將從存儲單元中存儲的可用串口中刪除,該串口號和接受到握手應(yīng)答的波特率值一并保存在存儲單元并通過人機(jī)界面反饋串口號和波特率值,否則重復(fù)本步驟S204。當(dāng)一個串口通信終端注冊完成之后,上位機(jī)會重復(fù)向可用串口發(fā)送一次握手請求,若有握手應(yīng)答反饋,則返回步驟S204,反之,進(jìn)入步驟S209,統(tǒng)計并保存應(yīng)答設(shè)備所對應(yīng)串口的串口號和波特率值等信息。實施例3
本實施例為利用本發(fā)明所述的方法完成的一種軟件程序,上述程序運行在上位機(jī)中, 該程序不僅可以完成本發(fā)明的技術(shù)效果,同時還可以將上位機(jī)的串口信息通過人機(jī)界面報
告給操作人員。當(dāng)串口自動識別程序運行時,首先分別打開計算機(jī)上串口 1至串口 10,如果串口打開成功說明串口存在且沒有被占用。掃描完畢后,將可用的串口保存存儲單元。之后,程序會依次打開可用的串口,并發(fā)送握手請求,如果在1000毫秒內(nèi)收到串口通信終端的握手應(yīng)答,則認(rèn)為通信成功。握手成功后,串口通信終端向上位機(jī)發(fā)送地址,在上位機(jī)上進(jìn)行注冊,同時上位機(jī)也將該設(shè)備連接的串口信息保存,完成自動識別過程。該實施例中的上位機(jī)為X86架構(gòu)PC機(jī)。軟件開發(fā)環(huán)境Microsoft Visual Studio 2008 ;編程語言為C#語言。 本程序主要功能及特點本程序應(yīng)用于各種串口通信設(shè)備,自動獲取連接設(shè)備的串口信息。此程序有簡單,操作方便等特點,同時也大大的節(jié)省了人的工作時間,節(jié)約了人力成本。
以上所述,僅是本發(fā)明的較佳實施例而已,并非對本發(fā)明做任何形式上的限制,雖然本發(fā)明已經(jīng)以較佳實施例披露如上述,然而并非用于限定本發(fā)明,任何熟悉本專業(yè)的技術(shù)人員,在不脫離本發(fā)明的技術(shù)方案范圍內(nèi),可以利用上述披露的技術(shù)內(nèi)容做出些許更改視為等同變化的等效實施例,凡未脫離本發(fā)明技術(shù)方案的內(nèi)容,依據(jù)本發(fā)明的技術(shù)實質(zhì)對以上實施例做出任何簡單修改、等同變化與修飾,均屬于本發(fā)明的技術(shù)范圍。
權(quán)利要求
1.自動檢測串口信息的方法,其步驟如下 在串口通信終端和上位機(jī)中分別預(yù)裝握手協(xié)議;當(dāng)串口通信終端通過串口連接上位機(jī)時,上位機(jī)根據(jù)預(yù)存于存儲單元的可用串口信息,以預(yù)設(shè)波特率依次向所有可用串口發(fā)送握手請求,如果有至少一個的串口反饋有握手應(yīng)答,則握手成功,并與該串口下連接的串口通信終端建立通信,同時該串口信息將從存儲單元中存儲的可用串口中刪除,該串口號和接受到握手應(yīng)答的波特率值一并被保存在存儲單元并通過人機(jī)界面反饋串口號和波特率值。
2.根據(jù)權(quán)利要求1所述的自動檢測串口信息的方法,其中所述可用串口的判斷如下 上位機(jī)依次打開所有串口,如果能夠被成功打開,說明該串口可用,同時將可用串口的串口號保存在上位機(jī)的存儲單元備用。
3.根據(jù)權(quán)利要求1或2所述的自動檢測串口信息的方法,其中還包括當(dāng)一個串口信息檢測完成之后,上位機(jī)會重復(fù)向所有可用串口發(fā)送一次握手請求,若有握手應(yīng)答反饋,則繼續(xù)注冊,反之,結(jié)束。
4.根據(jù)權(quán)利要求1所述的自動檢測串口信息的方法,上位機(jī)收到串口通信終端的握手應(yīng)答時間為0毫秒到5000毫秒之間。
5.根據(jù)權(quán)利要求5所述的自動檢測串口信息的方法,上位機(jī)收到串口通信終端的握手應(yīng)答時間為0毫秒到200毫秒之間。
6.根據(jù)權(quán)利要求1或2所述的自動檢測串口信息的方法,上位機(jī)自身所有的串口數(shù)不少于1個。
7.根據(jù)權(quán)利要求7所述的自動檢測串口信息的方法,上位機(jī)自身所有的串口數(shù)為2至 10個。
全文摘要
本發(fā)明公開了一種自動檢測串口信息的方法。在串口通信終端和上位機(jī)中分別預(yù)裝握手協(xié)議,當(dāng)串口通信終端通過串口連接上位機(jī)時,上位機(jī)根據(jù)預(yù)存于存儲單元的可用串口信息,以預(yù)設(shè)波特率依次向所有可用串口發(fā)送握手請求,如果有至少一個的串口反饋有握手應(yīng)答,則握手成功,并與該串口下連接的串口通信終端建立通信,同時該串口信息將從存儲單元中存儲的可用串口中刪除,該串口號和接受到握手應(yīng)答的波特率值一并保存在存儲單元并通過人機(jī)界面反饋串口號和波特率值。本發(fā)明可以大大降低技術(shù)人員在調(diào)試設(shè)備的時間,不用挨個試驗串口的信息,可以應(yīng)用于各種串口通信的情況。
文檔編號G06F13/38GK102270168SQ201110226480
公開日2011年12月7日 申請日期2011年8月9日 優(yōu)先權(quán)日2011年8月9日
發(fā)明者周曉輝, 武斌, 陳磊 申請人:西安輝煒信息科技有限公司