欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種串口波特率自適應(yīng)系統(tǒng)和方法與流程

文檔序號:11582598閱讀:522來源:國知局
一種串口波特率自適應(yīng)系統(tǒng)和方法與流程

本發(fā)明涉及串口通信技術(shù)領(lǐng)域,尤其涉及一種串口波特率自適應(yīng)系統(tǒng)和方法。



背景技術(shù):

現(xiàn)如今串口(rs232,rs485等)控制是一種方便、高效的控制方式,大量應(yīng)用于多主機通信,以及人機控制接口。而串口通信需要發(fā)送和接收傳輸速率一致,才能保證數(shù)據(jù)的正確傳輸,所以在發(fā)送和接收時需要進行波特率匹配,現(xiàn)在一般的做法是提前預知發(fā)送端波特率,接收端固定接收;或者提前預知接收端需要的波特率,用戶用指定的波特率發(fā)送,這樣操作麻煩,且拓展性差,容易由于疏忽導致數(shù)據(jù)異常。



技術(shù)實現(xiàn)要素:

本發(fā)明的目的是針對上述現(xiàn)有技術(shù)存在的缺陷,提供一種串口波特率自適應(yīng)系統(tǒng)和方法。

本發(fā)明提供的串口波特率自適應(yīng)系統(tǒng)包括:緩存模塊、波特率解析模塊、第一串口接收模塊、串口發(fā)送模塊。

串口電平緩存模塊,用于實時接收并緩存串口電平信號,輸出延遲的串口電平信號;

波特率解析模塊,用于實時對緩存的串口電平信號進行波特率解析,解析出串口電平信號的最小脈寬,根據(jù)該最小脈寬得出串口的波特率;向串口電平緩存模塊發(fā)送輸出延遲的串口電平信號的使能指令;

串口接收模塊,用于根據(jù)波特率解析模塊實時解析的波特率接收延遲的串口電平信號,得出串口數(shù)據(jù);

緩存速度匹配模塊,用于匹配串口接收模塊和串口發(fā)送模塊的串口波特率;

串口發(fā)送模塊,用于發(fā)送串口電平信號;

所述系統(tǒng)還包括濾波器,用于在串口電平緩存模塊接收串口電平信號之前濾除串口電平信號的毛刺。

所述串口接收模塊還包括串口解析模塊,用于根據(jù)解析的波特率對串口數(shù)據(jù)進行解析,得出串口數(shù)據(jù);所述串口發(fā)送模塊還包括波特率轉(zhuǎn)換模塊,用于轉(zhuǎn)換串口數(shù)據(jù)波特率為指定波特率,以串口電平信號的形式發(fā)送出去。

所述波特率解析模塊通過最小公倍數(shù)法計算串口電平信號的最小脈寬。

所述串口電平緩存模塊為fifo緩存方式。

所述波特率解析模塊還包括根據(jù)一定的時機進行波特率解析,所述時機包括:串口電平緩存模塊接收到5個或以上的正常串口電平信號的跳變電平。

本發(fā)明提供的串口波特率自適應(yīng)方法,包括以下步驟:

步驟s100:濾除串口電平信號的毛刺;

步驟s101:實時接收并緩存串口電平信號;

步驟s102:實時接收并緩存串口電平信號;

步驟s103:當串口電平緩存模塊接收到5個或以上的正常串口電平信號的跳變電平時,對緩存的串口電平信號進行波特率解析,解析出串口電平信號的最小脈寬,根據(jù)該最小脈寬得出串口的波特率;向串口電平緩存模塊發(fā)送延遲輸出串口電平的使能指令;

步驟s104:根據(jù)波特率解析模塊實時解析的波特率接收延遲的串口電平信號,得出串口數(shù)據(jù);

步驟s105:匹配串口接收模塊和串口發(fā)送模塊的波特率;

步驟s106:轉(zhuǎn)換串口數(shù)據(jù)波特率為指定波特率,向外發(fā)送串口電平信號。

所述步驟s104中得出串口數(shù)據(jù)具體包括:根據(jù)解析的波特率對串口數(shù)據(jù)進行解析,得出串口數(shù)據(jù)。

所述步驟s103中查找串口電平信號的最小脈寬具體包括:通過最小公倍數(shù)法計算串口電平信號的最小脈寬。

所述步驟s101中實時接收并緩存串口電平信號的緩存方式為fifo。

與現(xiàn)有技術(shù)相比,本發(fā)明可實時解析串口電平波特率,并解析出串口數(shù)據(jù),無提預知發(fā)送端波特率,接收端固定接收,使用戶傳輸串口數(shù)據(jù)操作更簡便。本發(fā)明不需要通過固定的數(shù)據(jù)幀頭來識別波特率,通過嚴格的時序邏輯和緩存控制,防止了波特率識別過程中數(shù)據(jù)的丟失。此外,本發(fā)明可直接解析出標準波特率,波特率解析準確率高,資源消耗低,可實現(xiàn)幀同步和速度匹配,完全還原實時數(shù)據(jù),具有低延遲,拓展性強,魯棒性好。

附圖說明

圖1是本發(fā)明串口波特率自適應(yīng)系統(tǒng)功能模塊圖;

圖2是本發(fā)明多機總線單向控制單一設(shè)備的示例圖;

圖3是本發(fā)明多機雙向通信的示例圖;

圖4是本發(fā)明串口波特率自適應(yīng)方法的流程圖;

圖5是本發(fā)明解析并得出串口數(shù)據(jù)的時序邏輯控制流程圖。

具體實施方式

下面結(jié)合附圖和實施例對發(fā)明進行詳細的說明。

如圖1所示,本發(fā)明提供的串口波特率自適應(yīng)系統(tǒng)包括:濾波器、緩存模塊、波特率解析模塊、第一串口接收模塊、串口發(fā)送模塊。

濾波器,用于在串口電平緩存模塊接收串口電平信號之前濾除串口電平信號的毛刺;

串口電平緩存模塊,用于實時接收并緩存串口電平信號,輸出延遲的串口電平信號;

波特率解析模塊,用于實時對緩存的串口電平信號進行波特率解析,查找串口電平信號的最小脈寬,根據(jù)該時長得出串口的波特率;向串口電平緩存模塊發(fā)送延遲輸出串口電平的使能指令;

串口接收模塊,用于根據(jù)波特率解析模塊實時解析的波特率接收延遲的串口電平信號,得出串口數(shù)據(jù);

緩存速度匹配模塊,用于匹配串口接收模塊和串口發(fā)送模塊的串口波特率;

串口發(fā)送模塊,用于發(fā)送串口電平信號。其中,串口發(fā)送模塊還包括波特率轉(zhuǎn)換模塊,用于轉(zhuǎn)換串口數(shù)據(jù)波特率為指定波特率,以串口電平信號的形式發(fā)送出去。

本發(fā)明中,濾波器對接收的任一標準波特率(如:1200、2400、4800、9600、19200、38400、115200等)的串口信號進行一定頻率范圍的濾波處理,消除信號波上抖動的毛刺信號,以消除毛刺信號對于后續(xù)對于串口信號波特率識別解析的影響。

串口信號進行濾波處理后以先進先出(fifo)的方式在串口電平緩存模塊進行實時緩存,波特率解析模塊實時對緩存的串口電平信號進行波特率解析,通過最小公倍數(shù)法計算串口電平信號的最小脈寬,根據(jù)該時長計算得出串口的波特率。解析后的串口電平數(shù)據(jù)依然緩存在串口電平緩存模塊。其中,波特率解析模塊根據(jù)一定的時機進行波特率解析,所述時機為:串口電平緩存模塊接收到5個或以上的正常串口電平信號的跳變電平。

波特率解析模塊解析出波特率后向串口電平緩存模塊發(fā)送延遲輸出串口電平的使能指令,串口電平緩存模塊以fifo的工作方式輸出延遲的串口電平信號rx_delay。通過這種控制方式,可保證數(shù)據(jù)在進行波特率解析的時候緩存不被丟失。

串口接收模塊根據(jù)波特率解析模塊實時解析的波特率接收延遲的串口電平信號即rx_delay信號,并通過串口接收模塊的串口解析模塊根據(jù)解析的波特率對串口數(shù)據(jù)進行解析,得出串口數(shù)據(jù)rx_data[7:0]。此時,串口數(shù)據(jù)rx_data[7:0]可以轉(zhuǎn)換成其他數(shù)據(jù)格式進行傳輸出去。

緩存速度匹配模塊匹配串口接收模塊和串口發(fā)送模塊的串口波特率,使串口數(shù)據(jù)得以正確的串口發(fā)送出去。

圖2為本發(fā)明多機總線單向控制單一設(shè)備的一個示例圖,多個串口以不同波特率向本發(fā)明的系統(tǒng)發(fā)送串口電平信號,經(jīng)過本系統(tǒng)識別解析出波特率及串口數(shù)據(jù)后,將其轉(zhuǎn)換波特率以指定的波特率向被控設(shè)備發(fā)送。

圖3為本發(fā)明多機雙向通信的一個示例圖,多個串口以不同波特率向系統(tǒng)發(fā)送串口電平信號,經(jīng)過識別解析出波特率及串口數(shù)據(jù)后,發(fā)送給分發(fā)器,分發(fā)器將不同串口數(shù)據(jù)分發(fā)至各主機,串口數(shù)據(jù)發(fā)送至各主機前通過波特率轉(zhuǎn)換,以指定的波特率向主機發(fā)送出。

由于實際應(yīng)用中,算法由fpga(或cpld)實現(xiàn),資源相對敏感,很多在cpu上的算法需要進行變通才能得以實現(xiàn),例如求最小脈寬一般采用的是碾轉(zhuǎn)求余法,這在普通無硬件求余模塊的fpga上資源的消耗是巨大的,本發(fā)明根據(jù)串口信號的特性采用減法,減少了系統(tǒng)資源的消耗。

波特率誤差的適應(yīng)性一般由于設(shè)備自身或者線路傳輸?shù)脑?,串口信號會發(fā)生畸變,對于檢測到的脈寬t有:

所以對于波特率fb,由檢測出的脈寬t、實際電平包含的位數(shù)n和信號畸變差三個參數(shù)共同決定。本發(fā)明能消除畸變偏差,在接收到5個或以上的正常串口電平信號的跳變電平時解析波特率,即經(jīng)過至少5次采樣來確定波特率,經(jīng)證明,經(jīng)過5次以上采樣一定能確定標準波特率,而非疑似波特率,保證了準確率的同時也省去了判斷疑似波特率是否為標準波特率的步驟,提高了效率,節(jié)省了一定的系統(tǒng)資源。

本發(fā)明能進行輸入端數(shù)據(jù)幀的分離,并實時根據(jù)不同幀的數(shù)據(jù)進行各自解析,這樣能將多個不同波特率的串口源通過線與方式連接到總線上,輸出端即串口發(fā)送模塊能按設(shè)定的波特率分離輸出,這樣使用者不必考慮各個設(shè)備波特率兼容的問題。本發(fā)明將串口速度匹配,對于前端高速的信號,轉(zhuǎn)變?yōu)榈退俅谛盘枙r,可保證數(shù)據(jù)的緩存輸出。

如圖4所示,本發(fā)明還提供了一種串口波特率自適應(yīng)方法,具體包括以下步驟:

步驟s100:濾除串口電平信號的毛刺;

步驟s101:實時接收并以fifo方式緩存串口電平信號;

步驟s102:當串口電平緩存模塊接收到5個或以上的正常串口電平信號的跳變電平時,對緩存的串口電平信號進行波特率解析,通過最小公倍數(shù)法解析計算出串口電平信號的最小脈寬,根據(jù)該最小脈寬得出串口的波特率;向串口電平緩存模塊發(fā)送延遲輸出串口電平的使能指令;

步驟s103:根據(jù)實時解析的波特率接收延遲的串口電平信號,根據(jù)解析的波特率對串口數(shù)據(jù)進行解析,得出串口數(shù)據(jù);

步驟s104:匹配串口接收模塊和串口發(fā)送模塊的波特率;

步驟s105:轉(zhuǎn)換串口數(shù)據(jù)波特率為指定波特率,向外發(fā)送串口電平信號。

其中,步驟s104中得出的串口數(shù)據(jù)可轉(zhuǎn)換成其他數(shù)據(jù)形式進行傳輸。

下面從具體的時序邏輯控制來對以上步驟中解析得出串口數(shù)據(jù)進行進一步說明,如圖5所示,具體包括以下步驟:

步驟s200:初始化待系統(tǒng)穩(wěn)定,等待串口空閑;

步驟s210:判斷串口是否空閑,若是則執(zhí)行下一步驟,否則繼續(xù)等待串口空閑;

步驟s220:判斷是否收到串口波形信號的起始位,若是,則進行下一步驟,否則繼續(xù)等待串口波形信號起始位的到來;

步驟s230:對電平時間進行計數(shù);

步驟s240:判斷串口電平是否跳變,若是,則執(zhí)行下一步驟,否則繼續(xù)電平時間計數(shù);

步驟s250:緩存計數(shù),并對計數(shù)器清零;

步驟s260:判斷電平跳變次數(shù)是否達到5次或串口是否空閑,若以上條件均未達到,則返回步驟s230,若達到則執(zhí)行下一步驟;

步驟s270:對緩存的串口電平信號進行波特率解析;

步驟s280:生成延遲的串口電平信號;

步驟s290:根據(jù)實時解析的波特率接收延遲的串口電平信號,根據(jù)解析的波特率對串口數(shù)據(jù)進行解析,得出串口數(shù)據(jù),并向外發(fā)送。

本發(fā)明可實時解析串口電平波特率,并解析出串口數(shù)據(jù),無提預知發(fā)送端波特率,接收端固定接收,使用戶傳輸串口數(shù)據(jù)操作更簡便。本發(fā)明不需要通過固定的數(shù)據(jù)幀頭來識別波特率,通過嚴格的邏輯和緩存控制,防止了波特率識別過程中數(shù)據(jù)的丟失。此外,本發(fā)明可直接解析出標準波特率,準確率高,系統(tǒng)資源消耗低,可實現(xiàn)幀同步和速度匹配,完全還原實時數(shù)據(jù),具有低延遲,拓展性強,魯棒性好。

上述實施例僅用于說明本發(fā)明的具體實施方式。應(yīng)當指出的是,對于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和變化,這些變形和變化都應(yīng)屬于本發(fā)明的保護范圍。

當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
三穗县| 西平县| 普安县| 理塘县| 莱阳市| 泽普县| 本溪市| 林西县| 深州市| 贡觉县| 秭归县| 成都市| 呼伦贝尔市| 关岭| 宾阳县| 马鞍山市| 滦平县| 丰镇市| 宁远县| 平塘县| 芦山县| 台北县| 浠水县| 东阿县| 闸北区| 溧水县| 张家港市| 桂阳县| 腾冲县| 苍山县| 长兴县| 咸阳市| 米易县| 广河县| 汝阳县| 德昌县| 元阳县| 汝南县| 合作市| 长沙县| 武强县|