《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于SPI總線技術的同步422接口設計
基于SPI總線技術的同步422接口設計
來源:電子技術應用2010年第8期
謝俊聃,曹劍中
西安光學精密機械研究所,陜西 西安710119
摘要: 以SPI總線技術為基礎,用微控制器S3C2450X和電平轉換芯片MAX3088設計了一個RS-422接口電路,將SPI單端非平衡傳輸信號轉換為RS-422差分信號。在保證SPI同步傳輸的高效性和高速性的同時,還增強了信號的抗干擾能力。
中圖分類號: TP274
文獻標識碼: B
文章編號: 0258-7998(2010)08-0026-03
RS-422 interface design based on SPI bus technology
XIE Jun Dan,CAO Jian Zhong
Xi′an Institute of Optics and Precision Mechanic of CAS, Xi′an 710119,China
Abstract: This paper designed RS-422 interface circuit with microprocessor S3C2450X and transceivers MAX3088 based on SPI bus technology.This circuit could convert SPI single-ended unbalance signal to RS-422 differential signal ,in order to enhance signal’s ability of anti-interference. And it also guarantees the high-efficiency and high-speed of SPI synchronous transmission.
Key words : synchronous transmission;SPI;S3C2450X;RS-422;MAX3088

    同步傳輸(Synchronous Transmission)是一種發送方與接收方都采用相同時鐘頻率的傳輸方式。具體來說,就是把要傳輸的一組數據組合成一幀,每一幀的開頭部分是一組同步字符,用于通知接收方一個幀已經到達,但它同時還能確保接收方的采樣速度和比特的到達速度一致,使收發雙方進入同步。幀的結尾部分是一個幀結束標記,用于表示在下一幀開始之前沒有其他即將到達的數據了。接收方不必對每個字符進行開始和停止的操作,一旦檢測到幀同步字符,就在接下來的數據到達時接收它們[1]。因此,與異步傳輸相比,具有很高的傳輸速度。而且,由于沒有在傳輸的每個字符中都加入起始位和結束位,所以同步傳輸的開銷比異步傳輸要小得多,通常前者的數據增值只有2.5%左右,而后者的高達25%。所以,在高速通信中一般都采用同步傳輸方式。
    由于圖像的數據量一般很大,所以圖像數據的傳輸都是高速傳輸。在某實時圖像存儲系統設計中,為了保證能夠實時存儲圖像,需要在以S3C2450X為MCU的嵌入式系統中采用同步422接口向外傳輸圖像數據。由于S3C2450X的UART接口不支持同步串行通信模式,所以采用了將SPI外圍總線轉換為同步422接口的設計方法。
1 SPI基本原理與結構
    串行外圍設備接口(SPI)是由Motorola公司開發的、用來在微控制器和外圍設備芯片之間實現數據交換的低成本、易使用接口。與標準的串行接口不同,SPI是一個同步協議接口,全雙工通信,所有的傳輸都參照一個共同的時鐘,這個同步時鐘信號由主機產生。接收數據的外設使用時鐘對串行比特流的接收進行同步化。其傳輸速度可達幾Mb/s。
    SPI主要使用4個信號:MISO(主機輸入/從機輸出)、MOSI(主機輸出/從機輸入)、 SCLK(串行時鐘)、(外設片選或從機選擇)[2,3]。
    MISO信號由從機在主機的控制下產生。信號用于禁止或使能外設的收發功能。為高電平時,禁止外設接收和發送數據;為低電平時,允許外設接收和發送數據。圖1所示是微處理器通過SPI與外設連接的示意圖。


    主機和從機都有一個串行移位寄存器,主機通過向它的SPI串行寄存器寫入一個字節來發起一次傳輸。寄存器通過MOSI信號線將字節傳送給從機,從機也將自己的移位寄存器中的內容通過MISO信號線返回給主機(如圖2所示)[4,5]。這樣,兩個移位寄存器中的內容就被交換。外設的寫操作和讀操作是同步完成的。

    如果只進行寫操作,主機只需忽略接收到的字節;反之,若主機要讀取從機的一個字節,就必須發送一個空字節來引發從機的傳輸。
    當主機發送一個連續的數據流時,有些外設能夠進行多字節傳輸。多數具有SPI接口的存儲芯片就以這種方式工作。在這種傳輸方式下,從機的片選端必須在整個傳輸過程中保持低電平。此時,一次傳輸可能會涉及到成千上萬字節的信息,而不必在每個字節的數據發送的前后都去檢測其起始位和結束位,這正是同步傳輸方式優于異步傳輸方式的原因所在。
    雖然SPI有以上優點,然而在圖像傳輸中卻很少用到,原因主要是其抗干擾能力差。SPI采用的是單端非平衡的傳輸方式,即傳輸的數據位的電壓電平是以公共地作為參考的。在這種傳輸方式中,對于已進入信號中的干擾是無法消除和減弱的。而信號在傳輸過程中總會受到干擾,而且距離越長干擾越嚴重,以致于信號傳輸產生錯誤。在這種條件下,信號傳輸就變得毫無意義了。另外,由于單端非平衡傳輸方式以公共地作為參考點,地線作為信號回流線,因此也存在信號電流。當傳輸線兩端的系統之間存在交流電位差時,這個電位差將直接竄到信號中,形成噪聲干擾[6]。所以,為了解決抗干擾問題,通常采用平衡傳輸(balanced transmission)方式,這里采用比較常見的RS-422。
2 RS-422簡介
    RS-422標準是RS-232的改進型,全稱是“平衡電壓數字接口電路的電氣特性”。它使用兩根線之間的電壓差來代表邏輯電平,通常稱之為雙絞線。它是一種平衡傳輸,任何噪聲或干擾都會同時影響兩根雙絞線中的每一根,但對二者之間的差異影響很小,這種現象稱為共模抑制。所以RS-422可以在更遠的距離上以更快的速度傳輸數據,其抗干擾能力遠強于RS-232、SPI等非平衡傳輸方式。其最大傳輸距離約1 200 m,最大傳輸速度可達10 Mb/s。但是由于線路過長造成損耗,其傳輸速率會隨著距離的增加而下降。
    圖3是RS-422的基本連接示意圖。驅動器D通過雙絞線和接收器R連接。位于雙絞線接收端的電阻Rt是一個終止電阻,它用來消除在遠距離傳輸過程中發生的信號反射。但在300 m以下的短距離傳輸中可以不接該電阻[7]。

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

    圖4中將S3C2450X的SPICLK0和SPIMOSI0引腳分別接到2個MAX3088的DI引腳上,DE和RE接5 V直流電源,A和B為差分信號對輸出,C1、C2為旁路電容。由于只使用SPI的發送功能,所以忽略了SPIMISO0引腳。
5 接口電路調試
    由于RS-422只是規定了電壓標準而無具體實現細節,所以接口的軟件調試主要是對S3C2450X的SPI模塊進行設置。其具體編程步驟如下:
    (1)通過SPI配置寄存器CH_CFG設置數據傳輸格式。
    (2)設置時鐘配置寄存器Clk_CFG,決定同步時鐘頻率。
    (3)設置SPI模式寄存器MODE_CFG,包括傳送數據的單位以及是否啟用DMA模式等。
    (4)設置中斷使能寄存器,包括是否響應FIFO溢出以及為空時所產生的中斷等。
    (5)通過設置CH_CFG中的RxChOn和TxChOn打開數據傳輸通道。
    (6)發送數據,檢查發送準備好標志(TxFifoRdy=1),然后寫數據到數據發送寄存器TX_DATA。
    (7)接收數據,檢查接收準備好標志(RxFifoRdy=1),接著數據接收寄存器RX_DATA自動從讀緩沖區讀出數據,之后從RX_DATA中讀數據。
    將S3C2450X產生的SPIMOSI信號傳輸至驅動芯片MAX3088,用示波器測得轉換前后信號的波形如圖5所示。
    從圖5中可以看出轉換后的2個差分信號VA和VB之差與轉換前的單端信號DI保持了邏輯上的一致,只是由于芯片在信號轉換中需要耗時,所以產生了約25 ns的延時。


    通過將SPI總線由單端不平衡傳輸轉換為雙端平衡傳輸,解決了SPI信號易受干擾的問題。又由于其同步通信的高效性使得它非常適用于圖像傳輸。另外,如果對傳輸速率的要求不是太高,則RS-422也可以進行遠距離傳輸,這大大擴展了SPI器件的使用范圍。隨著技術的發展,以RS-422為代表的雙端平衡傳輸模式將會得到越來越廣泛的應用。
參考文獻
[1] 李忠橋,游小杰,鄭瓊林.單片SPI機通信中數據流的同步問題研究[J].單片機與嵌入式系統應用,2007(1).
[2] 解書鋼,馬維華,吳術.SPI總線的UART擴展方法[J].單片機與嵌入式系統應用,2008(6).
[3] 蔣偉,文昱.SPI總線及其在單片機系統中的應用[J].科技廣場,2008(10).
[4] 黃智偉,鄧月明,王彥.ARM9嵌入式系統設計基礎教程[M].北京:北京航空航天大學出版社,2008.
[5] 劉嵐,尹勇,李京蔚.基于ARM的嵌入式系統開發[M]. 北京:電子工業出版社,2008.
[6] 梁德堅,劉玉瓊. SPI總線數據遠距離傳輸實現[J].電子測試,2009(1).
[7] CATSOULIS J.嵌入式硬件設計[M].O’Reilly Taiwan編譯.徐君明,陳振林,郭天杰,改編.第二版.北京:中國電力出版社,2007.
[8] 趙佳,唐禎安.一種實現RS422通信協議的接口電路[J]. 現代電子技術,2007(20).
[9] Samsung Electronics.S3C2450X-400MHz & 533 MHz 32 bit  RISC microproccesor user’s manual revision 0.0.http://www.samsung.com.
[10] Maxim Integrated Products.Fail-Safe,High-Speed(10 Mb/s),Slew-Rate-Limited RS-485/RS-422 Transceivers.Rev 1. http://www.maxim-ic.com.

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 一级特黄爽大片刺激 | 国产成人资源 | 成人在线一区二区 | 久久久久久亚洲精品 | 国产看片一区二区三区 | 波多野结衣被强在线视频 | 99视频有精品视频免费观看 | 国产精品jvid在线观看 | 久久精品高清视频 | 中文无码日韩欧免费视频 | 久久99国产亚洲高清观看首页 | 国产欧美一区二区三区在线看 | 日韩免费a级在线观看 | 中文国产成人精品久久96 | 亚洲区一区 | 国产精品久久亚洲一区二区 | 国产精品久久久久影视不卡 | 国产亚洲精品一区二区在线播放 | 国产欧美一区二区三区视频在线观看 | 国产精品高清全国免费观看 | 色手机在线 | 欧美一级三级 | 国产网址在线观看 | 国产成人免费在线 | 91久久精品国产免费一区 | av狼论坛| 日韩精品一区二区三区免费观看 | 中国一级淫片aaa毛片毛片 | 欧美日韩一区二区高清视 | 亚洲日本视频在线观看 | 国产成人免费片在线观看 | 韩国特级毛片 | 久久一区二区精品 | 国产片在线天堂av | 亚洲国产成人精品91久久久 | 精品视频在线播放 | 视频二区 中文字幕 欧美 | 国产91丝袜美腿在线观看 | 99久久国内精品成人免费 | 国产一级做a爰片在线看 | 中文字幕在线观看一区二区三区 |