乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      串口調(diào)試要注意什么?串口調(diào)試工具有哪些?

       關(guān)山風(fēng)月008 2019-07-17

      1. 何謂串口?

      串口幾乎為所有計(jì)算機(jī)的裝置通訊協(xié)議標(biāo)準(zhǔn)。請(qǐng)別與通用串行總線 (Universal serial bus,USB) 產(chǎn)生混肴。大多數(shù)的計(jì)算機(jī)均配備 2 組 EIA-232 架構(gòu)的串行端口。串口亦為常見的通訊協(xié)議,適用于控制多種儀器設(shè)備,并可搭配 EIA-232 通訊端口使用多款 GPIB 兼容的裝置。此外,用戶可透過數(shù)據(jù)擷取的串口通訊功能,進(jìn)而整合遠(yuǎn)程取樣裝置。請(qǐng)注意,EIA-232 與 EIA-485/422 亦可為所謂的 RS-232 與 RS-485/422。

      串口通訊的概念極為簡單。串行端口將同時(shí)傳送并接收 1 個(gè)位 (Bit) 的信息字節(jié) (Byte)。雖然此傳輸量低于并行通訊作業(yè),卻可傳輸完整的字節(jié);適用于較長距離的通訊作業(yè)。以 IEEE 488 規(guī)格的平行通訊作業(yè)為例,設(shè)備之間的接線總長度不得超過 20米(65英尺);任兩組裝置之間的長度不超過 2米(6.5英尺)。而串口卻可達(dá)最長 1200米(4000英尺)。
       

      串口通訊作業(yè)概述

      一般情況下,工程師均使用串行傳輸 ASCII 數(shù)據(jù)。并透過三種傳輸線完成通訊作業(yè) - 接地線 (Ground)、傳送線 (Transmit)與接收線 (Receive)。由于串口屬于異步化,因此串行端口可于其中 1 個(gè)信道傳送數(shù)據(jù),并于另 1 個(gè)信道接收數(shù)據(jù)。其他通道可視情況而進(jìn)行握手(Handshaking)。重要的串口特性為波特率 (Baud rate)、數(shù)據(jù)位、停止位 (Stop bit),與奇偶同位 (Parity)。若要溝通兩組通訊端口,則必須符合這些參數(shù):

      1、波特率 (Baud rate) 為通訊的速度量測(cè)作業(yè),顯示每秒所傳輸?shù)奈粩?shù)。舉例來說,300 波特率即為每秒達(dá) 300個(gè)位。工程師所稱的頻率周期 (Clock cycle) 即為波特率;若協(xié)議呼叫信號(hào) (Protocol call) 為 4800 波特率,意即頻率為 4800 Hz。亦表示串行端口以 4800 Hz 的速率,進(jìn)行數(shù)據(jù)信道的取樣。常見的電話線路波特率為 14400、28800,與 33600。波特率當(dāng)然可以大于上述這些數(shù)字,但這些速率將限制設(shè)備之間的距離。因此高波特率均用于裝置距離相近的通訊作業(yè),常見的即為 GPIB 裝置。

      2、數(shù)據(jù)位數(shù) (Data bit),代表傳輸作業(yè)中的實(shí)際數(shù)據(jù)位。當(dāng)計(jì)算機(jī)傳送信息框架 (Frame) 時(shí),實(shí)際數(shù)據(jù)總數(shù)可能不滿 8 位??蚣艿臉?biāo)準(zhǔn)數(shù)值為 5、7,與 8 位。應(yīng)根據(jù)所傳輸?shù)男畔?,選擇所需的設(shè)定。舉例來說,標(biāo)準(zhǔn) ASCII 可為 0 ~ 127 的數(shù)值 (7 位)。延伸的 ASCII 則使用 0 ~ 255 (8 位)。若傳輸中的數(shù)據(jù)為標(biāo)準(zhǔn) ASCII,則各個(gè)框架若能傳送 7 位數(shù)據(jù),即屬高效率的通訊作業(yè)。1 個(gè)框架即為單一字節(jié) (Byte) 的傳輸,包含開始/停止 (Start/stop) 位、數(shù)據(jù)位,與奇偶校驗(yàn) (Parity)。由于所選的通訊協(xié)議將影響實(shí)際位數(shù),因此可使用“框架 (Frame)”代表所有的范例。

      停止位 (Stop bit) 可針對(duì)單一框架的通訊作業(yè)末端發(fā)出信號(hào)。常見數(shù)值為 1、1.5,與 2 位。由于數(shù)據(jù)將受到跨信道的頻率所影響,而各組裝置又具有自己的頻率,因此任 2 組裝置可能會(huì)稍稍落后同步化作業(yè)。因此,停止位不僅可指出傳輸作業(yè)末端,并可為計(jì)算機(jī)頻率速度提供發(fā)生錯(cuò)誤的空間。停止位所占的位數(shù)越多,則不同頻率的同步化越具彈性;但亦將拖慢傳輸速度。

      3、奇偶校驗(yàn) (Parity) 為串口通訊作業(yè)錯(cuò)誤檢查的簡易形式。奇偶校驗(yàn)具分為 4 種類型 – Even、Odd、Marked,與 Spaced。亦可不使用奇偶校驗(yàn)。針對(duì) Even 與 Odd,串行端口將設(shè)定奇偶校驗(yàn)位 (Parity bit,為數(shù)據(jù)位之后的最后 1 個(gè)位) 為 1 個(gè)數(shù)值,以確認(rèn)該傳輸作業(yè)具有邏輯高位 (Logic-high) 位的 Even 或 Odd 數(shù)。舉例來說,若資料為 011,針對(duì) Even 奇偶校驗(yàn)的奇偶校驗(yàn)位則為 0,才能讓邏輯高位位的數(shù)字為 Even。在奇偶校驗(yàn)為 Odd 的情況下,奇偶校驗(yàn)位「1」將導(dǎo)致「3」的邏輯高位位。Marked 與 Spaced 的奇偶校驗(yàn)將不會(huì)實(shí)際檢查數(shù)據(jù)位,但會(huì)根據(jù) Marked 奇偶校驗(yàn)設(shè)定高的奇偶校驗(yàn)位,或根據(jù) Spaced 奇偶校驗(yàn)設(shè)定低的奇偶校驗(yàn)位。此將讓接收裝置了解位的狀態(tài),以進(jìn)一步判定噪聲是否使數(shù)據(jù)發(fā)生中斷,或傳送與接收裝置是否尚未同步化。

      2. EIA-232 概述

      EIA-232 為 IBM 兼容計(jì)算機(jī)架構(gòu)的串口鏈接功能,可用以連接計(jì)算機(jī)與傳感器/調(diào)制解調(diào)器,或用于儀器控制等許多功能。EIA-232 硬件可達(dá)最長 15 公尺的通訊距離。EIA-232 限用于計(jì)算機(jī)串行端口與裝置之間的點(diǎn)對(duì)點(diǎn)連結(jié)。因此,計(jì)算機(jī)往往需要額外的 EIA-232 串行端口。標(biāo)準(zhǔn)計(jì)算機(jī) EIA-232 串行端口與許多串行接口的制造商,將試圖平衡 Win32 API 于串口通訊函數(shù)調(diào)用中的功能。Win32 API 原來是設(shè)計(jì)用于調(diào)制解調(diào)器通訊作業(yè),且并未建置完整的 EIA-232 協(xié)議?;诖隧?xiàng)限制,Win32 API 并無法溝通某些裝置。

      NI 則提供多款平臺(tái)的 EIA-232 串行接口,包含 PCI、USB、PCMCIA、ExpressCard、PXI,與以太網(wǎng)絡(luò)。根據(jù)所使用的平臺(tái),NI 串行接口卡提供 1、2、4、8,與 16 埠的版本。此外,NI EIA-232 串行接口卡更提升了某些功能,如最高 1 Mb/s 的高速波特率、透過 DMA 傳輸方式而降低 CPU 使用率、可選購的 2000 V 埠對(duì)埠隔離,與可設(shè)定的非標(biāo)準(zhǔn)波特率。所有的 NI 串行接口卡均包含 NI-Serial 驅(qū)動(dòng)程序,可建置完整的 EIA-232 協(xié)議,并針對(duì)應(yīng)用開發(fā)作業(yè)提供簡單易用的高階功能。NI-Serial 驅(qū)動(dòng)程序可彌補(bǔ) Win32 API 的缺點(diǎn),亦即任何 EIA-232 架構(gòu)的裝置,均可搭配使用 NI 串口裝置。

      3. EIA-422 概述

      EIA-422 為蘋果公司麥金塔 (Mac) 計(jì)算機(jī)的串口鏈接接口。與 EIA-232 所使用的非平衡式信號(hào) (Unbalanced signal) 相較,EIA-422 使用截然不同的電子信號(hào)。EIA-422 的差動(dòng)傳輸 (Differential transmission),就是透過 2 組線路以各自進(jìn)行信號(hào)的傳輸與接收,因此其抗擾性與傳輸距離的表現(xiàn)均優(yōu)于 EIA-232。在工業(yè)級(jí)應(yīng)用中,抗擾性 (Noise immunity) 與傳輸距離可享有較佳的優(yōu)勢(shì)。

      NI 則提供多款平臺(tái)的 EIA-485/422 串行接口卡,包含 PCI、USB、PCMCIA、ExpressCard、PXI,與以太網(wǎng)絡(luò)。根據(jù)所使用的平臺(tái),NI 串行接口卡具有 1、2、4,與 8 埠的版本。此外,NI EIA-485/422 串行接口卡更新增了多項(xiàng)功能,如最高 3 Mb/s 的高速波特率、透過 DMA 傳輸方式而降低 CPU 使用率、可選購的 2000 V 埠對(duì)埠隔離,與可設(shè)定的非標(biāo)準(zhǔn)波特率。所有的 NI 串行接口卡均包含 NI-Serial 驅(qū)動(dòng)程序,可建置完整的 EIA-485/422 協(xié)議,并針對(duì)應(yīng)用開發(fā)作業(yè)提供簡單易用的高階功能。

      4. EIA-485 概述

      EIA-485 為 EIA-422 的改良版本,從原本的 10 組裝置提高至 32 組裝置,并定義必要的電子特性參數(shù),于最大負(fù)載保持適當(dāng)?shù)男盘?hào)電壓。透過增強(qiáng)的多端點(diǎn) (Multidrop) 功能,即可透過單一 EIA-485 串行端口進(jìn)行裝置的網(wǎng)絡(luò)鏈接作業(yè)。EIA-485 的抗擾性與多端點(diǎn)功能,使其成為工業(yè)級(jí)應(yīng)用的串口連結(jié)首選,適于將多款分布式裝置連接至計(jì)算機(jī)或其他控制器,以進(jìn)行于數(shù)據(jù)搜集、HMI,與其他作業(yè)。EIA-485 集 EIA-422 的優(yōu)點(diǎn)于一身,因此所有的 EIA-422 裝置亦可由 EIA-485 進(jìn)行控制。透過 EIA-485 硬件,串口通訊作業(yè)可達(dá)最長 1200米(4000英尺)的連接線總長度。

      NI 則提供多款平臺(tái)的 EIA-485/422 串行接口卡,包含 PCI、USB、PCMCIA、ExpressCard、PXI,與以太網(wǎng)絡(luò)。根據(jù)所使用的平臺(tái),NI 串行接口卡具有 1、2、4,與 8 埠的版本。此外,NI EIA-485/422 串行接口卡更新增了多項(xiàng)功能,如最高 3 Mb/s 的高速波特率、透過 DMA 傳輸方式而降低 CPU 使用率、可選購的 2000 V 埠對(duì)埠隔離,與可設(shè)定的非標(biāo)準(zhǔn)波特率。所有的 NI 串行接口卡均包含 NI-Serial 驅(qū)動(dòng)程序,可建置完整的 EIA-485/422 協(xié)議,并針對(duì)應(yīng)用開發(fā)作業(yè)提供簡單易用的高階功能。

      5. NI 串行接口卡接頭的輸出針腳 (Pinout)

      串口調(diào)試

      DB-9 Male

      DB-25 Male

      10-Position Modular Jack

      Pin

      EIA-232

      EIA-485/422

      Pin

      EIA-232

      EIA-485/422

      Pin

      EIA-232

      EIA-485/422

      1

      DCD

      GND

      2

      TXD

      RTS+ (HSO+)

      1

      No Connect

      No Connect

      2

      RXD

      CTS+ (HSI+)

      3

      RXD

      CTS+ (HSI+)

      2

      RI

      TXD-

      3

      TXD

      RTS+ (HSO+)

      4

      RTS

      RTS- (HSO-)

      3

      CTS

      TXD+

      4

      DTR

      RXD+

      5

      CTS

      TXD+

      4

      RTS

      RTS- (HSO-)

      5

      GND

      RXD-

      6

      DSR

      CTS- (HSI-)

      5

      DSR

      CTS- (HSI-)

      6

      DSR

      CTS- (HSI-)

      7

      GND

      RXD-

      6

      GND

      RXD-

      7

      RTS

      RTS- (HSO-)

      8

      DCD

      GND

      7

      DTR

      RXD+

      8

      CTS

      TXD+

      20

      DTR

      RXD+

      8

      TXD

      RTS+ (HSO+)

      9

      RI

      TXD-

      22

      RI

      TXD-

      9

      RXD

      CTS+ (HSI+)

      -

      -

      -

      -

      -

      -

      10

      DCD

      GND

      6. 何謂握手 (Handshaking)?

      此 EIA-232 通訊作業(yè),可進(jìn)行 3 種線路的簡易鏈接作業(yè) - Tx、Rx,與接地。然而,針對(duì)所要傳輸?shù)臄?shù)據(jù),其2端均需以相同波特率進(jìn)行數(shù)據(jù)的頻率化 (Clocking)。雖然此方式適用于大多數(shù)的應(yīng)用,此功能卻受限于系統(tǒng)對(duì)問題的反應(yīng)速度,如發(fā)生過載 (Overloaded) 的接收器。而串口握手 (Handshaking) 可協(xié)助解決相關(guān)問題。3 種最常見的 EIA-232 握手形式,即為軟件握手、硬件握手,與 Xmodem。

      軟件握手
      此方式是將數(shù)據(jù)字節(jié)作為控制字符 (Control character),近似于 GPIB 使用命令字符串 (Command string) 的方式。由于控制字符可透過傳輸線路,如正常數(shù)據(jù)般進(jìn)行傳輸,因此亦可整合 Tx、Rx,與接地而成簡易的 3 線式集合。透過 SetXMode 函式,即可啟用或停用 2 個(gè)控制字符:XON 與 XOFF。數(shù)據(jù)接收器將傳送這些字符,以于通訊期間暫停傳送器。

      此方式的最大缺點(diǎn),也是最重要的概念:數(shù)據(jù)值將不再使用 Decimal 17 與 19。由于這些數(shù)值為無字符 (Noncharacter) 數(shù)值,因此往往不會(huì)影響 ASCII 的傳輸作業(yè);然而,若以二進(jìn)制法傳輸數(shù)據(jù),則極可能將這些數(shù)值作為數(shù)據(jù)進(jìn)行傳輸,導(dǎo)致傳輸作業(yè)發(fā)生錯(cuò)誤。

      硬件握手
      此方式將使用實(shí)際的硬件線路。如同 Tx 與 Rx 線路一般,RTS/CTS 與 DTR/DSR 線路可搭配使用。若其中 1 個(gè)線路為輸出,則另 1 個(gè)線路即為輸入。

      第一種線路集為 RTS (Request to Send) 與 CTS (Clear to Send)。當(dāng)接收器可接收資料時(shí),則將插入 (Assert) RTS 線路,表示接收器已可接收資料。接著將由 CTS 輸入線路的傳送器讀取此訊息,表示已可傳送數(shù)據(jù)。

      第二種線路集為 DTR (Data Terminal Ready) 與 DSR (Data Set Ready)。由于此種線路可讓串行端口與調(diào)制解調(diào)器之間通訊現(xiàn)有狀態(tài),因此主要用于調(diào)制解調(diào)器的通訊作業(yè)。舉例來說,當(dāng)調(diào)制解調(diào)器可為計(jì)算機(jī)傳送數(shù)據(jù)時(shí),將先中斷 DTR 線路,代表目前是透過電話線進(jìn)行鏈接作業(yè)。接著 DSR 線路將讀取該訊息,計(jì)算機(jī)則開始傳送數(shù)據(jù)。在一般情況下,DTR/DSR 線路是用以表示系統(tǒng)可進(jìn)行通訊作業(yè),而 RTS/CTS 線路則用于獨(dú)立的數(shù)據(jù)框架。

      在 LabWindows/CVI 中,SetCTSMode 函式將啟用或停用硬件握手。若已啟用 CTS 模式,則 LabWindows/CVI 將依循下列規(guī)則:

      計(jì)算機(jī)傳送數(shù)據(jù)時(shí):
      EIA-232 函式庫必須于傳送數(shù)據(jù)之前,偵測(cè)該 CTS 線路為高 (High) 狀態(tài)。

      計(jì)算機(jī)接收數(shù)據(jù)時(shí):
      若通訊端口為開啟狀態(tài),且輸入隊(duì)列具有容納數(shù)據(jù)的空間,則函式庫將引發(fā) (Raise) RTS 與 DTR。
      若通訊端口輸入隊(duì)列已達(dá) 90%,則函式庫將降低 RTS 并提升 DTR。
      若通訊端口輸入隊(duì)列近乎空白,則函式庫將引發(fā) RTS 并保持 DTR 為高狀態(tài)。
      若通訊端口為關(guān)閉,則函式庫將降低 RTS 與 DTR。

      XModem 握手
      雖然此種協(xié)議已普遍用于調(diào)制解調(diào)器通訊作業(yè),若其他裝置均可使用此種協(xié)議,仍可直接于裝置之間使用 XModem 協(xié)議。在 LabWindows/CVI 中,使用者可選擇是否隱藏實(shí)際的 XModem 建置。只要計(jì)算機(jī)透過 XModem 協(xié)議連接其他裝置,即可使用 LabWindows/CVI 的 XModem 函式,以傳送檔案至其他地址 (Site)。該函式為 XModemConfig、XModemSend,與 XModemReceive。

      根據(jù)下列參數(shù)使用協(xié)議:start_of_data、end_of_trans、neg_ack、ack、wait_delay、start_delay、max_tries,與 packet_size。傳輸數(shù)據(jù)的 2 邊必須同時(shí)認(rèn)可這些參數(shù),而 XModem 則提供相關(guān)標(biāo)準(zhǔn)定義。然而,使用者可透過 LabWindows/CVI 中的 XModemConfig 函式修改這些參數(shù),以符合任何需求。在接收器 (Receiver) 傳送 neg_ack 字符之后,即可于 XModem 中使用這些參數(shù)。此字符將告訴傳送器 (Sender) 已準(zhǔn)備好接收資料。于每次傳輸嘗試之間,接收器均將使用 start_delay 時(shí)間,直到滿足 max_tries 或接收到傳送器的 start_of_data。若滿足 max_tries,則接收器將提醒使用者目前無法溝通傳送器。若的確接收到傳送器的 start_of_data,則接收器將讀取后續(xù)的信息封包。此封包具有封包號(hào)碼、可檢查錯(cuò)誤的封包補(bǔ)充碼、packet_size 字節(jié)的實(shí)際數(shù)據(jù)封包,與用于更多錯(cuò)誤檢查的數(shù)據(jù)總和檢查碼 (Checksum)。在讀取數(shù)據(jù)之后,接收器將呼叫 wait_delay,并于稍后傳送認(rèn)可字符 (Ack) 回傳送器。若傳送器未接受到 ack,則將重新傳送 max_tries 數(shù)據(jù)封包,直到接收 ack 為止。若傳送器一直未接收 ack,則將通知使用者傳送檔案失敗。

      由于傳送器必須以 packet_size 字節(jié)的封包傳送數(shù)據(jù),因此若沒有足夠數(shù)據(jù)填滿最后的封包,則傳送器將使用 ASCII NULL (0) 字節(jié)填滿數(shù)據(jù)封包。如此將使接收檔案大于源文件。由于 XModem 傳輸作業(yè)的封包號(hào)碼,極可能增加 XON/OFF 控制字符而造成通訊中斷,因此 XModem 協(xié)議并不適合搭配使用 XON/XOFF。

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多