當(dāng)前位置:首頁 > 電源 > 數(shù)字電源
[導(dǎo)讀]文章提出了一種基于FPGA和通用異步通信芯片SC16C554的多串口數(shù)據(jù)通信的方法,分析了硬件電路設(shè)計和軟件實(shí)現(xiàn)的關(guān)鍵點(diǎn)。測試結(jié)果表明該方法能大大減小接收數(shù)據(jù)的響應(yīng)時間,提高多串口數(shù)據(jù)通信的可靠性。

0 引言
   
隨著電子技術(shù)的飛躍發(fā)展,通用數(shù)字信號處理器(DSP)的性能價格比不斷提高,數(shù)據(jù)處理能力不斷加強(qiáng),其應(yīng)用領(lǐng)域日益增多,在數(shù)據(jù)實(shí)時采集及高速數(shù)字信號處理中應(yīng)用尤其廣泛。當(dāng)DSP獨(dú)立構(gòu)成一個處理單元時,往往需要和外設(shè)進(jìn)行數(shù)據(jù)交換,其通信能力至關(guān)重要。在研制機(jī)載合成孔徑雷達(dá)系統(tǒng)時,信號處理機(jī)作為系統(tǒng)的核心要與飛控系統(tǒng)、穩(wěn)定平臺、雷達(dá)信號源以及導(dǎo)航系統(tǒng)等部分進(jìn)行數(shù)據(jù)交換;如何實(shí)現(xiàn)其與其它部分之間有效的通信成為系統(tǒng)設(shè)計的關(guān)鍵。串口通信因?yàn)槠浜唵危煽咳匀皇菑V泛采用的方法之一。

1 串口擴(kuò)展方案選擇
   
多串口通信常用的實(shí)現(xiàn)方案有兩種:一種是軟件實(shí)現(xiàn),采用軟件編程模擬串口,該方法成本低,但編程復(fù)雜、開發(fā)周期長、可靠性低。另一種是硬件實(shí)現(xiàn),使用多串口單片機(jī)或?qū)S么跀U(kuò)展芯片,該方法雖然成本較高,但是開發(fā)比較簡單,可靠性高。
    目前比較通用的實(shí)現(xiàn)方案是采用通用異步通信芯片實(shí)現(xiàn)串口擴(kuò)展,采用FPGA/CPLD實(shí)現(xiàn)DSP與異步串口擴(kuò)展芯片之間的邏輯控制,完全基于DSP接收和發(fā)送數(shù)據(jù)。該方案的缺點(diǎn)是:當(dāng)數(shù)據(jù)量較大、多串口同時工作時占用DSP的時間較長,影響DSP的工作效率,且會造成數(shù)據(jù)丟失。因此本文提出了一種新的實(shí)現(xiàn)方法--基于FPGA和通用異步通信芯片實(shí)現(xiàn)多串口通信設(shè)計。在不進(jìn)行硬件改動的基礎(chǔ)上,通過在FPGA內(nèi)建立一個緩存機(jī)制,實(shí)現(xiàn)接收串口芯片的數(shù)據(jù),達(dá)到一定量時向DSP發(fā)送中斷讀取數(shù)據(jù)。該設(shè)計能極大減少對DSP的占用時間,提高了DSP的工作效率;同時提高了對串口芯片中斷請求的響應(yīng)速度,解決了數(shù)據(jù)丟失的問題。

2 硬件電路設(shè)計
   
本設(shè)計采用通用異步通信芯片SC16C554來實(shí)現(xiàn)串口擴(kuò)展。SC16C554主要特點(diǎn)有:
    1.有A、B、C、D四個通道獨(dú)立收發(fā)數(shù)據(jù);
    2.最高傳輸速率可達(dá)5Mbit/s,具有可編程波特率發(fā)生器,便于靈活選擇數(shù)據(jù)收發(fā)頻率;
    3.具有16字節(jié)的收發(fā)FIFO,且有1、4、8、14字節(jié)四個可選擇的中斷觸發(fā)深度;
    4.可通過編程設(shè)置傳輸數(shù)據(jù)的格式(數(shù)據(jù)長度,校驗(yàn)位,停止位);
    5.具有可獨(dú)立控制的發(fā)送、接收、線路狀態(tài)和MODEM狀態(tài)中斷;
    6.充分分級的中斷系統(tǒng)控制,全面的線路狀態(tài)報告功能。
    基于FPGA和SC16C554實(shí)現(xiàn)多串口通信的基本原理圖如圖1所示:

3 軟件設(shè)計及實(shí)現(xiàn)
   
系統(tǒng)實(shí)際工作所需波特率分別為9600、38400、115200、153600 。分析計算可得不同波特率發(fā)送數(shù)據(jù)時,連續(xù)兩個數(shù)據(jù)之間的時間間隔如表1所示:

    由表1可知單個通道連續(xù)兩個中斷產(chǎn)生的最小時間間隔為65μs;因此在65μs的時間內(nèi)如果可以實(shí)現(xiàn)對四個通道分別進(jìn)行一次讀數(shù)據(jù)操作,即使是四個通道同時來數(shù)據(jù)也不會發(fā)生數(shù)據(jù)丟失的現(xiàn)象。
3.1 數(shù)據(jù)的存儲設(shè)計
   
即在FPGA內(nèi)部建立一個緩存機(jī)制。設(shè)計采用在FPGA內(nèi)部做一個雙端口RAM(DPRAM),用來存儲串口數(shù)據(jù),DSP通過訪問DPRAM得到接收的串口數(shù)據(jù)。
    DPRAM指一個存儲模塊卻包含兩個獨(dú)立的端口,這兩個端口共用同一塊地址空間,兩個端口都可以向這塊空間里寫數(shù)據(jù)或從中讀取數(shù)據(jù)。DPRAM的讀寫數(shù)據(jù)的模式包括只讀、只寫、讀寫三種模式,其中讀寫模式又包括先寫后讀、先讀后寫、只寫不讀三種模式,我們采用先讀后寫的模式。
    我們將DPRAM的地址空間分為四部分,分別用來存放四個通道的數(shù)據(jù)。當(dāng)FPGA收到數(shù)據(jù)時,我們可以根據(jù)置通道標(biāo)志寄存器CS[2:0]的值來判斷該數(shù)據(jù)來自哪個通道,將其存入對應(yīng)的地址空間,并將該通道對應(yīng)地址線加一。當(dāng)該通道存儲數(shù)據(jù)量達(dá)到編程設(shè)置的觸發(fā)深度時,就將DSP中斷寄存器dspint置低,向DSP發(fā)送中斷;同時向DPRAM內(nèi)一事先定義好的公共存儲空間寫入通道標(biāo)志字。當(dāng)DSP收到中斷后,首先訪問該公共存儲區(qū)讀取通道標(biāo)志字,判斷該中斷是由哪個通道產(chǎn)生的;然后調(diào)用相應(yīng)的接收函數(shù)從DPRAM內(nèi)讀取該通道的數(shù)據(jù)存入指定的地址空間等待處理。
3.2 讀串口數(shù)據(jù)狀態(tài)機(jī)的設(shè)計
   
一個完整的讀取串口數(shù)據(jù)操作需要進(jìn)行三次讀操作:讀中斷狀態(tài)寄存器(ISR)、讀線狀態(tài)寄存器(LSR)、讀接收保存寄存器(RHR)。由于這三次讀操作具有嚴(yán)格的邏輯順序和時序關(guān)系,非常適合采用狀態(tài)機(jī)來描述;所以本設(shè)計采用有限狀態(tài)機(jī)來實(shí)現(xiàn)讀取串口數(shù)據(jù)。圖2為讀通道A數(shù)據(jù)的狀態(tài)轉(zhuǎn)移圖。 

   [!--empirenews.page--] State0:空閑狀態(tài),當(dāng)沒有數(shù)據(jù)時狀態(tài)機(jī)一直停留在空閑狀態(tài);
    State 1:賦IsR寄存器地址給UART_A,置通道標(biāo)志寄存器CS[2:O]=001(表示A通道);
    State2:讀ISR,判斷中斷類型(04為接受數(shù)據(jù)準(zhǔn)備好中斷),賦LSR寄存器地址給UART、A;
    State3:讀LSR,判斷是否有數(shù)據(jù)(LSR[0]=1表示有數(shù)據(jù)在RHR內(nèi)),賦RHR寄存器地址給UART A;
    State4:讀RHR,讀取串口數(shù)據(jù)。
    多通道工作時,可以通過增加狀態(tài)機(jī)狀態(tài)來實(shí)現(xiàn)。完成一個通道的讀數(shù)操作需要四個狀態(tài),當(dāng)四個通道同時工作時,狀態(tài)機(jī)的狀態(tài)需要增加到17個。其中Stare5~State8完成對通道B的操作;其中State9~State12完成對通道C的操作;其中State13~State16完成對通道D的操作。
3.3 讀時序設(shè)計
    SC16C554的通用讀時序圖如下:

    其中t6s=0ns t6h=0ns t7h=0ns t7d=10ns t7w=26nst9d=20ns t12h=15ns都為最小值,t12d max=26ns由圖3可以看出:對串口進(jìn)行一次讀操作所需的時間T=t6s+t7d+t7w+t9d所以T最小為56ns。本設(shè)計采用60MHz時鐘分頻出10MHz時鐘,在一個1OMHz時鐘周期(100ns)內(nèi)完成一次讀操作。用6 0 MH z時鐘同步一個計數(shù)器cscount[2:0],在第一個6 0MH z時鐘的上升沿(cs_count=3’b000時)置CS為低,并賦對應(yīng)的地址給UART A;在第二個60MHz時鐘的上升沿(cs_cout=3’b001時)置UART IOR為低;在第四個60MHz時鐘的上升沿(cs_count=3’b011時)置CS、UART IOR為高。這樣UART IOR有效時間為兩個時鐘周期(33ns),且比CS延時一個時鐘周期(17ns),完全滿足圖3讀時序的要求。
    由圖2可知,由空閑狀態(tài)State0到完成一次串口數(shù)據(jù)的讀取,共需要500ns的時間。這樣多通道工作時連續(xù)完成四個通道的讀數(shù)操作共需2μs,遠(yuǎn)小于單個通道連續(xù)兩個中斷產(chǎn)生的時間間隔65μs;這樣有效解決了多通道工作時,當(dāng)讀取數(shù)據(jù)的過程中其它通道中斷丟失的問題。如:當(dāng)讀通道A數(shù)據(jù)的過程中,通道B產(chǎn)生中斷請求;則狀態(tài)機(jī)完成通道A數(shù)據(jù)讀取返回到空閑狀態(tài)State0,檢測到INTB為高,狀態(tài)機(jī)進(jìn)入下一個狀態(tài)(State5)進(jìn)行通道B的數(shù)據(jù)接收。

4 測試結(jié)果及分析
   
我們分別對兩種方案進(jìn)行了測試,結(jié)果如下:表2為完全基于DSP接收和發(fā)送數(shù)據(jù)的通信性能測試;表3為基于FPGA接收串口數(shù)據(jù)的通信性能測試。

    波特率發(fā)送周期數(shù)據(jù)長度測試結(jié)果
    比較兩種方案的測試結(jié)果可以得出以下結(jié)論:
    1單通道工作時:兩種方案的通信性能是一樣的。
    2多通道同時工作時:由表2測試結(jié)果可以看出,每次發(fā)送的數(shù)據(jù)量過大、或發(fā)送周期較小時,由于DSP對串口芯片中斷請求的處理速度問題就會造成數(shù)據(jù)丟失。由表3測試結(jié)果可以看出,四通道工作時,發(fā)送數(shù)據(jù)長度為64字節(jié),通道發(fā)送周期最小可達(dá)10ms;如果發(fā)送數(shù)據(jù)長度減小,通道發(fā)送周期還可以更小。該設(shè)計性能遠(yuǎn)遠(yuǎn)好于方案改進(jìn)前完全基于DSP接收和發(fā)送數(shù)據(jù)的性能;能滿足系統(tǒng)實(shí)際工作的需要。

5 結(jié)束語
   
基于FPGA接收數(shù)據(jù)的設(shè)計有兩個突出的優(yōu)點(diǎn):1、極大提高了對串口中斷的響應(yīng)速度,避免了多通道工作、完全基于DSP接收和發(fā)送數(shù)據(jù)時數(shù)據(jù)大量丟失的情況;2、完全可編程設(shè)置DSP中斷產(chǎn)生條件,解決了原來串口芯片只有1、4、8、14字節(jié)四個觸發(fā)深度的限制,可編程設(shè)置存儲空間范圍內(nèi)的任意字節(jié)的觸發(fā)深度,大大減少了DSP的中斷數(shù)量,提高了DSP的工作效率。另外程序具有較強(qiáng)的可移植性,當(dāng)設(shè)計需要修改時,只需修改少量代碼,有效降低了設(shè)計周期。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉