日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

DSP_SCI

發(fā)布時(shí)間:2023/12/10 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DSP_SCI 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?F2833x Serial Communication Interface

簡(jiǎn)介

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

SCI接收器和發(fā)送器每個(gè)都有一個(gè)16深的FIFO,用於減少服務(wù)開(kāi)銷,每個(gè)FIFO都有自己獨(dú)立的使能和中斷位。 兩者都可以獨(dú)立操作以進(jìn)行半雙工通信,或同時(shí)進(jìn)行全雙工通信。

為了保持?jǐn)?shù)據(jù)完整性,SCI檢查接收到的數(shù)據(jù)是否存在中斷檢測(cè),奇偶校驗(yàn),溢出和幀錯(cuò)誤。 通過(guò)16位波特選擇寄存器,可以針對(duì)不同的通信速率對(duì)比特率進(jìn)行編程。

SCI Data Format

基本數(shù)據(jù)單元稱為字符,長(zhǎng)度為1位到8位。 每個(gè)數(shù)據(jù)字符都使用起始位,1或2個(gè)停止位,可選的奇偶校驗(yàn)位和可選的地址/數(shù)據(jù)位進(jìn)行格式化。 數(shù)據(jù)字符及其格式化位稱為幀。 幀被組織成稱為塊的組。 如果SCI總線上存在兩個(gè)以上的串行端口,則數(shù)據(jù)塊通常以地址幀開(kāi)始,該地址幀指定由用戶協(xié)議確定的數(shù)據(jù)的目標(biāo)端口。

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

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

SCI Data Timing

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

接收器在接收到有效起始位時(shí)開(kāi)始操作。 有效起始位由四個(gè)連續(xù)的零位內(nèi)部SCICLK週期標(biāo)識(shí),如幻燈片9-4所示。 如果任何位不為零,則處理器重新開(kāi)始並開(kāi)始尋找另一個(gè)起始位。

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

?

SCR Register Set

?

SCI Communications Control Register (SCICCR)

上一張幻燈片解釋了SCI數(shù)據(jù)幀結(jié)構(gòu)的設(shè)置。

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

某些主機(jī)或其他設(shè)備無(wú)法處理此額外位。

?

SCI Control Register 1(SCICTL1)

配置SCICCR寄存器時(shí),SCI端口應(yīng)首先保持無(wú)效狀態(tài)。

這是使用SCI控制寄存器1(SCICTL1.5)的SW RESET位完成的。向該位寫入0會(huì)初始化並保持SCI狀態(tài)機(jī)和操作標(biāo)誌處?kù)稄?fù)位狀態(tài)。

然後可以配置SCICCR。然後,通過(guò)向SW RESET位寫1來(lái)重新使能SCI端口。在系統(tǒng)復(fù)位時(shí),SW RESET位等於0。

?

SCI Baud Rate Register

SCI的波特率來(lái)自低速預(yù)縮放器(LSPCLK)。

假設(shè)SYSCLK頻率為150MHz,低速預(yù)分頻器初始化為“除以4”,我們可以計(jì)算BRR的值,讓我們說(shuō)數(shù)據(jù)速率為9600波特:

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

?

SCI Control Register 2 SCICTL2

位1和位0使能或禁止SCI發(fā)送和接收中斷。 如果不使用中斷,則可以通過(guò)清除第1位和第0位來(lái)禁用此功能。

在這種情況下,我們需要對(duì)發(fā)送器狀態(tài)標(biāo)誌(SCICTL2.7和SCICTL2.6)應(yīng)用輪詢方法。

SCITXEMPTY標(biāo)誌等待整個(gè)數(shù)據(jù)幀離開(kāi)SCI輸出,而標(biāo)誌SCITXREADY表示我們可以在物理髮送前一個(gè)字符之前將下一個(gè)字符重新加載到SCITXBUF中。

接收器部分的狀態(tài)標(biāo)誌可以在SCI接收器狀態(tài)寄存器中找到(參見(jiàn)下一張幻燈片)。

?

SCI Receiver Status Register SCIRXST

?

SCI中斷邏輯在接收或發(fā)送完整字符時(shí)產(chǎn)生中斷標(biāo)誌,由SCI字符長(zhǎng)度決定。 這提供了一種方便有效的定時(shí)和控制SCI發(fā)送器和接收器操作的方法。 發(fā)送器的中斷標(biāo)誌是TXRDY(SCICTL2.7),接收器的中斷標(biāo)誌是RXRDY(SCIRXST.6)。 當(dāng)字符傳輸?shù)絋XSHF並且SCITXBUF準(zhǔn)備接收下一個(gè)字符時(shí),TXRDY置位。 此外,當(dāng)SCIBUF和TXSHF寄存器都為空時(shí),TX EMPTY標(biāo)誌(SCICTL2.6)置位。

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

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

?

SCI FIFO Mode Register

在增強(qiáng)功能集中,SCI模塊支持硬件中的自動(dòng)波特率檢測(cè)邏輯。 以下部分介紹了自動(dòng)波特率檢測(cè)功能的啟用順序。 自動(dòng)波特率是一項(xiàng)功能,可用於將F2833x的數(shù)據(jù)速率調(diào)整為主機(jī)設(shè)備的傳輸速度。 如果主機(jī)發(fā)送字符'A'或'a',則自動(dòng)波特率單元將鎖定此字符並相應(yīng)地設(shè)置內(nèi)部波特率寄存器。\

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

  • 通過(guò)將SCIFFCT中的CDC位(位13)置1並通過(guò)向ABDCLR位(位14)寫1來(lái)清除ABD位(位15),為SCI啟用自動(dòng)波特率檢測(cè)模式。
  • 將波特率寄存器初始化為1或小於500 Kbps的波特率限制。
  • 允許SCI以所需的波特率從主機(jī)接收字符“A”或“a”。如果第一個(gè)字符是“A”或“a”,則自動(dòng)波特率檢測(cè)硬件將檢測(cè)輸入波特率並設(shè)置ABD位。
  • 自動(dòng)檢測(cè)硬件將使用十六進(jìn)制的等效波特值更新波特率寄存器。邏輯還會(huì)產(chǎn)生CPU中斷。
  • 通過(guò)向SCIFFCT寄存器的ABD CLR(第14位)寫入1來(lái)響應(yīng)中斷清除ADB位,並通過(guò)寫入0清除CDC位來(lái)禁用進(jìn)一步的自動(dòng)波特率鎖定。
  • 讀取字符“A”或“a”的接收緩衝區(qū)以清空緩衝區(qū)和緩衝區(qū)狀態(tài)。
  • 如果在CDC為1時(shí)設(shè)置ABD(表示自動(dòng)波特率校準(zhǔn)),則會(huì)發(fā)生SCI發(fā)送FIFO中斷(TXINT)。中斷服務(wù)後,CDC位必須由軟件清零。
  • ?

    ?

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

    轉(zhuǎn)載于:https://www.cnblogs.com/CiAn-H/p/9898939.html

    總結(jié)

    以上是生活随笔為你收集整理的DSP_SCI的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。