一種分時串口通信方法及系統的制作方法
【技術領域】
[0001]本發明屬于通信技術領域,尤其涉及一種分時串口通信方法。
【背景技術】
[0002]串口通信是單片機和DSP(Digital Signal Processor,數字信號處理器)等嵌入式系統之間,以及嵌入式系統與個人電腦或無線模塊之間的一種非常重要且普遍使用的通信方式。目前,采用串口通信技術的產品一般都是傳統通信方式,首先由主機對從機的通信串口進行參數配置,使得從機和主機通信串口的配置參數相匹配;然后在主機與從機之間采用一問一答的方式進行串口通信,如果主機向從機發送數據后,沒有接收到從機回復的應答,則認為通信故常,此時主機會重新向從機發送數據。這種通信方式存在以下缺陷:由于通信方式受到傳輸字節數的影響較大,當傳輸字節數較大時,從機從收到數據到給出應答可能很慢,在此過程中主機可能會認為從機出現通信異常,重新向從機發送數據,那么若此時當從機再向主機發出應答,就會造成通信沖突,誤碼率較高。該缺陷在串口通信的半全工通信中顯得尤為突出。
【發明內容】
[0003]本發明實施例的目的在于提供一種分時串口通信方法及系統,旨在解決上述串口通信方式容易出現通信沖突和誤碼率較高的問題。
[0004]本發明實施例是這樣實現的,一種分時串口通信方法,包括:
[0005]將主機和從機建立電連接;
[0006]獲取主機通信串口的配置參數,并根據所述配置參數對所述從機的通信串口進行參數配置;
[0007]所述主機向所述從機發送第一數據,所述從機接收到所述第一數據后延時第一預設時間向所述主機返回應答;
[0008]若所述主機在第二預設時間內接收到所述從機返回的應答,則延時第一預設時間后向所述從機發送第二數據,所述第二預設時間大于所述第一預設時間。
[0009]在本發明實施例所述的分時串口通信方法中,在所述主機向所述從機發送第一數據,所述從機接收到所述第一數據后延時預設時間向所述主機返回應答之后還包括:
[0010]若所述主機在所述第二預設時間內未收到應答,則重新向所述從機發送第一數據,直至接收到所述從機根據所述第一數據返回的應答信息,再根據所述應答信息向所述從機發送第二數據;反之,若經過多次第二預設時間,所述主機向所述從機發送第一數據的次數超過預設次數后,所述主機仍未收到所述從機返回的應答,則判斷為通信異常,并向用戶發出通信異常的告警信息。
[0011]在本發明實施例所述的分時串口通信方法中,所述配置參數包括波特率、數據位、停止位和奇偶校驗位。
[0012]在本發明實施例所述的分時串口通信方法中,所述第一預設時間為100ms,所述第二預設時間為Is。
[0013]在本發明實施例所述的分時串口通信方法中,所述預設次數大于或等于5次。
[0014]本發明實施例的另一目的在于提供一種分時串口通信系統,包括:連接線、主機和從機,所述主機包括參數配置模塊和第一處理器,所述從機包括第二處理器;
[0015]所述連接線,用于將主機和從機建立電連接;
[0016]所述參數配置模塊,用于獲取主機通信串口的配置參數,并根據所述配置參數對所述從機的通信串口進行參數配置;
[0017]所述第一處理器,用于控制所述主機向所述從機發送第一數據;
[0018]所述第二處理器,用于使所述從機接收到所述第一數據后延時第一預設時間向所述主機返回應答;
[0019]所述第一處理器,還用于若所述主機在第二預設時間內接收到所述從機返回的應答,則延時第一預設時間后向所述從機發送第二數據,所述第二預設時間大于所述第一預設時間。
[0020]在本發明實施例所述的分時串口通信系統中,所述第一處理器還用于:
[0021]若所述主機在所述第二預設時間內未收到應答,則重新向所述從機發送第一數據,直至接收到所述從機根據所述第一數據返回的應答信息,再根據所述應答信息向所述從機發送第二數據;反之,若經過多次第二預設時間,所述主機向所述從機發送第一數據的次數超過預設次數后,所述主機仍未收到所述從機返回的應答,則判斷為通信異常,并向用戶發出通信異常的告警信息。
[0022]在本發明實施例所述的分時串口通信系統中,所述配置參數包括波特率、數據位、停止位和奇偶校驗位。
[0023]在本發明實施例所述的分時串口通信系統中,所述第一預設時間為100ms,所述第二預設時間為Is。
[0024]在本發明實施例所述的分時串口通信系統中,所述預設次數大于或等于5次。
[0025]實施本發明實施例提供的一種分時串口通信方法及系統具有以下有益效果:
[0026]本發明實施例由于首先將主機和從機建立電連接;然后獲取主機通信串口的配置參數,并根據所述配置參數對所述從機的通信串口進行參數配置;最后采用所述主機向所述從機發送第一數據,所述從機接收到所述第一數據后延時第一預設時間向所述主機返回應答;若所述主機在第二預設時間內接收到所述從機返回的應答,則延時第一預設時間后向所述從機發送第二數據,并以此方式進行周而復始的通信,從而使得串口通信不受傳輸字節數的影響,避免了現有技術中存在的當傳輸字節數較大時,容易出現收發和重發之間通信沖突的問題,大大降低了通信誤碼率。
【附圖說明】
[0027]圖1是本發明第一實施例提供的分時串口通信方法的具體實現流程圖;
[0028]圖2是本發明第二實施例提供的分時串口通信方法的具體實現流程圖;
[0029]圖3是本發明第二實施例提供的分時串口通信方法的通信示意圖;
[0030]圖4是本發明實施例提供的分時串口通信系統的結構框圖。
【具體實施方式】
[0031]為了使本發明的目的、技術方案及優點更加清楚明白,以下結合附圖及實施例,對本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發明,并不用于限定本發明。
[0032]圖1示出了本發明第一實施例提供的分時串口通信方法的具體實現流程圖。參見圖1所示,本實施例提供的一種分時串口通信方法,包括:
[0033]在SlOl中,將主機和從機建立電連接。
[0034]在本實施例中,采用信號線將主機的通信串口和從機的通信串口連接起來,以使主機和從機之間建立電連接。
[0035]在S102中,獲取主機通信串口的配置參數,并根據所述配置參數對所述從機的通信串口進行參數配置。
[0036]在本實施例中,配置參數具體包括:所述配置參數包括波特率、數據位、停止位和奇偶校驗位。當主機和從機建立電連接后,由主機自動獲取自身通信串口的配置參數,并將所述配置參數下發至從機,由從機的CPU利用所述配置參數對自身的通信串口進行參數配置,以使從機通信串口和主機通信串口的波特率、數據位、停止位以及奇偶校驗位相互匹配,這樣從機和主機之間才能開始進行正常的串口通信。
[0037]在S103中,所述主機向所述從機發送第一數據,所述從機接收到所述第一數據后延時第一預設時間向所述主機返回應答。
[0038]在本實施例中,所述第一預設時間為100ms,所述從機接收到所述第一數據后會對所述第一數據進行處理,并在處理完成后延時10ms向主機返回接收到所述第一數據的應答信息,由于從機串口通信是按位分組進行傳送的,因此從機處理數據的時間是非常短暫的,相對于10ms可以忽略不計。
[0039]在S104中,若所述主機在第二預設時間內接收到所述從機返回的應答,則延時第一預設時間后向所述從機發送第二數據,所述第二預設時間大于所述第一預設時間。
[0040]在本實施例中,若主機在向從機發送第一數據后,在第二預設時間內接收到從機返回的應答信息,則說明第一數據傳輸成功,此時,主機會繼續向從機發送下一數據(即第二數據),并采用此種通信方式周而復始的在主機和從機之間進行通信。
[0041]以上可以看出,本實施例提供的分時串口通信方法由于在主機和從機之間進行通信時采用分時延遲處理,從而可以使串口通信不受傳輸字節數的影響,避免了現有技術中存在的當傳輸字節數較大時,容易出現收發和重發之間通信沖突的問題,大大降低了通信誤碼率。
[0042]圖2示出了本發明第二實施例提供的分時串口通信方法的具體實現流程圖。參見圖2所示,本實施例提供的分時串口通信方法包括:
[0043]在S201中,將主機和從機建立電連接;
[0044]在S202中,獲取主機通信串口的配置參數,并根據所述配置參數對所述從機的通信串口進行參數配置;
[0045]在S203中,所述主機向所述從機發送第一數據,所述從機接收到所述