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