基于SPI總線技術(shù)的同步422接口設(shè)計(jì)
雖然SPI有以上優(yōu)點(diǎn),然而在圖像傳輸中卻很少用到,原因主要是其抗干擾能力差。SPI采用的是單端非平衡的傳輸方式,即傳輸?shù)臄?shù)據(jù)位的電壓電平是以公共地作為參考的。在這種傳輸方式中,對于已進(jìn)入信號中的干擾是無法消除和減弱的。而信號在傳輸過程中總會受到干擾,而且距離越長干擾越嚴(yán)重,以致于信號傳輸產(chǎn)生錯(cuò)誤。在這種條件下,信號傳輸就變得毫無意義了。另外,由于單端非平衡傳輸方式以公共地作為參考點(diǎn),地線作為信號回流線,因此也存在信號電流。當(dāng)傳輸線兩端的系統(tǒng)之間存在交流電位差時(shí),這個(gè)電位差將直接竄到信號中,形成噪聲干擾。所以,為了解決抗干擾問題,通常采用平衡傳輸 (balanced transmission)方式,這里采用比較常見的RS-422。
2 RS-422簡介
RS-422標(biāo)準(zhǔn)是RS-232的改進(jìn)型,全稱是“平衡電壓數(shù)字接口電路的電氣特性”。它使用兩根線之間的電壓差來代表邏輯電平,通常稱之為雙絞線。它是一種平衡傳輸,任何噪聲或干擾都會同時(shí)影響兩根雙絞線中的每一根,但對二者之間的差異影響很小,這種現(xiàn)象稱為共模抑制。所以RS-422可以在更遠(yuǎn)的距離上以更快的速度傳輸數(shù)據(jù),其抗干擾能力遠(yuǎn)強(qiáng)于RS-232、SPI等非平衡傳輸方式。其最大傳輸距離約1 200 m,最大傳輸速度可達(dá)10 Mb/s。但是由于線路過長造成損耗,其傳輸速率會隨著距離的增加而下降。
圖3是RS-422的基本連接示意圖。驅(qū)動器D通過雙絞線和接收器R連接。位于雙絞線接收端的電阻Rt是一個(gè)終止電阻,它用來消除在遠(yuǎn)距離傳輸過程中發(fā)生的信號反射。但在300 m以下的短距離傳輸中可以不接該電阻。
RS-422標(biāo)準(zhǔn)允許相同傳輸線上連接多個(gè)接收節(jié)點(diǎn),最多可接10個(gè),即一個(gè)主設(shè)備、10個(gè)從設(shè)備,從設(shè)備之間不能通信[8]。RS-422支持一點(diǎn)對多點(diǎn)的雙向通信。由于它的接口采用單獨(dú)的發(fā)送和接收通道,因此不必控制數(shù)據(jù)方向,各裝置之間任何必需的信號交換均可以通過軟件方式或硬件方式實(shí)現(xiàn)。
RS-422雙絞線之間的電壓差在4 V~12 V之間。其邏輯電平定義為:在發(fā)送端,以雙絞線之間電壓差為+2 V~+6 V表示邏輯1,以-2 V~-6 V表示邏輯0;在接收端,雙絞線之間電壓差大于200 mV時(shí)為邏輯1,小于-200 mV時(shí)為邏輯0。
3 S3C2450X的SPI接口
S3C2450X是SAMSUNG公司最近推出的一款高性能、低功耗16/32 bit RISC處理器,其最高主頻可達(dá)533 MHz,一般工作頻率為400 MHz。它采用ARM926EJ內(nèi)核,該內(nèi)核采用MMU、AMBA總線和哈佛高速緩存體系結(jié)構(gòu),具有單獨(dú)的16 KB指令Cache和16 KB數(shù)據(jù)Cache,每個(gè)Cache都由8字長的行組成。為了降低成本,片上集成了各種常用模塊,包括NAND Flash Bootloader、系統(tǒng)管理器、PLL時(shí)鐘發(fā)生器、PWM定時(shí)器、8通道DMA和多種接口控制器等,這樣可以使設(shè)計(jì)者在設(shè)計(jì)電路時(shí)省去許多專門的接口控制芯片,不僅降低了成本,也提高了系統(tǒng)的可靠性。
S3C2450X集成了2個(gè)高速SPI接口,每個(gè)接口都有2個(gè)8/16/32 bit的移位寄存器分別用于發(fā)送(Tx FIFO)和接收(Rx FIFO)數(shù)據(jù)。在發(fā)送時(shí),將要發(fā)送的數(shù)據(jù)寫入SPI發(fā)送數(shù)據(jù)寄存器(HS_SPI_Tx_DATA)中,數(shù)據(jù)會被自動移入Tx FIFO;在接收數(shù)據(jù)時(shí),為了從Rx FIFO中讀出數(shù)據(jù),CPU訪問SPI數(shù)據(jù)接收寄存器(HS_SPI_Rx_DATA),此時(shí)數(shù)據(jù)會自動轉(zhuǎn)移到HS_SPI_Rx_DATA中。
S3C2450X的SPI接口支持主模式和從模式兩種傳輸方式。在主模式下,同步時(shí)鐘SPICLK由S3C2450X產(chǎn)生并傳輸給外圍設(shè)備。此時(shí),通過設(shè)置時(shí)鐘配置寄存器(Clk_CFG)可以調(diào)整同步時(shí)鐘SPICLK的頻率,從而改變數(shù)據(jù)傳輸率。SPI有3個(gè)可用時(shí)鐘源:內(nèi)部時(shí)鐘源PCLK,外部時(shí)鐘源Epll clock和USBCLK。其同步時(shí)鐘計(jì)算公式為:
同步時(shí)鐘頻率=f/[2×(預(yù)分頻值+1)]
其中f是所選時(shí)鐘源的頻率,預(yù)分頻值的取值范圍是0~255。若取f=400 MHz,則同步時(shí)鐘頻率最大可達(dá)200 MHz,其傳輸速率理論上接近200 Mb/s。但由于受到內(nèi)部寄存器和外部接口等其他因素限制,再加上傳輸速率太高時(shí),由傳輸延時(shí)造成的影響越來越明顯,從而會引起傳輸錯(cuò)誤,所以其實(shí)際數(shù)據(jù)傳輸率不會很高,一般只有幾Mb/s。
評論