聯(lián)系電話
- 聯(lián)系人:
- 方園
- 電話:
- 021-51089719
- 手機(jī):
- 13524819926
- 傳真:
- 021-51089719 企業(yè)QQ:690531563
- 地址:
- 上海市普陀區(qū)大渡河路1142弄1號樓
- 網(wǎng)址:
- www.inde-electrical.com
掃一掃訪問手機(jī)商鋪
RS-232是PC世界中zui常見的串行接口。大多數(shù)RS-232接口以固定傳輸速率與接收器通信,例如9600波特。但是如果變送器以不同的傳輸速率運(yùn)行會發(fā)生什么?不同的傳輸速率要求接收器檢測速率并將軟件調(diào)整到新的通信速度。以下關(guān)于接收器如何檢測RS-232接口的傳輸速率的描述沒有描述接收和發(fā)送例程的實(shí)現(xiàn)。相反,它描述了一個由發(fā)射器和接收器組成的系統(tǒng)。發(fā)送器(例如,PC)將字符發(fā)送到接收器。接收器是一種低成本μC,可檢測傳輸速率并根據(jù)新速率調(diào)整其軟件。實(shí)現(xiàn)原理很簡單。
發(fā)送器向接收器發(fā)送校準(zhǔn)值。接收器測量接收校準(zhǔn)值位的時間?;谠摐y量,接收器計(jì)算1比特的傳輸時間。該方法將此時間用于波特率發(fā)生器。訣竅是測量輸入比特流的時間并計(jì)算接收1比特的平均時間。自動波特例程的這種實(shí)現(xiàn)假設(shè)接收器知道校準(zhǔn)值的比特序列并且接收器知道何時校準(zhǔn)。該技術(shù)使用PIC16C54BμC。 μC通過MAX232芯片連接到PC。 PC將校準(zhǔn)字符發(fā)送到μC。我們選擇ASCII值為“?”因?yàn)楸忍匦蛄?。自動波特率例程測量接收比特流中的那些的時間,然后將時間除以6。結(jié)果是例程接收或發(fā)送1位所需的時間。
由于PIC16C54B沒有硬件USART,因此軟件程序會測量位序列的時序。清單1給出了autobaud例程的源代碼。校準(zhǔn)字符包含一個起始位,一個停止位和無奇偶校驗(yàn)位。對于時間測量,該技術(shù)使用16位計(jì)數(shù)器,該計(jì)數(shù)器提供一系列傳輸速度。在例程的第壹部分,軟件初始化計(jì)數(shù)器和自動波特率狀態(tài)寄存器AUTOB_STATUS。寄存器存儲有關(guān)自動波特率例程的輸入信號是否太慢或太快的信息。您可以使用此信息檢查校準(zhǔn)過程是否成功。初始化之后,自動波特率程序查找起始位,這是一個邏輯從一到零的轉(zhuǎn)換。檢測到起始位后,自動波特率程序會查找反向轉(zhuǎn)換。檢測到此轉(zhuǎn)換后,例程開始使用16位軟件計(jì)數(shù)器測量時間。軟件遞增16位計(jì)數(shù)器的低字節(jié),直到計(jì)數(shù)器溢出。
當(dāng)發(fā)生溢出時,16位計(jì)數(shù)器的高字節(jié)遞增1。這個過程一直持續(xù)到從邏輯1變?yōu)榱慊蛴?jì)數(shù)器的高字節(jié)溢出為止。在任何一種情況下,例程都會在AUTOB_STATUS中設(shè)置一個標(biāo)志,以指示輸入信號是快還是慢。否則,軟件計(jì)算1位的傳輸時間。此時間會生成發(fā)送或接收例程的波特率。這些例程需要1比特的傳輸時間,以產(chǎn)生用于比特采樣的延遲或用于比特傳輸。軟件通過將測量時間除以校準(zhǔn)值中傳輸?shù)臄?shù)量來計(jì)算1位的傳輸時間。在校準(zhǔn)值“?”的情況下,有必要將測量時間除以6。除以6需要將16位計(jì)數(shù)器/寄存器向右移動三次,同時從左側(cè)繪制零。除法后,程序?qū)⑽粫r間除以2,計(jì)算半位的傳輸。該時間圖在接收例程中用于將位采樣置于位的中間。除以2需要將16位計(jì)數(shù)器簡單地移位到左側(cè)的一個位置。程序?qū)⒋瞬僮鞯慕Y(jié)果存儲在兩個寄存器中:AUTOHALF_LOW和AUTOHALF_HIGH。
程序完成此計(jì)算后,需要將1.5位的傳輸時間調(diào)整為軟件開銷。該調(diào)整涉及減去執(zhí)行發(fā)送或接收例程所需的指令周期數(shù)。減法后,軟件會驗(yàn)證結(jié)果是否小于零。如果是這樣,輸入信號太快,并且例程在AUTOB_STATUS寄存器中設(shè)置錯誤標(biāo)志。調(diào)整后,軟件通過驗(yàn)證16位計(jì)數(shù)器的值為零來驗(yàn)證輸入信號是否過快。如果輸入信號不是太快,則自動波特率例程返回到操作系統(tǒng)。
(來源:網(wǎng)絡(luò),版權(quán)歸原作者)