串口通信的基本知識(shí)_第1頁(yè)
串口通信的基本知識(shí)_第2頁(yè)
串口通信的基本知識(shí)_第3頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

串口通信的基本知識(shí) 串口通信的基本概念 1 什么是串口 2 什么是 RS 232 3 什么是 RS 422 4 什么是 RS 485 5 什么是握手 1 什么是串口 串口是計(jì)算機(jī)上一種非常通用設(shè)備通信的協(xié)議 不要與通用串行總線 Universal Serial Bus 或者 USB 混淆 大多數(shù)計(jì)算機(jī)包含兩個(gè)基于 RS232 的串口 串口 同時(shí)也是儀器儀表設(shè)備通用的通信協(xié)議 很多 GPIB 兼容的設(shè)備也帶有 RS 232 口 同時(shí) 串口通信協(xié)議也可以用于獲取遠(yuǎn)程采集設(shè)備的數(shù)據(jù) 串口通信的概念非常簡(jiǎn)單 串口按位 bit 發(fā)送和接收字節(jié) 盡管比按字節(jié) byte 的并行通信慢 但是串口可以在使用一根線發(fā)送數(shù)據(jù)的同時(shí)用另一根線接 收數(shù)據(jù) 它很簡(jiǎn)單并且能夠?qū)崿F(xiàn)遠(yuǎn)距離通信 比如 IEEE488 定義并行通行狀態(tài)時(shí) 規(guī)定設(shè)備線總常不得超過(guò) 20 米 并且任意兩個(gè)設(shè)備間的長(zhǎng)度不得超過(guò) 2 米 而對(duì)于串口而言 長(zhǎng)度可達(dá) 1200 米 典型地 串口用于 ASCII 碼字符的傳輸 通信使用 3 根線完成 1 地線 2 發(fā)送 3 接收 由于串口通信是異步的 端口能夠在一根線上發(fā)送數(shù)據(jù)同 時(shí)在另一根線上接收數(shù)據(jù) 其他線用于握手 但是不是必須的 串口通信最重要的參數(shù)是波特率 數(shù)據(jù)位 停止位和奇偶校驗(yàn) 對(duì)于兩個(gè)進(jìn)行通行的端口 這 些參數(shù)必須匹配 a 波特率 這是一個(gè)衡量通信速度的參數(shù) 它表示每秒鐘傳送的 bit 的個(gè)數(shù) 例如 300 波特表示每秒鐘發(fā)送 300 個(gè) bit 當(dāng)我們提到時(shí)鐘周期時(shí) 我們就是指 波特率例如如果協(xié)議需要 4800 波特率 那么時(shí)鐘是 4800Hz 這意味著串口通信在數(shù)據(jù)線上的采樣率為 4800Hz 通常電話線的波特率為 14400 28800 和 36600 波特率可以遠(yuǎn)遠(yuǎn)大于這些值 但是波特率和距離成反比 高波特率常常用于放置的很近的儀器間的通信 典型的例子就是 GPIB 設(shè)備的通信 b 數(shù)據(jù)位 這是衡量通信中實(shí)際數(shù)據(jù)位的參數(shù) 當(dāng)計(jì)算機(jī)發(fā)送一個(gè)信息包 實(shí)際的數(shù)據(jù)不會(huì)是 8 位的 標(biāo)準(zhǔn)的值是 5 7 和 8 位 如何設(shè)置取決于你想傳送 的信息 比如 標(biāo)準(zhǔn)的 ASCII 碼是 0 127 7 位 擴(kuò)展的 ASCII 碼是 0 255 8 位 如果數(shù)據(jù)使用簡(jiǎn)單的文本 標(biāo)準(zhǔn) ASCII 碼 那么每個(gè)數(shù)據(jù)包使用 7 位數(shù)據(jù) 每個(gè)包是指一個(gè)字節(jié) 包括開(kāi)始 停止位 數(shù)據(jù)位和奇偶校驗(yàn)位 由于實(shí)際數(shù)據(jù)位取決于通信協(xié)議的選取 術(shù)語(yǔ) 包 指任何通信的情況 c 停止位 用于表示單個(gè)包的最后一位 典型的值為 1 1 5 和 2 位 由于數(shù)據(jù)是在傳輸線上定時(shí)的 并且每一個(gè)設(shè)備有其自己的時(shí)鐘 很可能在通信中兩臺(tái) 設(shè)備間出現(xiàn)了小小的不同步 因此停止位不僅僅是表示傳輸?shù)慕Y(jié)束 并且提供計(jì)算機(jī)校正時(shí)鐘同步的機(jī)會(huì) 適用于停止位的位數(shù)越多 不同時(shí)鐘同步的容忍程 度越大 但是數(shù)據(jù)傳輸率同時(shí)也越慢 d 奇偶校驗(yàn)位 在串口通信中一種簡(jiǎn)單的檢錯(cuò)方式 有四種檢錯(cuò)方式 偶 奇 高和低 當(dāng)然沒(méi)有校驗(yàn)位也是可以的 對(duì)于偶和奇校驗(yàn)的情況 串口會(huì)設(shè)置 校驗(yàn)位 數(shù)據(jù)位后面的一位 用一個(gè)值確保傳輸?shù)臄?shù)據(jù)有偶個(gè)或者奇?zhèn)€邏輯高位 例如 如果數(shù)據(jù)是 011 那么對(duì)于偶校驗(yàn) 校驗(yàn)位為 0 保證邏輯高的位 數(shù)是偶數(shù)個(gè) 如果是奇校驗(yàn) 校驗(yàn)位位 1 這樣就有 3 個(gè)邏輯高位 高位和低位不真正的檢查數(shù)據(jù) 簡(jiǎn)單置位邏輯高或者邏輯低校驗(yàn) 這樣使得接收設(shè)備能夠 知道一個(gè)位的狀態(tài) 有機(jī)會(huì)判斷是否有噪聲干擾了通信或者是否傳輸和接收數(shù)據(jù)是否不同步 2 什么是 RS 232 RS 232 ANSI EIA 232 標(biāo)準(zhǔn) 是 IBM PC 及其兼容機(jī)上的串行連接標(biāo)準(zhǔn) 可用于許多用途 比如連接鼠標(biāo) 打印機(jī)或者 Modem 同時(shí)也可以接工業(yè)儀器儀 表 用于驅(qū)動(dòng)和連線的改進(jìn) 實(shí)際應(yīng)用中 RS 232 的傳輸長(zhǎng)度或者速度常常超過(guò)標(biāo)準(zhǔn)的值 RS 232 只限于 PC 串口和設(shè)備間點(diǎn)對(duì)點(diǎn)的通信 RS 232 串口通 信最遠(yuǎn)距離是 50 英尺 DB 9 針連接頭 1 2 3 4 5 6 7 8 9 從計(jì)算機(jī)連出的線的截面 RS 232 針腳的功能 數(shù)據(jù) TXD pin 3 串口數(shù)據(jù)輸出 RXD pin 2 串口數(shù)據(jù)輸入 握手 RTS pin 7 發(fā)送數(shù)據(jù)請(qǐng)求 CTS pin 8 清除發(fā)送 DSR pin 6 數(shù)據(jù)發(fā)送就緒 DCD pin 1 數(shù)據(jù)載波檢測(cè) DTR pin 4 數(shù)據(jù)終端就緒 地線 GND pin 5 地線 其他 RI pin 9 鈴聲指示 3 什么是 RS 422 RS 422 EIA RS 422 A Standard 是 Apple 的 Macintosh 計(jì)算機(jī)的串口連接標(biāo)準(zhǔn) RS 422 使用差分信號(hào) RS 232 使用非平衡參考地的信號(hào) 差分傳輸使 用兩根線發(fā)送和接收信號(hào) 對(duì)比 RS 232 它能更好的抗噪聲和有更遠(yuǎn)的傳輸距離 在工業(yè)環(huán)境中更好的抗噪性和更遠(yuǎn)的傳輸距離是一個(gè)很大的優(yōu)點(diǎn) 4 什么是 RS 485 RS 485 EIA 485 標(biāo)準(zhǔn) 是 RS 422 的改進(jìn) 因?yàn)樗黾恿嗽O(shè)備的個(gè)數(shù) 從 10 個(gè)增加到 32 個(gè) 同時(shí)定義了在最大設(shè)備個(gè)數(shù)情況下的電氣特性 以保證足夠 的信號(hào)電壓 有了多個(gè)設(shè)備的能力 你可以使用一個(gè)單個(gè) RS 422 口建立設(shè)備網(wǎng)絡(luò) 出色抗噪和多設(shè)備能力 在工業(yè)應(yīng)用中建立連向 PC 機(jī)的分布式設(shè)備網(wǎng)絡(luò) 其他數(shù)據(jù)收集控制器 HMI 或者其他操作時(shí) 串行連接會(huì)選擇 RS 485 RS 485 是 RS 422 的超集 因此所有的 RS 422 設(shè)備可以被 RS 485 控制 RS 485 可以用超過(guò) 4000 英尺的線進(jìn)行串行通行 DB 9 引腳連接 1 2 3 4 5 6 7 8 9 從計(jì)算機(jī)連出的線的截面 RS 485 和 RS 422 的引腳的功能 數(shù)據(jù) TXD pin 8 TXD pin 9 RXD pin 4 RXD pin 5 握手 RTS pin 3 RTS pin 7 CTS pin 2 CTS pin 6 地線 GND pin 1 5 什么是握手 RS 232 通行方式允許簡(jiǎn)單連接三線 Tx Rx 和地線 但是對(duì)于數(shù)據(jù)傳輸 雙方必須對(duì)數(shù)據(jù)定時(shí)采用使用相同的波特率 盡管這種方法對(duì)于大多數(shù)應(yīng)用已經(jīng) 足夠 但是對(duì)于接收方過(guò)載的情況這種使用受到限制 這時(shí)需要串口的握手功能 在這一部分 我們討論三種最常用的 RS 232 握手形式 軟件握手 硬件握 手和 Xmodem a 軟件握手 我們討論的第一種握手是軟件握手 通常用在實(shí)際數(shù)據(jù)是控制字符的情況 類似于 GPIB 使用命令字符串的方式 必須的線仍然是三根 Tx Rx 和地線 因?yàn)榭刂谱址趥鬏斁€上和普通字符沒(méi)有區(qū)別 函數(shù) SetXModem 允許用戶使能或者禁止用戶使用兩個(gè)控制字符 XON 和 OXFF 這些字符在通信 中由接收方發(fā)送 使發(fā)送方暫停 例如 假設(shè)發(fā)送方以高波特率發(fā)送數(shù)據(jù) 在傳輸中 接收方發(fā)現(xiàn)由于 CPU 忙于其他工作 輸入 buffer 已經(jīng)滿了 為了暫時(shí)停止傳輸 接收方發(fā)送 XOFF 典 型的值是十進(jìn)制 19 即十六進(jìn)制 13 直到輸入 buffer 空了 一旦接收方準(zhǔn)備好接收 它發(fā)送 XON 典型的值是十進(jìn)制 17 即十六進(jìn)制 11 繼續(xù)通信 輸入 buffer 半滿時(shí) LabWindows 發(fā)送 XOFF 此外 如果 XOFF 傳輸被打斷 LabWindows 會(huì)在 buffer 達(dá)到 75 和 90 時(shí)發(fā)送 XOFF 顯然 發(fā)送方必須遵循 此守則以保證傳輸繼續(xù) b 硬件握手 第二種是使用硬件線握手 和 Tx 和 Rx 線一樣 RTS CTS 和 DTR DSR 一起工作 一個(gè)作為輸出 另一個(gè)作為輸入 第一組線是 RTS Request to Send 和 CTS Clear to Send 當(dāng)接收方準(zhǔn)備好接收數(shù)據(jù) 它置高 RTS 線表示它準(zhǔn)備好了 如果發(fā)送方也就緒 它置高 CTS 表示它即將發(fā) 送數(shù)據(jù) 另一組線是 DTR Data Terminal Ready 和 DSR Data Set Ready 這些現(xiàn)主要用于 Modem 通信 使得串口和 Modem 通信他們的狀態(tài) 例如 當(dāng) Modem 已經(jīng)準(zhǔn)備好接收來(lái)自 PC 的數(shù)據(jù) 它置高 DTR 線 表示和電話線的連接已經(jīng)建立 讀取 DSR 線置高 PC 機(jī)開(kāi)始發(fā)送數(shù)據(jù) 一個(gè)簡(jiǎn)單的規(guī)則是 DTR DSR 用于表示系統(tǒng)通信就緒 而 RTS CTS 用于單個(gè)數(shù)據(jù)包的傳輸 在 LabWindows 函數(shù) SetCTSMode 使能或者禁止使用硬件握手 如果 CTS 模式使能 LabWindows 使用如下規(guī)則 當(dāng) PC 發(fā)送數(shù)據(jù) RS 232 庫(kù)必須檢測(cè) CTS 線高后才能發(fā)送數(shù)據(jù) 當(dāng) PC 接收數(shù)據(jù) 如果端口打開(kāi) 且輸入隊(duì)列有空接收數(shù)據(jù) 庫(kù)函數(shù)置高 RTS 和 DTR 如果輸入隊(duì)列 90 滿 庫(kù)函數(shù)置低 RTS 但使 DTR 維持高電平 如果端口隊(duì)列近乎空了 哭喊數(shù)置高 RTS 但使 DRT 維持高電平 如果端口關(guān)閉 庫(kù)函數(shù)置低 RTS 和 DTR c XModem 握手 最后討論的握手叫做 XModem 文件傳輸協(xié)議 這個(gè)協(xié)議在 Modem 通信中非常通用 盡管它通常使用在 Modem 通信中 XModem 協(xié)議 能夠直接在其他遵循這個(gè)協(xié)議的設(shè)備通信中使用 在 LabWindows 中 實(shí)際的 XModem 應(yīng)用對(duì)用戶隱藏了 只要 PC 和其他設(shè)備使用 XModem 協(xié)議 在文 件傳輸中就使用 LabWindows 的 XModem 函數(shù) 函數(shù)是 XModemConfig XModemSend 和 XModemReceive XModem 使用介于如下參數(shù)的協(xié)議 start of data end of data neg ack wait delay start delay max tries packet size 這些參數(shù)需要通信雙方認(rèn) 定 標(biāo)準(zhǔn)的 XModem 有一個(gè)標(biāo)準(zhǔn)的定義 然而 可以通過(guò) XModemConfig 函數(shù)修改 以滿足具體需要 這些參數(shù)的使用方法由接收方發(fā)送的字符 neg ack 確定 這通知發(fā)送方其準(zhǔn)備接收數(shù)據(jù) 它開(kāi)始嘗試發(fā)送 有一個(gè)超時(shí)參數(shù) start delay 當(dāng)超時(shí)的嘗試超過(guò) max ties 次數(shù) 或者收到接收方發(fā)送的 start of data 發(fā)送方停止嘗試 如果從發(fā)送方收到 start of data 接收方將讀取后繼信息數(shù)據(jù)包 包中含有包的數(shù)目 包數(shù)目的補(bǔ)碼作為錯(cuò)誤校驗(yàn) packet size 字節(jié)大小的實(shí)際數(shù)據(jù)包 和進(jìn)一步錯(cuò)誤檢查的求和校驗(yàn)值 在讀取數(shù)據(jù)后 接收方會(huì)調(diào)用 wait delay 然后想發(fā)送方發(fā)送響應(yīng) 如果發(fā)送方?jīng)]有 收到響應(yīng) 它會(huì)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論