隨著(zhù)現代電子技術(shù)的發(fā)展,接口技術(shù)在設計中占據越來(lái)越重要的地位。多串口動(dòng)態(tài)擴展通信技術(shù)在現場(chǎng)工業(yè)控制、智能家居等領(lǐng)域應用越來(lái)越廣泛。在當前的多串口的擴展應用中,雖然市面上有部分的多串口擴展芯片,但是其可擴展的串口數量有限并且擴展的個(gè)數是固定的,而且這些擴展芯片普片存在著(zhù)價(jià)格比較昂貴、芯片體積較大在電路板中占據很大的空間,功耗過(guò)高等問(wèn)題。 基于A(yíng)ctel FPGA的多串口擴展設計采用了Actel公司高集成度,小體積,低功耗,低系統成本,高安全性和可靠性的小容量FPGA-A3P030 進(jìn)行設計,把若干接口電路的功能集成到A3P030中,實(shí)現了三路以上的串口擴展。該設計靈活性高,可根據需求靈活實(shí)現并行總線(xiàn)擴展三路UART或者 SPI擴展三路UART,波特率可以靈活設置。 1. 系統概述 本系統實(shí)現的UART擴展功能全部在具有3萬(wàn)門(mén)邏輯單元的小容量低成本的A3P030上實(shí)現。采用A3P030的通用I/O模擬SPI接口或者并行總線(xiàn)接口,實(shí)現SPI接口或者并行總線(xiàn)接口到UART接口的功能轉換,同時(shí)在A(yíng)3P030上實(shí)現UART串行收發(fā)單元的設計,最終實(shí)現不同接口到多路 UART擴展的功能。系統設計及應用框圖如圖 1所示。 ![]() 基于A(yíng)ctel A3P030的多串口擴展具有如下的功能及特點(diǎn)。 ● 系統電源為1.5V的A3P030內核電壓和3.3V的I/O電壓; ● 擴展的UART具有1位起始位,8位數據位,無(wú)校驗位,1位停止位; ● UART雙緩存鎖存接收/發(fā)送數據; ● 波特率可以設置; ● 可實(shí)現基于SPI或者并行總線(xiàn)的UART擴展; ● 可實(shí)現并行總線(xiàn)擴展的中斷查詢(xún); ● UART串行輸入濾波; ● SPI串行輸入濾波; ● 兼容標準的UART、SPI等通信協(xié)議。 基于A(yíng)ctel的 A3P030的多串口擴展設計除了具有高度的設計靈活性以外,還可以大大縮短產(chǎn)品的設計周期,加快產(chǎn)品上市速度。該設計方案所具有以下的優(yōu)勢:設計采用Actel公司的FPGA來(lái)實(shí)現,具有高度的可靠性和安全性,滿(mǎn)足惡劣環(huán)境工作條件;完美的單芯片解決方案,Actel公司的FPGA無(wú)需配置芯片,上電即行;超低功耗,小封裝。 基于A(yíng)ctel FPGA的多串口擴展在現代設計中主要有以下幾個(gè)方面的應用: ● 電信網(wǎng)絡(luò ):路由器、服務(wù)器等; ● 現場(chǎng)工業(yè)控制系統,電力抄表等; ● 智能家居控制系統,POS系統等。 2. 引腳定義 基于A(yíng)ctel A3P030設計的多串口擴展I/O分布如圖2所示,其中左側為基于SPI接口擴展多路UART的引腳分布,右側為基于并行接口的多路UART擴展的I/O分布。 ![]() 基于A(yíng)ctel A3P030的SPI接口擴展三路UART的I/O功能定義如表 1所示。 ![]() 基于A(yíng)ctel A3P030的并行總線(xiàn)接口擴展三路UART的I/O功能說(shuō)明如表2所示。 ![]() 3. 時(shí)序操作 (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. 小結 本文主要介紹了基于A(yíng)ctel 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ù)講座。 來(lái)源:電子產(chǎn)品世界 2010-03-17 |