新聞中心
PRESS CENTER
單片機(jī)受存儲介質(zhì)的限制,不可能對發(fā)送、接收數(shù)據(jù)作進(jìn) 一步的處理。 所以在需要對大量數(shù)據(jù)進(jìn)行進(jìn)一步處理的運(yùn)用 中,還必須借助微機(jī)的強(qiáng)大數(shù)據(jù)處理能力。 這樣必須通過通信 電路實現(xiàn) PIC 單片機(jī)與微機(jī)間的可靠數(shù)據(jù)傳輸。 PICl6F876 單 片機(jī)并沒有提供串行口,但是內(nèi)部集成了兩個類型不同的串行 通信模塊,即通用同步 / 異步收發(fā)器 USART 模塊和主控同步串 行端口 MSSP。 考慮到 PC 機(jī)的串行口均為九針 232 結(jié)構(gòu),PC 機(jī) 的串行接口是符合 EIA RS-232C 規(guī)范的外部總線標(biāo)準(zhǔn)接口。 RS-232C 采用的是負(fù)邏輯 ,即 邏 輯“1”:-5v~-15v;邏 輯 “0”:+ 5V~+15V。 而 CMOS 電平為邏輯“1”:4.99V,邏輯“0”:0.01V;TTL 電 平 的 邏 輯“1”和“0”則 分 別 為 2.4V 和 0.4V。 因 此 在 用 RS- 232C 總線進(jìn)行串行通信時需外接電路實現(xiàn)電平轉(zhuǎn)換。在發(fā)送端 用驅(qū)動器將 TTL 或 CMOS 電平轉(zhuǎn)換為 RS-232C 電平, 在接收 端用接收器將 RS-232C 電平再轉(zhuǎn)換為 TTL 或 CMOS 電平[2]。
這里選用了 MAXIM 公司的 MAX232CPE 來作電平轉(zhuǎn)換。 MAX232CPE 屬于 MAXIM 公司的通用串 行 接 收 / 發(fā) 送 驅(qū) 動 器 芯片,用于實現(xiàn)單片機(jī)與 PC 機(jī)進(jìn)行數(shù)據(jù)交換時所需的握手協(xié) 議的電平轉(zhuǎn)換。 MAXIM232 外圍電路非常簡單,只需外接幾個 0.1μF 的電容即可, 相同網(wǎng)絡(luò)標(biāo)號之間的保護(hù)電阻均為 330Ω,所以,我們主要應(yīng)用異步傳送模式下的 USART。 而且串行通信 必須利用現(xiàn)有通信模塊,結(jié)合自己設(shè)計的通信軟件來實現(xiàn)。

USAR 異步發(fā)送器核心是發(fā)送移位寄存器 TSR 和發(fā)送緩沖 器 TXREG。TXREG 和內(nèi)部數(shù)據(jù)總線直接相連,是一個軟件可讀 / 寫的寄存器,用戶程序把要發(fā)送的數(shù)據(jù)寫入 TXREG 中,然后由 硬件自動控制再把數(shù)掘從 TIREG 裝載到 TSR (如果選定 9 位格 式,還要和來自 TXSTA 的 TX9D 位共同組成 9 位數(shù)據(jù));再在前 面自動添加一個起始位 0,在后面添加一位停止位 1,構(gòu)成一個完 整的幀結(jié)構(gòu):最后在波特率時鐘的控制下,再由移位寄存器 TSR 把數(shù)據(jù)逐位依次發(fā)送出去;完成“并行到串行”的轉(zhuǎn)化。
TSR 一直等到把目前正在發(fā)送的數(shù)據(jù)的停止位發(fā)出去 后,才會把從 TXREG 載入新的發(fā)送數(shù)據(jù)。 一旦 TXREG 把數(shù)據(jù) 送入 TSR,寄存器 TXREG 就為騰 空 狀 態(tài),同時發(fā)送中斷標(biāo)志 位 TXIF 被置 1,向 CPU 發(fā)出中斷請求。 盡管發(fā)送中斷使能位 TXIE 控制 CPU 對該中斷的響應(yīng)與否,但只要 TXREG 被騰空, 都會自動把 TXIF 置 1, 而且, 只有新的發(fā)送數(shù)據(jù)寫入寄存器 TXREG 后,硬件才會自動將 TXIF 清 0。 因此,也為我們的使用 軟件判斷工作狀態(tài)提供了新的思路及可能。
USART 異步接收器核心是接收移位寄存器 RSR 和接收寄存 器 RCREG。通信的一方送來的異步串行數(shù)據(jù),從 RC7/RX/DT 引腳 輸入;在波特率發(fā)生器提供的采樣定時信號的控制下,由數(shù)據(jù)檢測 和恢復(fù)電路對于輸入的信號波形進(jìn)行采樣, 以恢復(fù)數(shù)據(jù)的本來面 目;然后在波特率發(fā)生器提供的移位時鐘脈沖控制下,把恢復(fù)得來 的串行數(shù)據(jù)以及起始位和停止位,一步步移入 RSR 寄存器。
只要采樣到停止位, 接收移位寄存器 RSR 就把收到的 8 位數(shù)據(jù),裝載到接收寄存器 RCREG(如果 RCREG 為空);以 及 把第 9 位(如果有的話)裝載到 RX9D 位;同時完 成“串 行 到 并 行”的變換;設(shè)置接收中斷請求標(biāo)志位 RCIF=1,通知 CPU 來讀 取接收寄存器 RCREG 中的數(shù)據(jù)和第 9 位數(shù)據(jù) RX9D,軟件設(shè) 計中通過對第 9 位數(shù)據(jù)的判定 (表征數(shù)據(jù)性質(zhì)時,1 代表地址 碼,0 代表數(shù)據(jù)碼),實現(xiàn)相應(yīng)的處理。
其中,RCREG 是一個雙緩沖寄存器, 具有 2 級結(jié)構(gòu)的先 進(jìn)先出模式的隊列。 同樣,RX9D 位也是 2 級結(jié)構(gòu)。 因此,這就 允許移位寄存器連續(xù)接收 2 幀數(shù)據(jù), 并且依次裝入隊列中進(jìn) 行緩沖,之后第 3 個數(shù)據(jù)還可以移位到 RSR 寄存器中。
關(guān)鍵詞:無線數(shù)據(jù)傳輸