<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

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

3天內不再提示

一文解讀SCI通信的相關內容

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

前言

本次總結主要是SCI通信的相關內容。具體如下:

1、通信波特率的設置;
2、SCI通信時序:數據格式,信號的接收與發送時序;
3、SCI接收、發送的相關原理,包括查詢和中斷,FIFO等;
4、如何設計通信協議:MCU上位機,MCU–MCU。

基礎知識

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

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

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

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

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

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

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

1、時鐘使能

1.1 時鐘使能

時鐘使能為外設時鐘控制寄存器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位。波特率的設置分兩種情況:

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

圖片

2、SCI數據通信

2.1 數據格式

典型數據幀格式如圖Figure1-3所示:

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

圖片

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

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

2.2 SCI數據流

由圖4-15可知發送和接收數據流。

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

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

2.3、信號接收時序

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

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

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

圖片

2.4 信號的發送時序

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

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

圖片

3 通信協議

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

  1. 確定傳輸的對象;
  2. 確定雙方的通信地址;
  3. 確定傳輸數據的命令,不同命令對應傳輸不同的數據;
  4. 確定校驗的方法,每次指令傳輸的數據都進行校驗,驗證傳輸的和接收的是否一致,不一致則重新接收;
  5. 全部確定以后,即可按照地址、傳輸指令和校驗方法編寫程序進行驗證。

總結

此次的重點在于波特率的設置以及數據傳輸的時序,至于通信協議只是寫了最基本的思路,需要根據具體的實際情況進行編寫相關的通信標準,然后設計程序。

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

    關注

    4

    文章

    535

    瀏覽量

    35020
  • 上位機
    +關注

    關注

    26

    文章

    861

    瀏覽量

    54045
  • 異步收發器
    +關注

    關注

    0

    文章

    36

    瀏覽量

    10796
  • SCI
    SCI
    +關注

    關注

    1

    文章

    53

    瀏覽量

    19950
  • FIFO存儲
    +關注

    關注

    0

    文章

    102

    瀏覽量

    5894
收藏 人收藏

    評論

    相關推薦

    大功率晶閘管封裝工藝相關內容,有沒有哪位朋友可以幫忙

    大功率晶閘管封裝工藝相關內容,有沒有哪位朋友可以幫忙
    發表于 04-01 10:11

    。。。。GSM的相關內容(包含AT)

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

    量子力學經典相關內容附圖使之更易理解

    量子力學經典相關內容附圖使之更易理解2020-8-1
    發表于 08-01 22:24

    單片機之驅動能力的相關內容解析

    來源:互聯網單片機是個比較復雜的課題,但是如果你找到正確的學習方式你就會覺得單片機點都不難,下面跟著小編學習下單片機篇之驅動能力的部分相關內容~
    發表于 10-22 19:02

    GPIO中斷相關內容 精選資料分享

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

    小白求助,機甲大師機器人軟件單元測試的相關內容

    小白求助,機甲大師機器人軟件單元測試的相關內容
    發表于 11-22 06:15

    簡單描述下Arduino相關內容

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

    串口硬件和協議的相關內容

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

    分享個RK3288主板適配LVDS分辨率相關內容

    分享個RK3288主板適配LVDS分辨率相關內容
    發表于 03-04 07:24

    高云半導體時序約束的相關內容

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

    永康泰沖擊波參數及相關內容

    永康泰沖擊波參數及相關內容,招標文件參數。
    發表于 05-09 15:22 ?1次下載

    淺析彈簧管壓力儀表的相關內容

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

    USB HID介紹及USB協議的相關內容USB設備描述符資料概述

    HID是一種USB通信協議,無需安裝驅動就能進行交互,在學習HID之前,先來復習一下USB協議的相關內容。
    發表于 11-02 15:15 ?27次下載
    USB HID介紹及USB協議的<b class='flag-5'>相關內容</b>USB設備描述符資料概述

    CANOpen系列教程01_ 初識CAN與CANOpen及相關內容

    CANOpen系列教程01_初識CAN與CANOpen及相關內容
    的頭像 發表于 03-07 16:15 ?8064次閱讀

    在 I/O 看未來 | 多設備相關內容三大更新

    作者 / 開發者關系工程師 Sara Hamilton 您是否錯過了今年 Google I/O 大會上多設備相關內容的最新動態?別擔心,我們將在本文為您介紹作為開發者不容錯過的 Android
    的頭像 發表于 07-12 17:40 ?242次閱讀
    在 I/O 看未來 | 多設備<b class='flag-5'>相關內容</b>三大更新
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>