TWI806483B - 基於rs232序列埠實現的資料與指令傳輸方法 - Google Patents
基於rs232序列埠實現的資料與指令傳輸方法 Download PDFInfo
- Publication number
- TWI806483B TWI806483B TW111108733A TW111108733A TWI806483B TW I806483 B TWI806483 B TW I806483B TW 111108733 A TW111108733 A TW 111108733A TW 111108733 A TW111108733 A TW 111108733A TW I806483 B TWI806483 B TW I806483B
- Authority
- TW
- Taiwan
- Prior art keywords
- counter
- client device
- data
- server device
- serial port
- Prior art date
Links
Images
Landscapes
- Arrangements For Transmission Of Measured Signals (AREA)
- Communication Control (AREA)
- Computer And Data Communications (AREA)
Abstract
一種基於RS232序列埠實現的資料與指令傳輸方法,應用於通過RS232序列埠連接的用戶端設備及伺服器設備,並且包括下列步驟:於伺服端設備傳送一筆資料至用戶端設備時,控制用戶端設備中的第一計數器及伺服端設備中的第二計數器進行累加;於兩個計數器的計數到達觸發門檻值時,控制伺服端設備暫停傳送資料並進行等待;於伺服端設備進行等待時,控制用戶端設備發送指令至伺服端;於待等時間到達後清除兩個計數器,並且控制伺服端設備恢復傳送資料至用戶端設備。
Description
本發明涉及資料與指令的傳輸方法,尤其涉及基於RS232序列埠實現的資料與指令的傳輸方法。
於工業環境下,用戶端設備(例如工業電腦)與伺服端設備(例如伺服電機(Servo))經常會使用RS232序列埠來連接,藉此傳遞資料與控制指令。
RS232序列埠的標準資料傳輸程序,必須經過交握(Hand-shaking)。具體地,當發送方發送資料給接收方後,接收方必須回覆確認訊號給發送方,才算完成一筆資料的傳輸程序。然而,這樣一來一回的交握程序實相當浪費通訊時間,造成單位時間中可以傳輸的資料量下降。也因此,RS232序列埠並不適合被用來執行即時(real-time)的資料傳輸工作。
參閱圖1,為相關技術的RS232序列埠傳輸示意圖。如圖1所示,當用戶端設備1與伺服端設備2通過RS232序列埠3連接並且執行標準傳輸程序時,若用戶端設備1發送控制指令11給伺服端設備2,伺服端設備2就必須在接收後回覆確認封包12給用戶端設備1。同樣地,當伺服端設備2發送資料21給用戶端設備1時,用戶端設備1也必須在接收後回覆確認封包12給伺服端設備2。
一般來說,伺服端設備2可被用來連接工廠內的工業設備,以搜集並記錄工業設備的即時資料。伺服端設備2將所記錄的資料回傳給用戶端設備1,藉此使用者可以通過用戶端設備1來對工業設備進行即時監控。於上述使用環境中,伺服端設備2傳送的資料21可能很大(例如每一筆資料為1~64KB),若需經過上述標準傳輸程序,必然無法在有限的時間(例如1000ms)內傳輸完畢。如此一來,將無法達到使用者對於即時監控的需求。
有鑑於此,如何修改RS232序列埠的傳輸程序,以提高傳輸資料量,即可為領域技術人員潛心研究的課題。
本發明提供一種基於RS232序列埠實現的資料與指令傳輸方法,可以令使用RS232序列埠的用戶端設備在最短的時間內收到最大的資料量。
於本發明的一個實施例中,所述傳輸方法應用於通過一RS232序列埠連接的一用戶端設備及一伺服端設備,並且包括下列步驟:
a)於該伺服端設備傳送資料至該用戶端設備時,控制該用戶端設備的一第一計數器及該伺服端設備的一第二計數器的計數進行同步累加;
b)於該第一計數器及該第二計數器的計數到達一觸發門檻值之前重覆執行該步驟a);
c)於該第一計數器及該第二計數器的計數到達該觸發門檻值時,該伺服端設備於一等待時間內停止傳送資料至該用戶端設備,並且該伺服端設備暫存該等待時間內欲傳送的資料;
d)該用戶端設備於該等待時間內發送一控制指令至該伺服端設備;及
e)於該等待時間過後清除該第一計數器及該第二計數器,並且該伺服端設備恢復傳送資料至該用戶端設備。
於本發明的另一個實施例中,所述傳輸方法應用於通過一RS232序列埠連接一伺服端設備的一用戶端設備,並且包括下列步驟:
a)於接收該伺服端設備傳送的資料時,控制一第一計數器進行累加,其中該第一計數器與該伺服端設備中的一第二計數器同步;
b)於欲傳送一控制指令至該伺服端設備時,將該控制指令儲存於一指令佇列;
c)於該第一計數器的計數到達一觸發門檻值之前重覆執行該步驟a)及該步驟b);
d)於該第一計數器的計數到達該觸發門檻值時,將該指令佇列中的該控制指令發送至該伺服端設備;及
e)該步驟d)後清除該第一計數器,並且再次執行該步驟a)至該步驟d)。
於本發明的另一個實施例中,所述傳輸方法應用於通過一RS232序列埠連接一用戶端設備的一伺服端設備,並且包括下列步驟:
a)於發送資料至該用戶端設備時,控制一第二計數器進行累加,其中該第二計數器與該用戶端設備中的一第一計數器同步;
b)於該第二計數器的計數到達一觸發門檻值之前重覆執行該步驟a);
c)於該第二計數器的計數到達該觸發門檻值時,停止發送資料至該用戶端設備並維持一等待時間,並且暫存該等待時間內欲發送的資料;及
d)於該等待時間過後清除該該第二計數器,並且恢復發送資料至該用戶端設備。
相對於相關技術,本發明可以在使用RS232序列埠且不進行資料交握的情況下,令用戶端設備在最短的時間內收到最大的資料量。並且,當用戶端設備發送控制指令給伺服端設備時,不會與伺服端設備傳輸的資料發生碰撞。
茲就本發明之一較佳實施例,配合圖式,詳細說明如後。
本發明揭露了一種資料與指令傳輸方法(下面將於說明書中簡稱為傳輸方法),所述傳輸方法主要應用在通過RS232序列埠來進行資料、控制指令的傳輸的兩個或兩個以上的電子裝置。
參閱圖2,為本發明的第一具體實施例的RS232序列埠傳輸示意圖。如圖2所示,本發明的傳輸方法應用於通過RS232序列埠6連接的用戶端設備4及伺服端設備5,使得用戶端設備4與伺服端設備5在進行資料、控制指令的傳輸時可以不需要經過交握程序,藉此獲得單位時間內的最大資料傳輸量。
具體地,用戶端設備4可例如為個人電腦、工業電腦或雲端伺服器等可以支援RS232序列埠6的電子裝置,但不加以限定。當用戶端設備4執行了特定的應用程式或軟體後,可通過RS232序列埠6與伺服端設備5進行溝通,並且即時接收伺服端設備5發送的資料50。
伺服端設備5可例如為伺服器或伺服電機(Servo),尤其是交流伺服電機(AC Servo),但不加以限定。伺服端設備5可連接環境中的各式工業設備(圖未標示),並且基於用戶端設備4(尤其是用戶端設備4上執行的應用程式或軟體)的請求,通過RS232序列埠6將工業設備的資料50即時發送至用戶端設備4。藉此,可達到使用者通過用戶端設備4來即時監控工業設備的主要目的。
於圖2的實施例中,用戶端設備4(主要指所述應用程式或軟體)經過修改,而不會在接收伺服端設備5發送的資料50後回覆對應的確認封包。相對地,伺服端設備5亦經過修改,不需要接收任何的確認封包,即可繼續發送下一筆資料50至用戶端設備4。藉此,可以有效縮短資料50的傳輸時間,提高單位時間內的傳輸資料量,進而達到使用者通過RS232序列埠6來進行即時監控的需求。
值得一提的是,因為不需要等待確認封包,所以伺服端設備5會持續地發送資料50至用戶端設備4,使得用戶端設備4將無法預測伺服端設備5何時停止發送資料50(即,RS232序列埠6何時會處於閒置狀態)。因此,當用戶端設備4要發送控制指令40給伺服端設備5以對伺服端設備5進行控制時,只能不經任何判斷程序並直接經由RS232序列埠6來發送給伺服端設備5。於此情況下,用戶端設備4發送的控制指令40與伺服端設備5發送的資料50有可能發生碰撞,導致伺服端設備5無法正確接收控制指令40。
當用戶端設備4接收伺服端設備5發送的下一筆資料50,並且經由資料50的內容發現伺服端設備5的狀態沒有基於控制指令40的內容對應改變時,會判斷伺服端設備5沒有正確接收控制指令40。於此情況下,用戶端設備4只能再次發送相同的控制指令40給伺服端設備5。
舉例來說,用戶端設備4可以發送一筆控制伺服端設備5停止運算的控制指令40。若用戶端設備4發送了控制指令40後,仍持續收到經過運算的資料50,即可判斷伺服端設備5沒有確接收控制指令40。
有鑑於上述問題,本發明根據圖2的實施例更進一步提出另一種實施方式。
請參閱圖3,為本發明的第二具體實施例的RS232序列埠傳輸示意圖。圖3的實施例與圖2的實施例的主要差異在於,用戶端設備4中具有第一計數器41,伺服端設備5中具有第二計數器51,並且第一計數器41與第二計數器51同步。
具體地,在開始進行資料50或控制指令40的傳輸前,用戶端設備4與伺服端設備5可以分別將第一計數器41與第二計數器51設定為0(例如執行重置程序),以令第一計數器41與第二計數器51達成同步。並且,於第一計數器41與第二計數器51達成同步後,再通過RS232序列埠6開始進行資料50的傳輸。
本發明中,當伺服端設備5發送資料50至用戶端設備4時,第一計數器41與第二計數器51會同步累加。當第一計數器41與第二計數器51的計數滿足預設條件時(例如,資料50的發送筆數達到觸發門檻值A1),伺服端設備5會暫時停止發送資料50給用戶端設備4。
於本發明的傳輸方法中,伺服端設備5會在第二計數器51的計數滿足預設條件時暫停發送資料50,並且持續一個等待時間T1的長度。此時,用戶端設備4因為第一計數器41的計數滿足預設條件而得知伺服端設備5已經進入等待時間T1,並且會在等待時間T1中將欲發送給伺服端設備5的控制指令40發送給伺服端設備5。
當等待時間T1經過後,用戶端設備4清除第一計數器41,並且伺服端設備5清除第二計數器51。並且,用戶端設備4停止發送控制指令40,並且伺服端設備5恢復發送資料50至用戶端設備4。當伺服端設備5恢復發送資料50時,第一計數器41及第二計數器51隨著資料50的發送重新開始進行累加。
本發明的傳輸方法可以確保用戶端設備4僅在伺服端設備5停止發送資料50時將控制指令40發送給伺服端設備5,藉此可有效避免用戶端設備4發送的控制指令40與伺服端設備5發送的資料50發生碰撞,導致伺服端設備5無法正確接收控制指令40的問題。並且,由於伺服端設備5僅於所述等待時間T1中暫停發送資料50,但是不需要與用戶端設備4進行標準的交握程序。因此,仍然可以在單位時間內提供最大的資料傳輸量,以符合使用者對於即時監控的需求。
續請同時參閱圖3及圖4,其中圖4為本發明的傳輸流程圖的第一具體實施例,並且圖4中的各步驟適用於圖3所示的傳輸架構。本發明中,用戶端設備4與伺服端設備5可以通過RS232序列埠6進行連接,並且執行圖4所示的各個具體步驟,以實現資料即時傳輸的主要目的。
如圖4所示,於用戶端設備4開始向伺服端設備5請求資料後(例如用戶端設備4執行了監控軟體或應用程式),伺服端設備5即基於用戶端設備4的請求,開始傳送資料50至用戶端設備4(步驟S10)。並且,用戶端設備4中的第一計數器41與伺服端設備5中的第二計數器51會同步進行累加(步驟S12)。
於一實施例中,伺服端設備5於傳送一筆資料50給用戶端設備4時,控制第二計數器51進行累加(例如加一)。並且,用戶端設備4於接收到伺服端設備5發送的一筆資料50時,控制第一計數器41進行累加(例如加一)。具體地,第一計數器41與第二計數器51累加的值相同,但累加的時間點不一定相同。
接著,由用戶端設備4、伺服端設備5、或是與用戶端設備4或伺服端設備5連接的其他電子裝置(圖未標示)判斷第一計數器41及第二計數器51的計數是否到達預設的觸發門檻值A1(步驟S14)。
於一實施例中,伺服端設備5於傳送一筆資料50給用戶端設備4時,控制第二計數器51加一。相對地,用戶端設備4於接收到伺服端設備5發送的一筆資料50時,控制第一計數器41加一。於本實施例中,所述觸發門檻值A1為伺服端設備5在指定時間內可以發送完成的資料量,例如為五筆資料至十筆資料不等,但不以此為限。
於另一實施例中,第二計數器51可於伺服端設備5開始發送資料50後開始累計時間,而第一計數器41可於用戶端設備4開始接收資料50後開始累計時間。上述步驟S14係判斷所述累計時間是否到達預設的觸發門檻值A1。本實施例中,所述觸發門檻值A1可例如為伺服端設備5足夠發送充足的資料量的時間長度,例如為3000ms,但不加以限定。
為便於理解,下面將以伺服端設備5每發送一筆資料50就控制第一計數器41與第二計數器51分別加一的實施例,進行說明,但並不以此為限。
若於步驟S14中判斷第一計數器41及第二計數器51的計數尚未到達觸發門檻值A1,則返回步驟S10,以由伺服端設備5繼續發送資料50給用戶端設備4,並且第一計數器41與第二計數器51持續進行累加。值得一提的是,在步驟S10與步驟S12的執行過程中,用戶端設備4不被允許發送任何控制指令40給伺服端設備5。
具體地,如圖3所示,用戶端設備4可具有指令佇列(Command Queue)42。在第一計數器41及第二計數器51的計數尚未到達觸發門檻值A1,且伺服端設備5持續發送資料50給用戶端設備4時,用戶端設備4會將欲發送給伺服端設備5的控制指令40先儲存於指令佇列42中。
若於步驟S14中判斷第一計數器41及第二計數器51的計數到達觸發門檻值A1,伺服端設備5會暫時停止傳送資料50至用戶端設備4,並且持續一段等待時間T1(步驟S16)。
本發明中,第一計數器41的計數與第二計數器51的計數是同步的,當伺服端設備5基於第二計數器51的計數內容而暫停發送資料50時,用戶端設備4可依據第一計數器41的計數內容來判斷伺服端設備5暫時不會傳送資料50。
本發明中,伺服端設備5先暫存於等待時間T1內欲傳送的資料50(例如,暫存於如圖3所示的暫存器52中)。於此同時,用戶端設備4經由RS232序列埠6將要發送至伺服端設備5的控制指令40發送給伺服端設備5(步驟S18)。於一實施例中,用戶端設備4於步驟S18中主要是將暫存於指令佇列42中的一或多筆控制指令40發送給至伺服端設備5。
更具體地,伺服端設備5於等待時間T1中暫存要發送給用戶端設備4的資料50,而用戶端設備4於等待時間T1中發送控制指令40給伺服端設備5。藉由等待時間T1的設置,用戶端設備4發送的控制指令40與伺服端設備5發送的資料50不會發生碰撞,因此可確保伺服端設備5能夠正確地接收控制指令40。
接著,由用戶端設備4、伺服端設備5或是其他電子設備判斷等待時間T1是否經過(步驟S20)。於等待時間T1經過前,用戶端設備4與伺服端設備5重覆執行步驟S16及步驟S18,以令伺服端設備5持續暫存資料50,並令用戶端設備4持續發送控制指令40。
一般而言,控制指令40的大小會遠小於資料50的大小。一筆資料50的大小可例如為1~64KB,而一筆控制指令40的大小可例如為30~50byte。本發明中,等待時間T1的長度僅需令用戶端設備4可以傳送一筆完整的控制指令40即可。於一實施例中,所述等待時間T1可例如為100ms,但並不以此為限。
若於步驟S20中判斷等待時間T1已經過,用戶端設備4與伺服端設備5分別清除第一計數器41及第二計數器51(步驟S22)。並且,在等待時間T1經過後,用戶端設備4、伺服端設備5或是其他電子設備判斷當前的資料傳輸模式(即,不進行交握程序的傳輸模式)是否結束(步驟S24)。若當前的資料傳輸模式尚未結束,則返回步驟S10,以令伺服端設備5恢復傳送資料50至用戶端設備4,並且令第一計數器41及第二計數器51重新累加。
於第一實施例中,用戶端設備4與伺服端設備5分別計算等待時間T1,並且於等待時間T1經過後,分別清除第一計數器41及第二計數器51。於第二實施例中,用戶端設備4於控制指令40發送完畢後清除第一計數器41,並且伺服端設備5於接收到用戶端設備4發出的控制指令40後清除第二計數器51。
如上所述,伺服端設備5於等待時間T1中會暫存本來要發送的資料50,因此在等待時間T1經過後,伺服端設備5所發送的第一筆資料50的資料量將會大於其他時間點所發送的資料50的資料量。於第三實施例中,伺服端設備5於等待時間T1中接收到用戶端設備4發出的控制指令40後,確定與用戶端設備4間的通訊正常,因此可清除第二計數器51。並且,用戶端設備4在等待時間T1經過後接收到資料量明顯變大的資料50後,確定與伺服端設備5間的通訊正常,因此可清除第一計數器41。
惟,上述僅為本發明的部分具體實施範例,但並不以此為限。
如上所述,在等待時間T1經過,且當前的資料傳輸模式尚未結束時,伺服端設備5恢復傳送資料50至用戶端設備4。由於伺服端設備5在等待時間T1內會將本來要發送給用戶端設備4的資料50暫存於暫存器52中,因此在離開等待時間T1後,伺服端設備5會先傳送暫存器52中的資料50至用戶端設備4,並且第一計數器41及第二計數器51會進行同步累加。於暫存器52中的資料50發送完畢後,伺服端設備5才會進一步發送即時資料50至用戶端設備4,並且令第一計數器41與第二計數器51同步累加。
續請同時參閱圖3、圖4及圖5,其中圖5為本發明的傳輸流程圖的第二具體實施例,並且圖5中的各步驟適用於圖3所示的傳輸架構。圖5係以用戶端設備4的角度,對圖4的流程圖做更進一步的說明。
如圖5所示,在通過RS232序列埠6建立與伺服端設備5間的連接後,用戶端設備4即可通過RS232序列埠6持續接收伺服端設備5發送的資料50(步驟S30)。並且,於接收到所述資料50時,用戶端設備4控制其內的第一計數器41進行累加(步驟S32)。具體地,第一計數器41的計數與伺服端設備5中的第二計數器51的計數同步。
於一實施例中,用戶端設備4每接收一筆資料50即控制第一計數器41加一,但不以此為限。
在第一計數器41的計數尚未到達預設的觸發門檻值(例如圖3所示的觸發門檻值A1)前,用戶端設備4持續判斷是否需要傳送控制指令40給伺服端設備5(步驟S34)。若需要傳送控制指令40至伺服端設備5,則用戶端設備4先將要傳送的一或多筆控制指令40依序儲存於用戶端設備4中的指令佇列42(步驟S36)。換句話說,在第一計數器41的計數尚未到達觸發門檻值A1之前,用戶端設備4不會發送任何控制指令40給伺服端設備5。
承上,在與伺服端設備5連接的期間,用戶端設備4持續判斷第一計數器41的計數是否到達觸發門檻值A1(步驟S38)。並且,用戶端設備4在第一計數器41的計數尚未到達觸發門檻值A1前重覆執行步驟S30至步驟S36,以持續接收伺服端設備5發送的資料50、持續累加第一計數器41,並且持續暫存控制指令40。
在第一計數器41的計數到達觸發門檻值A1後,用戶端設備4直接認定伺服端設備5將會暫時停止發送資料50,而RS232序列埠6會暫時進入空閒狀態。因此,用戶端設備4可通過RS232序列埠6,將指令佇列42中儲存的一或多筆控制指令40依序發送至伺服端設備5(步驟S40)。於步驟S40後,用戶端設備清除第一計數器41(步驟S42)。
於第一實施例中,用戶端設備4是在指令佇列42中的所有控制指令40皆發送完畢後清除第一計數器41。於第二實施例中,用戶端設備4是在計時所述等待時間T1經過後清除第一計數器41。於第三實施例中,用戶端設備4是在第一計數器41的計數到達觸發門檻值A1後直接清除第一計數器41。於第四實施例中,用戶端設備4是在再次收到伺服端設備5發送的資料50,且判斷資料50的資料量大於其他時間點所接收的資料50的資料量時清除第一計數器41。
惟,上述為本發明的部分具體實施範例,但並不以上述者為限。
步驟S42後,用戶端設備4可判斷本發明的傳輸方法是否結束(步驟S44),並且於傳輸方法尚未結束前重覆執行上述步驟S30至步驟S42。
於一實施例中,用戶端設備4是在接受外部控制(例如由使用者觸發)以進入一特定模式(例如示波器模式)時,啟用本發明的傳輸方法,並且於離開所述特定模式時結束本發明的傳輸方法(容後詳述)。於此實施例中,只有在所述特定模式下,用戶端設備4才會基於圖5的流程圖中的各步驟(即,步驟S30至步驟S44)來進行運作。
續請同時參閱圖3、圖4及圖6,其中圖6為本發明的傳輸流程圖的第三具體實施例,並且圖6中的各步驟適用於圖3所示的傳輸架構。圖6係以伺服端設備5的角度,對圖4的流程圖做更進一步的說明。
如圖6所示,在通過RS232序列埠6與用戶端設備4建立連接後,伺服端設備5即可通過RS232序列埠6持續發送資料50至用戶端設備4(步驟S50)。具體地,使用者可操作用戶端設備4來對伺服端設備5下達命令,以令伺服端設備5對外擷取使用者所需的資料50並且即時回傳至用戶端設備4。藉此,可以達到令使用者通過用戶端設備4來進行即時監控的目的。
於發送資料50時,伺服端設備5控制其內的第二計數器51進行累加(步驟S52)。具體地,第二計數器51的計數與用戶端設備4中的第一計數器41的計數同步。
於一實施例中,伺服端設備5每發送一筆資料50就控制第二計數器51加一,但不以此為限。
伺服端設備5持續判斷第二計數器51的計數是否到達觸發門檻值A1(步驟S54)。在第二計數器51的計數尚未到達觸發門檻值A1前,伺服端設備5重覆執行步驟S50及步驟S52,以持續搜集並發送資料50至用戶端設備4,並控制第二計數器51持續累計。
於第二計數器51的計數到達觸發門檻值A1後,伺服端設備5停止發送資料50至用戶端設備4,並且維持一段預設的等待時間(例如圖3所示的等待時間T1)(步驟S56)。於等待時間T1中,伺服端設備5不將資料50直接發送至用戶端設備4,而是先將資料50暫存於內部的暫存器52。並且,於等待時間T1中,伺服端設備5可接收用戶端設備4發送過來的一或多筆控制指令40。
於等待期間,伺服端設備5持續判斷等待時間T1是否經過(步驟S58)。
於等待時間T1經過前,伺服端設備5重覆執行步驟S58,以持續進行等待、暫存原本要發送至用戶端設備4的資料50,並且接收用戶端設備4所發送的控制指令40。於等待時間T1經過後,伺服器設備5清除第二計數器51(步驟S60)。
於第一實施例中,伺服端設備5是在等待時間T1經過後清除第二計數器51。於第二實施例中,伺服端設備5是在第二計數器51的計數到達觸發門檻值A1後直接清除第二計數器51。惟,上述僅為本發明的部分具體實施範例,但並不以此為限。
步驟S60後,伺服端設備5可判斷本發明的傳輸方法是否結束(步驟S62),並且於傳輸方法尚未結束前,重覆執行上述步驟S50至步驟S60,以恢復發送資料50至用戶端設備4,並且控制第二計數器51繼續進行累計。
值得一提的是,於伺服端設備5恢復發送資料50至用戶端設備4時,伺服器設備5會先發送在步驟S56中暫存至暫存器52中的資料50至用戶端設備4,並且令第二計數器51進行累加後,才會接著執行步驟S50,以發送下一筆即時的資料50至用戶端設備4。
如前文所述,用戶端設備4與伺服端設備5可以是在進入特定模式後,才會啟用本發明的傳輸方法來進行資料50與控制指令40的傳輸。換句話說,當用戶端設備4與伺服端設備5進入其他模式時,會改為使用其他的傳輸方法來進行其他資料的傳輸。
參閱圖3及圖7,其中圖7為本發明的傳輸流程圖的第四具體實施例,並且圖7中的各步驟適用於圖3所示的傳輸架構。如圖7所示,首先,用戶端設備4與伺服端設備5通過RS232序列埠6進行連接(步驟S70)。並且,用戶端設備4與伺服端設備5通過RS232序列埠6執行標準傳輸程序(步驟S72)。
於一實施例中,所述標準傳輸程序指的是需要進行交握程序的傳輸方式。具體地,所述標準傳輸程序包括:(1)由伺服端設備5傳送資料50給用戶端設備4,以及(2)由用戶端設備4在接收資料50後,傳送資料50的確認封包給伺服端設備5。
於執行標準傳輸程序的期間,用戶端設備4、伺服端設備5或其他電子裝置持續判斷用戶端設備4是否受使用者的操控,並且進入示波器模式(步驟S74)。於一實施例中,所述示波器模式指的是由伺服端設備5持續發送即時資料50至用戶端設備4,並由用戶端設備4基於所接收的資料50繪製波形並且即時顯示的即時資料監控模式。
示波器模式為本領域的通常技術,於此不再贅述。
本發明的其中一個技術特徵在於,在用戶端設備4沒有進入示波器模式前,用戶端設備4與伺服端設備5重覆執行步驟S72,以持續藉由標準傳輸程序來進行資料、控制指令的傳輸。當用戶端設備4進入示波器模式後,用戶端設備4與伺服端設備5結束標準傳輸程序,並且啟用本發明的傳輸方法(即,執行如圖4、圖5及圖6所示的各步驟)。
本發明中,用戶端設備4可以在進入示波器模式後,動態地於其中建立第一計數器41(步驟S76),並且伺服端設備5可以在進入示波器模式後,動態地於其中建立第二計數器51(步驟S78)。藉此,於示波器模式的執行期間,用戶端設備4與伺服端設備5可以通過第一計數器41及第二計數器51來進行同步計數,藉此執行本發明的傳輸方法(步驟S80)。
用戶端設備4、伺服端設備5或其他電子裝置持續判斷用戶端設備4是否接受使用者的操作,並離開示波器模式(步驟S82)。於離開示波器模式前,用戶端設備4與伺服端設備5重覆執行步驟S80,以持續執行本發明的傳輸方法。
若於步驟S82中判斷用戶端設備4離開了示波器模式,則由於標準傳輸程序不需要進行計數,因此用戶端設備4及伺服端設備5可以選擇性地取消第一計數器41與第二計數器51(步驟S84)。
接著,用戶端設備4、伺服端設備5或其他電子裝置判斷用戶端設備4與伺服端設備5間的資料傳輸程序是否中斷(步驟S86)。於一實施例中,用戶端設備4與伺服端設備5間的資料傳輸程序於RS232序列埠6被卸除時中斷,但並不以此為限。
於用戶端設備4與伺服端設備5間的資料傳輸程序中斷前,用戶端設備4與伺服端設備5結束本發明的傳輸方法,並且返回步驟S72,以重新執行標準傳輸程序。藉此,可以節省用戶端設備4及伺服端設備5的有限資源。
通過本發明的傳輸方法,即使是使用RS232序列埠來進行連接,仍令用戶端設備在最短的時間內收到最大的資料量,並且不會令用戶端設備發送的控制指令與伺服端設備發送的資料發生碰撞。
以上所述僅為本發明之較佳具體實例,非因此即侷限本發明之專利範圍,故舉凡運用本發明內容所為之等效變化,均同理皆包含於本發明之範圍內,合予陳明。
1:用戶端設備
11:控制指令
12:確認封包
2:伺服端設備
21:資料
22:確認封包
3:RS232序列埠
4:用戶端設備
40:控制指令
41:第一計數器
42:指令佇列
5:伺服端設備
50:資料
51:第二計數器
52:暫存器
6:RS232序列埠
A1:觸發門檻值
T1:等待時間
S10~S24、S30~S44、S50~S62、S70~S86:傳輸步驟
圖1為相關技術的RS232序列埠傳輸示意圖。
圖2為本發明的第一具體實施例的RS232序列埠傳輸示意圖。
圖3為本發明的第二具體實施例的RS232序列埠傳輸示意圖。
圖4為本發明的傳輸流程圖的第一具體實施例。
圖5為本發明的傳輸流程圖的第二具體實施例。
圖6為本發明的傳輸流程圖的第三具體實施例。
圖7為本發明的傳輸流程圖的第四具體實施例。
S10~S24:傳輸步驟
Claims (11)
- 一種基於RS232序列埠實現的資料與指令傳輸方法,應用於通過一RS232序列埠連接的一用戶端設備及一伺服端設備,該傳輸方法包括: a)於該伺服端設備傳送資料至該用戶端設備時,控制該用戶端設備的一第一計數器及該伺服端設備的一第二計數器的計數進行同步累加; b)於該第一計數器及該第二計數器的計數到達一觸發門檻值之前重覆執行該步驟a); c)於該第一計數器及該第二計數器的計數到達該觸發門檻值時,該伺服端設備於一等待時間內停止傳送資料至該用戶端設備,並且該伺服端設備暫存該等待時間內欲傳送的資料; d)該用戶端設備於該等待時間內發送一控制指令至該伺服端設備;及 e)於該等待時間過後清除該第一計數器及該第二計數器,並且該伺服端設備恢復傳送資料至該用戶端設備。
- 如請求項1所述的傳輸方法,其中該步驟a)是於該伺服端設備傳送一筆資料至該用戶端設備時控制該第二計數器加一,並且於該用戶端設備接收該筆資料時控制該第一計數器加一。
- 如請求項1所述的傳輸方法,其中該步驟e)是由該伺服端設備先傳送於該步驟c)中暫存的資料至該用戶端設備並控制該第一計數器及該第二計數器同步累加後,再次執行該步驟a)至該步驟e)。
- 如請求項1所述的傳輸方法,其中該步驟a)之前更包括: a01)該伺服端設備與該用戶端設備通過該RS232序列埠進行一標準傳輸程序,其中該標準傳輸程序包括由該伺服端設備傳送一資料給該用戶端設備,以及由該用戶端設備傳送該資料的一確認封包給該伺服端設備; a02)於該用戶端設備進入一示波器模式時,控制該伺服端設備與該用戶端設備通過該RS232序列埠結束該標準傳輸程序並執行該步驟a)至該步驟e)。
- 如請求項4所述的傳輸方法,其中包括一步驟a03):於該用戶端設備進入該示波器模式時,於該用戶端設備中建立該第一計數器,並且於該伺服端設備中建立該第二計數器。
- 如請求項4所述的傳輸方法,其中包括一步驟f):於該用戶端設備離開該示波器模式時,取消該第一計數器及該第二計數器,並控制該伺服端設備與該用戶端設備恢復該標準傳輸程序。
- 如請求項1所述的傳輸方法,其中該用戶端設備具有一指令佇列,並且該傳輸方法包括: a1)於該第一計數器及該第二計數器的計數到達該觸發門檻值之前,該用戶端設備將欲發送至該伺服端設備的該控制指令儲存至該指令佇列; 其中,該步驟d)是將該指令佇列中的該控制指令發送至該伺服端設備。
- 一種基於RS232序列埠實現資料與指令傳輸方法,應用於通過一RS232序列埠連接一伺服端設備的一用戶端設備,該傳輸方法包括: a)於接收該伺服端設備傳送的資料時,控制一第一計數器進行累加,其中該第一計數器與該伺服端設備中的一第二計數器同步; b)於欲傳送一控制指令至該伺服端設備時,將該控制指令儲存於一指令佇列; c)於該第一計數器的計數到達一觸發門檻值之前重覆執行該步驟a)及該步驟b); d)於該第一計數器的計數到達該觸發門檻值時,將該指令佇列中的該控制指令發送至該伺服端設備;及 e)該步驟d)後清除該第一計數器,並且再次執行該步驟a)至該步驟d)。
- 如請求項8所述的傳輸方法,其中更包括: f)於進入一示波器模式時建立該第一計數器,並且執行該步驟a)至該步驟e);及 g)於離開該示波器模式時取消該第一計數器,其中該用戶端設備離開該示波器模式後通過該RS232序列埠與該用戶端設備執行一標準傳輸程序,該標準傳輸程序包括由該伺服端設備傳送一資料給該用戶端設備,以及由該用戶端設備傳送該資料的一確認封包給該伺服端設備。
- 一種基於RS232序列埠實現資料與指令傳輸方法,應用於通過一RS232序列埠連接一用戶端設備的一伺服端設備,該傳輸方法包括: a)於發送資料至該用戶端設備時,控制一第二計數器進行累加,其中該第二計數器與該用戶端設備中的一第一計數器同步; b)於該第二計數器的計數到達一觸發門檻值之前重覆執行該步驟a); c)於該第二計數器的計數到達該觸發門檻值時,停止發送資料至該用戶端設備並維持一等待時間,並且暫存該等待時間內欲發送的資料;及 d)於該等待時間過後清除該該第二計數器,並且恢復發送資料至該用戶端設備。
- 如請求項10所述的傳輸方法,其中該步驟d)是先發送於該步驟c)中暫存的資料至該用戶端設備並控制該第二計數器累加後,再次執行該步驟a)至該步驟c)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW111108733A TWI806483B (zh) | 2022-03-10 | 2022-03-10 | 基於rs232序列埠實現的資料與指令傳輸方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW111108733A TWI806483B (zh) | 2022-03-10 | 2022-03-10 | 基於rs232序列埠實現的資料與指令傳輸方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI806483B true TWI806483B (zh) | 2023-06-21 |
TW202336602A TW202336602A (zh) | 2023-09-16 |
Family
ID=87803158
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111108733A TWI806483B (zh) | 2022-03-10 | 2022-03-10 | 基於rs232序列埠實現的資料與指令傳輸方法 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI806483B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW406224B (en) * | 1998-06-29 | 2000-09-21 | Ind Tech Res Inst | Apparatus for calibrating flow-meter using standing-start method |
TW200601906A (en) * | 2004-06-30 | 2006-01-01 | Inventec Corp | CD burning adapting-board |
CN102866976A (zh) * | 2012-09-17 | 2013-01-09 | 山东神戎电子股份有限公司 | 一种嵌入式系统中串口分时复用方法 |
TW201509166A (zh) * | 2013-08-20 | 2015-03-01 | Tatung Co | 資料傳輸系統及方法 |
TW201702895A (zh) * | 2015-06-23 | 2017-01-16 | 微晶片科技公司 | 具有線活動偵測器之通用非同步接收器/傳輸器 |
TW201702894A (zh) * | 2015-06-22 | 2017-01-16 | 微晶片科技公司 | 獨立式通用非同步接收器/傳輸器brk偵測 |
TW201843598A (zh) * | 2017-05-05 | 2018-12-16 | 美商微晶片科技公司 | 用於在串列通訊鏈路上以均勻潛時傳輸事件之裝置及方法 |
-
2022
- 2022-03-10 TW TW111108733A patent/TWI806483B/zh active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW406224B (en) * | 1998-06-29 | 2000-09-21 | Ind Tech Res Inst | Apparatus for calibrating flow-meter using standing-start method |
TW200601906A (en) * | 2004-06-30 | 2006-01-01 | Inventec Corp | CD burning adapting-board |
CN102866976A (zh) * | 2012-09-17 | 2013-01-09 | 山东神戎电子股份有限公司 | 一种嵌入式系统中串口分时复用方法 |
TW201509166A (zh) * | 2013-08-20 | 2015-03-01 | Tatung Co | 資料傳輸系統及方法 |
TW201702894A (zh) * | 2015-06-22 | 2017-01-16 | 微晶片科技公司 | 獨立式通用非同步接收器/傳輸器brk偵測 |
TW201702895A (zh) * | 2015-06-23 | 2017-01-16 | 微晶片科技公司 | 具有線活動偵測器之通用非同步接收器/傳輸器 |
TW201843598A (zh) * | 2017-05-05 | 2018-12-16 | 美商微晶片科技公司 | 用於在串列通訊鏈路上以均勻潛時傳輸事件之裝置及方法 |
Also Published As
Publication number | Publication date |
---|---|
TW202336602A (zh) | 2023-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104168081B (zh) | 一种文件传输方法及装置 | |
US6845352B1 (en) | Framework for flexible and scalable real-time traffic emulation for packet switched networks | |
US20080294769A1 (en) | Efficient synchronization of agents starting a task where the agents poll a server to learn the task start time | |
US20140078926A1 (en) | Initiator apparatus, target apparatus, communication system, timeout detection method, and timeout detection program | |
TWI806483B (zh) | 基於rs232序列埠實現的資料與指令傳輸方法 | |
US20130145025A1 (en) | Programmable controller | |
CN113746931B (zh) | 数据同步方法及装置 | |
JP5866077B2 (ja) | 情報管理方法及びデバイス | |
JPH0877092A (ja) | 入出力制御装置及び入出力制御方法 | |
WO2016197693A1 (zh) | 操作指令处理方法及装置 | |
CN113923140B (zh) | 往返时延测量方法、系统和存储介质 | |
CN107608711A (zh) | 升级方法、装置、系统和电子设备 | |
CN115834282B (zh) | 一种can总线通信方法、装置、设备及可读存储介质 | |
TW201532404A (zh) | 遠端登入電腦之方法 | |
CN116775534A (zh) | 基于rs232序列埠实现的数据与指令传输方法 | |
CN113556210B (zh) | 一种上位机和建立通信连接的方法 | |
JPH0659939A (ja) | 並列計算機のシミュレーション方法 | |
US10608863B2 (en) | Transmission control application supporting TCP fast open | |
WO2018082006A1 (zh) | 一种控制方法、控制装置及控制系统 | |
JP2003167756A5 (zh) | ||
TWI724670B (zh) | 容錯系統及其控制方法 | |
JP7251182B2 (ja) | 制御装置、処理装置の制御方法及びプログラム | |
CN103427941A (zh) | 一种发送数据包的方法、装置及终端设备 | |
WO2021007722A1 (zh) | 远程倒计时方法、通信终端和具有存储功能的装置 | |
JP2014527218A (ja) | ネットワーク・コントロール・モデル・ドライバ |