音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

請教!!!波特率自動檢測

作者:發(fā)霉的味道 欄目:單片機
請教!!!波特率自動檢測
我想做一個波特率自動檢測的程序,用匯編寫,我試過檢測起始脈沖的寬度來計算波特率,可是不行,有哪位高人能否提供一下思路,還有就是能否實現(xiàn)在未知波特率的情況下識別字串呢??

2樓: >>參與討論
iC921
我還不知道波特率是什么意思呢
 
3樓: >>參與討論
發(fā)霉的味道
汗!!
我說的是51的串口通信呀!

4樓: >>參與討論
發(fā)霉的味道
每5分鐘看一次是否有人回復!!
我在線等哦,真的很希望有高手指點一下,感激不盡!!!

5樓: >>參與討論
yjinter
假設(shè)主機A,從機B,從機自動檢測波特率
以下是步驟:
1、A發(fā)0X55,發(fā)一個等待20MS
2、B不斷切換波特率去接收,一旦接收到0X55,立刻返回一個0XAA。此時波特率就是A的發(fā)送波特率。
3、A收到0XAA,馬上終止發(fā)送0X55。
A,B同步完畢。保守點還可以再重新確認一次。


6樓: >>參與討論
yjinter
過程中,B可能會出現(xiàn)幀錯誤,做好錯誤處理就OK
 
7樓: >>參與討論
發(fā)霉的味道
謝謝答復!!
這種在已知同步字符的情況下,那么在未知字符以及未知波特率的情況下呢??能否指點下??

8樓: >>參與討論
hq_y
我覺得hotpower有一個波特率自動檢測的帖子:你可以搜索一下參考
 
9樓: >>參與討論
發(fā)霉的味道
!!
我拜讀過hotpower大俠的這個貼子,內(nèi)容是反匯編別人的HEX文件,也是采用已知同步字符的方式.我想知道在未知字符的情況下如何處理.

10樓: >>參與討論
yjinter
見下
只要A發(fā)送的是經(jīng)過校驗(CRC8,奇偶)的一串字符,B去校驗就可以了。

11樓: >>參與討論
yjinter
搞別人的^%&%^#$%#$%,那就沒做過了。
 
12樓: >>參與討論
發(fā)霉的味道
嗚嗚......
我是想知道在未知波特率以及所發(fā)送字符的情況下,讓程序處理得到正確的波特率,再進行通信.

13樓: >>參與討論
yjinter
看看串口協(xié)議吧。。說不定能總結(jié)個規(guī)律出來^_^
 
14樓: >>參與討論
發(fā)霉的味道
???
如果能總結(jié)出規(guī)律我還問什么啊,你說是吧.

15樓: >>參與討論
wjsue
沒戲
未知波特率以及所發(fā)送字符???沒有通用辦法。。
假如對方發(fā)的是全零,或緊跟起始脈沖后的位是n個0,然后是全1,你有辦法知道波特率???

16樓: >>參與討論
發(fā)霉的味道
如何知道!!
謝謝指點!!洗耳恭聽!!

17樓: >>參與討論
wjsue
一般情況下
  開始時,統(tǒng)計每一個0的寬度,保存最小的寬度;統(tǒng)計每一個1的寬度,保存最小的寬度。這兩個最小寬度中最小的就是1位的寬度了,這樣就可以知道波特率了。
  當然,前提是你接收的的位必須出現(xiàn)過010或101才行。

18樓: >>參與討論
發(fā)霉的味道
!!
這個思路值得一試,還有其他思路嗎?各位大俠!!多多指點!!

19樓: >>參與討論
電子塵埃
啊,有重嗎?哈哈,晚上無聊過來頂沉廣告貼
 
20樓: >>參與討論
發(fā)霉的味道
!!!
大俠!!你就別笑了,不懂就問,這很正常啊.

21樓: >>參與討論
發(fā)霉的味道
???
我已經(jīng)從昨天等到今天了,咋給提示的大俠就這么少呢!!!

22樓: >>參與討論
發(fā)霉的味道
我還是在線等啊!!
 
23樓: >>參與討論
zhaoyu2005
我也想知道怎么弄
看手機模塊中西門子和WAVECOME都可以設(shè)成波特率自適應,就是不知道怎么弄的,一般發(fā)"AT+回車"看返回"AT"

24樓: >>參與討論
xxdcq
如果只是串口發(fā)送的控制命令控制某個終端
不需要關(guān)心具體是什么數(shù)據(jù),我可以通過對脈沖串的波形進行分析,然后得到偽命令去替代真正的控制命令也可以實現(xiàn)對終端的控制
可以不需要知道波特率
我們現(xiàn)在的方案可以做到對最高57600的串口命令進行識別
www.yofeng.com

如果需要關(guān)心具體數(shù)據(jù)目前還沒有更可靠的辦法用真實的波特率得到正確的數(shù)據(jù)內(nèi)容

25樓: >>參與討論
mon51
請看下面,你主機發(fā)出0X11,就行了。
               CLR     A
                MOV     RCAP2H,A
                MOV     RCAP2L,A
                MOV     TL2,A
                MOV     TH2,A
                MOV     T2MOD,A
                MOV     T2CON,A
L4:             JB      RXD,L4
L6:             JNB     RXD,L6
L7:             SETB    TR2
L8:             JNB     RXD,L10
                JNB     TF2,L8
L10:            JNB     RXD,L10
L12:            JNB     RXD,L14
                JNB     TF2,L12
L14:            JNB     RXD,L14
L15:            CLR     TR2
                JB      TF2,InitSerial
                MOV     R7,TL2
                MOV     R6,TH2

                MOV     A,R6
                CLR     C
                RRC     A
                MOV     R4,A
                MOV     A,R7
                RRC     A
                ADD     A,R7
                MOV     R7,A
                MOV     A,R4
                ADDC    A,R6
                MOV     R6,A

                MOV     A,R7
                ADD     A,#010H
                MOV     R7,A
                CLR     A
                ADDC    A,R6
                MOV     R6,A

                MOV     A,R7
                MOV     R0,#05H
L22:            XCH     A,R6
                CLR     C
                RRC     A
                XCH     A,R6
                RRC     A
                DJNZ    R0,L22
                MOV     R7,A
                CLR     C
                CLR     A
                SUBB    A,R7
                MOV     BRL,A
                CLR     A
                MOV     TL2,A
                MOV     TH2,A
                MOV     T2MOD,A
                MOV     T2CON,A

                ORL     PCON,#080H      ; set SMOD1 to double baudrate
                MOV     BDRCON,#01EH    ; set TBCK/RBCK/BRR/SPD
                MOV     SCON,#01011010B ; Init Serial
26樓: >>參與討論
發(fā)霉的味道
!!
不知道周立功單片機所寫的那種方法可行性,先試驗一下再說.

27樓: >>參與討論
zizzfish
暈。把原理搞懂就很好做了。
   
-----     ---
    |     |
    |     |
    |     |
     -----
--》  t 《---

通過t就可以計算波特率了。
1、在第一個下降沿啟動定時器。
2、等待上升沿,關(guān)閉定時器。
用T2做定時。
一般來說只要讀取TL2的值就可以了。TH2都是0。
1/rate=t=TL2*fosc/12
fosc/(32*(65536-TH2TL2))=TL2*fosc/12
通過公式化簡可以得到一個簡單的關(guān)系式。通過關(guān)系式就可以編程了。
我用C做的,可以在1S內(nèi)從4.8~115.2k自適應。
小于4.8K還要考慮TH2。本來是給SM5964寫ISP程序,由于ISP的空間有限就不考慮TH2了。
自適應過程其實不一定要發(fā)0X055,只要LSB是1就可以了。
改天理一下程序供大家參考。

28樓: >>參與討論
mohanwei
很簡單,在程序里實現(xiàn)一個邏輯分析儀……
不斷采集端口的電平,在一段時間內(nèi)記錄下所有上升沿和下降沿出現(xiàn)的時間,保存到內(nèi)存里,然后分析它。
比如說先找出最短的跳變間隔時間,將它當作1位,算出波特率,然后套其它的,如果都對就到此結(jié)束。如果不對,將它當作2位,算出波特率,套其它的……依此類推,肯定可以算出來的,除非發(fā)送一方不斷改變波特率,呵呵

29樓: >>參與討論
hotpower
波特率自動檢測的方法太多,真不知選什么好~~~
 
30樓: >>參與討論
發(fā)霉的味道
!!
哦,試試再說......

31樓: >>參與討論
牛皮詹秀波
_
張明峰的那本書上說的很詳細,去看看

參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
有沒有這樣的單片機。。。「呤滞扑]!
誰能幫幫忙啊?(用單片機如何控制四個步進電機呢?)
如何進行串口中斷跳轉(zhuǎn)
求救了,高手來指點下,謝謝了
HT48R06A的編程
免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號