0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

8086基礎-串行通信

汽車電子技術 ? 來源:滑小稽筆記 ? 作者:滑小稽 ? 2023-03-02 09:59 ? 次閱讀

4.1 串行通信簡介

并行通信雖然通信速度比較快,但是如果數據位數很多的時候,對應的數據線也會很多,之前學習的端口輸入輸出本質上就是一種并行通信,為了較少數據線的數量,降低人工布線的難度,串行通信被設計了出來。

   串行通信作為計算機通信方式之一,主要起到主機與外設以及主機之間的數據傳輸作用,串行通信具有傳輸線少、成本低的特點,主要適用于近距離的人-機交換、實時監(jiān)控等系統(tǒng)通信工作當中,借助于現(xiàn)有的電話網也能實現(xiàn)遠距離傳輸,因此串行通信接口是計算機系統(tǒng)當中的常用接口。

   現(xiàn)在常用的串行通信就是能夠產生TTL電平的異步串行通信,通過外擴的芯片,例如RS232,MAX485就產生了現(xiàn)在常用的232通信和485通信,隨著串行通信的發(fā)展,通信速率幾乎和并行通信一樣,甚至比并行通信還快。

4.2 8251簡介

4.1.1 引腳詳解

圖片

(1)三態(tài)雙向八位數據口D0~D7:用于和CPU進行數據通信

(2)寫控制WR:低電平有效

(3)讀控制RD:低電平有效

(4)片選CS:低電平有效

(5)復位RESET:高電平有效,用于復位芯片

(6)傳送時鐘TXC:數據發(fā)送時鐘線

(7)接收時鐘RXC:數據接收時鐘線

(8)芯片時鐘CLK:為內部電路提供時鐘脈沖,應該大于傳送速率的30倍

(9)傳送寄存器信號TXE:沒有可以發(fā)送的數據時,該引腳為1,當從CPU接收到數據且控制字的TXEN=1時,該引腳變?yōu)?,在同步工作方式時,若CPU來不及輸出一個字符,則將使該引腳變?yōu)?,同時發(fā)送器在輸出線上自動插入同步字符,以填補傳輸空隙

(10)傳送允許信號CTS:Modem用于通知8251A,Modem準備接收數據

(11)SYNDET/BD:該引腳與狀態(tài)寄存器中的SYNDET/BD一樣,具有內同步方式和外同步方式兩種

a.內同步方式:該引腳作為輸出,如果SYNC字符被發(fā)現(xiàn),則變?yōu)?,當CPU讀取狀態(tài)寄存器內容時,它被復位,高電平輸出代表8251A已經同步

b.外同步方式:該引腳作為輸入,當接收到高電平時,表示同步開始,用于通知接收電路開始裝配收到的串行數據,在異步通信時表示Break狀態(tài)出現(xiàn)在RXD線上,輸入上升沿使8251A在下一個RXC的下降沿開始裝載數據

(12)發(fā)送準備就緒TXRDY:可以作為CPU的中斷請求信號,當傳送寄存器空或者CTS引腳為0或者控制字的TXEN=1時該引腳置1

(13)接收準備就緒RXRDY:用于通知CPU芯片已經接收到一個字符,8251A每接收到一個字符該引腳置1,CPU取走后,該引腳變?yōu)?

(14)數據命令選擇C/D:CPU向8251A寫入時,該引腳為1選擇命令,為0選擇數據;當CPU向8251A讀取時,該引腳為1用于選擇狀態(tài),為0選擇數據

(15)DTR:8251A輸出給Modem表示8251A已經準備就緒

(16)RTS:8251A輸出給Modem表示8251A已經準備傳送數據

(17)DSR:表示Modem已經準備好

(18)數據發(fā)送TXD:發(fā)送數據

(19)數據接收RXD:接收數據

4.1.2 內部結構框圖

圖片

4.1.3 寄存器詳解

(1)8251A的模式字

模式字用于設置8251A的工作模式:同步/異步方式,數據位,奇偶校驗位,校驗方式與停止位的個數等。

D7 D6 D5 D4 D3 D2 D1 D0
S2/SCS S1/ESD EP PEN L2 L1 B2 B1

D7~D6:這兩位在同步方式與異步方式下含義不一樣,具體配置如下表所示

S2/SCS S1/ESD 停止位個數
異步方式 0 0 無效
0 1 1位
1 0 1.5位
1 1 2位
同步方式 S2/SCS 0 2個SYNC字符
1 1個SYNC字符
S1/ESD 0 內字符同步
1 外字符同步

D5:奇偶校驗方式選擇,僅在PEN=1時有效

0:奇校驗

1:偶校驗

D4:奇偶校驗位開關

0:關閉校驗

1:開啟校驗

D3~D2:數據位的位數,具體配置如下表所示

L2 L1 數據長度
0 0 5位
0 1 6位
1 0 7位
1 1 8位

D1~D0:工作模式設置(同步/異步方式和波特率因子的配置),其中波特率因子定義為時鐘與波特率的比值。

B2 B1 工作方式 波特率因子
0 0 同步 1
0 1 異步 1
1 0 異步 16
1 1 異步 64

(2)8251A的控制字

控制字用于控制8251A的基本功能,如是否允許接收或發(fā)送數據,與Modem連接的控制信號,軟件復位等。

D7 D6 D5 D4 D3 D2 D1 D0
RH IR RTS ER SBRK RXE DTR TXEN

D7:接收電路尋找同步字符

0:尋找方式停止

1:尋找方式開始

D6:用于內部復位

0:下一個字符不為模式字

1:下一個字符為模式字

D5:該位為0芯片RTS輸出高電平,為1芯片RTS輸出低電平

D4:將狀態(tài)寄存器中的奇偶位錯誤,停止位錯誤,溢出錯誤標志復位

0:不影響PE,OE,F(xiàn)E

1:使PE,OE,F(xiàn)E復位

D3:強迫TXD變?yōu)榈碗娖?/p>

0:正常工作

1:送Break狀態(tài),即TXD=0

D2:接收使能

0:不允許接收

1:允許接收

D1:控制8251A引腳的信號

0:使輸出端DTR=1

1:使輸出端DTR=0

D0:發(fā)送使能

0:不允許發(fā)送

1:允許發(fā)送

(3)8251A的狀態(tài)字

狀態(tài)字用于反映8251A在傳送數據過程中所出現(xiàn)的各種狀態(tài)。

D7 D6 D5 D4 D3 D2 D1 D0
DSR SYNDET/BD FE OE PE TEX RXRDY TXRDY

D7:將引腳DSR置為0

0:輸入端DSR=1

1:輸入端DSR=0

D6:檢測到SYNC或者Break后該位置1

D5:停止位錯誤

0:停止位正常

1:停止位出錯

D4:數據溢出錯誤

0:數據沒有溢出

1:數據溢出

D3:奇偶校驗錯誤

0:奇偶校驗正常

1:奇偶校驗出錯

D2:發(fā)送寄存器空標志

0:發(fā)送寄存器非空

1:發(fā)送寄存器空

D1:接收就緒標志

0:接收寄存器空

1:接收寄存器非空

D0:發(fā)送就緒標志

0:發(fā)送寄存器非空

1:發(fā)送寄存器空

4.3 串口通信配置流程

由于8251A芯片是通過順序來識別寫入的數據的,所以首先寫入的是模式字,然后寫入控制字,這兩個均屬于命令,然后寫入數據即可。

4.4 源代碼

例題:利用8251A發(fā)送一串字符串,要求串口波特率9600,無校驗位,停止位1個,數據位8個。

圖片

解析過程:由于波特率是9600KBps,根據公式,波特率等于時鐘與波特率因子的比值,這個時鐘指的是發(fā)送與接收的時鐘。根據硬件的連接表如下圖所示

CS C/D RD WR 功能
0 0 0 1 讀取8251A的數據
0 1 0 1 讀取8251A的命令
0 0 1 0 8251A寫入數據
0 1 1 0 8251A寫入命令
0 × 1 1 8251A數據總線緩沖器為高阻態(tài)
1 × × × 未選中
根據表格的代碼可知,寫入模式字和控制字的地址為20H(因為A5接在C/D上),寫數據的地址為00H。根據上述分析,源代碼如下圖所示:

圖片

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 接口
    +關注

    關注

    33

    文章

    8598

    瀏覽量

    151163
  • 計算機系統(tǒng)

    關注

    0

    文章

    282

    瀏覽量

    24115
  • 串行通信
    +關注

    關注

    4

    文章

    572

    瀏覽量

    35399
收藏 人收藏

    評論

    相關推薦

    如何使用MATLAB進行串行通信

    在本教程中,我們將學習如何使用 MATLAB 進行串行通信。對于串行通信的接收端,我們在這里使用Arduino。
    發(fā)表于 11-01 16:38 ?2996次閱讀
    如何使用MATLAB進行<b class='flag-5'>串行</b><b class='flag-5'>通信</b>

    8086通過8255讀取TLC549的匯編??!

    這個TLC549是用在SPI總線下的串行AD轉換器,網上多是51單片機模擬SPI總線的程序(c和匯編),所以我也用8086+8255模擬了一下,卻總是出不來正確結果,求一段8086匯編{:3:}{:3:}
    發(fā)表于 04-29 22:15

    串行通信的分類,常見的串行通信接口?

    設備之間通信的方式串行通信的分類常見的串行通信接口UART引腳連接方法STM32的UART特點STM32中UART參數
    發(fā)表于 03-17 07:32

    什么是串行通信

    【朱老師課程總結 侵刪】第一部分、章節(jié)目錄1.13.1.通信有關的常見概念1.13.2.什么是串行通信1.13.3.51單片機的串行通信1.
    發(fā)表于 11-22 08:13

    串行通信通信方式是什么?常見的串行通信接口有哪些?

    串行通信通信方式是什么?常見的串行通信接口有哪些?STM32F4異步通信方式特點是什么?
    發(fā)表于 12-03 07:35

    如何區(qū)分串口通信串行通信

    串口通信串行通信的區(qū)分串行通信串行通信是指計算機
    發(fā)表于 12-24 06:46

    串行通信實驗

    串行通信實驗 實驗目的: 1、掌握TMS320LF2407串行通信模塊的工作原理 2、掌握TMS320LF2407串行
    發(fā)表于 10-17 22:34 ?2574次閱讀

    什么是串行通信和接口

    什么是串行通信和接口 串行通信設備和接口通過點對點數據鏈路傳輸信號。在串行流中一個接一個地傳輸比特。
    發(fā)表于 03-19 14:33 ?4913次閱讀
    什么是<b class='flag-5'>串行</b><b class='flag-5'>通信</b>和接口

    串行通信資料

    串行通信,基于串行通信,快來下載學習吧,很好的學習資料。
    發(fā)表于 01-13 14:14 ?21次下載

    INTEL 8086 微處理器應用入門 附錄1 8086指令詳解

    INTEL 8086 微處理器應用入門 附錄1 8086指令詳解
    發(fā)表于 09-22 11:23 ?20次下載
    INTEL <b class='flag-5'>8086</b> 微處理器應用入門 附錄1 <b class='flag-5'>8086</b>指令詳解

    8086CPU中文資料匯總(8086引腳圖及功能_工作原理及應用電路)

    本文開始介紹了8086引腳圖功能和8086工作模式,其次介紹了8086結構與系統(tǒng)組成,最后介紹了8086微處理器的工作原理及應用電路。
    發(fā)表于 04-16 11:02 ?7w次閱讀
    <b class='flag-5'>8086</b>CPU中文資料匯總(<b class='flag-5'>8086</b>引腳圖及功能_工作原理及應用電路)

    8086CPU引腳圖及功能_8086CPU組成部分

    本文開始介紹了8086的性能特點,其次介紹了8086的組成部分與存儲器組織,最后詳細介紹了8086CPU引腳圖及功能。
    發(fā)表于 04-16 14:27 ?7w次閱讀
    <b class='flag-5'>8086</b>CPU引腳圖及功能_<b class='flag-5'>8086</b>CPU組成部分

    串行通信的介紹及串行通信的應用說明

    串行是與并行想對應的,并行通信是指數據的各位同時被傳送。串行通信是將要傳送的數據一位位的依次順序發(fā)送。串行
    發(fā)表于 04-17 17:28 ?1次下載
    <b class='flag-5'>串行</b><b class='flag-5'>通信</b>的介紹及<b class='flag-5'>串行</b><b class='flag-5'>通信</b>的應用說明

    SYN8086語音合成芯片最全手冊

    包涵:SYN8086語音合成芯片-用戶手冊SYN8086語音合成芯片-硬件手冊SYN8086語音合成芯片-評估工具使用手冊SYN8086語音芯片-外圍電路原理圖SYN
    發(fā)表于 02-03 14:59 ?5次下載

    常見串行通信協(xié)議 串行通信和并行通信的區(qū)別

    串行通信是一種通過單個傳輸線按照順序傳送數據的通信方式。在串行通信中,每個數據位按照順序依次傳輸,一個接一個地發(fā)送到目標設備。
    的頭像 發(fā)表于 03-05 16:38 ?1322次閱讀
    常見<b class='flag-5'>串行</b><b class='flag-5'>通信</b>協(xié)議 <b class='flag-5'>串行</b><b class='flag-5'>通信</b>和并行<b class='flag-5'>通信</b>的區(qū)別