新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于FPGA實(shí)現(xiàn)的SCI接口電路IP核的設(shè)計(jì)

基于FPGA實(shí)現(xiàn)的SCI接口電路IP核的設(shè)計(jì)

作者: 時(shí)間:2010-09-07 來源:網(wǎng)絡(luò) 收藏

  工作原理

  數(shù)據(jù)傳輸格式

  為簡(jiǎn)化設(shè)計(jì),SCI以固定的串行數(shù)據(jù)格式傳送數(shù)據(jù),采用NRZ幀格式對(duì)數(shù)據(jù)進(jìn)行編碼,一個(gè)數(shù)據(jù)由1bit起始位、8bit數(shù)據(jù)位和一個(gè)停止bit共10bit組成。為確保采樣到的數(shù)據(jù)位可靠,選取每位數(shù)據(jù)包含8個(gè)SCICLK周期。

  波特率的產(chǎn)生      

  SCI內(nèi)部的串行時(shí)鐘(SCICLK)由系統(tǒng)時(shí)鐘SCLK與波特率寄存器共同決定。通過16bit波特率選擇寄存器,可以為內(nèi)部串行時(shí)鐘提供64k種不同的傳輸速率,其計(jì)算公式為:

  Baud=SCLK/[(BRR+1)*8]其中BRR為16bit波特率選擇寄存器的值。

  SCI異步通信

  如前所述,在異步通信模式下一幀數(shù)據(jù)包含一個(gè)起始bit、8個(gè)數(shù)據(jù)bit、一個(gè)停止bit。每個(gè)數(shù)據(jù)位占用8個(gè)SCICLK周期。

  接收數(shù)據(jù)時(shí)序

  接收器在收到有效的起始位后開始操作,有效的起始位由連續(xù)的0電平組成,長(zhǎng)度為4個(gè)連續(xù)的內(nèi)部SCICLK周期。對(duì)于起始位后的各位,接收器通過對(duì)該位的中間進(jìn)行3次采樣來決定位值,采用在第4、第5、第6個(gè)SCICLK周期,位值取決于多數(shù)采樣點(diǎn)的值。數(shù)據(jù)從SCIRXD進(jìn)入RXSHF,移位進(jìn)入RXBUF寄存器,并產(chǎn)生中斷請(qǐng)求,RXDRDY置1,表示已經(jīng)接收到新字符]。接收一幀數(shù)據(jù)的時(shí)序如圖3所示。

接收一幀數(shù)據(jù)時(shí)序

圖3 接收一幀數(shù)據(jù)時(shí)序

  發(fā)送數(shù)據(jù)時(shí)序

  發(fā)送器與接收器工作原理基本相同,在TXDRDY為低時(shí),向發(fā)送數(shù)據(jù)緩沖寄存器寫入一個(gè)數(shù)據(jù)后啟動(dòng)發(fā)送;然后數(shù)據(jù)進(jìn)入TXSHF,同時(shí)TXDRDY為高,表示TXBUF可以寫入新值,并產(chǎn)生一個(gè)中斷請(qǐng)求。數(shù)據(jù)發(fā)送時(shí)序如圖4所示。

發(fā)送一幀數(shù)據(jù)時(shí)序

圖4 發(fā)送一幀數(shù)據(jù)時(shí)序

  VerilogHDL實(shí)現(xiàn)

  狀態(tài)機(jī)嵌套模型

  由于SCI接口牽涉到復(fù)雜的狀態(tài)機(jī)描述,需要采用有限狀態(tài)機(jī)的嵌套,形成樹狀的控制邏輯。這一點(diǎn)和所提倡的層次化、結(jié)構(gòu)化的自頂向下的設(shè)計(jì)方法相吻合[3]。圖5是一種簡(jiǎn)單的狀態(tài)機(jī)嵌套模型。

狀態(tài)機(jī)嵌套模型

圖5 狀態(tài)機(jī)嵌套模型



關(guān)鍵詞: FPGA IP核 SCI接口電路 VLSI

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉