《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于FPGA的三線制同步串行通信控制器設(shè)計(jì)
基于FPGA的三線制同步串行通信控制器設(shè)計(jì)
馮春陽1,,張遂南1,,王 瑋2
1.西安微電子技術(shù)研究所,陜西 西安710054;2.中國兵器工業(yè)第202研究所,,陜西 咸陽7120
摘要: 為了簡化應(yīng)用系統(tǒng)中的三線制同步串行通信擴(kuò)展接口,,減小系統(tǒng)體積,降低系統(tǒng)功耗,通過研究三線制同步串行通信的原理,,利用FPGA,結(jié)合硬件描述語言VHDL,,設(shè)計(jì)了三線制同步串行通信控制器功能框架結(jié)構(gòu),,介紹了各組成模塊的功能及工作過程,并對該控制器IP核的接口信號進(jìn)行了詳細(xì)描述與定義,,最后在Xilinx ISE和ModelSim SE平臺下對該控制器IP核進(jìn)行了綜合和功能仿真,。
Abstract:
Key words :

摘  要: 為了簡化應(yīng)用系統(tǒng)中的三線制同步串行通信擴(kuò)展接口,減小系統(tǒng)體積,,降低系統(tǒng)功耗,,通過研究三線制同步串行通信的原理,利用FPGA,,結(jié)合硬件描述語言VHDL,,設(shè)計(jì)了三線制同步串行通信控制器功能框架結(jié)構(gòu),介紹了各組成模塊的功能及工作過程,,并對該控制器IP核的接口信號進(jìn)行了詳細(xì)描述與定義,,最后在Xilinx ISE和ModelSim SE平臺下對該控制器IP核進(jìn)行了綜合和功能仿真。
關(guān)鍵詞: 三線制同步串行通信,;FPGA,;VHDL;IP核

  同步串行通信[1]在航天工程領(lǐng)域中有著廣泛的應(yīng)用,,其中,,三線制同步串行通信以其連線少、操作方便,、通信速度快等特點(diǎn),,被成功應(yīng)用在與外圍串行設(shè)備的數(shù)據(jù)通信中。
  目前大多數(shù)微控制器或微處理器都配置有同步串行通信接口,,但含有三線制同步串行通信接口的微控制器或微處理器卻不多,,因此在需要應(yīng)用三線制進(jìn)行通信的場合,就需要對系統(tǒng)進(jìn)行三線制同步串行通信接口的擴(kuò)展,,利用FPGA[2]可以實(shí)現(xiàn)三線制同步串行通信,。由于FPGA具有工作速度高、可配置性強(qiáng),、靈活性好等突出優(yōu)點(diǎn),,可以滿足高速同步串行通信。根據(jù)三線制同步串行通信機(jī)制,,通過采用Xilinx公司的FPGA器件[3]設(shè)計(jì)并實(shí)現(xiàn)了三線制同步串行通信控制器的IP軟核,。該控制器具有高速,、易調(diào)試、配置靈活等優(yōu)點(diǎn),,有效利用了FPGA內(nèi)部硬件資源,,減小了系統(tǒng)體積,縮短了系統(tǒng)開發(fā)周期,。
1 三線制同步串行通信機(jī)制介紹
  在計(jì)算機(jī)領(lǐng)域內(nèi),,有串行傳送和并行傳送兩種數(shù)據(jù)傳送方式。并行數(shù)據(jù)傳送中,,數(shù)據(jù)在多條并行1 bit寬的傳輸線上同時由源端傳送到目的端,,這種傳送方式也稱為比特并行或字節(jié)串行。串行數(shù)據(jù)傳送中,,數(shù)據(jù)在單條1 bit寬的傳輸線上,,逐位按順序分時傳送。
  同步傳輸過程中,,發(fā)送端和接收端必須使用共同的時鐘源才能保證它們之間的準(zhǔn)確同步,。同步傳輸時,在幀同步脈沖信號觸發(fā)下,,串行數(shù)據(jù)信息以連續(xù)的形式發(fā)送,,每個時鐘周期發(fā)送1 bit數(shù)據(jù)。因此,,同步傳輸時數(shù)據(jù)成批連續(xù)發(fā)送,,信息字符間不留任何空隙,它嚴(yán)格按照約定的速率發(fā)送和接收,。為達(dá)到接收和發(fā)送的準(zhǔn)確同步,,通常在發(fā)送端利用編碼器把要發(fā)送的數(shù)據(jù)和發(fā)送時鐘組合在一起,通過傳輸線發(fā)送到接收端,,在接收端再用解碼器從數(shù)據(jù)流中分離出接收時鐘,。常用的編碼解碼器有曼徹斯特碼和NRZ-L碼。
  三線制同步串行通信采用的碼型為NRZ-L碼,,其時序邏輯關(guān)系如圖1所示,。

  三線制同步信號包括:幀同步信號、時鐘信號和串行數(shù)據(jù),,通常采用中斷方式接收,。串行數(shù)據(jù)接收或發(fā)送時,首先幀同步信號先觸發(fā)一個瞬時脈沖,,之后保持低電平有效,,數(shù)據(jù)在時鐘信號的上升沿保持穩(wěn)定,并開始采樣,,每個時鐘周期接收或者發(fā)送一位串行數(shù)據(jù),,直至數(shù)據(jù)接收或者發(fā)送完畢,系統(tǒng)再轉(zhuǎn)而處理其他相關(guān)操作,。在數(shù)據(jù)發(fā)送或接收的整個過程中,,幀同步信號一直處于低電平不變。
2 三線制同步串行通信控制器IP核設(shè)計(jì)
  本設(shè)計(jì)最終目標(biāo)是用硬件描述語言VHDL[4]構(gòu)建一個三線制同步串行通信控制器,,也就是建立一個基于FPGA實(shí)現(xiàn)的,、可復(fù)用的IP核[5]。同時,,可以將設(shè)計(jì)好的IP核保存,,作為一個子模塊應(yīng)用于其他需要此模塊的系統(tǒng)中,從而減輕大型設(shè)計(jì)的工作量,,縮短開發(fā)周期,。
2.1 三線制同步串行通信控制器IP核接口描述
  本設(shè)計(jì)最終實(shí)現(xiàn)的目標(biāo)是生成如圖2所示的IP核接口封裝。

  其中,,三線制同步串行通信控制器IP核接口信號定義如表1所示,。該IP核共有全局信號管腳8個,接收接口信號管腳和發(fā)送接口信號管腳各3個,。

2.2 三線制同步串行通信控制器IP核電路結(jié)構(gòu)設(shè)計(jì)
  按照設(shè)計(jì)目標(biāo),,根據(jù)需要實(shí)現(xiàn)的功能,可將三線制同步串行通信控制器結(jié)構(gòu)劃分成幾個大的功能模塊[6],,這些模塊獨(dú)自完成一定的任務(wù),,結(jié)合起來實(shí)現(xiàn)通信控制器的整體功能。同時,,劃分模塊功能后,,可以更方便地用硬件描述語言VHDL對其進(jìn)行描述。
  如圖3所示,,根據(jù)設(shè)計(jì)要求,,可將三線制同步串行通信控制器劃分成3個主要功能模塊:接口模塊、接收模塊和發(fā)送模塊,。


  (1)接口模塊:用于各種全局信號的邏輯組合譯碼控制,。同時,對輸入的系統(tǒng)時鐘進(jìn)行時鐘分頻,,為接收模塊和發(fā)送模塊提供串行同步時鐘信號,。
  (2)接收模塊:用于接收外圍串行設(shè)備傳來的串行數(shù)據(jù),此功能模塊的核心是接收FIFO和串/并變換兩大模塊,,其中接收FIFO作為數(shù)據(jù)緩沖器暫存接收到的數(shù)據(jù),。在接收數(shù)據(jù)標(biāo)志、接收移位寄存器和接收移位計(jì)數(shù)器的配合驅(qū)動下,,串行數(shù)據(jù)按照MSB先,、LSB后的順序經(jīng)過串/并變換后,,并行數(shù)據(jù)被存儲于接收FIFO中,等待中斷響應(yīng)后CPU對數(shù)據(jù)進(jìn)行處理,。
  (3)發(fā)送模塊:用于向外圍串行設(shè)備發(fā)送串行數(shù)據(jù),,此功能模塊的核心是發(fā)送FIFO和并/串變換兩大模塊。CPU將要發(fā)送的數(shù)據(jù)先放到系統(tǒng)的并行數(shù)據(jù)總線上,,并被暫存于發(fā)送FIFO中,,在響應(yīng)發(fā)送中斷信號后,并行數(shù)據(jù)按照MSB首發(fā),、LSB后發(fā)的順序,,在控制信號驅(qū)動下,經(jīng)過并/串變換,,發(fā)送的數(shù)據(jù)最終以串行數(shù)據(jù)格式被送往外圍串行設(shè)備端口,。
  三線制同步串行通信控制器IP核實(shí)體名接口用VHDL語言[4]定義如下:
ENTITY SerSendRec IS
PORT(  Rst_n:IN STD_LOGIC;
       Clk:IN STD_LOGIC,;
       Cs:IN STD_LOGIC,;
       Strobe:IN STD_LOGIC;
       Rw:IN STD_LOGIC,;
       Addr:IN STD_LOGIC_VECTOR(2 DOWNTO 0),;
       Rdata:IN STD_LOGIC;
       Rclk:OUT STD_LOGIC,;
       Rgate:OUT STD_LOGIC,;
       Int:OUT STD_LOGIC;
       Sdata:OUT STD_LOGIC,;
       Sclk:OUT STD_LOGIC,;
       Sgate:OUT STD_LOGIC;
       Data:INOUT STD_LOGIC_VECTOR(7 DOWNTO 0)),;
END SerSendRec,;
3 仿真與驗(yàn)證
  利用Xilinx ISE和ModelSim SE工具平臺對三線制同步串行通信控制器IP核進(jìn)行綜合和功能仿真。數(shù)據(jù)發(fā)送仿真波形如圖4所示,,數(shù)據(jù)接收仿真波形如圖5所示,。可以看出,,仿真結(jié)果完全正確,,符合設(shè)計(jì)的預(yù)定目標(biāo)。

  從圖4的仿真波形中可以看到,,data信號線上是系統(tǒng)要向外圍串行設(shè)備發(fā)送的并行數(shù)據(jù),,在各種控制信號邏輯組合滿足情況下,系統(tǒng)響應(yīng)發(fā)送中斷信號Int后,,CPU先將待發(fā)送的數(shù)據(jù)暫存在04H地址緩沖寄存器中,,在幀同步脈沖信號Sgate正脈沖觸發(fā)下,,每個Sclk周期發(fā)送一位串行數(shù)據(jù)Sdata。圖中并行數(shù)據(jù)99H和E3H對應(yīng)的串行數(shù)據(jù)分別為“10011001”和“11100011”,。
  同理,,從圖5可知,當(dāng)開始接收數(shù)據(jù)時,,在Rgate正脈沖觸發(fā)下,Rdata數(shù)據(jù)信號線上待接收的二進(jìn)制串行數(shù)據(jù)通過串/并變換成“11101010”和“11010111”,,并分別暫存在07H和06H所對應(yīng)的地址緩沖寄存器中,,在接收中斷信號Int響應(yīng)下,將對應(yīng)的并行數(shù)據(jù)“EA”和“D7”傳送到系統(tǒng)數(shù)據(jù)總線上,,CPU對數(shù)據(jù)進(jìn)行處理,。
  本文在對三線制同步串行通信機(jī)制進(jìn)行介紹的基礎(chǔ)上,對三線制同步串行通信控制器IP核進(jìn)行了結(jié)構(gòu)劃分和詳細(xì)設(shè)計(jì),,并結(jié)合Xilinx公司的FPGA器件,,采用VHDL硬件描述語言,對設(shè)計(jì)方案進(jìn)行了仿真與驗(yàn)證,,通過功能仿真波形得出了設(shè)計(jì)方案的正確性,,并被成功用于航天某工程項(xiàng)目中。因其兼具較高的數(shù)據(jù)傳輸率和IP核的可移植性,,可以預(yù)見,,其在通信領(lǐng)域中將具有更加廣闊的發(fā)展空間。
參考文獻(xiàn)
[1] 張德民.數(shù)據(jù)通信[M]. 北京:科學(xué)技術(shù)文獻(xiàn)出版社,,1997.
[2] 任曉東.CPLD/FPGA高級應(yīng)用開發(fā)指南[M].北京:電子工業(yè)出版社,,2003.
[3] Xilinx Corp.Virtex-5  FPGA family complete data sheet.2008.
[4] 侯伯亨,顧新.VHDL硬件描述語言與數(shù)字邏輯電路設(shè)計(jì)[M]. 西安:西安電子科技大學(xué)出版社,,2001.
[5] 李玉山,,來新泉.電子系統(tǒng)集成設(shè)計(jì)技術(shù)[M].北京:電子工業(yè)出版社,2002.
 

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。