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