【正文】
驗(yàn)字節(jié)外)求和(或各字節(jié)異或),將所得的結(jié)果與發(fā)送方的“校驗(yàn)和”進(jìn)行比較,相符則無(wú)差錯(cuò),否則即認(rèn)為傳送過(guò)程中出現(xiàn)了差錯(cuò)。 所以,我們也經(jīng)常用波特率表示數(shù)據(jù)的傳輸速率。 串行通信接口標(biāo)準(zhǔn) 一、 RS232C接口 RS232C是 EIA(美國(guó)電子工業(yè)協(xié)會(huì)) 1969年修訂 RS232C標(biāo)準(zhǔn)。 遠(yuǎn)程通信連接 計(jì)算機(jī)計(jì)算機(jī)MODEMMODEMT X DR X DR T ST X DR X DR T SD S R電 話 線D S R近程通信連接 計(jì)算機(jī)乙計(jì)算機(jī)甲T X D T X DR X DR X D計(jì)算機(jī)乙計(jì)算機(jī)甲T X D T X DR X DR X D4562 04562 0 RS232C電平與 TTL電平轉(zhuǎn)換驅(qū)動(dòng)電路 123456891 01 11 21 37+ 1 2 V- 1 2 VR S 2 3 2電 平T T L電 平1245891 01 11 21 37+ 5 VT T L電 平R S 2 3 2電 平1 463M C 1 4 8 8M C 1 4 8 9123456891 01 11 21 37+ 1 2 V- 1 2 VT T L電 平1245891 01 11 21 37+ 5 V1 463T T L電 平R S 2 3 2電 平地M C 1 4 8 8M C 1 4 8 9采用 RS232C接口存在的問(wèn)題 傳輸距離短,傳輸速率低 RS232C總線標(biāo)準(zhǔn)受電容允許值的約束,使用時(shí)傳輸距離一般不要超過(guò) 15米(線路條件好時(shí)也不超過(guò)幾十米)。 抗干擾能力差 RS232C在電平轉(zhuǎn)換時(shí)采用單端輸入輸出,在傳輸過(guò)程中當(dāng)干擾和噪聲混在正常的信號(hào)中。 差分電路 能從地線干擾中拾取有效信號(hào),差分接收器可以分辨 200mV以上電位差。 S N 7 5 1 7 4S N 7 5 1 7 5S N 7 5 1 7 4S N 7 5 1 7 5電 平T T L電 平T T L雙 向 需 4 條 線+ 5 V+ 5 V三 、 RS485接口 RS485是 RS422A的變型: RS422A用于全雙工,而RS485則用于半雙工。由于發(fā)送方需要 兩根傳輸線 ,接收方也需要兩根傳輸線。對(duì)于單片機(jī)可以通過(guò)芯片 MAX485來(lái)完成 TTL/RS485的電平轉(zhuǎn)換。 80C51串行口的結(jié)構(gòu) ≥ 1S B U F發(fā) 送 控 制 器接 收 控 制 器移 位 寄 存 器控 制 門(mén)T IR IAT X DR X D去 串 口 中 斷S M O D01T H 1 T L 1247。 當(dāng) SM2=0時(shí),不論收到的 RB8為 0和 1,均可以使收到的數(shù)據(jù)進(jìn)入SBUF,并激活 RI(即此時(shí) RB8不具有控制 RI激活的功能)。 ● REN,允許串行接收位 。 在方式 0和方式 1中,該位未用。在方式 0時(shí),當(dāng)串行發(fā)送第 8位數(shù)據(jù)結(jié)束時(shí),或在其它方式,串行發(fā)送停止位的開(kāi)始時(shí),由內(nèi)部硬件使 TI置 1,向 CPU發(fā)中斷申請(qǐng)。也必須在中斷服務(wù)程序中,用軟件將其清 0,取消此中斷申請(qǐng)。 80C51串行口的工作方式 一、方式 0 方式 0時(shí),串行口為同步移位寄存器的輸入輸出方式。波特率固定為 fosc/12。 停止位數(shù) 據(jù) 位 8 位起始位L S B M S B空閑空閑D 0D 71 幀 共 1 0 位 方式 1輸出 D 0 D 1 D 2 D 3 D 4 D 5 D 6 D 7寫(xiě) 入 S B U F停 止 位T X DT I ( 中 斷 標(biāo) 志 )起 始 方式 1輸入 用軟件置 REN為 1時(shí),接收器以所選擇波特率的 16倍速率采樣 RXD引腳電平,檢測(cè)到 RXD引腳輸入電平發(fā)生負(fù)跳變時(shí),則說(shuō)明起始位有效,將其移入輸入移位寄存器,并開(kāi)始接收這一幀信息的其余位。 TXD為數(shù)據(jù)發(fā)送引腳, RXD為數(shù)據(jù)接收引腳 。每一個(gè)移位脈沖都使輸出移位寄存器的各位右移一位,并由 TXD引腳輸出。當(dāng) RI=0,且 SM2=0(或接收到的第 9位數(shù)據(jù)為 1)時(shí),接收到的數(shù)據(jù)裝入接收緩沖器 SBUF和 RB8(接收數(shù)據(jù)的第 9位),置 RI=1,向 CPU請(qǐng)求中斷。 串行口的四種工作方式對(duì)應(yīng) 三種波特率 。( T1溢出率) 方式 3的波特率 =( 2SMOD/32) 所以,選用的波特率也相對(duì)固定。 單片機(jī)串行口應(yīng)用舉例 在計(jì)算機(jī)分布式測(cè)控系統(tǒng)中,經(jīng)常要利用串行通信方式進(jìn)行數(shù)據(jù)傳輸。 單片機(jī)與單片機(jī)的通信 一、點(diǎn)對(duì)點(diǎn)的通信 硬件連接 R 2 I NT 2 O U TT X DR X DM A X 2 3 2 AT 1 I NG N DR 2 O U TT 1 O U T8 0 C 5 1T X DR X D8 0 C 5 1G N DR 1 I NT 2 O U TM A X 2 3 2 AG N DR 2 I NR 1 O U T系 統(tǒng) 1 系 統(tǒng) 2T 2 I N二、應(yīng)用程序 設(shè) 置 波 特 率啟 動(dòng) 定 時(shí) 器 T 1開(kāi) 始設(shè) 置 串 口 工 作 方 式2 號(hào) 機(jī) 允 許 發(fā) 送 ?N發(fā) 送 “ E 1 ” 聯(lián) 絡(luò) 信 號(hào)指 針 初 始 化校 驗(yàn) 和 清 0發(fā) 送 1 個(gè) 數(shù) 據(jù) 字 節(jié)求 校 驗(yàn) 和數(shù) 據(jù) 塊 發(fā) 送 完 畢 ?NYY發(fā) 送 校 驗(yàn) 和2 號(hào) 機(jī) 接 收 正 確 ?NY返 回設(shè) 置 波 特 率啟 動(dòng) 定 時(shí) 器 T 1開(kāi) 始設(shè) 置 串 口 工 作 方 式1 號(hào) 機(jī) 請(qǐng) 求 發(fā) 送 ?N等 待 1 號(hào) 機(jī) 聯(lián) 絡(luò)指 針 初 始 化校 驗(yàn) 和 清 0接 收 1 個(gè) 數(shù) 據(jù) 字 節(jié)求 校 驗(yàn) 和數(shù) 據(jù) 塊 接 收 完 畢 ?NYY比 較 校 驗(yàn) 和2 號(hào) 機(jī) 接 收 正 確 ?NY返 回發(fā) 送 應(yīng) 答 信 號(hào)發(fā) 送 出 錯(cuò) 標(biāo) 志 設(shè) 1號(hào)機(jī)是發(fā)送方, 2號(hào)機(jī)是接收