基于Actel FPGA的多串口擴(kuò)展方案
3. 時序操作
本文引用地址:http://www.ex-cimer.com/article/107015.htm(1) 基于SPI的讀寫
本設(shè)計(jì)的SPI擴(kuò)展多路UART中,SPI讀寫操作與標(biāo)準(zhǔn)的SPI從設(shè)備的讀寫方式是完全一致的,設(shè)計(jì)采用時鐘上升沿發(fā)送數(shù)據(jù),下降沿采集數(shù)據(jù)的方式(CPOL=0,CPHA=1)。SPI寫A串口的操作時序如圖3所示。
SPI讀取UART接收完成的幀數(shù)據(jù)時序比較簡單,主要是在SPI空閑狀態(tài)時(SPI設(shè)備既不發(fā)送也不接收數(shù)據(jù)的狀態(tài)),當(dāng)UART幀接收完成標(biāo)志信號有效時把UART接收完成后的并行數(shù)據(jù)傳遞到SPI發(fā)送寄存器。SPI讀UART時序如圖4所示。
(2) 基于并行總線的讀寫
基于并行接口的多串口擴(kuò)展設(shè)計(jì)中,并行總線采用的是Intel總線時序。并口讀取UART接收寄存器的時序如圖 5所示。在讀操作時,首先根據(jù)中斷信號來讀取中斷寄存器的數(shù)據(jù)并判定產(chǎn)生中斷的是哪路UART,然后再讀取數(shù)據(jù)。讀信號至少有效五個時鐘周期的時間,兩次讀操作的時間間隔必須大于兩個時鐘周期的時間,才能保證數(shù)據(jù)讀取正確。
并行接口寫UART如圖6所示。在并行接口寫UART發(fā)送寄存器時,寫脈沖至少保持一個時鐘周期,在寫脈沖的上升沿過后,地址、數(shù)據(jù)和UART的片選信號必須至少保持一個時鐘周期。且兩個相鄰的寫操作之間必須間隔5個以上的時鐘周期,這樣才能確保數(shù)據(jù)能正確寫入寄存器中。另外,寫UART發(fā)送寄存器前必須進(jìn)行中斷查詢,中斷數(shù)據(jù)有效后就讀取中斷數(shù)據(jù)并進(jìn)行判斷,然后進(jìn)行寫操作。
在并口寫UART的時序中,clk為系統(tǒng)的時鐘,uart_sel為UART片選信號,當(dāng)uart_sel=00時為選擇寫入A串口,當(dāng)uart_sel=01時為選擇寫入B串口,當(dāng)uart_sel=10時為選擇寫入C串口。wr是寫信號,高電平有效,由于采用了雙向的I/O設(shè)計(jì),并口不能同時進(jìn)行讀寫,因此在寫信號有效的時候,讀信號rd必須置為低電平的無效狀態(tài)。
4. 小結(jié)
本文主要介紹了基于Actel A3P030的多串口擴(kuò)展設(shè)計(jì),可實(shí)現(xiàn)并行總線或SPI接口的UART擴(kuò)展,該方案具有體積小、低功耗、低系統(tǒng)成本、高度可靠性和安全性以及高度的設(shè)計(jì)靈活性等特點(diǎn),是在多串口應(yīng)用中取代其他花費(fèi)高昂成本的專用UART擴(kuò)展芯片的最佳解決方案。我們有著一個接近30人的FPGA團(tuán)隊(duì)提供強(qiáng)有力的售后服務(wù)和技術(shù)支持,解決用戶在產(chǎn)品使用和研發(fā)過程中遇到的困難。若有更多的需求可以與我們聯(lián)系,我們將會竭誠為您服務(wù),敬請關(guān)注下期的FPGA專題技術(shù)講座。
評論