基于SPI總線(xiàn)技術(shù)的同步422接口設計
摘 要: 以SPI總線(xiàn)技術(shù)為基礎,用微控制器S3C2450X和電平轉換芯片MAX3088設計了一個(gè)RS-422接口電路,將SPI單端非平衡傳輸信號轉換為RS-422差分信號。在保證SPI同步傳輸的高效性和高速性的同時(shí),還增強了信號的抗干擾能力。
同步傳輸(Synchronous Transmission)是一種發(fā)送方與接收方都采用相同時(shí)鐘頻率的傳輸方式。具體來(lái)說(shuō),就是把要傳輸的一組數據組合成一幀,每一幀的開(kāi)頭部分是一組同步字符,用于通知接收方一個(gè)幀已經(jīng)到達,但它同時(shí)還能確保接收方的采樣速度和比特的到達速度一致,使收發(fā)雙方進(jìn)入同步。幀的結尾部分是一個(gè)幀結束標記,用于表示在下一幀開(kāi)始之前沒(méi)有其他即將到達的數據了。接收方不必對每個(gè)字符進(jìn)行開(kāi)始和停止的操作,一旦檢測到幀同步字符,就在接下來(lái)的數據到達時(shí)接收它們。因此,與異步傳輸相比,具有很高的傳輸速度。而且,由于沒(méi)有在傳輸的每個(gè)字符中都加入起始位和結束位,所以同步傳輸的開(kāi)銷(xiāo)比異步傳輸要小得多,通常前者的數據增值只有2.5%左右,而后者的高達25%。所以,在高速通信中一般都采用同步傳輸方式。
由于圖像的數據量一般很大,所以圖像數據的傳輸都是高速傳輸。在某實(shí)時(shí)圖像存儲系統設計中,為了保證能夠實(shí)時(shí)存儲圖像,需要在以S3C2450X為MCU的嵌入式系統中采用同步422接口向外傳輸圖像數據。由于S3C2450X的UART接口不支持同步串行通信模式,所以采用了將SPI外圍總線(xiàn)轉換為同步422接口的設計方法。
1 SPI基本原理與結構
串行外圍設備接口(SPI)是由Motorola公司開(kāi)發(fā)的、用來(lái)在微控制器和外圍設備芯片之間實(shí)現數據交換的低成本、易使用接口。與標準的串行接口不同,SPI是一個(gè)同步協(xié)議接口,全雙工通信,所有的傳輸都參照一個(gè)共同的時(shí)鐘,這個(gè)同步時(shí)鐘信號由主機產(chǎn)生。接收數據的外設使用時(shí)鐘對串行比特流的接收進(jìn)行同步化。其傳輸速度可達幾Mb/s。
SPI主要使用4個(gè)信號:MISO(主機輸入/從機輸出)、MOSI(主機輸出/從機輸入)、 SCLK(串行時(shí)鐘)、或(外設片選或從機選擇)。
MISO信號由從機在主機的控制下產(chǎn)生。信號用于禁止或使能外設的收發(fā)功能。為高電平時(shí),禁止外設接收和發(fā)送數據;為低電平時(shí),允許外設接收和發(fā)送數據。圖1所示是微處理器通過(guò)SPI與外設連接的示意圖。
主機和從機都有一個(gè)串行移位寄存器,主機通過(guò)向它的SPI串行寄存器寫(xiě)入一個(gè)字節來(lái)發(fā)起一次傳輸。寄存器通過(guò)MOSI信號線(xiàn)將字節傳送給從機,從機也將自己的移位寄存器中的內容通過(guò)MISO信號線(xiàn)返回給主機(如圖2所示)。這樣,兩個(gè)移位寄存器中的內容就被交換。外設的寫(xiě)操作和讀操作是同步完成的。
如果只進(jìn)行寫(xiě)操作,主機只需忽略接收到的字節;反之,若主機要讀取從機的一個(gè)字節,就必須發(fā)送一個(gè)空字節來(lái)引發(fā)從機的傳輸。
當主機發(fā)送一個(gè)連續的數據流時(shí),有些外設能夠進(jìn)行多字節傳輸。多數具有SPI接口的存儲芯片就以這種方式工作。在這種傳輸方式下,從機的片選端必須在整個(gè)傳輸過(guò)程中保持低電平。此時(shí),一次傳輸可能會(huì )涉及到成千上萬(wàn)字節的信息,而不必在每個(gè)字節的數據發(fā)送的前后都去檢測其起始位和結束位,這正是同步傳輸方式優(yōu)于異步傳輸方式的原因所在。
評論