DSP_SCI

 F2833x Serial Communication Interface

簡介

串行通信接口(SCI)模塊是一個串行I / O端口,允許F2833x與其他外圍設備之間的異步通信。 它通常被稱為UART(通用異步接收器發送器),通常根據RS232標準使用。

SCI接收器和發送器每個都有一個16深的FIFO,用於減少服務開銷,每個FIFO都有自己獨立的使能和中斷位。 兩者都可以獨立操作以進行半雙工通信,或同時進行全雙工通信。

為了保持數據完整性,SCI檢查接收到的數據是否存在中斷檢測,奇偶校驗,溢出和幀錯誤。 通過16位波特選擇寄存器,可以針對不同的通信速率對比特率進行編程。

SCI Data Format

基本數據單元稱為字符,長度為1位到8位。 每個數據字符都使用起始位,1或2個停止位,可選的奇偶校驗位和可選的地址/數據位進行格式化。 數據字符及其格式化位稱為幀。 幀被組織成稱為塊的組。 如果SCI總線上存在兩個以上的串行端口,則數據塊通常以地址幀開始,該地址幀指定由用戶協議確定的數據的目標端口。

起始位是每幀開始時的低位,標記幀的開始。 SCI使用NRZ(非歸零)格式,這意味著在非激活狀態下,SCIRX和SCITX線將保持高電平。 當外圍設備沒有在各自的線路上接收或發送時,它們會將SCIRX和SCITX線路拉到高水平。'

注意:如果您正在使用RS232接口,則串行線路上的所有電壓電平都由外部接口電路驅動,例如Texas Instruments MAX3221。 邏輯“0”作為+5和+ 15V之間的電壓傳輸,邏輯“1”作為-5和-15V之間的負電壓傳輸。 在接收器側,高於+ 3V的電壓將被識別為有效的“0”,低於-3V的電壓將被識別為邏輯“1”。

SCI Data Timing

SCI異步通信格式使用單線(單向)或雙線(雙向)通信。 在此模式下,幀由起始位,1到8個數據位,可選的偶數/奇數奇偶校驗位以及一個或兩個停止位組成(如幻燈片9-3所示)。 每個數據位有8個SCICLK週期。

接收器在接收到有效起始位時開始操作。 有效起始位由四個連續的零位內部SCICLK週期標識,如幻燈片9-4所示。 如果任何位不為零,則處理器重新開始並開始尋找另一個起始位。

對於起始位之後的位,處理器通過在位中間產生三個樣本來確定位值。 這些採樣發生在第四,第五和第六SCICLK週期,並且位值確定基於多數(三分之二)。 幻燈片9-4說明了這種異步通信格式,其中一個起始位顯示了多數表決的位置。 由於接收器使其自身與幀同步,因此外部發送和接收設備不必使用同步的串行時鐘。 時鐘可以在本地生成。

 

SCR Register Set

 

SCI Communications Control Register (SCICCR)

上一張幻燈片解釋了SCI數據幀結構的設置。

 如果未使用多處理器喚醒模式,則應清除第3位。這樣可以避免在數據幀末尾生成額外的地址/數據選擇位(見幻燈片9-3)。

某些主機或其他設備無法處理此額外位。

 

SCI Control Register 1(SCICTL1)

配置SCICCR寄存器時,SCI端口應首先保持無效狀態。

這是使用SCI控制寄存器1(SCICTL1.5)的SW RESET位完成的。向該位寫入0會初始化並保持SCI狀態機和操作標誌處於復位狀態。

然後可以配置SCICCR。然後,通過向SW RESET位寫1來重新使能SCI端口。在系統復位時,SW RESET位等於0。

 

SCI Baud Rate Register

SCI的波特率來自低速預縮放器(LSPCLK)。

假設SYSCLK頻率為150MHz,低速預分頻器初始化為“除以4”,我們可以計算BRR的值,讓我們說數據速率為9600波特:

BRR必須是整數,因此我們必須將結果舍入到487. BRR = 487的反向計算導致實際數據速率為9605位/秒(誤差= 0.05%)。

 

SCI Control Register 2 SCICTL2

位1和位0使能或禁止SCI發送和接收中斷。 如果不使用中斷,則可以通過清除第1位和第0位來禁用此功能。

在這種情況下,我們需要對發送器狀態標誌(SCICTL2.7和SCICTL2.6)應用輪詢方法。

SCITXEMPTY標誌等待整個數據幀離開SCI輸出,而標誌SCITXREADY表示我們可以在物理髮送前一個字符之前將下一個字符重新加載到SCITXBUF中。

接收器部分的狀態標誌可以在SCI接收器狀態寄存器中找到(參見下一張幻燈片)。

 

SCI Receiver Status Register SCIRXST

 

SCI中斷邏輯在接收或發送完整字符時產生中斷標誌,由SCI字符長度決定。 這提供了一種方便有效的定時和控制SCI發送器和接收器操作的方法。 發送器的中斷標誌是TXRDY(SCICTL2.7),接收器的中斷標誌是RXRDY(SCIRXST.6)。 當字符傳輸到TXSHF並且SCITXBUF準備接收下一個字符時,TXRDY置位。 此外,當SCIBUF和TXSHF寄存器都為空時,TX EMPTY標誌(SCICTL2.6)置位。

當接收到新字符並轉入SCIRXBUF時,RXRDY標誌置位。 此外,如果發生中斷條件,則設置BRKDT標誌。 中斷條件是SCIRXD線在丟失停止位後保持連續低電平至少10位。 控制SCI操作的CPU可以輪詢上述每個標誌,或者通過將RX / BK INT ENA(SCICTL2.1)和/或TX INT ENA(SCICTL2.0)位置1有效來啟用與標誌相關的中斷高。

其他接收器錯誤存在附加標誌和中斷功能。 RX ERROR標誌是中斷檢測(BRKDT),幀錯誤(FE),接收器溢出(OE)和奇偶校驗錯誤(PE)位的邏輯或。 RX ERROR high表示在傳輸過程中發生了這四個錯誤中的至少一個。 如果RX ERR INT ENA(SCICTL1.6)位置1,這也會向CPU發送中斷請求。

 

SCI FIFO Mode Register

在增強功能集中,SCI模塊支持硬件中的自動波特率檢測邏輯。 以下部分介紹了自動波特率檢測功能的啟用順序。 自動波特率是一項功能,可用於將F2833x的數據速率調整為主機設備的傳輸速度。 如果主機發送字符'A'或'a',則自動波特率單元將鎖定此字符並相應地設置內部波特率寄存器。\

要使用此功能,需要遵循以下順序:

  1. 通過將SCIFFCT中的CDC位(位13)置1並通過向ABDCLR位(位14)寫1來清除ABD位(位15),為SCI啟用自動波特率檢測模式。
  2. 將波特率寄存器初始化為1或小於500 Kbps的波特率限制。
  3. 允許SCI以所需的波特率從主機接收字符“A”或“a”。如果第一個字符是“A”或“a”,則自動波特率檢測硬件將檢測輸入波特率並設置ABD位。
  4. 自動檢測硬件將使用十六進制的等效波特值更新波特率寄存器。邏輯還會產生CPU中斷。
  5. 通過向SCIFFCT寄存器的ABD CLR(第14位)寫入1來響應中斷清除ADB位,並通過寫入0清除CDC位來禁用進一步的自動波特率鎖定。
  6. 讀取字符“A”或“a”的接收緩衝區以清空緩衝區和緩衝區狀態。
  7. 如果在CDC為1時設置ABD(表示自動波特率校準),則會發生SCI發送FIFO中斷(TXINT)。中斷服務後,CDC位必須由軟件清零。

 

 

Additionalflagandinterruptcapabilityexistsforotherreceivererrors.TheRXERRORflag
isthelogicalORofthebreakdetect(BRKDT),framingerror(FE),receiveroverrun(OE),
andparityerror(PE)bits.RXERRORhighindicatesthatatleastoneofthesefourerrorshas
occurredduringtransmission.ThiswillalsosendaninterruptrequesttotheCPUiftheRX
ERRINTENA(SCICTL1.6)bitisset.

转载于:https://www.cnblogs.com/CiAn-H/p/9898939.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/265556.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何让自己的写的程序在阿里云一直运行

参考:如何让自己的写的程序在阿里云一直运行 作者:图触靓 发布时间: 2020-08-02 11:53:28 网址:https://blog.csdn.net/bhbhhyg/article/details/107742311 目录1、下载screen:2、运行screen,创建一个scree…

C程序设计语言--第五章:指针与数组

为什么80%的码农都做不了架构师?>>> 指针是一种保存变量地址的变量. 5.1 指针与地址 通常的机器都有一系列连续编号或编址的存储单元,这些存储单元可以单个进行操纵,也可以连续成组的方式操纵.指针是能够存放一个地址的一组存储单元(通常是两个或四个…

java list 自定义类型转换_使用Java Stream API将List按自定义分组规则转换成Map的一个例子...

本文完整测试代码见文末。测试数据是List里的4个员工对象实例:根据员工所在的城市进行分组:结果分成了三组:第一组的员工在上海:第二组的员工在成都:统计每组员工个数:把员工进行分组,得分大于1…

安卓app与阿里云服务器的无线通信(非局域网)

参考:安卓app与阿里云服务器的无线通信(非局域网) 作者:图触靓 发布时间: 2020-08-01 16:13:14 网址:https://blog.csdn.net/bhbhhyg/article/details/107732156 目录写在阿里云里面的服务器代码&#xff1…

10.继承和派生

2019独角兽企业重金招聘Python工程师标准>>> 类成员访问权限: 成员访问权限:私有成员:只能被类自身的成员和友元访问; 公有成员:可以被任何普通函数和任何类的成员函数或子类访问; 保护成员&a…

树莓派与阿里云服务器之间的无线通信(非局域网)

参考:Linux虚拟机sqlite数据库安装教程 作者:图触靓 发布时间: 2020-08-01 15:45:026 网址:https://blog.csdn.net/bhbhhyg/article/details/107731166 购买服务器后。我们可以点击控制台,找到实例列表,点击…

业余剪辑——从拍摄到剪辑到加字幕

工作需要帮公司做一个公司的宣传片,要求不是很高所以就让我这个半吊子“设计”来做视频了。。。 以下设备和软件的使用只是我个人本次的使用的记录,大家按需使用即可 一、拍摄 设备:手机 软件:剪辑大师app(应用商店下载…

树莓派作为客户端与WemosD1作为服务器的无线通信(局域网通信)

参考:树莓派作为客户端与WemosD1作为服务器的无线通信(局域网通信) 作者:图触靓 发布时间: 2020-07-26 21:50:39 网址:https://blog.csdn.net/bhbhhyg/article/details/107599915 目录wemos版作为服务端代码…

Lync Server的环境搭建(五):Lync-Server的安装部署

今天,我们接着来进行Lync-Server服务端的安装。我们分别打开“Lync-DC”和“Lync-Server”这两台虚拟机,切换到“Lync-Server”下,“开始”—“Lync Server安装部署,单击“安装或更新Lync Server系统”。弹出”部署向导“窗口,我们…

NodeMan介绍

近年来,随着nodejs的突飞猛进,node项目数量增长迅猛,node项目完美的阐释了“开箱即用”的理念。小到创业公司,大到阿里这样的巨头,背后均有node的身影。 node项目基于Chrome的V8引擎,使用JavaScript&#x…

#ifndef, #define, #endif的作用

目录作用示例作用 #ifndef 它是if not define 的简写,是宏定义的一种,实际上确切的说,这应该是预处理功能三种(宏定义、文件包含、条件编译)中的一种——条件编译。 在c语言中,对同一个变量或者函数进行…

高性能的MySQL(2)慢查询

一、剖析MySQL查询1、首先从慢查询开始,慢查询是开销最低,精度最高的测量查询时间的工具。a、开始mysql的慢查询,修改my.conf[mysqld] #开启慢查询 log_slow_queries ON #指定日志文件存放位置,可以为空,系统会给一个…

python爬虫获取小说根据正文调用函数传入章节地址列表_python爬虫之小说章节获取,聊斋志异小说完整版...

“写鬼写妖高人一等,刺贪刺虐入骨三分。”没找到聊斋志异完整版的txt文档,那就把在线阅读的文章抓下来吧。开发环境python3.7requests模块lxml模块获取分析找到聊斋志异的小说网站。通过查看源码与分析小说每一章的URL链接发现,构成每一章的U…

程序运行时对应的内存分布(BSS段、数据段、代码段、堆、栈)关系

参考:程序运行时对应的内存分布关系 作者:嵌入式基地(公众号) 发布时间: 2021-04-28 网址:https://mp.weixin.qq.com/s/AVDPZawSjg9HtxEm8vsFBA 参考:静态变量与动态变量的定义与区别 作者&…

java线程池 锁_java多线程——锁

这是多线程系列第四篇,其他请关注以下:如果你看过前面几篇关于线程的文字,会对线程的实现原理了然于胸,有了理论的支持会对实践有更好的指导,那么本篇会偏重于线程的实践,对线程的几种应用做个简要的介绍。…

Ubuntu时间显示不准确的解决方案

参考:解决ubuntu里面时间不正确的办法 作者:三速何时sub20 发布时间:2020-12-08 16:24:27 网址:https://blog.csdn.net/weixin_44234294/article/details/110875899?spm1001.2014.3001.5501 目录1、进入终端2、输入命令3、选择 A…

Ubuntu下软件的安装、卸载方法

参考:Ubuntu 如何使用命令卸载安装过的软件(超级简单) 作者:一只青木呀 发布时间:2020-08-04 09:19:01 网址:https://blog.csdn.net/weixin_45309916/article/details/107778981 参考:Ubuntu下软…

Ubuntu文件压缩、解压缩、打包解包(带软链接)、拷贝文件(带软链接)、拷贝文件夹

参考:Ubuntu 命令解压文件大全 作者:一只青木呀 发布时间: 2020-08-04 17:18:55 网址:https://blog.csdn.net/weixin_45309916/article/details/107791294 参考:打包和压缩的概念和区别 作者:不浪漫的罪名L…

Ubuntu开启FTP服务方法(Ubuntu和Windows之间互传文件需要开启——服务器端)

目录Ubuntu开启FTP服务步骤:Ubuntu开启FTP服务步骤: 工作中Ubuntu和Windows之间互传文件,需要服务器端(Ubuntu)开启FTP服务,客户端(Windows)安装FileZilla。平时自己学习电脑安装虚拟…