隨著現(xiàn)代電子技術(shù)的發(fā)展,接口技術(shù)在設(shè)計(jì)中占據(jù)越來(lái)越重要的地位。多串口動(dòng)態(tài)擴(kuò)展通信技術(shù)在現(xiàn)場(chǎng)工業(yè)控制、智能家居等領(lǐng)域應(yīng)用越來(lái)越廣泛。在當(dāng)前的多串口的擴(kuò)展應(yīng)用中,雖然市面上有部分的多串口擴(kuò)展芯片,但是其可擴(kuò)展的串口數(shù)量有限并且擴(kuò)展的個(gè)數(shù)是固定的,而且這些擴(kuò)展芯片普片存在著價(jià)格比較昂貴、芯片體積較大在電路板中占據(jù)很大的空間,功耗過(guò)高等問(wèn)題。 基于Actel FPGA的多串口擴(kuò)展設(shè)計(jì)采用了Actel公司高集成度,小體積,低功耗,低系統(tǒng)成本,高安全性和可靠性的小容量FPGA-A3P030 進(jìn)行設(shè)計(jì),把若干接口電路的功能集成到A3P030中,實(shí)現(xiàn)了三路以上的串口擴(kuò)展。該設(shè)計(jì)靈活性高,可根據(jù)需求靈活實(shí)現(xiàn)并行總線擴(kuò)展三路UART或者 SPI擴(kuò)展三路UART,波特率可以靈活設(shè)置。 1. 系統(tǒng)概述 本系統(tǒng)實(shí)現(xiàn)的UART擴(kuò)展功能全部在具有3萬(wàn)門邏輯單元的小容量低成本的A3P030上實(shí)現(xiàn)。采用A3P030的通用I/O模擬SPI接口或者并行總線接口,實(shí)現(xiàn)SPI接口或者并行總線接口到UART接口的功能轉(zhuǎn)換,同時(shí)在A3P030上實(shí)現(xiàn)UART串行收發(fā)單元的設(shè)計(jì),最終實(shí)現(xiàn)不同接口到多路 UART擴(kuò)展的功能。系統(tǒng)設(shè)計(jì)及應(yīng)用框圖如圖 1所示。 ![]() 基于Actel A3P030的多串口擴(kuò)展具有如下的功能及特點(diǎn)。 ● 系統(tǒng)電源為1.5V的A3P030內(nèi)核電壓和3.3V的I/O電壓; ● 擴(kuò)展的UART具有1位起始位,8位數(shù)據(jù)位,無(wú)校驗(yàn)位,1位停止位; ● UART雙緩存鎖存接收/發(fā)送數(shù)據(jù); ● 波特率可以設(shè)置; ● 可實(shí)現(xiàn)基于SPI或者并行總線的UART擴(kuò)展; ● 可實(shí)現(xiàn)并行總線擴(kuò)展的中斷查詢; ● UART串行輸入濾波; ● SPI串行輸入濾波; ● 兼容標(biāo)準(zhǔn)的UART、SPI等通信協(xié)議。 基于Actel的 A3P030的多串口擴(kuò)展設(shè)計(jì)除了具有高度的設(shè)計(jì)靈活性以外,還可以大大縮短產(chǎn)品的設(shè)計(jì)周期,加快產(chǎn)品上市速度。該設(shè)計(jì)方案所具有以下的優(yōu)勢(shì):設(shè)計(jì)采用Actel公司的FPGA來(lái)實(shí)現(xiàn),具有高度的可靠性和安全性,滿足惡劣環(huán)境工作條件;完美的單芯片解決方案,Actel公司的FPGA無(wú)需配置芯片,上電即行;超低功耗,小封裝。 基于Actel FPGA的多串口擴(kuò)展在現(xiàn)代設(shè)計(jì)中主要有以下幾個(gè)方面的應(yīng)用: ● 電信網(wǎng)絡(luò):路由器、服務(wù)器等; ● 現(xiàn)場(chǎng)工業(yè)控制系統(tǒng),電力抄表等; ● 智能家居控制系統(tǒng),POS系統(tǒng)等。 2. 引腳定義 基于Actel A3P030設(shè)計(jì)的多串口擴(kuò)展I/O分布如圖2所示,其中左側(cè)為基于SPI接口擴(kuò)展多路UART的引腳分布,右側(cè)為基于并行接口的多路UART擴(kuò)展的I/O分布。 ![]() 基于Actel A3P030的SPI接口擴(kuò)展三路UART的I/O功能定義如表 1所示。 ![]() 基于Actel A3P030的并行總線接口擴(kuò)展三路UART的I/O功能說(shuō)明如表2所示。 ![]() 3. 時(shí)序操作 (1) 基于SPI的讀寫(xiě) 本設(shè)計(jì)的SPI擴(kuò)展多路UART中,SPI讀寫(xiě)操作與標(biāo)準(zhǔn)的SPI從設(shè)備的讀寫(xiě)方式是完全一致的,設(shè)計(jì)采用時(shí)鐘上升沿發(fā)送數(shù)據(jù),下降沿采集數(shù)據(jù)的方式(CPOL=0,CPHA=1)。SPI寫(xiě)A串口的操作時(shí)序如圖3所示。 ![]() SPI讀取UART接收完成的幀數(shù)據(jù)時(shí)序比較簡(jiǎn)單,主要是在SPI空閑狀態(tài)時(shí)(SPI設(shè)備既不發(fā)送也不接收數(shù)據(jù)的狀態(tài)),當(dāng)UART幀接收完成標(biāo)志信號(hào)有效時(shí)把UART接收完成后的并行數(shù)據(jù)傳遞到SPI發(fā)送寄存器。SPI讀UART時(shí)序如圖4所示。 ![]() (2) 基于并行總線的讀寫(xiě) 基于并行接口的多串口擴(kuò)展設(shè)計(jì)中,并行總線采用的是Intel總線時(shí)序。并口讀取UART接收寄存器的時(shí)序如圖 5所示。在讀操作時(shí),首先根據(jù)中斷信號(hào)來(lái)讀取中斷寄存器的數(shù)據(jù)并判定產(chǎn)生中斷的是哪路UART,然后再讀取數(shù)據(jù)。讀信號(hào)至少有效五個(gè)時(shí)鐘周期的時(shí)間,兩次讀操作的時(shí)間間隔必須大于兩個(gè)時(shí)鐘周期的時(shí)間,才能保證數(shù)據(jù)讀取正確。 ![]() 并行接口寫(xiě)UART如圖6所示。在并行接口寫(xiě)UART發(fā)送寄存器時(shí),寫(xiě)脈沖至少保持一個(gè)時(shí)鐘周期,在寫(xiě)脈沖的上升沿過(guò)后,地址、數(shù)據(jù)和UART 的片選信號(hào)必須至少保持一個(gè)時(shí)鐘周期。且兩個(gè)相鄰的寫(xiě)操作之間必須間隔5個(gè)以上的時(shí)鐘周期,這樣才能確保數(shù)據(jù)能正確寫(xiě)入寄存器中。另外,寫(xiě)UART發(fā)送寄存器前必須進(jìn)行中斷查詢,中斷數(shù)據(jù)有效后就讀取中斷數(shù)據(jù)并進(jìn)行判斷,然后進(jìn)行寫(xiě)操作。 ![]() 在并口寫(xiě)UART的時(shí)序中,clk為系統(tǒng)的時(shí)鐘,uart_sel為UART片選信號(hào),當(dāng)uart_sel=00時(shí)為選擇寫(xiě)入A串口,當(dāng) uart_sel=01時(shí)為選擇寫(xiě)入B串口,當(dāng)uart_sel=10時(shí)為選擇寫(xiě)入C串口。wr是寫(xiě)信號(hào),高電平有效,由于采用了雙向的I/O設(shè)計(jì),并口不能同時(shí)進(jìn)行讀寫(xiě),因此在寫(xiě)信號(hào)有效的時(shí)候,讀信號(hào)rd必須置為低電平的無(wú)效狀態(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ò)展芯片的最佳解決方案。我們有著一個(gè)接近30人的FPGA團(tuán)隊(duì)提供強(qiáng)有力的售后服務(wù)和技術(shù)支持,解決用戶在產(chǎn)品使用和研發(fā)過(guò)程中遇到的困難。若有更多的需求可以與我們聯(lián)系,我們將會(huì)竭誠(chéng)為您服務(wù),敬請(qǐng)關(guān)注下期的FPGA專題技術(shù)講座。 來(lái)源:電子產(chǎn)品世界 2010-03-17 |