基于SPI總線(xiàn)技術(shù)的同步422接口設計
雖然SPI有以上優(yōu)點(diǎn),然而在圖像傳輸中卻很少用到,原因主要是其抗干擾能力差。SPI采用的是單端非平衡的傳輸方式,即傳輸的數據位的電壓電平是以公共地作為參考的。在這種傳輸方式中,對于已進(jìn)入信號中的干擾是無(wú)法消除和減弱的。而信號在傳輸過(guò)程中總會(huì )受到干擾,而且距離越長(cháng)干擾越嚴重,以致于信號傳輸產(chǎn)生錯誤。在這種條件下,信號傳輸就變得毫無(wú)意義了。另外,由于單端非平衡傳輸方式以公共地作為參考點(diǎn),地線(xiàn)作為信號回流線(xiàn),因此也存在信號電流。當傳輸線(xiàn)兩端的系統之間存在交流電位差時(shí),這個(gè)電位差將直接竄到信號中,形成噪聲干擾。所以,為了解決抗干擾問(wèn)題,通常采用平衡傳輸 (balanced transmission)方式,這里采用比較常見(jiàn)的RS-422。
2 RS-422簡(jiǎn)介
RS-422標準是RS-232的改進(jìn)型,全稱(chēng)是“平衡電壓數字接口電路的電氣特性”。它使用兩根線(xiàn)之間的電壓差來(lái)代表邏輯電平,通常稱(chēng)之為雙絞線(xiàn)。它是一種平衡傳輸,任何噪聲或干擾都會(huì )同時(shí)影響兩根雙絞線(xiàn)中的每一根,但對二者之間的差異影響很小,這種現象稱(chēng)為共模抑制。所以RS-422可以在更遠的距離上以更快的速度傳輸數據,其抗干擾能力遠強于RS-232、SPI等非平衡傳輸方式。其最大傳輸距離約1 200 m,最大傳輸速度可達10 Mb/s。但是由于線(xiàn)路過(guò)長(cháng)造成損耗,其傳輸速率會(huì )隨著(zhù)距離的增加而下降。
圖3是RS-422的基本連接示意圖。驅動(dòng)器D通過(guò)雙絞線(xiàn)和接收器R連接。位于雙絞線(xiàn)接收端的電阻Rt是一個(gè)終止電阻,它用來(lái)消除在遠距離傳輸過(guò)程中發(fā)生的信號反射。但在300 m以下的短距離傳輸中可以不接該電阻。

RS-422標準允許相同傳輸線(xiàn)上連接多個(gè)接收節點(diǎn),最多可接10個(gè),即一個(gè)主設備、10個(gè)從設備,從設備之間不能通信[8]。RS-422支持一點(diǎn)對多點(diǎn)的雙向通信。由于它的接口采用單獨的發(fā)送和接收通道,因此不必控制數據方向,各裝置之間任何必需的信號交換均可以通過(guò)軟件方式或硬件方式實(shí)現。
RS-422雙絞線(xiàn)之間的電壓差在4 V~12 V之間。其邏輯電平定義為:在發(fā)送端,以雙絞線(xiàn)之間電壓差為+2 V~+6 V表示邏輯1,以-2 V~-6 V表示邏輯0;在接收端,雙絞線(xiàn)之間電壓差大于200 mV時(shí)為邏輯1,小于-200 mV時(shí)為邏輯0。
3 S3C2450X的SPI接口
S3C2450X是SAMSUNG公司最近推出的一款高性能、低功耗16/32 bit RISC處理器,其最高主頻可達533 MHz,一般工作頻率為400 MHz。它采用ARM926EJ內核,該內核采用MMU、AMBA總線(xiàn)和哈佛高速緩存體系結構,具有單獨的16 KB指令Cache和16 KB數據Cache,每個(gè)Cache都由8字長(cháng)的行組成。為了降低成本,片上集成了各種常用模塊,包括NAND Flash Bootloader、系統管理器、PLL時(shí)鐘發(fā)生器、PWM定時(shí)器、8通道DMA和多種接口控制器等,這樣可以使設計者在設計電路時(shí)省去許多專(zhuān)門(mén)的接口控制芯片,不僅降低了成本,也提高了系統的可靠性。
S3C2450X集成了2個(gè)高速SPI接口,每個(gè)接口都有2個(gè)8/16/32 bit的移位寄存器分別用于發(fā)送(Tx FIFO)和接收(Rx FIFO)數據。在發(fā)送時(shí),將要發(fā)送的數據寫(xiě)入SPI發(fā)送數據寄存器(HS_SPI_Tx_DATA)中,數據會(huì )被自動(dòng)移入Tx FIFO;在接收數據時(shí),為了從Rx FIFO中讀出數據,CPU訪(fǎng)問(wèn)SPI數據接收寄存器(HS_SPI_Rx_DATA),此時(shí)數據會(huì )自動(dòng)轉移到HS_SPI_Rx_DATA中。
S3C2450X的SPI接口支持主模式和從模式兩種傳輸方式。在主模式下,同步時(shí)鐘SPICLK由S3C2450X產(chǎn)生并傳輸給外圍設備。此時(shí),通過(guò)設置時(shí)鐘配置寄存器(Clk_CFG)可以調整同步時(shí)鐘SPICLK的頻率,從而改變數據傳輸率。SPI有3個(gè)可用時(shí)鐘源:內部時(shí)鐘源PCLK,外部時(shí)鐘源Epll clock和USBCLK。其同步時(shí)鐘計算公式為:
同步時(shí)鐘頻率=f/[2×(預分頻值+1)]
其中f是所選時(shí)鐘源的頻率,預分頻值的取值范圍是0~255。若取f=400 MHz,則同步時(shí)鐘頻率最大可達200 MHz,其傳輸速率理論上接近200 Mb/s。但由于受到內部寄存器和外部接口等其他因素限制,再加上傳輸速率太高時(shí),由傳輸延時(shí)造成的影響越來(lái)越明顯,從而會(huì )引起傳輸錯誤,所以其實(shí)際數據傳輸率不會(huì )很高,一般只有幾Mb/s。
評論