專利技術(shù)交底自適應(yīng)速率串口黃建剛_第1頁
專利技術(shù)交底自適應(yīng)速率串口黃建剛_第2頁
專利技術(shù)交底自適應(yīng)速率串口黃建剛_第3頁
專利技術(shù)交底自適應(yīng)速率串口黃建剛_第4頁
專利技術(shù)交底自適應(yīng)速率串口黃建剛_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

技術(shù)交底書8/9該技術(shù)發(fā)明人依次是(須是自然人,可以是1人或多人):黃建剛,陳紹祥,羅正華技術(shù)溝通直接聯(lián)系人電話術(shù)資料往來郵箱:hunter_huangjg@163.com本專利申請名稱名稱不得使用人名、地名、商標(biāo)、型號及商業(yè)宣傳用語;更不得使用代號或含糊不清的詞匯。一種通用的新型串行接口速率自適應(yīng)實時算法所屬技術(shù)領(lǐng)域?qū)懨鞅旧暾埶鶎倩蛘咧苯討?yīng)用的具體技術(shù)領(lǐng)域。 計算機通信背景技術(shù)背景技術(shù)是指該行業(yè)領(lǐng)域的情況介紹;結(jié)合該介紹,客觀地指出現(xiàn)有技術(shù)中存在的問題和缺點;在可能的情況下,說明存在這種問題和缺點的原因以及解決這些問題時曾經(jīng)遇到的困難;如對于現(xiàn)有技術(shù)的結(jié)構(gòu)用文字難以描述清楚時,可附圖說明。1.串行通信的設(shè)備成本低,使用簡單,易于實現(xiàn),可實現(xiàn)計算機的遠(yuǎn)程通信,因此串行通信在計算機通信中應(yīng)用非常普遍,并起著非常重要的作用。2.在通信過程中,數(shù)據(jù)的傳送速率稱為“波特率“,只有通信雙方采用相同的波特率和通信格式時,才能實現(xiàn)數(shù)據(jù)的正確傳輸。3.由于支持串口通信的設(shè)備多種多樣,波特率和通信格式各不相同,這為串行通信設(shè)備的使用帶來不便,特別是對于通信速率動態(tài)變化的情況。如果能夠?qū)崿F(xiàn)串行接口速率的自適應(yīng),無疑會提高串行設(shè)備使用的靈活性和通用性,從而使串口通信設(shè)備具備“即插即用”能力。4.目前,波特率自適應(yīng)的常用方法主要有兩種:標(biāo)準(zhǔn)波特率窮舉法和碼元寬度實時檢測法。標(biāo)準(zhǔn)波特率窮舉法要求數(shù)據(jù)終端傳輸數(shù)據(jù)所采用的波特率必須在有限的幾個固定數(shù)值之間變化,如標(biāo)準(zhǔn)波特率序列。串行設(shè)備啟動后,逐個嘗試以不同的波特率接收數(shù)據(jù)終端發(fā)出的特征字符,直到能正確接收為止。碼元寬度實時檢測法要求數(shù)據(jù)終端按照約定發(fā)送特征字符,串行設(shè)備測量輸入數(shù)據(jù)的碼元寬度,而后計算出待測的波特率。該方法比標(biāo)準(zhǔn)波特率窮舉法具有更大的靈活性,是目前應(yīng)用比較廣泛的一種自適應(yīng)方法。5.以上兩種方法都具有較大的局限性。標(biāo)準(zhǔn)波特率窮舉法只能適應(yīng)有限的幾個固定波特率;碼元寬度實時檢測法要求串行設(shè)備發(fā)送的數(shù)據(jù)為約定的特征字符或要求接收波特率和發(fā)送波特率具有一定的比例關(guān)系。兩種方法都需要對多種情況進行判斷比較,實時性較差。上述局限性降低了使用上的靈活性和通用性,也難以實現(xiàn)異種串行通信設(shè)備間的互連互通,難以適應(yīng)波特率的動態(tài)變化。6.針對上述問題,提出一種基于碼元寬度實時檢測法的新型串行接口波特率自適應(yīng)算法,能夠自適應(yīng)的識別串行設(shè)備使用的波特率。該算法根據(jù)串行通信的起止式異步通信協(xié)議的協(xié)議特點,在不需要串行設(shè)備發(fā)送特征字符的情況下,即可實現(xiàn)對一定范圍內(nèi)任意波特率的自適應(yīng)識別。所適應(yīng)的波特率范圍僅受限于系統(tǒng)時鐘頻率。當(dāng)前,未見基于此算法的串行通信設(shè)備在計算機通信中的應(yīng)用。本專利申請所要解決的技術(shù)問題針對現(xiàn)有技術(shù)中存在的缺陷和不足,說明清楚本發(fā)明的目的是什么。本專利介紹了一種新型的串行接口波特率自適應(yīng)算法,該算法能解決以下技術(shù)問題:1.實時檢測碼元寬度,具備自適應(yīng)一定范圍內(nèi)任意波特率的能力,解決了現(xiàn)有自適應(yīng)方法僅支持部分特定波特率的問題,有利于提高串行通信設(shè)備的靈活性。2.算法對波特率的檢測,不要求接收波特率和發(fā)送波特率具備某一比例關(guān)系,進一步簡化算法,降低對發(fā)送方的要求,使波特率的檢測更準(zhǔn)確、更快速、更可靠,應(yīng)用更方便。3.算法不依賴于串行設(shè)備發(fā)送的特征字符,僅要求發(fā)送設(shè)備在改變速率時其字符最低比特為1,最大限度降低對發(fā)送設(shè)備的要求,解決了現(xiàn)有自適應(yīng)方法難以與異種設(shè)備進行通信的局限性。4.實時檢測碼元寬度,實時更新接收波特率,具備低波特率對高波特率的快速適應(yīng)能力,支持連續(xù)數(shù)據(jù)傳送過程中波特率從低到高的動態(tài)變化,提高系統(tǒng)的可靠性、安全性,能在復(fù)雜環(huán)境下使用。5.算法能夠檢測出低于當(dāng)前波特率的新的波特率,并具備高波特率對低波特率的快速適應(yīng)能力,解決現(xiàn)有自適應(yīng)方法對波特率動態(tài)變化的有限支持的問題。6.通過本算法實時檢測接收到的波特率,自動更新本端發(fā)送波特率,實現(xiàn)接收波特率和發(fā)送波特率實時同步,真正做到實時檢測,實時自適應(yīng),實時匹配收發(fā)波特率。解決了現(xiàn)有自適應(yīng)方法實時性差,判決時間長,適應(yīng)時延大,使用不方便的問題。本專利申請的技術(shù)方案簡介對于產(chǎn)品類的發(fā)明創(chuàng)造,應(yīng)結(jié)合附圖,清楚、完整地寫明構(gòu)件名稱、各構(gòu)件之間的聯(lián)接關(guān)系、動作原理和工作程序,以同行能看懂為準(zhǔn);對于方法類的發(fā)明創(chuàng)造,譬如新的壓制工藝,請說明其工藝步驟及工藝條件,并提供工藝流程圖。本自適應(yīng)算法可以由FPGA或CPLD實現(xiàn),也可以由軟件通過定時器實現(xiàn)。用FPGA或CPLD時效率更高,速度更快,計算更精確。本算法可以適應(yīng)的波特率范圍與系統(tǒng)的時鐘頻率有關(guān)。設(shè)系統(tǒng)時鐘為Fs,按16倍采樣計算,可以適應(yīng)的波特率在1bps~(Fs/16)bps之間。如果Fs是100MHz,則可以適應(yīng)的波特率范圍為1bps~6.25Mbps。本算法唯一的設(shè)定是:當(dāng)發(fā)送端需要改變波特率時,需要發(fā)送的第一個數(shù)據(jù)的最低位為1,以區(qū)別出超始位和數(shù)據(jù)位。除此以外,不需要任何其它特殊的設(shè)定。本算法可以支持兩種數(shù)據(jù)發(fā)送方式:一是按數(shù)據(jù)的最高有效位(MSB)到最低有效位(LSB)的順序發(fā)送;當(dāng)需要改變波特率時,需要MSB為1。二是按數(shù)據(jù)的最低有效位(LSB)到最高有效位(MSB)的順序發(fā)送;當(dāng)需要改變波特率時,需要LSB為1。在下述的原理性描述當(dāng)中,不指定發(fā)送順序。本算法支持的數(shù)據(jù)間的Idle信號(空閑信號,為高電平)最少為1比特,最多不限。在下述的原理性描述當(dāng)中,以信號格式8N1為例進行說明。8N1表示數(shù)據(jù)位為8位,無奇偶校驗位,1位停止位。波特率變換規(guī)則如下:串行口發(fā)送方如果需要改變波特率,有以下兩種方式:1).Idle信號小于9比特(通信格式為8N1,一次數(shù)據(jù)傳送最少為10比特,為不發(fā)生誤判,設(shè)定9比特為判斷新幀標(biāo)志NF的界限。本算法支持的Idle最少可到1比特)時長時,如果發(fā)送方需要改變波特率,只需要在發(fā)送第一位比特位為1的任意數(shù)據(jù)時即可改變波特率。算法支持?jǐn)?shù)據(jù)間波特率由低向高方向的無縫切換。這種方式適用于發(fā)送連續(xù)數(shù)據(jù)的過程中的波特率變換。2).Idle信號大于等于9比特時長時,默認(rèn)波特率可以任意改變,此時需要發(fā)送方在發(fā)送第一個數(shù)據(jù)時,確保其第一位比特為1即可(否則會出現(xiàn)誤判)。這種情況確保間斷發(fā)送的數(shù)據(jù)之間能夠以不同的波特率收發(fā)數(shù)據(jù)。串行接收方對上述兩種方式實現(xiàn)波特率自適應(yīng)檢測的原理如下圖1和圖2所示。圖1實現(xiàn)發(fā)送連續(xù)數(shù)據(jù)時波特率動態(tài)切換的檢測,適用于低波特率向高波特率的動態(tài)切換。圖2實現(xiàn)任意波特率間動態(tài)切換的檢測。圖1工作原理如下:3).在串行口接收到Idle(空閑信號,為高電平)的時候,定時器T1對Idle信號的長度按上次檢測到的采樣周期Ta(初始化時設(shè)定Ta為最大采樣周期)進行測量,如果大于等于9個比特的長度,說明串行口在發(fā)送完上一次的數(shù)據(jù)后,有較長時間沒有數(shù)據(jù)發(fā)送,設(shè)定新幀標(biāo)志NF為1。4).如果檢測到串行接收信號有下降沿到達(dá),表明新的數(shù)據(jù)開始發(fā)送,首先過來的低電平是起始比特,立即啟動定時器T1開始對起始比特進行計時。如果上升沿到達(dá),表明起始比特結(jié)束,此時停止定時器T1,獲取定時值為T0。清除新幀標(biāo)志NF,更新接收波特率SR和發(fā)送波特率ST的采樣周期為T0值。在上升沿過后可以馬上對后繼的數(shù)據(jù)進行采樣。5).在當(dāng)前8位數(shù)據(jù)的傳送過程當(dāng)中,在每個降沿到來時利用定時器T1對每個低電平進行檢測,在上升沿到來時可得某一定時值T1。將T1與Ta進行比較,如果T1=Ta(有一位數(shù)據(jù)比特為0)或T1>Ta(有連續(xù)兩位以上數(shù)據(jù)比特為0),表明采樣周期正確。如果T1<Ta則表明數(shù)據(jù)在傳送過程中波特率發(fā)生了變化,用T1替換Ta,直至8位數(shù)據(jù)采樣結(jié)束。第一個數(shù)據(jù)傳送結(jié)束后是Idle信號,根據(jù)記錄的Ta對Idle信號進行檢測。,如果Idle信號短于9比特,則新幀標(biāo)志仍然為0。否則新幀標(biāo)志NF為1。6).在下一個數(shù)據(jù)開始發(fā)送時,按同樣的方法對起始比特進行測量,得到定時器1的值T2。如果新幀標(biāo)志NF為0,則比較T0和T2的值,如果T2小于T0,表明數(shù)據(jù)以新的波特率在發(fā)送,并且新的波特率大于上一次數(shù)據(jù)發(fā)送的波特率,因此以T2為新的采樣周期更新SR和ST的采樣周期,并立即采用新的T2為周期對后繼的數(shù)據(jù)比特進行采樣。如果NF為1,則不比較T2和T0的值,以T2的值為SR和ST的新的周期值,對后繼的數(shù)據(jù)比特進行采樣。上述過程實現(xiàn)了串行口發(fā)送連續(xù)數(shù)據(jù)時波特率動態(tài)切換的檢測。這種情況適用于波特率由低到高的切換。如果波特率由高到低,則在數(shù)據(jù)的第一比特為0的情況下容易導(dǎo)致誤判。這種情況不符合本算法的設(shè)定要求。下圖2實現(xiàn)任意波特率間的動態(tài)切換。圖2的工作原理如下:7).在串行口接收到Idle的時候,定時器T1對Idle信號的長度按上次檢測到的采樣周期Ta(初始化時設(shè)定Ta為最大采樣周期)進行測量,如果小于9個比特的長度,設(shè)定新幀標(biāo)志NF為0,否則NF為1。8).如果檢測到串行接收信號有下降沿到達(dá),表明有數(shù)據(jù)開始發(fā)送,首先過來的低電平是起始比特,立即啟動定時器T1對起始比特進行計時。如果上升沿到達(dá),表明起始比特結(jié)束,此時定時器T1的值為T3。如果NF為0,按第6)條進行判斷是否需要更新波特率。9).在8位數(shù)據(jù)傳送結(jié)束后是停止位和Idle信號。如果Idle信號大于9比特,說明串行口在發(fā)送完上一次的數(shù)據(jù)后,有較長時間沒有數(shù)據(jù)發(fā)送,設(shè)定新幀標(biāo)志NF為1,否則為0。10).在新的數(shù)據(jù)開始發(fā)送時,發(fā)方需要發(fā)送的第一個數(shù)據(jù)的第一比特要為1以標(biāo)明波特率是否改變。在檢測到下降沿后按第8)條的方法對起始比特進行測量,得到定時器值為T4。如果新幀標(biāo)志NF為1,根據(jù)波特率變換規(guī)則第2)條,則以T4為新的采樣周期,更新SR和ST,并立即采用新值T4對后繼的數(shù)據(jù)比特進行采樣。如果NF為0,則比較T3和T4的值,以值較小者為新的采樣周期,更新SR和ST,并對后繼的數(shù)據(jù)比特進行采樣。上述過程實現(xiàn)了串行口各數(shù)據(jù)幀之間任意波特率動態(tài)切換的檢測。本算法的軟件流程圖如下圖3所示:圖3流程圖說明如下:11).初始化:上電啟動后,進行初始化,設(shè)定當(dāng)前波特率SR和ST為任一值(支持1bps~(Fs/16)bps的范圍),設(shè)定波特率檢測定時器T1為0,清除新幀標(biāo)志NF,設(shè)定最大采樣周期為Ta。12).流程圖中1#判決條件啟動對起始比特的檢測。13).流程圖中2#判決條件實現(xiàn)上述第3),7),9)條的功能。新幀標(biāo)志NF用于區(qū)分連續(xù)數(shù)據(jù)傳送中的波特率切換和不同幀數(shù)據(jù)間的波特率切換。14).流程圖中3#和4#判決條件用于實現(xiàn)上述第5)條的功能。15).流程圖中5#判決條件和7#執(zhí)行框?qū)崿F(xiàn)上述第4),10)條的功能。16).流程圖中6#判決條件和7#執(zhí)行框?qū)崿F(xiàn)上述第6)條的功能。17).流程圖中7#執(zhí)行框在更新發(fā)送波特率ST時,如果發(fā)送側(cè)正在發(fā)送數(shù)據(jù),則不會馬上使用新的波特率,需等待當(dāng)前數(shù)據(jù)發(fā)送完成后,對下一數(shù)據(jù)的第一比特位進行判斷。如果為1,則采用更新后的波特率ST進行數(shù)據(jù)的發(fā)送;如果為0,則仍然以原有的波特率發(fā)送數(shù)據(jù),發(fā)送完成后再做上述判斷。通過這種方式可以實現(xiàn)收發(fā)雙方的自動速率匹配。上述匹配過程中可能會導(dǎo)致部分?jǐn)?shù)據(jù)丟失。因此,要求在接收側(cè)檢測到波特率發(fā)生改變后,對于發(fā)送側(cè)要進行協(xié)調(diào),能夠在發(fā)送新的數(shù)據(jù)時馬上使用新的波特率,降低數(shù)據(jù)丟失的風(fēng)險。本算法可以由軟件實現(xiàn),但其實時性會受到軟件所采用的硬件平臺、操作系統(tǒng)、程序執(zhí)行效率等的限制。本算法建議用FPGA或CPLD實現(xiàn)。在上述流程圖中3#,5#和6#判決條件和7#執(zhí)行框可以實現(xiàn)并行處理,能夠大大提高算法的實時性。在判決波特率改變后,只需要3個系統(tǒng)時鐘周期即可完成7#執(zhí)行框的功能,實現(xiàn)接收波特率SR和發(fā)送波特率ST的更新。本專利申請與以往技術(shù)相比的有益效果清楚地寫明本申請與現(xiàn)有技術(shù)相比所具有的有益效果;有益效果是指由創(chuàng)新的技術(shù)特征直接帶來的、必然產(chǎn)生的技術(shù)效果。1.本算法所支持的波特率范圍僅受限于系統(tǒng)時鐘,并且在所支持的范圍內(nèi),可以實現(xiàn)連續(xù)的波特率檢測及自適應(yīng),而不僅僅是只支持某此特定的波特率。2.本算法不依賴于任何特定字符,在改變波特率及檢測波特率時僅要求發(fā)送設(shè)備發(fā)送第一比特為1的任意數(shù)據(jù),這樣最大限度降低對發(fā)送設(shè)備的要求,能夠?qū)崿F(xiàn)異種設(shè)備間的互聯(lián)互通,采用本算法的所有設(shè)備可以實現(xiàn)“即插即用”。3.本算法支持波特率的任意切換,并且支持最少Idle為1比特寬度,能夠有效提高系統(tǒng)的傳送效率,使采用本算法的串行通信設(shè)備且有高靈活性,可靠性和安全性,支持在復(fù)雜環(huán)境下使用。4.通過算法實時檢測接收到的波特率,自動更新本端發(fā)送波特率,實現(xiàn)接收波特率和發(fā)送波特率實時同步,真正做到實時檢測,實時更新,實時自適應(yīng),實時匹配收發(fā)雙方波特率。解決了現(xiàn)有自適應(yīng)方法實時性差,判決時間長,適應(yīng)時延大,使用不方便的問題。5.本算法簡單可靠,設(shè)定單一,易于實現(xiàn),對硬件平臺和軟件系統(tǒng)要求很低。采用軟件實現(xiàn)時會因軟件所采用的硬件平臺、操作系統(tǒng)、程序執(zhí)行效率等而使實時性較差,但仍然可以實現(xiàn)在停止比特過后及時更新接收和發(fā)送波特率。如果采用FPGA或CPLD等硬件實現(xiàn),則可以實現(xiàn)在停止比特過后僅需三個系統(tǒng)時鐘即可更新接收和發(fā)送波特率。附圖附圖應(yīng)為示意圖;使人能夠直觀地、形象的理解本專利申請的技術(shù)方案;附圖不能是照片和效果圖,只能是清晰的線條圖;實用新型必須有附圖。(請同時將附圖保存為制圖格式發(fā)送給我們,如CAD、CORELDRAW格式等)附圖見圖1此項專利申請的具體詳細(xì)的實施方式對于產(chǎn)品類的發(fā)明,實施例是實現(xiàn)發(fā)明創(chuàng)造的具體化設(shè)計,這一部分應(yīng)結(jié)合附圖進行說明,并將附圖中的標(biāo)號標(biāo)注在相應(yīng)的零件之后。每一幅附圖均應(yīng)說明,每一個有標(biāo)號的零件在實施例中至少提到一次;必要時可說明其功能、動態(tài)構(gòu)造和使用方法。如有多個實施例,則每個實施例均應(yīng)具體說明;對于方法類的發(fā)明,應(yīng)詳細(xì)說明其工藝過程、操作步驟及具體的工藝參數(shù),可提供多種工藝參數(shù)結(jié)合的實施例方案。本算法簡單可靠,設(shè)定單一,易于實現(xiàn)。以FPGA/CPLD的實現(xiàn)為例,采用Verilog語言實現(xiàn),整個速率檢測代碼在70行以內(nèi)(含注釋行)。參考實例如下,程序中,為實現(xiàn)方便,將判決NF的最少Idle長度控制在16比特。本實例僅供參考。`timescale1ns/100psmoduleSpeed_Check(inputwireclk,//Clockis100MMHzinputwirerst,inputwirerxd,outputreg[12:0]Speed_New//UsedtoudpateReceivingsamplerateSRandTransmittingrateST.);//Interalvariables.//Usedforcheckingspeed.regNF;//indicatestartbitlocation.reg[16:0]Bit_cyc_cnt,Bit_cyc_min;//searchtheminvalueofbit.reg[1:0]Pkt_STATUS;parameterNFS=2'b01,Pkt_CNT=2'b10;//usedtocheckrisingedgeandfallingedgeofrxd.regrxd_delay1,rxd_delay2,rxd_Dly3,rising_rxd,falling_rxd,rising_rxd_dly,falling_rxd_dly;//measureUARTspeed.always@(posedgeclk)if(rst==0)begin //ResetisactivelowBit_cyc_cnt<=0;Bit_cyc_min<=17'h1ffff;Pkt_STATUS<=NFS;NF<=1;rxd_delay1<=0;rxd_delay2<=1;rxd_Dly3<=1;rising_rxd<=0;falling_rxd<=0;rising_rxd_dly<=0;falling_rxd_dly<=0;Speed_New<=13'd391;//defaultUARTspeedissetto256Kbps.Clockis100MHz,thenweget:10^8/256000=391.endelsebegin//Eachrising_edgeofclockcheckrising_edgeandfalling_edgeofrxdsignal.rxd_delay1<=~rxd;rxd_delay2<=~rxd_delay1;rxd_Dly3<=rxd_delay2;falling_rxd<=rxd_delay1&rxd_delay2;//Gettingthefallingedgeofrxdrising_rxd<=~(rxd_delay1|rxd_delay2);//Gettingtherisingedgeofrxdrising_rxd_dly<=rising_rxd;falling_rxd_dly<=falling_rxd; //NFcontrolprocess.BasedontheSTARTbitrate,tomatchwholepacketspeed. //ItdoesnotneedspeciallBYTEtoswitchspeeds,andDynamicallysupportsspeedchangesframebyframe. case(Pkt_STATUS) NFS:begin Bit_cyc_cnt<=0; if(falling_rxd==1)Pkt_STATUS<=Pkt_CNT;//Whenstartbitiscoming

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論