航天工程領域中,星地通訊等遠距離遙測遙控是嵌入式衛星數管計算機重要功能之一,利用三線制同步串行遙測遙控通道對指令和數據進行收發操作是通信鏈路的重要環節。
目前許多處理器芯片都已集成了同步串行接口,但基于三線制同步串行接口的處理器并不多。利用傳統設計方法所實現的三線制同步通信硬件電路接口雖然能滿足一般工程設計要求,但在“低成本、小體積、低功耗和靈活性”設計理念的推動下,傳統設計顯然弊大于利。采用可編程邏輯器件CPLD/FPGA技術,對三線制同步串行通信接口電路進行結構設計與實現,可以大幅度減小系統體積,降低功耗,提高設計的靈活度。同時,還可以在其中增加其他邏輯功能模塊,并能很方便地應用到相關的嵌入式系統中。
1 三線制同步串行通信機理
三線制同步串行通信時,發送端和接收端必須使用共同的時鐘源才能保持它們之間的準確同步。為達到準確同步的目的,其中一個方法就是采用編碼和解碼的原理,即在發送端利用編碼器把要發送的數據和發送時鐘組合在一起,通過傳輸線發送到接收端,在接收端再用解碼器從數據流中分離出接收時鐘。常用的編碼解碼器有曼徹斯特編碼解碼及NRZ-L碼。本文中收發信號采用的碼型是NRZ-L碼。
三線制同步串行通信主要包括三個信號:采樣信號(也叫幀同步信號)、時鐘信號和串行數據信號,其時序邏輯關系如圖1所示。
從圖1可看出,數據接收或發送時,首先幀同步信號先觸發一個瞬時啟動脈沖,之后保持低電平有效,時鐘信號緊隨其后,數據在時鐘信號的上升沿保持穩定,并開始采樣和傳輸,每個時鐘周期收發一位字符數據,串行數據成批連續發送和接收。
2 三線制同步串行通信控制器接口結構設計
2.1 基于傳統設計的硬件電路接口實現
在三線制同步串行通信控制器接口的傳統硬件電路設計中,需使用多片元器件來實現其功能,包括:異步四位計數器、移位寄存器、8位D觸發器、與門、與非門和反相器等主要功能器件,接口電路原理圖在ProteI 99 SE中實現。
三線制同步串行通信控制器接收接口硬件電路如圖2所示。
從圖2中可看到,通過復位信號rst n、片選信號CS、門控信號strobe和讀寫信號RW等的不同組合,實現邏輯控制功能。通過異步四位計數器SN54HC161的計數功能,使得移位寄存器SN54HC164順利進行數據的串/并轉換,將8位并行數據通過8位D觸發器SN54HC374鎖存在內部總線上等待系統接收。在輸出端,通過雙D觸發器SN54HC74產生中斷信號int,通知系統內的微處理器進行數據接收操作。
三線制同步串行通信控制器發送接口硬件電路如圖3所示。
從圖3可知,系統時鐘start-clk通過分頻電路模塊產生發送時鐘原始信號code-clk,用于電路的時鐘狀態控制。系統內的微處理器將要發送的8位并行數據通過8位D觸發器SN54HC377,將數據鎖存在其Q端口等待發送,然后在異步四位計數器SN54HC161的計數功能控制下,移位寄存器SN54HC165進行數據的并/串轉換操作。在輸出端,通過雙D觸發器SN54HC74產生中斷信號,然后開始通過單向總線驅動器SN54HC244進行幀同步信號、時鐘信號及數據的發送操作。
2.2 基于CPLD/FPGA的接口結構設計
為解決傳統硬件電路元器件多,功耗大,體積大等缺點,利用CPLD/FPGA技術,同時結合VHDL硬件描述語言設計三線制同步串行通信控制器接口已成為一種必然,結合三線制同步串行通信機理,設計出了基于CPLD/FPGA的三線制同步串行通信控制器接口內部結構,其功能結構如圖4所示。
整個三線制同步串行通信控制器接口的內部結構主要由時鐘分頻模塊、系統接口控制邏輯、數據接收模塊、數據發送模塊等四大模塊構成。
時鐘分頻模塊主要用于數據收/發模塊產生同步時鐘信號。系統接口控制邏輯主要用于各種邏輯功能信號的控制,同時還可以接收_中斷仲裁邏輯模塊產生的中斷信號,控制數據的接收或者發送操作。數據接收模塊是三線制同步串行通信控制器接口進行數據接收的核心部分,其模塊結構如圖5所示。
數據接收流程:在幀同步脈沖信號觸發下,串行數據在時鐘信號rclk上升沿到來時保持穩定,并通過rdata信號線進入數據接收模塊。在該模塊內部,串行數據經過串/并變換,接收FIFO作為數據緩沖器,將接收到的數據鎖存在VHDL程序指定的兩個地址寄存器中,一個地址單元存儲數據的高八位,另外一個地址單元存儲數據的低八位,當數據存滿這兩個地址單元后,接口向系統發出一個“接收緩存滿”的接收中斷標志int,系統微處理器響應后,數據被全部取出,并行數據被送往系統的數據總線上,重復進行相同操作,直至連續接收完所有數據,數據接收過程結束。
數據發送模塊也是三線制同步串行通信接口進行數據發送的核心部分,其模塊結構如圖6所示。
數據發送流程:在sgate幀同步脈沖信號觸發下,系統數據總線上的并行數據在時鐘信號sclk上升沿到來時保持穩定,并通過數據發送模塊開始數據發送。在模塊內部,首先發送FIFO數據緩沖器,當并行數據存滿該緩存單元后,數據發送模塊向系統發出一個“發送緩存滿”的發送中斷標志int,系統微處理器響應后,并行數據從發送FIFO內讀出,經過并/串變換成串行數據,最高位MSB最前,最低位LSB最后,并被送往發送數據信號線Sdata上,發送至外圍設備接口,重復進行相同操作,直至發送完畢所有數據,數據發送過程結束。
3 結 語
本文在介紹了三線制同步串行通信機制基礎上,首先對三線制同步串行通信接口進行了硬件電路設計,然后針對傳統電路設計方式的不足,構建了基于CPLD/FPGA的三線制同步串行通信控制器接口結構,詳述了各個功能模塊及其工作原理,設計合理,并且滿足了實際應用要求。目前,此接口結構模塊已作為FPGA設計中的關鍵子模塊被成功應用于某航天項目及其配套的硬件測試平臺中。
責任編輯:gt
-
FPGA
+關注
關注
1630文章
21796瀏覽量
605183 -
cpld
+關注
關注
32文章
1257瀏覽量
169524 -
嵌入式
+關注
關注
5090文章
19176瀏覽量
306888
發布評論請先 登錄
相關推薦
評論