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

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

3天內(nèi)不再提示

一文解讀SCI通信的相關(guān)內(nèi)容

冬至子 ? 來源:龍一的編程life ? 作者:龍憨憨 ? 2023-11-08 10:34 ? 次閱讀

前言

本次總結(jié)主要是SCI通信的相關(guān)內(nèi)容。具體如下:

1、通信波特率的設(shè)置;
2、SCI通信時序:數(shù)據(jù)格式,信號的接收與發(fā)送時序;
3、SCI接收、發(fā)送的相關(guān)原理,包括查詢和中斷,F(xiàn)IFO等;
4、如何設(shè)計通信協(xié)議:MCU上位機,MCU–MCU。

基礎(chǔ)知識

SCI:串行通信接口,串行通信技術(shù)的一種總稱;
UART:通用異步收發(fā)器,串行通信的一種協(xié)議;
RS232:串行通信的一種物理接口電氣標準。

1、串行通信:同步通信和異步通信

  • 同步通信:發(fā)送、接收端共用一個時鐘用來同步,如I2C、SPI;
  • 異步通信:時鐘獨立,使用同一標稱頻率(波特率)。如SCI(UART)。

2、傳輸方式:單工、半雙工、全雙工

  • 單工:單向傳輸,只需一根數(shù)據(jù)線;
  • 半雙工:雙向傳輸,任一時刻只能發(fā)送或者接收,不能同時進行;
  • 全雙工:雙向傳輸,可同時收發(fā)數(shù)據(jù)。

3、DSP中的SCI接口可以看做UART,輸出電平為TTL,一般和RS232接口連接,RS232電平不同于TTL,需要進行電平轉(zhuǎn)換,常用芯片如MAX232。

  • 232電平:邏輯1:-3~15V;邏輯0:3 ~15V
  • 標準TTL:邏輯1:2~5V;邏輯0:0 ~0.8V

1、時鐘使能

1.1 時鐘使能

時鐘使能為外設(shè)時鐘控制寄存器PCLKCR0的第10位(SCIA)或第11(位SCIB)或第5位(SCIC)。
SysCtrlRegs.PCLKCR0.bit.SCIAENCLK = 1; // SCI-A
SysCtrlRegs.PCLKCR0.bit.SCIBENCLK = 1; // SCI-B
SysCtrlRegs.PCLKCR0.bit.SCICENCLK = 1; // SCI-C

圖片

1.2波特率

SCI的時鐘由LSPCLK和波特率選擇寄存器決定,波特率選擇寄存器為16位。波特率的設(shè)置分兩種情況:

  1. BRR = 0,波特率 = LSPCLK / ((BRR + 1)*8)
  2. BRR在1-65535之間,波特率 = LSPCLK / 16

圖片

2、SCI數(shù)據(jù)通信

2.1 數(shù)據(jù)格式

典型數(shù)據(jù)幀格式如圖Figure1-3所示:

  1. 1位起始位
  2. 1-8位數(shù)據(jù)位(LSB低位先行)
  3. 1個奇/偶校驗位
  4. 1位或2位停止位

圖片

所謂低位先行就是一個數(shù)據(jù)的地位在前 ,如0xAA,數(shù)據(jù)位則為:0101 0101

在這里說一下奇偶校驗,奇偶校驗檢查稱為垂直冗余檢查,具體指在每個發(fā)送字符中增加一個額外為使字符中的“1”的數(shù)目是奇數(shù)或偶數(shù)。
奇校驗:字符數(shù)據(jù)位中“1”的數(shù)目是偶數(shù),校驗位應(yīng)為“1”,使數(shù)目為偶數(shù);反之為“0”,如:1100 0011,數(shù)目為偶數(shù),校驗位則為1,即1100 0011 1;
偶校驗:字符數(shù)據(jù)位中“1”的數(shù)目是偶數(shù),校驗位應(yīng)為“0”,使數(shù)目為偶數(shù);反之為“1”,如:1100 0011,數(shù)目為偶數(shù),校驗位則為1,即1100 0011 0。

2.2 SCI數(shù)據(jù)流

由圖4-15可知發(fā)送和接收數(shù)據(jù)流。

  1. 一個發(fā)送器(TX)的相關(guān)寄存器:發(fā)送數(shù)據(jù)緩沖寄存器(SCITXBUF)和發(fā)送移位寄存器(TXSHF)
    數(shù)據(jù)流向為:發(fā)送數(shù)據(jù)–>SCITXBUF–>TXSHF—>SCITXD發(fā)送出去;
  2. 一個接收器(RX)的相關(guān)寄存器:接收數(shù)據(jù)緩沖寄存器(SCIRXBUF)和發(fā)送移位寄存器(RXSHF)
    數(shù)據(jù)流向為:接收數(shù)據(jù)—>SCIRXD–>RXSHF–>SCITXBUF存取緩沖器;
    接收數(shù)據(jù)直接通過接收數(shù)據(jù)緩沖器給變量即可。

以上的數(shù)據(jù)流都是在非FIFO模式下的,F(xiàn)IFO模式簡單來說是設(shè)置了一個緩沖機制,設(shè)置一個數(shù)據(jù)的緩沖深度,當發(fā)送或接受數(shù)據(jù)存到設(shè)置的深度時,再進行發(fā)送或接收。具體流向見圖4-15。

2.3、信號接收時序

信號接收時序如Figure1-8所示,具體時序為:

  1. 1-RXENA使能,接收數(shù)據(jù);
  2. 2- 數(shù)據(jù)到SCIRXD,檢測起始位;
  3. 3-數(shù)據(jù)從移位寄存器RXSHF到緩沖寄存器SCIRXBUF,產(chǎn)生中斷申請,RXRDY變高(1),已接收到一個新字符;
  4. 4-程序讀緩沖寄存器,RXRDY=0;
  5. 5-下一次字節(jié)到達SCIRXD,檢測啟動位,清除;
  6. 6-RXENA變?yōu)榈停?);
  7. 繼續(xù)想移位寄存器轉(zhuǎn)載數(shù)據(jù),但不移入緩沖寄存器。

以上是中斷接收,我們一般都是用中斷接收,中斷直接獲取緩沖寄存器的中的數(shù)據(jù)即可;而查詢接收則是通過查詢RXRDY標志位來進行接收,為高則接收到新字符,讀之后為0.

圖片

2.4 信號的發(fā)送時序

  1. 1-TXENA使能,發(fā)送數(shù)據(jù),初始時緩沖寄存器SCITXBUF為空,TXRDY為高(1),TX EMPTY為高(1);
  2. 2-寫數(shù)據(jù)到緩緩沖寄存器,不為空,TXRDY為低(0),EMPTY為低(0);
  3. 發(fā)送數(shù)據(jù)到移位寄存器TXSHF,緩沖寄存器為空,準備傳送第二個字符到緩沖寄存器,3-TXRDY為高(1),中斷請求;
  4. 3-TXRDY為高(1)時,程序?qū)懙诙€字符到緩沖寄存器,這時SCITXD開始發(fā)送第一個字符;寫入緩沖寄存器后,4-TXRDY為低(0);
  5. 發(fā)送完第一個字符,開始將第二個字符移入移位寄存器,移完5-TXRDY為高(1),開始發(fā)送第二個字符;
  6. 6-TXENA位變低,禁止發(fā)送數(shù)據(jù),,結(jié)束當前字符的發(fā)送;
  7. 7-第二個字符發(fā)送完成,緩沖寄存器為空,準備發(fā)送下一個字符。

以上為中斷發(fā)送,一般我們發(fā)送可以直接賦值給緩沖寄存器SCITXBUF即可。

圖片

3 通信協(xié)議

一般使用SCI通信(RS232通信)可以是MCU–上位機,MCU–MCU等,這里主要說這兩種,其實方法都一致。
1、如果傳輸?shù)臄?shù)據(jù)量不大的話,直接傳輸即可,也不需要進行精心的設(shè)計,規(guī)定好先后順序即可,然后發(fā)送和接收都按照順序進行即可;
2、如果傳輸?shù)臄?shù)據(jù)量的大的話,同時是全雙工進行的話,這時候就需要進行設(shè)計相關(guān)的傳輸準則了。如:

  1. 確定傳輸?shù)膶ο螅?/li>
  2. 確定雙方的通信地址;
  3. 確定傳輸數(shù)據(jù)的命令,不同命令對應(yīng)傳輸不同的數(shù)據(jù);
  4. 確定校驗的方法,每次指令傳輸?shù)臄?shù)據(jù)都進行校驗,驗證傳輸?shù)暮徒邮盏氖欠褚恢?,不一致則重新接收;
  5. 全部確定以后,即可按照地址、傳輸指令和校驗方法編寫程序進行驗證。

總結(jié)

此次的重點在于波特率的設(shè)置以及數(shù)據(jù)傳輸?shù)臅r序,至于通信協(xié)議只是寫了最基本的思路,需要根據(jù)具體的實際情況進行編寫相關(guān)的通信標準,然后設(shè)計程序。

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

    關(guān)注

    4

    文章

    555

    瀏覽量

    35165
  • 上位機
    +關(guān)注

    關(guān)注

    27

    文章

    927

    瀏覽量

    54546
  • 異步收發(fā)器
    +關(guān)注

    關(guān)注

    0

    文章

    36

    瀏覽量

    10823
  • SCI
    SCI
    +關(guān)注

    關(guān)注

    1

    文章

    55

    瀏覽量

    20058
  • FIFO存儲
    +關(guān)注

    關(guān)注

    0

    文章

    103

    瀏覽量

    5944
收藏 人收藏

    評論

    相關(guān)推薦

    。。。。GSM的相關(guān)內(nèi)容(包含AT)

    GSM相關(guān)內(nèi)容(短消息,AT指令,例程)。。。。
    發(fā)表于 07-21 19:42

    量子力學(xué)經(jīng)典相關(guān)內(nèi)容附圖使之更易理解

    量子力學(xué)經(jīng)典相關(guān)內(nèi)容附圖使之更易理解2020-8-1
    發(fā)表于 08-01 22:24

    單片機之驅(qū)動能力的相關(guān)內(nèi)容解析

    來源:互聯(lián)網(wǎng)單片機是個比較復(fù)雜的課題,但是如果你找到正確的學(xué)習(xí)方式你就會覺得單片機點都不難,下面跟著小編學(xué)習(xí)下單片機篇之驅(qū)動能力的部分相關(guān)內(nèi)容~
    發(fā)表于 10-22 19:02

    GPIO中斷相關(guān)內(nèi)容 精選資料分享

    芯片:STM32 F412這里只寫GPIO中斷相關(guān)內(nèi)容打開STM32CubeMX,鼠標左鍵點擊需要設(shè)置GPIO中斷的引腳,選擇GPIO_EXTI*,鼠標右鍵點擊可以設(shè)置自定義LABEL設(shè)置GPIO
    發(fā)表于 08-13 08:54

    小白求助,機甲大師機器人軟件單元測試的相關(guān)內(nèi)容

    小白求助,機甲大師機器人軟件單元測試的相關(guān)內(nèi)容
    發(fā)表于 11-22 06:15

    簡單描述下Arduino相關(guān)內(nèi)容

    什么是Arduino,今天就針對初學(xué)者簡單描述下 Arduino 相關(guān)內(nèi)容。、初識Arduino要了解Arduino就先要了解什么是單片機,Arduino平臺的基礎(chǔ)其實就是AVR指令集的單片機。1、什么是...
    發(fā)表于 11-23 08:38

    串口硬件和協(xié)議的相關(guān)內(nèi)容

    1.概述串口通信種非常常用的通信方式,本文首先介紹了串口硬件和協(xié)議的相關(guān)內(nèi)容,然后給出個單片機與上位機通過串口
    發(fā)表于 01-19 08:20

    分享個RK3288主板適配LVDS分辨率相關(guān)內(nèi)容

    分享個RK3288主板適配LVDS分辨率相關(guān)內(nèi)容
    發(fā)表于 03-04 07:24

    高云半導(dǎo)體時序約束的相關(guān)內(nèi)容

    本手冊主要描述高云半導(dǎo)體時序約束的相關(guān)內(nèi)容,包含時序約束編輯器(Timing Constraints Editor)的使用、約束語法規(guī)范以及靜態(tài)時序分析報告(以下簡稱時序報告)說明。旨在幫助用戶快速
    發(fā)表于 09-29 08:09

    永康泰沖擊波參數(shù)及相關(guān)內(nèi)容

    永康泰沖擊波參數(shù)及相關(guān)內(nèi)容,招標文件參數(shù)。
    發(fā)表于 05-09 15:22 ?1次下載

    淺析彈簧管壓力儀表的相關(guān)內(nèi)容

    彈簧管壓力表屬于就地指示型壓力表,就地顯示壓力的大小,不帶遠程傳送顯示、調(diào)節(jié)功能。在化工場合運用非常廣泛,接下來就為大家全面的介紹下彈簧管壓力儀表的相關(guān)內(nèi)容。
    的頭像 發(fā)表于 09-17 09:35 ?3727次閱讀

    USB HID介紹及USB協(xié)議的相關(guān)內(nèi)容USB設(shè)備描述符資料概述

    HID是種USB通信協(xié)議,無需安裝驅(qū)動就能進行交互,在學(xué)習(xí)HID之前,先來復(fù)習(xí)下USB協(xié)議的相關(guān)內(nèi)容。
    發(fā)表于 11-02 15:15 ?28次下載
    USB HID介紹及USB協(xié)議的<b class='flag-5'>相關(guān)內(nèi)容</b>USB設(shè)備描述符資料概述

    CANOpen系列教程01_ 初識CAN與CANOpen及相關(guān)內(nèi)容

    CANOpen系列教程01_初識CAN與CANOpen及相關(guān)內(nèi)容
    的頭像 發(fā)表于 03-07 16:15 ?8589次閱讀

    AXI_GP接口和AXI_HP接口的相關(guān)內(nèi)容

    學(xué)習(xí)關(guān)于ZYNQ IP核中的GP接口和HP接口的異同,介紹關(guān)于AXI_GP接口和AXI_HP接口的相關(guān)內(nèi)容。
    的頭像 發(fā)表于 07-03 14:17 ?2614次閱讀

    LDO相關(guān)內(nèi)容介紹

    在電壓轉(zhuǎn)換電路中,LDO和DC-DC電路是最常用的兩種方式,本篇主要介紹LDO相關(guān)內(nèi)容。 LDO是線性電源的種,它可以實現(xiàn)電源電壓的轉(zhuǎn)換,不過主要用在降壓領(lǐng)域。它的全稱是Low Dropout
    的頭像 發(fā)表于 11-06 11:09 ?531次閱讀
    LDO<b class='flag-5'>相關(guān)內(nèi)容</b>介紹