一種用于串口通信控制的方法和通信串口的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于數(shù)字通信技術(shù)領(lǐng)域,具體地說是一種異步串口通信協(xié)議的自動(dòng)偵測(cè)方法。
【背景技術(shù)】
[0002]串口通信的概念非常簡單,串口按位(bit)發(fā)送和接收字節(jié)。盡管比按字節(jié)(byte)的并行通信慢,但是串口可以在使用一根線發(fā)送數(shù)據(jù)的同時(shí)用另一根線接收數(shù)據(jù)。它很簡單并且能夠?qū)崿F(xiàn)遠(yuǎn)距離通信。比如IEEE488定義并行通行狀態(tài)時(shí),規(guī)定設(shè)備線總長不得超過20米,并且任意兩個(gè)設(shè)備間的長度不得超過2米;而對(duì)于串口而言,長度可達(dá)1200 米。
[0003]在嵌入式設(shè)備使用通用異步收發(fā)傳輸器(UART)于上位機(jī)通信時(shí)(嵌入式設(shè)備和上位機(jī)都有UART),嵌入式設(shè)備與上位機(jī)PC之間的UART接口一共連接著5根線,分別是地線(GND),串口數(shù)據(jù)輸出線(TX),串口數(shù)據(jù)輸入線(RX),發(fā)送數(shù)據(jù)請(qǐng)求線(RTS)和清除發(fā)送(CTS)線。
[0004]在實(shí)現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中存在如下問題:上位機(jī)和嵌入式設(shè)備開始使用通用異步收發(fā)傳輸器之前需要為嵌入式設(shè)備和上位機(jī)設(shè)置相同的通信波特率,此舉十分不方便。另外嵌入式設(shè)備無法自動(dòng)適應(yīng)上位機(jī)使嵌入式設(shè)備的電量消耗比較大。
【發(fā)明內(nèi)容】
[0005]為此,需要提供一種串口通信控制的方法和實(shí)現(xiàn)該方法的串口
[0006]為實(shí)現(xiàn)上述目的,發(fā)明人提供了一種用于串口通信控制的方法,包括以下步驟:
[0007]上位機(jī)模式切換單元通過發(fā)送數(shù)據(jù)請(qǐng)求線向嵌入式設(shè)備輸出第一特征高低電平信號(hào),并將上位機(jī)切換到波特率適配模式;嵌入式設(shè)備的模式切換單元監(jiān)聽發(fā)送數(shù)據(jù)請(qǐng)求線上的信號(hào),當(dāng)判斷接收到的信號(hào)為第一特征高低電平信號(hào)時(shí),嵌入式設(shè)備切換到波特率適配模式,開始波特率適配方法;
[0008]所述波特率適配方法包括以下步驟:
[0009]初始化未嘗試的波特率的集合為全部可能的波特率的值的集合,接收序列生成單元輸出一串特征偵測(cè)序列;
[0010]S101、在未嘗試的波特率的集合中選取一個(gè)波特率作為嘗試波特率;
[0011]S102、嵌入式設(shè)備以嘗試波特率發(fā)送特征偵測(cè)序列;
[0012]S103、上位機(jī)按上位機(jī)的波特率采集收到的數(shù)據(jù)信息,并以上位機(jī)的波特率發(fā)送收到的數(shù)據(jù)信息;
[0013]S104、嵌入式設(shè)備以嘗試波特率采集收到的數(shù)據(jù)信息;
[0014]S105、判斷嵌入式設(shè)備采集到的數(shù)據(jù)信息和特征偵測(cè)序列是否一致,
[0015]S106若一致則結(jié)束此次自動(dòng)適配,并將所述嘗試波特率作為嵌入式設(shè)備的波特率;若不一致,則返回步驟S101,直到嵌入式設(shè)備采集到的數(shù)據(jù)信息和特征偵測(cè)序列一致或未嘗試過的波特率的集合為空。
[0016]進(jìn)一步,包括步驟:在開始波特率適配方法之前,設(shè)置停止位和奇偶校驗(yàn)分別為1和空。
[0017]進(jìn)一步,所述波特率適配方法還包括步驟:
[0018]當(dāng)檢測(cè)到未嘗試過的波特率的集合為空時(shí),設(shè)置停止位和奇偶校驗(yàn)位分別為未嘗試過的組合后,初始化未嘗試的波特率的集合為全部可能的波特率的值的集合,返回步驟S101,直至嵌入式設(shè)備采集到的數(shù)據(jù)信息和特征偵測(cè)序列一致;當(dāng)嵌入式設(shè)備采集到的數(shù)據(jù)信息和特征偵測(cè)序列一致時(shí),將所述嘗試波特率作為嵌入式設(shè)備的波特率,所述停止位和奇偶校驗(yàn)位作為嵌入式設(shè)備的停止位和奇偶校驗(yàn)位。
[0019]進(jìn)一步,其特征在于,還通過下述步驟調(diào)整串口波特率:
[0020]嵌入式設(shè)備操作清除發(fā)送線向上位機(jī)發(fā)送第二特征電平信號(hào),上位機(jī)的模式切換單元監(jiān)聽到嵌入式設(shè)備的第二特征電平信號(hào),根據(jù)第二特征電平信號(hào)對(duì)應(yīng)的波特率設(shè)置上位機(jī)的波特率。
[0021]進(jìn)一步,還包括下述步驟:
[0022]嵌入式設(shè)備的流量控制單元監(jiān)測(cè)串口在單位時(shí)間內(nèi)收發(fā)的信息量,當(dāng)單位時(shí)間內(nèi)收發(fā)的數(shù)據(jù)量低于第一設(shè)置值或高于第二設(shè)置值時(shí),嵌入式設(shè)備操作清除發(fā)送線向上位機(jī)發(fā)送第三特征電平信號(hào),上位機(jī)的模式切換單元監(jiān)聽到嵌入式設(shè)備的特征電平信號(hào)后,下調(diào)或上調(diào)上位機(jī)的波特率。
[0023]進(jìn)一步,還包括步驟,
[0024]開始所述權(quán)利要求1或權(quán)利要求3所述的波特率適配方法。
[0025]進(jìn)一步,還包括步驟,嵌入式設(shè)備的流量控制單元監(jiān)測(cè)串口在單位時(shí)間內(nèi)收發(fā)的信息量,當(dāng)單位時(shí)間內(nèi)收發(fā)的數(shù)據(jù)量低于第一設(shè)置值或高于第二設(shè)置值時(shí),使用權(quán)利要求4所述的方法下調(diào)或上調(diào)上位機(jī)的波特率。
[0026]進(jìn)一步,嵌入式設(shè)備的接口探測(cè)單元以設(shè)定的周期通過發(fā)送數(shù)據(jù)請(qǐng)求線向上位機(jī)發(fā)送特征序列信號(hào),上位機(jī)監(jiān)測(cè)到所述特征序列信號(hào)時(shí)進(jìn)入接口探測(cè)模式;嵌入式設(shè)備再通過串口數(shù)據(jù)輸出線向上位機(jī)發(fā)送接口探測(cè)信號(hào),處于接口探測(cè)模式的上位機(jī)在接收到上述接口探測(cè)信號(hào)后,將上述接口探測(cè)信號(hào)回傳;
[0027]若嵌入式設(shè)備有接收到任意數(shù)據(jù),則認(rèn)為上位機(jī)和嵌入式設(shè)備處于連接狀態(tài);否則若嵌入式設(shè)備在設(shè)定的周期內(nèi)未接收到任意數(shù)據(jù),則將嵌入式設(shè)備的波特率降低到llObit/s,然后或設(shè)置串口不再處理接收到的數(shù)據(jù)。
[0028]發(fā)明人還提供體重串口,所述串口包括模式切換單元、序列生成單元、序列比較單元、波特率管理單元;
[0029]所述模式切換單元用于當(dāng)需要啟動(dòng)波特率適配模式時(shí),通過發(fā)送數(shù)據(jù)請(qǐng)求線輸出第一特征高低電平信號(hào);并用于監(jiān)聽發(fā)送數(shù)據(jù)請(qǐng)求線上的信號(hào),當(dāng)判斷接收到的信號(hào)為第一特征高低電平信號(hào)時(shí),通信串口串口通信設(shè)備切換到波特率適配模式;
[0030]所述序列生成單元用于輸出一串用于波特率適配方法的特征偵測(cè)序列;
[0031]所述序列比較單元用于在波特率適配模式下判斷采集到的數(shù)據(jù)信息和特征偵測(cè)序列是否一致;
[0032]所述波特率管理單元用于在波特率適配模式下初始化未嘗試的波特率的集合為全部可能的波特率的值的集合,接收序列生成單元輸出的一串特征偵測(cè)序列;在未嘗試的波特率的集合中選取一個(gè)波特率作為嘗試波特率,以嘗試波特率發(fā)送特征偵測(cè)序列和以嘗試波特率采集收到的數(shù)據(jù)信息;
[0033]波特率管理單元還用于當(dāng)模式切換單元判斷接收到的信號(hào)為特征高低電平信號(hào)時(shí),模式切換單元把串通信串口口通信設(shè)備切換到波特率適配模式后,波特率管理單元按當(dāng)前波特率采集收到的數(shù)據(jù)信息,并以當(dāng)前波特率發(fā)送收到的數(shù)據(jù)信息。
[0034]進(jìn)一步,所述波特率管理單元還用于將停止位和奇偶校驗(yàn)分別為1和空。
[0035]進(jìn)一步,所述波特率管理單元還用于當(dāng)檢測(cè)到未嘗試過的波特率的集合為空時(shí),將停止位和奇偶校驗(yàn)位分別設(shè)置其為未嘗試過的組合后,初始化未嘗試的波特率的集合為全部可能的波特率的值的集合;當(dāng)嵌入式設(shè)備采集到的數(shù)據(jù)信息和特征偵測(cè)序列一致時(shí),將所述嘗試波特率作為嵌入式設(shè)備的波特率,所述停止位和奇偶校驗(yàn)位作為嵌入式設(shè)備的停止位和奇偶校驗(yàn)位。
[0036]進(jìn)一步,所述波特率管理單元還控制嵌入式設(shè)備操作清除發(fā)送線向上位機(jī)發(fā)送第二特征電平信號(hào);所述上位機(jī)的上位機(jī)的模式切換單元監(jiān)聽到嵌入式設(shè)備的第二特征電平信號(hào),根據(jù)第二特征電平信號(hào)對(duì)應(yīng)的波特率設(shè)置上位機(jī)的波特率。
[0037]進(jìn)一步,還包括流量控制單元,所述流量控制單元監(jiān)測(cè)串口在單位時(shí)間內(nèi)收發(fā)的信息量,當(dāng)單位時(shí)間內(nèi)收發(fā)的數(shù)據(jù)量低于第一設(shè)置值或高于第二設(shè)置值時(shí),操作清除發(fā)送線向上位機(jī)發(fā)送第三特征電平信號(hào),上位機(jī)的模式切換單元監(jiān)聽到嵌入式設(shè)備的特征電平信號(hào)后,上位機(jī)的模式切換單元下調(diào)或上調(diào)上位機(jī)的波特率。
[0038]進(jìn)一步,還包括接口探測(cè)單元,所述接口探測(cè)單元用于以設(shè)定的周期通過發(fā)送數(shù)據(jù)請(qǐng)求線向上位機(jī)發(fā)送特征序列信號(hào),上位機(jī)監(jiān)測(cè)到所述特征序列信號(hào)時(shí)進(jìn)入接口探測(cè)模