在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

    文章

    579

    瀏覽量

    35590
  • 上位機
    +關注

    關注

    27

    文章

    945

    瀏覽量

    55013
  • 異步收發器
    +關注

    關注

    0

    文章

    36

    瀏覽量

    10878
  • SCI
    SCI
    +關注

    關注

    1

    文章

    56

    瀏覽量

    20174
  • FIFO存儲
    +關注

    關注

    0

    文章

    103

    瀏覽量

    6037
收藏 人收藏

    評論

    相關推薦

    。。。。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 ?3922次閱讀

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

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

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

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

    AXI_GP接口和AXI_HP接口的相關內容

    學習關于ZYNQ IP核中的GP接口和HP接口的異同,介紹關于AXI_GP接口和AXI_HP接口的相關內容
    的頭像 發表于 07-03 14:17 ?3196次閱讀

    LDO相關內容介紹

    在電壓轉換電路中,LDO和DC-DC電路是最常用的兩種方式,本篇主要介紹LDO相關內容。 LDO是線性電源的種,它可以實現電源電壓的轉換,不過主要用在降壓領域。它的全稱是Low Dropout
    的頭像 發表于 11-06 11:09 ?723次閱讀
    LDO<b class='flag-5'>相關內容</b>介紹
    主站蜘蛛池模板: 婷婷五月天.com | 天天射日日操 | 天天爽夜夜爽每晚高澡 | 黄色成人在线网站 | 手机看片福利盒子 | 国产高清a | 偷偷狠狠的日日2020 | 国产三级日产三级日本三级 | 爱婷婷视频在线观看 | 毛片又大又粗又长又硬 | 国产一级aaa全黄毛片 | 日本大片免费观看视频 | 男人你懂的网站 | 美女黄18以下禁止观看的网站 | 免费国产h视频在线观看 | 欧色视频 | 高清一级片 | 深夜视频在线 | 免费亚洲视频在线观看 | 天天在线天天在线天天影视 | 天堂bt资源在线官网 | 天堂资源最新版在线官网 | 六月婷婷导航福利在线 | 成人网男女啪啪免费网站 | 久久青草国产免费观看 | 亚洲第一免费网站 | 午夜精品久久久久久久99 | 欧美成人高清性色生活 | 在线种子搜索 | 亚洲伊人精品综合在合线 | 日本福利小视频 | 青草国产在线视频 | 亚色综合 | 国产色噜噜 | 永久免费mv网站入口 | 色你懂的 | 一区二区三区免费 | www四虎影视| 天天色成人网 | 国产你懂的在线观看 | 特黄特色的大片观看免费视频 |